xref: /rk3399_rockchip-uboot/include/configs/astro_mcf5373l.h (revision e090579d0a2d1aa38eab94b98877de9bcdd4f31d)
19d79e575SWolfgang Wegner /*
29d79e575SWolfgang Wegner  * Configuration settings for the Sentec Cobra Board.
39d79e575SWolfgang Wegner  *
49d79e575SWolfgang Wegner  * (C) Copyright 2003 Josef Baumgartner <josef.baumgartner@telex.de>
59d79e575SWolfgang Wegner  *
61a459660SWolfgang Denk  * SPDX-License-Identifier:	GPL-2.0+
79d79e575SWolfgang Wegner  */
89d79e575SWolfgang Wegner 
99d79e575SWolfgang Wegner /*
109d79e575SWolfgang Wegner  * configuration for ASTRO "Urmel" board.
119d79e575SWolfgang Wegner  * Originating from Cobra5272 configuration, messed up by
129d79e575SWolfgang Wegner  * Wolfgang Wegner <w.wegner@astro-kom.de>
139d79e575SWolfgang Wegner  * Please do not bother the original author with bug reports
149d79e575SWolfgang Wegner  * concerning this file.
159d79e575SWolfgang Wegner  */
169d79e575SWolfgang Wegner 
179d79e575SWolfgang Wegner #ifndef _CONFIG_ASTRO_MCF5373L_H
189d79e575SWolfgang Wegner #define _CONFIG_ASTRO_MCF5373L_H
199d79e575SWolfgang Wegner 
2051926d5eSMarek Vasut #include <linux/stringify.h>
2151926d5eSMarek Vasut 
229d79e575SWolfgang Wegner /*
239d79e575SWolfgang Wegner  * set the card type to actually compile for; either of
249d79e575SWolfgang Wegner  * the possibilities listed below has to be used!
259d79e575SWolfgang Wegner  */
269d79e575SWolfgang Wegner #define CONFIG_ASTRO_V532	1
279d79e575SWolfgang Wegner 
289d79e575SWolfgang Wegner #if CONFIG_ASTRO_V532
299d79e575SWolfgang Wegner #define ASTRO_ID	0xF8
309d79e575SWolfgang Wegner #elif CONFIG_ASTRO_V512
319d79e575SWolfgang Wegner #define ASTRO_ID	0xFA
329d79e575SWolfgang Wegner #elif CONFIG_ASTRO_TWIN7S2
339d79e575SWolfgang Wegner #define ASTRO_ID	0xF9
349d79e575SWolfgang Wegner #elif CONFIG_ASTRO_V912
359d79e575SWolfgang Wegner #define ASTRO_ID	0xFC
369d79e575SWolfgang Wegner #elif CONFIG_ASTRO_COFDMDUOS2
379d79e575SWolfgang Wegner #define ASTRO_ID	0xFB
389d79e575SWolfgang Wegner #else
399d79e575SWolfgang Wegner #error No card type defined!
409d79e575SWolfgang Wegner #endif
419d79e575SWolfgang Wegner 
429d79e575SWolfgang Wegner #define CONFIG_ASTRO5373L		/* define board type */
439d79e575SWolfgang Wegner 
449d79e575SWolfgang Wegner /* Command line configuration */
459d79e575SWolfgang Wegner /*
46d24f2d32SWolfgang Denk  * CONFIG_RAM defines if u-boot is loaded via BDM (or started from
479d79e575SWolfgang Wegner  * a different bootloader that has already performed RAM setup) or
489d79e575SWolfgang Wegner  * started directly from flash, which is the regular case for production
499d79e575SWolfgang Wegner  * boards.
509d79e575SWolfgang Wegner  */
51d24f2d32SWolfgang Denk #ifdef CONFIG_RAM
529d79e575SWolfgang Wegner #define CONFIG_MONITOR_IS_IN_RAM
5314d0a02aSWolfgang Denk #define CONFIG_SYS_TEXT_BASE		0x40020000
549d79e575SWolfgang Wegner #define ENABLE_JFFS	0
559d79e575SWolfgang Wegner #else
5614d0a02aSWolfgang Denk #define CONFIG_SYS_TEXT_BASE		0x00000000
579d79e575SWolfgang Wegner #define ENABLE_JFFS	1
589d79e575SWolfgang Wegner #endif
599d79e575SWolfgang Wegner 
609d79e575SWolfgang Wegner #define CONFIG_CMDLINE_EDITING
619d79e575SWolfgang Wegner 
629d79e575SWolfgang Wegner #define CONFIG_MCFRTC
639d79e575SWolfgang Wegner #undef RTC_DEBUG
649d79e575SWolfgang Wegner 
659d79e575SWolfgang Wegner /* Timer */
669d79e575SWolfgang Wegner #define CONFIG_MCFTMR
679d79e575SWolfgang Wegner #undef CONFIG_MCFPIT
689d79e575SWolfgang Wegner 
699d79e575SWolfgang Wegner /* I2C */
7000f792e0SHeiko Schocher #define CONFIG_SYS_I2C
7100f792e0SHeiko Schocher #define CONFIG_SYS_I2C_FSL
7200f792e0SHeiko Schocher #define CONFIG_SYS_FSL_I2C_SPEED	80000
7300f792e0SHeiko Schocher #define CONFIG_SYS_FSL_I2C_SLAVE	0x7F
7400f792e0SHeiko Schocher #define CONFIG_SYS_FSL_I2C_OFFSET	0x58000
759d79e575SWolfgang Wegner #define CONFIG_SYS_IMMR			CONFIG_SYS_MBAR
769d79e575SWolfgang Wegner 
779d79e575SWolfgang Wegner /*
789d79e575SWolfgang Wegner  * Defines processor clock - important for correct timings concerning serial
799d79e575SWolfgang Wegner  * interface etc.
809d79e575SWolfgang Wegner  */
819d79e575SWolfgang Wegner 
829d79e575SWolfgang Wegner #define CONFIG_SYS_CLK			80000000
839d79e575SWolfgang Wegner #define CONFIG_SYS_CPU_CLK		(CONFIG_SYS_CLK * 3)
849d79e575SWolfgang Wegner #define CONFIG_SYS_SDRAM_SIZE		32		/* SDRAM size in MB */
859d79e575SWolfgang Wegner 
869d79e575SWolfgang Wegner #define CONFIG_SYS_CORE_SRAM_SIZE	0x8000
879d79e575SWolfgang Wegner #define CONFIG_SYS_CORE_SRAM		0x80000000
889d79e575SWolfgang Wegner 
899d79e575SWolfgang Wegner #define CONFIG_SYS_UNIFY_CACHE
909d79e575SWolfgang Wegner 
919d79e575SWolfgang Wegner /*
929d79e575SWolfgang Wegner  * Define baudrate for UART1 (console output, tftp, ...)
939d79e575SWolfgang Wegner  * default value of CONFIG_BAUDRATE for Sentec board: 19200 baud
949d79e575SWolfgang Wegner  * CONFIG_SYS_BAUDRATE_TABLE defines values that can be selected
959d79e575SWolfgang Wegner  * in u-boot command interface
969d79e575SWolfgang Wegner  */
979d79e575SWolfgang Wegner 
989d79e575SWolfgang Wegner #define CONFIG_MCFUART
999d79e575SWolfgang Wegner #define CONFIG_SYS_UART_PORT		(2)
1009d79e575SWolfgang Wegner #define CONFIG_SYS_UART2_ALT3_GPIO
1019d79e575SWolfgang Wegner 
1029d79e575SWolfgang Wegner /*
1039d79e575SWolfgang Wegner  * Watchdog configuration; Watchdog is disabled for running from RAM
1049d79e575SWolfgang Wegner  * and set to highest possible value else. Beware there is no check
1059d79e575SWolfgang Wegner  * in the watchdog code to validate the timeout value set here!
1069d79e575SWolfgang Wegner  */
1079d79e575SWolfgang Wegner 
1089d79e575SWolfgang Wegner #ifndef CONFIG_MONITOR_IS_IN_RAM
1099d79e575SWolfgang Wegner #define CONFIG_WATCHDOG
1109d79e575SWolfgang Wegner #define CONFIG_WATCHDOG_TIMEOUT 3355	/* timeout in milliseconds */
1119d79e575SWolfgang Wegner #endif
1129d79e575SWolfgang Wegner 
1139d79e575SWolfgang Wegner /*
1149d79e575SWolfgang Wegner  * Configuration for environment
1159d79e575SWolfgang Wegner  * Environment is located in the last sector of the flash
1169d79e575SWolfgang Wegner  */
1179d79e575SWolfgang Wegner 
1189d79e575SWolfgang Wegner #ifndef CONFIG_MONITOR_IS_IN_RAM
1199d79e575SWolfgang Wegner #define CONFIG_ENV_OFFSET		0x1FF8000
1209d79e575SWolfgang Wegner #define CONFIG_ENV_SECT_SIZE		0x8000
1219d79e575SWolfgang Wegner #else
1229d79e575SWolfgang Wegner /*
1239d79e575SWolfgang Wegner  * environment in RAM - This is used to use a single PC-based application
1249d79e575SWolfgang Wegner  * to load an image, load U-Boot, load an environment and then start U-Boot
1259d79e575SWolfgang Wegner  * to execute the commands from the environment. Feedback is done via setting
1269d79e575SWolfgang Wegner  * and reading memory locations.
1279d79e575SWolfgang Wegner  */
1289d79e575SWolfgang Wegner #define CONFIG_ENV_ADDR		0x40060000
1299d79e575SWolfgang Wegner #define CONFIG_ENV_SECT_SIZE	0x8000
1309d79e575SWolfgang Wegner #endif
1319d79e575SWolfgang Wegner 
1329d79e575SWolfgang Wegner /* here we put our FPGA configuration... */
1339d79e575SWolfgang Wegner #define CONFIG_MISC_INIT_R	1
1349d79e575SWolfgang Wegner 
1359d79e575SWolfgang Wegner /* Define user parameters that have to be customized most likely */
1369d79e575SWolfgang Wegner 
1379d79e575SWolfgang Wegner /* AUTOBOOT settings - booting images automatically by u-boot after power on */
1389d79e575SWolfgang Wegner 
1399d79e575SWolfgang Wegner /*
1409d79e575SWolfgang Wegner  * The following settings will be contained in the environment block ; if you
1419d79e575SWolfgang Wegner  * want to use a neutral environment all those settings can be manually set in
1429d79e575SWolfgang Wegner  * u-boot: 'set' command
1439d79e575SWolfgang Wegner  */
1449d79e575SWolfgang Wegner 
1459d79e575SWolfgang Wegner #define CONFIG_EXTRA_ENV_SETTINGS			\
1469d79e575SWolfgang Wegner 	"loaderversion=11\0"				\
14751926d5eSMarek Vasut 	"card_id="__stringify(ASTRO_ID)"\0"			\
1489d79e575SWolfgang Wegner 	"alterafile=0\0"				\
1499d79e575SWolfgang Wegner 	"xilinxfile=0\0"				\
1509d79e575SWolfgang Wegner 	"xilinxload=imxtract 0x540000 $xilinxfile 0x41000000&&"\
1519d79e575SWolfgang Wegner 		"fpga load 0 0x41000000 $filesize\0" \
1529d79e575SWolfgang Wegner 	"alteraload=imxtract 0x6c0000 $alterafile 0x41000000&&"\
1539d79e575SWolfgang Wegner 		"fpga load 1 0x41000000 $filesize\0" \
1549d79e575SWolfgang Wegner 	"env_default=1\0"				\
1559d79e575SWolfgang Wegner 	"env_check=if test $env_default -eq 1;"\
1569d79e575SWolfgang Wegner 		" then setenv env_default 0;saveenv;fi\0"
1579d79e575SWolfgang Wegner 
1589d79e575SWolfgang Wegner /*
1599d79e575SWolfgang Wegner  * "update" is a non-standard command that has to be supplied
1609d79e575SWolfgang Wegner  * by external update.c; This is not included in mainline because
1619d79e575SWolfgang Wegner  * it needs non-blocking CFI routines.
1629d79e575SWolfgang Wegner  */
1639d79e575SWolfgang Wegner #ifdef CONFIG_MONITOR_IS_IN_RAM
1649d79e575SWolfgang Wegner #define CONFIG_BOOTCOMMAND	""	/* no autoboot in this case */
1659d79e575SWolfgang Wegner #else
1669d79e575SWolfgang Wegner #if CONFIG_ASTRO_V532
1679d79e575SWolfgang Wegner #define CONFIG_BOOTCOMMAND	"protect off 0x80000 0x1ffffff;run env_check;"\
1689d79e575SWolfgang Wegner 				"run xilinxload&&run alteraload&&bootm 0x80000;"\
1699d79e575SWolfgang Wegner 				"update;reset"
1709d79e575SWolfgang Wegner #else
1719d79e575SWolfgang Wegner #define CONFIG_BOOTCOMMAND	"protect off 0x80000 0x1ffffff;run env_check;"\
1729d79e575SWolfgang Wegner 				"run xilinxload&&bootm 0x80000;update;reset"
1739d79e575SWolfgang Wegner #endif
1749d79e575SWolfgang Wegner #endif
1759d79e575SWolfgang Wegner 
1769d79e575SWolfgang Wegner /* default RAM address for user programs */
1779d79e575SWolfgang Wegner #define CONFIG_SYS_LOAD_ADDR	0x20000
1789d79e575SWolfgang Wegner 
1799d79e575SWolfgang Wegner #define CONFIG_SYS_LONGHELP
1809d79e575SWolfgang Wegner 
1819d79e575SWolfgang Wegner #define CONFIG_FPGA_COUNT	1
1829d79e575SWolfgang Wegner #define	CONFIG_FPGA_XILINX
1839d79e575SWolfgang Wegner #define	CONFIG_FPGA_SPARTAN3
1849d79e575SWolfgang Wegner #define CONFIG_FPGA_CYCLON2
1859d79e575SWolfgang Wegner #define CONFIG_SYS_FPGA_PROG_FEEDBACK
1869d79e575SWolfgang Wegner #define CONFIG_SYS_FPGA_WAIT		1000
1879d79e575SWolfgang Wegner 
1889d79e575SWolfgang Wegner /* End of user parameters to be customized */
1899d79e575SWolfgang Wegner 
1909d79e575SWolfgang Wegner /* Defines memory range for test */
1919d79e575SWolfgang Wegner 
1929d79e575SWolfgang Wegner #define CONFIG_SYS_MEMTEST_START	0x40020000
1939d79e575SWolfgang Wegner #define CONFIG_SYS_MEMTEST_END		0x41ffffff
1949d79e575SWolfgang Wegner 
1959d79e575SWolfgang Wegner /*
1969d79e575SWolfgang Wegner  * Low Level Configuration Settings
1979d79e575SWolfgang Wegner  * (address mappings, register initial values, etc.)
1989d79e575SWolfgang Wegner  * You should know what you are doing if you make changes here.
1999d79e575SWolfgang Wegner  */
2009d79e575SWolfgang Wegner 
2019d79e575SWolfgang Wegner /* Base register address */
2029d79e575SWolfgang Wegner 
2039d79e575SWolfgang Wegner #define CONFIG_SYS_MBAR		0xFC000000	/* Register Base Addrs */
2049d79e575SWolfgang Wegner 
2059d79e575SWolfgang Wegner /* System Conf. Reg. & System Protection Reg. */
2069d79e575SWolfgang Wegner 
2079d79e575SWolfgang Wegner #define CONFIG_SYS_SCR		0x0003;
2089d79e575SWolfgang Wegner #define CONFIG_SYS_SPR		0xffff;
2099d79e575SWolfgang Wegner 
2109d79e575SWolfgang Wegner /*
2119d79e575SWolfgang Wegner  * Definitions for initial stack pointer and data area (in internal SRAM)
2129d79e575SWolfgang Wegner  */
2139d79e575SWolfgang Wegner #define CONFIG_SYS_INIT_RAM_ADDR	0x80000000
214553f0982SWolfgang Denk #define CONFIG_SYS_INIT_RAM_SIZE		0x8000
2159d79e575SWolfgang Wegner #define CONFIG_SYS_INIT_RAM_CTRL	0x221
216553f0982SWolfgang Denk #define CONFIG_SYS_GBL_DATA_OFFSET	(CONFIG_SYS_INIT_RAM_SIZE - \
21725ddd1fbSWolfgang Denk 					 GENERATED_GBL_DATA_SIZE)
2189d79e575SWolfgang Wegner #define CONFIG_SYS_INIT_SP_OFFSET	CONFIG_SYS_GBL_DATA_OFFSET
2199d79e575SWolfgang Wegner 
2209d79e575SWolfgang Wegner /*
2219d79e575SWolfgang Wegner  * Start addresses for the final memory configuration
2229d79e575SWolfgang Wegner  * (Set up by the startup code)
2239d79e575SWolfgang Wegner  * for MCF5373, the allowable range is 0x40000000 to 0x7FF00000
2249d79e575SWolfgang Wegner  */
2259d79e575SWolfgang Wegner #define CONFIG_SYS_SDRAM_BASE		0x40000000
2269d79e575SWolfgang Wegner 
2279d79e575SWolfgang Wegner /*
2289d79e575SWolfgang Wegner  * Chipselect bank definitions
2299d79e575SWolfgang Wegner  *
2309d79e575SWolfgang Wegner  * CS0 - Flash 32MB (first 16MB)
2319d79e575SWolfgang Wegner  * CS1 - Flash 32MB (second half)
2329d79e575SWolfgang Wegner  * CS2 - FPGA
2339d79e575SWolfgang Wegner  * CS3 - FPGA
2349d79e575SWolfgang Wegner  * CS4 - unused
2359d79e575SWolfgang Wegner  * CS5 - unused
2369d79e575SWolfgang Wegner  */
2379d79e575SWolfgang Wegner #define CONFIG_SYS_CS0_BASE		0
2389d79e575SWolfgang Wegner #define CONFIG_SYS_CS0_MASK		0x00ff0001
2399d79e575SWolfgang Wegner #define CONFIG_SYS_CS0_CTRL		0x00001fc0
2409d79e575SWolfgang Wegner 
2419d79e575SWolfgang Wegner #define CONFIG_SYS_CS1_BASE		0x01000000
2429d79e575SWolfgang Wegner #define CONFIG_SYS_CS1_MASK		0x00ff0001
2439d79e575SWolfgang Wegner #define CONFIG_SYS_CS1_CTRL		0x00001fc0
2449d79e575SWolfgang Wegner 
2459d79e575SWolfgang Wegner #define CONFIG_SYS_CS2_BASE		0x20000000
2469d79e575SWolfgang Wegner #define CONFIG_SYS_CS2_MASK		0x00ff0001
2479d79e575SWolfgang Wegner #define CONFIG_SYS_CS2_CTRL		0x0000fec0
2489d79e575SWolfgang Wegner 
2499d79e575SWolfgang Wegner #define CONFIG_SYS_CS3_BASE		0x21000000
2509d79e575SWolfgang Wegner #define CONFIG_SYS_CS3_MASK		0x00ff0001
2519d79e575SWolfgang Wegner #define CONFIG_SYS_CS3_CTRL		0x0000fec0
2529d79e575SWolfgang Wegner 
2539d79e575SWolfgang Wegner #define CONFIG_SYS_FLASH_BASE		0x00000000
2549d79e575SWolfgang Wegner 
2559d79e575SWolfgang Wegner #ifdef	CONFIG_MONITOR_IS_IN_RAM
25614d0a02aSWolfgang Denk #define CONFIG_SYS_MONITOR_BASE		CONFIG_SYS_TEXT_BASE
2579d79e575SWolfgang Wegner #else
2589d79e575SWolfgang Wegner /* This is mainly used during relocation in start.S */
2599d79e575SWolfgang Wegner #define CONFIG_SYS_MONITOR_BASE		(CONFIG_SYS_FLASH_BASE + 0x400)
2609d79e575SWolfgang Wegner #endif
2619d79e575SWolfgang Wegner /* Reserve 256 kB for Monitor */
2629d79e575SWolfgang Wegner #define CONFIG_SYS_MONITOR_LEN		(256 << 10)
2639d79e575SWolfgang Wegner 
2649d79e575SWolfgang Wegner #define CONFIG_SYS_BOOTPARAMS_LEN	(64 * 1024)
2659d79e575SWolfgang Wegner /* Reserve 128 kB for malloc() */
2669d79e575SWolfgang Wegner #define CONFIG_SYS_MALLOC_LEN		(128 << 10)
2679d79e575SWolfgang Wegner 
2689d79e575SWolfgang Wegner /*
2699d79e575SWolfgang Wegner  * For booting Linux, the board info and command line data
2709d79e575SWolfgang Wegner  * have to be in the first 8 MB of memory, since this is
2719d79e575SWolfgang Wegner  * the maximum mapped by the Linux kernel during initialization ??
2729d79e575SWolfgang Wegner  */
2739d79e575SWolfgang Wegner #define CONFIG_SYS_BOOTMAPSZ		(CONFIG_SYS_SDRAM_BASE + \
2749d79e575SWolfgang Wegner 						(CONFIG_SYS_SDRAM_SIZE << 20))
2759d79e575SWolfgang Wegner 
2769d79e575SWolfgang Wegner /* FLASH organization */
2779d79e575SWolfgang Wegner #define CONFIG_SYS_MAX_FLASH_BANKS	1
2789d79e575SWolfgang Wegner #define CONFIG_SYS_MAX_FLASH_SECT	259
2799d79e575SWolfgang Wegner #define CONFIG_SYS_FLASH_ERASE_TOUT	1000
2809d79e575SWolfgang Wegner 
2819d79e575SWolfgang Wegner #define CONFIG_SYS_FLASH_CFI		1
2829d79e575SWolfgang Wegner #define CONFIG_FLASH_CFI_DRIVER		1
2839d79e575SWolfgang Wegner #define CONFIG_SYS_FLASH_SIZE		0x2000000
2849d79e575SWolfgang Wegner #define CONFIG_SYS_FLASH_PROTECTION	1
2859d79e575SWolfgang Wegner #define CONFIG_SYS_FLASH_USE_BUFFER_WRITE	1
2869d79e575SWolfgang Wegner #define CONFIG_SYS_FLASH_CFI_NONBLOCK	1
2879d79e575SWolfgang Wegner 
2885296cb1dSangelo@sysam.it #define LDS_BOARD_TEXT \
2895296cb1dSangelo@sysam.it 	. = DEFINED(env_offset) ? env_offset : .; \
290*0649cd0dSSimon Glass 	env/embedded.o(.text*)
2915296cb1dSangelo@sysam.it 
2929d79e575SWolfgang Wegner #if ENABLE_JFFS
2939d79e575SWolfgang Wegner /* JFFS Partition offset set */
2949d79e575SWolfgang Wegner #define CONFIG_SYS_JFFS2_FIRST_BANK    0
2959d79e575SWolfgang Wegner #define CONFIG_SYS_JFFS2_NUM_BANKS     1
2969d79e575SWolfgang Wegner /* 512k reserved for u-boot */
2979d79e575SWolfgang Wegner #define CONFIG_SYS_JFFS2_FIRST_SECTOR  0x40
2989d79e575SWolfgang Wegner #endif
2999d79e575SWolfgang Wegner 
3009d79e575SWolfgang Wegner /* Cache Configuration */
3019d79e575SWolfgang Wegner #define CONFIG_SYS_CACHELINE_SIZE	16
3029d79e575SWolfgang Wegner 
303dd9f054eSTsiChung Liew #define ICACHE_STATUS			(CONFIG_SYS_INIT_RAM_ADDR + \
304553f0982SWolfgang Denk 					 CONFIG_SYS_INIT_RAM_SIZE - 8)
305dd9f054eSTsiChung Liew #define DCACHE_STATUS			(CONFIG_SYS_INIT_RAM_ADDR + \
306553f0982SWolfgang Denk 					 CONFIG_SYS_INIT_RAM_SIZE - 4)
307dd9f054eSTsiChung Liew #define CONFIG_SYS_ICACHE_INV		(CF_CACR_CINVA)
308dd9f054eSTsiChung Liew #define CONFIG_SYS_CACHE_ACR0		(CONFIG_SYS_SDRAM_BASE | \
309dd9f054eSTsiChung Liew 					 CF_ADDRMASK(CONFIG_SYS_SDRAM_SIZE) | \
310dd9f054eSTsiChung Liew 					 CF_ACR_EN | CF_ACR_SM_ALL)
311dd9f054eSTsiChung Liew #define CONFIG_SYS_CACHE_ICACR		(CF_CACR_EC | CF_CACR_CINVA | \
312dd9f054eSTsiChung Liew 					 CF_CACR_DCM_P)
313dd9f054eSTsiChung Liew 
3149d79e575SWolfgang Wegner #endif	/* _CONFIG_ASTRO_MCF5373L_H */
315