xref: /openbmc/u-boot/include/configs/corvus.h (revision 86cf1c82850f7c226f23684e19616e526ffaf10f)
1*83d290c5STom Rini /* SPDX-License-Identifier: GPL-2.0+ */
2b89ac72aSHeiko Schocher /*
3b89ac72aSHeiko Schocher  * Common board functions for siemens AT91SAM9G45 based boards
4b89ac72aSHeiko Schocher  * (C) Copyright 2013 Siemens AG
5b89ac72aSHeiko Schocher  *
6b89ac72aSHeiko Schocher  * Based on:
7b89ac72aSHeiko Schocher  * U-Boot file: include/configs/at91sam9m10g45ek.h
8b89ac72aSHeiko Schocher  * (C) Copyright 2007-2008
9b89ac72aSHeiko Schocher  * Stelian Pop <stelian@popies.net>
10b89ac72aSHeiko Schocher  * Lead Tech Design <www.leadtechdesign.com>
11b89ac72aSHeiko Schocher  */
12b89ac72aSHeiko Schocher 
13b89ac72aSHeiko Schocher #ifndef __CONFIG_H
14b89ac72aSHeiko Schocher #define __CONFIG_H
15b89ac72aSHeiko Schocher 
16b89ac72aSHeiko Schocher #include <asm/hardware.h>
17fd45a0d1SHeiko Schocher #include <linux/sizes.h>
18b89ac72aSHeiko Schocher 
19b89ac72aSHeiko Schocher /*
20b89ac72aSHeiko Schocher  * Warning: changing CONFIG_SYS_TEXT_BASE requires
21b89ac72aSHeiko Schocher  * adapting the initial boot program.
22b89ac72aSHeiko Schocher  * Since the linker has to swallow that define, we must use a pure
23b89ac72aSHeiko Schocher  * hex number here!
24b89ac72aSHeiko Schocher  */
25b89ac72aSHeiko Schocher 
26b89ac72aSHeiko Schocher #define CONFIG_ATMEL_LEGACY		/* required until (g)pio is fixed */
27b89ac72aSHeiko Schocher 
28b89ac72aSHeiko Schocher /* ARM asynchronous clock */
29b89ac72aSHeiko Schocher #define CONFIG_SYS_AT91_SLOW_CLOCK      32768
30b89ac72aSHeiko Schocher #define CONFIG_SYS_AT91_MAIN_CLOCK      12000000 /* from 12 MHz crystal */
31b89ac72aSHeiko Schocher 
32b89ac72aSHeiko Schocher #define CONFIG_CMDLINE_TAG		/* enable passing of ATAGs	*/
33b89ac72aSHeiko Schocher #define CONFIG_SETUP_MEMORY_TAGS
34b89ac72aSHeiko Schocher #define CONFIG_INITRD_TAG
35289f979cSHeiko Schocher #define CONFIG_SKIP_LOWLEVEL_INIT_ONLY
36b89ac72aSHeiko Schocher 
37b89ac72aSHeiko Schocher /* general purpose I/O */
38b89ac72aSHeiko Schocher #define CONFIG_ATMEL_LEGACY		/* required until (g)pio is fixed */
39b89ac72aSHeiko Schocher #define CONFIG_AT91_GPIO
40b89ac72aSHeiko Schocher #define CONFIG_AT91_GPIO_PULLUP	1	/* keep pullups on peripheral pins */
41b89ac72aSHeiko Schocher 
42b89ac72aSHeiko Schocher /* serial console */
43b89ac72aSHeiko Schocher #define CONFIG_USART_BASE		ATMEL_BASE_DBGU
44b89ac72aSHeiko Schocher #define CONFIG_USART_ID			ATMEL_ID_SYS
45b89ac72aSHeiko Schocher 
46b89ac72aSHeiko Schocher /* LED */
47b89ac72aSHeiko Schocher #define CONFIG_AT91_LED
48b89ac72aSHeiko Schocher #define CONFIG_RED_LED		AT91_PIN_PD31	/* this is the user1 led */
49b89ac72aSHeiko Schocher #define CONFIG_GREEN_LED	AT91_PIN_PD0	/* this is the user2 led */
50b89ac72aSHeiko Schocher 
51b89ac72aSHeiko Schocher 
52b89ac72aSHeiko Schocher /*
53b89ac72aSHeiko Schocher  * BOOTP options
54b89ac72aSHeiko Schocher  */
55b89ac72aSHeiko Schocher #define CONFIG_BOOTP_BOOTFILESIZE
56b89ac72aSHeiko Schocher 
57b89ac72aSHeiko Schocher /* SDRAM */
58b89ac72aSHeiko Schocher #define CONFIG_SYS_SDRAM_BASE           ATMEL_BASE_CS6
59b89ac72aSHeiko Schocher #define CONFIG_SYS_SDRAM_SIZE		0x08000000
60b89ac72aSHeiko Schocher 
61b89ac72aSHeiko Schocher #define CONFIG_SYS_INIT_SP_ADDR \
6272fa5893SHeiko Schocher 	(CONFIG_SYS_SDRAM_BASE + SZ_32K - GENERATED_GBL_DATA_SIZE)
63b89ac72aSHeiko Schocher 
64b89ac72aSHeiko Schocher /* NAND flash */
65b89ac72aSHeiko Schocher #ifdef CONFIG_CMD_NAND
66b89ac72aSHeiko Schocher #define CONFIG_SYS_MAX_NAND_DEVICE		1
67b89ac72aSHeiko Schocher #define CONFIG_SYS_NAND_BASE			ATMEL_BASE_CS3
68b89ac72aSHeiko Schocher #define CONFIG_SYS_NAND_DBW_8
69b89ac72aSHeiko Schocher /* our ALE is AD21 */
70b89ac72aSHeiko Schocher #define CONFIG_SYS_NAND_MASK_ALE		(1 << 21)
71b89ac72aSHeiko Schocher /* our CLE is AD22 */
72b89ac72aSHeiko Schocher #define CONFIG_SYS_NAND_MASK_CLE		(1 << 22)
73b89ac72aSHeiko Schocher #define CONFIG_SYS_NAND_ENABLE_PIN		AT91_PIN_PC14
74a5f8ccaeSHeiko Schocher #define CONFIG_SYS_NAND_READY_PIN		AT91_PIN_PC8
75b89ac72aSHeiko Schocher #endif
76b89ac72aSHeiko Schocher 
77b89ac72aSHeiko Schocher /* Ethernet */
78b89ac72aSHeiko Schocher #define CONFIG_MACB
79b89ac72aSHeiko Schocher #define CONFIG_RMII
80b89ac72aSHeiko Schocher #define CONFIG_NET_RETRY_COUNT		20
81b89ac72aSHeiko Schocher #define CONFIG_AT91_WANTS_COMMON_PHY
82b89ac72aSHeiko Schocher 
83e11793bcSHeiko Schocher /* DFU class support */
84e11793bcSHeiko Schocher #define CONFIG_SYS_DFU_DATA_BUF_SIZE	(SZ_1M)
85e11793bcSHeiko Schocher #define DFU_MANIFEST_POLL_TIMEOUT	25000
86e11793bcSHeiko Schocher 
87e11793bcSHeiko Schocher #define CONFIG_SYS_LOAD_ADDR	ATMEL_BASE_CS6
88b89ac72aSHeiko Schocher 
89b89ac72aSHeiko Schocher /* bootstrap + u-boot + env in nandflash */
90b89ac72aSHeiko Schocher #define CONFIG_ENV_OFFSET		0x100000
91b89ac72aSHeiko Schocher #define CONFIG_ENV_OFFSET_REDUND	0x180000
92fd45a0d1SHeiko Schocher #define CONFIG_ENV_SIZE			SZ_128K
93b89ac72aSHeiko Schocher 
94b89ac72aSHeiko Schocher #define CONFIG_BOOTCOMMAND						\
95b89ac72aSHeiko Schocher 	"nand read 0x70000000 0x200000 0x300000;"			\
96b89ac72aSHeiko Schocher 	"bootm 0x70000000"
97b89ac72aSHeiko Schocher 
98b89ac72aSHeiko Schocher /*
99b89ac72aSHeiko Schocher  * Size of malloc() pool
100b89ac72aSHeiko Schocher  */
101b89ac72aSHeiko Schocher #define CONFIG_SYS_MALLOC_LEN	ROUND(3 * CONFIG_ENV_SIZE + \
102fd45a0d1SHeiko Schocher 				SZ_4M, 0x1000)
103fd45a0d1SHeiko Schocher 
1045b15fd98SHeiko Schocher /* Defines for SPL */
1055b15fd98SHeiko Schocher #define CONFIG_SPL_TEXT_BASE		0x300000
106fd45a0d1SHeiko Schocher #define CONFIG_SPL_MAX_SIZE		(12 * SZ_1K)
107fd45a0d1SHeiko Schocher #define CONFIG_SPL_STACK		(SZ_16K)
1085b15fd98SHeiko Schocher 
1095b15fd98SHeiko Schocher #define CONFIG_SPL_BSS_START_ADDR	CONFIG_SPL_MAX_SIZE
110fd45a0d1SHeiko Schocher #define CONFIG_SPL_BSS_MAX_SIZE		(SZ_2K)
1115b15fd98SHeiko Schocher 
1125b15fd98SHeiko Schocher #define CONFIG_SPL_NAND_DRIVERS
1135b15fd98SHeiko Schocher #define CONFIG_SPL_NAND_BASE
1145b15fd98SHeiko Schocher #define CONFIG_SPL_NAND_ECC
1155b15fd98SHeiko Schocher #define CONFIG_SPL_NAND_RAW_ONLY
1165b15fd98SHeiko Schocher #define CONFIG_SPL_NAND_SOFTECC
1175b15fd98SHeiko Schocher #define CONFIG_SYS_NAND_U_BOOT_OFFS	0x20000
1185b15fd98SHeiko Schocher #define CONFIG_SYS_NAND_U_BOOT_SIZE	0x80000
1195b15fd98SHeiko Schocher #define	CONFIG_SYS_NAND_U_BOOT_START	CONFIG_SYS_TEXT_BASE
1205b15fd98SHeiko Schocher #define CONFIG_SYS_NAND_U_BOOT_DST	CONFIG_SYS_TEXT_BASE
1215b15fd98SHeiko Schocher #define CONFIG_SYS_NAND_5_ADDR_CYCLE
1225b15fd98SHeiko Schocher 
123fd45a0d1SHeiko Schocher #define CONFIG_SYS_NAND_PAGE_SIZE	SZ_2K
124fd45a0d1SHeiko Schocher #define CONFIG_SYS_NAND_BLOCK_SIZE	(SZ_128K)
1255b15fd98SHeiko Schocher #define CONFIG_SYS_NAND_PAGE_COUNT	(CONFIG_SYS_NAND_BLOCK_SIZE / \
1265b15fd98SHeiko Schocher 					 CONFIG_SYS_NAND_PAGE_SIZE)
1275b15fd98SHeiko Schocher #define CONFIG_SYS_NAND_BAD_BLOCK_POS	NAND_LARGE_BADBLOCK_POS
1285b15fd98SHeiko Schocher #define CONFIG_SYS_NAND_ECCSIZE		256
1295b15fd98SHeiko Schocher #define CONFIG_SYS_NAND_ECCBYTES	3
1305b15fd98SHeiko Schocher #define CONFIG_SYS_NAND_OOBSIZE		64
1315b15fd98SHeiko Schocher #define CONFIG_SYS_NAND_ECCPOS		{ 40, 41, 42, 43, 44, 45, 46, 47, \
1325b15fd98SHeiko Schocher 					  48, 49, 50, 51, 52, 53, 54, 55, \
1335b15fd98SHeiko Schocher 					  56, 57, 58, 59, 60, 61, 62, 63, }
1345b15fd98SHeiko Schocher 
1355b15fd98SHeiko Schocher #define CONFIG_SPL_ATMEL_SIZE
1365b15fd98SHeiko Schocher #define CONFIG_SYS_MASTER_CLOCK		132096000
1375b15fd98SHeiko Schocher #define AT91_PLL_LOCK_TIMEOUT		1000000
1385b15fd98SHeiko Schocher #define CONFIG_SYS_AT91_PLLA		0x20c73f03
1395b15fd98SHeiko Schocher #define CONFIG_SYS_MCKR			0x1301
1405b15fd98SHeiko Schocher #define CONFIG_SYS_MCKR_CSS		0x1302
1415b15fd98SHeiko Schocher 
142b89ac72aSHeiko Schocher #endif
143