Blame view

include/configs/sunxi-common.h 9.3 KB
cba69eeea   Ian Campbell   sunxi: add sun7i ...
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
  /*
   * (C) Copyright 2012-2012 Henrik Nordstrom <henrik@henriknordstrom.net>
   *
   * (C) Copyright 2007-2011
   * Allwinner Technology Co., Ltd. <www.allwinnertech.com>
   * Tom Cubie <tangliang@allwinnertech.com>
   *
   * Configuration settings for the Allwinner sunxi series of boards.
   *
   * SPDX-License-Identifier:	GPL-2.0+
   */
  
  #ifndef _SUNXI_COMMON_CONFIG_H
  #define _SUNXI_COMMON_CONFIG_H
  
  /*
   * High Level Configuration Options
   */
  #define CONFIG_SUNXI		/* sunxi family */
50827a599   Ian Campbell   sunxi: non-FEL SP...
20
  #ifdef CONFIG_SPL_BUILD
50827a599   Ian Campbell   sunxi: non-FEL SP...
21
22
  #define CONFIG_SYS_THUMB_BUILD	/* Thumbs mode to save space in SPL */
  #endif
cba69eeea   Ian Campbell   sunxi: add sun7i ...
23
24
25
26
  
  #include <asm/arch/cpu.h>	/* get chip and board defs */
  
  #define CONFIG_SYS_TEXT_BASE		0x4a000000
57f878efe   Simon Glass   dm: sunxi: Add a ...
27
28
  #if !defined(CONFIG_SPL_BUILD) && defined(CONFIG_DM)
  # define CONFIG_CMD_DM
7aa974858   Simon Glass   dm: sunxi: Modify...
29
  # define CONFIG_DM_GPIO
1a81cf839   Simon Glass   dm: sunxi: Add su...
30
31
32
  # define CONFIG_DM_SERIAL
  # define CONFIG_DW_SERIAL
  # define CONFIG_SYS_MALLOC_F_LEN	(1 << 10)
57f878efe   Simon Glass   dm: sunxi: Add a ...
33
  #endif
cba69eeea   Ian Campbell   sunxi: add sun7i ...
34
35
36
37
  /*
   * Display CPU information
   */
  #define CONFIG_DISPLAY_CPUINFO
4e7c892d1   Ian Campbell   sunxi: Use a comm...
38
  #define CONFIG_SYS_PROMPT	"sunxi# "
cba69eeea   Ian Campbell   sunxi: add sun7i ...
39
40
41
42
  /* Serial & console */
  #define CONFIG_SYS_NS16550
  #define CONFIG_SYS_NS16550_SERIAL
  /* ns16550 reg in the low bits of cpu reg */
cba69eeea   Ian Campbell   sunxi: add sun7i ...
43
  #define CONFIG_SYS_NS16550_CLK		24000000
1a81cf839   Simon Glass   dm: sunxi: Add su...
44
45
46
47
48
49
50
51
  #ifndef CONFIG_DM_SERIAL
  # define CONFIG_SYS_NS16550_REG_SIZE	-4
  # define CONFIG_SYS_NS16550_COM1		SUNXI_UART0_BASE
  # define CONFIG_SYS_NS16550_COM2		SUNXI_UART1_BASE
  # define CONFIG_SYS_NS16550_COM3		SUNXI_UART2_BASE
  # define CONFIG_SYS_NS16550_COM4		SUNXI_UART3_BASE
  # define CONFIG_SYS_NS16550_COM5		SUNXI_R_UART_BASE
  #endif
cba69eeea   Ian Campbell   sunxi: add sun7i ...
52
53
54
55
56
57
58
59
60
61
62
63
64
65
  
  /* DRAM Base */
  #define CONFIG_SYS_SDRAM_BASE		0x40000000
  #define CONFIG_SYS_INIT_RAM_ADDR	0x0
  #define CONFIG_SYS_INIT_RAM_SIZE	0x8000	/* 32 KiB */
  
  #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)
  
  #define CONFIG_NR_DRAM_BANKS		1
  #define PHYS_SDRAM_0			CONFIG_SYS_SDRAM_BASE
  #define PHYS_SDRAM_0_SIZE		0x80000000 /* 2 GiB */
a6e50a88d   Ian Campbell   ahci: provide sun...
66
67
68
69
70
71
72
73
74
75
76
  #ifdef CONFIG_AHCI
  #define CONFIG_LIBATA
  #define CONFIG_SCSI_AHCI
  #define CONFIG_SCSI_AHCI_PLAT
  #define CONFIG_SUNXI_AHCI
  #define CONFIG_SYS_SCSI_MAX_SCSI_ID	1
  #define CONFIG_SYS_SCSI_MAX_LUN		1
  #define CONFIG_SYS_SCSI_MAX_DEVICE	(CONFIG_SYS_SCSI_MAX_SCSI_ID * \
  					 CONFIG_SYS_SCSI_MAX_LUN)
  #define CONFIG_CMD_SCSI
  #endif
cba69eeea   Ian Campbell   sunxi: add sun7i ...
77
78
  #define CONFIG_CMD_MEMORY
  #define CONFIG_CMD_SETEXPR
bd2a4888b   Hans de Goede   sunxi: configs/su...
79
80
  #define CONFIG_PARTITION_UUIDS
  #define CONFIG_CMD_PART
cba69eeea   Ian Campbell   sunxi: add sun7i ...
81
82
83
  #define CONFIG_SETUP_MEMORY_TAGS
  #define CONFIG_CMDLINE_TAG
  #define CONFIG_INITRD_TAG
e24ea55c0   Ian Campbell   sunxi: mmc support
84
  /* mmc config */
ff2b47f6a   Chen-Yu Tsai   ARM: sunxi: Add s...
85
  #if !defined(CONFIG_UART0_PORT_F)
e24ea55c0   Ian Campbell   sunxi: mmc support
86
87
88
89
90
  #define CONFIG_MMC
  #define CONFIG_GENERIC_MMC
  #define CONFIG_CMD_MMC
  #define CONFIG_MMC_SUNXI
  #define CONFIG_MMC_SUNXI_SLOT		0
e24ea55c0   Ian Campbell   sunxi: mmc support
91
92
  #define CONFIG_ENV_IS_IN_MMC
  #define CONFIG_SYS_MMC_ENV_DEV		0	/* first detected MMC controller */
ff2b47f6a   Chen-Yu Tsai   ARM: sunxi: Add s...
93
  #endif
e24ea55c0   Ian Campbell   sunxi: mmc support
94

cba69eeea   Ian Campbell   sunxi: add sun7i ...
95
96
97
98
99
100
101
  /* 4MB of malloc() pool */
  #define CONFIG_SYS_MALLOC_LEN		(CONFIG_ENV_SIZE + (4 << 20))
  
  /*
   * Miscellaneous configurable options
   */
  #define CONFIG_CMD_ECHO
06beadb00   Ian Campbell   sunxi: Increase c...
102
103
  #define CONFIG_SYS_CBSIZE	1024	/* Console I/O Buffer Size */
  #define CONFIG_SYS_PBSIZE	1024	/* Print Buffer Size */
cba69eeea   Ian Campbell   sunxi: add sun7i ...
104
105
106
107
108
  #define CONFIG_SYS_MAXARGS	16	/* max number of command args */
  #define CONFIG_SYS_GENERIC_BOARD
  
  /* Boot Argument Buffer Size */
  #define CONFIG_SYS_BARGSIZE		CONFIG_SYS_CBSIZE
846e32544   Hans de Goede   sunxi: Add enviro...
109
  #define CONFIG_SYS_LOAD_ADDR		0x42000000 /* default load address */
cba69eeea   Ian Campbell   sunxi: add sun7i ...
110
111
  
  /* standalone support */
846e32544   Hans de Goede   sunxi: Add enviro...
112
  #define CONFIG_STANDALONE_LOAD_ADDR	0x42000000
cba69eeea   Ian Campbell   sunxi: add sun7i ...
113

cba69eeea   Ian Campbell   sunxi: add sun7i ...
114
115
116
117
118
119
120
121
122
123
124
125
  /* baudrate */
  #define CONFIG_BAUDRATE			115200
  
  /* The stack sizes are set up in start.S using the settings below */
  #define CONFIG_STACKSIZE		(256 << 10)	/* 256 KiB */
  
  /* FLASH and environment organization */
  
  #define CONFIG_SYS_NO_FLASH
  
  #define CONFIG_SYS_MONITOR_LEN		(512 << 10)	/* 512 KiB */
  #define CONFIG_IDENT_STRING		" Allwinner Technology"
e24ea55c0   Ian Campbell   sunxi: mmc support
126
  #define CONFIG_ENV_OFFSET		(544 << 10) /* (8 + 24 + 512) KiB */
cba69eeea   Ian Campbell   sunxi: add sun7i ...
127
  #define CONFIG_ENV_SIZE			(128 << 10)	/* 128 KiB */
cba69eeea   Ian Campbell   sunxi: add sun7i ...
128
  #include <config_cmd_default.h>
b9fb3b94c   Hans de Goede   sunxi-common.h: D...
129
  #undef CONFIG_CMD_FPGA
cba69eeea   Ian Campbell   sunxi: add sun7i ...
130
131
132
133
134
135
136
  
  #define CONFIG_FAT_WRITE	/* enable write access */
  
  #define CONFIG_SPL_FRAMEWORK
  #define CONFIG_SPL_LIBCOMMON_SUPPORT
  #define CONFIG_SPL_SERIAL_SUPPORT
  #define CONFIG_SPL_LIBGENERIC_SUPPORT
942cb0b6a   Simon Glass   sunxi: Normalise ...
137
  #define CONFIG_SPL_BOARD_LOAD_IMAGE
50827a599   Ian Campbell   sunxi: non-FEL SP...
138
  #ifdef CONFIG_SPL_FEL
cba69eeea   Ian Campbell   sunxi: add sun7i ...
139
140
  #define CONFIG_SPL_TEXT_BASE		0x2000
  #define CONFIG_SPL_MAX_SIZE		0x4000		/* 16 KiB */
50827a599   Ian Campbell   sunxi: non-FEL SP...
141
142
143
144
145
146
147
148
149
150
  
  #else /* CONFIG_SPL */
  
  #define CONFIG_SPL_BSS_START_ADDR	0x4ff80000
  #define CONFIG_SPL_BSS_MAX_SIZE		0x80000		/* 512 KiB */
  
  #define CONFIG_SPL_TEXT_BASE		0x20		/* sram start+header */
  #define CONFIG_SPL_MAX_SIZE		0x5fe0		/* 24KB on sun4i/sun7i */
  
  #define CONFIG_SPL_LIBDISK_SUPPORT
f0ce28e9e   Siarhei Siamashka   sunxi: Fix CONFIG...
151
152
  
  #if !defined(CONFIG_UART0_PORT_F)
50827a599   Ian Campbell   sunxi: non-FEL SP...
153
  #define CONFIG_SPL_MMC_SUPPORT
f0ce28e9e   Siarhei Siamashka   sunxi: Fix CONFIG...
154
  #endif
50827a599   Ian Campbell   sunxi: non-FEL SP...
155
156
157
158
159
160
161
  
  #define CONFIG_SPL_LDSCRIPT "arch/arm/cpu/armv7/sunxi/u-boot-spl.lds"
  
  #define CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_SECTOR	80	/* 40KiB */
  #define CONFIG_SPL_PAD_TO		32768		/* decimal for 'dd' */
  
  #endif /* CONFIG_SPL */
cba69eeea   Ian Campbell   sunxi: add sun7i ...
162
163
164
165
166
  /* end of 32 KiB in sram */
  #define LOW_LEVEL_SRAM_STACK		0x00008000 /* End of sram */
  #define CONFIG_SPL_STACK		LOW_LEVEL_SRAM_STACK
  #define CONFIG_SYS_SPL_MALLOC_START	0x4ff00000
  #define CONFIG_SYS_SPL_MALLOC_SIZE	0x00080000	/* 512 KiB */
6620377e4   Hans de Goede   sunxi: Add i2c su...
167
  /* I2C */
ad40610b4   Hans de Goede   sunxi: Only enabl...
168
  #if defined CONFIG_AXP152_POWER || defined CONFIG_AXP209_POWER
6620377e4   Hans de Goede   sunxi: Add i2c su...
169
  #define CONFIG_SPL_I2C_SUPPORT
ad40610b4   Hans de Goede   sunxi: Only enabl...
170
  #endif
6620377e4   Hans de Goede   sunxi: Add i2c su...
171
172
173
174
175
  #define CONFIG_SYS_I2C
  #define CONFIG_SYS_I2C_MVTWSI
  #define CONFIG_SYS_I2C_SPEED		400000
  #define CONFIG_SYS_I2C_SLAVE		0x7f
  #define CONFIG_CMD_I2C
14bc66bd9   Henrik Nordstrom   sunxi: Add axp209...
176
177
178
179
  /* PMU */
  #if defined CONFIG_AXP152_POWER || defined CONFIG_AXP209_POWER || defined CONFIG_AXP221_POWER
  #define CONFIG_SPL_POWER_SUPPORT
  #endif
f84269c5c   Hans de Goede   sunxi: Add sun5i ...
180
  #ifndef CONFIG_CONS_INDEX
cba69eeea   Ian Campbell   sunxi: add sun7i ...
181
  #define CONFIG_CONS_INDEX              1       /* UART0 */
f84269c5c   Hans de Goede   sunxi: Add sun5i ...
182
  #endif
cba69eeea   Ian Campbell   sunxi: add sun7i ...
183

abce2c622   Ian Campbell   sunxi: add gpio d...
184
185
  /* GPIO */
  #define CONFIG_SUNXI_GPIO
cd82113a9   Hans de Goede   sunxi: Add mmc ca...
186
  #define CONFIG_SPL_GPIO_SUPPORT
abce2c622   Ian Campbell   sunxi: add gpio d...
187
  #define CONFIG_CMD_GPIO
7f2c521f9   Luc Verhaegen   sunxi: video: Add...
188
189
  #ifdef CONFIG_VIDEO
  /*
5633a296e   Hans de Goede   sunxi: video: Do ...
190
191
   * The amount of RAM to keep free at the top of RAM when relocating u-boot,
   * to use as framebuffer. This must be a multiple of 4096.
7f2c521f9   Luc Verhaegen   sunxi: video: Add...
192
   */
5633a296e   Hans de Goede   sunxi: video: Do ...
193
  #define CONFIG_SUNXI_MAX_FB_SIZE (9 << 20)
7f2c521f9   Luc Verhaegen   sunxi: video: Add...
194

2d7a084ba   Luc Verhaegen   sunxi: video: Add...
195
196
  /* Do we want to initialize a simple FB? */
  #define CONFIG_VIDEO_DT_SIMPLEFB
7f2c521f9   Luc Verhaegen   sunxi: video: Add...
197
198
199
200
201
  #define CONFIG_VIDEO_SUNXI
  
  #define CONFIG_CFB_CONSOLE
  #define CONFIG_VIDEO_SW_CURSOR
  #define CONFIG_VIDEO_LOGO
be8ec6330   Hans de Goede   sunxi: video: Use...
202
  #define CONFIG_VIDEO_STD_TIMINGS
75481607c   Hans de Goede   sunxi: video: Add...
203
  #define CONFIG_I2C_EDID
7f2c521f9   Luc Verhaegen   sunxi: video: Add...
204
205
206
207
208
  
  /* allow both serial and cfb console. */
  #define CONFIG_CONSOLE_MUX
  /* stop x86 thinking in cfbconsole from trying to init a pc keyboard */
  #define CONFIG_VGA_AS_SINGLE_DEVICE
2d7a084ba   Luc Verhaegen   sunxi: video: Add...
209
210
211
212
  /* To be able to hook simplefb into dt */
  #ifdef CONFIG_VIDEO_DT_SIMPLEFB
  #define CONFIG_OF_BOARD_SETUP
  #endif
7f2c521f9   Luc Verhaegen   sunxi: video: Add...
213
  #endif /* CONFIG_VIDEO */
c26fb9db0   Hans de Goede   sunxi: Add emac g...
214
215
216
217
  /* Ethernet support */
  #ifdef CONFIG_SUNXI_EMAC
  #define CONFIG_MII			/* MII PHY management		*/
  #endif
5835823da   Ian Campbell   sunxi: add gmac E...
218
219
220
221
222
223
224
225
  #ifdef CONFIG_SUNXI_GMAC
  #define CONFIG_DESIGNWARE_ETH		/* GMAC can use designware driver */
  #define CONFIG_DW_AUTONEG
  #define CONFIG_PHY_GIGE			/* GMAC can use gigabit PHY	*/
  #define CONFIG_PHY_ADDR		1
  #define CONFIG_MII			/* MII PHY management		*/
  #define CONFIG_PHYLIB
  #endif
3584f30ce   Roman Byshko   sunxi: add genera...
226
  #ifdef CONFIG_USB_EHCI
3584f30ce   Roman Byshko   sunxi: add genera...
227
  #define CONFIG_SYS_USB_EHCI_MAX_ROOT_PORTS 1
1a800f7af   Hans de Goede   sunxi: Hookup OTG...
228
229
230
231
232
233
234
235
236
  #endif
  
  #ifdef CONFIG_USB_MUSB_SUNXI
  #define CONFIG_MUSB_HOST
  #define CONFIG_MUSB_PIO_ONLY
  #endif
  
  #if defined CONFIG_USB_EHCI || defined CONFIG_USB_MUSB_SUNXI
  #define CONFIG_CMD_USB
3584f30ce   Roman Byshko   sunxi: add genera...
237
238
  #define CONFIG_USB_STORAGE
  #endif
86b490934   Hans de Goede   sunxi: Add usb ke...
239
240
241
242
243
244
  #ifdef CONFIG_USB_KEYBOARD
  #define CONFIG_CONSOLE_MUX
  #define CONFIG_PREBOOT
  #define CONFIG_SYS_STDIO_DEREGISTER
  #define CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE
  #endif
cba69eeea   Ian Campbell   sunxi: add sun7i ...
245
246
247
248
249
250
  #if !defined CONFIG_ENV_IS_IN_MMC && \
      !defined CONFIG_ENV_IS_IN_NAND && \
      !defined CONFIG_ENV_IS_IN_FAT && \
      !defined CONFIG_ENV_IS_IN_SPI_FLASH
  #define CONFIG_ENV_IS_NOWHERE
  #endif
b41d7d05b   Jonathan Liu   sunxi: use random...
251
  #define CONFIG_MISC_INIT_R
7f2c521f9   Luc Verhaegen   sunxi: video: Add...
252
  #define CONFIG_SYS_CONSOLE_IS_IN_ENV
b41d7d05b   Jonathan Liu   sunxi: use random...
253

cba69eeea   Ian Campbell   sunxi: add sun7i ...
254
255
  #ifndef CONFIG_SPL_BUILD
  #include <config_distro_defaults.h>
2ec3a612f   Hans de Goede   sunxi-common.h: U...
256

a79250785   Siarhei Siamashka   sunxi: Enable pre...
257
258
259
260
261
  /* Enable pre-console buffer to get complete log on the VGA console */
  #define CONFIG_PRE_CONSOLE_BUFFER
  #define CONFIG_PRE_CON_BUF_SZ		(1024 * 1024)
  /* Use the room between the end of bootm_size and the framebuffer */
  #define CONFIG_PRE_CON_BUF_ADDR		0x4f000000
8c95c5566   Hans de Goede   sunxi: sunxi-comm...
262
263
264
265
266
  /*
   * 240M RAM (256M minimum minus space for the framebuffer),
   * 32M uncompressed kernel, 16M compressed kernel, 1M fdt,
   * 1M script, 1M pxe and the ramdisk at the end.
   */
846e32544   Hans de Goede   sunxi: Add enviro...
267
  #define MEM_LAYOUT_ENV_SETTINGS \
8c95c5566   Hans de Goede   sunxi: sunxi-comm...
268
  	"bootm_size=0xf000000\0" \
846e32544   Hans de Goede   sunxi: Add enviro...
269
270
271
272
273
  	"kernel_addr_r=0x42000000\0" \
  	"fdt_addr_r=0x43000000\0" \
  	"scriptaddr=0x43100000\0" \
  	"pxefile_addr_r=0x43200000\0" \
  	"ramdisk_addr_r=0x43300000\0"
41f8e9f5c   Chen-Yu Tsai   ARM: sunxi: Fix b...
274
275
276
277
278
  #ifdef CONFIG_MMC
  #define BOOT_TARGET_DEVICES_MMC(func) func(MMC, mmc, 0)
  #else
  #define BOOT_TARGET_DEVICES_MMC(func)
  #endif
2ec3a612f   Hans de Goede   sunxi-common.h: U...
279
280
281
282
283
  #ifdef CONFIG_AHCI
  #define BOOT_TARGET_DEVICES_SCSI(func) func(SCSI, scsi, 0)
  #else
  #define BOOT_TARGET_DEVICES_SCSI(func)
  #endif
859b3f143   Chen-Yu Tsai   ARM: sunxi: Fix b...
284
285
286
287
288
  #ifdef CONFIG_USB_EHCI
  #define BOOT_TARGET_DEVICES_USB(func) func(USB, usb, 0)
  #else
  #define BOOT_TARGET_DEVICES_USB(func)
  #endif
2ec3a612f   Hans de Goede   sunxi-common.h: U...
289
  #define BOOT_TARGET_DEVICES(func) \
41f8e9f5c   Chen-Yu Tsai   ARM: sunxi: Fix b...
290
  	BOOT_TARGET_DEVICES_MMC(func) \
2ec3a612f   Hans de Goede   sunxi-common.h: U...
291
  	BOOT_TARGET_DEVICES_SCSI(func) \
859b3f143   Chen-Yu Tsai   ARM: sunxi: Fix b...
292
  	BOOT_TARGET_DEVICES_USB(func) \
2ec3a612f   Hans de Goede   sunxi-common.h: U...
293
294
295
296
  	func(PXE, pxe, na) \
  	func(DHCP, dhcp, na)
  
  #include <config_distro_bootcmd.h>
86b490934   Hans de Goede   sunxi: Add usb ke...
297
298
299
300
301
  #ifdef CONFIG_USB_KEYBOARD
  #define CONSOLE_STDIN_SETTINGS \
  	"preboot=usb start\0" \
  	"stdin=serial,usbkbd\0"
  #else
7f2c521f9   Luc Verhaegen   sunxi: video: Add...
302
303
  #define CONSOLE_STDIN_SETTINGS \
  	"stdin=serial\0"
86b490934   Hans de Goede   sunxi: Add usb ke...
304
  #endif
7f2c521f9   Luc Verhaegen   sunxi: video: Add...
305
306
307
308
309
310
311
312
313
314
315
316
317
318
  
  #ifdef CONFIG_VIDEO
  #define CONSOLE_STDOUT_SETTINGS \
  	"stdout=serial,vga\0" \
  	"stderr=serial,vga\0"
  #else
  #define CONSOLE_STDOUT_SETTINGS \
  	"stdout=serial\0" \
  	"stderr=serial\0"
  #endif
  
  #define CONSOLE_ENV_SETTINGS \
  	CONSOLE_STDIN_SETTINGS \
  	CONSOLE_STDOUT_SETTINGS
2ec3a612f   Hans de Goede   sunxi-common.h: U...
319
  #define CONFIG_EXTRA_ENV_SETTINGS \
7f2c521f9   Luc Verhaegen   sunxi: video: Add...
320
  	CONSOLE_ENV_SETTINGS \
846e32544   Hans de Goede   sunxi: Add enviro...
321
  	MEM_LAYOUT_ENV_SETTINGS \
98e214dde   Ian Campbell   sunxi: Correct ty...
322
  	"fdtfile=" CONFIG_FDTFILE "\0" \
846e32544   Hans de Goede   sunxi: Add enviro...
323
  	"console=ttyS0,115200\0" \
2ec3a612f   Hans de Goede   sunxi-common.h: U...
324
325
326
327
  	BOOTENV
  
  #else /* ifndef CONFIG_SPL_BUILD */
  #define CONFIG_EXTRA_ENV_SETTINGS
cba69eeea   Ian Campbell   sunxi: add sun7i ...
328
329
330
  #endif
  
  #endif /* _SUNXI_COMMON_CONFIG_H */