Blame view

include/configs/socfpga_common.h 8.5 KB
5095ee088   Pavel Machek   arm: socfpga: Spl...
1
2
3
4
5
  /*
   * Copyright (C) 2012 Altera Corporation <www.altera.com>
   *
   * SPDX-License-Identifier:	GPL-2.0+
   */
48275c96f   Dinh Nguyen   arm: socfpga: fix...
6
7
  #ifndef __CONFIG_SOCFPGA_COMMON_H__
  #define __CONFIG_SOCFPGA_COMMON_H__
5095ee088   Pavel Machek   arm: socfpga: Spl...
8

5095ee088   Pavel Machek   arm: socfpga: Spl...
9
10
  /* Virtual target or real hardware */
  #undef CONFIG_SOCFPGA_VIRTUAL_TARGET
5095ee088   Pavel Machek   arm: socfpga: Spl...
11
12
13
  /*
   * High level configuration
   */
7287d5f09   Marek Vasut   arm: socfpga: Zap...
14
  #define CONFIG_DISPLAY_BOARDINFO_LATE
5095ee088   Pavel Machek   arm: socfpga: Spl...
15
  #define CONFIG_CLOCKS
5095ee088   Pavel Machek   arm: socfpga: Spl...
16
17
18
  #define CONFIG_SYS_BOOTMAPSZ		(64 * 1024 * 1024)
  
  #define CONFIG_TIMESTAMP		/* Print image info with timestamp */
dc0a1a08a   Marek Vasut   arm: socfpga: Add...
19
20
  /* add target to build it automatically upon "make" */
  #define CONFIG_BUILD_TARGET		"u-boot-with-spl.sfp"
5095ee088   Pavel Machek   arm: socfpga: Spl...
21
22
23
24
25
  /*
   * Memory configurations
   */
  #define CONFIG_NR_DRAM_BANKS		1
  #define PHYS_SDRAM_1			0x0
0223a95c7   Marek Vasut   arm: socfpga: Add...
26
  #define CONFIG_SYS_MALLOC_LEN		(64 * 1024 * 1024)
5095ee088   Pavel Machek   arm: socfpga: Spl...
27
28
  #define CONFIG_SYS_MEMTEST_START	PHYS_SDRAM_1
  #define CONFIG_SYS_MEMTEST_END		PHYS_SDRAM_1_SIZE
1b2594030   Ley Foon Tan   arm: socfpga: Add...
29
  #if defined(CONFIG_TARGET_SOCFPGA_GEN5)
5095ee088   Pavel Machek   arm: socfpga: Spl...
30
  #define CONFIG_SYS_INIT_RAM_ADDR	0xFFFF0000
7599b53dc   Marek Vasut   arm: socfpga: con...
31
  #define CONFIG_SYS_INIT_RAM_SIZE	0x10000
1b2594030   Ley Foon Tan   arm: socfpga: Add...
32
33
34
35
  #elif defined(CONFIG_TARGET_SOCFPGA_ARRIA10)
  #define CONFIG_SYS_INIT_RAM_ADDR	0xFFE00000
  #define CONFIG_SYS_INIT_RAM_SIZE	0x40000 /* 256KB */
  #endif
7599b53dc   Marek Vasut   arm: socfpga: con...
36
37
38
39
  #define CONFIG_SYS_INIT_SP_OFFSET		\
  	(CONFIG_SYS_INIT_RAM_SIZE - GENERATED_GBL_DATA_SIZE)
  #define CONFIG_SYS_INIT_SP_ADDR			\
  	(CONFIG_SYS_INIT_RAM_ADDR + CONFIG_SYS_INIT_SP_OFFSET)
5095ee088   Pavel Machek   arm: socfpga: Spl...
40
41
  
  #define CONFIG_SYS_SDRAM_BASE		PHYS_SDRAM_1
5095ee088   Pavel Machek   arm: socfpga: Spl...
42
43
44
45
  
  /*
   * U-Boot general configurations
   */
5095ee088   Pavel Machek   arm: socfpga: Spl...
46
  #define CONFIG_SYS_CBSIZE	1024		/* Console I/O buffer size */
5095ee088   Pavel Machek   arm: socfpga: Spl...
47
48
49
50
  						/* Print buffer size */
  #define CONFIG_SYS_MAXARGS	32		/* Max number of command args */
  #define CONFIG_SYS_BARGSIZE	CONFIG_SYS_CBSIZE
  						/* Boot argument buffer size */
5095ee088   Pavel Machek   arm: socfpga: Spl...
51

ea0823465   Marek Vasut   arm: socfpga: Swi...
52
53
54
  #ifndef CONFIG_SYS_HOSTNAME
  #define CONFIG_SYS_HOSTNAME	CONFIG_SYS_BOARD
  #endif
5095ee088   Pavel Machek   arm: socfpga: Spl...
55
56
57
  /*
   * Cache
   */
5095ee088   Pavel Machek   arm: socfpga: Spl...
58
59
60
61
  #define CONFIG_SYS_L2_PL310
  #define CONFIG_SYS_PL310_BASE		SOCFPGA_MPUL2_ADDRESS
  
  /*
8a78ca9ea   Marek Vasut   arm: socfpga: Add...
62
63
64
   * EPCS/EPCQx1 Serial Flash Controller
   */
  #ifdef CONFIG_ALTERA_SPI
8a78ca9ea   Marek Vasut   arm: socfpga: Add...
65
  #define CONFIG_SF_DEFAULT_SPEED		30000000
8a78ca9ea   Marek Vasut   arm: socfpga: Add...
66
67
68
69
70
71
72
73
74
75
  /*
   * The base address is configurable in QSys, each board must specify the
   * base address based on it's particular FPGA configuration. Please note
   * that the address here is incremented by  0x400  from the Base address
   * selected in QSys, since the SPI registers are at offset +0x400.
   * #define CONFIG_SYS_SPI_BASE		0xff240400
   */
  #endif
  
  /*
5095ee088   Pavel Machek   arm: socfpga: Spl...
76
77
78
   * Ethernet on SoC (EMAC)
   */
  #if defined(CONFIG_CMD_NET) && !defined(CONFIG_SOCFPGA_VIRTUAL_TARGET)
5095ee088   Pavel Machek   arm: socfpga: Spl...
79
80
  #define CONFIG_DW_ALTDESCRIPTOR
  #define CONFIG_MII
5095ee088   Pavel Machek   arm: socfpga: Spl...
81
82
83
84
85
86
  #endif
  
  /*
   * FPGA Driver
   */
  #ifdef CONFIG_CMD_FPGA
5095ee088   Pavel Machek   arm: socfpga: Spl...
87
88
  #define CONFIG_FPGA_COUNT		1
  #endif
9af91b7c4   Tien Fong Chee   arm: socfpga: Ena...
89

5095ee088   Pavel Machek   arm: socfpga: Spl...
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
  /*
   * L4 OSC1 Timer 0
   */
  /* This timer uses eosc1, whose clock frequency is fixed at any condition. */
  #define CONFIG_SYS_TIMERBASE		SOCFPGA_OSC1TIMER0_ADDRESS
  #define CONFIG_SYS_TIMER_COUNTS_DOWN
  #define CONFIG_SYS_TIMER_COUNTER	(CONFIG_SYS_TIMERBASE + 0x4)
  #ifdef CONFIG_SOCFPGA_VIRTUAL_TARGET
  #define CONFIG_SYS_TIMER_RATE		2400000
  #else
  #define CONFIG_SYS_TIMER_RATE		25000000
  #endif
  
  /*
   * L4 Watchdog
   */
  #ifdef CONFIG_HW_WATCHDOG
  #define CONFIG_DESIGNWARE_WATCHDOG
  #define CONFIG_DW_WDT_BASE		SOCFPGA_L4WD0_ADDRESS
  #define CONFIG_DW_WDT_CLOCK_KHZ		25000
ea926511d   Andy Shevchenko   wdt: Unify option...
110
  #define CONFIG_WATCHDOG_TIMEOUT_MSECS	30000
5095ee088   Pavel Machek   arm: socfpga: Spl...
111
112
113
114
115
116
  #endif
  
  /*
   * MMC Driver
   */
  #ifdef CONFIG_CMD_MMC
5095ee088   Pavel Machek   arm: socfpga: Spl...
117
  #define CONFIG_BOUNCE_BUFFER
5095ee088   Pavel Machek   arm: socfpga: Spl...
118
119
120
121
  /* FIXME */
  /* using smaller max blk cnt to avoid flooding the limited stack we have */
  #define CONFIG_SYS_MMC_MAX_BLK_COUNT	256	/* FIXME -- SPL only? */
  #endif
7fb0f5964   Stefan Roese   arm: socfpga: Add...
122
  /*
c339ea5bf   Marek Vasut   arm: socfpga: Add...
123
124
125
126
   * NAND Support
   */
  #ifdef CONFIG_NAND_DENALI
  #define CONFIG_SYS_MAX_NAND_DEVICE	1
c339ea5bf   Marek Vasut   arm: socfpga: Add...
127
  #define CONFIG_SYS_NAND_ONFI_DETECTION
c339ea5bf   Marek Vasut   arm: socfpga: Add...
128
129
  #define CONFIG_SYS_NAND_REGS_BASE	SOCFPGA_NANDREGS_ADDRESS
  #define CONFIG_SYS_NAND_DATA_BASE	SOCFPGA_NANDDATA_ADDRESS
c339ea5bf   Marek Vasut   arm: socfpga: Add...
130
131
132
  #endif
  
  /*
ebcaf966e   Stefan Roese   arm: socfpga: Add...
133
134
135
   * I2C support
   */
  #define CONFIG_SYS_I2C
ebcaf966e   Stefan Roese   arm: socfpga: Add...
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
  #define CONFIG_SYS_I2C_BASE		SOCFPGA_I2C0_ADDRESS
  #define CONFIG_SYS_I2C_BASE1		SOCFPGA_I2C1_ADDRESS
  #define CONFIG_SYS_I2C_BASE2		SOCFPGA_I2C2_ADDRESS
  #define CONFIG_SYS_I2C_BASE3		SOCFPGA_I2C3_ADDRESS
  /* Using standard mode which the speed up to 100Kb/s */
  #define CONFIG_SYS_I2C_SPEED		100000
  #define CONFIG_SYS_I2C_SPEED1		100000
  #define CONFIG_SYS_I2C_SPEED2		100000
  #define CONFIG_SYS_I2C_SPEED3		100000
  /* Address of device when used as slave */
  #define CONFIG_SYS_I2C_SLAVE		0x02
  #define CONFIG_SYS_I2C_SLAVE1		0x02
  #define CONFIG_SYS_I2C_SLAVE2		0x02
  #define CONFIG_SYS_I2C_SLAVE3		0x02
  #ifndef __ASSEMBLY__
  /* Clock supplied to I2C controller in unit of MHz */
  unsigned int cm_get_l4_sp_clk_hz(void);
  #define IC_CLK				(cm_get_l4_sp_clk_hz() / 1000000)
  #endif
ebcaf966e   Stefan Roese   arm: socfpga: Add...
155

5095ee088   Pavel Machek   arm: socfpga: Spl...
156
  /*
7fb0f5964   Stefan Roese   arm: socfpga: Add...
157
158
   * QSPI support
   */
7fb0f5964   Stefan Roese   arm: socfpga: Add...
159
  /* Enable multiple SPI NOR flash manufacturers */
cbc9544d2   Marek Vasut   arm: socfpga: con...
160
  #ifndef CONFIG_SPL_BUILD
7fb0f5964   Stefan Roese   arm: socfpga: Add...
161
  #define CONFIG_SPI_FLASH_MTD
55b4312b9   Marek Vasut   arm: socfpga: con...
162
163
  #define CONFIG_MTD_DEVICE
  #define CONFIG_MTD_PARTITIONS
cbc9544d2   Marek Vasut   arm: socfpga: con...
164
  #endif
7fb0f5964   Stefan Roese   arm: socfpga: Add...
165
166
167
168
169
  /* QSPI reference clock */
  #ifndef __ASSEMBLY__
  unsigned int cm_get_qspi_controller_clk_hz(void);
  #define CONFIG_CQSPI_REF_CLK		cm_get_qspi_controller_clk_hz()
  #endif
7fb0f5964   Stefan Roese   arm: socfpga: Add...
170

0c745d005   Marek Vasut   arm: socfpga: Zap...
171
172
173
  /*
   * Designware SPI support
   */
a6e735918   Stefan Roese   arm: socfpga: Add...
174

7fb0f5964   Stefan Roese   arm: socfpga: Add...
175
  /*
5095ee088   Pavel Machek   arm: socfpga: Spl...
176
177
   * Serial Driver
   */
5095ee088   Pavel Machek   arm: socfpga: Spl...
178
179
  #define CONFIG_SYS_NS16550_SERIAL
  #define CONFIG_SYS_NS16550_REG_SIZE	-4
5095ee088   Pavel Machek   arm: socfpga: Spl...
180
181
  #ifdef CONFIG_SOCFPGA_VIRTUAL_TARGET
  #define CONFIG_SYS_NS16550_CLK		1000000
1b2594030   Ley Foon Tan   arm: socfpga: Add...
182
183
  #elif defined(CONFIG_TARGET_SOCFPGA_GEN5)
  #define CONFIG_SYS_NS16550_COM1		SOCFPGA_UART0_ADDRESS
5095ee088   Pavel Machek   arm: socfpga: Spl...
184
  #define CONFIG_SYS_NS16550_CLK		100000000
1b2594030   Ley Foon Tan   arm: socfpga: Add...
185
186
187
  #elif defined(CONFIG_TARGET_SOCFPGA_ARRIA10)
  #define CONFIG_SYS_NS16550_COM1        SOCFPGA_UART1_ADDRESS
  #define CONFIG_SYS_NS16550_CLK		50000000
5095ee088   Pavel Machek   arm: socfpga: Spl...
188
189
  #endif
  #define CONFIG_CONS_INDEX		1
5095ee088   Pavel Machek   arm: socfpga: Spl...
190
191
  
  /*
20cadbbe2   Marek Vasut   arm: socfpga: con...
192
193
   * USB
   */
20cadbbe2   Marek Vasut   arm: socfpga: con...
194
195
  
  /*
0223a95c7   Marek Vasut   arm: socfpga: Add...
196
197
198
   * USB Gadget (DFU, UMS)
   */
  #if defined(CONFIG_CMD_DFU) || defined(CONFIG_CMD_USB_MASS_STORAGE)
55ce55faa   Marek Vasut   ARM: socfpga: Red...
199
  #define CONFIG_SYS_DFU_DATA_BUF_SIZE	(16 * 1024 * 1024)
0223a95c7   Marek Vasut   arm: socfpga: Add...
200
201
202
  #define DFU_DEFAULT_POLL_TIMEOUT	300
  
  /* USB IDs */
e6c0bc064   Sam Protsenko   usb: gadget Move:...
203
204
  #define CONFIG_G_DNL_UMS_VENDOR_NUM	0x0525
  #define CONFIG_G_DNL_UMS_PRODUCT_NUM	0xA4A5
0223a95c7   Marek Vasut   arm: socfpga: Add...
205
206
207
  #endif
  
  /*
5095ee088   Pavel Machek   arm: socfpga: Spl...
208
209
   * U-Boot environment
   */
ead2fb29e   Stefan Roese   arm: socfpga: All...
210
  #if !defined(CONFIG_ENV_SIZE)
451e82412   Dalon Westergreen   arm: socfpga: Add...
211
  #define CONFIG_ENV_SIZE			(8 * 1024)
ead2fb29e   Stefan Roese   arm: socfpga: All...
212
  #endif
5095ee088   Pavel Machek   arm: socfpga: Spl...
213

79cc48e77   Chin Liang See   arm: socfpga: Con...
214
215
  /* Environment for SDMMC boot */
  #if defined(CONFIG_ENV_IS_IN_MMC) && !defined(CONFIG_ENV_OFFSET)
451e82412   Dalon Westergreen   arm: socfpga: Add...
216
217
  #define CONFIG_SYS_MMC_ENV_DEV		0 /* device 0 */
  #define CONFIG_ENV_OFFSET		(34 * 512) /* just after the GPT */
79cc48e77   Chin Liang See   arm: socfpga: Con...
218
  #endif
ec8b75281   Chin Liang See   arm: socfpga: Ena...
219
220
221
222
223
  /* Environment for QSPI boot */
  #if defined(CONFIG_ENV_IS_IN_SPI_FLASH) && !defined(CONFIG_ENV_OFFSET)
  #define CONFIG_ENV_OFFSET		0x00100000
  #define CONFIG_ENV_SECT_SIZE		(64 * 1024)
  #endif
5095ee088   Pavel Machek   arm: socfpga: Spl...
224
  /*
55702fe27   Chin Liang See   arm: socfpga: Ena...
225
226
227
228
229
230
231
232
233
234
235
236
   * mtd partitioning for serial NOR flash
   *
   * device nor0 <ff705000.spi.0>, # parts = 6
   * #: name                size            offset          mask_flags
   * 0: u-boot              0x00100000      0x00000000      0
   * 1: env1                0x00040000      0x00100000      0
   * 2: env2                0x00040000      0x00140000      0
   * 3: UBI                 0x03e80000      0x00180000      0
   * 4: boot                0x00e80000      0x00180000      0
   * 5: rootfs              0x01000000      0x01000000      0
   *
   */
55702fe27   Chin Liang See   arm: socfpga: Ena...
237
238
  
  /*
5095ee088   Pavel Machek   arm: socfpga: Spl...
239
   * SPL
34584d190   Marek Vasut   arm: socfpga: Zap...
240
241
242
243
244
245
246
247
   *
   * SRAM Memory layout:
   *
   * 0xFFFF_0000 ...... Start of SRAM
   * 0xFFFF_xxxx ...... Top of stack (grows down)
   * 0xFFFF_yyyy ...... Malloc area
   * 0xFFFF_zzzz ...... Global Data
   * 0xFFFF_FF00 ...... End of SRAM
5095ee088   Pavel Machek   arm: socfpga: Spl...
248
   */
34584d190   Marek Vasut   arm: socfpga: Zap...
249
  #define CONFIG_SPL_TEXT_BASE		CONFIG_SYS_INIT_RAM_ADDR
1b2594030   Ley Foon Tan   arm: socfpga: Add...
250
  #define CONFIG_SPL_MAX_SIZE		CONFIG_SYS_INIT_RAM_SIZE
5095ee088   Pavel Machek   arm: socfpga: Spl...
251

d3f34e752   Marek Vasut   arm: socfpga: spl...
252
253
254
  /* SPL SDMMC boot support */
  #ifdef CONFIG_SPL_MMC_SUPPORT
  #if defined(CONFIG_SPL_FAT_SUPPORT) || defined(CONFIG_SPL_EXT_SUPPORT)
d3f34e752   Marek Vasut   arm: socfpga: spl...
255
  #define CONFIG_SPL_FS_LOAD_PAYLOAD_NAME		"u-boot-dtb.img"
451e82412   Dalon Westergreen   arm: socfpga: Add...
256
257
258
259
260
  #define CONFIG_SYS_MMCSD_FS_BOOT_PARTITION	1
  #endif
  #else
  #ifndef CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_PARTITION
  #define CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_PARTITION	1
d3f34e752   Marek Vasut   arm: socfpga: spl...
261
262
  #endif
  #endif
5095ee088   Pavel Machek   arm: socfpga: Spl...
263

346d6f566   Marek Vasut   arm: socfpga: spl...
264
265
  /* SPL QSPI boot support */
  #ifdef CONFIG_SPL_SPI_SUPPORT
346d6f566   Marek Vasut   arm: socfpga: spl...
266
267
268
  #define CONFIG_SPL_SPI_LOAD
  #define CONFIG_SYS_SPI_U_BOOT_OFFS	0x40000
  #endif
c339ea5bf   Marek Vasut   arm: socfpga: Add...
269
270
  /* SPL NAND boot support */
  #ifdef CONFIG_SPL_NAND_SUPPORT
c339ea5bf   Marek Vasut   arm: socfpga: Add...
271
272
273
  #define CONFIG_SYS_NAND_BAD_BLOCK_POS	0
  #define CONFIG_SYS_NAND_U_BOOT_OFFS	0x40000
  #endif
a717b811f   Dinh Nguyen   arm: socfpga: spl...
274
275
276
277
  /*
   * Stack setup
   */
  #define CONFIG_SPL_STACK		CONFIG_SYS_INIT_SP_ADDR
451e82412   Dalon Westergreen   arm: socfpga: Add...
278
279
  /* Extra Environment */
  #ifndef CONFIG_SPL_BUILD
451e82412   Dalon Westergreen   arm: socfpga: Add...
280

1c7fa7931   Simon Goldschmidt   arm: socfpga: all...
281
282
283
284
285
  #ifdef CONFIG_CMD_DHCP
  #define BOOT_TARGET_DEVICES_DHCP(func) func(DHCP, dhcp, na)
  #else
  #define BOOT_TARGET_DEVICES_DHCP(func)
  #endif
451e82412   Dalon Westergreen   arm: socfpga: Add...
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
  #ifdef CONFIG_CMD_PXE
  #define BOOT_TARGET_DEVICES_PXE(func) func(PXE, pxe, na)
  #else
  #define BOOT_TARGET_DEVICES_PXE(func)
  #endif
  
  #ifdef CONFIG_CMD_MMC
  #define BOOT_TARGET_DEVICES_MMC(func) func(MMC, mmc, 0)
  #else
  #define BOOT_TARGET_DEVICES_MMC(func)
  #endif
  
  #define BOOT_TARGET_DEVICES(func) \
  	BOOT_TARGET_DEVICES_MMC(func) \
  	BOOT_TARGET_DEVICES_PXE(func) \
1c7fa7931   Simon Goldschmidt   arm: socfpga: all...
301
  	BOOT_TARGET_DEVICES_DHCP(func)
451e82412   Dalon Westergreen   arm: socfpga: Add...
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
  
  #include <config_distro_bootcmd.h>
  
  #ifndef CONFIG_EXTRA_ENV_SETTINGS
  #define CONFIG_EXTRA_ENV_SETTINGS \
  	"fdtfile=" CONFIG_DEFAULT_FDT_FILE "\0" \
  	"bootm_size=0xa000000\0" \
  	"kernel_addr_r="__stringify(CONFIG_SYS_LOAD_ADDR)"\0" \
  	"fdt_addr_r=0x02000000\0" \
  	"scriptaddr=0x02100000\0" \
  	"pxefile_addr_r=0x02200000\0" \
  	"ramdisk_addr_r=0x02300000\0" \
  	BOOTENV
  
  #endif
  #endif
48275c96f   Dinh Nguyen   arm: socfpga: fix...
318
  #endif	/* __CONFIG_SOCFPGA_COMMON_H__ */