Commit 17a30851ad9dec60a27481bd695e09d1f38fe685

Authored by Adrian Alonso
1 parent ffc7bc56e7

MLK-13130: configs: mx6qarm2: android lpddr2 pop support

Add Android support for mx6qarm2 lpddr2 pop target

Signed-off-by: Adrian Alonso <adrian.alonso@nxp.com>
(Cherry picked from commit 6356f2b420f3571493755f6b3a307a66a539b60c)

Showing 3 changed files with 94 additions and 1 deletions Inline Diff

configs/mx6qarm2android_pop_lpddr2_revb_defconfig
File was created 1 CONFIG_ARM=y
2 CONFIG_ARCH_MX6=y
3 CONFIG_TARGET_MX6QARM2=y
4 CONFIG_SYS_EXTRA_OPTIONS="IMX_CONFIG=board/freescale/mx6qarm2/mt128x64mx32.cfg,MX6Q,MX6DQ_POP_LPDDR2,DDR_MB=512,ANDROID_SUPPORT"
5 CONFIG_CMD_GPIO=y
6
include/configs/mx6qarm2.h
1 /* 1 /*
2 * Copyright (C) 2010-2016 Freescale Semiconductor, Inc. 2 * Copyright (C) 2010-2016 Freescale Semiconductor, Inc.
3 * 3 *
4 * Configuration settings for the Freescale i.MX6Q Armadillo2 board. 4 * Configuration settings for the Freescale i.MX6Q Armadillo2 board.
5 * 5 *
6 * SPDX-License-Identifier: GPL-2.0+ 6 * SPDX-License-Identifier: GPL-2.0+
7 */ 7 */
8 8
9 #ifndef __CONFIG_H 9 #ifndef __CONFIG_H
10 #define __CONFIG_H 10 #define __CONFIG_H
11 11
12 #include "mx6_common.h" 12 #include "mx6_common.h"
13 13
14 /* uncomment for PLUGIN mode support */ 14 /* uncomment for PLUGIN mode support */
15 /* #define CONFIG_USE_PLUGIN */ 15 /* #define CONFIG_USE_PLUGIN */
16 16
17 /* uncomment for SECURE mode support */ 17 /* uncomment for SECURE mode support */
18 /* #define CONFIG_SECURE_BOOT */ 18 /* #define CONFIG_SECURE_BOOT */
19 19
20 #ifdef CONFIG_SECURE_BOOT 20 #ifdef CONFIG_SECURE_BOOT
21 #ifndef CONFIG_CSF_SIZE 21 #ifndef CONFIG_CSF_SIZE
22 #define CONFIG_CSF_SIZE 0x4000 22 #define CONFIG_CSF_SIZE 0x4000
23 #endif 23 #endif
24 #endif 24 #endif
25 25
26 #define CONFIG_IMX_THERMAL 26 #define CONFIG_IMX_THERMAL
27 27
28 /* Size of malloc() pool */ 28 /* Size of malloc() pool */
29 #define CONFIG_SYS_MALLOC_LEN (CONFIG_ENV_SIZE + 2 * 1024 * 1024) 29 #define CONFIG_SYS_MALLOC_LEN (CONFIG_ENV_SIZE + 2 * 1024 * 1024)
30 30
31 #define CONFIG_BOARD_EARLY_INIT_F 31 #define CONFIG_BOARD_EARLY_INIT_F
32 #define CONFIG_BOARD_LATE_INIT 32 #define CONFIG_BOARD_LATE_INIT
33 33
34 #define CONFIG_MXC_UART 34 #define CONFIG_MXC_UART
35 #define CONFIG_MXC_UART_BASE UART4_BASE 35 #define CONFIG_MXC_UART_BASE UART4_BASE
36 36
37 /* MMC Configs */ 37 /* MMC Configs */
38 #define CONFIG_SYS_FSL_ESDHC_ADDR USDHC4_BASE_ADDR 38 #define CONFIG_SYS_FSL_ESDHC_ADDR USDHC4_BASE_ADDR
39 #define CONFIG_SYS_FSL_USDHC_NUM 2 39 #define CONFIG_SYS_FSL_USDHC_NUM 2
40 40
41 #define CONFIG_CMD_PING 41 #define CONFIG_CMD_PING
42 #define CONFIG_CMD_DHCP 42 #define CONFIG_CMD_DHCP
43 #define CONFIG_CMD_MII 43 #define CONFIG_CMD_MII
44 #define CONFIG_FEC_MXC 44 #define CONFIG_FEC_MXC
45 #define CONFIG_MII 45 #define CONFIG_MII
46 #define IMX_FEC_BASE ENET_BASE_ADDR 46 #define IMX_FEC_BASE ENET_BASE_ADDR
47 #define CONFIG_FEC_XCV_TYPE RGMII 47 #define CONFIG_FEC_XCV_TYPE RGMII
48 #define CONFIG_FEC_MXC_PHYADDR 0 48 #define CONFIG_FEC_MXC_PHYADDR 0
49 49
50 #if defined(CONFIG_MX6DQ_POP_LPDDR2) 50 #if defined(CONFIG_MX6DQ_POP_LPDDR2)
51 #define CONFIG_DEFAULT_FDT_FILE "imx6q-pop-arm2.dtb" 51 #define CONFIG_DEFAULT_FDT_FILE "imx6q-pop-arm2.dtb"
52 #else 52 #else
53 #define CONFIG_DEFAULT_FDT_FILE "imx6q-arm2.dtb" 53 #define CONFIG_DEFAULT_FDT_FILE "imx6q-arm2.dtb"
54 #endif 54 #endif
55 55
56 #define CONFIG_EXTRA_ENV_SETTINGS \ 56 #define CONFIG_EXTRA_ENV_SETTINGS \
57 "script=boot.scr\0" \ 57 "script=boot.scr\0" \
58 "image=zImage\0" \ 58 "image=zImage\0" \
59 "console=ttymxc3\0" \ 59 "console=ttymxc3\0" \
60 "fdt_file=" CONFIG_DEFAULT_FDT_FILE "\0" \ 60 "fdt_file=" CONFIG_DEFAULT_FDT_FILE "\0" \
61 "fdt_addr=0x18000000\0" \ 61 "fdt_addr=0x18000000\0" \
62 "fdt_high=0xffffffff\0" \ 62 "fdt_high=0xffffffff\0" \
63 "initrd_high=0xffffffff\0" \ 63 "initrd_high=0xffffffff\0" \
64 "boot_fdt=try\0" \ 64 "boot_fdt=try\0" \
65 "ip_dyn=yes\0" \ 65 "ip_dyn=yes\0" \
66 "mmcdev="__stringify(CONFIG_SYS_MMC_ENV_DEV)"\0" \ 66 "mmcdev="__stringify(CONFIG_SYS_MMC_ENV_DEV)"\0" \
67 "mmcpart=1\0" \ 67 "mmcpart=1\0" \
68 "mmcroot=" CONFIG_MMCROOT " rootwait rw\0" \ 68 "mmcroot=" CONFIG_MMCROOT " rootwait rw\0" \
69 "mmcautodetect=yes\0" \ 69 "mmcautodetect=yes\0" \
70 "mmcargs=setenv bootargs console=${console},${baudrate} " \ 70 "mmcargs=setenv bootargs console=${console},${baudrate} " \
71 "root=${mmcroot}\0" \ 71 "root=${mmcroot}\0" \
72 "loadbootscript=" \ 72 "loadbootscript=" \
73 "fatload mmc ${mmcdev}:${mmcpart} ${loadaddr} ${script};\0" \ 73 "fatload mmc ${mmcdev}:${mmcpart} ${loadaddr} ${script};\0" \
74 "bootscript=echo Running bootscript from mmc ...; " \ 74 "bootscript=echo Running bootscript from mmc ...; " \
75 "source\0" \ 75 "source\0" \
76 "loadimage=fatload mmc ${mmcdev}:${mmcpart} ${loadaddr} ${image}\0" \ 76 "loadimage=fatload mmc ${mmcdev}:${mmcpart} ${loadaddr} ${image}\0" \
77 "loadfdt=fatload mmc ${mmcdev}:${mmcpart} ${fdt_addr} ${fdt_file}\0" \ 77 "loadfdt=fatload mmc ${mmcdev}:${mmcpart} ${fdt_addr} ${fdt_file}\0" \
78 "mmcboot=echo Booting from mmc ...; " \ 78 "mmcboot=echo Booting from mmc ...; " \
79 "run mmcargs; " \ 79 "run mmcargs; " \
80 "if test ${boot_fdt} = yes || test ${boot_fdt} = try; then " \ 80 "if test ${boot_fdt} = yes || test ${boot_fdt} = try; then " \
81 "if run loadfdt; then " \ 81 "if run loadfdt; then " \
82 "bootz ${loadaddr} - ${fdt_addr}; " \ 82 "bootz ${loadaddr} - ${fdt_addr}; " \
83 "else " \ 83 "else " \
84 "if test ${boot_fdt} = try; then " \ 84 "if test ${boot_fdt} = try; then " \
85 "bootz; " \ 85 "bootz; " \
86 "else " \ 86 "else " \
87 "echo WARN: Cannot load the DT; " \ 87 "echo WARN: Cannot load the DT; " \
88 "fi; " \ 88 "fi; " \
89 "fi; " \ 89 "fi; " \
90 "else " \ 90 "else " \
91 "bootz; " \ 91 "bootz; " \
92 "fi;\0" \ 92 "fi;\0" \
93 "netargs=setenv bootargs console=${console},${baudrate} " \ 93 "netargs=setenv bootargs console=${console},${baudrate} " \
94 "root=/dev/nfs " \ 94 "root=/dev/nfs " \
95 "ip=dhcp nfsroot=${serverip}:${nfsroot},v3,tcp\0" \ 95 "ip=dhcp nfsroot=${serverip}:${nfsroot},v3,tcp\0" \
96 "netboot=echo Booting from net ...; " \ 96 "netboot=echo Booting from net ...; " \
97 "run netargs; " \ 97 "run netargs; " \
98 "if test ${ip_dyn} = yes; then " \ 98 "if test ${ip_dyn} = yes; then " \
99 "setenv get_cmd dhcp; " \ 99 "setenv get_cmd dhcp; " \
100 "else " \ 100 "else " \
101 "setenv get_cmd tftp; " \ 101 "setenv get_cmd tftp; " \
102 "fi; " \ 102 "fi; " \
103 "${get_cmd} ${image}; " \ 103 "${get_cmd} ${image}; " \
104 "if test ${boot_fdt} = yes || test ${boot_fdt} = try; then " \ 104 "if test ${boot_fdt} = yes || test ${boot_fdt} = try; then " \
105 "if ${get_cmd} ${fdt_addr} ${fdt_file}; then " \ 105 "if ${get_cmd} ${fdt_addr} ${fdt_file}; then " \
106 "bootz ${loadaddr} - ${fdt_addr}; " \ 106 "bootz ${loadaddr} - ${fdt_addr}; " \
107 "else " \ 107 "else " \
108 "if test ${boot_fdt} = try; then " \ 108 "if test ${boot_fdt} = try; then " \
109 "bootz; " \ 109 "bootz; " \
110 "else " \ 110 "else " \
111 "echo WARN: Cannot load the DT; " \ 111 "echo WARN: Cannot load the DT; " \
112 "fi; " \ 112 "fi; " \
113 "fi; " \ 113 "fi; " \
114 "else " \ 114 "else " \
115 "bootz; " \ 115 "bootz; " \
116 "fi;\0" 116 "fi;\0"
117 117
118 #define CONFIG_BOOTCOMMAND \ 118 #define CONFIG_BOOTCOMMAND \
119 "mmc dev ${mmcdev};" \ 119 "mmc dev ${mmcdev};" \
120 "mmc dev ${mmcdev}; if mmc rescan; then " \ 120 "mmc dev ${mmcdev}; if mmc rescan; then " \
121 "if run loadbootscript; then " \ 121 "if run loadbootscript; then " \
122 "run bootscript; " \ 122 "run bootscript; " \
123 "else " \ 123 "else " \
124 "if run loadimage; then " \ 124 "if run loadimage; then " \
125 "run mmcboot; " \ 125 "run mmcboot; " \
126 "else run netboot; " \ 126 "else run netboot; " \
127 "fi; " \ 127 "fi; " \
128 "fi; " \ 128 "fi; " \
129 "else run netboot; fi" 129 "else run netboot; fi"
130 130
131 #define CONFIG_ARP_TIMEOUT 200UL 131 #define CONFIG_ARP_TIMEOUT 200UL
132 132
133 /* Miscellaneous configurable options */ 133 /* Miscellaneous configurable options */
134 #define CONFIG_CMD_MEMTEST 134 #define CONFIG_CMD_MEMTEST
135 #define CONFIG_SYS_MEMTEST_START 0x10000000 135 #define CONFIG_SYS_MEMTEST_START 0x10000000
136 #define CONFIG_SYS_MEMTEST_END 0x10010000 136 #define CONFIG_SYS_MEMTEST_END 0x10010000
137 137
138 /* Physical Memory Map */ 138 /* Physical Memory Map */
139 #if defined(CONFIG_MX6DQ_POP_LPDDR2) 139 #if defined(CONFIG_MX6DQ_POP_LPDDR2)
140 #define CONFIG_NR_DRAM_BANKS 2 140 #define CONFIG_NR_DRAM_BANKS 2
141 #define PHYS_SDRAM_0 MMDC0_ARB_BASE_ADDR 141 #define PHYS_SDRAM_0 MMDC0_ARB_BASE_ADDR
142 #define PHYS_SDRAM_1 MMDC1_ARB_BASE_ADDR 142 #define PHYS_SDRAM_1 MMDC1_ARB_BASE_ADDR
143 #else 143 #else
144 #define CONFIG_NR_DRAM_BANKS 1 144 #define CONFIG_NR_DRAM_BANKS 1
145 #endif 145 #endif
146 #define PHYS_SDRAM MMDC0_ARB_BASE_ADDR 146 #define PHYS_SDRAM MMDC0_ARB_BASE_ADDR
147 147
148 #define CONFIG_SYS_SDRAM_BASE PHYS_SDRAM 148 #define CONFIG_SYS_SDRAM_BASE PHYS_SDRAM
149 #define CONFIG_SYS_INIT_RAM_ADDR IRAM_BASE_ADDR 149 #define CONFIG_SYS_INIT_RAM_ADDR IRAM_BASE_ADDR
150 #define CONFIG_SYS_INIT_RAM_SIZE IRAM_SIZE 150 #define CONFIG_SYS_INIT_RAM_SIZE IRAM_SIZE
151 151
152 #define CONFIG_SYS_INIT_SP_OFFSET \ 152 #define CONFIG_SYS_INIT_SP_OFFSET \
153 (CONFIG_SYS_INIT_RAM_SIZE - GENERATED_GBL_DATA_SIZE) 153 (CONFIG_SYS_INIT_RAM_SIZE - GENERATED_GBL_DATA_SIZE)
154 #define CONFIG_SYS_INIT_SP_ADDR \ 154 #define CONFIG_SYS_INIT_SP_ADDR \
155 (CONFIG_SYS_INIT_RAM_ADDR + CONFIG_SYS_INIT_SP_OFFSET) 155 (CONFIG_SYS_INIT_RAM_ADDR + CONFIG_SYS_INIT_SP_OFFSET)
156 156
157 /* Environment organization */ 157 /* Environment organization */
158 #define CONFIG_ENV_OFFSET (12 * 64 * 1024) 158 #define CONFIG_ENV_OFFSET (12 * 64 * 1024)
159 #define CONFIG_ENV_SIZE (8 * 1024) 159 #define CONFIG_ENV_SIZE (8 * 1024)
160 #define CONFIG_ENV_IS_IN_MMC 160 #define CONFIG_ENV_IS_IN_MMC
161 #define CONFIG_SYS_MMC_ENV_DEV 1 161 #define CONFIG_SYS_MMC_ENV_DEV 1
162 #define CONFIG_SYS_MMC_ENV_PART 0 /* user partition */ 162 #define CONFIG_SYS_MMC_ENV_PART 0 /* user partition */
163 #define CONFIG_MMCROOT "/dev/mmcblk3p2" /* SDHC4 */ 163 #define CONFIG_MMCROOT "/dev/mmcblk3p2" /* SDHC4 */
164 164
165 /* USB Configs */ 165 /* USB Configs */
166 #define CONFIG_CMD_USB 166 #define CONFIG_CMD_USB
167 #ifdef CONFIG_CMD_USB 167 #ifdef CONFIG_CMD_USB
168 #define CONFIG_USB_EHCI 168 #define CONFIG_USB_EHCI
169 #define CONFIG_USB_EHCI_MX6 169 #define CONFIG_USB_EHCI_MX6
170 #define CONFIG_USB_STORAGE 170 #define CONFIG_USB_STORAGE
171 #define CONFIG_EHCI_HCD_INIT_AFTER_RESET 171 #define CONFIG_EHCI_HCD_INIT_AFTER_RESET
172 #define CONFIG_USB_HOST_ETHER 172 #define CONFIG_USB_HOST_ETHER
173 #define CONFIG_USB_ETHER_ASIX 173 #define CONFIG_USB_ETHER_ASIX
174 #define CONFIG_MXC_USB_PORTSC (PORT_PTS_UTMI | PORT_PTS_PTW) 174 #define CONFIG_MXC_USB_PORTSC (PORT_PTS_UTMI | PORT_PTS_PTW)
175 #define CONFIG_MXC_USB_FLAGS 0 175 #define CONFIG_MXC_USB_FLAGS 0
176 #define CONFIG_USB_MAX_CONTROLLER_COUNT 1 176 #define CONFIG_USB_MAX_CONTROLLER_COUNT 1
177 #endif 177 #endif
178 178
179 #endif /* __CONFIG_H */ 179 #if defined(CONFIG_ANDROID_SUPPORT)
180 #include "mx6qarm2_android.h"
181 #endif
182
183 #endif /* __CONFIG_H */
180 184
include/configs/mx6qarm2_android.h
File was created 1 /*
2 * Copyright (C) 2013-2016 Freescale Semiconductor, Inc. All Rights Reserved.
3 *
4 * SPDX-License-Identifier: GPL-2.0+
5 */
6
7 #ifndef IMX6Q_ARM2_ANDROID_H
8 #define IMX6Q_ARM2_ANDROID_H
9
10 #define CONFIG_CI_UDC
11 #define CONFIG_USBD_HS
12 #define CONFIG_USB_GADGET_DUALSPEED
13
14 #define CONFIG_USB_GADGET
15 #define CONFIG_CMD_USB_MASS_STORAGE
16 #define CONFIG_USB_FUNCTION_MASS_STORAGE
17 #define CONFIG_USB_GADGET_DOWNLOAD
18 #define CONFIG_USB_GADGET_VBUS_DRAW 2
19
20 #define CONFIG_G_DNL_VENDOR_NUM 0x18d1
21 #define CONFIG_G_DNL_PRODUCT_NUM 0x0d02
22 #define CONFIG_G_DNL_MANUFACTURER "FSL"
23
24 #define CONFIG_USB_FUNCTION_FASTBOOT
25 #define CONFIG_CMD_FASTBOOT
26 #define CONFIG_CMD_READ
27 #define CONFIG_BCB_SUPPORT
28 #define CONFIG_ANDROID_BOOT_IMAGE
29 #define CONFIG_FASTBOOT_FLASH
30
31 /* For NAND we don't support lock/unlock */
32 #ifndef CONFIG_SYS_BOOT_NAND
33 #define CONFIG_FASTBOOT_LOCK
34 #endif
35
36 #define FSL_FASTBOOT_FB_DEV "mmc"
37 #define FSL_FASTBOOT_DATA_PART_NUM 4
38 #define FSL_FASTBOOT_FB_PART_NUM 11
39 #define FSL_FASTBOOT_PR_DATA_PART_NUM 12
40
41 #define CONFIG_FSL_CAAM_KB
42 #define CONFIG_CMD_FSL_CAAM_KB
43 #define CONFIG_SHA1
44 #define CONFIG_SHA256
45
46 #define CONFIG_FSL_FASTBOOT
47 #define CONFIG_ANDROID_RECOVERY
48
49 #if defined CONFIG_SYS_BOOT_NAND
50 #define CONFIG_FASTBOOT_STORAGE_NAND
51 #elif defined CONFIG_SYS_BOOT_SATA
52 #define CONFIG_FASTBOOT_STORAGE_SATA
53 #else
54 #define CONFIG_FASTBOOT_STORAGE_MMC
55 #endif
56
57 #define CONFIG_ANDROID_MAIN_MMC_BUS 2
58 #define CONFIG_ANDROID_BOOT_PARTITION_MMC 1
59 #define CONFIG_ANDROID_SYSTEM_PARTITION_MMC 5
60 #define CONFIG_ANDROID_RECOVERY_PARTITION_MMC 2
61 #define CONFIG_ANDROID_CACHE_PARTITION_MMC 6
62 #define CONFIG_ANDROID_DATA_PARTITION_MMC 4
63 #define CONFIG_ANDROID_MISC_PARTITION_MMC 8
64
65 #if defined(CONFIG_FASTBOOT_STORAGE_NAND)
66 #define ANDROID_FASTBOOT_NAND_PARTS "16m@64m(boot) 16m@80m(recovery) 810m@96m(android_root)ubifs"
67 #endif
68
69 #define CONFIG_CMD_BOOTA
70 #define CONFIG_SUPPORT_RAW_INITRD
71 #define CONFIG_SERIAL_TAG
72
73 #undef CONFIG_EXTRA_ENV_SETTINGS
74 #undef CONFIG_BOOTCOMMAND
75
76 #define CONFIG_EXTRA_ENV_SETTINGS \
77 "splashpos=m,m\0" \
78 "fdt_high=0xffffffff\0" \
79 "initrd_high=0xffffffff\0" \
80
81 #define CONFIG_FASTBOOT_BUF_ADDR CONFIG_SYS_LOAD_ADDR
82 #define CONFIG_FASTBOOT_BUF_SIZE 0x19000000
83
84 #endif /* IMX6Q_ARM2_ANDROID_H */
85