am43xx_evm.h 12.4 KB
Newer Older
L
Lokesh Vutla 已提交
1 2 3 4 5 6 7 8 9 10 11 12 13
/*
 * am43xx_evm.h
 *
 * Copyright (C) 2013 Texas Instruments Incorporated - http://www.ti.com/
 *
 * SPDX-License-Identifier:	GPL-2.0+
 */

#ifndef __CONFIG_AM43XX_EVM_H
#define __CONFIG_AM43XX_EVM_H

#define CONFIG_AM43XX

14 15
#define CONFIG_CMD_FAT

16 17 18
#define CONFIG_BOARD_LATE_INIT
#define CONFIG_ARCH_CPU_INIT
#define CONFIG_SYS_CACHELINE_SIZE       32
L
Lokesh Vutla 已提交
19
#define CONFIG_MAX_RAM_BANK_SIZE	(1024 << 21)	/* 2GB */
L
Lokesh Vutla 已提交
20
#define CONFIG_SYS_TIMERBASE		0x48040000	/* Use Timer2 */
21 22

#include <asm/arch/omap.h>
L
Lokesh Vutla 已提交
23 24 25 26 27

/* NS16550 Configuration */
#define CONFIG_SYS_NS16550
#define CONFIG_SYS_NS16550_SERIAL
#define CONFIG_SYS_NS16550_REG_SIZE	(-4)
28
#define CONFIG_SYS_NS16550_CLK		48000000
L
Lokesh Vutla 已提交
29

30 31 32 33 34 35 36
/* I2C Configuration */
#define CONFIG_CMD_EEPROM
#define CONFIG_ENV_EEPROM_IS_ON_I2C
#define CONFIG_SYS_I2C_EEPROM_ADDR	0x50	/* Main EEPROM */
#define CONFIG_SYS_I2C_EEPROM_ADDR_LEN	2
#define CONFIG_SYS_I2C_MULTI_EEPROMS

37
/* Power */
38 39
#define CONFIG_POWER
#define CONFIG_POWER_I2C
40
#define CONFIG_POWER_TPS65218
41
#define CONFIG_POWER_TPS62362
42

43
/* SPL defines. */
44 45 46 47 48 49 50 51
#ifdef CONFIG_SPL_USB_HOST_SUPPORT
/*
 * For USB host boot, ROM uses DMA for copying MLO from USB storage
 * and ARM internal ram is not accessible for DMA, so SPL text base
 * should be in OCMC ram
 */
#define CONFIG_SPL_TEXT_BASE		0x40300350
#else
T
Tom Rini 已提交
52
#define CONFIG_SPL_TEXT_BASE		0x402F4000
53
#endif
T
Tom Rini 已提交
54
#define CONFIG_SPL_MAX_SIZE		(220 << 10)	/* 220KB */
55 56
#define CONFIG_SYS_SPL_ARGS_ADDR	(CONFIG_SYS_SDRAM_BASE + \
					 (128 << 20))
57
#define CONFIG_SPL_POWER_SUPPORT
58
#define CONFIG_SPL_YMODEM_SUPPORT
L
Lokesh Vutla 已提交
59

L
Lokesh Vutla 已提交
60 61 62 63 64
/* Enabling L2 Cache */
#define CONFIG_SYS_L2_PL310
#define CONFIG_SYS_PL310_BASE	0x48242000
#define CONFIG_SYS_CACHELINE_SIZE	32

L
Lokesh Vutla 已提交
65
/*
66 67
 * Since SPL did pll and ddr initialization for us,
 * we don't need to do it twice.
L
Lokesh Vutla 已提交
68
 */
S
Sourav Poddar 已提交
69
#if !defined(CONFIG_SPL_BUILD) && !defined(CONFIG_QSPI_BOOT)
L
Lokesh Vutla 已提交
70 71 72
#define CONFIG_SKIP_LOWLEVEL_INIT
#endif

73 74 75 76 77 78 79 80 81
/*
 * When building U-Boot such that there is no previous loader
 * we need to call board_early_init_f.  This is taken care of in
 * s_init when we have SPL used.
 */
#if !defined(CONFIG_SKIP_LOWLEVEL_INIT) && !defined(CONFIG_SPL)
#define CONFIG_BOARD_EARLY_INIT_F
#endif

82
/* Now bring in the rest of the common code. */
83
#include <configs/ti_armv7_omap.h>
L
Lokesh Vutla 已提交
84

S
Sourav Poddar 已提交
85 86
/* Always 64 KiB env size */
#define CONFIG_ENV_SIZE			(64 << 10)
L
Lokesh Vutla 已提交
87

88
#define CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG
L
Lokesh Vutla 已提交
89

90 91 92
/* Clock Defines */
#define V_OSCK				24000000  /* Clock output from T2 */
#define V_SCLK				(V_OSCK)
L
Lokesh Vutla 已提交
93

94 95 96
/* NS16550 Configuration */
#define CONFIG_SYS_NS16550_COM1		0x44e09000	/* Base EVM has UART0 */

97 98 99 100 101
#define CONFIG_ENV_IS_IN_FAT
#define FAT_ENV_INTERFACE		"mmc"
#define FAT_ENV_DEVICE_AND_PART		"0:1"
#define FAT_ENV_FILE			"uboot.env"
#define CONFIG_FAT_WRITE
102 103

#define CONFIG_SPL_LDSCRIPT		"$(CPUDIR)/omap-common/u-boot-spl.lds"
L
Lokesh Vutla 已提交
104

105
/* SPL USB Support */
106
#ifdef CONFIG_SPL_USB_HOST_SUPPORT
107 108 109
#define CONFIG_SPL_USB_SUPPORT
#define CONFIG_SYS_USB_FAT_BOOT_PARTITION		1

110 111 112
#define CONFIG_CMD_USB
#define CONFIG_USB_HOST
#define CONFIG_USB_XHCI
113
#define CONFIG_USB_XHCI_DWC3
114 115 116 117 118 119
#define CONFIG_USB_XHCI_OMAP
#define CONFIG_USB_STORAGE
#define CONFIG_SYS_USB_XHCI_MAX_ROOT_PORTS 2

#define CONFIG_OMAP_USB_PHY
#define CONFIG_AM437X_USB2PHY2_HOST
120
#endif
121

122 123 124 125 126 127 128 129 130
/* USB GADGET */
#if !defined(CONFIG_SPL_BUILD) || \
	(defined(CONFIG_SPL_BUILD) && defined(CONFIG_SPL_USBETH_SUPPORT))
#define CONFIG_USB_DWC3_PHY_OMAP
#define CONFIG_USB_DWC3_OMAP
#define CONFIG_USB_DWC3
#define CONFIG_USB_DWC3_GADGET

#define CONFIG_USB_GADGET
131
#define CONFIG_USB_GADGET_DOWNLOAD
132 133 134 135 136 137 138 139 140
#define CONFIG_USB_GADGET_VBUS_DRAW 2
#define CONFIG_G_DNL_MANUFACTURER "Texas Instruments"
#define CONFIG_G_DNL_VENDOR_NUM 0x0403
#define CONFIG_G_DNL_PRODUCT_NUM 0xBD00
#define CONFIG_USB_GADGET_DUALSPEED
#endif

#ifndef CONFIG_SPL_BUILD
/* USB Device Firmware Update support */
141
#define CONFIG_USB_FUNCTION_DFU
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 175 176
#define CONFIG_DFU_RAM
#define CONFIG_CMD_DFU

#define CONFIG_DFU_MMC
#define DFU_ALT_INFO_MMC \
	"dfu_alt_info_mmc=" \
	"boot part 0 1;" \
	"rootfs part 0 2;" \
	"MLO fat 0 1;" \
	"spl-os-args fat 0 1;" \
	"spl-os-image fat 0 1;" \
	"u-boot.img fat 0 1;" \
	"uEnv.txt fat 0 1\0"

#define DFU_ALT_INFO_EMMC \
	"dfu_alt_info_emmc=" \
	"MLO raw 0x100 0x100 mmcpart 0;" \
	"u-boot.img raw 0x300 0x1000 mmcpart 0\0"

#define CONFIG_DFU_RAM
#define DFU_ALT_INFO_RAM \
	"dfu_alt_info_ram=" \
	"kernel ram 0x80200000 0x4000000;" \
	"fdt ram 0x80f80000 0x80000;" \
	"ramdisk ram 0x81000000 0x4000000\0"

#define DFUARGS \
	"dfu_bufsiz=0x10000\0" \
	DFU_ALT_INFO_MMC \
	DFU_ALT_INFO_EMMC \
	DFU_ALT_INFO_RAM
#else
#define DFUARGS
#endif

S
Sourav Poddar 已提交
177 178
#ifdef CONFIG_QSPI_BOOT
#define CONFIG_SYS_TEXT_BASE           0x30000000
179
#undef CONFIG_ENV_IS_IN_FAT
S
Sourav Poddar 已提交
180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200
#define CONFIG_ENV_IS_IN_SPI_FLASH
#define CONFIG_SYS_REDUNDAND_ENVIRONMENT
#define CONFIG_ENV_SPI_MAX_HZ           CONFIG_SF_DEFAULT_SPEED
#define CONFIG_ENV_SECT_SIZE           (64 << 10) /* 64 KB sectors */
#define CONFIG_ENV_OFFSET              0x110000
#define CONFIG_ENV_OFFSET_REDUND       0x120000
#ifdef MTDIDS_DEFAULT
#undef MTDIDS_DEFAULT
#endif
#ifdef MTDPARTS_DEFAULT
#undef MTDPARTS_DEFAULT
#endif
#define MTDPARTS_DEFAULT		"mtdparts=qspi.0:512k(QSPI.u-boot)," \
					"512k(QSPI.u-boot.backup)," \
					"512k(QSPI.u-boot-spl-os)," \
					"64k(QSPI.u-boot-env)," \
					"64k(QSPI.u-boot-env.backup)," \
					"8m(QSPI.kernel)," \
					"-(QSPI.file-system)"
#endif

201 202 203 204 205 206 207 208 209 210 211
/* SPI */
#undef CONFIG_OMAP3_SPI
#define CONFIG_TI_QSPI
#define CONFIG_SPI_FLASH_MACRONIX
#define CONFIG_CMD_SF
#define CONFIG_CMD_SPI
#define CONFIG_TI_SPI_MMAP
#define CONFIG_QSPI_SEL_GPIO                   48
#define CONFIG_SF_DEFAULT_SPEED                48000000
#define CONFIG_DEFAULT_SPI_MODE                SPI_MODE_3

T
Tom Rini 已提交
212 213 214 215
/* Enhance our eMMC support / experience. */
#define CONFIG_CMD_GPT
#define CONFIG_EFI_PARTITION

L
Lokesh Vutla 已提交
216 217
#ifndef CONFIG_SPL_BUILD
#define CONFIG_EXTRA_ENV_SETTINGS \
218
	DEFAULT_LINUX_BOOT_ENV \
L
Lokesh Vutla 已提交
219 220 221 222 223
	"fdtfile=undefined\0" \
	"bootpart=0:2\0" \
	"bootdir=/boot\0" \
	"bootfile=zImage\0" \
	"console=ttyO0,115200n8\0" \
T
Tom Rini 已提交
224 225 226
	"partitions=" \
		"uuid_disk=${uuid_gpt_disk};" \
		"name=rootfs,start=2MiB,size=-,uuid=${uuid_gpt_rootfs}\0" \
L
Lokesh Vutla 已提交
227 228 229 230
	"optargs=\0" \
	"mmcdev=0\0" \
	"mmcroot=/dev/mmcblk0p2 rw\0" \
	"mmcrootfstype=ext4 rootwait\0" \
231 232 233
	"usbroot=/dev/sda2 rw\0" \
	"usbrootfstype=ext4 rootwait\0" \
	"usbdev=0\0" \
234
	"ramroot=/dev/ram0 rw\0" \
L
Lokesh Vutla 已提交
235 236 237 238 239
	"ramrootfstype=ext2\0" \
	"mmcargs=setenv bootargs console=${console} " \
		"${optargs} " \
		"root=${mmcroot} " \
		"rootfstype=${mmcrootfstype}\0" \
240 241 242 243
	"usbargs=setenv bootargs console=${console} " \
		"${optargs} " \
		"root=${usbroot} " \
		"rootfstype=${usbrootfstype}\0" \
L
Lokesh Vutla 已提交
244
	"bootenv=uEnv.txt\0" \
245
	"loadbootenv=load ${devtype} ${devnum} ${loadaddr} ${bootenv}\0" \
L
Lokesh Vutla 已提交
246 247 248 249 250 251
	"importbootenv=echo Importing environment from mmc ...; " \
		"env import -t $loadaddr $filesize\0" \
	"ramargs=setenv bootargs console=${console} " \
		"${optargs} " \
		"root=${ramroot} " \
		"rootfstype=${ramrootfstype}\0" \
252 253 254
	"loadramdisk=load ${devtype} ${devnum} ${rdaddr} ramdisk.gz\0" \
	"loadimage=load ${devtype} ${bootpart} ${loadaddr} ${bootdir}/${bootfile}\0" \
	"loadfdt=load ${devtype} ${bootpart} ${fdtaddr} ${bootdir}/${fdtfile}\0" \
L
Lokesh Vutla 已提交
255
	"mmcboot=mmc dev ${mmcdev}; " \
256
		"setenv devnum ${mmcdev}; " \
257
		"setenv devtype mmc; " \
L
Lokesh Vutla 已提交
258
		"if mmc rescan; then " \
259
			"echo SD/MMC found on device ${devnum};" \
L
Lokesh Vutla 已提交
260 261 262 263 264 265 266 267 268 269 270 271 272 273 274
			"if run loadbootenv; then " \
				"echo Loaded environment from ${bootenv};" \
				"run importbootenv;" \
			"fi;" \
			"if test -n $uenvcmd; then " \
				"echo Running uenvcmd ...;" \
				"run uenvcmd;" \
			"fi;" \
			"if run loadimage; then " \
				"run loadfdt; " \
				"echo Booting from mmc${mmcdev} ...; " \
				"run mmcargs; " \
				"bootz ${loadaddr} - ${fdtaddr}; " \
			"fi;" \
		"fi;\0" \
275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294
	"usbboot=" \
		"setenv devnum ${usbdev}; " \
		"setenv devtype usb; " \
		"usb start ${usbdev}; " \
		"if usb dev ${usbdev}; then " \
			"if run loadbootenv; then " \
				"echo Loaded environment from ${bootenv};" \
				"run importbootenv;" \
			"fi;" \
			"if test -n $uenvcmd; then " \
				"echo Running uenvcmd ...;" \
				"run uenvcmd;" \
			"fi;" \
			"if run loadimage; then " \
				"run loadfdt; " \
				"echo Booting from usb ${usbdev}...; " \
				"run usbargs;" \
				"bootz ${loadaddr} - ${fdtaddr}; " \
			"fi;" \
		"fi\0" \
L
Lokesh Vutla 已提交
295 296 297 298 299
	"findfdt="\
		"if test $board_name = AM43EPOS; then " \
			"setenv fdtfile am43x-epos-evm.dtb; fi; " \
		"if test $board_name = AM43__GP; then " \
			"setenv fdtfile am437x-gp-evm.dtb; fi; " \
300 301
		"if test $board_name = AM43__SK; then " \
			"setenv fdtfile am437x-sk-evm.dtb; fi; " \
302 303
		"if test $board_name = AM43_IDK; then " \
			"setenv fdtfile am437x-idk-evm.dtb; fi; " \
L
Lokesh Vutla 已提交
304
		"if test $fdtfile = undefined; then " \
305
			"echo WARNING: Could not determine device tree; fi; \0" \
T
Tom Rini 已提交
306
	NANDARGS \
307
	NETARGS \
308
	DFUARGS \
L
Lokesh Vutla 已提交
309 310 311

#define CONFIG_BOOTCOMMAND \
	"run findfdt; " \
312
	"run mmcboot;" \
T
Tom Rini 已提交
313 314
	"run usbboot;" \
	NANDBOOT \
L
Lokesh Vutla 已提交
315

316 317
#endif

M
Mugunthan V N 已提交
318
#ifndef CONFIG_SPL_BUILD
319 320 321 322 323 324 325 326 327 328 329 330 331
/* CPSW Ethernet */
#define CONFIG_CMD_DHCP
#define CONFIG_CMD_PING
#define CONFIG_CMD_MII
#define CONFIG_MII
#define CONFIG_BOOTP_DEFAULT
#define CONFIG_BOOTP_DNS
#define CONFIG_BOOTP_DNS2
#define CONFIG_BOOTP_SEND_HOSTNAME
#define CONFIG_BOOTP_GATEWAY
#define CONFIG_BOOTP_SUBNETMASK
#define CONFIG_NET_RETRY_COUNT		10
#define CONFIG_PHY_GIGE
M
Mugunthan V N 已提交
332 333 334
#endif

#define CONFIG_DRIVER_TI_CPSW
335
#define CONFIG_PHYLIB
336 337 338 339

#define CONFIG_SPL_ENV_SUPPORT
#define CONFIG_SPL_NET_VCI_STRING	"AM43xx U-Boot SPL"

M
Mugunthan V N 已提交
340 341 342
#if defined(CONFIG_SPL_BUILD) && defined(CONFIG_SPL_ETH_SUPPORT)
#undef CONFIG_ENV_IS_IN_FAT
#define CONFIG_ENV_IS_NOWHERE
343
#define CONFIG_SPL_NET_SUPPORT
M
Mugunthan V N 已提交
344 345
#endif

346 347
#define CONFIG_SYS_RX_ETH_BUFFER	64

348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397
/* NAND support */
#ifdef CONFIG_NAND
/* NAND: device related configs */
#define CONFIG_SYS_NAND_PAGE_SIZE	4096
#define CONFIG_SYS_NAND_OOBSIZE		224
#define CONFIG_SYS_NAND_BLOCK_SIZE	(256*1024)
#define CONFIG_SYS_NAND_PAGE_COUNT	(CONFIG_SYS_NAND_BLOCK_SIZE / \
					 CONFIG_SYS_NAND_PAGE_SIZE)
#define CONFIG_SYS_NAND_5_ADDR_CYCLE
/* NAND: driver related configs */
#define CONFIG_NAND_OMAP_GPMC
#define CONFIG_NAND_OMAP_ELM
#define CONFIG_SYS_NAND_ONFI_DETECTION
#define CONFIG_NAND_OMAP_ECCSCHEME	OMAP_ECC_BCH16_CODE_HW
#define CONFIG_SYS_NAND_BAD_BLOCK_POS	NAND_LARGE_BADBLOCK_POS
#define CONFIG_SYS_NAND_ECCPOS	{ 2, 3, 4, 5, 6, 7, 8, 9, \
				10, 11, 12, 13, 14, 15, 16, 17, 18, 19, \
				20, 21, 22, 23, 24, 25, 26, 27, 28, 29, \
				30, 31, 32, 33, 34, 35, 36, 37, 38, 39, \
				40, 41, 42, 43, 44, 45, 46, 47, 48, 49, \
				50, 51, 52, 53, 54, 55, 56, 57, 58, 59, \
				60, 61, 62, 63, 64, 65, 66, 67, 68, 69, \
				70, 71, 72, 73, 74, 75, 76, 77, 78, 79, \
				80, 81, 82, 83, 84, 85, 86, 87, 88, 89, \
				90, 91, 92, 93, 94, 95, 96, 97, 98, 99, \
			100, 101, 102, 103, 104, 105, 106, 107, 108, 109, \
			110, 111, 112, 113, 114, 115, 116, 117, 118, 119, \
			120, 121, 122, 123, 124, 125, 126, 127, 128, 129, \
			130, 131, 132, 133, 134, 135, 136, 137, 138, 139, \
			140, 141, 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, 175, 176, 177, 178, 179, \
			180, 181, 182, 183, 184, 185, 186, 187, 188, 189, \
			190, 191, 192, 193, 194, 195, 196, 197, 198, 199, \
			200, 201, 202, 203, 204, 205, 206, 207, 208, 209, \
			}
#define CONFIG_SYS_NAND_ECCSIZE		512
#define CONFIG_SYS_NAND_ECCBYTES	26
#define MTDIDS_DEFAULT			"nand0=nand.0"
#define MTDPARTS_DEFAULT		"mtdparts=nand.0:" \
					"256k(NAND.SPL)," \
					"256k(NAND.SPL.backup1)," \
					"256k(NAND.SPL.backup2)," \
					"256k(NAND.SPL.backup3)," \
					"512k(NAND.u-boot-spl-os)," \
					"1m(NAND.u-boot)," \
					"256k(NAND.u-boot-env)," \
					"256k(NAND.u-boot-env.backup1)," \
					"7m(NAND.kernel)," \
398
					"-(NAND.file-system)"
399 400 401 402 403 404 405 406 407 408 409
#define CONFIG_SYS_NAND_U_BOOT_OFFS	0x00180000
/* NAND: SPL related configs */
#ifdef CONFIG_SPL_NAND_SUPPORT
#define CONFIG_SPL_NAND_AM33XX_BCH
#endif
/* NAND: SPL falcon mode configs */
#ifdef CONFIG_SPL_OS_BOOT
#define CONFIG_CMD_SPL_NAND_OFS		0x00100000 /* os parameters */
#define CONFIG_SYS_NAND_SPL_KERNEL_OFFS	0x00300000 /* kernel offset */
#define CONFIG_CMD_SPL_WRITE_SIZE	CONFIG_SYS_NAND_BLOCK_SIZE
#endif
T
Tom Rini 已提交
410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428
#define NANDARGS \
	"mtdids=" MTDIDS_DEFAULT "\0" \
	"mtdparts=" MTDPARTS_DEFAULT "\0" \
	"nandargs=setenv bootargs console=${console} " \
		"${optargs} " \
		"root=${nandroot} " \
		"rootfstype=${nandrootfstype}\0" \
	"nandroot=ubi0:rootfs rw ubi.mtd=NAND.file-system,4096\0" \
	"nandrootfstype=ubifs rootwait=1\0" \
	"nandboot=echo Booting from nand ...; " \
		"run nandargs; " \
		"nand read ${fdtaddr} NAND.u-boot-spl-os; " \
		"nand read ${loadaddr} NAND.kernel; " \
		"bootz ${loadaddr} - ${fdtaddr}\0"
#define NANDBOOT			"run nandboot; "
#else /* !CONFIG_NAND */
#define NANDARGS
#define NANDBOOT
#endif /* CONFIG_NAND */
429

L
Lokesh Vutla 已提交
430
#endif	/* __CONFIG_AM43XX_EVM_H */