xref: /OK3568_Linux_fs/u-boot/include/configs/dragonboard410c.h (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun /*
2*4882a593Smuzhiyun  * Board configuration file for Dragonboard 410C
3*4882a593Smuzhiyun  *
4*4882a593Smuzhiyun  * (C) Copyright 2015 Mateusz Kulikowski <mateusz.kulikowski@gmail.com>
5*4882a593Smuzhiyun  *
6*4882a593Smuzhiyun  * SPDX-License-Identifier:	GPL-2.0+
7*4882a593Smuzhiyun  */
8*4882a593Smuzhiyun 
9*4882a593Smuzhiyun #ifndef __CONFIGS_DRAGONBOARD410C_H
10*4882a593Smuzhiyun #define __CONFIGS_DRAGONBOARD410C_H
11*4882a593Smuzhiyun 
12*4882a593Smuzhiyun #include <linux/sizes.h>
13*4882a593Smuzhiyun #include <asm/arch/sysmap-apq8016.h>
14*4882a593Smuzhiyun 
15*4882a593Smuzhiyun #define CONFIG_MISC_INIT_R /* To stop autoboot */
16*4882a593Smuzhiyun 
17*4882a593Smuzhiyun /* Physical Memory Map */
18*4882a593Smuzhiyun #define CONFIG_NR_DRAM_BANKS		1
19*4882a593Smuzhiyun #define PHYS_SDRAM_1			0x80000000
20*4882a593Smuzhiyun /* 1008 MB (the last ~30Mb are secured for TrustZone by ATF*/
21*4882a593Smuzhiyun #define PHYS_SDRAM_1_SIZE		0x3da00000
22*4882a593Smuzhiyun #define CONFIG_SYS_SDRAM_BASE		PHYS_SDRAM_1
23*4882a593Smuzhiyun #define CONFIG_SYS_TEXT_BASE		0x80080000
24*4882a593Smuzhiyun #define CONFIG_SYS_INIT_SP_ADDR		(CONFIG_SYS_SDRAM_BASE + 0x7fff0)
25*4882a593Smuzhiyun #define CONFIG_SYS_LOAD_ADDR		(CONFIG_SYS_SDRAM_BASE + 0x80000)
26*4882a593Smuzhiyun #define CONFIG_SYS_BOOTM_LEN		0x1000000 /* 16MB max kernel size */
27*4882a593Smuzhiyun 
28*4882a593Smuzhiyun /* UART */
29*4882a593Smuzhiyun 
30*4882a593Smuzhiyun /* Generic Timer Definitions */
31*4882a593Smuzhiyun #define COUNTER_FREQUENCY		19000000
32*4882a593Smuzhiyun 
33*4882a593Smuzhiyun #define CONFIG_SYS_LDSCRIPT "board/qualcomm/dragonboard410c/u-boot.lds"
34*4882a593Smuzhiyun 
35*4882a593Smuzhiyun /* Fixup - in init code we switch from device to host mode,
36*4882a593Smuzhiyun  * it has to be done after each HCD reset */
37*4882a593Smuzhiyun #define CONFIG_EHCI_HCD_INIT_AFTER_RESET
38*4882a593Smuzhiyun 
39*4882a593Smuzhiyun /* Support all possible USB ethernet dongles */
40*4882a593Smuzhiyun 
41*4882a593Smuzhiyun /* Extra Commands */
42*4882a593Smuzhiyun /* Enable that for switching of boot partitions */
43*4882a593Smuzhiyun /* Disabled by default as some sub-commands can brick eMMC */
44*4882a593Smuzhiyun /*#define CONFIG_SUPPORT_EMMC_BOOT */
45*4882a593Smuzhiyun 
46*4882a593Smuzhiyun /* Partition table support */
47*4882a593Smuzhiyun #define HAVE_BLOCK_DEVICE /* Needed for partition commands */
48*4882a593Smuzhiyun 
49*4882a593Smuzhiyun #include <config_distro_defaults.h>
50*4882a593Smuzhiyun 
51*4882a593Smuzhiyun /* BOOTP options */
52*4882a593Smuzhiyun #define CONFIG_BOOTP_BOOTFILESIZE
53*4882a593Smuzhiyun 
54*4882a593Smuzhiyun #define BOOT_TARGET_DEVICES(func) \
55*4882a593Smuzhiyun 	func(USB, usb, 0) \
56*4882a593Smuzhiyun 	func(MMC, mmc, 1) \
57*4882a593Smuzhiyun 	func(MMC, mmc, 0) \
58*4882a593Smuzhiyun 	func(DHCP, dhcp, na)
59*4882a593Smuzhiyun 
60*4882a593Smuzhiyun #include <config_distro_bootcmd.h>
61*4882a593Smuzhiyun 
62*4882a593Smuzhiyun /* Does what recovery does */
63*4882a593Smuzhiyun #define REFLASH(file, part) \
64*4882a593Smuzhiyun "part start mmc 0 "#part" start && "\
65*4882a593Smuzhiyun "part size mmc 0 "#part" size && "\
66*4882a593Smuzhiyun "tftp $loadaddr "#file" && " \
67*4882a593Smuzhiyun "mmc write $loadaddr $start $size && "
68*4882a593Smuzhiyun 
69*4882a593Smuzhiyun #define CONFIG_ENV_REFLASH \
70*4882a593Smuzhiyun "mmc dev 0 && "\
71*4882a593Smuzhiyun "usb start && "\
72*4882a593Smuzhiyun "dhcp && "\
73*4882a593Smuzhiyun "tftp $loadaddr dragonboard/rescue/gpt_both0.bin && "\
74*4882a593Smuzhiyun "mmc write $loadaddr 0 43 && " \
75*4882a593Smuzhiyun "mmc rescan && "\
76*4882a593Smuzhiyun REFLASH(dragonboard/rescue/NON-HLOS.bin, 1)\
77*4882a593Smuzhiyun REFLASH(dragonboard/rescue/sbl1.mbn, 2)\
78*4882a593Smuzhiyun REFLASH(dragonboard/rescue/rpm.mbn, 3)\
79*4882a593Smuzhiyun REFLASH(dragonboard/rescue/tz.mbn, 4)\
80*4882a593Smuzhiyun REFLASH(dragonboard/rescue/hyp.mbn, 5)\
81*4882a593Smuzhiyun REFLASH(dragonboard/rescue/sec.dat, 6)\
82*4882a593Smuzhiyun REFLASH(dragonboard/rescue/emmc_appsboot.mbn, 7)\
83*4882a593Smuzhiyun REFLASH(dragonboard/u-boot.img, 8)\
84*4882a593Smuzhiyun "usb stop &&"\
85*4882a593Smuzhiyun "echo Reflash completed"
86*4882a593Smuzhiyun 
87*4882a593Smuzhiyun /* Environment */
88*4882a593Smuzhiyun #define CONFIG_EXTRA_ENV_SETTINGS \
89*4882a593Smuzhiyun 	"reflash="CONFIG_ENV_REFLASH"\0"\
90*4882a593Smuzhiyun 	"loadaddr=0x81000000\0" \
91*4882a593Smuzhiyun 	"fdt_high=0xffffffffffffffff\0" \
92*4882a593Smuzhiyun 	"initrd_high=0xffffffffffffffff\0" \
93*4882a593Smuzhiyun 	"linux_image=Image\0" \
94*4882a593Smuzhiyun 	"kernel_addr_r=0x81000000\0"\
95*4882a593Smuzhiyun 	"fdtfile=apq8016-sbc.dtb\0" \
96*4882a593Smuzhiyun 	"fdt_addr_r=0x83000000\0"\
97*4882a593Smuzhiyun 	"ramdisk_addr_r=0x84000000\0"\
98*4882a593Smuzhiyun 	"scriptaddr=0x90000000\0"\
99*4882a593Smuzhiyun 	"pxefile_addr_r=0x90100000\0"\
100*4882a593Smuzhiyun 	BOOTENV
101*4882a593Smuzhiyun 
102*4882a593Smuzhiyun #define CONFIG_ENV_SIZE			0x2000
103*4882a593Smuzhiyun #define CONFIG_ENV_VARS_UBOOT_CONFIG
104*4882a593Smuzhiyun 
105*4882a593Smuzhiyun /* Size of malloc() pool */
106*4882a593Smuzhiyun #define CONFIG_SYS_MALLOC_LEN		(CONFIG_ENV_SIZE + SZ_8M)
107*4882a593Smuzhiyun 
108*4882a593Smuzhiyun /* Monitor Command Prompt */
109*4882a593Smuzhiyun #define CONFIG_SYS_CBSIZE		512	/* Console I/O Buffer Size */
110*4882a593Smuzhiyun #define CONFIG_SYS_MAXARGS		64	/* max command args */
111*4882a593Smuzhiyun 
112*4882a593Smuzhiyun #endif
113