xref: /rk3399_rockchip-uboot/include/configs/smartweb.h (revision 577968e5669858e1d5bcb651ab28d60d20166252)
13b5df50eSHeiko Schocher /*
23b5df50eSHeiko Schocher  * (C) Copyright 2007-2008
33b5df50eSHeiko Schocher  * Stelian Pop <stelian@popies.net>
43b5df50eSHeiko Schocher  * Lead Tech Design <www.leadtechdesign.com>
53b5df50eSHeiko Schocher  *
63b5df50eSHeiko Schocher  * (C) Copyright 2010
73b5df50eSHeiko Schocher  * Achim Ehrlich <aehrlich@taskit.de>
83b5df50eSHeiko Schocher  * taskit GmbH <www.taskit.de>
93b5df50eSHeiko Schocher  *
103b5df50eSHeiko Schocher  * (C) Copyright 2012
113b5df50eSHeiko Schocher  * Markus Hubig <mhubig@imko.de>
123b5df50eSHeiko Schocher  * IMKO GmbH <www.imko.de>
133b5df50eSHeiko Schocher  *
143b5df50eSHeiko Schocher  * (C) Copyright 2014
153b5df50eSHeiko Schocher  * Heiko Schocher <hs@denx.de>
163b5df50eSHeiko Schocher  * DENX Software Engineering GmbH
173b5df50eSHeiko Schocher  *
183b5df50eSHeiko Schocher  * Configuation settings for the smartweb.
193b5df50eSHeiko Schocher  *
203b5df50eSHeiko Schocher  * SPDX-License-Identifier:	GPL-2.0+
213b5df50eSHeiko Schocher  */
223b5df50eSHeiko Schocher 
233b5df50eSHeiko Schocher #ifndef __CONFIG_H
243b5df50eSHeiko Schocher #define __CONFIG_H
253b5df50eSHeiko Schocher 
263b5df50eSHeiko Schocher /*
273b5df50eSHeiko Schocher  * SoC must be defined first, before hardware.h is included.
283b5df50eSHeiko Schocher  * In this case SoC is defined in boards.cfg.
293b5df50eSHeiko Schocher  */
303b5df50eSHeiko Schocher #include <asm/hardware.h>
31e8b81eefSHeiko Schocher #include <linux/sizes.h>
323b5df50eSHeiko Schocher 
333b5df50eSHeiko Schocher /*
343b5df50eSHeiko Schocher  * Warning: changing CONFIG_SYS_TEXT_BASE requires adapting the initial boot
353b5df50eSHeiko Schocher  * program. Since the linker has to swallow that define, we must use a pure
363b5df50eSHeiko Schocher  * hex number here!
373b5df50eSHeiko Schocher  */
383b5df50eSHeiko Schocher #define CONFIG_SYS_TEXT_BASE		0x23000000
393b5df50eSHeiko Schocher 
403b5df50eSHeiko Schocher /* ARM asynchronous clock */
413b5df50eSHeiko Schocher #define CONFIG_SYS_AT91_SLOW_CLOCK	32768		/* slow clock xtal */
423b5df50eSHeiko Schocher #define CONFIG_SYS_AT91_MAIN_CLOCK	18432000	/* 18.432MHz crystal */
433b5df50eSHeiko Schocher 
443b5df50eSHeiko Schocher /* misc settings */
453b5df50eSHeiko Schocher #define CONFIG_CMDLINE_TAG		/* pass commandline to Kernel */
463b5df50eSHeiko Schocher #define CONFIG_SETUP_MEMORY_TAGS	/* pass memory defs to kernel */
473b5df50eSHeiko Schocher #define CONFIG_INITRD_TAG		/* pass initrd param to kernel */
4813ee7890SHeiko Schocher #define CONFIG_SKIP_LOWLEVEL_INIT_ONLY	/* U-Boot is loaded by a bootloader */
493b5df50eSHeiko Schocher 
50b96fd825SMatthias Michel /* We set the max number of command args high to avoid HUSH bugs. */
51b96fd825SMatthias Michel #define CONFIG_SYS_MAXARGS    32
52b96fd825SMatthias Michel 
533b5df50eSHeiko Schocher /* setting board specific options */
54*94ba26f2STom Rini #define CONFIG_MACH_TYPE		MACH_TYPE_SMARTWEB
553b5df50eSHeiko Schocher #define CONFIG_AUTO_COMPLETE
56b96fd825SMatthias Michel #define CONFIG_ENV_OVERWRITE    1 /* Overwrite ethaddr / serial# */
57b96fd825SMatthias Michel #define CONFIG_AUTO_COMPLETE
58b96fd825SMatthias Michel #define CONFIG_SYS_AUTOLOAD "yes"
59b96fd825SMatthias Michel #define CONFIG_RESET_TO_RETRY
603b5df50eSHeiko Schocher 
613b5df50eSHeiko Schocher /* The LED PINs */
623b5df50eSHeiko Schocher #define CONFIG_RED_LED			AT91_PIN_PA9
633b5df50eSHeiko Schocher #define CONFIG_GREEN_LED		AT91_PIN_PA6
643b5df50eSHeiko Schocher 
653b5df50eSHeiko Schocher /*
663b5df50eSHeiko Schocher  * SDRAM: 1 bank, 64 MB, base address 0x20000000
673b5df50eSHeiko Schocher  * Already initialized before u-boot gets started.
683b5df50eSHeiko Schocher  */
693b5df50eSHeiko Schocher #define CONFIG_NR_DRAM_BANKS		1
703b5df50eSHeiko Schocher #define CONFIG_SYS_SDRAM_BASE		ATMEL_BASE_CS1
71e8b81eefSHeiko Schocher #define CONFIG_SYS_SDRAM_SIZE		(64 * SZ_1M)
723b5df50eSHeiko Schocher 
733b5df50eSHeiko Schocher /*
743b5df50eSHeiko Schocher  * Perform a SDRAM Memtest from the start of SDRAM
753b5df50eSHeiko Schocher  * till the beginning of the U-Boot position in RAM.
763b5df50eSHeiko Schocher  */
773b5df50eSHeiko Schocher #define CONFIG_SYS_MEMTEST_START	CONFIG_SYS_SDRAM_BASE
783b5df50eSHeiko Schocher #define CONFIG_SYS_MEMTEST_END		(CONFIG_SYS_TEXT_BASE - 0x100000)
793b5df50eSHeiko Schocher 
803b5df50eSHeiko Schocher /* Size of malloc() pool */
813b5df50eSHeiko Schocher #define CONFIG_SYS_MALLOC_LEN \
82e8b81eefSHeiko Schocher 	ROUND(3 * CONFIG_ENV_SIZE + (4 * SZ_1M), 0x1000)
833b5df50eSHeiko Schocher 
843b5df50eSHeiko Schocher /* NAND flash settings */
853b5df50eSHeiko Schocher #define CONFIG_SYS_MAX_NAND_DEVICE	1
863b5df50eSHeiko Schocher #define CONFIG_SYS_NAND_BASE		ATMEL_BASE_CS3
873b5df50eSHeiko Schocher #define CONFIG_SYS_NAND_DBW_8
883b5df50eSHeiko Schocher #define CONFIG_SYS_NAND_MASK_ALE	(1 << 21)
893b5df50eSHeiko Schocher #define CONFIG_SYS_NAND_MASK_CLE	(1 << 22)
903b5df50eSHeiko Schocher #define CONFIG_SYS_NAND_ENABLE_PIN	AT91_PIN_PC14
913b5df50eSHeiko Schocher #define CONFIG_SYS_NAND_READY_PIN	AT91_PIN_PC13
923b5df50eSHeiko Schocher 
933b5df50eSHeiko Schocher /* general purpose I/O */
943b5df50eSHeiko Schocher #define CONFIG_ATMEL_LEGACY		/* required until (g)pio is fixed */
953b5df50eSHeiko Schocher #define CONFIG_AT91_GPIO		/* enable the GPIO features */
963b5df50eSHeiko Schocher #define CONFIG_AT91_GPIO_PULLUP	1	/* keep pullups on peripheral pins */
973b5df50eSHeiko Schocher 
983b5df50eSHeiko Schocher /* serial console */
993b5df50eSHeiko Schocher #define CONFIG_ATMEL_USART
1003b5df50eSHeiko Schocher #define CONFIG_USART_BASE		ATMEL_BASE_DBGU
1013b5df50eSHeiko Schocher #define CONFIG_USART_ID			ATMEL_ID_SYS
1023b5df50eSHeiko Schocher 
1033b5df50eSHeiko Schocher /*
1043b5df50eSHeiko Schocher  * Ethernet configuration
1053b5df50eSHeiko Schocher  *
1063b5df50eSHeiko Schocher  */
1073b5df50eSHeiko Schocher #define CONFIG_MACB
1083b5df50eSHeiko Schocher #define CONFIG_RMII			/* use reduced MII inteface */
1093b5df50eSHeiko Schocher #define CONFIG_NET_RETRY_COUNT	20      /* # of DHCP/BOOTP retries */
1103b5df50eSHeiko Schocher #define CONFIG_AT91_WANTS_COMMON_PHY
1113b5df50eSHeiko Schocher 
1123b5df50eSHeiko Schocher /* BOOTP and DHCP options */
1133b5df50eSHeiko Schocher #define CONFIG_BOOTP_BOOTFILESIZE
1143b5df50eSHeiko Schocher #define CONFIG_BOOTP_BOOTPATH
1153b5df50eSHeiko Schocher #define CONFIG_BOOTP_GATEWAY
1163b5df50eSHeiko Schocher #define CONFIG_BOOTP_HOSTNAME
1173b5df50eSHeiko Schocher #define CONFIG_NFSBOOTCOMMAND						\
1183b5df50eSHeiko Schocher 	"setenv autoload yes; setenv autoboot yes; "			\
1193b5df50eSHeiko Schocher 	"setenv bootargs ${basicargs} ${mtdparts} "			\
1203b5df50eSHeiko Schocher 	"root=/dev/nfs ip=dhcp nfsroot=${serverip}:/srv/nfs/rootfs; "	\
1213b5df50eSHeiko Schocher 	"dhcp"
1223b5df50eSHeiko Schocher 
1233b5df50eSHeiko Schocher /* Enable the watchdog */
1243b5df50eSHeiko Schocher #define CONFIG_AT91SAM9_WATCHDOG
1253b5df50eSHeiko Schocher #if !defined(CONFIG_SPL_BUILD)
1263b5df50eSHeiko Schocher #define CONFIG_HW_WATCHDOG
1273b5df50eSHeiko Schocher #endif
1283b5df50eSHeiko Schocher #define CONFIG_AT91_HW_WDT_TIMEOUT	15
1293b5df50eSHeiko Schocher 
1303b5df50eSHeiko Schocher #if !defined(CONFIG_SPL_BUILD)
1313b5df50eSHeiko Schocher /* USB configuration */
1323b5df50eSHeiko Schocher #define CONFIG_USB_ATMEL
1333b5df50eSHeiko Schocher #define CONFIG_USB_ATMEL_CLK_SEL_PLLB
1343b5df50eSHeiko Schocher #define CONFIG_USB_OHCI_NEW
1353b5df50eSHeiko Schocher #define CONFIG_SYS_USB_OHCI_CPU_INIT
1363b5df50eSHeiko Schocher #define CONFIG_SYS_USB_OHCI_REGS_BASE	ATMEL_UHP_BASE
1373b5df50eSHeiko Schocher #define CONFIG_SYS_USB_OHCI_SLOT_NAME	"at91sam9260"
1383b5df50eSHeiko Schocher #define CONFIG_SYS_USB_OHCI_MAX_ROOT_PORTS	2
139e8b81eefSHeiko Schocher 
140e8b81eefSHeiko Schocher /* USB DFU support */
141e8b81eefSHeiko Schocher 
142e8b81eefSHeiko Schocher #define CONFIG_USB_GADGET_AT91
143e8b81eefSHeiko Schocher 
144e8b81eefSHeiko Schocher /* DFU class support */
145e8b81eefSHeiko Schocher #define CONFIG_SYS_DFU_DATA_BUF_SIZE	SZ_1M
146e8b81eefSHeiko Schocher #define DFU_MANIFEST_POLL_TIMEOUT	25000
1473b5df50eSHeiko Schocher #endif
1483b5df50eSHeiko Schocher 
1493b5df50eSHeiko Schocher /* General Boot Parameter */
1503b5df50eSHeiko Schocher #define CONFIG_BOOTCOMMAND		"run flashboot"
1513b5df50eSHeiko Schocher #define CONFIG_SYS_CBSIZE		512
1523b5df50eSHeiko Schocher #define CONFIG_SYS_LONGHELP
1533b5df50eSHeiko Schocher #define CONFIG_CMDLINE_EDITING
1543b5df50eSHeiko Schocher 
1553b5df50eSHeiko Schocher /*
1563b5df50eSHeiko Schocher  * RAM Memory address where to put the
1573b5df50eSHeiko Schocher  * Linux Kernel befor starting.
1583b5df50eSHeiko Schocher  */
1593b5df50eSHeiko Schocher #define CONFIG_SYS_LOAD_ADDR		0x22000000
1603b5df50eSHeiko Schocher 
1613b5df50eSHeiko Schocher /*
1623b5df50eSHeiko Schocher  * The NAND Flash partitions:
1633b5df50eSHeiko Schocher  */
1643b5df50eSHeiko Schocher #define CONFIG_ENV_OFFSET		(0x100000)
1653b5df50eSHeiko Schocher #define CONFIG_ENV_OFFSET_REDUND	(0x180000)
166e8b81eefSHeiko Schocher #define CONFIG_ENV_RANGE		(SZ_512K)
167e8b81eefSHeiko Schocher #define CONFIG_ENV_SIZE			(SZ_128K)
1683b5df50eSHeiko Schocher 
1693b5df50eSHeiko Schocher /*
1703b5df50eSHeiko Schocher  * Predefined environment variables.
1713b5df50eSHeiko Schocher  * Usefull to define some easy to use boot commands.
1723b5df50eSHeiko Schocher  */
1733b5df50eSHeiko Schocher #define	CONFIG_EXTRA_ENV_SETTINGS					\
1743b5df50eSHeiko Schocher 									\
1753b5df50eSHeiko Schocher 	"basicargs=console=ttyS0,115200\0"				\
1763b5df50eSHeiko Schocher 									\
1773b5df50eSHeiko Schocher 	"mtdparts="MTDPARTS_DEFAULT"\0"
1783b5df50eSHeiko Schocher 
1793b5df50eSHeiko Schocher #ifdef CONFIG_SPL_BUILD
1803b5df50eSHeiko Schocher #define CONFIG_SYS_INIT_SP_ADDR		0x301000
1813b5df50eSHeiko Schocher #define CONFIG_SPL_STACK_R
1823b5df50eSHeiko Schocher #define CONFIG_SPL_STACK_R_ADDR		CONFIG_SYS_TEXT_BASE
1833b5df50eSHeiko Schocher #else
1843b5df50eSHeiko Schocher /*
1853b5df50eSHeiko Schocher  * Initial stack pointer: 4k - GENERATED_GBL_DATA_SIZE in internal SRAM,
1863b5df50eSHeiko Schocher  * leaving the correct space for initial global data structure above that
1873b5df50eSHeiko Schocher  * address while providing maximum stack area below.
1883b5df50eSHeiko Schocher  */
1893b5df50eSHeiko Schocher #define CONFIG_SYS_INIT_SP_ADDR \
1903b5df50eSHeiko Schocher 	(ATMEL_BASE_SRAM1 + 0x1000 - GENERATED_GBL_DATA_SIZE)
1913b5df50eSHeiko Schocher #endif
1923b5df50eSHeiko Schocher 
1933b5df50eSHeiko Schocher /* Defines for SPL */
1943b5df50eSHeiko Schocher #define CONFIG_SPL_FRAMEWORK
1953b5df50eSHeiko Schocher #define CONFIG_SPL_TEXT_BASE		0x0
196e8b81eefSHeiko Schocher #define CONFIG_SPL_MAX_SIZE		(SZ_4K)
1973b5df50eSHeiko Schocher 
1983b5df50eSHeiko Schocher #define CONFIG_SPL_BSS_START_ADDR	CONFIG_SYS_SDRAM_BASE
199e8b81eefSHeiko Schocher #define CONFIG_SPL_BSS_MAX_SIZE		(SZ_16K)
2003b5df50eSHeiko Schocher #define CONFIG_SYS_SPL_MALLOC_START     (CONFIG_SPL_BSS_START_ADDR + \
2013b5df50eSHeiko Schocher 					CONFIG_SPL_BSS_MAX_SIZE)
2023b5df50eSHeiko Schocher #define CONFIG_SYS_SPL_MALLOC_SIZE      CONFIG_SYS_MALLOC_LEN
2033b5df50eSHeiko Schocher 
2043b5df50eSHeiko Schocher #define CONFIG_SYS_NAND_ENABLE_PIN_SPL	(2*32 + 14)
2053b5df50eSHeiko Schocher #define CONFIG_SYS_USE_NANDFLASH	1
2063b5df50eSHeiko Schocher #define CONFIG_SPL_NAND_DRIVERS
2073b5df50eSHeiko Schocher #define CONFIG_SPL_NAND_BASE
2083b5df50eSHeiko Schocher #define CONFIG_SPL_NAND_ECC
2093b5df50eSHeiko Schocher #define CONFIG_SPL_NAND_RAW_ONLY
2103b5df50eSHeiko Schocher #define CONFIG_SPL_NAND_SOFTECC
2113b5df50eSHeiko Schocher #define CONFIG_SYS_NAND_U_BOOT_OFFS	0x20000
212e8b81eefSHeiko Schocher #define CONFIG_SYS_NAND_U_BOOT_SIZE	SZ_512K
2133b5df50eSHeiko Schocher #define	CONFIG_SYS_NAND_U_BOOT_START	CONFIG_SYS_TEXT_BASE
2143b5df50eSHeiko Schocher #define CONFIG_SYS_NAND_U_BOOT_DST	CONFIG_SYS_TEXT_BASE
2153b5df50eSHeiko Schocher #define CONFIG_SYS_NAND_5_ADDR_CYCLE
2163b5df50eSHeiko Schocher 
217e8b81eefSHeiko Schocher #define CONFIG_SYS_NAND_SIZE		(SZ_256M)
218e8b81eefSHeiko Schocher #define CONFIG_SYS_NAND_PAGE_SIZE	SZ_2K
219e8b81eefSHeiko Schocher #define CONFIG_SYS_NAND_BLOCK_SIZE	(SZ_128K)
2203b5df50eSHeiko Schocher #define CONFIG_SYS_NAND_PAGE_COUNT	(CONFIG_SYS_NAND_BLOCK_SIZE / \
2213b5df50eSHeiko Schocher 					 CONFIG_SYS_NAND_PAGE_SIZE)
2223b5df50eSHeiko Schocher #define CONFIG_SYS_NAND_BAD_BLOCK_POS	NAND_LARGE_BADBLOCK_POS
2233b5df50eSHeiko Schocher #define CONFIG_SYS_NAND_ECCSIZE		256
2243b5df50eSHeiko Schocher #define CONFIG_SYS_NAND_ECCBYTES	3
2253b5df50eSHeiko Schocher #define CONFIG_SYS_NAND_OOBSIZE		64
2263b5df50eSHeiko Schocher #define CONFIG_SYS_NAND_ECCPOS		{ 40, 41, 42, 43, 44, 45, 46, 47, \
2273b5df50eSHeiko Schocher 					  48, 49, 50, 51, 52, 53, 54, 55, \
2283b5df50eSHeiko Schocher 					  56, 57, 58, 59, 60, 61, 62, 63, }
2293b5df50eSHeiko Schocher 
2303b5df50eSHeiko Schocher #define CONFIG_SPL_ATMEL_SIZE
2313b5df50eSHeiko Schocher #define CONFIG_SYS_MASTER_CLOCK		(198656000/2)
2323b5df50eSHeiko Schocher #define AT91_PLL_LOCK_TIMEOUT		1000000
2333b5df50eSHeiko Schocher #define CONFIG_SYS_AT91_PLLA		0x2060bf09
2343b5df50eSHeiko Schocher #define CONFIG_SYS_MCKR			0x100
2353b5df50eSHeiko Schocher #define CONFIG_SYS_MCKR_CSS		(0x02 | CONFIG_SYS_MCKR)
2363b5df50eSHeiko Schocher #define CONFIG_SYS_AT91_PLLB		0x10483f0e
2373b5df50eSHeiko Schocher 
2383b5df50eSHeiko Schocher #if defined(CONFIG_SPL_BUILD)
2393b5df50eSHeiko Schocher #define CONFIG_SYS_ICACHE_OFF
2403b5df50eSHeiko Schocher #define CONFIG_SYS_DCACHE_OFF
2413b5df50eSHeiko Schocher #endif
2423b5df50eSHeiko Schocher #endif /* __CONFIG_H */
243