xref: /rk3399_rockchip-uboot/include/configs/controlcenterdc.h (revision 0941f597a2bdb80164658c8fe165ee8da4ece6fc)
1*60083261SDirk Eibach /*
2*60083261SDirk Eibach  * Copyright (C) 2014 Stefan Roese <sr@denx.de>
3*60083261SDirk Eibach  * Copyright (C) 2016 Mario Six <mario.six@gdsys.cc>
4*60083261SDirk Eibach  *
5*60083261SDirk Eibach  * SPDX-License-Identifier:	GPL-2.0+
6*60083261SDirk Eibach  */
7*60083261SDirk Eibach 
8*60083261SDirk Eibach #ifndef _CONFIG_CONTROLCENTERDC_H
9*60083261SDirk Eibach #define _CONFIG_CONTROLCENTERDC_H
10*60083261SDirk Eibach 
11*60083261SDirk Eibach /*
12*60083261SDirk Eibach  * High Level Configuration Options (easy to change)
13*60083261SDirk Eibach  */
14*60083261SDirk Eibach #define CONFIG_CUSTOMER_BOARD_SUPPORT
15*60083261SDirk Eibach 
16*60083261SDirk Eibach #define CONFIG_SKIP_LOWLEVEL_INIT	/* disable board lowlevel_init */
17*60083261SDirk Eibach #define CONFIG_DISPLAY_BOARDINFO_LATE
18*60083261SDirk Eibach #define CONFIG_BOARD_LATE_INIT
19*60083261SDirk Eibach #define CONFIG_LAST_STAGE_INIT
20*60083261SDirk Eibach 
21*60083261SDirk Eibach /*
22*60083261SDirk Eibach  * TEXT_BASE needs to be below 16MiB, since this area is scrubbed
23*60083261SDirk Eibach  * for DDR ECC byte filling in the SPL before loading the main
24*60083261SDirk Eibach  * U-Boot into it.
25*60083261SDirk Eibach  */
26*60083261SDirk Eibach #define	CONFIG_SYS_TEXT_BASE	0x00800000
27*60083261SDirk Eibach 
28*60083261SDirk Eibach #define CONFIG_SYS_TCLK		250000000	/* 250MHz */
29*60083261SDirk Eibach 
30*60083261SDirk Eibach #define CONFIG_LOADADDR 		1000000
31*60083261SDirk Eibach 
32*60083261SDirk Eibach /*
33*60083261SDirk Eibach  * Commands configuration
34*60083261SDirk Eibach  */
35*60083261SDirk Eibach #define CONFIG_CMD_I2C
36*60083261SDirk Eibach #define CONFIG_CMD_SPI
37*60083261SDirk Eibach 
38*60083261SDirk Eibach /* SPI NOR flash default params, used by sf commands */
39*60083261SDirk Eibach #define CONFIG_SF_DEFAULT_BUS		1
40*60083261SDirk Eibach #define CONFIG_SF_DEFAULT_SPEED		1000000
41*60083261SDirk Eibach #define CONFIG_SF_DEFAULT_MODE		SPI_MODE_3
42*60083261SDirk Eibach 
43*60083261SDirk Eibach /*
44*60083261SDirk Eibach  * SDIO/MMC Card Configuration
45*60083261SDirk Eibach  */
46*60083261SDirk Eibach #define CONFIG_SYS_MMC_BASE		MVEBU_SDIO_BASE
47*60083261SDirk Eibach 
48*60083261SDirk Eibach /*
49*60083261SDirk Eibach  * SATA/SCSI/AHCI configuration
50*60083261SDirk Eibach  */
51*60083261SDirk Eibach #define CONFIG_LIBATA
52*60083261SDirk Eibach #define CONFIG_SCSI_AHCI
53*60083261SDirk Eibach #define CONFIG_SCSI_AHCI_PLAT
54*60083261SDirk Eibach #define CONFIG_SYS_SCSI_MAX_SCSI_ID	2
55*60083261SDirk Eibach #define CONFIG_SYS_SCSI_MAX_LUN		1
56*60083261SDirk Eibach #define CONFIG_SYS_SCSI_MAX_DEVICE	(CONFIG_SYS_SCSI_MAX_SCSI_ID * \
57*60083261SDirk Eibach 					 CONFIG_SYS_SCSI_MAX_LUN)
58*60083261SDirk Eibach 
59*60083261SDirk Eibach /* Additional FS support/configuration */
60*60083261SDirk Eibach #define CONFIG_SUPPORT_VFAT
61*60083261SDirk Eibach 
62*60083261SDirk Eibach /* USB/EHCI configuration */
63*60083261SDirk Eibach #define CONFIG_EHCI_IS_TDI
64*60083261SDirk Eibach 
65*60083261SDirk Eibach /* Environment in SPI NOR flash */
66*60083261SDirk Eibach #define CONFIG_ENV_SPI_BUS		1
67*60083261SDirk Eibach #define CONFIG_ENV_OFFSET		(1 << 20) /* 1MiB in */
68*60083261SDirk Eibach #define CONFIG_ENV_SIZE			(64 << 10) /* 64KiB */
69*60083261SDirk Eibach #define CONFIG_ENV_SECT_SIZE		(256 << 10) /* 256KiB sectors */
70*60083261SDirk Eibach 
71*60083261SDirk Eibach #define CONFIG_PHY_MARVELL		/* there is a marvell phy */
72*60083261SDirk Eibach #define PHY_ANEG_TIMEOUT	8000	/* PHY needs a longer aneg time */
73*60083261SDirk Eibach 
74*60083261SDirk Eibach /* PCIe support */
75*60083261SDirk Eibach #ifndef CONFIG_SPL_BUILD
76*60083261SDirk Eibach #define CONFIG_PCI
77*60083261SDirk Eibach #define CONFIG_PCI_MVEBU
78*60083261SDirk Eibach #define CONFIG_PCI_PNP
79*60083261SDirk Eibach #define CONFIG_PCI_SCAN_SHOW
80*60083261SDirk Eibach #endif
81*60083261SDirk Eibach 
82*60083261SDirk Eibach #define CONFIG_SYS_ALT_MEMTEST
83*60083261SDirk Eibach 
84*60083261SDirk Eibach /*
85*60083261SDirk Eibach  * Software (bit-bang) MII driver configuration
86*60083261SDirk Eibach  */
87*60083261SDirk Eibach #define CONFIG_BITBANGMII		/* bit-bang MII PHY management */
88*60083261SDirk Eibach #define CONFIG_BITBANGMII_MULTI
89*60083261SDirk Eibach 
90*60083261SDirk Eibach /* SPL */
91*60083261SDirk Eibach /*
92*60083261SDirk Eibach  * Select the boot device here
93*60083261SDirk Eibach  *
94*60083261SDirk Eibach  * Currently supported are:
95*60083261SDirk Eibach  * SPL_BOOT_SPI_NOR_FLASH	- Booting via SPI NOR flash
96*60083261SDirk Eibach  * SPL_BOOT_SDIO_MMC_CARD	- Booting via SDIO/MMC card (partition 1)
97*60083261SDirk Eibach  */
98*60083261SDirk Eibach #define SPL_BOOT_SPI_NOR_FLASH		1
99*60083261SDirk Eibach #define SPL_BOOT_SDIO_MMC_CARD		2
100*60083261SDirk Eibach #define CONFIG_SPL_BOOT_DEVICE		SPL_BOOT_SPI_NOR_FLASH
101*60083261SDirk Eibach 
102*60083261SDirk Eibach /* Defines for SPL */
103*60083261SDirk Eibach #define CONFIG_SPL_FRAMEWORK
104*60083261SDirk Eibach #define CONFIG_SPL_SIZE			(160 << 10)
105*60083261SDirk Eibach 
106*60083261SDirk Eibach #if defined(CONFIG_SECURED_MODE_IMAGE)
107*60083261SDirk Eibach #define CONFIG_SPL_TEXT_BASE		0x40002614
108*60083261SDirk Eibach #define CONFIG_SPL_MAX_SIZE		(CONFIG_SPL_SIZE - 0x2614)
109*60083261SDirk Eibach #else
110*60083261SDirk Eibach #define CONFIG_SPL_TEXT_BASE		0x40000030
111*60083261SDirk Eibach #define CONFIG_SPL_MAX_SIZE		(CONFIG_SPL_SIZE - 0x30)
112*60083261SDirk Eibach #endif
113*60083261SDirk Eibach 
114*60083261SDirk Eibach #define CONFIG_SPL_BSS_START_ADDR	(0x40000000 + CONFIG_SPL_SIZE)
115*60083261SDirk Eibach #define CONFIG_SPL_BSS_MAX_SIZE		(16 << 10)
116*60083261SDirk Eibach 
117*60083261SDirk Eibach #ifdef CONFIG_SPL_BUILD
118*60083261SDirk Eibach #define CONFIG_SYS_MALLOC_SIMPLE
119*60083261SDirk Eibach #endif
120*60083261SDirk Eibach 
121*60083261SDirk Eibach #define CONFIG_SPL_STACK		(0x40000000 + ((212 - 16) << 10))
122*60083261SDirk Eibach #define CONFIG_SPL_BOOTROM_SAVE		(CONFIG_SPL_STACK + 4)
123*60083261SDirk Eibach 
124*60083261SDirk Eibach #define CONFIG_SPL_LIBCOMMON_SUPPORT
125*60083261SDirk Eibach #define CONFIG_SPL_LIBGENERIC_SUPPORT
126*60083261SDirk Eibach #define CONFIG_SPL_SERIAL_SUPPORT
127*60083261SDirk Eibach #define CONFIG_SPL_I2C_SUPPORT
128*60083261SDirk Eibach 
129*60083261SDirk Eibach #if CONFIG_SPL_BOOT_DEVICE == SPL_BOOT_SPI_NOR_FLASH
130*60083261SDirk Eibach /* SPL related SPI defines */
131*60083261SDirk Eibach #define CONFIG_SPL_SPI_LOAD
132*60083261SDirk Eibach #define CONFIG_SYS_SPI_U_BOOT_OFFS	0x30000
133*60083261SDirk Eibach #define CONFIG_SYS_U_BOOT_OFFS		CONFIG_SYS_SPI_U_BOOT_OFFS
134*60083261SDirk Eibach #endif
135*60083261SDirk Eibach 
136*60083261SDirk Eibach #if CONFIG_SPL_BOOT_DEVICE == SPL_BOOT_SDIO_MMC_CARD
137*60083261SDirk Eibach /* SPL related MMC defines */
138*60083261SDirk Eibach #define CONFIG_SPL_MMC_SUPPORT
139*60083261SDirk Eibach #define CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_PARTITION 1
140*60083261SDirk Eibach #define CONFIG_SYS_MMC_U_BOOT_OFFS		(168 << 10)
141*60083261SDirk Eibach #define CONFIG_SYS_U_BOOT_OFFS			CONFIG_SYS_MMC_U_BOOT_OFFS
142*60083261SDirk Eibach #define CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_SECTOR	(CONFIG_SYS_U_BOOT_OFFS / 512)
143*60083261SDirk Eibach #ifdef CONFIG_SPL_BUILD
144*60083261SDirk Eibach #define CONFIG_FIXED_SDHCI_ALIGNED_BUFFER	0x00180000	/* in SDRAM */
145*60083261SDirk Eibach #endif
146*60083261SDirk Eibach #endif
147*60083261SDirk Eibach 
148*60083261SDirk Eibach /*
149*60083261SDirk Eibach  * Environment Configuration
150*60083261SDirk Eibach  */
151*60083261SDirk Eibach #define CONFIG_ENV_OVERWRITE
152*60083261SDirk Eibach 
153*60083261SDirk Eibach #define CONFIG_BAUDRATE 115200
154*60083261SDirk Eibach 
155*60083261SDirk Eibach #define CONFIG_HOSTNAME		ccdc
156*60083261SDirk Eibach #define CONFIG_ROOTPATH		"/opt/nfsroot"
157*60083261SDirk Eibach #define CONFIG_BOOTFILE		"ccdc.img"
158*60083261SDirk Eibach 
159*60083261SDirk Eibach #define CONFIG_PREBOOT		/* enable preboot variable */
160*60083261SDirk Eibach 
161*60083261SDirk Eibach #define CONFIG_EXTRA_ENV_SETTINGS						\
162*60083261SDirk Eibach 	"netdev=eth1\0"						\
163*60083261SDirk Eibach 	"consoledev=ttyS1\0"							\
164*60083261SDirk Eibach 	"u-boot=u-boot.bin\0"							\
165*60083261SDirk Eibach 	"bootfile_addr=1000000\0"						\
166*60083261SDirk Eibach 	"keyprogram_addr=3000000\0"						\
167*60083261SDirk Eibach 	"keyprogram_file=keyprogram.img\0"						\
168*60083261SDirk Eibach 	"fdtfile=controlcenterdc.dtb\0"						\
169*60083261SDirk Eibach 	"load=tftpboot ${loadaddr} ${u-boot}\0"					\
170*60083261SDirk Eibach 	"mmcdev=0:2\0"								\
171*60083261SDirk Eibach 	"update=sf probe 1:0;"							\
172*60083261SDirk Eibach 		" sf erase 0 +${filesize};"					\
173*60083261SDirk Eibach 		" sf write ${fileaddr} 0 ${filesize}\0"				\
174*60083261SDirk Eibach 	"upd=run load update\0"							\
175*60083261SDirk Eibach 	"fdt_high=0x10000000\0"							\
176*60083261SDirk Eibach 	"initrd_high=0x10000000\0"						\
177*60083261SDirk Eibach 	"loadkeyprogram=tpm flush_keys;"					\
178*60083261SDirk Eibach 		" mmc rescan;"							\
179*60083261SDirk Eibach 		" ext4load mmc ${mmcdev} ${keyprogram_addr} ${keyprogram_file};"\
180*60083261SDirk Eibach 		" source ${keyprogram_addr}:script@1\0"				\
181*60083261SDirk Eibach 	"gpio1=gpio@22_25\0"							\
182*60083261SDirk Eibach 	"gpio2=A29\0"								\
183*60083261SDirk Eibach 	"blinkseq='0 0 0 0 2 0 2 2 3 1 3 1 0 0 2 2 3 1 3 3 2 0 2 2 3 1 1 1 "	\
184*60083261SDirk Eibach 		  "2 0 2 2 3 1 3 1 0 0 2 0 3 3 3 1 2 0 0 0 3 1 1 1 0 0 0 0'\0"	\
185*60083261SDirk Eibach 	"bootfail=for i in ${blinkseq}; do"					\
186*60083261SDirk Eibach 		" if test $i -eq 0; then"					\
187*60083261SDirk Eibach 		" gpio clear ${gpio1}; gpio set ${gpio2};"			\
188*60083261SDirk Eibach 		" elif test $i -eq 1; then"					\
189*60083261SDirk Eibach 		" gpio clear ${gpio1}; gpio clear ${gpio2};"			\
190*60083261SDirk Eibach 		" elif test $i -eq 2; then"					\
191*60083261SDirk Eibach 		" gpio set ${gpio1}; gpio set ${gpio2};"			\
192*60083261SDirk Eibach 		" else;"							\
193*60083261SDirk Eibach 		" gpio clear ${gpio1}; gpio set ${gpio2};"			\
194*60083261SDirk Eibach 		" fi; sleep 0.12; done\0"
195*60083261SDirk Eibach 
196*60083261SDirk Eibach #define CONFIG_NFSBOOTCOMMAND								\
197*60083261SDirk Eibach 	"setenv bootargs root=/dev/nfs rw "						\
198*60083261SDirk Eibach 	"nfsroot=${serverip}:${rootpath} "						\
199*60083261SDirk Eibach 	"ip=${ipaddr}:${serverip}:${gatewayip}:${netmask}:${hostname}:${netdev}:off "	\
200*60083261SDirk Eibach 	"console=${consoledev},${baudrate} ${othbootargs}; "				\
201*60083261SDirk Eibach 	"tftpboot ${bootfile_addr} ${bootfile}; "						\
202*60083261SDirk Eibach 	"bootm ${bootfile_addr}"
203*60083261SDirk Eibach 
204*60083261SDirk Eibach #define CONFIG_MMCBOOTCOMMAND					\
205*60083261SDirk Eibach 	"setenv bootargs root=/dev/mmcblk0p3 rw rootwait "	\
206*60083261SDirk Eibach 	"console=${consoledev},${baudrate} ${othbootargs}; "	\
207*60083261SDirk Eibach 	"ext2load mmc 0:2 ${bootfile_addr} ${bootfile}; "	\
208*60083261SDirk Eibach 	"bootm ${bootfile_addr}"
209*60083261SDirk Eibach 
210*60083261SDirk Eibach #define CONFIG_BOOTCOMMAND			\
211*60083261SDirk Eibach 	"if env exists keyprogram; then;"	\
212*60083261SDirk Eibach 	" setenv keyprogram; run nfsboot;"	\
213*60083261SDirk Eibach         " fi;"					\
214*60083261SDirk Eibach         " run dobootfail"
215*60083261SDirk Eibach 
216*60083261SDirk Eibach /*
217*60083261SDirk Eibach  * mv-common.h should be defined after CMD configs since it used them
218*60083261SDirk Eibach  * to enable certain macros
219*60083261SDirk Eibach  */
220*60083261SDirk Eibach #include "mv-common.h"
221*60083261SDirk Eibach 
222*60083261SDirk Eibach #endif /* _CONFIG_CONTROLCENTERDC_H */
223