Blame view

include/configs/xilinx_zynqmp.h 6.51 KB
84c7204bd   Michal Simek   arm64: Add Xilinx...
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
  /*
   * Configuration for Xilinx ZynqMP
   * (C) Copyright 2014 - 2015 Xilinx, Inc.
   * Michal Simek <michal.simek@xilinx.com>
   *
   * Based on Configuration for Versatile Express
   *
   * SPDX-License-Identifier:	GPL-2.0+
   */
  
  #ifndef __XILINX_ZYNQMP_H
  #define __XILINX_ZYNQMP_H
  
  #define CONFIG_REMAKE_ELF
  
  /* #define CONFIG_ARMV8_SWITCH_TO_EL1 */
84c7204bd   Michal Simek   arm64: Add Xilinx...
17
18
19
20
  /* Generic Interrupt Controller Definitions */
  #define CONFIG_GICV2
  #define GICD_BASE	0xF9010000
  #define GICC_BASE	0xF9020000
d759512fc   Michal Simek   ARM64: zynqmp: En...
21
22
  #define CONFIG_SYS_ALT_MEMTEST
  #define CONFIG_SYS_MEMTEST_SCRATCH	0xfffc0000
8d59d7f63   Michal Simek   ARM64: zynqmp: Re...
23
24
25
26
27
  #ifndef CONFIG_NR_DRAM_BANKS
  # define CONFIG_NR_DRAM_BANKS		2
  #endif
  #define CONFIG_SYS_MEMTEST_START	0
  #define CONFIG_SYS_MEMTEST_END		1000
84c7204bd   Michal Simek   arm64: Add Xilinx...
28

8fbf678ba   Soren Brinkmann   ARM64: zynqmp: Fi...
29
  #define CONFIG_SYS_INIT_SP_ADDR		CONFIG_SYS_TEXT_BASE
84c7204bd   Michal Simek   arm64: Add Xilinx...
30

84c7204bd   Michal Simek   arm64: Add Xilinx...
31
  /* Generic Timer Definitions - setup in EL3. Setup by ATF for other cases */
713b61645   Michal Simek   ARM64: zynqmp: Se...
32
33
34
  #if !defined(COUNTER_FREQUENCY)
  # define COUNTER_FREQUENCY		100000000
  #endif
84c7204bd   Michal Simek   arm64: Add Xilinx...
35
36
  
  /* Size of malloc() pool */
16fa00a71   Siva Durga Prasad Paladugu   zynqmp: usb: Add ...
37
  #define CONFIG_SYS_MALLOC_LEN		(CONFIG_ENV_SIZE + 0x2000000)
84c7204bd   Michal Simek   arm64: Add Xilinx...
38
39
  
  /* Serial setup */
636ac181f   Michal Simek   ARM: zynq: zynqmp...
40
41
  #define CONFIG_ARM_DCC
  #define CONFIG_CPU_ARMV8
84c7204bd   Michal Simek   arm64: Add Xilinx...
42
43
  
  #define CONFIG_CONS_INDEX		0
84c7204bd   Michal Simek   arm64: Add Xilinx...
44
45
46
47
  #define CONFIG_SYS_BAUDRATE_TABLE \
  	{ 4800, 9600, 19200, 38400, 57600, 115200 }
  
  /* Command line configuration */
5cb242003   Michal Simek   zynqmp: Add suppo...
48
  #define CONFIG_MP
84c7204bd   Michal Simek   arm64: Add Xilinx...
49

cb7ea8205   Michal Simek   ARM: zynqmp: Wire...
50
51
  /* BOOTP options */
  #define CONFIG_BOOTP_BOOTFILESIZE
cb7ea8205   Michal Simek   ARM: zynqmp: Wire...
52
  #define CONFIG_BOOTP_MAY_FAIL
a1207de0e   Michal Simek   ARM64: zynqmp: En...
53

08aa0334c   Masahiro Yamada   mmc: zynq: rename...
54
  #if defined(CONFIG_MMC_SDHCI_ZYNQ)
926782cdf   Michal Simek   ARM64: zynqmp: En...
55
  # define CONFIG_SUPPORT_EMMC_BOOT
46f68e686   Michal Simek   ARM64: zynqmp: En...
56
  #endif
78cb965af   Siva Durga Prasad Paladugu   zynqmp: nand: Add...
57
  #ifdef CONFIG_NAND_ARASAN
78cb965af   Siva Durga Prasad Paladugu   zynqmp: nand: Add...
58
  # define CONFIG_SYS_MAX_NAND_DEVICE	1
78cb965af   Siva Durga Prasad Paladugu   zynqmp: nand: Add...
59
60
61
  # define CONFIG_SYS_NAND_ONFI_DETECTION
  # define CONFIG_MTD_DEVICE
  #endif
88f05a926   Michal Simek   arm64: zynqmp: Ca...
62
63
64
  #if defined(CONFIG_SPL_BUILD)
  #define CONFIG_ZYNQMP_PSU_INIT_ENABLED
  #endif
84c7204bd   Michal Simek   arm64: Add Xilinx...
65
66
  /* Miscellaneous configurable options */
  #define CONFIG_SYS_LOAD_ADDR		0x8000000
16fa00a71   Siva Durga Prasad Paladugu   zynqmp: usb: Add ...
67
  #if defined(CONFIG_ZYNQMP_USB)
16fa00a71   Siva Durga Prasad Paladugu   zynqmp: usb: Add ...
68
69
  #define CONFIG_SYS_DFU_DATA_BUF_SIZE	0x1800000
  #define DFU_DEFAULT_POLL_TIMEOUT	300
16fa00a71   Siva Durga Prasad Paladugu   zynqmp: usb: Add ...
70
  #define CONFIG_USB_CABLE_CHECK
16fa00a71   Siva Durga Prasad Paladugu   zynqmp: usb: Add ...
71
72
73
  #define CONFIG_THOR_RESET_OFF
  #define DFU_ALT_INFO_RAM \
  	"dfu_ram_info=" \
0e43140bb   Siva Durga Prasad Paladugu   ARM64: zynqmp: Do...
74
  	"setenv dfu_alt_info " \
1b19daf40   Siva Durga Prasad Paladugu   ARM64: zynqmp: Mo...
75
76
  	"Image ram $kernel_addr $kernel_size\\\\;" \
  	"system.dtb ram $fdt_addr $fdt_size\0" \
16fa00a71   Siva Durga Prasad Paladugu   zynqmp: usb: Add ...
77
78
79
80
81
  	"dfu_ram=run dfu_ram_info && dfu 0 ram 0\0" \
  	"thor_ram=run dfu_ram_info && thordown 0 ram 0\0"
  
  #define DFU_ALT_INFO  \
  		DFU_ALT_INFO_RAM
5ce987feb   Siva Durga Prasad Paladugu   ARM64: zynqmp: En...
82
83
  
  #ifndef CONFIG_SPL_BUILD
5ce987feb   Siva Durga Prasad Paladugu   ARM64: zynqmp: En...
84
85
86
87
88
  # define PARTS_DEFAULT \
  	"partitions=uuid_disk=${uuid_gpt_disk};" \
  	"name=""boot"",size=16M,uuid=${uuid_gpt_boot};" \
  	"name=""Linux"",size=-M,uuid=${uuid_gpt_Linux}\0"
  #endif
16fa00a71   Siva Durga Prasad Paladugu   zynqmp: usb: Add ...
89
90
91
92
93
  #endif
  
  #if !defined(DFU_ALT_INFO)
  # define DFU_ALT_INFO
  #endif
5ce987feb   Siva Durga Prasad Paladugu   ARM64: zynqmp: En...
94
95
96
  #if !defined(PARTS_DEFAULT)
  # define PARTS_DEFAULT
  #endif
84c7204bd   Michal Simek   arm64: Add Xilinx...
97
  /* Do not preserve environment */
936b03849   Siva Durga Prasad Paladugu   ARM64: zynqmp: In...
98
  #define CONFIG_ENV_SIZE			0x8000
84c7204bd   Michal Simek   arm64: Add Xilinx...
99
100
101
102
  
  /* Monitor Command Prompt */
  /* Console I/O Buffer Size */
  #define CONFIG_SYS_CBSIZE		2048
84c7204bd   Michal Simek   arm64: Add Xilinx...
103
  #define CONFIG_SYS_BARGSIZE		CONFIG_SYS_CBSIZE
6ee28cb95   Michal Simek   arm64: zynqmp: Do...
104
  #define CONFIG_PANIC_HANG
84c7204bd   Michal Simek   arm64: Add Xilinx...
105
  #define CONFIG_SYS_MAXARGS		64
cb7ea8205   Michal Simek   ARM: zynqmp: Wire...
106
  /* Ethernet driver */
596e5782e   Michal Simek   net: gem: Move ge...
107
  #if defined(CONFIG_ZYNQ_GEM)
cb7ea8205   Michal Simek   ARM: zynqmp: Wire...
108
109
  # define CONFIG_MII
  # define CONFIG_SYS_FAULT_ECHO_LINK_DOWN
e2928f32e   Siva Durga Prasad Paladugu   ARM64: zynqmp: De...
110
  # define PHY_ANEG_TIMEOUT       20000
cb7ea8205   Michal Simek   ARM: zynqmp: Wire...
111
  #endif
2594e03c6   Siva Durga Prasad Paladugu   zynqmp: i2c: Enab...
112
113
  /* I2C */
  #if defined(CONFIG_SYS_I2C_ZYNQ)
2594e03c6   Siva Durga Prasad Paladugu   zynqmp: i2c: Enab...
114
  # define CONFIG_SYS_I2C
2594e03c6   Siva Durga Prasad Paladugu   zynqmp: i2c: Enab...
115
  #endif
2594e03c6   Siva Durga Prasad Paladugu   zynqmp: i2c: Enab...
116
117
  /* EEPROM */
  #ifdef CONFIG_ZYNQMP_EEPROM
2594e03c6   Siva Durga Prasad Paladugu   zynqmp: i2c: Enab...
118
119
120
121
122
123
  # define CONFIG_SYS_I2C_EEPROM_ADDR_LEN		2
  # define CONFIG_SYS_I2C_EEPROM_ADDR		0x54
  # define CONFIG_SYS_EEPROM_PAGE_WRITE_BITS	4
  # define CONFIG_SYS_EEPROM_PAGE_WRITE_DELAY_MS	5
  # define CONFIG_SYS_EEPROM_SIZE			(64 * 1024)
  #endif
0d169b8cd   Michal Simek   ARM64: zynqmp: En...
124
  #ifdef CONFIG_SATA_CEVA
679b994a2   Michal Simek   block: Add suppor...
125
  #define CONFIG_SYS_SCSI_MAX_SCSI_ID	2
6fe6f1350   Michal Simek   ARM: zynqmp: Wire...
126
127
128
  #define CONFIG_SYS_SCSI_MAX_LUN		1
  #define CONFIG_SYS_SCSI_MAX_DEVICE	(CONFIG_SYS_SCSI_MAX_SCSI_ID * \
  					 CONFIG_SYS_SCSI_MAX_LUN)
6fe6f1350   Michal Simek   ARM: zynqmp: Wire...
129
  #endif
84c7204bd   Michal Simek   arm64: Add Xilinx...
130
  #define CONFIG_SYS_BOOTM_LEN	(60 * 1024 * 1024)
84c7204bd   Michal Simek   arm64: Add Xilinx...
131
132
  #define CONFIG_BOARD_EARLY_INIT_R
  #define CONFIG_CLOCKS
b72894f14   Michal Simek   ARM64: zynqmp: Ad...
133
134
135
136
137
138
139
140
  #define ENV_MEM_LAYOUT_SETTINGS \
  	"fdt_high=10000000\0" \
  	"initrd_high=10000000\0" \
  	"fdt_addr_r=0x40000000\0" \
  	"pxefile_addr_r=0x10000000\0" \
  	"kernel_addr_r=0x18000000\0" \
  	"scriptaddr=0x02000000\0" \
  	"ramdisk_addr_r=0x02100000\0" \
08aa0334c   Masahiro Yamada   mmc: zynq: rename...
141
  #if defined(CONFIG_MMC_SDHCI_ZYNQ)
b72894f14   Michal Simek   ARM64: zynqmp: Ad...
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
  # define BOOT_TARGET_DEVICES_MMC(func)	func(MMC, mmc, 0) func(MMC, mmc, 1)
  #else
  # define BOOT_TARGET_DEVICES_MMC(func)
  #endif
  
  #if defined(CONFIG_SATA_CEVA)
  # define BOOT_TARGET_DEVICES_SCSI(func)	func(SCSI, scsi, 0)
  #else
  # define BOOT_TARGET_DEVICES_SCSI(func)
  #endif
  
  #if defined(CONFIG_ZYNQMP_USB)
  # define BOOT_TARGET_DEVICES_USB(func)	func(USB, usb, 0) func(USB, usb, 1)
  #else
  # define BOOT_TARGET_DEVICES_USB(func)
  #endif
  
  #define BOOT_TARGET_DEVICES(func) \
  	BOOT_TARGET_DEVICES_MMC(func) \
  	BOOT_TARGET_DEVICES_USB(func) \
  	BOOT_TARGET_DEVICES_SCSI(func) \
  	func(PXE, pxe, na) \
  	func(DHCP, dhcp, na)
  
  #include <config_distro_bootcmd.h>
  
  /* Initial environment variables */
  #ifndef CONFIG_EXTRA_ENV_SETTINGS
  #define CONFIG_EXTRA_ENV_SETTINGS \
  	ENV_MEM_LAYOUT_SETTINGS \
  	BOOTENV \
  	DFU_ALT_INFO
  #endif
d58fc12eb   Michal Simek   ARM64: zynqmp: Ad...
175
176
177
178
179
180
181
182
183
184
  /* SPL can't handle all huge variables - define just DFU */
  #if defined(CONFIG_SPL_BUILD) && defined(CONFIG_SPL_DFU_SUPPORT)
  #undef CONFIG_EXTRA_ENV_SETTINGS
  # define CONFIG_EXTRA_ENV_SETTINGS \
  	"dfu_alt_info_ram=uboot.bin ram 0x8000000 0x1000000;" \
  			  "atf-uboot.ub ram 0x10000000 0x1000000;" \
  			  "Image ram 0x80000 0x3f80000;" \
  			  "system.dtb ram 0x4000000 0x100000\0" \
  	"dfu_bufsiz=0x1000\0"
  #endif
e6a9ed04e   Michal Simek   ARM64: zynqmp: Ad...
185
  #define CONFIG_SPL_TEXT_BASE		0xfffc0000
8fbf678ba   Soren Brinkmann   ARM64: zynqmp: Fi...
186
  #define CONFIG_SPL_STACK		0xfffffffc
d58fc12eb   Michal Simek   ARM64: zynqmp: Ad...
187
  #define CONFIG_SPL_MAX_SIZE		0x40000
e6a9ed04e   Michal Simek   ARM64: zynqmp: Ad...
188
189
  
  /* Just random location in OCM */
8ed31f369   Michal Simek   ARM64: zynqmp: Mo...
190
191
  #define CONFIG_SPL_BSS_START_ADDR	0x0
  #define CONFIG_SPL_BSS_MAX_SIZE		0x80000
e6a9ed04e   Michal Simek   ARM64: zynqmp: Ad...
192

24124abe0   Michal Simek   arm64: zynqmp: Ad...
193
194
195
196
197
198
199
200
  #if defined(CONFIG_SPL_SPI_FLASH_SUPPORT)
  # define CONFIG_SPL_SPI_LOAD
  # define CONFIG_SYS_SPI_KERNEL_OFFS	0x80000
  # define CONFIG_SYS_SPI_ARGS_OFFS	0xa0000
  # define CONFIG_SYS_SPI_ARGS_SIZE	0xa0000
  
  # define CONFIG_SYS_SPI_U_BOOT_OFFS	0x170000
  #endif
e6a9ed04e   Michal Simek   ARM64: zynqmp: Ad...
201
202
203
204
205
  /* u-boot is like dtb */
  #define CONFIG_SPL_FS_LOAD_ARGS_NAME	"u-boot.bin"
  #define CONFIG_SYS_SPL_ARGS_ADDR	0x8000000
  
  /* ATF is my kernel image */
1309f6716   Michal Simek   ARM64: zynqmp: Us...
206
  #define CONFIG_SPL_FS_LOAD_KERNEL_NAME	"atf-uboot.ub"
e6a9ed04e   Michal Simek   ARM64: zynqmp: Ad...
207
208
209
210
211
  
  /* FIT load address for RAM boot */
  #define CONFIG_SPL_LOAD_FIT_ADDRESS	0x10000000
  
  /* MMC support */
08aa0334c   Masahiro Yamada   mmc: zynq: rename...
212
  #ifdef CONFIG_MMC_SDHCI_ZYNQ
e6a9ed04e   Michal Simek   ARM64: zynqmp: Ad...
213
214
215
216
  # define CONFIG_SYS_MMCSD_FS_BOOT_PARTITION	1
  # define CONFIG_SYS_MMCSD_RAW_MODE_ARGS_SECTOR	0 /* unused */
  # define CONFIG_SYS_MMCSD_RAW_MODE_ARGS_SECTORS	0 /* unused */
  # define CONFIG_SYS_MMCSD_RAW_MODE_KERNEL_SECTOR	0 /* unused */
e6a9ed04e   Michal Simek   ARM64: zynqmp: Ad...
217
218
  # define CONFIG_SPL_FS_LOAD_PAYLOAD_NAME	"u-boot.img"
  #endif
d58fc12eb   Michal Simek   ARM64: zynqmp: Ad...
219
220
221
222
223
  #if defined(CONFIG_SPL_BUILD) && defined(CONFIG_SPL_DFU_SUPPORT)
  # undef CONFIG_CMD_BOOTD
  # define CONFIG_SPL_ENV_SUPPORT
  # define CONFIG_SPL_HASH_SUPPORT
  # define CONFIG_ENV_MAX_ENTRIES	10
b45c17c72   Michal Simek   arm64: zynqmp: Do...
224
  #endif
d58fc12eb   Michal Simek   ARM64: zynqmp: Ad...
225

b45c17c72   Michal Simek   arm64: zynqmp: Do...
226
227
  #define CONFIG_SYS_SPL_MALLOC_START	0x20000000
  #define CONFIG_SYS_SPL_MALLOC_SIZE	0x100000
d58fc12eb   Michal Simek   ARM64: zynqmp: Ad...
228
229
230
231
  
  #ifdef CONFIG_SPL_SYS_MALLOC_SIMPLE
  # error "Disable CONFIG_SPL_SYS_MALLOC_SIMPLE. Full malloc needs to be used"
  #endif
d58fc12eb   Michal Simek   ARM64: zynqmp: Ad...
232

fb4000e87   Michal Simek   arm64: zynqmp: Ch...
233
  #define CONFIG_BOARD_EARLY_INIT_F
84c7204bd   Michal Simek   arm64: Add Xilinx...
234
  #endif /* __XILINX_ZYNQMP_H */