xref: /OK3568_Linux_fs/u-boot/include/configs/zynq-common.h (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun /*
2*4882a593Smuzhiyun  * (C) Copyright 2012 Michal Simek <monstr@monstr.eu>
3*4882a593Smuzhiyun  * (C) Copyright 2013 Xilinx, Inc.
4*4882a593Smuzhiyun  *
5*4882a593Smuzhiyun  * Common configuration options for all Zynq boards.
6*4882a593Smuzhiyun  *
7*4882a593Smuzhiyun  * SPDX-License-Identifier:	GPL-2.0+
8*4882a593Smuzhiyun  */
9*4882a593Smuzhiyun 
10*4882a593Smuzhiyun #ifndef __CONFIG_ZYNQ_COMMON_H
11*4882a593Smuzhiyun #define __CONFIG_ZYNQ_COMMON_H
12*4882a593Smuzhiyun 
13*4882a593Smuzhiyun /* CPU clock */
14*4882a593Smuzhiyun #ifndef CONFIG_CPU_FREQ_HZ
15*4882a593Smuzhiyun # define CONFIG_CPU_FREQ_HZ	800000000
16*4882a593Smuzhiyun #endif
17*4882a593Smuzhiyun 
18*4882a593Smuzhiyun /* Cache options */
19*4882a593Smuzhiyun #define CONFIG_SYS_L2CACHE_OFF
20*4882a593Smuzhiyun #ifndef CONFIG_SYS_L2CACHE_OFF
21*4882a593Smuzhiyun # define CONFIG_SYS_L2_PL310
22*4882a593Smuzhiyun # define CONFIG_SYS_PL310_BASE		0xf8f02000
23*4882a593Smuzhiyun #endif
24*4882a593Smuzhiyun 
25*4882a593Smuzhiyun #define ZYNQ_SCUTIMER_BASEADDR		0xF8F00600
26*4882a593Smuzhiyun #define CONFIG_SYS_TIMERBASE		ZYNQ_SCUTIMER_BASEADDR
27*4882a593Smuzhiyun #define CONFIG_SYS_TIMER_COUNTS_DOWN
28*4882a593Smuzhiyun #define CONFIG_SYS_TIMER_COUNTER	(CONFIG_SYS_TIMERBASE + 0x4)
29*4882a593Smuzhiyun 
30*4882a593Smuzhiyun /* Serial drivers */
31*4882a593Smuzhiyun /* The following table includes the supported baudrates */
32*4882a593Smuzhiyun #define CONFIG_SYS_BAUDRATE_TABLE  \
33*4882a593Smuzhiyun 	{300, 600, 1200, 2400, 4800, 9600, 19200, 38400, 57600, 115200, 230400}
34*4882a593Smuzhiyun 
35*4882a593Smuzhiyun #define CONFIG_ARM_DCC
36*4882a593Smuzhiyun #define CONFIG_ZYNQ_SERIAL
37*4882a593Smuzhiyun 
38*4882a593Smuzhiyun /* Ethernet driver */
39*4882a593Smuzhiyun #if defined(CONFIG_ZYNQ_GEM)
40*4882a593Smuzhiyun # define CONFIG_MII
41*4882a593Smuzhiyun # define CONFIG_SYS_FAULT_ECHO_LINK_DOWN
42*4882a593Smuzhiyun # define CONFIG_PHY_MARVELL
43*4882a593Smuzhiyun # define CONFIG_PHY_REALTEK
44*4882a593Smuzhiyun # define CONFIG_PHY_XILINX
45*4882a593Smuzhiyun # define CONFIG_BOOTP_BOOTPATH
46*4882a593Smuzhiyun # define CONFIG_BOOTP_GATEWAY
47*4882a593Smuzhiyun # define CONFIG_BOOTP_HOSTNAME
48*4882a593Smuzhiyun # define CONFIG_BOOTP_MAY_FAIL
49*4882a593Smuzhiyun #endif
50*4882a593Smuzhiyun 
51*4882a593Smuzhiyun /* SPI */
52*4882a593Smuzhiyun #ifdef CONFIG_ZYNQ_SPI
53*4882a593Smuzhiyun #endif
54*4882a593Smuzhiyun 
55*4882a593Smuzhiyun /* QSPI */
56*4882a593Smuzhiyun #ifdef CONFIG_ZYNQ_QSPI
57*4882a593Smuzhiyun # define CONFIG_SF_DEFAULT_SPEED	30000000
58*4882a593Smuzhiyun #endif
59*4882a593Smuzhiyun 
60*4882a593Smuzhiyun /* NOR */
61*4882a593Smuzhiyun #ifdef CONFIG_MTD_NOR_FLASH
62*4882a593Smuzhiyun # define CONFIG_SYS_FLASH_BASE		0xE2000000
63*4882a593Smuzhiyun # define CONFIG_SYS_FLASH_SIZE		(16 * 1024 * 1024)
64*4882a593Smuzhiyun # define CONFIG_SYS_MAX_FLASH_BANKS	1
65*4882a593Smuzhiyun # define CONFIG_SYS_MAX_FLASH_SECT	512
66*4882a593Smuzhiyun # define CONFIG_SYS_FLASH_ERASE_TOUT	1000
67*4882a593Smuzhiyun # define CONFIG_SYS_FLASH_WRITE_TOUT	5000
68*4882a593Smuzhiyun # define CONFIG_FLASH_SHOW_PROGRESS	10
69*4882a593Smuzhiyun # define CONFIG_SYS_FLASH_CFI
70*4882a593Smuzhiyun # undef CONFIG_SYS_FLASH_EMPTY_INFO
71*4882a593Smuzhiyun # define CONFIG_FLASH_CFI_DRIVER
72*4882a593Smuzhiyun # undef CONFIG_SYS_FLASH_PROTECTION
73*4882a593Smuzhiyun # define CONFIG_SYS_FLASH_USE_BUFFER_WRITE
74*4882a593Smuzhiyun #endif
75*4882a593Smuzhiyun 
76*4882a593Smuzhiyun #ifdef CONFIG_NAND_ZYNQ
77*4882a593Smuzhiyun #define CONFIG_SYS_MAX_NAND_DEVICE	1
78*4882a593Smuzhiyun #define CONFIG_SYS_NAND_ONFI_DETECTION
79*4882a593Smuzhiyun #endif
80*4882a593Smuzhiyun 
81*4882a593Smuzhiyun /* MMC */
82*4882a593Smuzhiyun #if defined(CONFIG_MMC_SDHCI_ZYNQ)
83*4882a593Smuzhiyun # define CONFIG_ZYNQ_SDHCI_MAX_FREQ	52000000
84*4882a593Smuzhiyun #endif
85*4882a593Smuzhiyun 
86*4882a593Smuzhiyun #ifdef CONFIG_USB_EHCI_ZYNQ
87*4882a593Smuzhiyun # define CONFIG_EHCI_IS_TDI
88*4882a593Smuzhiyun 
89*4882a593Smuzhiyun # define CONFIG_SYS_DFU_DATA_BUF_SIZE	0x600000
90*4882a593Smuzhiyun # define DFU_DEFAULT_POLL_TIMEOUT	300
91*4882a593Smuzhiyun # define CONFIG_USB_CABLE_CHECK
92*4882a593Smuzhiyun # define CONFIG_THOR_RESET_OFF
93*4882a593Smuzhiyun # define CONFIG_USB_FUNCTION_THOR
94*4882a593Smuzhiyun # define DFU_ALT_INFO_RAM \
95*4882a593Smuzhiyun 	"dfu_ram_info=" \
96*4882a593Smuzhiyun 	"set dfu_alt_info " \
97*4882a593Smuzhiyun 	"${kernel_image} ram 0x3000000 0x500000\\\\;" \
98*4882a593Smuzhiyun 	"${devicetree_image} ram 0x2A00000 0x20000\\\\;" \
99*4882a593Smuzhiyun 	"${ramdisk_image} ram 0x2000000 0x600000\0" \
100*4882a593Smuzhiyun 	"dfu_ram=run dfu_ram_info && dfu 0 ram 0\0" \
101*4882a593Smuzhiyun 	"thor_ram=run dfu_ram_info && thordown 0 ram 0\0"
102*4882a593Smuzhiyun 
103*4882a593Smuzhiyun # if defined(CONFIG_MMC_SDHCI_ZYNQ)
104*4882a593Smuzhiyun #  define DFU_ALT_INFO_MMC \
105*4882a593Smuzhiyun 	"dfu_mmc_info=" \
106*4882a593Smuzhiyun 	"set dfu_alt_info " \
107*4882a593Smuzhiyun 	"${kernel_image} fat 0 1\\\\;" \
108*4882a593Smuzhiyun 	"${devicetree_image} fat 0 1\\\\;" \
109*4882a593Smuzhiyun 	"${ramdisk_image} fat 0 1\0" \
110*4882a593Smuzhiyun 	"dfu_mmc=run dfu_mmc_info && dfu 0 mmc 0\0" \
111*4882a593Smuzhiyun 	"thor_mmc=run dfu_mmc_info && thordown 0 mmc 0\0"
112*4882a593Smuzhiyun 
113*4882a593Smuzhiyun #  define DFU_ALT_INFO	\
114*4882a593Smuzhiyun 	DFU_ALT_INFO_RAM \
115*4882a593Smuzhiyun 	DFU_ALT_INFO_MMC
116*4882a593Smuzhiyun # else
117*4882a593Smuzhiyun #  define DFU_ALT_INFO	\
118*4882a593Smuzhiyun 	DFU_ALT_INFO_RAM
119*4882a593Smuzhiyun # endif
120*4882a593Smuzhiyun #endif
121*4882a593Smuzhiyun 
122*4882a593Smuzhiyun #if !defined(DFU_ALT_INFO)
123*4882a593Smuzhiyun # define DFU_ALT_INFO
124*4882a593Smuzhiyun #endif
125*4882a593Smuzhiyun 
126*4882a593Smuzhiyun #if defined(CONFIG_MMC_SDHCI_ZYNQ) || defined(CONFIG_ZYNQ_USB)
127*4882a593Smuzhiyun # define CONFIG_SUPPORT_VFAT
128*4882a593Smuzhiyun #endif
129*4882a593Smuzhiyun 
130*4882a593Smuzhiyun #if defined(CONFIG_ZYNQ_I2C0) || defined(CONFIG_ZYNQ_I2C1)
131*4882a593Smuzhiyun #define CONFIG_SYS_I2C_ZYNQ
132*4882a593Smuzhiyun #endif
133*4882a593Smuzhiyun 
134*4882a593Smuzhiyun /* I2C */
135*4882a593Smuzhiyun #if defined(CONFIG_SYS_I2C_ZYNQ)
136*4882a593Smuzhiyun # define CONFIG_SYS_I2C
137*4882a593Smuzhiyun # define CONFIG_SYS_I2C_ZYNQ_SPEED		100000
138*4882a593Smuzhiyun # define CONFIG_SYS_I2C_ZYNQ_SLAVE		0
139*4882a593Smuzhiyun #endif
140*4882a593Smuzhiyun 
141*4882a593Smuzhiyun /* EEPROM */
142*4882a593Smuzhiyun #ifdef CONFIG_ZYNQ_EEPROM
143*4882a593Smuzhiyun # define CONFIG_SYS_I2C_EEPROM_ADDR_LEN		1
144*4882a593Smuzhiyun # define CONFIG_SYS_I2C_EEPROM_ADDR		0x54
145*4882a593Smuzhiyun # define CONFIG_SYS_EEPROM_PAGE_WRITE_BITS	4
146*4882a593Smuzhiyun # define CONFIG_SYS_EEPROM_PAGE_WRITE_DELAY_MS	5
147*4882a593Smuzhiyun # define CONFIG_SYS_EEPROM_SIZE			1024 /* Bytes */
148*4882a593Smuzhiyun #endif
149*4882a593Smuzhiyun 
150*4882a593Smuzhiyun /* Total Size of Environment Sector */
151*4882a593Smuzhiyun #define CONFIG_ENV_SIZE			(128 << 10)
152*4882a593Smuzhiyun 
153*4882a593Smuzhiyun /* Allow to overwrite serial and ethaddr */
154*4882a593Smuzhiyun #define CONFIG_ENV_OVERWRITE
155*4882a593Smuzhiyun 
156*4882a593Smuzhiyun /* Environment */
157*4882a593Smuzhiyun #ifndef CONFIG_ENV_IS_NOWHERE
158*4882a593Smuzhiyun # ifdef CONFIG_MTD_NOR_FLASH
159*4882a593Smuzhiyun /* Environment in NOR flash */
160*4882a593Smuzhiyun # elif defined(CONFIG_ZYNQ_QSPI)
161*4882a593Smuzhiyun /* Environment in Serial Flash */
162*4882a593Smuzhiyun # endif
163*4882a593Smuzhiyun 
164*4882a593Smuzhiyun # define CONFIG_ENV_SECT_SIZE		CONFIG_ENV_SIZE
165*4882a593Smuzhiyun # define CONFIG_ENV_OFFSET		0xE0000
166*4882a593Smuzhiyun #endif
167*4882a593Smuzhiyun 
168*4882a593Smuzhiyun /* enable preboot to be loaded before CONFIG_BOOTDELAY */
169*4882a593Smuzhiyun #define CONFIG_PREBOOT
170*4882a593Smuzhiyun 
171*4882a593Smuzhiyun /* Boot configuration */
172*4882a593Smuzhiyun #define CONFIG_BOOTCOMMAND		"run $modeboot || run distro_bootcmd"
173*4882a593Smuzhiyun #define CONFIG_SYS_LOAD_ADDR		0 /* default? */
174*4882a593Smuzhiyun 
175*4882a593Smuzhiyun /* Distro boot enablement */
176*4882a593Smuzhiyun 
177*4882a593Smuzhiyun #ifdef CONFIG_SPL_BUILD
178*4882a593Smuzhiyun #define BOOTENV
179*4882a593Smuzhiyun #else
180*4882a593Smuzhiyun #include <config_distro_defaults.h>
181*4882a593Smuzhiyun 
182*4882a593Smuzhiyun #ifdef CONFIG_CMD_MMC
183*4882a593Smuzhiyun #define BOOT_TARGET_DEVICES_MMC(func) func(MMC, mmc, 0)
184*4882a593Smuzhiyun #else
185*4882a593Smuzhiyun #define BOOT_TARGET_DEVICES_MMC(func)
186*4882a593Smuzhiyun #endif
187*4882a593Smuzhiyun 
188*4882a593Smuzhiyun #ifdef CONFIG_CMD_USB
189*4882a593Smuzhiyun #define BOOT_TARGET_DEVICES_USB(func) func(USB, usb, 0)
190*4882a593Smuzhiyun #else
191*4882a593Smuzhiyun #define BOOT_TARGET_DEVICES_USB(func)
192*4882a593Smuzhiyun #endif
193*4882a593Smuzhiyun 
194*4882a593Smuzhiyun #if defined(CONFIG_CMD_PXE)
195*4882a593Smuzhiyun #define BOOT_TARGET_DEVICES_PXE(func) func(PXE, pxe, na)
196*4882a593Smuzhiyun #else
197*4882a593Smuzhiyun #define BOOT_TARGET_DEVICES_PXE(func)
198*4882a593Smuzhiyun #endif
199*4882a593Smuzhiyun 
200*4882a593Smuzhiyun #if defined(CONFIG_CMD_DHCP)
201*4882a593Smuzhiyun #define BOOT_TARGET_DEVICES_DHCP(func) func(DHCP, dhcp, na)
202*4882a593Smuzhiyun #else
203*4882a593Smuzhiyun #define BOOT_TARGET_DEVICES_DHCP(func)
204*4882a593Smuzhiyun #endif
205*4882a593Smuzhiyun 
206*4882a593Smuzhiyun #define BOOT_TARGET_DEVICES(func) \
207*4882a593Smuzhiyun 	BOOT_TARGET_DEVICES_MMC(func) \
208*4882a593Smuzhiyun 	BOOT_TARGET_DEVICES_USB(func) \
209*4882a593Smuzhiyun 	BOOT_TARGET_DEVICES_PXE(func) \
210*4882a593Smuzhiyun 	BOOT_TARGET_DEVICES_DHCP(func)
211*4882a593Smuzhiyun 
212*4882a593Smuzhiyun #include <config_distro_bootcmd.h>
213*4882a593Smuzhiyun #endif /* CONFIG_SPL_BUILD */
214*4882a593Smuzhiyun 
215*4882a593Smuzhiyun /* Default environment */
216*4882a593Smuzhiyun #ifndef CONFIG_EXTRA_ENV_SETTINGS
217*4882a593Smuzhiyun #define CONFIG_EXTRA_ENV_SETTINGS	\
218*4882a593Smuzhiyun 	"fit_image=fit.itb\0"		\
219*4882a593Smuzhiyun 	"load_addr=0x2000000\0"		\
220*4882a593Smuzhiyun 	"fit_size=0x800000\0"		\
221*4882a593Smuzhiyun 	"flash_off=0x100000\0"		\
222*4882a593Smuzhiyun 	"nor_flash_off=0xE2100000\0"	\
223*4882a593Smuzhiyun 	"fdt_high=0x20000000\0"		\
224*4882a593Smuzhiyun 	"initrd_high=0x20000000\0"	\
225*4882a593Smuzhiyun 	"loadbootenv_addr=0x2000000\0" \
226*4882a593Smuzhiyun 	"fdt_addr_r=0x1f00000\0"        \
227*4882a593Smuzhiyun 	"pxefile_addr_r=0x2000000\0"    \
228*4882a593Smuzhiyun 	"kernel_addr_r=0x2000000\0"     \
229*4882a593Smuzhiyun 	"scriptaddr=0x3000000\0"        \
230*4882a593Smuzhiyun 	"ramdisk_addr_r=0x3100000\0"    \
231*4882a593Smuzhiyun 	"bootenv=uEnv.txt\0" \
232*4882a593Smuzhiyun 	"bootenv_dev=mmc\0" \
233*4882a593Smuzhiyun 	"loadbootenv=load ${bootenv_dev} 0 ${loadbootenv_addr} ${bootenv}\0" \
234*4882a593Smuzhiyun 	"importbootenv=echo Importing environment from ${bootenv_dev} ...; " \
235*4882a593Smuzhiyun 		"env import -t ${loadbootenv_addr} $filesize\0" \
236*4882a593Smuzhiyun 	"bootenv_existence_test=test -e ${bootenv_dev} 0 /${bootenv}\0" \
237*4882a593Smuzhiyun 	"setbootenv=if env run bootenv_existence_test; then " \
238*4882a593Smuzhiyun 			"if env run loadbootenv; then " \
239*4882a593Smuzhiyun 				"env run importbootenv; " \
240*4882a593Smuzhiyun 			"fi; " \
241*4882a593Smuzhiyun 		"fi; \0" \
242*4882a593Smuzhiyun 	"sd_loadbootenv=set bootenv_dev mmc && " \
243*4882a593Smuzhiyun 			"run setbootenv \0" \
244*4882a593Smuzhiyun 	"usb_loadbootenv=set bootenv_dev usb && usb start && run setbootenv \0" \
245*4882a593Smuzhiyun 	"preboot=if test $modeboot = sdboot; then " \
246*4882a593Smuzhiyun 			"run sd_loadbootenv; " \
247*4882a593Smuzhiyun 			"echo Checking if uenvcmd is set ...; " \
248*4882a593Smuzhiyun 			"if test -n $uenvcmd; then " \
249*4882a593Smuzhiyun 				"echo Running uenvcmd ...; " \
250*4882a593Smuzhiyun 				"run uenvcmd; " \
251*4882a593Smuzhiyun 			"fi; " \
252*4882a593Smuzhiyun 		"fi; \0" \
253*4882a593Smuzhiyun 	"norboot=echo Copying FIT from NOR flash to RAM... && " \
254*4882a593Smuzhiyun 		"cp.b ${nor_flash_off} ${load_addr} ${fit_size} && " \
255*4882a593Smuzhiyun 		"bootm ${load_addr}\0" \
256*4882a593Smuzhiyun 	"sdboot=echo Copying FIT from SD to RAM... && " \
257*4882a593Smuzhiyun 		"load mmc 0 ${load_addr} ${fit_image} && " \
258*4882a593Smuzhiyun 		"bootm ${load_addr}\0" \
259*4882a593Smuzhiyun 	"jtagboot=echo TFTPing FIT to RAM... && " \
260*4882a593Smuzhiyun 		"tftpboot ${load_addr} ${fit_image} && " \
261*4882a593Smuzhiyun 		"bootm ${load_addr}\0" \
262*4882a593Smuzhiyun 	"usbboot=if usb start; then " \
263*4882a593Smuzhiyun 			"echo Copying FIT from USB to RAM... && " \
264*4882a593Smuzhiyun 			"load usb 0 ${load_addr} ${fit_image} && " \
265*4882a593Smuzhiyun 			"bootm ${load_addr}; fi\0" \
266*4882a593Smuzhiyun 		DFU_ALT_INFO \
267*4882a593Smuzhiyun 		BOOTENV
268*4882a593Smuzhiyun #endif
269*4882a593Smuzhiyun 
270*4882a593Smuzhiyun /* Miscellaneous configurable options */
271*4882a593Smuzhiyun 
272*4882a593Smuzhiyun #define CONFIG_CMDLINE_EDITING
273*4882a593Smuzhiyun #define CONFIG_AUTO_COMPLETE
274*4882a593Smuzhiyun #define CONFIG_SYS_LONGHELP
275*4882a593Smuzhiyun #define CONFIG_CLOCKS
276*4882a593Smuzhiyun #define CONFIG_SYS_MAXARGS		32 /* max number of command args */
277*4882a593Smuzhiyun 
278*4882a593Smuzhiyun #ifndef CONFIG_NR_DRAM_BANKS
279*4882a593Smuzhiyun # define CONFIG_NR_DRAM_BANKS		1
280*4882a593Smuzhiyun #endif
281*4882a593Smuzhiyun 
282*4882a593Smuzhiyun #define CONFIG_SYS_MEMTEST_START	0
283*4882a593Smuzhiyun #define CONFIG_SYS_MEMTEST_END		0x1000
284*4882a593Smuzhiyun 
285*4882a593Smuzhiyun #define CONFIG_SYS_MALLOC_LEN		0x1400000
286*4882a593Smuzhiyun 
287*4882a593Smuzhiyun #define CONFIG_SYS_INIT_RAM_ADDR	0xFFFF0000
288*4882a593Smuzhiyun #define CONFIG_SYS_INIT_RAM_SIZE	0x1000
289*4882a593Smuzhiyun #define CONFIG_SYS_INIT_SP_ADDR		(CONFIG_SYS_INIT_RAM_ADDR + \
290*4882a593Smuzhiyun 					CONFIG_SYS_INIT_RAM_SIZE - \
291*4882a593Smuzhiyun 					GENERATED_GBL_DATA_SIZE)
292*4882a593Smuzhiyun 
293*4882a593Smuzhiyun /* Enable the PL to be downloaded */
294*4882a593Smuzhiyun #define CONFIG_FPGA
295*4882a593Smuzhiyun #define CONFIG_FPGA_XILINX
296*4882a593Smuzhiyun #define CONFIG_FPGA_ZYNQPL
297*4882a593Smuzhiyun 
298*4882a593Smuzhiyun /* FIT support */
299*4882a593Smuzhiyun #define CONFIG_IMAGE_FORMAT_LEGACY /* enable also legacy image format */
300*4882a593Smuzhiyun 
301*4882a593Smuzhiyun /* FDT support */
302*4882a593Smuzhiyun #define CONFIG_DISPLAY_BOARDINFO_LATE
303*4882a593Smuzhiyun 
304*4882a593Smuzhiyun /* Extend size of kernel image for uncompression */
305*4882a593Smuzhiyun #define CONFIG_SYS_BOOTM_LEN	(60 * 1024 * 1024)
306*4882a593Smuzhiyun 
307*4882a593Smuzhiyun /* Boot FreeBSD/vxWorks from an ELF image */
308*4882a593Smuzhiyun #define CONFIG_SYS_MMC_MAX_DEVICE	1
309*4882a593Smuzhiyun 
310*4882a593Smuzhiyun #define CONFIG_SYS_LDSCRIPT  "arch/arm/mach-zynq/u-boot.lds"
311*4882a593Smuzhiyun 
312*4882a593Smuzhiyun /* Commands */
313*4882a593Smuzhiyun 
314*4882a593Smuzhiyun /* SPL part */
315*4882a593Smuzhiyun #define CONFIG_SPL_FRAMEWORK
316*4882a593Smuzhiyun 
317*4882a593Smuzhiyun /* MMC support */
318*4882a593Smuzhiyun #ifdef CONFIG_MMC_SDHCI_ZYNQ
319*4882a593Smuzhiyun #define CONFIG_SYS_MMCSD_FS_BOOT_PARTITION     1
320*4882a593Smuzhiyun #define CONFIG_SPL_FS_LOAD_PAYLOAD_NAME     "u-boot.img"
321*4882a593Smuzhiyun #endif
322*4882a593Smuzhiyun 
323*4882a593Smuzhiyun /* Disable dcache for SPL just for sure */
324*4882a593Smuzhiyun #ifdef CONFIG_SPL_BUILD
325*4882a593Smuzhiyun #define CONFIG_SYS_DCACHE_OFF
326*4882a593Smuzhiyun #undef CONFIG_FPGA
327*4882a593Smuzhiyun #endif
328*4882a593Smuzhiyun 
329*4882a593Smuzhiyun /* Address in RAM where the parameters must be copied by SPL. */
330*4882a593Smuzhiyun #define CONFIG_SYS_SPL_ARGS_ADDR	0x10000000
331*4882a593Smuzhiyun 
332*4882a593Smuzhiyun #define CONFIG_SPL_FS_LOAD_ARGS_NAME		"system.dtb"
333*4882a593Smuzhiyun #define CONFIG_SPL_FS_LOAD_KERNEL_NAME		"uImage"
334*4882a593Smuzhiyun 
335*4882a593Smuzhiyun /* Not using MMC raw mode - just for compilation purpose */
336*4882a593Smuzhiyun #define CONFIG_SYS_MMCSD_RAW_MODE_ARGS_SECTOR	0
337*4882a593Smuzhiyun #define CONFIG_SYS_MMCSD_RAW_MODE_ARGS_SECTORS	0
338*4882a593Smuzhiyun #define CONFIG_SYS_MMCSD_RAW_MODE_KERNEL_SECTOR	0
339*4882a593Smuzhiyun 
340*4882a593Smuzhiyun /* qspi mode is working fine */
341*4882a593Smuzhiyun #ifdef CONFIG_ZYNQ_QSPI
342*4882a593Smuzhiyun #define CONFIG_SPL_SPI_LOAD
343*4882a593Smuzhiyun #define CONFIG_SYS_SPI_U_BOOT_OFFS	0x100000
344*4882a593Smuzhiyun #define CONFIG_SYS_SPI_ARGS_OFFS	0x200000
345*4882a593Smuzhiyun #define CONFIG_SYS_SPI_ARGS_SIZE	0x80000
346*4882a593Smuzhiyun #define CONFIG_SYS_SPI_KERNEL_OFFS	(CONFIG_SYS_SPI_ARGS_OFFS + \
347*4882a593Smuzhiyun 					CONFIG_SYS_SPI_ARGS_SIZE)
348*4882a593Smuzhiyun #endif
349*4882a593Smuzhiyun 
350*4882a593Smuzhiyun /* for booting directly linux */
351*4882a593Smuzhiyun 
352*4882a593Smuzhiyun /* SP location before relocation, must use scratch RAM */
353*4882a593Smuzhiyun #define CONFIG_SPL_TEXT_BASE	0x0
354*4882a593Smuzhiyun 
355*4882a593Smuzhiyun /* 3 * 64kB blocks of OCM - one is on the top because of bootrom */
356*4882a593Smuzhiyun #define CONFIG_SPL_MAX_SIZE	0x30000
357*4882a593Smuzhiyun 
358*4882a593Smuzhiyun /* The highest 64k OCM address */
359*4882a593Smuzhiyun #define OCM_HIGH_ADDR	0xffff0000
360*4882a593Smuzhiyun 
361*4882a593Smuzhiyun /* On the top of OCM space */
362*4882a593Smuzhiyun #define CONFIG_SYS_SPL_MALLOC_START	OCM_HIGH_ADDR
363*4882a593Smuzhiyun #define CONFIG_SYS_SPL_MALLOC_SIZE	0x2000
364*4882a593Smuzhiyun 
365*4882a593Smuzhiyun /*
366*4882a593Smuzhiyun  * SPL stack position - and stack goes down
367*4882a593Smuzhiyun  * 0xfffffe00 is used for putting wfi loop.
368*4882a593Smuzhiyun  * Set it up as limit for now.
369*4882a593Smuzhiyun  */
370*4882a593Smuzhiyun #define CONFIG_SPL_STACK	0xfffffe00
371*4882a593Smuzhiyun 
372*4882a593Smuzhiyun /* BSS setup */
373*4882a593Smuzhiyun #define CONFIG_SPL_BSS_START_ADDR	0x100000
374*4882a593Smuzhiyun #define CONFIG_SPL_BSS_MAX_SIZE		0x100000
375*4882a593Smuzhiyun 
376*4882a593Smuzhiyun #define CONFIG_SYS_UBOOT_START	CONFIG_SYS_TEXT_BASE
377*4882a593Smuzhiyun 
378*4882a593Smuzhiyun #endif /* __CONFIG_ZYNQ_COMMON_H */
379