Commit 3939f3996dfcaefdf5d43f128bd2fb3849239d48
1 parent
185bdaaaf5
Exists in
8qm-imx_v2020.04_5.4.70_2.3.0
Add SMARC-iMX8QM U-Boot v2020.04_2.3.0_ga Support, Initial Release
Showing 32 changed files with 4806 additions and 3 deletions Side-by-side Diff
- arch/arm/dts/Makefile
- arch/arm/dts/fsl-imx8qm-device.dtsi
- arch/arm/dts/fsl-imx8qm-mek-auto.dts
- arch/arm/dts/fsl-smarcimx8qm-u-boot.dtsi
- arch/arm/dts/fsl-smarcimx8qm.dts
- arch/arm/mach-imx/imx8/Kconfig
- arch/arm/mach-imx/imx8/clock.c
- arch/arm/mach-imx/imx8/snvs_security_sc_conf_8qm_smarc.h
- arch/arm/mach-imx/imx8/snvs_security_sc_conf_board.h
- board/embedian/smarcimx8qm/Kconfig
- board/embedian/smarcimx8qm/MAINTAINERS
- board/embedian/smarcimx8qm/Makefile
- board/embedian/smarcimx8qm/README
- board/embedian/smarcimx8qm/imximage.cfg
- board/embedian/smarcimx8qm/smarcimx8qm.c
- board/embedian/smarcimx8qm/spl.c
- board/embedian/smarcimx8qm/uboot-container.cfg
- configs/smarcimx8qm_4g_ser0_defconfig
- configs/smarcimx8qm_4g_ser1_defconfig
- configs/smarcimx8qm_4g_ser2_defconfig
- configs/smarcimx8qm_4g_ser3_defconfig
- configs/smarcimx8qm_8g_ser0_defconfig
- configs/smarcimx8qm_8g_ser1_defconfig
- configs/smarcimx8qm_8g_ser2_defconfig
- configs/smarcimx8qm_8g_ser3_defconfig
- drivers/clk/imx/clk-imx8qm.c
- drivers/serial/Kconfig
- include/configs/smarcimx8qm.h
- include/configs/smarcimx8qm_android.h
- include/configs/smarcimx8qm_android_auto.h
- include/configs/smarcimx8qm_android_auto_xen.h
- include/configs/smarcimx8qm_trusty_xen.h
arch/arm/dts/Makefile
arch/arm/dts/fsl-imx8qm-device.dtsi
... | ... | @@ -583,6 +583,24 @@ |
583 | 583 | reg = <SC_R_SPI_1>; |
584 | 584 | #power-domain-cells = <0>; |
585 | 585 | power-domains = <&pd_dma>; |
586 | + #address-cells = <1>; | |
587 | + #size-cells = <0>; | |
588 | + | |
589 | + pd_dma0_chan2: PD_LPSPI1_RX { | |
590 | + reg = <SC_R_DMA_0_CH2>; | |
591 | + power-domains =<&pd_dma_lpspi1>; | |
592 | + #power-domain-cells = <0>; | |
593 | + #address-cells = <1>; | |
594 | + #size-cells = <0>; | |
595 | + | |
596 | + pd_dma0_chan3: PD_LPSPI1_TX { | |
597 | + reg = <SC_R_DMA_0_CH3>; | |
598 | + power-domains =<&pd_dma0_chan2>; | |
599 | + #power-domain-cells = <0>; | |
600 | + #address-cells = <1>; | |
601 | + #size-cells = <0>; | |
602 | + }; | |
603 | + }; | |
586 | 604 | }; |
587 | 605 | pd_dma_lpspi2: PD_DMA_SPI_2 { |
588 | 606 | reg = <SC_R_SPI_2>; |
... | ... | @@ -1584,6 +1602,22 @@ |
1584 | 1602 | status = "disabled"; |
1585 | 1603 | }; |
1586 | 1604 | |
1605 | + lpspi1: lpspi@5a100000 { | |
1606 | + compatible = "fsl,imx7ulp-spi"; | |
1607 | + reg = <0x0 0x5a100000 0x0 0x10000>; | |
1608 | + interrupts = <GIC_SPI 217 IRQ_TYPE_LEVEL_HIGH>; | |
1609 | + interrupt-parent = <&gic>; | |
1610 | + clocks = <&clk IMX8QM_SPI1_CLK>, | |
1611 | + <&clk IMX8QM_SPI1_IPG_CLK>; | |
1612 | + clock-names = "per", "ipg"; | |
1613 | + assigned-clocks = <&clk IMX8QM_SPI1_CLK>; | |
1614 | + assigned-clock-rates = <20000000>; | |
1615 | + power-domains = <&pd_dma0_chan3>; | |
1616 | + dma-names = "tx","rx"; | |
1617 | + dmas = <&edma0 3 0 0>, <&edma0 2 0 1>; | |
1618 | + status = "disabled"; | |
1619 | + }; | |
1620 | + | |
1587 | 1621 | lpspi3: lpspi@5a030000 { |
1588 | 1622 | compatible = "fsl,imx7ulp-spi"; |
1589 | 1623 | reg = <0x0 0x5a030000 0x0 0x10000>; |
1590 | 1624 | |
... | ... | @@ -1676,9 +1710,9 @@ |
1676 | 1710 | assigned-clocks = <&clk IMX8QM_UART4_CLK>; |
1677 | 1711 | assigned-clock-rates = <80000000>; |
1678 | 1712 | power-domains = <&pd_dma0_chan21>; |
1679 | - dma-names = "tx","rx"; | |
1713 | + /*dma-names = "tx","rx"; | |
1680 | 1714 | dmas = <&edma0 21 0 0>, |
1681 | - <&edma0 20 0 1>; | |
1715 | + <&edma0 20 0 1>;*/ | |
1682 | 1716 | status = "disabled"; |
1683 | 1717 | }; |
1684 | 1718 |
arch/arm/dts/fsl-imx8qm-mek-auto.dts
arch/arm/dts/fsl-smarcimx8qm-u-boot.dtsi
1 | +// SPDX-License-Identifier: GPL-2.0+ | |
2 | +/* | |
3 | + * Copyright 2018 NXP | |
4 | + * Copyright 2021 Embedian Inc. | |
5 | + */ | |
6 | + | |
7 | +/ { | |
8 | + | |
9 | + aliases { | |
10 | + usbhost1 = &usbh3; | |
11 | + usbgadget0 = &usbg1; | |
12 | + }; | |
13 | + | |
14 | + usbh3: usbh3 { | |
15 | + compatible = "Cadence,usb3-host"; | |
16 | + dr_mode = "host"; | |
17 | + cdns3,usb = <&usbotg3>; | |
18 | + status = "okay"; | |
19 | + }; | |
20 | + | |
21 | + usbg1: usbg1 { | |
22 | + compatible = "fsl,imx27-usb-gadget"; | |
23 | + dr_mode = "peripheral"; | |
24 | + chipidea,usb = <&usbotg1>; | |
25 | + status = "okay"; | |
26 | + u-boot,dm-spl; | |
27 | + }; | |
28 | +}; | |
29 | + | |
30 | +&{/imx8qm-pm} { | |
31 | + | |
32 | + u-boot,dm-spl; | |
33 | +}; | |
34 | + | |
35 | +&mu { | |
36 | + u-boot,dm-spl; | |
37 | +}; | |
38 | + | |
39 | +&clk { | |
40 | + u-boot,dm-spl; | |
41 | +}; | |
42 | + | |
43 | +&iomuxc { | |
44 | + u-boot,dm-spl; | |
45 | +}; | |
46 | + | |
47 | +&{/regulators} { | |
48 | + u-boot,dm-spl; | |
49 | +}; | |
50 | + | |
51 | +®_usdhc2_vmmc { | |
52 | + u-boot,dm-spl; | |
53 | +}; | |
54 | + | |
55 | +&{/mu@5d1c0000/iomuxc/smarcimx8qm} { | |
56 | + u-boot,dm-spl; | |
57 | +}; | |
58 | + | |
59 | +&pinctrl_usdhc2_gpio { | |
60 | + u-boot,dm-spl; | |
61 | +}; | |
62 | + | |
63 | +&pinctrl_usdhc2 { | |
64 | + u-boot,dm-spl; | |
65 | +}; | |
66 | + | |
67 | +&pinctrl_lpuart0 { | |
68 | + u-boot,dm-spl; | |
69 | +}; | |
70 | + | |
71 | +&pinctrl_lpuart1 { | |
72 | + u-boot,dm-spl; | |
73 | +}; | |
74 | + | |
75 | +&pinctrl_lpuart3 { | |
76 | + u-boot,dm-spl; | |
77 | +}; | |
78 | + | |
79 | +&pinctrl_lpuart4 { | |
80 | + u-boot,dm-spl; | |
81 | +}; | |
82 | + | |
83 | +&pinctrl_usdhc1 { | |
84 | + u-boot,dm-spl; | |
85 | +}; | |
86 | + | |
87 | +&pinctrl_flexspi0 { | |
88 | + u-boot,dm-spl; | |
89 | +}; | |
90 | + | |
91 | +&pd_lsio { | |
92 | + u-boot,dm-spl; | |
93 | +}; | |
94 | + | |
95 | +&pd_lsio_gpio0 { | |
96 | + u-boot,dm-spl; | |
97 | +}; | |
98 | + | |
99 | +&pd_lsio_gpio1 { | |
100 | + u-boot,dm-spl; | |
101 | +}; | |
102 | + | |
103 | +&pd_lsio_gpio2 { | |
104 | + u-boot,dm-spl; | |
105 | +}; | |
106 | + | |
107 | +&pd_lsio_gpio3 { | |
108 | + u-boot,dm-spl; | |
109 | +}; | |
110 | + | |
111 | +&pd_lsio_gpio4 { | |
112 | + u-boot,dm-spl; | |
113 | +}; | |
114 | + | |
115 | +&pd_lsio_gpio5 { | |
116 | + u-boot,dm-spl; | |
117 | +}; | |
118 | + | |
119 | +&pd_lsio_gpio6 { | |
120 | + u-boot,dm-spl; | |
121 | +}; | |
122 | + | |
123 | +&pd_lsio_gpio7 { | |
124 | + u-boot,dm-spl; | |
125 | +}; | |
126 | + | |
127 | +&pd_lsio_flexspi0 { | |
128 | + u-boot,dm-spl; | |
129 | +}; | |
130 | + | |
131 | +&pd_conn { | |
132 | + u-boot,dm-spl; | |
133 | +}; | |
134 | + | |
135 | +&pd_conn_sdch0 { | |
136 | + u-boot,dm-spl; | |
137 | +}; | |
138 | + | |
139 | +&pd_conn_sdch1 { | |
140 | + u-boot,dm-spl; | |
141 | +}; | |
142 | + | |
143 | +&pd_conn_sdch2 { | |
144 | + u-boot,dm-spl; | |
145 | +}; | |
146 | + | |
147 | +&pd_dma { | |
148 | + u-boot,dm-spl; | |
149 | +}; | |
150 | + | |
151 | +&pd_dma_lpuart0 { | |
152 | + u-boot,dm-spl; | |
153 | +}; | |
154 | + | |
155 | +&pd_dma_lpuart1 { | |
156 | + u-boot,dm-spl; | |
157 | +}; | |
158 | + | |
159 | +&pd_dma_lpuart3 { | |
160 | + u-boot,dm-spl; | |
161 | +}; | |
162 | + | |
163 | +&pd_dma_lpuart4 { | |
164 | + u-boot,dm-spl; | |
165 | +}; | |
166 | + | |
167 | +&pd_conn_usbotg0 { | |
168 | + u-boot,dm-spl; | |
169 | +}; | |
170 | + | |
171 | +&pd_conn_usbotg0_phy { | |
172 | + u-boot,dm-spl; | |
173 | +}; | |
174 | + | |
175 | +&pd_conn_usb2 { | |
176 | + u-boot,dm-spl; | |
177 | +}; | |
178 | + | |
179 | +&pd_conn_usb2_phy { | |
180 | + u-boot,dm-spl; | |
181 | +}; | |
182 | + | |
183 | +&gpio0 { | |
184 | + u-boot,dm-spl; | |
185 | +}; | |
186 | + | |
187 | +&gpio1 { | |
188 | + u-boot,dm-spl; | |
189 | +}; | |
190 | + | |
191 | +&gpio2 { | |
192 | + u-boot,dm-spl; | |
193 | +}; | |
194 | + | |
195 | +&gpio3 { | |
196 | + u-boot,dm-spl; | |
197 | +}; | |
198 | + | |
199 | +&gpio4 { | |
200 | + u-boot,dm-spl; | |
201 | +}; | |
202 | + | |
203 | +&gpio5 { | |
204 | + u-boot,dm-spl; | |
205 | +}; | |
206 | + | |
207 | +&gpio6 { | |
208 | + u-boot,dm-spl; | |
209 | +}; | |
210 | + | |
211 | +&gpio7 { | |
212 | + u-boot,dm-spl; | |
213 | +}; | |
214 | + | |
215 | +&lpuart0 { | |
216 | + u-boot,dm-spl; | |
217 | +}; | |
218 | + | |
219 | +&lpuart1 { | |
220 | + u-boot,dm-spl; | |
221 | +}; | |
222 | + | |
223 | +&lpuart3 { | |
224 | + u-boot,dm-spl; | |
225 | +}; | |
226 | + | |
227 | +&lpuart4 { | |
228 | + u-boot,dm-spl; | |
229 | +}; | |
230 | + | |
231 | +&usbmisc1 { | |
232 | + u-boot,dm-spl; | |
233 | +}; | |
234 | + | |
235 | +&usbphy1 { | |
236 | + u-boot,dm-spl; | |
237 | +}; | |
238 | + | |
239 | +&usbotg1 { | |
240 | + u-boot,dm-spl; | |
241 | +}; | |
242 | + | |
243 | +&usbotg3 { | |
244 | + phys = <&usbphynop1>; | |
245 | + u-boot,dm-spl; | |
246 | +}; | |
247 | + | |
248 | +&usbphynop1 { | |
249 | + compatible = "cdns,usb3-phy"; | |
250 | + reg = <0x0 0x5B160000 0x0 0x40000>; | |
251 | + #phy-cells = <0>; | |
252 | + u-boot,dm-spl; | |
253 | +}; | |
254 | + | |
255 | +&usdhc1 { | |
256 | + u-boot,dm-spl; | |
257 | + mmc-hs400-1_8v; | |
258 | +}; | |
259 | + | |
260 | +&usdhc2 { | |
261 | + u-boot,dm-spl; | |
262 | + sd-uhs-sdr104; | |
263 | + sd-uhs-ddr50; | |
264 | +}; | |
265 | + | |
266 | +&flexspi0 { | |
267 | + u-boot,dm-spl; | |
268 | +}; | |
269 | + | |
270 | +&wu { | |
271 | + u-boot,dm-spl; | |
272 | +}; |
arch/arm/dts/fsl-smarcimx8qm.dts
1 | +// SPDX-License-Identifier: GPL-2.0+ | |
2 | +/* | |
3 | + * Copyright 2021 Embedian, Inc. | |
4 | + */ | |
5 | + | |
6 | +/dts-v1/; | |
7 | + | |
8 | +#include "fsl-imx8qm.dtsi" | |
9 | + | |
10 | +/ { | |
11 | + model = "Embedian SMARC-iMX8QM CPU Module"; | |
12 | + compatible = "embedian,smarc-imx8qm", "fsl,imx8qm"; | |
13 | + | |
14 | + /* SER0 */ | |
15 | + /*chosen { | |
16 | + stdout-path = &lpuart0; | |
17 | + };*/ | |
18 | + /* SER1 */ | |
19 | + /*chosen { | |
20 | + stdout-path = &lpuart3; | |
21 | + };*/ | |
22 | + /* SER2 */ | |
23 | + /*chosen { | |
24 | + stdout-path = &lpuart1; | |
25 | + };*/ | |
26 | + /* SER3 */ | |
27 | + chosen { | |
28 | + stdout-path = &lpuart4; | |
29 | + }; | |
30 | + | |
31 | + aliases { | |
32 | + ethernet1 = &fec2; /* Let eth1addr mac address pass from U-Boot EEPROM */ | |
33 | + }; | |
34 | + | |
35 | + regulators { | |
36 | + compatible = "simple-bus"; | |
37 | + #address-cells = <1>; | |
38 | + #size-cells = <0>; | |
39 | + | |
40 | + reg_usb_otg1_vbus: regulator@0 { | |
41 | + compatible = "regulator-fixed"; | |
42 | + reg = <0>; | |
43 | + regulator-name = "usb_otg1_vbus"; | |
44 | + regulator-min-microvolt = <5000000>; | |
45 | + regulator-max-microvolt = <5000000>; | |
46 | + gpio = <&gpio4 3 GPIO_ACTIVE_HIGH>; | |
47 | + enable-active-high; | |
48 | + }; | |
49 | + | |
50 | + reg_usdhc2_vmmc: usdhc2_vmmc { | |
51 | + compatible = "regulator-fixed"; | |
52 | + regulator-name = "sw-3p3-sd1"; | |
53 | + regulator-min-microvolt = <3300000>; | |
54 | + regulator-max-microvolt = <3300000>; | |
55 | + gpio = <&gpio4 7 GPIO_ACTIVE_HIGH>; | |
56 | + off-on-delay-us = <4800>; | |
57 | + enable-active-high; | |
58 | + }; | |
59 | + }; | |
60 | +}; | |
61 | + | |
62 | +&iomuxc { | |
63 | + pinctrl-names = "default"; | |
64 | + pinctrl-0 = <&pinctrl_pcieb>, <&pinctrl_hdmisel>, <&pinctrl_lvds0_gpio>, <&pinctrl_lvds1_gpio>, <&pinctrl_edp0_gpio>, <&pinctrl_edp1_gpio>, <&pinctrl_hog>; | |
65 | + | |
66 | + smarcimx8qm { | |
67 | + pinctrl_hog: hoggrp { | |
68 | + fsl,pins = < | |
69 | + SC_P_MIPI_CSI0_GPIO0_01_LSIO_GPIO1_IO28 0x06000040 /* GPIO0 */ | |
70 | + SC_P_MIPI_CSI1_GPIO0_01_LSIO_GPIO1_IO31 0x06000040 /* GPIO1 */ | |
71 | + SC_P_MIPI_CSI0_GPIO0_00_LSIO_GPIO1_IO27 0x06000040 /* GPIO2 */ | |
72 | + SC_P_MIPI_CSI1_GPIO0_00_LSIO_GPIO1_IO30 0x06000040 /* GPIO3 */ | |
73 | + SC_P_GPT0_CLK_LSIO_GPIO0_IO14 0x06000040 /* GPIO4 */ | |
74 | + SC_P_GPT0_COMPARE_LSIO_GPIO0_IO16 0x06000040 /* GPIO5 */ | |
75 | + SC_P_GPT0_CAPTURE_LSIO_GPIO0_IO15 0x06000040 /* GPIO6 */ | |
76 | + SC_P_GPT1_COMPARE_LSIO_GPIO0_IO19 0x06000040 /* GPIO7 */ | |
77 | + SC_P_GPT1_CAPTURE_LSIO_GPIO0_IO18 0x06000040 /* GPIO8 */ | |
78 | + SC_P_GPT1_CLK_LSIO_GPIO0_IO17 0x06000040 /* GPIO9 */ | |
79 | + SC_P_FLEXCAN2_TX_LSIO_GPIO4_IO02 0x06000040 /* GPIO10 */ | |
80 | + SC_P_FLEXCAN2_RX_LSIO_GPIO4_IO01 0x06000040 /* GPIO11 */ | |
81 | + SC_P_SCU_GPIO0_03_LSIO_GPIO0_IO31 0x06000020 /* LID# */ | |
82 | + SC_P_SCU_GPIO0_04_LSIO_GPIO1_IO00 0x06000020 /* SLEEP */ | |
83 | + SC_P_SCU_GPIO0_05_LSIO_GPIO1_IO01 0x06000020 /* CHARGING */ | |
84 | + SC_P_SCU_GPIO0_06_LSIO_GPIO1_IO02 0x06000020 /* CHARGER_PRSNT# */ | |
85 | + SC_P_SCU_GPIO0_07_LSIO_GPIO1_IO03 0x06000020 /* BATLOW# */ | |
86 | + SC_P_SCU_GPIO0_02_LSIO_GPIO0_IO30 0x06000020 /* CARRIER_STBY# */ | |
87 | + SC_P_SPDIF0_TX_LSIO_GPIO2_IO15 0x06000020 /* WDT_TIME_OUT# */ | |
88 | + >; | |
89 | + }; | |
90 | + | |
91 | + pinctrl_hdmisel: hdmiselgrp { | |
92 | + fsl,pins = < | |
93 | + SC_P_SIM0_GPIO0_00_LSIO_GPIO0_IO05 0x06000020 | |
94 | + >; | |
95 | + }; | |
96 | + | |
97 | + pinctrl_lvds0_gpio: lvds0gpiogrp { | |
98 | + fsl,pins = < | |
99 | + SC_P_LVDS0_GPIO01_LSIO_GPIO1_IO05 0x06000020 /* LCD0_VDD_EN */ | |
100 | + >; | |
101 | + }; | |
102 | + | |
103 | + pinctrl_lvds1_gpio: lvds1gpiogrp { | |
104 | + fsl,pins = < | |
105 | + SC_P_LVDS1_GPIO01_LSIO_GPIO1_IO11 0x06000020 /* LCD1_VDD_EN */ | |
106 | + >; | |
107 | + }; | |
108 | + | |
109 | + pinctrl_backlight: backlightgrp { | |
110 | + fsl,pins = < | |
111 | + SC_P_LVDS0_I2C0_SCL_LSIO_GPIO1_IO06 0x06000020 /* LCD0_BKLT_EN */ | |
112 | + SC_P_LVDS0_I2C0_SDA_LSIO_GPIO1_IO07 0x06000020 /* LCD1_BKLT_EN */ | |
113 | + >; | |
114 | + }; | |
115 | + | |
116 | + pinctrl_pwm_lvds0: pwmlvds0grp { | |
117 | + fsl,pins = < | |
118 | + SC_P_LVDS0_GPIO00_LVDS0_PWM0_OUT 0x00000020 | |
119 | + >; | |
120 | + }; | |
121 | + | |
122 | + pinctrl_edp0_gpio: edp0gpiogrp { | |
123 | + fsl,pins = < | |
124 | + SC_P_MIPI_DSI1_GPIO0_00_LSIO_GPIO1_IO22 0x06000020 /* eDP0_EN */ | |
125 | + SC_P_MIPI_DSI1_GPIO0_01_LSIO_GPIO1_IO23 0x06000040 /* eDP0_IRQ */ | |
126 | + >; | |
127 | + }; | |
128 | + | |
129 | + pinctrl_edp1_gpio: edp1gpiogrp { | |
130 | + fsl,pins = < | |
131 | + SC_P_MIPI_DSI0_GPIO0_00_LSIO_GPIO1_IO18 0x06000020 /* eDP1_EN */ | |
132 | + SC_P_MIPI_DSI0_GPIO0_01_LSIO_GPIO1_IO19 0x06000040 /* eDP1_IRQ */ | |
133 | + >; | |
134 | + }; | |
135 | + | |
136 | + pinctrl_fec1: fec1grp { | |
137 | + fsl,pins = < | |
138 | + SC_P_COMP_CTL_GPIO_1V8_3V3_ENET_ENETB_PAD 0x000014a0 | |
139 | + SC_P_ENET0_MDC_CONN_ENET0_MDC 0x06000020 | |
140 | + SC_P_ENET0_MDIO_CONN_ENET0_MDIO 0x06000020 | |
141 | + SC_P_ENET0_RGMII_TX_CTL_CONN_ENET0_RGMII_TX_CTL 0x00000061 | |
142 | + SC_P_ENET0_RGMII_TXC_CONN_ENET0_RGMII_TXC 0x00000061 | |
143 | + SC_P_ENET0_RGMII_TXD0_CONN_ENET0_RGMII_TXD0 0x00000061 | |
144 | + SC_P_ENET0_RGMII_TXD1_CONN_ENET0_RGMII_TXD1 0x00000061 | |
145 | + SC_P_ENET0_RGMII_TXD2_CONN_ENET0_RGMII_TXD2 0x00000061 | |
146 | + SC_P_ENET0_RGMII_TXD3_CONN_ENET0_RGMII_TXD3 0x00000061 | |
147 | + SC_P_ENET0_RGMII_RXC_CONN_ENET0_RGMII_RXC 0x00000061 | |
148 | + SC_P_ENET0_RGMII_RX_CTL_CONN_ENET0_RGMII_RX_CTL 0x00000061 | |
149 | + SC_P_ENET0_RGMII_RXD0_CONN_ENET0_RGMII_RXD0 0x00000061 | |
150 | + SC_P_ENET0_RGMII_RXD1_CONN_ENET0_RGMII_RXD1 0x00000061 | |
151 | + SC_P_ENET0_RGMII_RXD2_CONN_ENET0_RGMII_RXD2 0x00000061 | |
152 | + SC_P_ENET0_RGMII_RXD3_CONN_ENET0_RGMII_RXD3 0x00000061 | |
153 | + /* ETH IRQ */ | |
154 | + SC_P_QSPI1A_DATA0_LSIO_GPIO4_IO26 0x06000021 | |
155 | + >; | |
156 | + }; | |
157 | + | |
158 | + pinctrl_fec2: fec2grp { | |
159 | + fsl,pins = < | |
160 | + SC_P_COMP_CTL_GPIO_1V8_3V3_ENET_ENETA_PAD 0x000014a0 | |
161 | + SC_P_ENET1_RGMII_TX_CTL_CONN_ENET1_RGMII_TX_CTL 0x00000060 | |
162 | + SC_P_ENET1_RGMII_TXC_CONN_ENET1_RGMII_TXC 0x00000060 | |
163 | + SC_P_ENET1_RGMII_TXD0_CONN_ENET1_RGMII_TXD0 0x00000060 | |
164 | + SC_P_ENET1_RGMII_TXD1_CONN_ENET1_RGMII_TXD1 0x00000060 | |
165 | + SC_P_ENET1_RGMII_TXD2_CONN_ENET1_RGMII_TXD2 0x00000060 | |
166 | + SC_P_ENET1_RGMII_TXD3_CONN_ENET1_RGMII_TXD3 0x00000060 | |
167 | + SC_P_ENET1_RGMII_RXC_CONN_ENET1_RGMII_RXC 0x00000060 | |
168 | + SC_P_ENET1_RGMII_RX_CTL_CONN_ENET1_RGMII_RX_CTL 0x00000060 | |
169 | + SC_P_ENET1_RGMII_RXD0_CONN_ENET1_RGMII_RXD0 0x00000060 | |
170 | + SC_P_ENET1_RGMII_RXD1_CONN_ENET1_RGMII_RXD1 0x00000060 | |
171 | + SC_P_ENET1_RGMII_RXD2_CONN_ENET1_RGMII_RXD2 0x00000060 | |
172 | + SC_P_ENET1_RGMII_RXD3_CONN_ENET1_RGMII_RXD3 0x00000060 | |
173 | + /* ETH IRQ */ | |
174 | + SC_P_QSPI1A_DATA0_LSIO_GPIO4_IO26 0x06000021 | |
175 | + >; | |
176 | + }; | |
177 | + | |
178 | + pinctrl_flexspi0: flexspi0grp { | |
179 | + fsl,pins = < | |
180 | + SC_P_QSPI0A_DATA0_LSIO_QSPI0A_DATA0 0x06000021 | |
181 | + SC_P_QSPI0A_DATA1_LSIO_QSPI0A_DATA1 0x06000021 | |
182 | + SC_P_QSPI0A_DATA2_LSIO_QSPI0A_DATA2 0x06000021 | |
183 | + SC_P_QSPI0A_DATA3_LSIO_QSPI0A_DATA3 0x06000021 | |
184 | + SC_P_QSPI0A_DQS_LSIO_QSPI0A_DQS 0x06000021 | |
185 | + SC_P_QSPI0A_SS0_B_LSIO_QSPI0A_SS0_B 0x06000021 | |
186 | + SC_P_QSPI0A_SCLK_LSIO_QSPI0A_SCLK 0x06000021 | |
187 | + >; | |
188 | + }; | |
189 | + | |
190 | + /* SER0 */ | |
191 | + pinctrl_lpuart0: lpuart0grp { | |
192 | + fsl,pins = < | |
193 | + SC_P_UART0_RX_DMA_UART0_RX 0x06000020 | |
194 | + SC_P_UART0_TX_DMA_UART0_TX 0x06000020 | |
195 | + >; | |
196 | + }; | |
197 | + | |
198 | + /* SER1 */ | |
199 | + pinctrl_lpuart3: lpuart3grp { | |
200 | + fsl,pins = < | |
201 | + SC_P_M41_GPIO0_00_DMA_UART3_RX 0x06000020 | |
202 | + SC_P_M41_GPIO0_01_DMA_UART3_TX 0x06000020 | |
203 | + >; | |
204 | + }; | |
205 | + | |
206 | + /* SER2 */ | |
207 | + pinctrl_lpuart1: lpuart1grp { | |
208 | + fsl,pins = < | |
209 | + SC_P_UART1_RX_DMA_UART1_RX 0x06000020 | |
210 | + SC_P_UART1_TX_DMA_UART1_TX 0x06000020 | |
211 | + >; | |
212 | + }; | |
213 | + | |
214 | + /* SER3 */ | |
215 | + pinctrl_lpuart4: lpuart4grp { | |
216 | + fsl,pins = < | |
217 | + SC_P_M40_GPIO0_00_DMA_UART4_RX 0x06000020 | |
218 | + SC_P_M40_GPIO0_01_DMA_UART4_TX 0x06000020 | |
219 | + >; | |
220 | + }; | |
221 | + | |
222 | + /* SPI1 */ | |
223 | + pinctrl_lpspi1: lpspi1grp { | |
224 | + fsl,pins = < | |
225 | + SC_P_ADC_IN3_DMA_SPI1_SCK 0x0600004c | |
226 | + SC_P_ADC_IN4_DMA_SPI1_SDO 0x0600004c | |
227 | + SC_P_ADC_IN5_DMA_SPI1_SDI 0x0600004c | |
228 | + >; | |
229 | + }; | |
230 | + | |
231 | + pinctrl_lpspi1_cs: lpspi1csgrp { | |
232 | + fsl,pins = < | |
233 | + SC_P_ADC_IN6_LSIO_GPIO3_IO24 0x00000021 | |
234 | + SC_P_ADC_IN7_LSIO_GPIO3_IO25 0x00000021 | |
235 | + >; | |
236 | + }; | |
237 | + | |
238 | + /* SPI3 */ | |
239 | + pinctrl_lpspi3: lpspi3grp { | |
240 | + fsl,pins = < | |
241 | + SC_P_SPI3_SCK_DMA_SPI3_SCK 0x0600004c | |
242 | + SC_P_SPI3_SDO_DMA_SPI3_SDO 0x0600004c | |
243 | + SC_P_SPI3_SDI_DMA_SPI3_SDI 0x0600004c | |
244 | + >; | |
245 | + }; | |
246 | + | |
247 | + pinctrl_lpspi3_cs: lpspi3csgrp { | |
248 | + fsl,pins = < | |
249 | + SC_P_SPI3_CS0_LSIO_GPIO2_IO20 0x00000021 | |
250 | + SC_P_SPI3_CS1_LSIO_GPIO2_IO21 0x00000021 | |
251 | + >; | |
252 | + }; | |
253 | + | |
254 | + pinctrl_i2c0: lpi2c0grp { | |
255 | + fsl,pins = < | |
256 | + SC_P_HDMI_TX0_TS_SCL_DMA_I2C0_SCL 0xc600004c | |
257 | + SC_P_HDMI_TX0_TS_SDA_DMA_I2C0_SDA 0xc600004c | |
258 | + >; | |
259 | + }; | |
260 | + | |
261 | + pinctrl_mipi0_lpi2c0: mipi0_lpi2c0grp { | |
262 | + fsl,pins = < | |
263 | + SC_P_MIPI_DSI0_I2C0_SCL_MIPI_DSI0_I2C0_SCL 0xc6000020 | |
264 | + SC_P_MIPI_DSI0_I2C0_SDA_MIPI_DSI0_I2C0_SDA 0xc6000020 | |
265 | + >; | |
266 | + }; | |
267 | + | |
268 | + /* I2C_PM */ | |
269 | + pinctrl_i2c1: lpi2c1grp { | |
270 | + fsl,pins = < | |
271 | + SC_P_USB_HSIC0_STROBE_DMA_I2C1_SCL 0xc600004c | |
272 | + SC_P_USB_HSIC0_DATA_DMA_I2C1_SDA 0xc600004c | |
273 | + >; | |
274 | + }; | |
275 | + | |
276 | + /* I2C_CAM0 */ | |
277 | + pinctrl_i2c_mipi_csi0: i2c_mipi_csi0 { | |
278 | + fsl,pins = < | |
279 | + SC_P_MIPI_CSI0_I2C0_SCL_MIPI_CSI0_I2C0_SCL 0xc600004c | |
280 | + SC_P_MIPI_CSI0_I2C0_SDA_MIPI_CSI0_I2C0_SDA 0xc600004c | |
281 | + >; | |
282 | + }; | |
283 | + | |
284 | + /* I2C_CAM1 */ | |
285 | + pinctrl_i2c_mipi_csi1: i2c_mipi_csi1 { | |
286 | + fsl,pins = < | |
287 | + SC_P_MIPI_CSI1_I2C0_SCL_MIPI_CSI1_I2C0_SCL 0xc600004c | |
288 | + SC_P_MIPI_CSI1_I2C0_SDA_MIPI_CSI1_I2C0_SDA 0xc600004c | |
289 | + >; | |
290 | + }; | |
291 | + | |
292 | + /* I2C_GP */ | |
293 | + pinctrl_i2c3: lpi2c3grp { | |
294 | + fsl,pins = < | |
295 | + SC_P_SIM0_PD_DMA_I2C3_SCL 0xc600004c | |
296 | + SC_P_SIM0_POWER_EN_DMA_I2C3_SDA 0xc600004c | |
297 | + >; | |
298 | + }; | |
299 | + | |
300 | + pinctrl_pciea: pcieagrp{ | |
301 | + fsl,pins = < | |
302 | + SC_P_QSPI1A_SS0_B_LSIO_GPIO4_IO19 0x06000020 | |
303 | + SC_P_PCIE_CTRL0_WAKE_B_LSIO_GPIO4_IO28 0x04000021 | |
304 | + SC_P_PCIE_CTRL0_PERST_B_LSIO_GPIO4_IO29 0x06000020 | |
305 | + >; | |
306 | + }; | |
307 | + | |
308 | + pinctrl_pcieb: pciebgrp{ | |
309 | + fsl,pins = < | |
310 | + SC_P_QSPI1A_SS1_B_LSIO_GPIO4_IO20 0x06000020 | |
311 | + SC_P_PCIE_CTRL1_WAKE_B_LSIO_GPIO4_IO31 0x04000021 | |
312 | + SC_P_PCIE_CTRL1_PERST_B_LSIO_GPIO5_IO00 0x06000020 | |
313 | + >; | |
314 | + }; | |
315 | + | |
316 | + pinctrl_typec: typecgrp { | |
317 | + fsl,pins = < | |
318 | + SC_P_QSPI1A_SS0_B_LSIO_GPIO4_IO19 0x60 | |
319 | + SC_P_USB_SS3_TC3_LSIO_GPIO4_IO06 0x60 | |
320 | + SC_P_QSPI1A_DATA0_LSIO_GPIO4_IO26 0x00000021 | |
321 | + >; | |
322 | + }; | |
323 | + | |
324 | + pinctrl_usbotg1: usbotg1 { | |
325 | + fsl,pins = < | |
326 | + SC_P_USB_SS3_TC0_LSIO_GPIO4_IO03 0x06000020 | |
327 | + SC_P_USB_SS3_TC2_LSIO_GPIO4_IO05 0x06000020 | |
328 | + >; | |
329 | + }; | |
330 | + | |
331 | + pinctrl_usbotg3: usbotg3 { | |
332 | + fsl,pins = < | |
333 | + SC_P_USB_SS3_TC1_LSIO_GPIO4_IO04 0x06000020 | |
334 | + SC_P_USB_SS3_TC3_LSIO_GPIO4_IO06 0x06000020 | |
335 | + >; | |
336 | + }; | |
337 | + | |
338 | + pinctrl_usdhc1: usdhc1grp { | |
339 | + fsl,pins = < | |
340 | + SC_P_EMMC0_CLK_CONN_EMMC0_CLK 0x06000041 | |
341 | + SC_P_EMMC0_CMD_CONN_EMMC0_CMD 0x00000021 | |
342 | + SC_P_EMMC0_DATA0_CONN_EMMC0_DATA0 0x00000021 | |
343 | + SC_P_EMMC0_DATA1_CONN_EMMC0_DATA1 0x00000021 | |
344 | + SC_P_EMMC0_DATA2_CONN_EMMC0_DATA2 0x00000021 | |
345 | + SC_P_EMMC0_DATA3_CONN_EMMC0_DATA3 0x00000021 | |
346 | + SC_P_EMMC0_DATA4_CONN_EMMC0_DATA4 0x00000021 | |
347 | + SC_P_EMMC0_DATA5_CONN_EMMC0_DATA5 0x00000021 | |
348 | + SC_P_EMMC0_DATA6_CONN_EMMC0_DATA6 0x00000021 | |
349 | + SC_P_EMMC0_DATA7_CONN_EMMC0_DATA7 0x00000021 | |
350 | + SC_P_EMMC0_STROBE_CONN_EMMC0_STROBE 0x00000041 | |
351 | + SC_P_EMMC0_RESET_B_CONN_EMMC0_RESET_B 0x00000021 | |
352 | + >; | |
353 | + }; | |
354 | + | |
355 | + pinctrl_usdhc2_gpio: usdhc2grpgpio { | |
356 | + fsl,pins = < | |
357 | + SC_P_USDHC1_DATA6_LSIO_GPIO5_IO21 0x00000021 | |
358 | + SC_P_USDHC1_DATA7_LSIO_GPIO5_IO22 0x00000021 | |
359 | + SC_P_USDHC1_RESET_B_LSIO_GPIO4_IO07 0x00000021 | |
360 | + >; | |
361 | + }; | |
362 | + | |
363 | + pinctrl_usdhc2: usdhc2grp { | |
364 | + fsl,pins = < | |
365 | + SC_P_USDHC1_CLK_CONN_USDHC1_CLK 0x06000041 | |
366 | + SC_P_USDHC1_CMD_CONN_USDHC1_CMD 0x00000021 | |
367 | + SC_P_USDHC1_DATA0_CONN_USDHC1_DATA0 0x00000021 | |
368 | + SC_P_USDHC1_DATA1_CONN_USDHC1_DATA1 0x00000021 | |
369 | + SC_P_USDHC1_DATA2_CONN_USDHC1_DATA2 0x00000021 | |
370 | + SC_P_USDHC1_DATA3_CONN_USDHC1_DATA3 0x00000021 | |
371 | + SC_P_USDHC1_VSELECT_CONN_USDHC1_VSELECT 0x00000021 | |
372 | + >; | |
373 | + }; | |
374 | + | |
375 | + pinctrl_lvds0_lpi2c1: lvds0lpi2c1grp { | |
376 | + fsl,pins = < | |
377 | + SC_P_LVDS0_I2C1_SCL_LVDS0_I2C1_SCL 0xc600004c | |
378 | + SC_P_LVDS0_I2C1_SDA_LVDS0_I2C1_SDA 0xc600004c | |
379 | + >; | |
380 | + }; | |
381 | + | |
382 | + /* I2C_LCD */ | |
383 | + pinctrl_lvds1_lpi2c0: lvds1lpi2c0grp { | |
384 | + fsl,pins = < | |
385 | + SC_P_LVDS1_I2C0_SCL_LVDS1_I2C0_SCL 0xc600004c | |
386 | + SC_P_LVDS1_I2C0_SDA_LVDS1_I2C0_SDA 0xc600004c | |
387 | + >; | |
388 | + }; | |
389 | + | |
390 | + pinctrl_wlreg_on: wlregongrp{ | |
391 | + fsl,pins = < | |
392 | + SC_P_LVDS1_I2C0_SDA_LSIO_GPIO1_IO13 0x06000000 | |
393 | + >; | |
394 | + }; | |
395 | + | |
396 | + pinctrl_wlreg_on_sleep: wlregon_sleepgrp{ | |
397 | + fsl,pins = < | |
398 | + SC_P_LVDS1_I2C0_SDA_LSIO_GPIO1_IO13 0x07800000 | |
399 | + >; | |
400 | + }; | |
401 | + }; | |
402 | +}; | |
403 | + | |
404 | +&gpio1 { | |
405 | + status = "okay"; | |
406 | +}; | |
407 | + | |
408 | +&gpio2 { | |
409 | + status = "okay"; | |
410 | +}; | |
411 | + | |
412 | +&gpio4 { | |
413 | + status = "okay"; | |
414 | +}; | |
415 | + | |
416 | +&gpio5 { | |
417 | + status = "okay"; | |
418 | +}; | |
419 | + | |
420 | +&usbotg1 { | |
421 | + pinctrl-0 = <&pinctrl_usbotg1>; | |
422 | + vbus-supply = <®_usb_otg1_vbus>; | |
423 | + srp-disable; | |
424 | + hnp-disable; | |
425 | + adp-disable; | |
426 | + disable-over-current; | |
427 | + status = "okay"; | |
428 | +}; | |
429 | + | |
430 | +&usbotg3 { | |
431 | + pinctrl-0 = <&pinctrl_usbotg3>; | |
432 | + gpio = <&gpio4 4 GPIO_ACTIVE_HIGH>; | |
433 | + status = "okay"; | |
434 | +}; | |
435 | + | |
436 | +&usdhc1 { | |
437 | + pinctrl-names = "default", "state_100mhz", "state_200mhz"; | |
438 | + pinctrl-0 = <&pinctrl_usdhc1>; | |
439 | + pinctrl-1 = <&pinctrl_usdhc1>; | |
440 | + pinctrl-2 = <&pinctrl_usdhc1>; | |
441 | + bus-width = <8>; | |
442 | + non-removable; | |
443 | + status = "okay"; | |
444 | +}; | |
445 | + | |
446 | +&usdhc2 { | |
447 | + pinctrl-names = "default", "state_100mhz", "state_200mhz"; | |
448 | + pinctrl-0 = <&pinctrl_usdhc2>, <&pinctrl_usdhc2_gpio>; | |
449 | + pinctrl-1 = <&pinctrl_usdhc2>, <&pinctrl_usdhc2_gpio>; | |
450 | + pinctrl-2 = <&pinctrl_usdhc2>, <&pinctrl_usdhc2_gpio>; | |
451 | + bus-width = <4>; | |
452 | + cd-gpios = <&gpio5 22 GPIO_ACTIVE_LOW>; | |
453 | + wp-gpios = <&gpio5 21 GPIO_ACTIVE_HIGH>; | |
454 | + vmmc-supply = <®_usdhc2_vmmc>; | |
455 | + status = "okay"; | |
456 | +}; | |
457 | + | |
458 | +&fec1 { | |
459 | + pinctrl-names = "default"; | |
460 | + pinctrl-0 = <&pinctrl_fec1>; | |
461 | + phy-mode = "rgmii-txid"; | |
462 | + phy-handle = <ðphy0>; | |
463 | + fsl,magic-packet; | |
464 | + fsl,rgmii_rxc_dly; | |
465 | + status = "okay"; | |
466 | + | |
467 | + mdio { | |
468 | + #address-cells = <1>; | |
469 | + #size-cells = <0>; | |
470 | + | |
471 | + ethphy0: ethernet-phy@6 { | |
472 | + compatible = "ethernet-phy-ieee802.3-c22"; | |
473 | + reg = <0x6>; | |
474 | + at803x,eee-disabled; | |
475 | + at803x,vddio-1p8v; | |
476 | + }; | |
477 | + | |
478 | + ethphy1: ethernet-phy@7 { | |
479 | + compatible = "ethernet-phy-ieee802.3-c22"; | |
480 | + reg = <0x7>; | |
481 | + at803x,eee-disabled; | |
482 | + at803x,vddio-1p8v; | |
483 | + }; | |
484 | + }; | |
485 | +}; | |
486 | + | |
487 | +&fec2 { | |
488 | + pinctrl-names = "default"; | |
489 | + pinctrl-0 = <&pinctrl_fec2>; | |
490 | + phy-mode = "rgmii"; | |
491 | + phy-handle = <ðphy1>; | |
492 | + fsl,ar8031-phy-fixup; | |
493 | + fsl,magic-packet; | |
494 | + status = "okay"; | |
495 | +}; | |
496 | + | |
497 | +&flexspi0 { | |
498 | + pinctrl-names = "default"; | |
499 | + pinctrl-0 = <&pinctrl_flexspi0>; | |
500 | + status = "okay"; | |
501 | + | |
502 | + flash0: mx25u3235f@0 { | |
503 | + reg = <0>; | |
504 | + #address-cells = <1>; | |
505 | + #size-cells = <1>; | |
506 | + compatible = "spi-flash"; | |
507 | + spi-max-frequency = <29000000>; | |
508 | + spi-nor,ddr-quad-read-dummy = <8>; | |
509 | + }; | |
510 | +}; | |
511 | + | |
512 | +&i2c0 { | |
513 | + #address-cells = <1>; | |
514 | + #size-cells = <0>; | |
515 | + clock-frequency = <100000>; | |
516 | + pinctrl-names = "default"; | |
517 | + pinctrl-0 = <&pinctrl_i2c0>; | |
518 | + status = "okay"; | |
519 | + | |
520 | + s35390a: s35390a@30 { | |
521 | + compatible = "sii,s35390a"; | |
522 | + reg = <0x30>; | |
523 | + }; | |
524 | +}; | |
525 | + | |
526 | +&i2c0_mipi_dsi0 { | |
527 | + #address-cells = <1>; | |
528 | + #size-cells = <0>; | |
529 | + pinctrl-names = "default"; | |
530 | + pinctrl-0 = <&pinctrl_mipi0_lpi2c0>; | |
531 | + clock-frequency = <400000>; | |
532 | + status = "okay"; | |
533 | +}; | |
534 | + | |
535 | +/* I2C_PM */ | |
536 | +&i2c1 { | |
537 | + #address-cells = <1>; | |
538 | + #size-cells = <0>; | |
539 | + clock-frequency = <100000>; | |
540 | + pinctrl-names = "default"; | |
541 | + pinctrl-0 = <&pinctrl_i2c1>; | |
542 | + status = "okay"; | |
543 | + | |
544 | + cape_eeprom0: cape_eeprom@57 { | |
545 | + compatible = "at,24c256"; | |
546 | + reg = <0x57>; | |
547 | + }; | |
548 | +}; | |
549 | + | |
550 | +/* I2C_GP */ | |
551 | +&i2c3 { | |
552 | + #address-cells = <1>; | |
553 | + #size-cells = <0>; | |
554 | + clock-frequency = <100000>; | |
555 | + pinctrl-names = "default"; | |
556 | + pinctrl-0 = <&pinctrl_i2c3>; | |
557 | + status = "okay"; | |
558 | + | |
559 | + baseboard_eeprom: baseboard_eeprom@50 { | |
560 | + compatible = "at,24c256"; | |
561 | + reg = <0x50>; | |
562 | + }; | |
563 | +}; | |
564 | + | |
565 | +&lpuart0 { /* console */ | |
566 | + pinctrl-names = "default"; | |
567 | + pinctrl-0 = <&pinctrl_lpuart0>; | |
568 | + status = "okay"; | |
569 | +}; | |
570 | + | |
571 | +&lpuart1 { | |
572 | + pinctrl-names = "default"; | |
573 | + pinctrl-0 = <&pinctrl_lpuart1>; | |
574 | + status = "okay"; | |
575 | +}; | |
576 | + | |
577 | +&lpuart3 { | |
578 | + pinctrl-names = "default"; | |
579 | + pinctrl-0 = <&pinctrl_lpuart3>; | |
580 | + status = "okay"; | |
581 | +}; | |
582 | + | |
583 | +&lpuart4 { | |
584 | + pinctrl-names = "default"; | |
585 | + pinctrl-0 = <&pinctrl_lpuart4>; | |
586 | + status = "okay"; | |
587 | +}; | |
588 | + | |
589 | +/* SPI0 */ | |
590 | +&lpspi1 { | |
591 | + #address-cells = <1>; | |
592 | + #size-cells = <0>; | |
593 | + fsl,spi-num-chipselects = <2>; | |
594 | + pinctrl-names = "default"; | |
595 | + pinctrl-0 = <&pinctrl_lpspi1 &pinctrl_lpspi1_cs>; | |
596 | + cs-gpios = <&gpio3 24 0>, <&gpio3 25 0>; | |
597 | + status = "okay"; | |
598 | + | |
599 | + spidev@0 { | |
600 | + compatible = "spidev"; | |
601 | + spi-max-frequency = <12000000>; | |
602 | + reg = <0>; | |
603 | + status = "okay"; | |
604 | + }; | |
605 | + | |
606 | + spidev@1 { | |
607 | + compatible = "spidev"; | |
608 | + spi-max-frequency = <12000000>; | |
609 | + reg = <1>; | |
610 | + status = "okay"; | |
611 | + }; | |
612 | +}; | |
613 | + | |
614 | +/* eSPI */ | |
615 | +&lpspi3 { | |
616 | + #address-cells = <1>; | |
617 | + #size-cells = <0>; | |
618 | + fsl,spi-num-chipselects = <2>; | |
619 | + pinctrl-names = "default"; | |
620 | + pinctrl-0 = <&pinctrl_lpspi3 &pinctrl_lpspi3_cs>; | |
621 | + cs-gpios = <&gpio2 20 0>, <&gpio2 21 0>; | |
622 | + status = "okay"; | |
623 | + | |
624 | + spidev@0 { | |
625 | + compatible = "spidev"; | |
626 | + spi-max-frequency = <12000000>; | |
627 | + reg = <0>; | |
628 | + status = "okay"; | |
629 | + }; | |
630 | + | |
631 | + spidev@1 { | |
632 | + compatible = "spidev"; | |
633 | + spi-max-frequency = <12000000>; | |
634 | + reg = <1>; | |
635 | + status = "okay"; | |
636 | + }; | |
637 | +}; | |
638 | + | |
639 | +/* I2C_LCD */ | |
640 | +&i2c1_lvds1 { | |
641 | + #address-cells = <1>; | |
642 | + #size-cells = <0>; | |
643 | + pinctrl-names = "default"; | |
644 | + pinctrl-0 = <&pinctrl_lvds1_lpi2c0>; | |
645 | + clock-frequency = <100000>; | |
646 | + status = "okay"; | |
647 | +}; | |
648 | + | |
649 | +&pciea{ | |
650 | + ext_osc = <1>; | |
651 | + pinctrl-names = "default"; | |
652 | + pinctrl-0 = <&pinctrl_pciea>; | |
653 | + reset-gpio = <&gpio4 29 GPIO_ACTIVE_LOW>; | |
654 | + clkreq-gpio = <&gpio4 19 GPIO_ACTIVE_LOW>; | |
655 | + status = "okay"; | |
656 | +}; | |
657 | + | |
658 | +&sata { | |
659 | + pinctrl-names = "default"; | |
660 | + status = "okay"; | |
661 | +}; | |
662 | + | |
663 | +&tsens { | |
664 | + tsens-num = <6>; | |
665 | +}; | |
666 | + | |
667 | +&thermal_zones { | |
668 | + pmic-thermal0 { | |
669 | + polling-delay-passive = <250>; | |
670 | + polling-delay = <2000>; | |
671 | + thermal-sensors = <&tsens 5>; | |
672 | + trips { | |
673 | + pmic_alert0: trip0 { | |
674 | + temperature = <110000>; | |
675 | + hysteresis = <2000>; | |
676 | + type = "passive"; | |
677 | + }; | |
678 | + pmic_crit0: trip1 { | |
679 | + temperature = <125000>; | |
680 | + hysteresis = <2000>; | |
681 | + type = "critical"; | |
682 | + }; | |
683 | + }; | |
684 | + cooling-maps { | |
685 | + map0 { | |
686 | + trip = <&pmic_alert0>; | |
687 | + cooling-device = | |
688 | + <&A53_0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; | |
689 | + }; | |
690 | + map1 { | |
691 | + trip = <&pmic_alert0>; | |
692 | + cooling-device = | |
693 | + <&A72_0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; | |
694 | + }; | |
695 | + }; | |
696 | + }; | |
697 | +}; | |
698 | + | |
699 | +&dpu1 { | |
700 | + status = "okay"; | |
701 | +}; | |
702 | + | |
703 | +&gpio1 { | |
704 | + pinctrl-names = "default"; | |
705 | + pinctrl-0 = <&pinctrl_backlight>; | |
706 | + | |
707 | + lvds_backlight_hog { | |
708 | + gpio-hog; | |
709 | + gpios = <1 5>, <1 6>; | |
710 | + output-high; | |
711 | + line-name = "lvds_backlight"; | |
712 | + }; | |
713 | +}; | |
714 | + | |
715 | +&ldb2_phy { | |
716 | + status = "okay"; | |
717 | +}; | |
718 | + | |
719 | +&ldb2 { | |
720 | + status = "okay"; | |
721 | + | |
722 | + lvds-channel@0 { | |
723 | + fsl,data-mapping = "jeida"; | |
724 | + fsl,data-width = <24>; | |
725 | + status = "okay"; | |
726 | + | |
727 | + display-timings { | |
728 | + native-mode = <&timing0>; | |
729 | + | |
730 | + timing0: timing0 { | |
731 | + clock-frequency = <33300000>; | |
732 | + hactive = <800>; | |
733 | + vactive = <480>; | |
734 | + hback-porch = <64>; | |
735 | + hfront-porch = <64>; | |
736 | + vback-porch = <12>; | |
737 | + vfront-porch = <4>; | |
738 | + hsync-len = <128>; | |
739 | + vsync-len = <2>; | |
740 | + }; | |
741 | + }; | |
742 | + }; | |
743 | +}; |
arch/arm/mach-imx/imx8/Kconfig
... | ... | @@ -117,6 +117,11 @@ |
117 | 117 | select BOARD_LATE_INIT |
118 | 118 | select IMX8QM |
119 | 119 | |
120 | +config TARGET_SMARCIMX8QM | |
121 | + bool "Support SMARC-iMX8QM CPU Module" | |
122 | + select BOARD_LATE_INIT | |
123 | + select IMX8QM | |
124 | + | |
120 | 125 | config TARGET_IMX8QM_LPDDR4_VAL |
121 | 126 | bool "Support i.MX8QM lpddr4 validation board" |
122 | 127 | select BOARD_LATE_INIT |
... | ... | @@ -176,6 +181,7 @@ |
176 | 181 | |
177 | 182 | endchoice |
178 | 183 | |
184 | +source "board/embedian/smarcimx8qm/Kconfig" | |
179 | 185 | source "board/freescale/imx8qm_mek/Kconfig" |
180 | 186 | source "board/freescale/imx8qxp_mek/Kconfig" |
181 | 187 | source "board/freescale/imx8qm_val/Kconfig" |
arch/arm/mach-imx/imx8/clock.c
... | ... | @@ -25,8 +25,22 @@ |
25 | 25 | |
26 | 26 | switch (clk) { |
27 | 27 | case MXC_UART_CLK: |
28 | +#ifdef CONFIG_CONSOLE_SER0 | |
28 | 29 | err = sc_pm_get_clock_rate(-1, |
29 | 30 | SC_R_UART_0, 2, &clkrate); |
31 | +#elif CONFIG_CONSOLE_SER1 | |
32 | + err = sc_pm_get_clock_rate(-1, | |
33 | + SC_R_UART_3, 2, &clkrate); | |
34 | +#elif CONFIG_CONSOLE_SER2 | |
35 | + err = sc_pm_get_clock_rate(-1, | |
36 | + SC_R_UART_1, 2, &clkrate); | |
37 | +#elif CONFIG_CONSOLE_SER3 | |
38 | + err = sc_pm_get_clock_rate(-1, | |
39 | + SC_R_UART_4, 2, &clkrate); | |
40 | +#else | |
41 | + err = sc_pm_get_clock_rate(-1, | |
42 | + SC_R_UART_0, 2, &clkrate); | |
43 | +#endif | |
30 | 44 | if (err != SC_ERR_NONE) { |
31 | 45 | printf("sc get UART clk failed! err=%d\n", err); |
32 | 46 | return 0; |
arch/arm/mach-imx/imx8/snvs_security_sc_conf_8qm_smarc.h
1 | +/* SPDX-License-Identifier: GPL-2.0+ */ | |
2 | +/* | |
3 | + * Copyright 2020 NXP. | |
4 | + */ | |
5 | + | |
6 | +#ifndef SNVS_SECURITY_SC_CONF_8QM_SMARC_H_ | |
7 | +#define SNVS_SECURITY_SC_CONF_8QM_SMARC_H_ | |
8 | + | |
9 | +#include "snvs_security_sc_conf.h" | |
10 | + | |
11 | +/* Configuration */ | |
12 | + | |
13 | +static __maybe_unused struct snvs_security_sc_conf snvs_default_config = { | |
14 | + .hp = { | |
15 | + .lock = 0x1f0703ff, | |
16 | + .secvio_intcfg = 0x8000002f, | |
17 | + .secvio_ctl = 0xC000007f, | |
18 | + }, | |
19 | + .lp = { | |
20 | + .lock = 0x1f0003ff, | |
21 | + .secvio_ctl = 0x36, | |
22 | + .tamper_filt_cfg = 0, | |
23 | + .tamper_det_cfg = 0x76, /* analogic tampers | |
24 | + * + rollover tampers | |
25 | + */ | |
26 | + .tamper_det_cfg2 = 0, | |
27 | + .tamper_filt1_cfg = 0, | |
28 | + .tamper_filt2_cfg = 0, | |
29 | + .act_tamper1_cfg = 0, | |
30 | + .act_tamper2_cfg = 0, | |
31 | + .act_tamper3_cfg = 0, | |
32 | + .act_tamper4_cfg = 0, | |
33 | + .act_tamper5_cfg = 0, | |
34 | + .act_tamper_ctl = 0, | |
35 | + .act_tamper_clk_ctl = 0, | |
36 | + .act_tamper_routing_ctl1 = 0, | |
37 | + .act_tamper_routing_ctl2 = 0, | |
38 | + } | |
39 | +}; | |
40 | + | |
41 | +static __maybe_unused struct snvs_dgo_conf snvs_dgo_default_config = { | |
42 | + .tamper_misc_ctl = 0x80000000, /* Lock the DGO */ | |
43 | +}; | |
44 | + | |
45 | +static __maybe_unused struct snvs_security_sc_conf snvs_passive_vcc_config = { | |
46 | + .hp = { | |
47 | + .lock = 0x1f0703ff, | |
48 | + .secvio_intcfg = 0x8000002f, | |
49 | + .secvio_ctl = 0xC000007f, | |
50 | + }, | |
51 | + .lp = { | |
52 | + .lock = 0x1f0003ff, | |
53 | + .secvio_ctl = 0x36, | |
54 | + .tamper_filt_cfg = 0, | |
55 | + .tamper_det_cfg = 0x276, /* ET1 will trig on line at GND | |
56 | + * + analogic tampers | |
57 | + * + rollover tampers | |
58 | + */ | |
59 | + .tamper_det_cfg2 = 0, | |
60 | + .tamper_filt1_cfg = 0, | |
61 | + .tamper_filt2_cfg = 0, | |
62 | + .act_tamper1_cfg = 0, | |
63 | + .act_tamper2_cfg = 0, | |
64 | + .act_tamper3_cfg = 0, | |
65 | + .act_tamper4_cfg = 0, | |
66 | + .act_tamper5_cfg = 0, | |
67 | + .act_tamper_ctl = 0, | |
68 | + .act_tamper_clk_ctl = 0, | |
69 | + .act_tamper_routing_ctl1 = 0, | |
70 | + .act_tamper_routing_ctl2 = 0, | |
71 | + } | |
72 | +}; | |
73 | + | |
74 | +static __maybe_unused struct snvs_security_sc_conf snvs_passive_gnd_config = { | |
75 | + .hp = { | |
76 | + .lock = 0x1f0703ff, | |
77 | + .secvio_intcfg = 0x8000002f, | |
78 | + .secvio_ctl = 0xC000007f, | |
79 | + }, | |
80 | + .lp = { | |
81 | + .lock = 0x1f0003ff, | |
82 | + .secvio_ctl = 0x36, | |
83 | + .tamper_filt_cfg = 0, | |
84 | + .tamper_det_cfg = 0xa76, /* ET1 will trig on line at VCC | |
85 | + * + analogic tampers | |
86 | + * + rollover tampers | |
87 | + */ | |
88 | + .tamper_det_cfg2 = 0, | |
89 | + .tamper_filt1_cfg = 0, | |
90 | + .tamper_filt2_cfg = 0, | |
91 | + .act_tamper1_cfg = 0, | |
92 | + .act_tamper2_cfg = 0, | |
93 | + .act_tamper3_cfg = 0, | |
94 | + .act_tamper4_cfg = 0, | |
95 | + .act_tamper5_cfg = 0, | |
96 | + .act_tamper_ctl = 0, | |
97 | + .act_tamper_clk_ctl = 0, | |
98 | + .act_tamper_routing_ctl1 = 0, | |
99 | + .act_tamper_routing_ctl2 = 0, | |
100 | + } | |
101 | +}; | |
102 | + | |
103 | +static __maybe_unused struct snvs_security_sc_conf snvs_active_config = { | |
104 | + .hp = { | |
105 | + .lock = 0x1f0703ff, | |
106 | + .secvio_intcfg = 0x8000002f, | |
107 | + .secvio_ctl = 0xC000007f, | |
108 | + }, | |
109 | + .lp = { | |
110 | + .lock = 0x1f0003ff, | |
111 | + .secvio_ctl = 0x36, | |
112 | + .tamper_filt_cfg = 0x00800000, /* Enable filtering */ | |
113 | + .tamper_det_cfg = 0x276, /* ET1 enabled + analogic tampers | |
114 | + * + rollover tampers | |
115 | + */ | |
116 | + .tamper_det_cfg2 = 0, | |
117 | + .tamper_filt1_cfg = 0, | |
118 | + .tamper_filt2_cfg = 0, | |
119 | + .act_tamper1_cfg = 0x84001111, | |
120 | + .act_tamper2_cfg = 0, | |
121 | + .act_tamper3_cfg = 0, | |
122 | + .act_tamper4_cfg = 0, | |
123 | + .act_tamper5_cfg = 0, | |
124 | + .act_tamper_ctl = 0x00010001, | |
125 | + .act_tamper_clk_ctl = 0, | |
126 | + .act_tamper_routing_ctl1 = 0x1, | |
127 | + .act_tamper_routing_ctl2 = 0, | |
128 | + } | |
129 | +}; | |
130 | + | |
131 | +static __maybe_unused struct snvs_dgo_conf snvs_dgo_passive_vcc_config = { | |
132 | + .tamper_misc_ctl = 0x80000000, /* Lock the DGO */ | |
133 | + .tamper_pull_ctl = 0x00000001, /* Pull down ET1 */ | |
134 | +}; | |
135 | + | |
136 | +static __maybe_unused struct snvs_dgo_conf snvs_dgo_passive_gnd_config = { | |
137 | + .tamper_misc_ctl = 0x80000000, /* Lock the DGO */ | |
138 | + .tamper_pull_ctl = 0x00000401, /* Pull up ET1 */ | |
139 | +}; | |
140 | + | |
141 | +static __maybe_unused struct snvs_dgo_conf snvs_dgo_active_config = { | |
142 | + .tamper_misc_ctl = 0x80000000, /* Lock the DGO */ | |
143 | +}; | |
144 | + | |
145 | +static struct tamper_pin_cfg tamper_pin_list_default_config[] = { | |
146 | +}; | |
147 | + | |
148 | +static __maybe_unused struct tamper_pin_cfg tamper_pin_list_passive_vcc_config[] = { | |
149 | +}; | |
150 | + | |
151 | +static __maybe_unused struct tamper_pin_cfg tamper_pin_list_passive_gnd_config[] = { | |
152 | +}; | |
153 | + | |
154 | +static __maybe_unused struct tamper_pin_cfg tamper_pin_list_active_config[] = { | |
155 | +}; | |
156 | + | |
157 | +#endif /* SNVS_SECURITY_SC_CONF_8QM_SMARC_H_ */ |
arch/arm/mach-imx/imx8/snvs_security_sc_conf_board.h
... | ... | @@ -8,6 +8,8 @@ |
8 | 8 | |
9 | 9 | #ifdef CONFIG_TARGET_IMX8QM_MEK |
10 | 10 | #include "snvs_security_sc_conf_8qm_mek.h" |
11 | +#elif CONFIG_TARGET_SMARCIMX8QM | |
12 | +#include "snvs_security_sc_conf_8qm_smarc.h" | |
11 | 13 | #elif CONFIG_TARGET_IMX8QXP_MEK |
12 | 14 | #include "snvs_security_sc_conf_8qxp_mek.h" |
13 | 15 | #elif CONFIG_TARGET_IMX8DXL_EVK |
board/embedian/smarcimx8qm/Kconfig
board/embedian/smarcimx8qm/MAINTAINERS
board/embedian/smarcimx8qm/Makefile
board/embedian/smarcimx8qm/README
1 | +U-Boot for the Embedian SMARC-iMX8QM CPU Module | |
2 | + | |
3 | +Quick Start | |
4 | +=========== | |
5 | + | |
6 | +- Build the ARM Trusted firmware binary | |
7 | +- Get scfw_tcm.bin and ahab-container.img | |
8 | +- Build U-Boot | |
9 | +- Flash the binary into the SD card | |
10 | +- Boot | |
11 | + | |
12 | +Get and Build the ARM Trusted firmware | |
13 | +====================================== | |
14 | + | |
15 | +$ git clone https://source.codeaurora.org/external/imx/imx-atf | |
16 | +$ cd imx-atf/ | |
17 | +$ git checkout origin/imx_4.14.78_1.0.0_ga -b imx_4.14.78_1.0.0_ga | |
18 | +$ make PLAT=imx8qm bl31 | |
19 | + | |
20 | +Get scfw_tcm.bin and ahab-container.img | |
21 | +============================== | |
22 | + | |
23 | +$ wget https://www.nxp.com/lgfiles/NMG/MAD/YOCTO/imx-sc-firmware-1.1.bin | |
24 | +$ chmod +x imx-sc-firmware-1.1.bin | |
25 | +$ ./imx-sc-firmware-1.1.bin | |
26 | +$ wget https://www.nxp.com/lgfiles/NMG/MAD/YOCTO/firmware-imx-8.0.bin | |
27 | +$ chmod +x firmware-imx-8.0.bin | |
28 | +$ ./firmware-imx-8.0.bin | |
29 | + | |
30 | +Copy the following binaries to U-Boot folder: | |
31 | + | |
32 | +$ cp imx-atf/build/imx8qm/release/bl31.bin . | |
33 | +$ cp u-boot/u-boot.bin . | |
34 | + | |
35 | +Copy the following firmwares U-Boot folder : | |
36 | + | |
37 | +$ cp firmware-imx-7.6/firmware/seco/ahab-container.img . | |
38 | +$ cp imx-sc-firmware-0.7/mx8qm-mek-scfw-tcm.bin . | |
39 | + | |
40 | +Build U-Boot | |
41 | +============ | |
42 | +$ make imx8qm_mek_defconfig | |
43 | +$ make flash.bin | |
44 | + | |
45 | +Flash the binary into the SD card | |
46 | +================================= | |
47 | + | |
48 | +Burn the flash.bin binary to SD card offset 32KB: | |
49 | + | |
50 | +$ sudo dd if=flash.bin of=/dev/sd[x] bs=1024 seek=32 | |
51 | + | |
52 | +Boot | |
53 | +==== | |
54 | +Set Boot_SET to ON OFF OFF and shunt TEST# to GND |
board/embedian/smarcimx8qm/imximage.cfg
1 | +/* SPDX-License-Identifier: GPL-2.0+ */ | |
2 | +/* | |
3 | + * Copyright 2018 NXP | |
4 | + */ | |
5 | + | |
6 | +#define __ASSEMBLY__ | |
7 | + | |
8 | +/* Boot from SD, sector size 0x400 */ | |
9 | +BOOT_FROM SD 0x400 | |
10 | +/* SoC type IMX8QM */ | |
11 | +SOC_TYPE IMX8QM | |
12 | +/* Append seco container image */ | |
13 | +APPEND mx8qm-ahab-container.img | |
14 | +/* Create the 2nd container */ | |
15 | +CONTAINER | |
16 | +/* Add scfw image with exec attribute */ | |
17 | +IMAGE SCU mx8qm-mek-scfw-tcm.bin | |
18 | +/* Add ATF image with exec attribute */ | |
19 | +IMAGE A35 spl/u-boot-spl.bin 0x00100000 |
board/embedian/smarcimx8qm/smarcimx8qm.c
Changes suppressed. Click to show
1 | +// SPDX-License-Identifier: GPL-2.0+ | |
2 | +/* | |
3 | + * Copyright 2018 NXP | |
4 | + */ | |
5 | + | |
6 | +#include <common.h> | |
7 | +#include <cpu_func.h> | |
8 | +#include <env.h> | |
9 | +#include <hang.h> | |
10 | +#include <errno.h> | |
11 | +#include <i2c.h> | |
12 | +#include <init.h> | |
13 | +#include <linux/libfdt.h> | |
14 | +#include <fdt_support.h> | |
15 | +#include <asm/io.h> | |
16 | +#include <asm/gpio.h> | |
17 | +#include <asm/arch/clock.h> | |
18 | +#include <asm/arch/sci/sci.h> | |
19 | +#include <asm/arch/imx8-pins.h> | |
20 | +#include <asm/arch/snvs_security_sc.h> | |
21 | +#include <usb.h> | |
22 | +#include <asm/arch/iomux.h> | |
23 | +#include <asm/arch/sys_proto.h> | |
24 | +#include "../../freescale/common/tcpc.h" | |
25 | + | |
26 | +DECLARE_GLOBAL_DATA_PTR; | |
27 | + | |
28 | +#define ENET_INPUT_PAD_CTRL ((SC_PAD_CONFIG_OD_IN << PADRING_CONFIG_SHIFT) | (SC_PAD_ISO_OFF << PADRING_LPCONFIG_SHIFT) \ | |
29 | + | (SC_PAD_28FDSOI_DSE_18V_10MA << PADRING_DSE_SHIFT) | (SC_PAD_28FDSOI_PS_PU << PADRING_PULL_SHIFT)) | |
30 | + | |
31 | +#define ENET_NORMAL_PAD_CTRL ((SC_PAD_CONFIG_NORMAL << PADRING_CONFIG_SHIFT) | (SC_PAD_ISO_OFF << PADRING_LPCONFIG_SHIFT) \ | |
32 | + | (SC_PAD_28FDSOI_DSE_18V_10MA << PADRING_DSE_SHIFT) | (SC_PAD_28FDSOI_PS_PU << PADRING_PULL_SHIFT)) | |
33 | + | |
34 | + | |
35 | +#define GPIO_PAD_CTRL ((SC_PAD_CONFIG_NORMAL << PADRING_CONFIG_SHIFT) | (SC_PAD_ISO_OFF << PADRING_LPCONFIG_SHIFT) \ | |
36 | + | (SC_PAD_28FDSOI_DSE_DV_HIGH << PADRING_DSE_SHIFT) | (SC_PAD_28FDSOI_PS_PU << PADRING_PULL_SHIFT)) | |
37 | + | |
38 | + | |
39 | +#define UART_PAD_CTRL ((SC_PAD_CONFIG_OUT_IN << PADRING_CONFIG_SHIFT) | (SC_PAD_ISO_OFF << PADRING_LPCONFIG_SHIFT) \ | |
40 | + | (SC_PAD_28FDSOI_DSE_DV_HIGH << PADRING_DSE_SHIFT) | (SC_PAD_28FDSOI_PS_PU << PADRING_PULL_SHIFT)) | |
41 | + | |
42 | +/* SER0 */ | |
43 | +#ifdef CONFIG_CONSOLE_SER0 | |
44 | +static iomux_cfg_t uart0_pads[] = { | |
45 | + SC_P_UART0_RX | MUX_PAD_CTRL(UART_PAD_CTRL), | |
46 | + SC_P_UART0_TX | MUX_PAD_CTRL(UART_PAD_CTRL), | |
47 | +}; | |
48 | +#endif | |
49 | + | |
50 | +/* SER1 */ | |
51 | +#ifdef CONFIG_CONSOLE_SER1 | |
52 | +static iomux_cfg_t uart3_pads[] = { | |
53 | + SC_P_M41_GPIO0_00 | MUX_MODE_ALT(2) | MUX_PAD_CTRL(UART_PAD_CTRL), /* M41.GPIO0.IO00, M41.TPM0.CH0, DMA.UART3.RX, LSIO.GPIO0.IO12 */ | |
54 | + SC_P_M41_GPIO0_01 | MUX_MODE_ALT(2) | MUX_PAD_CTRL(UART_PAD_CTRL), /* M41.GPIO0.IO01, M41.TPM0.CH1, DMA.UART3.TX, LSIO.GPIO0.IO13 */ | |
55 | +}; | |
56 | +#endif | |
57 | + | |
58 | +/* SER2 */ | |
59 | +#ifdef CONFIG_CONSOLE_SER2 | |
60 | +static iomux_cfg_t uart1_pads[] = { | |
61 | + SC_P_UART1_RX | MUX_PAD_CTRL(UART_PAD_CTRL), | |
62 | + SC_P_UART1_TX | MUX_PAD_CTRL(UART_PAD_CTRL), | |
63 | +}; | |
64 | +#endif | |
65 | + | |
66 | +/* SER3 */ | |
67 | +#ifdef CONFIG_CONSOLE_SER3 | |
68 | +static iomux_cfg_t uart4_pads[] = { | |
69 | + SC_P_M40_GPIO0_00 | MUX_MODE_ALT(2) | MUX_PAD_CTRL(UART_PAD_CTRL), /* M40.GPIO0.IO00, M40.TPM0.CH0, DMA.UART4.RX, LSIO.GPIO0.IO08 */ | |
70 | + SC_P_M40_GPIO0_01 | MUX_MODE_ALT(2) | MUX_PAD_CTRL(UART_PAD_CTRL), /* M40.GPIO0.IO01, M40.TPM0.CH1, DMA.UART4.TX, LSIO.GPIO0.IO09 */ | |
71 | +}; | |
72 | +#endif | |
73 | + | |
74 | +#ifdef CONFIG_CONSOLE_SER0 | |
75 | +static void setup_iomux_uart0(void) | |
76 | +{ | |
77 | + imx8_iomux_setup_multiple_pads(uart0_pads, ARRAY_SIZE(uart0_pads)); | |
78 | +} | |
79 | +#endif | |
80 | + | |
81 | +#ifdef CONFIG_CONSOLE_SER1 | |
82 | +static void setup_iomux_uart3(void) | |
83 | +{ | |
84 | + imx8_iomux_setup_multiple_pads(uart3_pads, ARRAY_SIZE(uart3_pads)); | |
85 | +} | |
86 | +#endif | |
87 | + | |
88 | +#ifdef CONFIG_CONSOLE_SER2 | |
89 | +static void setup_iomux_uart1(void) | |
90 | +{ | |
91 | + imx8_iomux_setup_multiple_pads(uart1_pads, ARRAY_SIZE(uart1_pads)); | |
92 | +} | |
93 | +#endif | |
94 | + | |
95 | +#ifdef CONFIG_CONSOLE_SER3 | |
96 | +static void setup_iomux_uart4(void) | |
97 | +{ | |
98 | + imx8_iomux_setup_multiple_pads(uart4_pads, ARRAY_SIZE(uart4_pads)); | |
99 | +} | |
100 | +#endif | |
101 | + | |
102 | +int board_early_init_f(void) | |
103 | +{ | |
104 | + sc_pm_clock_rate_t rate = SC_80MHZ; | |
105 | + int ret; | |
106 | + | |
107 | +#ifdef CONFIG_CONSOLE_SER0 | |
108 | + /* Set UART0 clock root to 80 MHz */ | |
109 | + ret = sc_pm_setup_uart(SC_R_UART_0, rate); | |
110 | + if (ret) | |
111 | + return ret; | |
112 | + | |
113 | + setup_iomux_uart0(); | |
114 | +#endif | |
115 | + | |
116 | +#ifdef CONFIG_CONSOLE_SER1 | |
117 | + /* Set UART3 clock root to 80 MHz */ | |
118 | + ret = sc_pm_setup_uart(SC_R_UART_3, rate); | |
119 | + if (ret) | |
120 | + return ret; | |
121 | + | |
122 | + setup_iomux_uart3(); | |
123 | +#endif | |
124 | + | |
125 | +#ifdef CONFIG_CONSOLE_SER2 | |
126 | + /* Set UART1 clock root to 80 MHz */ | |
127 | + ret = sc_pm_setup_uart(SC_R_UART_1, rate); | |
128 | + if (ret) | |
129 | + return ret; | |
130 | + | |
131 | + setup_iomux_uart1(); | |
132 | +#endif | |
133 | + | |
134 | +#ifdef CONFIG_CONSOLE_SER3 | |
135 | + /* Set UART4 clock root to 80 MHz */ | |
136 | + ret = sc_pm_setup_uart(SC_R_UART_4, rate); | |
137 | + if (ret) | |
138 | + return ret; | |
139 | + | |
140 | + setup_iomux_uart4(); | |
141 | +#endif | |
142 | + | |
143 | +/* Dual bootloader feature will require CAAM access, but JR0 and JR1 will be | |
144 | + * assigned to seco for imx8, use JR3 instead. | |
145 | + */ | |
146 | +#if defined(CONFIG_SPL_BUILD) && defined(CONFIG_DUAL_BOOTLOADER) | |
147 | + sc_pm_set_resource_power_mode(-1, SC_R_CAAM_JR3, SC_PM_PW_MODE_ON); | |
148 | + sc_pm_set_resource_power_mode(-1, SC_R_CAAM_JR3_OUT, SC_PM_PW_MODE_ON); | |
149 | +#endif | |
150 | + | |
151 | + return 0; | |
152 | +} | |
153 | + | |
154 | + | |
155 | +#if IS_ENABLED(CONFIG_FEC_MXC) | |
156 | +#include <miiphy.h> | |
157 | + | |
158 | +#ifndef CONFIG_DM_ETH | |
159 | +static iomux_cfg_t pad_enet1[] = { | |
160 | + SC_P_ENET1_RGMII_RX_CTL | MUX_PAD_CTRL(ENET_INPUT_PAD_CTRL), | |
161 | + SC_P_ENET1_RGMII_RXD0 | MUX_PAD_CTRL(ENET_INPUT_PAD_CTRL), | |
162 | + SC_P_ENET1_RGMII_RXD1 | MUX_PAD_CTRL(ENET_INPUT_PAD_CTRL), | |
163 | + SC_P_ENET1_RGMII_RXD2 | MUX_PAD_CTRL(ENET_INPUT_PAD_CTRL), | |
164 | + SC_P_ENET1_RGMII_RXD3 | MUX_PAD_CTRL(ENET_INPUT_PAD_CTRL), | |
165 | + SC_P_ENET1_RGMII_RXC | MUX_PAD_CTRL(ENET_INPUT_PAD_CTRL), | |
166 | + SC_P_ENET1_RGMII_TX_CTL | MUX_PAD_CTRL(ENET_NORMAL_PAD_CTRL), | |
167 | + SC_P_ENET1_RGMII_TXD0 | MUX_PAD_CTRL(ENET_NORMAL_PAD_CTRL), | |
168 | + SC_P_ENET1_RGMII_TXD1 | MUX_PAD_CTRL(ENET_NORMAL_PAD_CTRL), | |
169 | + SC_P_ENET1_RGMII_TXD2 | MUX_PAD_CTRL(ENET_NORMAL_PAD_CTRL), | |
170 | + SC_P_ENET1_RGMII_TXD3 | MUX_PAD_CTRL(ENET_NORMAL_PAD_CTRL), | |
171 | + SC_P_ENET1_RGMII_TXC | MUX_PAD_CTRL(ENET_NORMAL_PAD_CTRL), | |
172 | + | |
173 | + /* Shared MDIO */ | |
174 | + SC_P_ENET0_MDC | MUX_PAD_CTRL(ENET_NORMAL_PAD_CTRL), | |
175 | + SC_P_ENET0_MDIO | MUX_PAD_CTRL(ENET_NORMAL_PAD_CTRL), | |
176 | +}; | |
177 | + | |
178 | +static iomux_cfg_t pad_enet0[] = { | |
179 | + SC_P_ENET0_RGMII_RX_CTL | MUX_PAD_CTRL(ENET_INPUT_PAD_CTRL), | |
180 | + SC_P_ENET0_RGMII_RXD0 | MUX_PAD_CTRL(ENET_INPUT_PAD_CTRL), | |
181 | + SC_P_ENET0_RGMII_RXD1 | MUX_PAD_CTRL(ENET_INPUT_PAD_CTRL), | |
182 | + SC_P_ENET0_RGMII_RXD2 | MUX_PAD_CTRL(ENET_INPUT_PAD_CTRL), | |
183 | + SC_P_ENET0_RGMII_RXD3 | MUX_PAD_CTRL(ENET_INPUT_PAD_CTRL), | |
184 | + SC_P_ENET0_RGMII_RXC | MUX_PAD_CTRL(ENET_INPUT_PAD_CTRL), | |
185 | + SC_P_ENET0_RGMII_TX_CTL | MUX_PAD_CTRL(ENET_NORMAL_PAD_CTRL), | |
186 | + SC_P_ENET0_RGMII_TXD0 | MUX_PAD_CTRL(ENET_NORMAL_PAD_CTRL), | |
187 | + SC_P_ENET0_RGMII_TXD1 | MUX_PAD_CTRL(ENET_NORMAL_PAD_CTRL), | |
188 | + SC_P_ENET0_RGMII_TXD2 | MUX_PAD_CTRL(ENET_NORMAL_PAD_CTRL), | |
189 | + SC_P_ENET0_RGMII_TXD3 | MUX_PAD_CTRL(ENET_NORMAL_PAD_CTRL), | |
190 | + SC_P_ENET0_RGMII_TXC | MUX_PAD_CTRL(ENET_NORMAL_PAD_CTRL), | |
191 | + | |
192 | + /* Shared MDIO */ | |
193 | + SC_P_ENET0_MDC | MUX_PAD_CTRL(ENET_NORMAL_PAD_CTRL), | |
194 | + SC_P_ENET0_MDIO | MUX_PAD_CTRL(ENET_NORMAL_PAD_CTRL), | |
195 | +}; | |
196 | + | |
197 | +static void setup_iomux_fec(void) | |
198 | +{ | |
199 | + if (0 == CONFIG_FEC_ENET_DEV) | |
200 | + imx8_iomux_setup_multiple_pads(pad_enet0, ARRAY_SIZE(pad_enet0)); | |
201 | + else | |
202 | + imx8_iomux_setup_multiple_pads(pad_enet1, ARRAY_SIZE(pad_enet1)); | |
203 | +} | |
204 | + | |
205 | +int board_eth_init(bd_t *bis) | |
206 | +{ | |
207 | + int ret; | |
208 | + struct power_domain pd; | |
209 | + | |
210 | + printf("[%s] %d\n", __func__, __LINE__); | |
211 | + | |
212 | + if (CONFIG_FEC_ENET_DEV) { | |
213 | + if (!power_domain_lookup_name("conn_enet1", &pd)) | |
214 | + power_domain_on(&pd); | |
215 | + } else { | |
216 | + if (!power_domain_lookup_name("conn_enet0", &pd)) | |
217 | + power_domain_on(&pd); | |
218 | + } | |
219 | + | |
220 | + setup_iomux_fec(); | |
221 | + | |
222 | + ret = fecmxc_initialize_multi(bis, CONFIG_FEC_ENET_DEV, | |
223 | + CONFIG_FEC_MXC_PHYADDR, IMX_FEC_BASE); | |
224 | + if (ret) | |
225 | + printf("FEC1 MXC: %s:failed\n", __func__); | |
226 | + | |
227 | + return ret; | |
228 | +} | |
229 | +#endif | |
230 | + | |
231 | +int board_phy_config(struct phy_device *phydev) | |
232 | +{ | |
233 | + phy_write(phydev, MDIO_DEVAD_NONE, 0x1d, 0x1f); | |
234 | + phy_write(phydev, MDIO_DEVAD_NONE, 0x1e, 0x8); | |
235 | + | |
236 | + phy_write(phydev, MDIO_DEVAD_NONE, 0x1d, 0x00); | |
237 | + phy_write(phydev, MDIO_DEVAD_NONE, 0x1e, 0x82ee); | |
238 | + phy_write(phydev, MDIO_DEVAD_NONE, 0x1d, 0x05); | |
239 | + phy_write(phydev, MDIO_DEVAD_NONE, 0x1e, 0x100); | |
240 | + | |
241 | + if (phydev->drv->config) | |
242 | + phydev->drv->config(phydev); | |
243 | + | |
244 | + return 0; | |
245 | +} | |
246 | +#endif | |
247 | + | |
248 | +static iomux_cfg_t smarc_gpio[] = { | |
249 | + SC_P_MIPI_CSI0_GPIO0_01 | MUX_MODE_ALT(3) | MUX_PAD_CTRL(GPIO_PAD_CTRL), /* GPIO0 */ | |
250 | + SC_P_MIPI_CSI1_GPIO0_01 | MUX_MODE_ALT(3) | MUX_PAD_CTRL(GPIO_PAD_CTRL), /* GPIO1 */ | |
251 | + SC_P_MIPI_CSI0_GPIO0_00 | MUX_MODE_ALT(3) | MUX_PAD_CTRL(GPIO_PAD_CTRL), /* GPIO2 */ | |
252 | + SC_P_MIPI_CSI1_GPIO0_00 | MUX_MODE_ALT(3) | MUX_PAD_CTRL(GPIO_PAD_CTRL), /* GPIO3 */ | |
253 | + SC_P_GPT0_CLK | MUX_MODE_ALT(3) | MUX_PAD_CTRL(GPIO_PAD_CTRL), /* GPIO4 */ | |
254 | + SC_P_GPT0_COMPARE | MUX_MODE_ALT(3) | MUX_PAD_CTRL(GPIO_PAD_CTRL), /* GPIO5 */ | |
255 | + SC_P_GPT0_CAPTURE | MUX_MODE_ALT(3) | MUX_PAD_CTRL(GPIO_PAD_CTRL), /* GPIO6 */ | |
256 | + SC_P_GPT1_COMPARE | MUX_MODE_ALT(3) | MUX_PAD_CTRL(GPIO_PAD_CTRL), /* GPIO7 */ | |
257 | + SC_P_GPT1_CAPTURE | MUX_MODE_ALT(3) | MUX_PAD_CTRL(GPIO_PAD_CTRL), /* GPIO8 */ | |
258 | + SC_P_GPT1_CLK | MUX_MODE_ALT(3) | MUX_PAD_CTRL(GPIO_PAD_CTRL), /* GPIO9 */ | |
259 | + SC_P_FLEXCAN2_TX | MUX_MODE_ALT(3) | MUX_PAD_CTRL(GPIO_PAD_CTRL), /* GPIO10 */ | |
260 | + SC_P_FLEXCAN2_RX | MUX_MODE_ALT(3) | MUX_PAD_CTRL(GPIO_PAD_CTRL), /* GPIO11 */ | |
261 | + SC_P_SCU_GPIO0_03 | MUX_MODE_ALT(3) | MUX_PAD_CTRL(GPIO_PAD_CTRL), /* LID# */ | |
262 | + SC_P_SCU_GPIO0_04 | MUX_MODE_ALT(3) | MUX_PAD_CTRL(GPIO_PAD_CTRL), /* SLEEP# */ | |
263 | + SC_P_SCU_GPIO0_05 | MUX_MODE_ALT(3) | MUX_PAD_CTRL(GPIO_PAD_CTRL), /* CHARGING# */ | |
264 | + SC_P_SCU_GPIO0_06 | MUX_MODE_ALT(3) | MUX_PAD_CTRL(GPIO_PAD_CTRL), /* CHARGER_PRSNT# */ | |
265 | + SC_P_SCU_GPIO0_07 | MUX_MODE_ALT(3) | MUX_PAD_CTRL(GPIO_PAD_CTRL), /* BATLOW# */ | |
266 | + SC_P_SCU_GPIO0_02 | MUX_MODE_ALT(3) | MUX_PAD_CTRL(GPIO_PAD_CTRL), /* CARRIER_STBY# */ | |
267 | + SC_P_QSPI1A_DATA0 | MUX_MODE_ALT(3) | MUX_PAD_CTRL(GPIO_PAD_CTRL), /* RGMII0_INT# */ | |
268 | + SC_P_QSPI1A_DATA1 | MUX_MODE_ALT(3) | MUX_PAD_CTRL(GPIO_PAD_CTRL), /* RGMII1_INT# */ | |
269 | + SC_P_USB_SS3_TC0 | MUX_MODE_ALT(3) | MUX_PAD_CTRL(GPIO_PAD_CTRL), | |
270 | + /* USB_OTG1_PWR_EN */ | |
271 | + SC_P_USB_SS3_TC1 | MUX_MODE_ALT(3) | MUX_PAD_CTRL(GPIO_PAD_CTRL), /* USB_OTG2_PWR_EN */ | |
272 | + SC_P_USB_SS3_TC2 | MUX_MODE_ALT(3) | MUX_PAD_CTRL(GPIO_PAD_CTRL), /* USB_OTG1_OC */ | |
273 | + SC_P_USB_SS3_TC3 | MUX_MODE_ALT(3) | MUX_PAD_CTRL(GPIO_PAD_CTRL), /* USB_OTG2_OC */ | |
274 | + SC_P_SIM0_GPIO0_00 | MUX_MODE_ALT(3) | MUX_PAD_CTRL(GPIO_PAD_CTRL), /* HDMI_SEL */ | |
275 | + SC_P_MIPI_DSI1_GPIO0_00 | MUX_MODE_ALT(3) | MUX_PAD_CTRL(GPIO_PAD_CTRL), /* EDP0_EN */ | |
276 | + SC_P_MIPI_DSI0_GPIO0_00 | MUX_MODE_ALT(3) | MUX_PAD_CTRL(GPIO_PAD_CTRL), /* EDP1_EN */ | |
277 | + SC_P_MIPI_DSI1_GPIO0_01 | MUX_MODE_ALT(3) | MUX_PAD_CTRL(GPIO_PAD_CTRL), /* EDP0_IRQ */ | |
278 | + SC_P_MIPI_DSI0_GPIO0_01 | MUX_MODE_ALT(3) | MUX_PAD_CTRL(GPIO_PAD_CTRL), /* EDP1_IRQ */ | |
279 | + SC_P_LVDS0_GPIO01 | MUX_MODE_ALT(3) | MUX_PAD_CTRL(GPIO_PAD_CTRL), /* LCD0_VDD_EN */ | |
280 | + SC_P_LVDS1_GPIO01 | MUX_MODE_ALT(3) | MUX_PAD_CTRL(GPIO_PAD_CTRL), /* LCD1_VDD_EN */ | |
281 | + SC_P_LVDS0_I2C0_SCL | MUX_MODE_ALT(3) | MUX_PAD_CTRL(GPIO_PAD_CTRL), /* LCD0_BKLT_EN */ | |
282 | + SC_P_LVDS0_I2C0_SDA | MUX_MODE_ALT(3) | MUX_PAD_CTRL(GPIO_PAD_CTRL), /* LCD1_BKLT_EN */ | |
283 | + SC_P_ADC_IN0 | MUX_MODE_ALT(3) | MUX_PAD_CTRL(GPIO_PAD_CTRL), /* BOOT_SEL0 */ | |
284 | + SC_P_ADC_IN1 | MUX_MODE_ALT(3) | MUX_PAD_CTRL(GPIO_PAD_CTRL), /* BOOT_SEL1 */ | |
285 | + SC_P_ADC_IN2 | MUX_MODE_ALT(3) | MUX_PAD_CTRL(GPIO_PAD_CTRL), /* BOOT_SEL2 */ | |
286 | + SC_P_SPDIF0_TX | MUX_MODE_ALT(3) | MUX_PAD_CTRL(GPIO_PAD_CTRL), /* WDT_TIME_OUT# */ | |
287 | +}; | |
288 | + | |
289 | +/* GPIO0 */ | |
290 | +#define GPIO0 IMX_GPIO_NR(1, 28) /* MIPI_CSI0.GPIO0.IO01, DMA.I2C0.SDA, MIPI_CSI1.I2C0.SDA, LSIO.GPIO1.IO28 */ | |
291 | +/* GPIO1 */ | |
292 | +#define GPIO1 IMX_GPIO_NR(1, 31) /* MIPI_CSI1.GPIO0.IO01, DMA.UART4.TX, LSIO.GPIO1.IO31 */ | |
293 | +/* GPIO2 */ | |
294 | +#define GPIO2 IMX_GPIO_NR(1, 27) /* MIPI_CSI0.GPIO0.IO00, DMA.I2C0.SCL, MIPI_CSI1.I2C0.SCL, LSIO.GPIO1.IO27 */ | |
295 | +/* GPIO3 */ | |
296 | +#define GPIO3 IMX_GPIO_NR(1, 30) /* MIPI_CSI1.GPIO0.IO00, DMA.UART4.RX, LSIO.GPIO1.IO30 */ | |
297 | +/* GPIO4 */ | |
298 | +#define GPIO4 IMX_GPIO_NR(0, 14) /* LSIO.GPT0.CLK, DMA.I2C1.SCL, LSIO.KPP0.COL4, LSIO.GPIO0.IO14 */ | |
299 | +/* GPIO5 */ | |
300 | +#define GPIO5 IMX_GPIO_NR(0, 16) /* LSIO.GPT0.COMPARE, LSIO.PWM3.OUT, LSIO.KPP0.COL6, LSIO.GPIO0.IO16 */ | |
301 | +/* GPIO6 */ | |
302 | +#define GPIO6 IMX_GPIO_NR(0, 15) /* LSIO.GPT0.CAPTURE, DMA.I2C1.SDA, LSIO.KPP0.COL5, LSIO.GPIO0.IO15 */ | |
303 | +/* GPIO7 */ | |
304 | +#define GPIO7 IMX_GPIO_NR(0, 19) /* LSIO.GPT1.COMPARE, LSIO.PWM2.OUT, LSIO.KPP0.ROW5, LSIO.GPIO0.IO19 */ | |
305 | +/* GPIO8 */ | |
306 | +#define GPIO8 IMX_GPIO_NR(0, 18) /* LSIO.GPT1.CAPTURE, DMA.I2C2.SDA, LSIO.KPP0.ROW4, LSIO.GPIO0.IO18 */ | |
307 | +/* GPIO9 */ | |
308 | +#define GPIO9 IMX_GPIO_NR(0, 17) /* LSIO.GPT1.CLK, DMA.I2C2.SCL, LSIO.KPP0.COL7, LSIO.GPIO0.IO17 */ | |
309 | +/* GPIO10 */ | |
310 | +#define GPIO10 IMX_GPIO_NR(4, 02) /* DMA.FLEXCAN2.TX, LSIO.GPIO4.IO02 */ | |
311 | +/* GPIO11 */ | |
312 | +#define GPIO11 IMX_GPIO_NR(4, 01) /* DMA.FLEXCAN2.RX, LSIO.GPIO4.IO01 */ | |
313 | +/* LID# */ | |
314 | +#define LID IMX_GPIO_NR(0, 31) /* SCU.GPIO0.IO03, SCU.GPIO0.IOXX_PMIC_GPU1_ON, LSIO.GPIO0.IO31 */ | |
315 | +/* SLEEP# */ | |
316 | +#define SLEEP IMX_GPIO_NR(1, 00) /* SCU.GPIO0.IO04, SCU.GPIO0.IOXX_PMIC_A72_ON, LSIO.GPIO1.IO00 */ | |
317 | +/* CHARGING# */ | |
318 | +#define CHARGING IMX_GPIO_NR(1, 01) /* SCU.GPIO0.IO05, SCU.GPIO0.IOXX_PMIC_A53_ON, LSIO.GPIO1.IO01 */ | |
319 | +/* CHARGER_PRSNT# */ | |
320 | +#define CHARGER_PRSNT IMX_GPIO_NR(1, 02) /* SCU.GPIO0.IO06, SCU.TPM0.CH0, LSIO.GPIO1.IO02 */ | |
321 | +/* BATLOW# */ | |
322 | +#define BATLOW IMX_GPIO_NR(1, 03) /* SCU.GPIO0.IO07, SCU.TPM0.CH1, SCU.DSC.RTC_CLOCK_OUTPUT_32K, LSIO.GPIO1.IO03 */ | |
323 | +/* CARRIER_STBY# */ | |
324 | +#define CARRIER_STBY IMX_GPIO_NR(0, 30) /* SCU.GPIO0.IO02, SCU.GPIO0.IOXX_PMIC_GPU0_ON, LSIO.GPIO0.IO30 */ | |
325 | +/* RGMII0_INT# */ | |
326 | +#define RGMII0_INT IMX_GPIO_NR(4, 26) /* LSIO.QSPI1A.DATA0, LSIO.GPIO4.IO26 */ | |
327 | +/* RGMII1_INT# */ | |
328 | +#define RGMII1_INT IMX_GPIO_NR(4, 25) /* LSIO.QSPI1A.DATA1, DMA.I2C1.SDA, CONN.USB_OTG2.OC, LSIO.GPIO4.IO25 */ | |
329 | +/* USB_OTG1_PWR_EN */ | |
330 | +#define USB_OTG1_PWR_EN IMX_GPIO_NR(4, 03) /* DMA.I2C1.SCL, CONN.USB_OTG1.PWR, LSIO.GPIO4.IO03 */ | |
331 | +/* USB_OTG2_PWR_EN */ | |
332 | +#define USB_OTG2_PWR_EN IMX_GPIO_NR(4, 04) /* DMA.I2C1.SCL, CONN.USB_OTG2.PWR, LSIO.GPIO4.IO04 */ | |
333 | +/* USB_OTG1_OC# */ | |
334 | +#define USB_OTG1_OC IMX_GPIO_NR(4, 05) /* DMA.I2C1.SDA, CONN.USB_OTG1.OC, LSIO.GPIO4.IO05 */ | |
335 | +/* USB_OTG2_OC# */ | |
336 | +#define USB_OTG2_OC IMX_GPIO_NR(4, 06) /* DMA.I2C1.SDA, CONN.USB_OTG2.OC, LSIO.GPIO4.IO06 */ | |
337 | +/* HDMI_SEL */ | |
338 | +#define HDMI_SEL IMX_GPIO_NR(0, 05) /* DMA.SIM0.POWER_EN, LSIO.GPIO0.IO05 */ | |
339 | +/* EDP0_EN */ | |
340 | +#define EDP0_EN IMX_GPIO_NR(1, 22) /* MIPI_DSI1.GPIO0.IO00, MIPI_DSI1.PWM0.OUT, LSIO.GPIO1.IO22 */ | |
341 | +/* EDP1_EN */ | |
342 | +#define EDP1_EN IMX_GPIO_NR(1, 18) /* MIPI_DSI0.GPIO0.IO00, MIPI_DSI0.PWM0.OUT, LSIO.GPIO1.IO18 */ | |
343 | +/* EDP0_IRQ */ | |
344 | +#define EDP0_IRQ IMX_GPIO_NR(1, 23) /* MIPI_DSI1.GPIO0.IO01, LSIO.GPIO1.IO23 */ | |
345 | +/* EDP1_IRQ */ | |
346 | +#define EDP1_IRQ IMX_GPIO_NR(1, 19) /* MIPI_DSI0.GPIO0.IO01, LSIO.GPIO1.IO19 */ | |
347 | +/* LCD0_VDD_EN */ | |
348 | +#define LCD0_VDD_EN IMX_GPIO_NR(1, 05) /* LVDS0.GPIO0.IO01, LSIO.GPIO1.IO05 */ | |
349 | +/* LCD1_VDD_EN */ | |
350 | +#define LCD1_VDD_EN IMX_GPIO_NR(1, 11) /* LVDS1.GPIO0.IO01, LSIO.GPIO1.IO11 */ | |
351 | +/* LCD0_BKLT_EN */ | |
352 | +#define LCD0_BKLT_EN IMX_GPIO_NR(1, 06) /* LVDS0.I2C0.SCL, LVDS0.GPIO0.IO02, LSIO.GPIO1.IO06 */ | |
353 | +/* LCD1_BKLT_EN */ | |
354 | +#define LCD1_BKLT_EN IMX_GPIO_NR(1, 07) /* LVDS0.I2C0.SDA, LVDS0.GPIO0.IO03, LSIO.GPIO1.IO07 */ | |
355 | +/* WDT_TIME_OUT# */ | |
356 | +#define WDT_TIME_OUT IMX_GPIO_NR(2, 15) /* AUD.SPDIF0.TX, AUD.MQS.L, AUD.ACM.MCLK_OUT1, LSIO.GPIO2.IO15 */ | |
357 | + | |
358 | +static void board_gpio_init(void) | |
359 | +{ | |
360 | + int ret; | |
361 | + struct gpio_desc desc; | |
362 | + | |
363 | + imx8_iomux_setup_multiple_pads(smarc_gpio, ARRAY_SIZE(smarc_gpio)); | |
364 | + /* By SMARC definition, GPIO0~GPIO5 are set as Outpin Low by default */ | |
365 | + /* GPIO0 */ | |
366 | + ret = dm_gpio_lookup_name("GPIO1_28", &desc); | |
367 | + if (ret) { | |
368 | + printf("%s lookup GPIO@1_28 failed ret = %d\n", __func__, ret); | |
369 | + return; | |
370 | + } | |
371 | + | |
372 | + ret = dm_gpio_request(&desc, "gpio0"); | |
373 | + if (ret) { | |
374 | + printf("%s request gpio0 failed ret = %d\n", __func__, ret); | |
375 | + return; | |
376 | + } | |
377 | + | |
378 | + dm_gpio_set_dir_flags(&desc, GPIOD_IS_OUT); | |
379 | + dm_gpio_set_value(&desc, 0); | |
380 | + | |
381 | + /* GPIO1 */ | |
382 | + ret = dm_gpio_lookup_name("GPIO1_31", &desc); | |
383 | + if (ret) { | |
384 | + printf("%s lookup GPIO@1_31 failed ret = %d\n", __func__, ret); | |
385 | + return; | |
386 | + } | |
387 | + | |
388 | + ret = dm_gpio_request(&desc, "gpio1"); | |
389 | + if (ret) { | |
390 | + printf("%s request gpio1 failed ret = %d\n", __func__, ret); | |
391 | + return; | |
392 | + } | |
393 | + | |
394 | + dm_gpio_set_dir_flags(&desc, GPIOD_IS_OUT); | |
395 | + dm_gpio_set_value(&desc, 0); | |
396 | + | |
397 | + /* GPIO2 */ | |
398 | + ret = dm_gpio_lookup_name("GPIO1_27", &desc); | |
399 | + if (ret) { | |
400 | + printf("%s lookup GPIO@1_27 failed ret = %d\n", __func__, ret); | |
401 | + return; | |
402 | + } | |
403 | + | |
404 | + ret = dm_gpio_request(&desc, "gpio2"); | |
405 | + if (ret) { | |
406 | + printf("%s request gpio2 failed ret = %d\n", __func__, ret); | |
407 | + return; | |
408 | + } | |
409 | + | |
410 | + dm_gpio_set_dir_flags(&desc, GPIOD_IS_OUT); | |
411 | + dm_gpio_set_value(&desc, 0); | |
412 | + | |
413 | + /* GPIO3 */ | |
414 | + ret = dm_gpio_lookup_name("GPIO1_30", &desc); | |
415 | + if (ret) { | |
416 | + printf("%s lookup GPIO@1_30 failed ret = %d\n", __func__, ret); | |
417 | + return; | |
418 | + } | |
419 | + | |
420 | + ret = dm_gpio_request(&desc, "gpio3"); | |
421 | + if (ret) { | |
422 | + printf("%s request gpio3 failed ret = %d\n", __func__, ret); | |
423 | + return; | |
424 | + } | |
425 | + | |
426 | + dm_gpio_set_dir_flags(&desc, GPIOD_IS_OUT); | |
427 | + dm_gpio_set_value(&desc, 0); | |
428 | + | |
429 | + /* GPIO4 */ | |
430 | + ret = dm_gpio_lookup_name("GPIO0_14", &desc); | |
431 | + if (ret) { | |
432 | + printf("%s lookup GPIO@0_14 failed ret = %d\n", __func__, ret); | |
433 | + return; | |
434 | + } | |
435 | + | |
436 | + ret = dm_gpio_request(&desc, "gpio4"); | |
437 | + if (ret) { | |
438 | + printf("%s request gpio4 failed ret = %d\n", __func__, ret); | |
439 | + return; | |
440 | + } | |
441 | + | |
442 | + dm_gpio_set_dir_flags(&desc, GPIOD_IS_OUT); | |
443 | + dm_gpio_set_value(&desc, 0); | |
444 | + | |
445 | + /* GPIO5 */ | |
446 | + ret = dm_gpio_lookup_name("GPIO0_16", &desc); | |
447 | + if (ret) { | |
448 | + printf("%s lookup GPIO@0_16 failed ret = %d\n", __func__, ret); | |
449 | + return; | |
450 | + } | |
451 | + | |
452 | + ret = dm_gpio_request(&desc, "gpio5"); | |
453 | + if (ret) { | |
454 | + printf("%s request gpio5 failed ret = %d\n", __func__, ret); | |
455 | + return; | |
456 | + } | |
457 | + | |
458 | + dm_gpio_set_dir_flags(&desc, GPIOD_IS_OUT); | |
459 | + dm_gpio_set_value(&desc, 0); | |
460 | + | |
461 | + /* GPIO6 */ | |
462 | + ret = dm_gpio_lookup_name("GPIO0_15", &desc); | |
463 | + if (ret) { | |
464 | + printf("%s lookup GPIO@0_15 failed ret = %d\n", __func__, ret); | |
465 | + return; | |
466 | + } | |
467 | + | |
468 | + ret = dm_gpio_request(&desc, "gpio6"); | |
469 | + if (ret) { | |
470 | + printf("%s request gpio6 failed ret = %d\n", __func__, ret); | |
471 | + return; | |
472 | + } | |
473 | + | |
474 | + dm_gpio_set_dir_flags(&desc, GPIOD_IS_IN); | |
475 | + | |
476 | + /* GPIO7 */ | |
477 | + ret = dm_gpio_lookup_name("GPIO0_19", &desc); | |
478 | + if (ret) { | |
479 | + printf("%s lookup GPIO@0_19 failed ret = %d\n", __func__, ret); | |
480 | + return; | |
481 | + } | |
482 | + | |
483 | + ret = dm_gpio_request(&desc, "gpio7"); | |
484 | + if (ret) { | |
485 | + printf("%s request gpio7 failed ret = %d\n", __func__, ret); | |
486 | + return; | |
487 | + } | |
488 | + | |
489 | + dm_gpio_set_dir_flags(&desc, GPIOD_IS_IN); | |
490 | + | |
491 | + /* GPIO8 */ | |
492 | + ret = dm_gpio_lookup_name("GPIO0_18", &desc); | |
493 | + if (ret) { | |
494 | + printf("%s lookup GPIO@0_18 failed ret = %d\n", __func__, ret); | |
495 | + return; | |
496 | + } | |
497 | + | |
498 | + ret = dm_gpio_request(&desc, "gpio8"); | |
499 | + if (ret) { | |
500 | + printf("%s request gpio8 failed ret = %d\n", __func__, ret); | |
501 | + return; | |
502 | + } | |
503 | + | |
504 | + dm_gpio_set_dir_flags(&desc, GPIOD_IS_IN); | |
505 | + | |
506 | + /* GPIO9 */ | |
507 | + ret = dm_gpio_lookup_name("GPIO0_17", &desc); | |
508 | + if (ret) { | |
509 | + printf("%s lookup GPIO@0_17 failed ret = %d\n", __func__, ret); | |
510 | + return; | |
511 | + } | |
512 | + | |
513 | + ret = dm_gpio_request(&desc, "gpio9"); | |
514 | + if (ret) { | |
515 | + printf("%s request gpio9 failed ret = %d\n", __func__, ret); | |
516 | + return; | |
517 | + } | |
518 | + | |
519 | + dm_gpio_set_dir_flags(&desc, GPIOD_IS_IN); | |
520 | + | |
521 | + /* GPIO10 */ | |
522 | + ret = dm_gpio_lookup_name("GPIO4_02", &desc); | |
523 | + if (ret) { | |
524 | + printf("%s lookup GPIO@4_02 failed ret = %d\n", __func__, ret); | |
525 | + return; | |
526 | + } | |
527 | + | |
528 | + ret = dm_gpio_request(&desc, "gpio10"); | |
529 | + if (ret) { | |
530 | + printf("%s request gpio10 failed ret = %d\n", __func__, ret); | |
531 | + return; | |
532 | + } | |
533 | + | |
534 | + dm_gpio_set_dir_flags(&desc, GPIOD_IS_IN); | |
535 | + | |
536 | + /* GPIO11 */ | |
537 | + ret = dm_gpio_lookup_name("GPIO4_01", &desc); | |
538 | + if (ret) { | |
539 | + printf("%s lookup GPIO@4_01 failed ret = %d\n", __func__, ret); | |
540 | + return; | |
541 | + } | |
542 | + | |
543 | + ret = dm_gpio_request(&desc, "gpio11"); | |
544 | + if (ret) { | |
545 | + printf("%s request gpio11 failed ret = %d\n", __func__, ret); | |
546 | + return; | |
547 | + } | |
548 | + | |
549 | + dm_gpio_set_dir_flags(&desc, GPIOD_IS_IN); | |
550 | + | |
551 | + /* Set LID# pin as Input Pin */ | |
552 | + ret = dm_gpio_lookup_name("GPIO0_31", &desc); | |
553 | + if (ret) { | |
554 | + printf("%s lookup GPIO@0_31 failed ret = %d\n", __func__, ret); | |
555 | + return; | |
556 | + } | |
557 | + | |
558 | + ret = dm_gpio_request(&desc, "lid"); | |
559 | + if (ret) { | |
560 | + printf("%s request lid failed ret = %d\n", __func__, ret); | |
561 | + return; | |
562 | + } | |
563 | + | |
564 | + dm_gpio_set_dir_flags(&desc, GPIOD_IS_IN); | |
565 | + | |
566 | + /* Set SLEEP# pin as Input Pin */ | |
567 | + ret = dm_gpio_lookup_name("GPIO1_00", &desc); | |
568 | + if (ret) { | |
569 | + printf("%s lookup GPIO@1_00 failed ret = %d\n", __func__, ret); | |
570 | + return; | |
571 | + } | |
572 | + | |
573 | + ret = dm_gpio_request(&desc, "sleep"); | |
574 | + if (ret) { | |
575 | + printf("%s request sleep failed ret = %d\n", __func__, ret); | |
576 | + return; | |
577 | + } | |
578 | + | |
579 | + dm_gpio_set_dir_flags(&desc, GPIOD_IS_IN); | |
580 | + | |
581 | + /* Set CHARGING# pin as Input Pin */ | |
582 | + ret = dm_gpio_lookup_name("GPIO1_01", &desc); | |
583 | + if (ret) { | |
584 | + printf("%s lookup GPIO@1_01 failed ret = %d\n", __func__, ret); | |
585 | + return; | |
586 | + } | |
587 | + | |
588 | + ret = dm_gpio_request(&desc, "charging"); | |
589 | + if (ret) { | |
590 | + printf("%s request charging failed ret = %d\n", __func__, ret); | |
591 | + return; | |
592 | + } | |
593 | + | |
594 | + dm_gpio_set_dir_flags(&desc, GPIOD_IS_IN); | |
595 | + | |
596 | + /* Set CHARGER_PRSNT# pin as Input Pin */ | |
597 | + ret = dm_gpio_lookup_name("GPIO1_02", &desc); | |
598 | + if (ret) { | |
599 | + printf("%s lookup GPIO@1_02 failed ret = %d\n", __func__, ret); | |
600 | + return; | |
601 | + } | |
602 | + | |
603 | + ret = dm_gpio_request(&desc, "charger_prsnt"); | |
604 | + if (ret) { | |
605 | + printf("%s request charger_prsnt failed ret = %d\n", __func__, ret); | |
606 | + return; | |
607 | + } | |
608 | + | |
609 | + dm_gpio_set_dir_flags(&desc, GPIOD_IS_IN); | |
610 | + | |
611 | + /* Set BATLOW# pin as Input Pin */ | |
612 | + ret = dm_gpio_lookup_name("GPIO1_03", &desc); | |
613 | + if (ret) { | |
614 | + printf("%s lookup GPIO@1_03 failed ret = %d\n", __func__, ret); | |
615 | + return; | |
616 | + } | |
617 | + | |
618 | + ret = dm_gpio_request(&desc, "batlow"); | |
619 | + if (ret) { | |
620 | + printf("%s request batlow failed ret = %d\n", __func__, ret); | |
621 | + return; | |
622 | + } | |
623 | + | |
624 | + dm_gpio_set_dir_flags(&desc, GPIOD_IS_IN); | |
625 | + | |
626 | + /* Set CARRIER_STBY# pin as Output High */ | |
627 | + ret = dm_gpio_lookup_name("GPIO0_30", &desc); | |
628 | + if (ret) { | |
629 | + printf("%s lookup GPIO@0_30 failed ret = %d\n", __func__, ret); | |
630 | + return; | |
631 | + } | |
632 | + | |
633 | + ret = dm_gpio_request(&desc, "carrier_stby"); | |
634 | + if (ret) { | |
635 | + printf("%s request carrier_stby failed ret = %d\n", __func__, ret); | |
636 | + return; | |
637 | + } | |
638 | + | |
639 | + dm_gpio_set_dir_flags(&desc, GPIOD_IS_OUT | GPIOD_IS_OUT_ACTIVE); | |
640 | + dm_gpio_set_value(&desc, 1); | |
641 | + | |
642 | + /* Set RGMII0_INT# pin as Input pin*/ | |
643 | + ret = dm_gpio_lookup_name("GPIO4_26", &desc); | |
644 | + if (ret) { | |
645 | + printf("%s lookup GPIO@4_26 failed ret = %d\n", __func__, ret); | |
646 | + return; | |
647 | + } | |
648 | + | |
649 | + ret = dm_gpio_request(&desc, "rgmii0_int"); | |
650 | + if (ret) { | |
651 | + printf("%s request rgmii0_int failed ret = %d\n", __func__, ret); | |
652 | + return; | |
653 | + } | |
654 | + | |
655 | + dm_gpio_set_dir_flags(&desc, GPIOD_IS_IN); | |
656 | + | |
657 | + /* Set RGMII1_INT# pin as Input pin*/ | |
658 | + ret = dm_gpio_lookup_name("GPIO4_25", &desc); | |
659 | + if (ret) { | |
660 | + printf("%s lookup GPIO@4_25 failed ret = %d\n", __func__, ret); | |
661 | + return; | |
662 | + } | |
663 | + | |
664 | + ret = dm_gpio_request(&desc, "rgmii1_int"); | |
665 | + if (ret) { | |
666 | + printf("%s request rgmii1_int failed ret = %d\n", __func__, ret); | |
667 | + return; | |
668 | + } | |
669 | + | |
670 | + dm_gpio_set_dir_flags(&desc, GPIOD_IS_IN); | |
671 | + | |
672 | + /* Turn on USB0 Power */ | |
673 | + ret = dm_gpio_lookup_name("GPIO4_03", &desc); | |
674 | + if (ret) { | |
675 | + printf("%s lookup GPIO@4_03 failed ret = %d\n", __func__, ret); | |
676 | + return; | |
677 | + } | |
678 | + | |
679 | + ret = dm_gpio_request(&desc, "usb_otg1_pwr_en"); | |
680 | + if (ret) { | |
681 | + printf("%s request usb_otg1_pwr_en failed ret = %d\n", __func__, ret); | |
682 | + return; | |
683 | + } | |
684 | + | |
685 | + dm_gpio_set_dir_flags(&desc, GPIOD_IS_OUT | GPIOD_IS_OUT_ACTIVE); | |
686 | + dm_gpio_set_value(&desc, 1); | |
687 | + | |
688 | + /* Turn on USB2514 Hub Power */ | |
689 | + ret = dm_gpio_lookup_name("GPIO4_04", &desc); | |
690 | + if (ret) { | |
691 | + printf("%s lookup GPIO@4_04 failed ret = %d\n", __func__, ret); | |
692 | + return; | |
693 | + } | |
694 | + | |
695 | + ret = dm_gpio_request(&desc, "usb_otg2_pwr_en"); | |
696 | + if (ret) { | |
697 | + printf("%s request usb_otg2_pwr_en failed ret = %d\n", __func__, ret); | |
698 | + return; | |
699 | + } | |
700 | + | |
701 | + dm_gpio_set_dir_flags(&desc, GPIOD_IS_OUT | GPIOD_IS_OUT_ACTIVE); | |
702 | + dm_gpio_set_value(&desc, 1); | |
703 | + | |
704 | + /* Set USB0 OC# pin as Input pin*/ | |
705 | + ret = dm_gpio_lookup_name("GPIO4_05", &desc); | |
706 | + if (ret) { | |
707 | + printf("%s lookup GPIO@4_05 failed ret = %d\n", __func__, ret); | |
708 | + return; | |
709 | + } | |
710 | + | |
711 | + ret = dm_gpio_request(&desc, "usb_otg1_oc"); | |
712 | + if (ret) { | |
713 | + printf("%s request usb_otg1_oc failed ret = %d\n", __func__, ret); | |
714 | + return; | |
715 | + } | |
716 | + | |
717 | + dm_gpio_set_dir_flags(&desc, GPIOD_IS_IN); | |
718 | + | |
719 | + /* Set USB1 OC# pin as Input pin*/ | |
720 | + ret = dm_gpio_lookup_name("GPIO4_06", &desc); | |
721 | + if (ret) { | |
722 | + printf("%s lookup GPIO@4_06 failed ret = %d\n", __func__, ret); | |
723 | + return; | |
724 | + } | |
725 | + | |
726 | + ret = dm_gpio_request(&desc, "usb_otg2_oc"); | |
727 | + if (ret) { | |
728 | + printf("%s request usb_otg2_oc failed ret = %d\n", __func__, ret); | |
729 | + return; | |
730 | + } | |
731 | + | |
732 | + dm_gpio_set_dir_flags(&desc, GPIOD_IS_IN); | |
733 | + | |
734 | + /* Set HDMI_SEL pin as Input pin*/ | |
735 | + ret = dm_gpio_lookup_name("GPIO0_05", &desc); | |
736 | + if (ret) { | |
737 | + printf("%s lookup GPIO@0_05 failed ret = %d\n", __func__, ret); | |
738 | + return; | |
739 | + } | |
740 | + | |
741 | + ret = dm_gpio_request(&desc, "hdmi_sel"); | |
742 | + if (ret) { | |
743 | + printf("%s request usb_hdmi_sel failed ret = %d\n", __func__, ret); | |
744 | + return; | |
745 | + } | |
746 | + | |
747 | + dm_gpio_set_dir_flags(&desc, GPIOD_IS_IN); | |
748 | + | |
749 | + /* Turn on eDP0 Power */ | |
750 | + ret = dm_gpio_lookup_name("GPIO1_22", &desc); | |
751 | + if (ret) { | |
752 | + printf("%s lookup GPIO@1_22 failed ret = %d\n", __func__, ret); | |
753 | + return; | |
754 | + } | |
755 | + | |
756 | + ret = dm_gpio_request(&desc, "edp0_en"); | |
757 | + if (ret) { | |
758 | + printf("%s request edp0_en failed ret = %d\n", __func__, ret); | |
759 | + return; | |
760 | + } | |
761 | + | |
762 | + dm_gpio_set_dir_flags(&desc, GPIOD_IS_OUT | GPIOD_IS_OUT_ACTIVE); | |
763 | + dm_gpio_set_value(&desc, 1); | |
764 | + | |
765 | + /* Turn off eDP1 Power */ | |
766 | + ret = dm_gpio_lookup_name("GPIO1_18", &desc); | |
767 | + if (ret) { | |
768 | + printf("%s lookup GPIO@1_18 failed ret = %d\n", __func__, ret); | |
769 | + return; | |
770 | + } | |
771 | + | |
772 | + ret = dm_gpio_request(&desc, "edp1_en"); | |
773 | + if (ret) { | |
774 | + printf("%s request edp1_en failed ret = %d\n", __func__, ret); | |
775 | + return; | |
776 | + } | |
777 | + | |
778 | + dm_gpio_set_dir_flags(&desc, GPIOD_IS_OUT); | |
779 | + dm_gpio_set_value(&desc, 0); | |
780 | + | |
781 | + /* Set eDP0_IRQ pin as Input Pin */ | |
782 | + ret = dm_gpio_lookup_name("GPIO1_23", &desc); | |
783 | + if (ret) { | |
784 | + printf("%s lookup GPIO@1_23 failed ret = %d\n", __func__, ret); | |
785 | + return; | |
786 | + } | |
787 | + | |
788 | + ret = dm_gpio_request(&desc, "edp0_irq"); | |
789 | + if (ret) { | |
790 | + printf("%s request edp0_irq failed ret = %d\n", __func__, ret); | |
791 | + return; | |
792 | + } | |
793 | + | |
794 | + dm_gpio_set_dir_flags(&desc, GPIOD_IS_IN); | |
795 | + | |
796 | + /* Set eDP1_IRQ pin as Input Pin */ | |
797 | + ret = dm_gpio_lookup_name("GPIO1_19", &desc); | |
798 | + if (ret) { | |
799 | + printf("%s lookup GPIO@1_19 failed ret = %d\n", __func__, ret); | |
800 | + return; | |
801 | + } | |
802 | + | |
803 | + ret = dm_gpio_request(&desc, "edp1_irq"); | |
804 | + if (ret) { | |
805 | + printf("%s request edp1_irq failed ret = %d\n", __func__, ret); | |
806 | + return; | |
807 | + } | |
808 | + | |
809 | + dm_gpio_set_dir_flags(&desc, GPIOD_IS_IN); | |
810 | + | |
811 | + /* Turn on LVDS0_VDD Power */ | |
812 | + ret = dm_gpio_lookup_name("GPIO1_05", &desc); | |
813 | + if (ret) { | |
814 | + printf("%s lookup GPIO@1_05 failed ret = %d\n", __func__, ret); | |
815 | + return; | |
816 | + } | |
817 | + | |
818 | + ret = dm_gpio_request(&desc, "lcd0_vdd_en"); | |
819 | + if (ret) { | |
820 | + printf("%s request lcd0_vdd_en failed ret = %d\n", __func__, ret); | |
821 | + return; | |
822 | + } | |
823 | + | |
824 | + dm_gpio_set_dir_flags(&desc, GPIOD_IS_OUT | GPIOD_IS_OUT_ACTIVE); | |
825 | + dm_gpio_set_value(&desc, 1); | |
826 | + | |
827 | + /* Turn on LVDS1_VDD Power */ | |
828 | + ret = dm_gpio_lookup_name("GPIO1_11", &desc); | |
829 | + if (ret) { | |
830 | + printf("%s lookup GPIO@1_11 failed ret = %d\n", __func__, ret); | |
831 | + return; | |
832 | + } | |
833 | + | |
834 | + ret = dm_gpio_request(&desc, "lcd1_vdd_en"); | |
835 | + if (ret) { | |
836 | + printf("%s request lcd1_vdd_en failed ret = %d\n", __func__, ret); | |
837 | + return; | |
838 | + } | |
839 | + | |
840 | + dm_gpio_set_dir_flags(&desc, GPIOD_IS_OUT | GPIOD_IS_OUT_ACTIVE); | |
841 | + dm_gpio_set_value(&desc, 1); | |
842 | + | |
843 | + /* Turn on LVDS0 Backlight Power */ | |
844 | + ret = dm_gpio_lookup_name("GPIO1_06", &desc); | |
845 | + if (ret) { | |
846 | + printf("%s lookup GPIO@1_06 failed ret = %d\n", __func__, ret); | |
847 | + return; | |
848 | + } | |
849 | + | |
850 | + ret = dm_gpio_request(&desc, "lcd0_bklt_en"); | |
851 | + if (ret) { | |
852 | + printf("%s request lcd0_bklt_en failed ret = %d\n", __func__, ret); | |
853 | + return; | |
854 | + } | |
855 | + | |
856 | + dm_gpio_set_dir_flags(&desc, GPIOD_IS_OUT | GPIOD_IS_OUT_ACTIVE); | |
857 | + dm_gpio_set_value(&desc, 1); | |
858 | + | |
859 | + /* Turn on LVDS1 Backlight Power */ | |
860 | + ret = dm_gpio_lookup_name("GPIO1_07", &desc); | |
861 | + if (ret) { | |
862 | + printf("%s lookup GPIO@1_07 failed ret = %d\n", __func__, ret); | |
863 | + return; | |
864 | + } | |
865 | + | |
866 | + ret = dm_gpio_request(&desc, "lcd1_bklt_en"); | |
867 | + if (ret) { | |
868 | + printf("%s request lcd1_bklt_en failed ret = %d\n", __func__, ret); | |
869 | + return; | |
870 | + } | |
871 | + | |
872 | + dm_gpio_set_dir_flags(&desc, GPIOD_IS_OUT | GPIOD_IS_OUT_ACTIVE); | |
873 | + dm_gpio_set_value(&desc, 1); | |
874 | + | |
875 | + /* Set WDT_TIME_OUT# pin as Output High */ | |
876 | + ret = dm_gpio_lookup_name("GPIO2_15", &desc); | |
877 | + if (ret) { | |
878 | + printf("%s lookup GPIO@2_15 failed ret = %d\n", __func__, ret); | |
879 | + return; | |
880 | + } | |
881 | + | |
882 | + ret = dm_gpio_request(&desc, "wdt_time_out"); | |
883 | + if (ret) { | |
884 | + printf("%s request wdt_time_out failed ret = %d\n", __func__, ret); | |
885 | + return; | |
886 | + } | |
887 | + | |
888 | + dm_gpio_set_dir_flags(&desc, GPIOD_IS_OUT | GPIOD_IS_OUT_ACTIVE); | |
889 | + dm_gpio_set_value(&desc, 1); | |
890 | +} | |
891 | + | |
892 | +int checkboard(void) | |
893 | +{ | |
894 | + puts("Board: SMARC-iMX8QM CPU Module\n"); | |
895 | + | |
896 | + print_bootinfo(); | |
897 | + | |
898 | + return 0; | |
899 | +} | |
900 | + | |
901 | +#ifdef CONFIG_USB | |
902 | + | |
903 | +#ifdef CONFIG_USB_TCPC | |
904 | +struct gpio_desc type_sel_desc; | |
905 | + | |
906 | +static iomux_cfg_t ss_mux_gpio[] = { | |
907 | + SC_P_USB_SS3_TC3 | MUX_MODE_ALT(3) | MUX_PAD_CTRL(GPIO_PAD_CTRL), | |
908 | + SC_P_QSPI1A_SS0_B | MUX_MODE_ALT(3) | MUX_PAD_CTRL(GPIO_PAD_CTRL), | |
909 | +}; | |
910 | + | |
911 | +struct tcpc_port port; | |
912 | +struct tcpc_port_config port_config = { | |
913 | + .i2c_bus = 0, | |
914 | + .addr = 0x51, | |
915 | + .port_type = TYPEC_PORT_DFP, | |
916 | +}; | |
917 | + | |
918 | +void ss_mux_select(enum typec_cc_polarity pol) | |
919 | +{ | |
920 | + if (pol == TYPEC_POLARITY_CC1) | |
921 | + dm_gpio_set_value(&type_sel_desc, 0); | |
922 | + else | |
923 | + dm_gpio_set_value(&type_sel_desc, 1); | |
924 | +} | |
925 | + | |
926 | +static void setup_typec(void) | |
927 | +{ | |
928 | + int ret; | |
929 | + struct gpio_desc typec_en_desc; | |
930 | + | |
931 | + imx8_iomux_setup_multiple_pads(ss_mux_gpio, ARRAY_SIZE(ss_mux_gpio)); | |
932 | + ret = dm_gpio_lookup_name("GPIO4_6", &type_sel_desc); | |
933 | + if (ret) { | |
934 | + printf("%s lookup GPIO4_6 failed ret = %d\n", __func__, ret); | |
935 | + return; | |
936 | + } | |
937 | + | |
938 | + ret = dm_gpio_request(&type_sel_desc, "typec_sel"); | |
939 | + if (ret) { | |
940 | + printf("%s request typec_sel failed ret = %d\n", __func__, ret); | |
941 | + return; | |
942 | + } | |
943 | + | |
944 | + dm_gpio_set_dir_flags(&type_sel_desc, GPIOD_IS_OUT); | |
945 | + | |
946 | + ret = dm_gpio_lookup_name("GPIO4_19", &typec_en_desc); | |
947 | + if (ret) { | |
948 | + printf("%s lookup GPIO4_19 failed ret = %d\n", __func__, ret); | |
949 | + return; | |
950 | + } | |
951 | + | |
952 | + ret = dm_gpio_request(&typec_en_desc, "typec_en"); | |
953 | + if (ret) { | |
954 | + printf("%s request typec_en failed ret = %d\n", __func__, ret); | |
955 | + return; | |
956 | + } | |
957 | + | |
958 | + /* Enable SS MUX */ | |
959 | + dm_gpio_set_dir_flags(&typec_en_desc, GPIOD_IS_OUT | GPIOD_IS_OUT_ACTIVE); | |
960 | + | |
961 | + tcpc_init(&port, port_config, &ss_mux_select); | |
962 | +} | |
963 | +#endif | |
964 | + | |
965 | +int board_usb_init(int index, enum usb_init_type init) | |
966 | +{ | |
967 | + int ret = 0; | |
968 | + | |
969 | + if (index == 1) { | |
970 | + if (init == USB_INIT_HOST) { | |
971 | +#ifdef CONFIG_USB_TCPC | |
972 | + ret = tcpc_setup_dfp_mode(&port); | |
973 | +#endif | |
974 | +#ifdef CONFIG_USB_CDNS3_GADGET | |
975 | + } else { | |
976 | +#ifdef CONFIG_USB_TCPC | |
977 | + ret = tcpc_setup_ufp_mode(&port); | |
978 | + printf("%d setufp mode %d\n", index, ret); | |
979 | +#endif | |
980 | +#endif | |
981 | + } | |
982 | + } | |
983 | + | |
984 | + return ret; | |
985 | + | |
986 | +} | |
987 | + | |
988 | +int board_usb_cleanup(int index, enum usb_init_type init) | |
989 | +{ | |
990 | + int ret = 0; | |
991 | + | |
992 | + if (index == 1) { | |
993 | + if (init == USB_INIT_HOST) { | |
994 | +#ifdef CONFIG_USB_TCPC | |
995 | + ret = tcpc_disable_src_vbus(&port); | |
996 | +#endif | |
997 | + } | |
998 | + } | |
999 | + | |
1000 | + return ret; | |
1001 | +} | |
1002 | +#endif | |
1003 | + | |
1004 | +int board_init(void) | |
1005 | +{ | |
1006 | + board_gpio_init(); | |
1007 | + | |
1008 | + | |
1009 | +#if defined(CONFIG_USB) && defined(CONFIG_USB_TCPC) | |
1010 | + setup_typec(); | |
1011 | +#endif | |
1012 | + | |
1013 | +#ifdef CONFIG_SNVS_SEC_SC_AUTO | |
1014 | + { | |
1015 | + int ret = snvs_security_sc_init(); | |
1016 | + | |
1017 | + if (ret) | |
1018 | + return ret; | |
1019 | + } | |
1020 | +#endif | |
1021 | + | |
1022 | + return 0; | |
1023 | +} | |
1024 | + | |
1025 | +/* | |
1026 | + * Board specific reset that is system reset. | |
1027 | + */ | |
1028 | +void reset_cpu(ulong addr) | |
1029 | +{ | |
1030 | + sc_pm_reboot(-1, SC_PM_RESET_TYPE_COLD); | |
1031 | + while(1); | |
1032 | +} | |
1033 | + | |
1034 | +#ifdef CONFIG_OF_BOARD_SETUP | |
1035 | +int ft_board_setup(void *blob, bd_t *bd) | |
1036 | +{ | |
1037 | + return 0; | |
1038 | +} | |
1039 | +#endif | |
1040 | + | |
1041 | +int board_mmc_get_env_dev(int devno) | |
1042 | +{ | |
1043 | + return devno; | |
1044 | +} | |
1045 | + | |
1046 | +int mmc_map_to_kernel_blk(int dev_no) | |
1047 | +{ | |
1048 | + return dev_no; | |
1049 | +} | |
1050 | + | |
1051 | +extern uint32_t _end_ofs; | |
1052 | +int board_late_init(void) | |
1053 | +{ | |
1054 | + | |
1055 | + puts("---------Embedian SMARC-iMX8QM------------\n"); | |
1056 | + /* Read Module Information from on module EEPROM and pass | |
1057 | + * mac address to kernel | |
1058 | + */ | |
1059 | + struct gpio_desc desc; | |
1060 | + struct udevice *dev; | |
1061 | + char bootmode = 0; | |
1062 | + int ret; | |
1063 | + u8 name[8]; | |
1064 | + u8 serial[12]; | |
1065 | + u8 revision[4]; | |
1066 | + u8 mac[6]; | |
1067 | + u8 mac1[6]; | |
1068 | + | |
1069 | + ret = i2c_get_chip_for_busnum(3, 0x50, 2, &dev); | |
1070 | + if (ret) { | |
1071 | + debug("failed to get eeprom\n"); | |
1072 | + return 0; | |
1073 | + } | |
1074 | + | |
1075 | + /* Board ID */ | |
1076 | + ret = dm_i2c_read(dev, 0x4, name, 8); | |
1077 | + if (ret) { | |
1078 | + debug("failed to read board ID from EEPROM\n"); | |
1079 | + return 0; | |
1080 | + } | |
1081 | + printf(" Board ID: %c%c%c%c%c%c%c%c\n", | |
1082 | + name[0], name[1], name[2], name[3], name[4], name[5], name[6], name[7]); | |
1083 | + | |
1084 | + /* Board Hardware Revision */ | |
1085 | + ret = dm_i2c_read(dev, 0xc, revision, 4); | |
1086 | + if (ret) { | |
1087 | + debug("failed to read hardware revison from EEPROM\n"); | |
1088 | + return 0; | |
1089 | + } | |
1090 | + printf(" Hardware Revision: %c%c%c%c\n", | |
1091 | + revision[0], revision[1], revision[2], revision[3]); | |
1092 | + | |
1093 | + /* Serial number */ | |
1094 | + ret = dm_i2c_read(dev, 0x10, serial, 12); | |
1095 | + if (ret) { | |
1096 | + debug("failed to read srial number from EEPROM\n"); | |
1097 | + return 0; | |
1098 | + } | |
1099 | + printf(" Serial Number#: %c%c%c%c%c%c%c%c%c%c%c%c\n", | |
1100 | + serial[0], serial[1], serial[2], serial[3], serial[4], serial[5], serial[6], serial[7], serial[8], serial[9], serial[10], serial[11]); | |
1101 | + | |
1102 | + /*MAC1 address*/ | |
1103 | + ret = dm_i2c_read(dev, 0x3c, mac, 6); | |
1104 | + if (ret) { | |
1105 | + debug("failed to read eth0 mac address from EEPROM\n"); | |
1106 | + return 0; | |
1107 | + } | |
1108 | + | |
1109 | + if (is_valid_ethaddr(mac)) | |
1110 | + printf(" MAC Address: %02x:%02x:%02x:%02x:%02x:%02x\n", | |
1111 | + mac[0], mac[1], mac[2], mac[3], mac[4], mac[5]); | |
1112 | + eth_env_set_enetaddr("ethaddr", mac); | |
1113 | + | |
1114 | + /* MAC2 address */ | |
1115 | + ret = dm_i2c_read(dev, 0x42, mac1, 6); | |
1116 | + if (ret) { | |
1117 | + debug("failed to read eth1 mac address from EEPROM\n"); | |
1118 | + return 0; | |
1119 | + } | |
1120 | + | |
1121 | + if (is_valid_ethaddr(mac1)) | |
1122 | + printf(" MAC1 Address: %02x:%02x:%02x:%02x:%02x:%02x\n", | |
1123 | + mac1[0], mac1[1], mac1[2], mac1[3], mac1[4], mac1[5]); | |
1124 | + eth_env_set_enetaddr("eth1addr", mac1); | |
1125 | + puts("-----------------------------------------\n"); | |
1126 | + | |
1127 | +#ifndef CONFIG_ANDROID_AUTO_SUPPORT | |
1128 | + build_info(); | |
1129 | +#endif | |
1130 | + | |
1131 | +#ifdef CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG | |
1132 | + env_set("board_name", "SMARC"); | |
1133 | + env_set("board_rev", "iMX8QM"); | |
1134 | +#endif | |
1135 | + | |
1136 | + env_set("sec_boot", "no"); | |
1137 | +#ifdef CONFIG_AHAB_BOOT | |
1138 | + env_set("sec_boot", "yes"); | |
1139 | +#endif | |
1140 | + | |
1141 | +#ifdef CONFIG_ENV_IS_IN_MMC | |
1142 | + board_late_mmc_env_init(); | |
1143 | +#endif | |
1144 | + | |
1145 | +#if defined(CONFIG_IMX_LOAD_HDMI_FIMRWARE_RX) || defined(CONFIG_IMX_LOAD_HDMI_FIMRWARE_TX) | |
1146 | + char *end_of_uboot; | |
1147 | + char command[256]; | |
1148 | + end_of_uboot = (char *)(ulong)(CONFIG_SYS_TEXT_BASE + _end_ofs + fdt_totalsize(gd->fdt_blob)); | |
1149 | + end_of_uboot += 9; | |
1150 | + | |
1151 | + /* load hdmitxfw.bin and hdmirxfw.bin*/ | |
1152 | + memcpy((void *)IMX_HDMI_FIRMWARE_LOAD_ADDR, end_of_uboot, | |
1153 | + IMX_HDMITX_FIRMWARE_SIZE + IMX_HDMIRX_FIRMWARE_SIZE); | |
1154 | + | |
1155 | +#ifdef CONFIG_IMX_LOAD_HDMI_FIMRWARE_TX | |
1156 | + sprintf(command, "hdp load 0x%x", IMX_HDMI_FIRMWARE_LOAD_ADDR); | |
1157 | + run_command(command, 0); | |
1158 | +#endif | |
1159 | +#ifdef CONFIG_IMX_LOAD_HDMI_FIMRWARE_RX | |
1160 | + sprintf(command, "hdprx load 0x%x", | |
1161 | + IMX_HDMI_FIRMWARE_LOAD_ADDR + IMX_HDMITX_FIRMWARE_SIZE); | |
1162 | + run_command(command, 0); | |
1163 | +#endif | |
1164 | +#endif /* CONFIG_IMX_LOAD_HDMI_FIMRWARE_RX || CONFIG_IMX_LOAD_HDMI_FIMRWARE_TX */ | |
1165 | + | |
1166 | + /* BOOT_SEL0 */ | |
1167 | + ret = dm_gpio_lookup_name("GPIO3_18", &desc); | |
1168 | + if (ret) { | |
1169 | + printf("%s lookup GPIO@3_18 failed ret = %d\n", __func__, ret); | |
1170 | + return 0; | |
1171 | + } | |
1172 | + | |
1173 | + ret = dm_gpio_request(&desc, "bootsel0"); | |
1174 | + if (ret) { | |
1175 | + printf("%s request bootsel0 failed ret = %d\n", __func__, ret); | |
1176 | + return 0; | |
1177 | + } | |
1178 | + | |
1179 | + dm_gpio_set_dir_flags(&desc, GPIOD_IS_IN); | |
1180 | + bootmode |= (dm_gpio_get_value(&desc) ? 1 : 0) << 0; | |
1181 | + | |
1182 | + /* BOOT_SEL1 */ | |
1183 | + ret = dm_gpio_lookup_name("GPIO3_19", &desc); | |
1184 | + if (ret) { | |
1185 | + printf("%s lookup GPIO@3_19 failed ret = %d\n", __func__, ret); | |
1186 | + return 0; | |
1187 | + } | |
1188 | + | |
1189 | + ret = dm_gpio_request(&desc, "bootsel1"); | |
1190 | + if (ret) { | |
1191 | + printf("%s request bootsel1 failed ret = %d\n", __func__, ret); | |
1192 | + return 0; | |
1193 | + } | |
1194 | + | |
1195 | + dm_gpio_set_dir_flags(&desc, GPIOD_IS_IN); | |
1196 | + bootmode |= (dm_gpio_get_value(&desc) ? 1 : 0) << 1; | |
1197 | + | |
1198 | + /* BOOT_SEL2 */ | |
1199 | + ret = dm_gpio_lookup_name("GPIO3_20", &desc); | |
1200 | + if (ret) { | |
1201 | + printf("%s lookup GPIO@3_20 failed ret = %d\n", __func__, ret); | |
1202 | + return 0; | |
1203 | + } | |
1204 | + | |
1205 | + ret = dm_gpio_request(&desc, "bootsel2"); | |
1206 | + if (ret) { | |
1207 | + printf("%s request bootsel2 failed ret = %d\n", __func__, ret); | |
1208 | + return 0; | |
1209 | + } | |
1210 | + | |
1211 | + dm_gpio_set_dir_flags(&desc, GPIOD_IS_IN); | |
1212 | + bootmode |= (dm_gpio_get_value(&desc) ? 1 : 0) << 2; | |
1213 | + | |
1214 | + if (bootmode == 0) { | |
1215 | + puts("BOOT_SEL Detected: OFF OFF OFF, Boot from Carrier SATA is not supported...\n"); | |
1216 | + hang(); | |
1217 | + } else if (bootmode == 4) { | |
1218 | + puts("BOOT_SEL Detected: OFF OFF ON, Load Image from USB0...\n"); | |
1219 | + env_set_ulong("usb dev", 1); | |
1220 | + env_set("bootcmd", "usb start; run loadusbbootenv; run importusbbootenv; loadusbimage; run usbboot;"); | |
1221 | + } else if (bootmode == 2) { | |
1222 | + puts("BOOT_SEL Detected: OFF ON OFF, Boot from Carrier eSPI is not supported...\n"); | |
1223 | + hang(); | |
1224 | + } else if (bootmode == 1) { | |
1225 | + puts("BOOT_SEL Detected: ON OFF OFF, Load Image from Carrier SD Card...\n"); | |
1226 | + env_set_ulong("mmcdev", 1); | |
1227 | + env_set("bootcmd", "mmc rescan; run loadbootenv; run importbootenv; run loadimage; run mmcboot;"); | |
1228 | + } else if (bootmode == 6) { | |
1229 | + puts("BOOT_SEL Detected: OFF ON ON, Load Image from Module eMMC Flash...\n"); | |
1230 | + env_set_ulong("mmcdev", 0); | |
1231 | + env_set("bootcmd", "mmc rescan; run loadbootenv; run importbootenv; run loadimage; run mmcboot;"); | |
1232 | + } else if (bootmode == 5) { | |
1233 | + puts("BOOT_SEL Detected: ON OFF ON, Load zImage from GBE...\n"); | |
1234 | + env_set("bootcmd", "run netboot;"); | |
1235 | + } else if (bootmode == 3) { | |
1236 | + puts("BOOT_SEL Detected: ON ON OFF, Boot from Carrier SPI is not supported...\n"); | |
1237 | + hang(); | |
1238 | + } else if (bootmode == 7) { | |
1239 | + puts("BOOT_SEL Detected: ON ON ON, Boot from Module SPI is not supported...\n"); | |
1240 | + hang(); | |
1241 | + } else { | |
1242 | + puts("unsupported boot devices\n"); | |
1243 | + hang(); | |
1244 | + } | |
1245 | + | |
1246 | + return 0; | |
1247 | +} | |
1248 | + | |
1249 | +#ifdef CONFIG_FSL_FASTBOOT | |
1250 | +#ifdef CONFIG_ANDROID_RECOVERY | |
1251 | +int is_recovery_key_pressing(void) | |
1252 | +{ | |
1253 | + return 0; /*TODO*/ | |
1254 | +} | |
1255 | +#endif /*CONFIG_ANDROID_RECOVERY*/ | |
1256 | +#endif /*CONFIG_FSL_FASTBOOT*/ | |
1257 | + | |
1258 | +#ifdef CONFIG_ANDROID_SUPPORT | |
1259 | +bool is_power_key_pressed(void) { | |
1260 | + sc_bool_t status = SC_FALSE; | |
1261 | + | |
1262 | + sc_misc_get_button_status(-1, &status); | |
1263 | + return (bool)status; | |
1264 | +} | |
1265 | +#endif |
board/embedian/smarcimx8qm/spl.c
1 | +/* | |
2 | + * Copyright 2018 NXP | |
3 | + * | |
4 | + * SPDX-License-Identifier: GPL-2.0+ | |
5 | + */ | |
6 | + | |
7 | +#include <common.h> | |
8 | +#include <dm.h> | |
9 | +#include <spl.h> | |
10 | +#include <dm/uclass.h> | |
11 | +#include <dm/device.h> | |
12 | +#include <dm/uclass-internal.h> | |
13 | +#include <dm/device-internal.h> | |
14 | +#include <dm/lists.h> | |
15 | +#include <bootm.h> | |
16 | + | |
17 | +DECLARE_GLOBAL_DATA_PTR; | |
18 | + | |
19 | +void spl_board_init(void) | |
20 | +{ | |
21 | + struct udevice *dev; | |
22 | + | |
23 | + uclass_find_first_device(UCLASS_MISC, &dev); | |
24 | + | |
25 | + for (; dev; uclass_find_next_device(&dev)) { | |
26 | + if (device_probe(dev)) | |
27 | + continue; | |
28 | + } | |
29 | + | |
30 | + board_early_init_f(); | |
31 | + | |
32 | + timer_init(); | |
33 | + | |
34 | +#ifdef CONFIG_SPL_SERIAL_SUPPORT | |
35 | + preloader_console_init(); | |
36 | + | |
37 | + puts("Normal Boot\n"); | |
38 | +#endif | |
39 | + | |
40 | +} | |
41 | + | |
42 | +#ifdef CONFIG_SPL_LOAD_FIT | |
43 | +int board_fit_config_name_match(const char *name) | |
44 | +{ | |
45 | + /* Just empty function now - can't decide what to choose */ | |
46 | + debug("%s: %s\n", __func__, name); | |
47 | + | |
48 | + return 0; | |
49 | +} | |
50 | +#endif | |
51 | + | |
52 | +void board_init_f(ulong dummy) | |
53 | +{ | |
54 | + /* Clear the BSS. */ | |
55 | + memset(__bss_start, 0, __bss_end - __bss_start); | |
56 | + | |
57 | + arch_cpu_init(); | |
58 | + | |
59 | + board_init_r(NULL, 0); | |
60 | +} |
board/embedian/smarcimx8qm/uboot-container.cfg
1 | +/* SPDX-License-Identifier: GPL-2.0+ */ | |
2 | +/* | |
3 | + * Copyright 2019 NXP | |
4 | + */ | |
5 | + | |
6 | +#define __ASSEMBLY__ | |
7 | + | |
8 | +/* This file is to create a container image could be loaded by SPL */ | |
9 | +BOOT_FROM SD 0x400 | |
10 | +SOC_TYPE IMX8QM | |
11 | +CONTAINER | |
12 | +IMAGE A35 bl31.bin 0x80000000 | |
13 | +IMAGE A35 u-boot.bin CONFIG_SYS_TEXT_BASE |
configs/smarcimx8qm_4g_ser0_defconfig
1 | +CONFIG_ARM=y | |
2 | +CONFIG_SPL_SYS_ICACHE_OFF=y | |
3 | +CONFIG_SPL_SYS_DCACHE_OFF=y | |
4 | +CONFIG_ARCH_IMX8=y | |
5 | +CONFIG_SYS_TEXT_BASE=0x80020000 | |
6 | +CONFIG_SPL_GPIO_SUPPORT=y | |
7 | +CONFIG_SPL_LIBCOMMON_SUPPORT=y | |
8 | +CONFIG_SPL_LIBGENERIC_SUPPORT=y | |
9 | +CONFIG_SYS_MALLOC_F_LEN=0x8000 | |
10 | +CONFIG_ENV_SIZE=0x2000 | |
11 | +CONFIG_ENV_OFFSET=0x400000 | |
12 | +CONFIG_DM_GPIO=y | |
13 | +CONFIG_SPL_LOAD_IMX_CONTAINER=y | |
14 | +CONFIG_IMX_CONTAINER_CFG="board/embedian/smarcimx8qm/uboot-container.cfg,4GB_LPDDR4" | |
15 | +CONFIG_TARGET_SMARCIMX8QM=y | |
16 | +CONFIG_SPL_MMC_SUPPORT=y | |
17 | +CONFIG_SPL_EFI_PARTITION=n | |
18 | +CONFIG_SPL_DOS_PARTITION=n | |
19 | +CONFIG_SPL_DM_SEQ_ALIAS=y | |
20 | +CONFIG_SPL_SERIAL_SUPPORT=y | |
21 | +CONFIG_SPL_DRIVERS_MISC_SUPPORT=y | |
22 | +CONFIG_USE_TINY_PRINTF=y | |
23 | +CONFIG_NR_DRAM_BANKS=4 | |
24 | +CONFIG_SPL=y | |
25 | +CONFIG_PANIC_HANG=y | |
26 | +CONFIG_SPL_TEXT_BASE=0x100000 | |
27 | +CONFIG_OF_SYSTEM_SETUP=y | |
28 | +CONFIG_SYS_EXTRA_OPTIONS="IMX_CONFIG=board/embedian/smarcimx8qm/imximage.cfg" | |
29 | +CONFIG_CONSOLE_SER0=y | |
30 | +CONFIG_BOOTDELAY=1 | |
31 | +CONFIG_LOG=y | |
32 | +CONFIG_SPL_BOARD_INIT=y | |
33 | +# CONFIG_SPL_SYS_MALLOC_SIMPLE is not set | |
34 | +CONFIG_SPL_SEPARATE_BSS=y | |
35 | +CONFIG_SPL_POWER_SUPPORT=y | |
36 | +CONFIG_SPL_POWER_DOMAIN=y | |
37 | +CONFIG_SPL_WATCHDOG_SUPPORT=y | |
38 | +CONFIG_HUSH_PARSER=y | |
39 | +CONFIG_CMD_CPU=y | |
40 | +CONFIG_SYS_PROMPT="u-boot$ " | |
41 | +# CONFIG_BOOTM_NETBSD is not set | |
42 | +CONFIG_CMD_IMPORTENV=y | |
43 | +CONFIG_CMD_CLK=y | |
44 | +CONFIG_CMD_DM=y | |
45 | +CONFIG_CMD_GPIO=y | |
46 | +CONFIG_CMD_I2C=y | |
47 | +CONFIG_CMD_MMC=y | |
48 | +CONFIG_CMD_DHCP=y | |
49 | +CONFIG_CMD_MII=y | |
50 | +CONFIG_CMD_PING=y | |
51 | +CONFIG_CMD_CACHE=y | |
52 | +CONFIG_CMD_EXT2=y | |
53 | +CONFIG_CMD_EXT4=y | |
54 | +CONFIG_CMD_EXT4_WRITE=y | |
55 | +CONFIG_CMD_FAT=y | |
56 | +CONFIG_CMD_GPT=y | |
57 | +CONFIG_CMD_TIME=y | |
58 | +CONFIG_SPL_OF_CONTROL=y | |
59 | +CONFIG_DEFAULT_DEVICE_TREE="fsl-smarcimx8qm" | |
60 | +CONFIG_DEFAULT_FDT_FILE="imx8qm-smarc.dtb" | |
61 | +CONFIG_ENV_IS_IN_MMC=y | |
62 | +CONFIG_SYS_RELOC_GD_ENV_ADDR=y | |
63 | +CONFIG_NET_RANDOM_ETHADDR=y | |
64 | +CONFIG_SPL_DM=y | |
65 | +CONFIG_SPL_CLK=y | |
66 | +CONFIG_CLK_IMX8=y | |
67 | +CONFIG_CPU=y | |
68 | +CONFIG_MXC_GPIO=y | |
69 | +#CONFIG_DM_PCA953X=y | |
70 | +CONFIG_DM_I2C=y | |
71 | +CONFIG_SYS_I2C_IMX_LPI2C=y | |
72 | +CONFIG_I2C_MUX=y | |
73 | +#CONFIG_I2C_MUX_PCA954x=y | |
74 | +CONFIG_MISC=y | |
75 | +CONFIG_DM_MMC=y | |
76 | +CONFIG_SUPPORT_EMMC_BOOT=y | |
77 | +CONFIG_FSL_USDHC=y | |
78 | +CONFIG_MMC_IO_VOLTAGE=y | |
79 | +CONFIG_MMC_UHS_SUPPORT=y | |
80 | +CONFIG_MMC_HS400_SUPPORT=y | |
81 | +CONFIG_EFI_PARTITION=y | |
82 | +CONFIG_PHYLIB=y | |
83 | +CONFIG_PHY_ADDR_ENABLE=y | |
84 | +CONFIG_PHY_ATHEROS=y | |
85 | +CONFIG_DM_ETH=y | |
86 | +CONFIG_PHY_GIGE=y | |
87 | +CONFIG_FEC_MXC_SHARE_MDIO=y | |
88 | +CONFIG_FEC_MXC_MDIO_BASE=0x5B040000 | |
89 | +CONFIG_FEC_MXC=y | |
90 | +CONFIG_MII=y | |
91 | +CONFIG_PINCTRL=y | |
92 | +CONFIG_SPL_PINCTRL=y | |
93 | +CONFIG_PINCTRL_IMX8=y | |
94 | +CONFIG_POWER_DOMAIN=y | |
95 | +CONFIG_IMX8_POWER_DOMAIN=y | |
96 | +CONFIG_DM_REGULATOR=y | |
97 | +CONFIG_SPL_DM_REGULATOR=y | |
98 | +CONFIG_DM_REGULATOR_FIXED=y | |
99 | +CONFIG_DM_REGULATOR_GPIO=y | |
100 | +CONFIG_SPL_DM_REGULATOR_FIXED=y | |
101 | +CONFIG_DM_SERIAL=y | |
102 | +CONFIG_FSL_LPUART=y | |
103 | +CONFIG_SPL_TINY_MEMSET=y | |
104 | +# CONFIG_EFI_LOADER is not set | |
105 | + | |
106 | +CONFIG_CMD_FUSE=y | |
107 | +CONFIG_CMD_MEMTEST=y | |
108 | + | |
109 | +CONFIG_IMX_BOOTAUX=y | |
110 | + | |
111 | +CONFIG_DM_THERMAL=y | |
112 | +CONFIG_IMX_SCU_THERMAL=y | |
113 | +CONFIG_SPI=y | |
114 | +CONFIG_FSL_FSPI=y | |
115 | +CONFIG_DM_SPI=y | |
116 | +CONFIG_DM_SPI_FLASH=y | |
117 | +CONFIG_SPI_FLASH=y | |
118 | +CONFIG_SPI_FLASH_MACRONIX=y | |
119 | +CONFIG_CMD_SF=y | |
120 | +CONFIG_SF_DEFAULT_BUS=0 | |
121 | +CONFIG_SF_DEFAULT_CS=0 | |
122 | +CONFIG_SF_DEFAULT_SPEED=40000000 | |
123 | +CONFIG_SF_DEFAULT_MODE=0 | |
124 | + | |
125 | +CONFIG_USB_XHCI_HCD=y | |
126 | +CONFIG_USB_XHCI_IMX8=y | |
127 | +CONFIG_DM_USB=y | |
128 | +CONFIG_DM_USB_GADGET=y | |
129 | +CONFIG_SPL_DM_USB_GADGET=y | |
130 | +CONFIG_USB=y | |
131 | +#CONFIG_USB_TCPC=y | |
132 | +CONFIG_USB_GADGET=y | |
133 | +CONFIG_CI_UDC=y | |
134 | +CONFIG_USB_GADGET_DOWNLOAD=y | |
135 | +CONFIG_USB_GADGET_MANUFACTURER="FSL" | |
136 | +CONFIG_USB_GADGET_VENDOR_NUM=0x0525 | |
137 | +CONFIG_USB_GADGET_PRODUCT_NUM=0xa4a5 | |
138 | +CONFIG_USB_CDNS3=y | |
139 | +CONFIG_USB_CDNS3_GADGET=y | |
140 | +CONFIG_USB_GADGET_DUALSPEED=y | |
141 | +CONFIG_CDNS3_USB_PHY=y | |
142 | +CONFIG_PHY=y | |
143 | +CONFIG_SPL_PHY=y | |
144 | + | |
145 | +CONFIG_SPL_USB_GADGET=y | |
146 | +CONFIG_SPL_USB_SDP_SUPPORT=y | |
147 | +CONFIG_SPL_SDP_USB_DEV=1 | |
148 | +CONFIG_SDP_LOADADDR=0x80400000 | |
149 | + | |
150 | +CONFIG_FASTBOOT=y | |
151 | +CONFIG_USB_FUNCTION_FASTBOOT=y | |
152 | +CONFIG_CMD_FASTBOOT=y | |
153 | +CONFIG_ANDROID_BOOT_IMAGE=y | |
154 | +CONFIG_FASTBOOT_UUU_SUPPORT=y | |
155 | +CONFIG_FASTBOOT_BUF_ADDR=0x82800000 | |
156 | +CONFIG_FASTBOOT_BUF_SIZE=0x40000000 | |
157 | +CONFIG_FASTBOOT_FLASH=y | |
158 | +CONFIG_FASTBOOT_FLASH_MMC_DEV=0 | |
159 | +CONFIG_FASTBOOT_USB_DEV=1 | |
160 | + | |
161 | +CONFIG_BOOTAUX_RESERVED_MEM_BASE=0x88000000 | |
162 | +CONFIG_BOOTAUX_RESERVED_MEM_SIZE=0x08000000 | |
163 | + | |
164 | +CONFIG_REGMAP=y | |
165 | +CONFIG_SYSCON=y | |
166 | +CONFIG_AHCI=y | |
167 | +CONFIG_IMX_AHCI=y | |
168 | +CONFIG_DM_SCSI=y | |
169 | +CONFIG_SCSI=y | |
170 | +CONFIG_CMD_SCSI=y | |
171 | + | |
172 | +CONFIG_PCI=y | |
173 | +CONFIG_DM_PCI=y | |
174 | + | |
175 | +CONFIG_USB_PORT_AUTO=y | |
176 | + | |
177 | +CONFIG_SNVS_SEC_SC=y | |
178 | + | |
179 | +CONFIG_VIDEO_IMX_HDP_LOAD=y | |
180 | +CONFIG_OF_LIBFDT_OVERLAY=y | |
181 | + | |
182 | +CONFIG_VIDEO_IMXDPUV1=y | |
183 | +CONFIG_VIDEO_IMX8_LVDS=y | |
184 | +CONFIG_SYS_WHITE_ON_BLACK=y |
configs/smarcimx8qm_4g_ser1_defconfig
1 | +CONFIG_ARM=y | |
2 | +CONFIG_SPL_SYS_ICACHE_OFF=y | |
3 | +CONFIG_SPL_SYS_DCACHE_OFF=y | |
4 | +CONFIG_ARCH_IMX8=y | |
5 | +CONFIG_SYS_TEXT_BASE=0x80020000 | |
6 | +CONFIG_SPL_GPIO_SUPPORT=y | |
7 | +CONFIG_SPL_LIBCOMMON_SUPPORT=y | |
8 | +CONFIG_SPL_LIBGENERIC_SUPPORT=y | |
9 | +CONFIG_SYS_MALLOC_F_LEN=0x8000 | |
10 | +CONFIG_ENV_SIZE=0x2000 | |
11 | +CONFIG_ENV_OFFSET=0x400000 | |
12 | +CONFIG_DM_GPIO=y | |
13 | +CONFIG_SPL_LOAD_IMX_CONTAINER=y | |
14 | +CONFIG_IMX_CONTAINER_CFG="board/embedian/smarcimx8qm/uboot-container.cfg,4GB_LPDDR4" | |
15 | +CONFIG_TARGET_SMARCIMX8QM=y | |
16 | +CONFIG_SPL_MMC_SUPPORT=y | |
17 | +CONFIG_SPL_EFI_PARTITION=n | |
18 | +CONFIG_SPL_DOS_PARTITION=n | |
19 | +CONFIG_SPL_DM_SEQ_ALIAS=y | |
20 | +CONFIG_SPL_SERIAL_SUPPORT=y | |
21 | +CONFIG_SPL_DRIVERS_MISC_SUPPORT=y | |
22 | +CONFIG_USE_TINY_PRINTF=y | |
23 | +CONFIG_NR_DRAM_BANKS=4 | |
24 | +CONFIG_SPL=y | |
25 | +CONFIG_PANIC_HANG=y | |
26 | +CONFIG_SPL_TEXT_BASE=0x100000 | |
27 | +CONFIG_OF_SYSTEM_SETUP=y | |
28 | +CONFIG_SYS_EXTRA_OPTIONS="IMX_CONFIG=board/embedian/smarcimx8qm/imximage.cfg" | |
29 | +CONFIG_CONSOLE_SER1=y | |
30 | +CONFIG_BOOTDELAY=1 | |
31 | +CONFIG_LOG=y | |
32 | +CONFIG_SPL_BOARD_INIT=y | |
33 | +# CONFIG_SPL_SYS_MALLOC_SIMPLE is not set | |
34 | +CONFIG_SPL_SEPARATE_BSS=y | |
35 | +CONFIG_SPL_POWER_SUPPORT=y | |
36 | +CONFIG_SPL_POWER_DOMAIN=y | |
37 | +CONFIG_SPL_WATCHDOG_SUPPORT=y | |
38 | +CONFIG_HUSH_PARSER=y | |
39 | +CONFIG_CMD_CPU=y | |
40 | +CONFIG_SYS_PROMPT="u-boot$ " | |
41 | +# CONFIG_BOOTM_NETBSD is not set | |
42 | +CONFIG_CMD_IMPORTENV=y | |
43 | +CONFIG_CMD_CLK=y | |
44 | +CONFIG_CMD_DM=y | |
45 | +CONFIG_CMD_GPIO=y | |
46 | +CONFIG_CMD_I2C=y | |
47 | +CONFIG_CMD_MMC=y | |
48 | +CONFIG_CMD_DHCP=y | |
49 | +CONFIG_CMD_MII=y | |
50 | +CONFIG_CMD_PING=y | |
51 | +CONFIG_CMD_CACHE=y | |
52 | +CONFIG_CMD_EXT2=y | |
53 | +CONFIG_CMD_EXT4=y | |
54 | +CONFIG_CMD_EXT4_WRITE=y | |
55 | +CONFIG_CMD_FAT=y | |
56 | +CONFIG_CMD_GPT=y | |
57 | +CONFIG_CMD_TIME=y | |
58 | +CONFIG_SPL_OF_CONTROL=y | |
59 | +CONFIG_DEFAULT_DEVICE_TREE="fsl-smarcimx8qm" | |
60 | +CONFIG_DEFAULT_FDT_FILE="imx8qm-smarc.dtb" | |
61 | +CONFIG_ENV_IS_IN_MMC=y | |
62 | +CONFIG_SYS_RELOC_GD_ENV_ADDR=y | |
63 | +CONFIG_NET_RANDOM_ETHADDR=y | |
64 | +CONFIG_SPL_DM=y | |
65 | +CONFIG_SPL_CLK=y | |
66 | +CONFIG_CLK_IMX8=y | |
67 | +CONFIG_CPU=y | |
68 | +CONFIG_MXC_GPIO=y | |
69 | +#CONFIG_DM_PCA953X=y | |
70 | +CONFIG_DM_I2C=y | |
71 | +CONFIG_SYS_I2C_IMX_LPI2C=y | |
72 | +CONFIG_I2C_MUX=y | |
73 | +#CONFIG_I2C_MUX_PCA954x=y | |
74 | +CONFIG_MISC=y | |
75 | +CONFIG_DM_MMC=y | |
76 | +CONFIG_SUPPORT_EMMC_BOOT=y | |
77 | +CONFIG_FSL_USDHC=y | |
78 | +CONFIG_MMC_IO_VOLTAGE=y | |
79 | +CONFIG_MMC_UHS_SUPPORT=y | |
80 | +CONFIG_MMC_HS400_SUPPORT=y | |
81 | +CONFIG_EFI_PARTITION=y | |
82 | +CONFIG_PHYLIB=y | |
83 | +CONFIG_PHY_ADDR_ENABLE=y | |
84 | +CONFIG_PHY_ATHEROS=y | |
85 | +CONFIG_DM_ETH=y | |
86 | +CONFIG_PHY_GIGE=y | |
87 | +CONFIG_FEC_MXC_SHARE_MDIO=y | |
88 | +CONFIG_FEC_MXC_MDIO_BASE=0x5B040000 | |
89 | +CONFIG_FEC_MXC=y | |
90 | +CONFIG_MII=y | |
91 | +CONFIG_PINCTRL=y | |
92 | +CONFIG_SPL_PINCTRL=y | |
93 | +CONFIG_PINCTRL_IMX8=y | |
94 | +CONFIG_POWER_DOMAIN=y | |
95 | +CONFIG_IMX8_POWER_DOMAIN=y | |
96 | +CONFIG_DM_REGULATOR=y | |
97 | +CONFIG_SPL_DM_REGULATOR=y | |
98 | +CONFIG_DM_REGULATOR_FIXED=y | |
99 | +CONFIG_DM_REGULATOR_GPIO=y | |
100 | +CONFIG_SPL_DM_REGULATOR_FIXED=y | |
101 | +CONFIG_DM_SERIAL=y | |
102 | +CONFIG_FSL_LPUART=y | |
103 | +CONFIG_SPL_TINY_MEMSET=y | |
104 | +# CONFIG_EFI_LOADER is not set | |
105 | + | |
106 | +CONFIG_CMD_FUSE=y | |
107 | +CONFIG_CMD_MEMTEST=y | |
108 | + | |
109 | +CONFIG_IMX_BOOTAUX=y | |
110 | + | |
111 | +CONFIG_DM_THERMAL=y | |
112 | +CONFIG_IMX_SCU_THERMAL=y | |
113 | +CONFIG_SPI=y | |
114 | +CONFIG_FSL_FSPI=y | |
115 | +CONFIG_DM_SPI=y | |
116 | +CONFIG_DM_SPI_FLASH=y | |
117 | +CONFIG_SPI_FLASH=y | |
118 | +CONFIG_SPI_FLASH_MACRONIX=y | |
119 | +CONFIG_CMD_SF=y | |
120 | +CONFIG_SF_DEFAULT_BUS=0 | |
121 | +CONFIG_SF_DEFAULT_CS=0 | |
122 | +CONFIG_SF_DEFAULT_SPEED=40000000 | |
123 | +CONFIG_SF_DEFAULT_MODE=0 | |
124 | + | |
125 | +CONFIG_USB_XHCI_HCD=y | |
126 | +CONFIG_USB_XHCI_IMX8=y | |
127 | +CONFIG_DM_USB=y | |
128 | +CONFIG_DM_USB_GADGET=y | |
129 | +CONFIG_SPL_DM_USB_GADGET=y | |
130 | +CONFIG_USB=y | |
131 | +#CONFIG_USB_TCPC=y | |
132 | +CONFIG_USB_GADGET=y | |
133 | +CONFIG_CI_UDC=y | |
134 | +CONFIG_USB_GADGET_DOWNLOAD=y | |
135 | +CONFIG_USB_GADGET_MANUFACTURER="FSL" | |
136 | +CONFIG_USB_GADGET_VENDOR_NUM=0x0525 | |
137 | +CONFIG_USB_GADGET_PRODUCT_NUM=0xa4a5 | |
138 | +CONFIG_USB_CDNS3=y | |
139 | +CONFIG_USB_CDNS3_GADGET=y | |
140 | +CONFIG_USB_GADGET_DUALSPEED=y | |
141 | +CONFIG_CDNS3_USB_PHY=y | |
142 | +CONFIG_PHY=y | |
143 | +CONFIG_SPL_PHY=y | |
144 | + | |
145 | +CONFIG_SPL_USB_GADGET=y | |
146 | +CONFIG_SPL_USB_SDP_SUPPORT=y | |
147 | +CONFIG_SPL_SDP_USB_DEV=1 | |
148 | +CONFIG_SDP_LOADADDR=0x80400000 | |
149 | + | |
150 | +CONFIG_FASTBOOT=y | |
151 | +CONFIG_USB_FUNCTION_FASTBOOT=y | |
152 | +CONFIG_CMD_FASTBOOT=y | |
153 | +CONFIG_ANDROID_BOOT_IMAGE=y | |
154 | +CONFIG_FASTBOOT_UUU_SUPPORT=y | |
155 | +CONFIG_FASTBOOT_BUF_ADDR=0x82800000 | |
156 | +CONFIG_FASTBOOT_BUF_SIZE=0x40000000 | |
157 | +CONFIG_FASTBOOT_FLASH=y | |
158 | +CONFIG_FASTBOOT_FLASH_MMC_DEV=0 | |
159 | +CONFIG_FASTBOOT_USB_DEV=1 | |
160 | + | |
161 | +CONFIG_BOOTAUX_RESERVED_MEM_BASE=0x88000000 | |
162 | +CONFIG_BOOTAUX_RESERVED_MEM_SIZE=0x08000000 | |
163 | + | |
164 | +CONFIG_REGMAP=y | |
165 | +CONFIG_SYSCON=y | |
166 | +CONFIG_AHCI=y | |
167 | +CONFIG_IMX_AHCI=y | |
168 | +CONFIG_DM_SCSI=y | |
169 | +CONFIG_SCSI=y | |
170 | +CONFIG_CMD_SCSI=y | |
171 | + | |
172 | +CONFIG_PCI=y | |
173 | +CONFIG_DM_PCI=y | |
174 | + | |
175 | +CONFIG_USB_PORT_AUTO=y | |
176 | + | |
177 | +CONFIG_SNVS_SEC_SC=y | |
178 | + | |
179 | +CONFIG_VIDEO_IMX_HDP_LOAD=y | |
180 | +CONFIG_OF_LIBFDT_OVERLAY=y | |
181 | + | |
182 | +CONFIG_VIDEO_IMXDPUV1=y | |
183 | +CONFIG_VIDEO_IMX8_LVDS=y | |
184 | +CONFIG_SYS_WHITE_ON_BLACK=y |
configs/smarcimx8qm_4g_ser2_defconfig
1 | +CONFIG_ARM=y | |
2 | +CONFIG_SPL_SYS_ICACHE_OFF=y | |
3 | +CONFIG_SPL_SYS_DCACHE_OFF=y | |
4 | +CONFIG_ARCH_IMX8=y | |
5 | +CONFIG_SYS_TEXT_BASE=0x80020000 | |
6 | +CONFIG_SPL_GPIO_SUPPORT=y | |
7 | +CONFIG_SPL_LIBCOMMON_SUPPORT=y | |
8 | +CONFIG_SPL_LIBGENERIC_SUPPORT=y | |
9 | +CONFIG_SYS_MALLOC_F_LEN=0x8000 | |
10 | +CONFIG_ENV_SIZE=0x2000 | |
11 | +CONFIG_ENV_OFFSET=0x400000 | |
12 | +CONFIG_DM_GPIO=y | |
13 | +CONFIG_SPL_LOAD_IMX_CONTAINER=y | |
14 | +CONFIG_IMX_CONTAINER_CFG="board/embedian/smarcimx8qm/uboot-container.cfg,4GB_LPDDR4" | |
15 | +CONFIG_TARGET_SMARCIMX8QM=y | |
16 | +CONFIG_SPL_MMC_SUPPORT=y | |
17 | +CONFIG_SPL_EFI_PARTITION=n | |
18 | +CONFIG_SPL_DOS_PARTITION=n | |
19 | +CONFIG_SPL_DM_SEQ_ALIAS=y | |
20 | +CONFIG_SPL_SERIAL_SUPPORT=y | |
21 | +CONFIG_SPL_DRIVERS_MISC_SUPPORT=y | |
22 | +CONFIG_USE_TINY_PRINTF=y | |
23 | +CONFIG_NR_DRAM_BANKS=4 | |
24 | +CONFIG_SPL=y | |
25 | +CONFIG_PANIC_HANG=y | |
26 | +CONFIG_SPL_TEXT_BASE=0x100000 | |
27 | +CONFIG_OF_SYSTEM_SETUP=y | |
28 | +CONFIG_SYS_EXTRA_OPTIONS="IMX_CONFIG=board/embedian/smarcimx8qm/imximage.cfg" | |
29 | +CONFIG_CONSOLE_SER2=y | |
30 | +CONFIG_BOOTDELAY=1 | |
31 | +CONFIG_LOG=y | |
32 | +CONFIG_SPL_BOARD_INIT=y | |
33 | +# CONFIG_SPL_SYS_MALLOC_SIMPLE is not set | |
34 | +CONFIG_SPL_SEPARATE_BSS=y | |
35 | +CONFIG_SPL_POWER_SUPPORT=y | |
36 | +CONFIG_SPL_POWER_DOMAIN=y | |
37 | +CONFIG_SPL_WATCHDOG_SUPPORT=y | |
38 | +CONFIG_HUSH_PARSER=y | |
39 | +CONFIG_CMD_CPU=y | |
40 | +CONFIG_SYS_PROMPT="u-boot$ " | |
41 | +# CONFIG_BOOTM_NETBSD is not set | |
42 | +CONFIG_CMD_IMPORTENV=y | |
43 | +CONFIG_CMD_CLK=y | |
44 | +CONFIG_CMD_DM=y | |
45 | +CONFIG_CMD_GPIO=y | |
46 | +CONFIG_CMD_I2C=y | |
47 | +CONFIG_CMD_MMC=y | |
48 | +CONFIG_CMD_DHCP=y | |
49 | +CONFIG_CMD_MII=y | |
50 | +CONFIG_CMD_PING=y | |
51 | +CONFIG_CMD_CACHE=y | |
52 | +CONFIG_CMD_EXT2=y | |
53 | +CONFIG_CMD_EXT4=y | |
54 | +CONFIG_CMD_EXT4_WRITE=y | |
55 | +CONFIG_CMD_FAT=y | |
56 | +CONFIG_CMD_GPT=y | |
57 | +CONFIG_CMD_TIME=y | |
58 | +CONFIG_SPL_OF_CONTROL=y | |
59 | +CONFIG_DEFAULT_DEVICE_TREE="fsl-smarcimx8qm" | |
60 | +CONFIG_DEFAULT_FDT_FILE="imx8qm-smarc.dtb" | |
61 | +CONFIG_ENV_IS_IN_MMC=y | |
62 | +CONFIG_SYS_RELOC_GD_ENV_ADDR=y | |
63 | +CONFIG_NET_RANDOM_ETHADDR=y | |
64 | +CONFIG_SPL_DM=y | |
65 | +CONFIG_SPL_CLK=y | |
66 | +CONFIG_CLK_IMX8=y | |
67 | +CONFIG_CPU=y | |
68 | +CONFIG_MXC_GPIO=y | |
69 | +#CONFIG_DM_PCA953X=y | |
70 | +CONFIG_DM_I2C=y | |
71 | +CONFIG_SYS_I2C_IMX_LPI2C=y | |
72 | +CONFIG_I2C_MUX=y | |
73 | +#CONFIG_I2C_MUX_PCA954x=y | |
74 | +CONFIG_MISC=y | |
75 | +CONFIG_DM_MMC=y | |
76 | +CONFIG_SUPPORT_EMMC_BOOT=y | |
77 | +CONFIG_FSL_USDHC=y | |
78 | +CONFIG_MMC_IO_VOLTAGE=y | |
79 | +CONFIG_MMC_UHS_SUPPORT=y | |
80 | +CONFIG_MMC_HS400_SUPPORT=y | |
81 | +CONFIG_EFI_PARTITION=y | |
82 | +CONFIG_PHYLIB=y | |
83 | +CONFIG_PHY_ADDR_ENABLE=y | |
84 | +CONFIG_PHY_ATHEROS=y | |
85 | +CONFIG_DM_ETH=y | |
86 | +CONFIG_PHY_GIGE=y | |
87 | +CONFIG_FEC_MXC_SHARE_MDIO=y | |
88 | +CONFIG_FEC_MXC_MDIO_BASE=0x5B040000 | |
89 | +CONFIG_FEC_MXC=y | |
90 | +CONFIG_MII=y | |
91 | +CONFIG_PINCTRL=y | |
92 | +CONFIG_SPL_PINCTRL=y | |
93 | +CONFIG_PINCTRL_IMX8=y | |
94 | +CONFIG_POWER_DOMAIN=y | |
95 | +CONFIG_IMX8_POWER_DOMAIN=y | |
96 | +CONFIG_DM_REGULATOR=y | |
97 | +CONFIG_SPL_DM_REGULATOR=y | |
98 | +CONFIG_DM_REGULATOR_FIXED=y | |
99 | +CONFIG_DM_REGULATOR_GPIO=y | |
100 | +CONFIG_SPL_DM_REGULATOR_FIXED=y | |
101 | +CONFIG_DM_SERIAL=y | |
102 | +CONFIG_FSL_LPUART=y | |
103 | +CONFIG_SPL_TINY_MEMSET=y | |
104 | +# CONFIG_EFI_LOADER is not set | |
105 | + | |
106 | +CONFIG_CMD_FUSE=y | |
107 | +CONFIG_CMD_MEMTEST=y | |
108 | + | |
109 | +CONFIG_IMX_BOOTAUX=y | |
110 | + | |
111 | +CONFIG_DM_THERMAL=y | |
112 | +CONFIG_IMX_SCU_THERMAL=y | |
113 | +CONFIG_SPI=y | |
114 | +CONFIG_FSL_FSPI=y | |
115 | +CONFIG_DM_SPI=y | |
116 | +CONFIG_DM_SPI_FLASH=y | |
117 | +CONFIG_SPI_FLASH=y | |
118 | +CONFIG_SPI_FLASH_MACRONIX=y | |
119 | +CONFIG_CMD_SF=y | |
120 | +CONFIG_SF_DEFAULT_BUS=0 | |
121 | +CONFIG_SF_DEFAULT_CS=0 | |
122 | +CONFIG_SF_DEFAULT_SPEED=40000000 | |
123 | +CONFIG_SF_DEFAULT_MODE=0 | |
124 | + | |
125 | +CONFIG_USB_XHCI_HCD=y | |
126 | +CONFIG_USB_XHCI_IMX8=y | |
127 | +CONFIG_DM_USB=y | |
128 | +CONFIG_DM_USB_GADGET=y | |
129 | +CONFIG_SPL_DM_USB_GADGET=y | |
130 | +CONFIG_USB=y | |
131 | +#CONFIG_USB_TCPC=y | |
132 | +CONFIG_USB_GADGET=y | |
133 | +CONFIG_CI_UDC=y | |
134 | +CONFIG_USB_GADGET_DOWNLOAD=y | |
135 | +CONFIG_USB_GADGET_MANUFACTURER="FSL" | |
136 | +CONFIG_USB_GADGET_VENDOR_NUM=0x0525 | |
137 | +CONFIG_USB_GADGET_PRODUCT_NUM=0xa4a5 | |
138 | +CONFIG_USB_CDNS3=y | |
139 | +CONFIG_USB_CDNS3_GADGET=y | |
140 | +CONFIG_USB_GADGET_DUALSPEED=y | |
141 | +CONFIG_CDNS3_USB_PHY=y | |
142 | +CONFIG_PHY=y | |
143 | +CONFIG_SPL_PHY=y | |
144 | + | |
145 | +CONFIG_SPL_USB_GADGET=y | |
146 | +CONFIG_SPL_USB_SDP_SUPPORT=y | |
147 | +CONFIG_SPL_SDP_USB_DEV=1 | |
148 | +CONFIG_SDP_LOADADDR=0x80400000 | |
149 | + | |
150 | +CONFIG_FASTBOOT=y | |
151 | +CONFIG_USB_FUNCTION_FASTBOOT=y | |
152 | +CONFIG_CMD_FASTBOOT=y | |
153 | +CONFIG_ANDROID_BOOT_IMAGE=y | |
154 | +CONFIG_FASTBOOT_UUU_SUPPORT=y | |
155 | +CONFIG_FASTBOOT_BUF_ADDR=0x82800000 | |
156 | +CONFIG_FASTBOOT_BUF_SIZE=0x40000000 | |
157 | +CONFIG_FASTBOOT_FLASH=y | |
158 | +CONFIG_FASTBOOT_FLASH_MMC_DEV=0 | |
159 | +CONFIG_FASTBOOT_USB_DEV=1 | |
160 | + | |
161 | +CONFIG_BOOTAUX_RESERVED_MEM_BASE=0x88000000 | |
162 | +CONFIG_BOOTAUX_RESERVED_MEM_SIZE=0x08000000 | |
163 | + | |
164 | +CONFIG_REGMAP=y | |
165 | +CONFIG_SYSCON=y | |
166 | +CONFIG_AHCI=y | |
167 | +CONFIG_IMX_AHCI=y | |
168 | +CONFIG_DM_SCSI=y | |
169 | +CONFIG_SCSI=y | |
170 | +CONFIG_CMD_SCSI=y | |
171 | + | |
172 | +CONFIG_PCI=y | |
173 | +CONFIG_DM_PCI=y | |
174 | + | |
175 | +CONFIG_USB_PORT_AUTO=y | |
176 | + | |
177 | +CONFIG_SNVS_SEC_SC=y | |
178 | + | |
179 | +CONFIG_VIDEO_IMX_HDP_LOAD=y | |
180 | +CONFIG_OF_LIBFDT_OVERLAY=y | |
181 | + | |
182 | +CONFIG_VIDEO_IMXDPUV1=y | |
183 | +CONFIG_VIDEO_IMX8_LVDS=y | |
184 | +CONFIG_SYS_WHITE_ON_BLACK=y |
configs/smarcimx8qm_4g_ser3_defconfig
1 | +CONFIG_ARM=y | |
2 | +CONFIG_SPL_SYS_ICACHE_OFF=y | |
3 | +CONFIG_SPL_SYS_DCACHE_OFF=y | |
4 | +CONFIG_ARCH_IMX8=y | |
5 | +CONFIG_SYS_TEXT_BASE=0x80020000 | |
6 | +CONFIG_SPL_GPIO_SUPPORT=y | |
7 | +CONFIG_SPL_LIBCOMMON_SUPPORT=y | |
8 | +CONFIG_SPL_LIBGENERIC_SUPPORT=y | |
9 | +CONFIG_SYS_MALLOC_F_LEN=0x8000 | |
10 | +CONFIG_ENV_SIZE=0x2000 | |
11 | +CONFIG_ENV_OFFSET=0x400000 | |
12 | +CONFIG_DM_GPIO=y | |
13 | +CONFIG_SPL_LOAD_IMX_CONTAINER=y | |
14 | +CONFIG_IMX_CONTAINER_CFG="board/embedian/smarcimx8qm/uboot-container.cfg,4GB_LPDDR4" | |
15 | +CONFIG_TARGET_SMARCIMX8QM=y | |
16 | +CONFIG_SPL_MMC_SUPPORT=y | |
17 | +CONFIG_SPL_EFI_PARTITION=n | |
18 | +CONFIG_SPL_DOS_PARTITION=n | |
19 | +CONFIG_SPL_DM_SEQ_ALIAS=y | |
20 | +CONFIG_SPL_SERIAL_SUPPORT=y | |
21 | +CONFIG_SPL_DRIVERS_MISC_SUPPORT=y | |
22 | +CONFIG_USE_TINY_PRINTF=y | |
23 | +CONFIG_NR_DRAM_BANKS=4 | |
24 | +CONFIG_SPL=y | |
25 | +CONFIG_PANIC_HANG=y | |
26 | +CONFIG_SPL_TEXT_BASE=0x100000 | |
27 | +CONFIG_OF_SYSTEM_SETUP=y | |
28 | +CONFIG_SYS_EXTRA_OPTIONS="IMX_CONFIG=board/embedian/smarcimx8qm/imximage.cfg" | |
29 | +CONFIG_CONSOLE_SER3=y | |
30 | +CONFIG_BOOTDELAY=1 | |
31 | +CONFIG_LOG=y | |
32 | +CONFIG_SPL_BOARD_INIT=y | |
33 | +# CONFIG_SPL_SYS_MALLOC_SIMPLE is not set | |
34 | +CONFIG_SPL_SEPARATE_BSS=y | |
35 | +CONFIG_SPL_POWER_SUPPORT=y | |
36 | +CONFIG_SPL_POWER_DOMAIN=y | |
37 | +CONFIG_SPL_WATCHDOG_SUPPORT=y | |
38 | +CONFIG_HUSH_PARSER=y | |
39 | +CONFIG_CMD_CPU=y | |
40 | +CONFIG_SYS_PROMPT="u-boot$ " | |
41 | +# CONFIG_BOOTM_NETBSD is not set | |
42 | +CONFIG_CMD_IMPORTENV=y | |
43 | +CONFIG_CMD_CLK=y | |
44 | +CONFIG_CMD_DM=y | |
45 | +CONFIG_CMD_GPIO=y | |
46 | +CONFIG_CMD_I2C=y | |
47 | +CONFIG_CMD_MMC=y | |
48 | +CONFIG_CMD_DHCP=y | |
49 | +CONFIG_CMD_MII=y | |
50 | +CONFIG_CMD_PING=y | |
51 | +CONFIG_CMD_CACHE=y | |
52 | +CONFIG_CMD_EXT2=y | |
53 | +CONFIG_CMD_EXT4=y | |
54 | +CONFIG_CMD_EXT4_WRITE=y | |
55 | +CONFIG_CMD_FAT=y | |
56 | +CONFIG_CMD_GPT=y | |
57 | +CONFIG_CMD_TIME=y | |
58 | +CONFIG_SPL_OF_CONTROL=y | |
59 | +CONFIG_DEFAULT_DEVICE_TREE="fsl-smarcimx8qm" | |
60 | +CONFIG_DEFAULT_FDT_FILE="imx8qm-smarc.dtb" | |
61 | +CONFIG_ENV_IS_IN_MMC=y | |
62 | +CONFIG_SYS_RELOC_GD_ENV_ADDR=y | |
63 | +CONFIG_NET_RANDOM_ETHADDR=y | |
64 | +CONFIG_SPL_DM=y | |
65 | +CONFIG_SPL_CLK=y | |
66 | +CONFIG_CLK_IMX8=y | |
67 | +CONFIG_CPU=y | |
68 | +CONFIG_MXC_GPIO=y | |
69 | +#CONFIG_DM_PCA953X=y | |
70 | +CONFIG_DM_I2C=y | |
71 | +CONFIG_SYS_I2C_IMX_LPI2C=y | |
72 | +CONFIG_I2C_MUX=y | |
73 | +#CONFIG_I2C_MUX_PCA954x=y | |
74 | +CONFIG_MISC=y | |
75 | +CONFIG_DM_MMC=y | |
76 | +CONFIG_SUPPORT_EMMC_BOOT=y | |
77 | +CONFIG_FSL_USDHC=y | |
78 | +CONFIG_MMC_IO_VOLTAGE=y | |
79 | +CONFIG_MMC_UHS_SUPPORT=y | |
80 | +CONFIG_MMC_HS400_SUPPORT=y | |
81 | +CONFIG_EFI_PARTITION=y | |
82 | +CONFIG_PHYLIB=y | |
83 | +CONFIG_PHY_ADDR_ENABLE=y | |
84 | +CONFIG_PHY_ATHEROS=y | |
85 | +CONFIG_DM_ETH=y | |
86 | +CONFIG_PHY_GIGE=y | |
87 | +CONFIG_FEC_MXC_SHARE_MDIO=y | |
88 | +CONFIG_FEC_MXC_MDIO_BASE=0x5B040000 | |
89 | +CONFIG_FEC_MXC=y | |
90 | +CONFIG_MII=y | |
91 | +CONFIG_PINCTRL=y | |
92 | +CONFIG_SPL_PINCTRL=y | |
93 | +CONFIG_PINCTRL_IMX8=y | |
94 | +CONFIG_POWER_DOMAIN=y | |
95 | +CONFIG_IMX8_POWER_DOMAIN=y | |
96 | +CONFIG_DM_REGULATOR=y | |
97 | +CONFIG_SPL_DM_REGULATOR=y | |
98 | +CONFIG_DM_REGULATOR_FIXED=y | |
99 | +CONFIG_DM_REGULATOR_GPIO=y | |
100 | +CONFIG_SPL_DM_REGULATOR_FIXED=y | |
101 | +CONFIG_DM_SERIAL=y | |
102 | +CONFIG_FSL_LPUART=y | |
103 | +CONFIG_SPL_TINY_MEMSET=y | |
104 | +# CONFIG_EFI_LOADER is not set | |
105 | + | |
106 | +CONFIG_CMD_FUSE=y | |
107 | +CONFIG_CMD_MEMTEST=y | |
108 | + | |
109 | +CONFIG_IMX_BOOTAUX=y | |
110 | + | |
111 | +CONFIG_DM_THERMAL=y | |
112 | +CONFIG_IMX_SCU_THERMAL=y | |
113 | +CONFIG_SPI=y | |
114 | +CONFIG_FSL_FSPI=y | |
115 | +CONFIG_DM_SPI=y | |
116 | +CONFIG_DM_SPI_FLASH=y | |
117 | +CONFIG_SPI_FLASH=y | |
118 | +CONFIG_SPI_FLASH_MACRONIX=y | |
119 | +CONFIG_CMD_SF=y | |
120 | +CONFIG_SF_DEFAULT_BUS=0 | |
121 | +CONFIG_SF_DEFAULT_CS=0 | |
122 | +CONFIG_SF_DEFAULT_SPEED=40000000 | |
123 | +CONFIG_SF_DEFAULT_MODE=0 | |
124 | + | |
125 | +CONFIG_USB_XHCI_HCD=y | |
126 | +CONFIG_USB_XHCI_IMX8=y | |
127 | +CONFIG_DM_USB=y | |
128 | +CONFIG_DM_USB_GADGET=y | |
129 | +CONFIG_SPL_DM_USB_GADGET=y | |
130 | +CONFIG_USB=y | |
131 | +#CONFIG_USB_TCPC=y | |
132 | +CONFIG_USB_GADGET=y | |
133 | +CONFIG_CI_UDC=y | |
134 | +CONFIG_USB_GADGET_DOWNLOAD=y | |
135 | +CONFIG_USB_GADGET_MANUFACTURER="FSL" | |
136 | +CONFIG_USB_GADGET_VENDOR_NUM=0x0525 | |
137 | +CONFIG_USB_GADGET_PRODUCT_NUM=0xa4a5 | |
138 | +CONFIG_USB_CDNS3=y | |
139 | +CONFIG_USB_CDNS3_GADGET=y | |
140 | +CONFIG_USB_GADGET_DUALSPEED=y | |
141 | +CONFIG_CDNS3_USB_PHY=y | |
142 | +CONFIG_PHY=y | |
143 | +CONFIG_SPL_PHY=y | |
144 | + | |
145 | +CONFIG_SPL_USB_GADGET=y | |
146 | +CONFIG_SPL_USB_SDP_SUPPORT=y | |
147 | +CONFIG_SPL_SDP_USB_DEV=1 | |
148 | +CONFIG_SDP_LOADADDR=0x80400000 | |
149 | + | |
150 | +CONFIG_FASTBOOT=y | |
151 | +CONFIG_USB_FUNCTION_FASTBOOT=y | |
152 | +CONFIG_CMD_FASTBOOT=y | |
153 | +CONFIG_ANDROID_BOOT_IMAGE=y | |
154 | +CONFIG_FASTBOOT_UUU_SUPPORT=y | |
155 | +CONFIG_FASTBOOT_BUF_ADDR=0x82800000 | |
156 | +CONFIG_FASTBOOT_BUF_SIZE=0x40000000 | |
157 | +CONFIG_FASTBOOT_FLASH=y | |
158 | +CONFIG_FASTBOOT_FLASH_MMC_DEV=0 | |
159 | +CONFIG_FASTBOOT_USB_DEV=1 | |
160 | + | |
161 | +CONFIG_BOOTAUX_RESERVED_MEM_BASE=0x88000000 | |
162 | +CONFIG_BOOTAUX_RESERVED_MEM_SIZE=0x08000000 | |
163 | + | |
164 | +CONFIG_REGMAP=y | |
165 | +CONFIG_SYSCON=y | |
166 | +CONFIG_AHCI=y | |
167 | +CONFIG_IMX_AHCI=y | |
168 | +CONFIG_DM_SCSI=y | |
169 | +CONFIG_SCSI=y | |
170 | +CONFIG_CMD_SCSI=y | |
171 | + | |
172 | +CONFIG_PCI=y | |
173 | +CONFIG_DM_PCI=y | |
174 | + | |
175 | +CONFIG_USB_PORT_AUTO=y | |
176 | + | |
177 | +CONFIG_SNVS_SEC_SC=y | |
178 | + | |
179 | +CONFIG_VIDEO_IMX_HDP_LOAD=y | |
180 | +CONFIG_OF_LIBFDT_OVERLAY=y | |
181 | + | |
182 | +CONFIG_VIDEO_IMXDPUV1=y | |
183 | +CONFIG_VIDEO_IMX8_LVDS=y | |
184 | +CONFIG_SYS_WHITE_ON_BLACK=y |
configs/smarcimx8qm_8g_ser0_defconfig
1 | +CONFIG_ARM=y | |
2 | +CONFIG_SPL_SYS_ICACHE_OFF=y | |
3 | +CONFIG_SPL_SYS_DCACHE_OFF=y | |
4 | +CONFIG_ARCH_IMX8=y | |
5 | +CONFIG_SYS_TEXT_BASE=0x80020000 | |
6 | +CONFIG_SPL_GPIO_SUPPORT=y | |
7 | +CONFIG_SPL_LIBCOMMON_SUPPORT=y | |
8 | +CONFIG_SPL_LIBGENERIC_SUPPORT=y | |
9 | +CONFIG_SYS_MALLOC_F_LEN=0x8000 | |
10 | +CONFIG_ENV_SIZE=0x2000 | |
11 | +CONFIG_ENV_OFFSET=0x400000 | |
12 | +CONFIG_DM_GPIO=y | |
13 | +CONFIG_SPL_LOAD_IMX_CONTAINER=y | |
14 | +CONFIG_IMX_CONTAINER_CFG="board/embedian/smarcimx8qm/uboot-container.cfg,8GB_LPDDR4" | |
15 | +CONFIG_TARGET_SMARCIMX8QM=y | |
16 | +CONFIG_SPL_MMC_SUPPORT=y | |
17 | +CONFIG_SPL_EFI_PARTITION=n | |
18 | +CONFIG_SPL_DOS_PARTITION=n | |
19 | +CONFIG_SPL_DM_SEQ_ALIAS=y | |
20 | +CONFIG_SPL_SERIAL_SUPPORT=y | |
21 | +CONFIG_SPL_DRIVERS_MISC_SUPPORT=y | |
22 | +CONFIG_USE_TINY_PRINTF=y | |
23 | +CONFIG_NR_DRAM_BANKS=4 | |
24 | +CONFIG_SPL=y | |
25 | +CONFIG_PANIC_HANG=y | |
26 | +CONFIG_SPL_TEXT_BASE=0x100000 | |
27 | +CONFIG_OF_SYSTEM_SETUP=y | |
28 | +CONFIG_SYS_EXTRA_OPTIONS="IMX_CONFIG=board/embedian/smarcimx8qm/imximage.cfg" | |
29 | +CONFIG_CONSOLE_SER0=y | |
30 | +CONFIG_BOOTDELAY=1 | |
31 | +CONFIG_LOG=y | |
32 | +CONFIG_SPL_BOARD_INIT=y | |
33 | +# CONFIG_SPL_SYS_MALLOC_SIMPLE is not set | |
34 | +CONFIG_SPL_SEPARATE_BSS=y | |
35 | +CONFIG_SPL_POWER_SUPPORT=y | |
36 | +CONFIG_SPL_POWER_DOMAIN=y | |
37 | +CONFIG_SPL_WATCHDOG_SUPPORT=y | |
38 | +CONFIG_HUSH_PARSER=y | |
39 | +CONFIG_CMD_CPU=y | |
40 | +CONFIG_SYS_PROMPT="u-boot$ " | |
41 | +# CONFIG_BOOTM_NETBSD is not set | |
42 | +CONFIG_CMD_IMPORTENV=y | |
43 | +CONFIG_CMD_CLK=y | |
44 | +CONFIG_CMD_DM=y | |
45 | +CONFIG_CMD_GPIO=y | |
46 | +CONFIG_CMD_I2C=y | |
47 | +CONFIG_CMD_MMC=y | |
48 | +CONFIG_CMD_DHCP=y | |
49 | +CONFIG_CMD_MII=y | |
50 | +CONFIG_CMD_PING=y | |
51 | +CONFIG_CMD_CACHE=y | |
52 | +CONFIG_CMD_EXT2=y | |
53 | +CONFIG_CMD_EXT4=y | |
54 | +CONFIG_CMD_EXT4_WRITE=y | |
55 | +CONFIG_CMD_FAT=y | |
56 | +CONFIG_CMD_GPT=y | |
57 | +CONFIG_CMD_TIME=y | |
58 | +CONFIG_SPL_OF_CONTROL=y | |
59 | +CONFIG_DEFAULT_DEVICE_TREE="fsl-smarcimx8qm" | |
60 | +CONFIG_DEFAULT_FDT_FILE="imx8qm-smarc.dtb" | |
61 | +CONFIG_ENV_IS_IN_MMC=y | |
62 | +CONFIG_SYS_RELOC_GD_ENV_ADDR=y | |
63 | +CONFIG_NET_RANDOM_ETHADDR=y | |
64 | +CONFIG_SPL_DM=y | |
65 | +CONFIG_SPL_CLK=y | |
66 | +CONFIG_CLK_IMX8=y | |
67 | +CONFIG_CPU=y | |
68 | +CONFIG_MXC_GPIO=y | |
69 | +#CONFIG_DM_PCA953X=y | |
70 | +CONFIG_DM_I2C=y | |
71 | +CONFIG_SYS_I2C_IMX_LPI2C=y | |
72 | +CONFIG_I2C_MUX=y | |
73 | +#CONFIG_I2C_MUX_PCA954x=y | |
74 | +CONFIG_MISC=y | |
75 | +CONFIG_DM_MMC=y | |
76 | +CONFIG_SUPPORT_EMMC_BOOT=y | |
77 | +CONFIG_FSL_USDHC=y | |
78 | +CONFIG_MMC_IO_VOLTAGE=y | |
79 | +CONFIG_MMC_UHS_SUPPORT=y | |
80 | +CONFIG_MMC_HS400_SUPPORT=y | |
81 | +CONFIG_EFI_PARTITION=y | |
82 | +CONFIG_PHYLIB=y | |
83 | +CONFIG_PHY_ADDR_ENABLE=y | |
84 | +CONFIG_PHY_ATHEROS=y | |
85 | +CONFIG_DM_ETH=y | |
86 | +CONFIG_PHY_GIGE=y | |
87 | +CONFIG_FEC_MXC_SHARE_MDIO=y | |
88 | +CONFIG_FEC_MXC_MDIO_BASE=0x5B040000 | |
89 | +CONFIG_FEC_MXC=y | |
90 | +CONFIG_MII=y | |
91 | +CONFIG_PINCTRL=y | |
92 | +CONFIG_SPL_PINCTRL=y | |
93 | +CONFIG_PINCTRL_IMX8=y | |
94 | +CONFIG_POWER_DOMAIN=y | |
95 | +CONFIG_IMX8_POWER_DOMAIN=y | |
96 | +CONFIG_DM_REGULATOR=y | |
97 | +CONFIG_SPL_DM_REGULATOR=y | |
98 | +CONFIG_DM_REGULATOR_FIXED=y | |
99 | +CONFIG_DM_REGULATOR_GPIO=y | |
100 | +CONFIG_SPL_DM_REGULATOR_FIXED=y | |
101 | +CONFIG_DM_SERIAL=y | |
102 | +CONFIG_FSL_LPUART=y | |
103 | +CONFIG_SPL_TINY_MEMSET=y | |
104 | +# CONFIG_EFI_LOADER is not set | |
105 | + | |
106 | +CONFIG_CMD_FUSE=y | |
107 | +CONFIG_CMD_MEMTEST=y | |
108 | + | |
109 | +CONFIG_IMX_BOOTAUX=y | |
110 | + | |
111 | +CONFIG_DM_THERMAL=y | |
112 | +CONFIG_IMX_SCU_THERMAL=y | |
113 | +CONFIG_SPI=y | |
114 | +CONFIG_FSL_FSPI=y | |
115 | +CONFIG_DM_SPI=y | |
116 | +CONFIG_DM_SPI_FLASH=y | |
117 | +CONFIG_SPI_FLASH=y | |
118 | +CONFIG_SPI_FLASH_MACRONIX=y | |
119 | +CONFIG_CMD_SF=y | |
120 | +CONFIG_SF_DEFAULT_BUS=0 | |
121 | +CONFIG_SF_DEFAULT_CS=0 | |
122 | +CONFIG_SF_DEFAULT_SPEED=40000000 | |
123 | +CONFIG_SF_DEFAULT_MODE=0 | |
124 | + | |
125 | +CONFIG_USB_XHCI_HCD=y | |
126 | +CONFIG_USB_XHCI_IMX8=y | |
127 | +CONFIG_DM_USB=y | |
128 | +CONFIG_DM_USB_GADGET=y | |
129 | +CONFIG_SPL_DM_USB_GADGET=y | |
130 | +CONFIG_USB=y | |
131 | +#CONFIG_USB_TCPC=y | |
132 | +CONFIG_USB_GADGET=y | |
133 | +CONFIG_CI_UDC=y | |
134 | +CONFIG_USB_GADGET_DOWNLOAD=y | |
135 | +CONFIG_USB_GADGET_MANUFACTURER="FSL" | |
136 | +CONFIG_USB_GADGET_VENDOR_NUM=0x0525 | |
137 | +CONFIG_USB_GADGET_PRODUCT_NUM=0xa4a5 | |
138 | +CONFIG_USB_CDNS3=y | |
139 | +CONFIG_USB_CDNS3_GADGET=y | |
140 | +CONFIG_USB_GADGET_DUALSPEED=y | |
141 | +CONFIG_CDNS3_USB_PHY=y | |
142 | +CONFIG_PHY=y | |
143 | +CONFIG_SPL_PHY=y | |
144 | + | |
145 | +CONFIG_SPL_USB_GADGET=y | |
146 | +CONFIG_SPL_USB_SDP_SUPPORT=y | |
147 | +CONFIG_SPL_SDP_USB_DEV=1 | |
148 | +CONFIG_SDP_LOADADDR=0x80400000 | |
149 | + | |
150 | +CONFIG_FASTBOOT=y | |
151 | +CONFIG_USB_FUNCTION_FASTBOOT=y | |
152 | +CONFIG_CMD_FASTBOOT=y | |
153 | +CONFIG_ANDROID_BOOT_IMAGE=y | |
154 | +CONFIG_FASTBOOT_UUU_SUPPORT=y | |
155 | +CONFIG_FASTBOOT_BUF_ADDR=0x82800000 | |
156 | +CONFIG_FASTBOOT_BUF_SIZE=0x40000000 | |
157 | +CONFIG_FASTBOOT_FLASH=y | |
158 | +CONFIG_FASTBOOT_FLASH_MMC_DEV=0 | |
159 | +CONFIG_FASTBOOT_USB_DEV=1 | |
160 | + | |
161 | +CONFIG_BOOTAUX_RESERVED_MEM_BASE=0x88000000 | |
162 | +CONFIG_BOOTAUX_RESERVED_MEM_SIZE=0x08000000 | |
163 | + | |
164 | +CONFIG_REGMAP=y | |
165 | +CONFIG_SYSCON=y | |
166 | +CONFIG_AHCI=y | |
167 | +CONFIG_IMX_AHCI=y | |
168 | +CONFIG_DM_SCSI=y | |
169 | +CONFIG_SCSI=y | |
170 | +CONFIG_CMD_SCSI=y | |
171 | + | |
172 | +CONFIG_PCI=y | |
173 | +CONFIG_DM_PCI=y | |
174 | + | |
175 | +CONFIG_USB_PORT_AUTO=y | |
176 | + | |
177 | +CONFIG_SNVS_SEC_SC=y | |
178 | + | |
179 | +CONFIG_VIDEO_IMX_HDP_LOAD=y | |
180 | +CONFIG_OF_LIBFDT_OVERLAY=y | |
181 | + | |
182 | +CONFIG_VIDEO_IMXDPUV1=y | |
183 | +CONFIG_VIDEO_IMX8_LVDS=y | |
184 | +CONFIG_SYS_WHITE_ON_BLACK=y |
configs/smarcimx8qm_8g_ser1_defconfig
1 | +CONFIG_ARM=y | |
2 | +CONFIG_SPL_SYS_ICACHE_OFF=y | |
3 | +CONFIG_SPL_SYS_DCACHE_OFF=y | |
4 | +CONFIG_ARCH_IMX8=y | |
5 | +CONFIG_SYS_TEXT_BASE=0x80020000 | |
6 | +CONFIG_SPL_GPIO_SUPPORT=y | |
7 | +CONFIG_SPL_LIBCOMMON_SUPPORT=y | |
8 | +CONFIG_SPL_LIBGENERIC_SUPPORT=y | |
9 | +CONFIG_SYS_MALLOC_F_LEN=0x8000 | |
10 | +CONFIG_ENV_SIZE=0x2000 | |
11 | +CONFIG_ENV_OFFSET=0x400000 | |
12 | +CONFIG_DM_GPIO=y | |
13 | +CONFIG_SPL_LOAD_IMX_CONTAINER=y | |
14 | +CONFIG_IMX_CONTAINER_CFG="board/embedian/smarcimx8qm/uboot-container.cfg,8GB_LPDDR4" | |
15 | +CONFIG_TARGET_SMARCIMX8QM=y | |
16 | +CONFIG_SPL_MMC_SUPPORT=y | |
17 | +CONFIG_SPL_EFI_PARTITION=n | |
18 | +CONFIG_SPL_DOS_PARTITION=n | |
19 | +CONFIG_SPL_DM_SEQ_ALIAS=y | |
20 | +CONFIG_SPL_SERIAL_SUPPORT=y | |
21 | +CONFIG_SPL_DRIVERS_MISC_SUPPORT=y | |
22 | +CONFIG_USE_TINY_PRINTF=y | |
23 | +CONFIG_NR_DRAM_BANKS=4 | |
24 | +CONFIG_SPL=y | |
25 | +CONFIG_PANIC_HANG=y | |
26 | +CONFIG_SPL_TEXT_BASE=0x100000 | |
27 | +CONFIG_OF_SYSTEM_SETUP=y | |
28 | +CONFIG_SYS_EXTRA_OPTIONS="IMX_CONFIG=board/embedian/smarcimx8qm/imximage.cfg" | |
29 | +CONFIG_CONSOLE_SER1=y | |
30 | +CONFIG_BOOTDELAY=1 | |
31 | +CONFIG_LOG=y | |
32 | +CONFIG_SPL_BOARD_INIT=y | |
33 | +# CONFIG_SPL_SYS_MALLOC_SIMPLE is not set | |
34 | +CONFIG_SPL_SEPARATE_BSS=y | |
35 | +CONFIG_SPL_POWER_SUPPORT=y | |
36 | +CONFIG_SPL_POWER_DOMAIN=y | |
37 | +CONFIG_SPL_WATCHDOG_SUPPORT=y | |
38 | +CONFIG_HUSH_PARSER=y | |
39 | +CONFIG_CMD_CPU=y | |
40 | +CONFIG_SYS_PROMPT="u-boot$ " | |
41 | +# CONFIG_BOOTM_NETBSD is not set | |
42 | +CONFIG_CMD_IMPORTENV=y | |
43 | +CONFIG_CMD_CLK=y | |
44 | +CONFIG_CMD_DM=y | |
45 | +CONFIG_CMD_GPIO=y | |
46 | +CONFIG_CMD_I2C=y | |
47 | +CONFIG_CMD_MMC=y | |
48 | +CONFIG_CMD_DHCP=y | |
49 | +CONFIG_CMD_MII=y | |
50 | +CONFIG_CMD_PING=y | |
51 | +CONFIG_CMD_CACHE=y | |
52 | +CONFIG_CMD_EXT2=y | |
53 | +CONFIG_CMD_EXT4=y | |
54 | +CONFIG_CMD_EXT4_WRITE=y | |
55 | +CONFIG_CMD_FAT=y | |
56 | +CONFIG_CMD_GPT=y | |
57 | +CONFIG_CMD_TIME=y | |
58 | +CONFIG_SPL_OF_CONTROL=y | |
59 | +CONFIG_DEFAULT_DEVICE_TREE="fsl-smarcimx8qm" | |
60 | +CONFIG_DEFAULT_FDT_FILE="imx8qm-smarc.dtb" | |
61 | +CONFIG_ENV_IS_IN_MMC=y | |
62 | +CONFIG_SYS_RELOC_GD_ENV_ADDR=y | |
63 | +CONFIG_NET_RANDOM_ETHADDR=y | |
64 | +CONFIG_SPL_DM=y | |
65 | +CONFIG_SPL_CLK=y | |
66 | +CONFIG_CLK_IMX8=y | |
67 | +CONFIG_CPU=y | |
68 | +CONFIG_MXC_GPIO=y | |
69 | +#CONFIG_DM_PCA953X=y | |
70 | +CONFIG_DM_I2C=y | |
71 | +CONFIG_SYS_I2C_IMX_LPI2C=y | |
72 | +CONFIG_I2C_MUX=y | |
73 | +#CONFIG_I2C_MUX_PCA954x=y | |
74 | +CONFIG_MISC=y | |
75 | +CONFIG_DM_MMC=y | |
76 | +CONFIG_SUPPORT_EMMC_BOOT=y | |
77 | +CONFIG_FSL_USDHC=y | |
78 | +CONFIG_MMC_IO_VOLTAGE=y | |
79 | +CONFIG_MMC_UHS_SUPPORT=y | |
80 | +CONFIG_MMC_HS400_SUPPORT=y | |
81 | +CONFIG_EFI_PARTITION=y | |
82 | +CONFIG_PHYLIB=y | |
83 | +CONFIG_PHY_ADDR_ENABLE=y | |
84 | +CONFIG_PHY_ATHEROS=y | |
85 | +CONFIG_DM_ETH=y | |
86 | +CONFIG_PHY_GIGE=y | |
87 | +CONFIG_FEC_MXC_SHARE_MDIO=y | |
88 | +CONFIG_FEC_MXC_MDIO_BASE=0x5B040000 | |
89 | +CONFIG_FEC_MXC=y | |
90 | +CONFIG_MII=y | |
91 | +CONFIG_PINCTRL=y | |
92 | +CONFIG_SPL_PINCTRL=y | |
93 | +CONFIG_PINCTRL_IMX8=y | |
94 | +CONFIG_POWER_DOMAIN=y | |
95 | +CONFIG_IMX8_POWER_DOMAIN=y | |
96 | +CONFIG_DM_REGULATOR=y | |
97 | +CONFIG_SPL_DM_REGULATOR=y | |
98 | +CONFIG_DM_REGULATOR_FIXED=y | |
99 | +CONFIG_DM_REGULATOR_GPIO=y | |
100 | +CONFIG_SPL_DM_REGULATOR_FIXED=y | |
101 | +CONFIG_DM_SERIAL=y | |
102 | +CONFIG_FSL_LPUART=y | |
103 | +CONFIG_SPL_TINY_MEMSET=y | |
104 | +# CONFIG_EFI_LOADER is not set | |
105 | + | |
106 | +CONFIG_CMD_FUSE=y | |
107 | +CONFIG_CMD_MEMTEST=y | |
108 | + | |
109 | +CONFIG_IMX_BOOTAUX=y | |
110 | + | |
111 | +CONFIG_DM_THERMAL=y | |
112 | +CONFIG_IMX_SCU_THERMAL=y | |
113 | +CONFIG_SPI=y | |
114 | +CONFIG_FSL_FSPI=y | |
115 | +CONFIG_DM_SPI=y | |
116 | +CONFIG_DM_SPI_FLASH=y | |
117 | +CONFIG_SPI_FLASH=y | |
118 | +CONFIG_SPI_FLASH_MACRONIX=y | |
119 | +CONFIG_CMD_SF=y | |
120 | +CONFIG_SF_DEFAULT_BUS=0 | |
121 | +CONFIG_SF_DEFAULT_CS=0 | |
122 | +CONFIG_SF_DEFAULT_SPEED=40000000 | |
123 | +CONFIG_SF_DEFAULT_MODE=0 | |
124 | + | |
125 | +CONFIG_USB_XHCI_HCD=y | |
126 | +CONFIG_USB_XHCI_IMX8=y | |
127 | +CONFIG_DM_USB=y | |
128 | +CONFIG_DM_USB_GADGET=y | |
129 | +CONFIG_SPL_DM_USB_GADGET=y | |
130 | +CONFIG_USB=y | |
131 | +#CONFIG_USB_TCPC=y | |
132 | +CONFIG_USB_GADGET=y | |
133 | +CONFIG_CI_UDC=y | |
134 | +CONFIG_USB_GADGET_DOWNLOAD=y | |
135 | +CONFIG_USB_GADGET_MANUFACTURER="FSL" | |
136 | +CONFIG_USB_GADGET_VENDOR_NUM=0x0525 | |
137 | +CONFIG_USB_GADGET_PRODUCT_NUM=0xa4a5 | |
138 | +CONFIG_USB_CDNS3=y | |
139 | +CONFIG_USB_CDNS3_GADGET=y | |
140 | +CONFIG_USB_GADGET_DUALSPEED=y | |
141 | +CONFIG_CDNS3_USB_PHY=y | |
142 | +CONFIG_PHY=y | |
143 | +CONFIG_SPL_PHY=y | |
144 | + | |
145 | +CONFIG_SPL_USB_GADGET=y | |
146 | +CONFIG_SPL_USB_SDP_SUPPORT=y | |
147 | +CONFIG_SPL_SDP_USB_DEV=1 | |
148 | +CONFIG_SDP_LOADADDR=0x80400000 | |
149 | + | |
150 | +CONFIG_FASTBOOT=y | |
151 | +CONFIG_USB_FUNCTION_FASTBOOT=y | |
152 | +CONFIG_CMD_FASTBOOT=y | |
153 | +CONFIG_ANDROID_BOOT_IMAGE=y | |
154 | +CONFIG_FASTBOOT_UUU_SUPPORT=y | |
155 | +CONFIG_FASTBOOT_BUF_ADDR=0x82800000 | |
156 | +CONFIG_FASTBOOT_BUF_SIZE=0x40000000 | |
157 | +CONFIG_FASTBOOT_FLASH=y | |
158 | +CONFIG_FASTBOOT_FLASH_MMC_DEV=0 | |
159 | +CONFIG_FASTBOOT_USB_DEV=1 | |
160 | + | |
161 | +CONFIG_BOOTAUX_RESERVED_MEM_BASE=0x88000000 | |
162 | +CONFIG_BOOTAUX_RESERVED_MEM_SIZE=0x08000000 | |
163 | + | |
164 | +CONFIG_REGMAP=y | |
165 | +CONFIG_SYSCON=y | |
166 | +CONFIG_AHCI=y | |
167 | +CONFIG_IMX_AHCI=y | |
168 | +CONFIG_DM_SCSI=y | |
169 | +CONFIG_SCSI=y | |
170 | +CONFIG_CMD_SCSI=y | |
171 | + | |
172 | +CONFIG_PCI=y | |
173 | +CONFIG_DM_PCI=y | |
174 | + | |
175 | +CONFIG_USB_PORT_AUTO=y | |
176 | + | |
177 | +CONFIG_SNVS_SEC_SC=y | |
178 | + | |
179 | +CONFIG_VIDEO_IMX_HDP_LOAD=y | |
180 | +CONFIG_OF_LIBFDT_OVERLAY=y | |
181 | + | |
182 | +CONFIG_VIDEO_IMXDPUV1=y | |
183 | +CONFIG_VIDEO_IMX8_LVDS=y | |
184 | +CONFIG_SYS_WHITE_ON_BLACK=y |
configs/smarcimx8qm_8g_ser2_defconfig
1 | +CONFIG_ARM=y | |
2 | +CONFIG_SPL_SYS_ICACHE_OFF=y | |
3 | +CONFIG_SPL_SYS_DCACHE_OFF=y | |
4 | +CONFIG_ARCH_IMX8=y | |
5 | +CONFIG_SYS_TEXT_BASE=0x80020000 | |
6 | +CONFIG_SPL_GPIO_SUPPORT=y | |
7 | +CONFIG_SPL_LIBCOMMON_SUPPORT=y | |
8 | +CONFIG_SPL_LIBGENERIC_SUPPORT=y | |
9 | +CONFIG_SYS_MALLOC_F_LEN=0x8000 | |
10 | +CONFIG_ENV_SIZE=0x2000 | |
11 | +CONFIG_ENV_OFFSET=0x400000 | |
12 | +CONFIG_DM_GPIO=y | |
13 | +CONFIG_SPL_LOAD_IMX_CONTAINER=y | |
14 | +CONFIG_IMX_CONTAINER_CFG="board/embedian/smarcimx8qm/uboot-container.cfg,8GB_LPDDR4" | |
15 | +CONFIG_TARGET_SMARCIMX8QM=y | |
16 | +CONFIG_SPL_MMC_SUPPORT=y | |
17 | +CONFIG_SPL_EFI_PARTITION=n | |
18 | +CONFIG_SPL_DOS_PARTITION=n | |
19 | +CONFIG_SPL_DM_SEQ_ALIAS=y | |
20 | +CONFIG_SPL_SERIAL_SUPPORT=y | |
21 | +CONFIG_SPL_DRIVERS_MISC_SUPPORT=y | |
22 | +CONFIG_USE_TINY_PRINTF=y | |
23 | +CONFIG_NR_DRAM_BANKS=4 | |
24 | +CONFIG_SPL=y | |
25 | +CONFIG_PANIC_HANG=y | |
26 | +CONFIG_SPL_TEXT_BASE=0x100000 | |
27 | +CONFIG_OF_SYSTEM_SETUP=y | |
28 | +CONFIG_SYS_EXTRA_OPTIONS="IMX_CONFIG=board/embedian/smarcimx8qm/imximage.cfg" | |
29 | +CONFIG_CONSOLE_SER2=y | |
30 | +CONFIG_BOOTDELAY=1 | |
31 | +CONFIG_LOG=y | |
32 | +CONFIG_SPL_BOARD_INIT=y | |
33 | +# CONFIG_SPL_SYS_MALLOC_SIMPLE is not set | |
34 | +CONFIG_SPL_SEPARATE_BSS=y | |
35 | +CONFIG_SPL_POWER_SUPPORT=y | |
36 | +CONFIG_SPL_POWER_DOMAIN=y | |
37 | +CONFIG_SPL_WATCHDOG_SUPPORT=y | |
38 | +CONFIG_HUSH_PARSER=y | |
39 | +CONFIG_CMD_CPU=y | |
40 | +CONFIG_SYS_PROMPT="u-boot$ " | |
41 | +# CONFIG_BOOTM_NETBSD is not set | |
42 | +CONFIG_CMD_IMPORTENV=y | |
43 | +CONFIG_CMD_CLK=y | |
44 | +CONFIG_CMD_DM=y | |
45 | +CONFIG_CMD_GPIO=y | |
46 | +CONFIG_CMD_I2C=y | |
47 | +CONFIG_CMD_MMC=y | |
48 | +CONFIG_CMD_DHCP=y | |
49 | +CONFIG_CMD_MII=y | |
50 | +CONFIG_CMD_PING=y | |
51 | +CONFIG_CMD_CACHE=y | |
52 | +CONFIG_CMD_EXT2=y | |
53 | +CONFIG_CMD_EXT4=y | |
54 | +CONFIG_CMD_EXT4_WRITE=y | |
55 | +CONFIG_CMD_FAT=y | |
56 | +CONFIG_CMD_GPT=y | |
57 | +CONFIG_CMD_TIME=y | |
58 | +CONFIG_SPL_OF_CONTROL=y | |
59 | +CONFIG_DEFAULT_DEVICE_TREE="fsl-smarcimx8qm" | |
60 | +CONFIG_DEFAULT_FDT_FILE="imx8qm-smarc.dtb" | |
61 | +CONFIG_ENV_IS_IN_MMC=y | |
62 | +CONFIG_SYS_RELOC_GD_ENV_ADDR=y | |
63 | +CONFIG_NET_RANDOM_ETHADDR=y | |
64 | +CONFIG_SPL_DM=y | |
65 | +CONFIG_SPL_CLK=y | |
66 | +CONFIG_CLK_IMX8=y | |
67 | +CONFIG_CPU=y | |
68 | +CONFIG_MXC_GPIO=y | |
69 | +#CONFIG_DM_PCA953X=y | |
70 | +CONFIG_DM_I2C=y | |
71 | +CONFIG_SYS_I2C_IMX_LPI2C=y | |
72 | +CONFIG_I2C_MUX=y | |
73 | +#CONFIG_I2C_MUX_PCA954x=y | |
74 | +CONFIG_MISC=y | |
75 | +CONFIG_DM_MMC=y | |
76 | +CONFIG_SUPPORT_EMMC_BOOT=y | |
77 | +CONFIG_FSL_USDHC=y | |
78 | +CONFIG_MMC_IO_VOLTAGE=y | |
79 | +CONFIG_MMC_UHS_SUPPORT=y | |
80 | +CONFIG_MMC_HS400_SUPPORT=y | |
81 | +CONFIG_EFI_PARTITION=y | |
82 | +CONFIG_PHYLIB=y | |
83 | +CONFIG_PHY_ADDR_ENABLE=y | |
84 | +CONFIG_PHY_ATHEROS=y | |
85 | +CONFIG_DM_ETH=y | |
86 | +CONFIG_PHY_GIGE=y | |
87 | +CONFIG_FEC_MXC_SHARE_MDIO=y | |
88 | +CONFIG_FEC_MXC_MDIO_BASE=0x5B040000 | |
89 | +CONFIG_FEC_MXC=y | |
90 | +CONFIG_MII=y | |
91 | +CONFIG_PINCTRL=y | |
92 | +CONFIG_SPL_PINCTRL=y | |
93 | +CONFIG_PINCTRL_IMX8=y | |
94 | +CONFIG_POWER_DOMAIN=y | |
95 | +CONFIG_IMX8_POWER_DOMAIN=y | |
96 | +CONFIG_DM_REGULATOR=y | |
97 | +CONFIG_SPL_DM_REGULATOR=y | |
98 | +CONFIG_DM_REGULATOR_FIXED=y | |
99 | +CONFIG_DM_REGULATOR_GPIO=y | |
100 | +CONFIG_SPL_DM_REGULATOR_FIXED=y | |
101 | +CONFIG_DM_SERIAL=y | |
102 | +CONFIG_FSL_LPUART=y | |
103 | +CONFIG_SPL_TINY_MEMSET=y | |
104 | +# CONFIG_EFI_LOADER is not set | |
105 | + | |
106 | +CONFIG_CMD_FUSE=y | |
107 | +CONFIG_CMD_MEMTEST=y | |
108 | + | |
109 | +CONFIG_IMX_BOOTAUX=y | |
110 | + | |
111 | +CONFIG_DM_THERMAL=y | |
112 | +CONFIG_IMX_SCU_THERMAL=y | |
113 | +CONFIG_SPI=y | |
114 | +CONFIG_FSL_FSPI=y | |
115 | +CONFIG_DM_SPI=y | |
116 | +CONFIG_DM_SPI_FLASH=y | |
117 | +CONFIG_SPI_FLASH=y | |
118 | +CONFIG_SPI_FLASH_MACRONIX=y | |
119 | +CONFIG_CMD_SF=y | |
120 | +CONFIG_SF_DEFAULT_BUS=0 | |
121 | +CONFIG_SF_DEFAULT_CS=0 | |
122 | +CONFIG_SF_DEFAULT_SPEED=40000000 | |
123 | +CONFIG_SF_DEFAULT_MODE=0 | |
124 | + | |
125 | +CONFIG_USB_XHCI_HCD=y | |
126 | +CONFIG_USB_XHCI_IMX8=y | |
127 | +CONFIG_DM_USB=y | |
128 | +CONFIG_DM_USB_GADGET=y | |
129 | +CONFIG_SPL_DM_USB_GADGET=y | |
130 | +CONFIG_USB=y | |
131 | +#CONFIG_USB_TCPC=y | |
132 | +CONFIG_USB_GADGET=y | |
133 | +CONFIG_CI_UDC=y | |
134 | +CONFIG_USB_GADGET_DOWNLOAD=y | |
135 | +CONFIG_USB_GADGET_MANUFACTURER="FSL" | |
136 | +CONFIG_USB_GADGET_VENDOR_NUM=0x0525 | |
137 | +CONFIG_USB_GADGET_PRODUCT_NUM=0xa4a5 | |
138 | +CONFIG_USB_CDNS3=y | |
139 | +CONFIG_USB_CDNS3_GADGET=y | |
140 | +CONFIG_USB_GADGET_DUALSPEED=y | |
141 | +CONFIG_CDNS3_USB_PHY=y | |
142 | +CONFIG_PHY=y | |
143 | +CONFIG_SPL_PHY=y | |
144 | + | |
145 | +CONFIG_SPL_USB_GADGET=y | |
146 | +CONFIG_SPL_USB_SDP_SUPPORT=y | |
147 | +CONFIG_SPL_SDP_USB_DEV=1 | |
148 | +CONFIG_SDP_LOADADDR=0x80400000 | |
149 | + | |
150 | +CONFIG_FASTBOOT=y | |
151 | +CONFIG_USB_FUNCTION_FASTBOOT=y | |
152 | +CONFIG_CMD_FASTBOOT=y | |
153 | +CONFIG_ANDROID_BOOT_IMAGE=y | |
154 | +CONFIG_FASTBOOT_UUU_SUPPORT=y | |
155 | +CONFIG_FASTBOOT_BUF_ADDR=0x82800000 | |
156 | +CONFIG_FASTBOOT_BUF_SIZE=0x40000000 | |
157 | +CONFIG_FASTBOOT_FLASH=y | |
158 | +CONFIG_FASTBOOT_FLASH_MMC_DEV=0 | |
159 | +CONFIG_FASTBOOT_USB_DEV=1 | |
160 | + | |
161 | +CONFIG_BOOTAUX_RESERVED_MEM_BASE=0x88000000 | |
162 | +CONFIG_BOOTAUX_RESERVED_MEM_SIZE=0x08000000 | |
163 | + | |
164 | +CONFIG_REGMAP=y | |
165 | +CONFIG_SYSCON=y | |
166 | +CONFIG_AHCI=y | |
167 | +CONFIG_IMX_AHCI=y | |
168 | +CONFIG_DM_SCSI=y | |
169 | +CONFIG_SCSI=y | |
170 | +CONFIG_CMD_SCSI=y | |
171 | + | |
172 | +CONFIG_PCI=y | |
173 | +CONFIG_DM_PCI=y | |
174 | + | |
175 | +CONFIG_USB_PORT_AUTO=y | |
176 | + | |
177 | +CONFIG_SNVS_SEC_SC=y | |
178 | + | |
179 | +CONFIG_VIDEO_IMX_HDP_LOAD=y | |
180 | +CONFIG_OF_LIBFDT_OVERLAY=y | |
181 | + | |
182 | +CONFIG_VIDEO_IMXDPUV1=y | |
183 | +CONFIG_VIDEO_IMX8_LVDS=y | |
184 | +CONFIG_SYS_WHITE_ON_BLACK=y |
configs/smarcimx8qm_8g_ser3_defconfig
1 | +CONFIG_ARM=y | |
2 | +CONFIG_SPL_SYS_ICACHE_OFF=y | |
3 | +CONFIG_SPL_SYS_DCACHE_OFF=y | |
4 | +CONFIG_ARCH_IMX8=y | |
5 | +CONFIG_SYS_TEXT_BASE=0x80020000 | |
6 | +CONFIG_SPL_GPIO_SUPPORT=y | |
7 | +CONFIG_SPL_LIBCOMMON_SUPPORT=y | |
8 | +CONFIG_SPL_LIBGENERIC_SUPPORT=y | |
9 | +CONFIG_SYS_MALLOC_F_LEN=0x8000 | |
10 | +CONFIG_ENV_SIZE=0x2000 | |
11 | +CONFIG_ENV_OFFSET=0x400000 | |
12 | +CONFIG_DM_GPIO=y | |
13 | +CONFIG_SPL_LOAD_IMX_CONTAINER=y | |
14 | +CONFIG_IMX_CONTAINER_CFG="board/embedian/smarcimx8qm/uboot-container.cfg,8GB_LPDDR4" | |
15 | +CONFIG_TARGET_SMARCIMX8QM=y | |
16 | +CONFIG_SPL_MMC_SUPPORT=y | |
17 | +CONFIG_SPL_EFI_PARTITION=n | |
18 | +CONFIG_SPL_DOS_PARTITION=n | |
19 | +CONFIG_SPL_DM_SEQ_ALIAS=y | |
20 | +CONFIG_SPL_SERIAL_SUPPORT=y | |
21 | +CONFIG_SPL_DRIVERS_MISC_SUPPORT=y | |
22 | +CONFIG_USE_TINY_PRINTF=y | |
23 | +CONFIG_NR_DRAM_BANKS=4 | |
24 | +CONFIG_SPL=y | |
25 | +CONFIG_PANIC_HANG=y | |
26 | +CONFIG_SPL_TEXT_BASE=0x100000 | |
27 | +CONFIG_OF_SYSTEM_SETUP=y | |
28 | +CONFIG_SYS_EXTRA_OPTIONS="IMX_CONFIG=board/embedian/smarcimx8qm/imximage.cfg" | |
29 | +CONFIG_CONSOLE_SER3=y | |
30 | +CONFIG_BOOTDELAY=1 | |
31 | +CONFIG_LOG=y | |
32 | +CONFIG_SPL_BOARD_INIT=y | |
33 | +# CONFIG_SPL_SYS_MALLOC_SIMPLE is not set | |
34 | +CONFIG_SPL_SEPARATE_BSS=y | |
35 | +CONFIG_SPL_POWER_SUPPORT=y | |
36 | +CONFIG_SPL_POWER_DOMAIN=y | |
37 | +CONFIG_SPL_WATCHDOG_SUPPORT=y | |
38 | +CONFIG_HUSH_PARSER=y | |
39 | +CONFIG_CMD_CPU=y | |
40 | +CONFIG_SYS_PROMPT="u-boot$ " | |
41 | +# CONFIG_BOOTM_NETBSD is not set | |
42 | +CONFIG_CMD_IMPORTENV=y | |
43 | +CONFIG_CMD_CLK=y | |
44 | +CONFIG_CMD_DM=y | |
45 | +CONFIG_CMD_GPIO=y | |
46 | +CONFIG_CMD_I2C=y | |
47 | +CONFIG_CMD_MMC=y | |
48 | +CONFIG_CMD_DHCP=y | |
49 | +CONFIG_CMD_MII=y | |
50 | +CONFIG_CMD_PING=y | |
51 | +CONFIG_CMD_CACHE=y | |
52 | +CONFIG_CMD_EXT2=y | |
53 | +CONFIG_CMD_EXT4=y | |
54 | +CONFIG_CMD_EXT4_WRITE=y | |
55 | +CONFIG_CMD_FAT=y | |
56 | +CONFIG_CMD_GPT=y | |
57 | +CONFIG_CMD_TIME=y | |
58 | +CONFIG_SPL_OF_CONTROL=y | |
59 | +CONFIG_DEFAULT_DEVICE_TREE="fsl-smarcimx8qm" | |
60 | +CONFIG_DEFAULT_FDT_FILE="imx8qm-smarc.dtb" | |
61 | +CONFIG_ENV_IS_IN_MMC=y | |
62 | +CONFIG_SYS_RELOC_GD_ENV_ADDR=y | |
63 | +CONFIG_NET_RANDOM_ETHADDR=y | |
64 | +CONFIG_SPL_DM=y | |
65 | +CONFIG_SPL_CLK=y | |
66 | +CONFIG_CLK_IMX8=y | |
67 | +CONFIG_CPU=y | |
68 | +CONFIG_MXC_GPIO=y | |
69 | +#CONFIG_DM_PCA953X=y | |
70 | +CONFIG_DM_I2C=y | |
71 | +CONFIG_SYS_I2C_IMX_LPI2C=y | |
72 | +CONFIG_I2C_MUX=y | |
73 | +#CONFIG_I2C_MUX_PCA954x=y | |
74 | +CONFIG_MISC=y | |
75 | +CONFIG_DM_MMC=y | |
76 | +CONFIG_SUPPORT_EMMC_BOOT=y | |
77 | +CONFIG_FSL_USDHC=y | |
78 | +CONFIG_MMC_IO_VOLTAGE=y | |
79 | +CONFIG_MMC_UHS_SUPPORT=y | |
80 | +CONFIG_MMC_HS400_SUPPORT=y | |
81 | +CONFIG_EFI_PARTITION=y | |
82 | +CONFIG_PHYLIB=y | |
83 | +CONFIG_PHY_ADDR_ENABLE=y | |
84 | +CONFIG_PHY_ATHEROS=y | |
85 | +CONFIG_DM_ETH=y | |
86 | +CONFIG_PHY_GIGE=y | |
87 | +CONFIG_FEC_MXC_SHARE_MDIO=y | |
88 | +CONFIG_FEC_MXC_MDIO_BASE=0x5B040000 | |
89 | +CONFIG_FEC_MXC=y | |
90 | +CONFIG_MII=y | |
91 | +CONFIG_PINCTRL=y | |
92 | +CONFIG_SPL_PINCTRL=y | |
93 | +CONFIG_PINCTRL_IMX8=y | |
94 | +CONFIG_POWER_DOMAIN=y | |
95 | +CONFIG_IMX8_POWER_DOMAIN=y | |
96 | +CONFIG_DM_REGULATOR=y | |
97 | +CONFIG_SPL_DM_REGULATOR=y | |
98 | +CONFIG_DM_REGULATOR_FIXED=y | |
99 | +CONFIG_DM_REGULATOR_GPIO=y | |
100 | +CONFIG_SPL_DM_REGULATOR_FIXED=y | |
101 | +CONFIG_DM_SERIAL=y | |
102 | +CONFIG_FSL_LPUART=y | |
103 | +CONFIG_SPL_TINY_MEMSET=y | |
104 | +# CONFIG_EFI_LOADER is not set | |
105 | + | |
106 | +CONFIG_CMD_FUSE=y | |
107 | +CONFIG_CMD_MEMTEST=y | |
108 | + | |
109 | +CONFIG_IMX_BOOTAUX=y | |
110 | + | |
111 | +CONFIG_DM_THERMAL=y | |
112 | +CONFIG_IMX_SCU_THERMAL=y | |
113 | +CONFIG_SPI=y | |
114 | +CONFIG_FSL_FSPI=y | |
115 | +CONFIG_DM_SPI=y | |
116 | +CONFIG_DM_SPI_FLASH=y | |
117 | +CONFIG_SPI_FLASH=y | |
118 | +CONFIG_SPI_FLASH_MACRONIX=y | |
119 | +CONFIG_CMD_SF=y | |
120 | +CONFIG_SF_DEFAULT_BUS=0 | |
121 | +CONFIG_SF_DEFAULT_CS=0 | |
122 | +CONFIG_SF_DEFAULT_SPEED=40000000 | |
123 | +CONFIG_SF_DEFAULT_MODE=0 | |
124 | + | |
125 | +CONFIG_USB_XHCI_HCD=y | |
126 | +CONFIG_USB_XHCI_IMX8=y | |
127 | +CONFIG_DM_USB=y | |
128 | +CONFIG_DM_USB_GADGET=y | |
129 | +CONFIG_SPL_DM_USB_GADGET=y | |
130 | +CONFIG_USB=y | |
131 | +#CONFIG_USB_TCPC=y | |
132 | +CONFIG_USB_GADGET=y | |
133 | +CONFIG_CI_UDC=y | |
134 | +CONFIG_USB_GADGET_DOWNLOAD=y | |
135 | +CONFIG_USB_GADGET_MANUFACTURER="FSL" | |
136 | +CONFIG_USB_GADGET_VENDOR_NUM=0x0525 | |
137 | +CONFIG_USB_GADGET_PRODUCT_NUM=0xa4a5 | |
138 | +CONFIG_USB_CDNS3=y | |
139 | +CONFIG_USB_CDNS3_GADGET=y | |
140 | +CONFIG_USB_GADGET_DUALSPEED=y | |
141 | +CONFIG_CDNS3_USB_PHY=y | |
142 | +CONFIG_PHY=y | |
143 | +CONFIG_SPL_PHY=y | |
144 | + | |
145 | +CONFIG_SPL_USB_GADGET=y | |
146 | +CONFIG_SPL_USB_SDP_SUPPORT=y | |
147 | +CONFIG_SPL_SDP_USB_DEV=1 | |
148 | +CONFIG_SDP_LOADADDR=0x80400000 | |
149 | + | |
150 | +CONFIG_FASTBOOT=y | |
151 | +CONFIG_USB_FUNCTION_FASTBOOT=y | |
152 | +CONFIG_CMD_FASTBOOT=y | |
153 | +CONFIG_ANDROID_BOOT_IMAGE=y | |
154 | +CONFIG_FASTBOOT_UUU_SUPPORT=y | |
155 | +CONFIG_FASTBOOT_BUF_ADDR=0x82800000 | |
156 | +CONFIG_FASTBOOT_BUF_SIZE=0x40000000 | |
157 | +CONFIG_FASTBOOT_FLASH=y | |
158 | +CONFIG_FASTBOOT_FLASH_MMC_DEV=0 | |
159 | +CONFIG_FASTBOOT_USB_DEV=1 | |
160 | + | |
161 | +CONFIG_BOOTAUX_RESERVED_MEM_BASE=0x88000000 | |
162 | +CONFIG_BOOTAUX_RESERVED_MEM_SIZE=0x08000000 | |
163 | + | |
164 | +CONFIG_REGMAP=y | |
165 | +CONFIG_SYSCON=y | |
166 | +CONFIG_AHCI=y | |
167 | +CONFIG_IMX_AHCI=y | |
168 | +CONFIG_DM_SCSI=y | |
169 | +CONFIG_SCSI=y | |
170 | +CONFIG_CMD_SCSI=y | |
171 | + | |
172 | +CONFIG_PCI=y | |
173 | +CONFIG_DM_PCI=y | |
174 | + | |
175 | +CONFIG_USB_PORT_AUTO=y | |
176 | + | |
177 | +CONFIG_SNVS_SEC_SC=y | |
178 | + | |
179 | +CONFIG_VIDEO_IMX_HDP_LOAD=y | |
180 | +CONFIG_OF_LIBFDT_OVERLAY=y | |
181 | + | |
182 | +CONFIG_VIDEO_IMXDPUV1=y | |
183 | +CONFIG_VIDEO_IMX8_LVDS=y | |
184 | +CONFIG_SYS_WHITE_ON_BLACK=y |
drivers/clk/imx/clk-imx8qm.c
... | ... | @@ -40,6 +40,7 @@ |
40 | 40 | CLK_4( IMX8QM_UART1_DIV, "UART1_DIV", SC_R_UART_1, SC_PM_CLK_PER ), |
41 | 41 | CLK_4( IMX8QM_UART2_DIV, "UART2_DIV", SC_R_UART_2, SC_PM_CLK_PER ), |
42 | 42 | CLK_4( IMX8QM_UART3_DIV, "UART3_DIV", SC_R_UART_3, SC_PM_CLK_PER ), |
43 | + CLK_4( IMX8QM_UART4_DIV, "UART4_DIV", SC_R_UART_4, SC_PM_CLK_PER ), | |
43 | 44 | CLK_4( IMX8QM_SDHC0_DIV, "SDHC0_DIV", SC_R_SDHC_0, SC_PM_CLK_PER ), |
44 | 45 | CLK_4( IMX8QM_SDHC1_DIV, "SDHC1_DIV", SC_R_SDHC_1, SC_PM_CLK_PER ), |
45 | 46 | CLK_4( IMX8QM_SDHC2_DIV, "SDHC2_DIV", SC_R_SDHC_2, SC_PM_CLK_PER ), |
... | ... | @@ -139,7 +140,8 @@ |
139 | 140 | CLK_5( IMX8QM_UART2_IPG_CLK, "UART2_IPG", 16, LPUART_2_LPCG, IMX8QM_IPG_DMA_CLK_ROOT ), |
140 | 141 | CLK_5( IMX8QM_UART3_CLK, "UART3_CLK", 0, LPUART_3_LPCG, IMX8QM_UART3_DIV ), |
141 | 142 | CLK_5( IMX8QM_UART3_IPG_CLK, "UART3_IPG", 16, LPUART_3_LPCG, IMX8QM_IPG_DMA_CLK_ROOT ), |
142 | - | |
143 | + CLK_5( IMX8QM_UART4_CLK, "UART4_CLK", 0, LPUART_4_LPCG, IMX8QM_UART4_DIV ), | |
144 | + CLK_5( IMX8QM_UART4_IPG_CLK, "UART4_IPG", 16, LPUART_4_LPCG, IMX8QM_IPG_DMA_CLK_ROOT ), | |
143 | 145 | CLK_5( IMX8QM_SDHC0_CLK, "SDHC0_CLK", 0, USDHC_0_LPCG, IMX8QM_SDHC0_DIV ), |
144 | 146 | CLK_5( IMX8QM_SDHC0_IPG_CLK, "SDHC0_IPG", 16, USDHC_0_LPCG, IMX8QM_IPG_CONN_CLK_ROOT ), |
145 | 147 | CLK_5( IMX8QM_SDHC0_AHB_CLK, "SDHC0_AHB", 20, USDHC_0_LPCG, IMX8QM_AHB_CONN_CLK_ROOT ), |
drivers/serial/Kconfig
... | ... | @@ -763,6 +763,26 @@ |
763 | 763 | If you have a machine based on a Marvell XScale PXA2xx CPU you |
764 | 764 | can enable its onboard serial ports by enabling this option. |
765 | 765 | |
766 | +config CONSOLE_SER0 | |
767 | + bool "SMARC modules default console serial output port" | |
768 | + help | |
769 | + Select this to enable a debug UART port from SER0 of SMARC Modules. | |
770 | + | |
771 | +config CONSOLE_SER1 | |
772 | + bool "SMARC modules default console serial output port" | |
773 | + help | |
774 | + Select this to enable a debug UART port from SER1 of SMARC Modules. | |
775 | + | |
776 | +config CONSOLE_SER2 | |
777 | + bool "SMARC modules default console serial output port" | |
778 | + help | |
779 | + Select this to enable a debug UART port from SER2 of SMARC Modules. | |
780 | + | |
781 | +config CONSOLE_SER3 | |
782 | + bool "SMARC modules default console serial output port" | |
783 | + help | |
784 | + Select this to enable a debug UART port from SER3 of SMARC Modules. | |
785 | + | |
766 | 786 | config SIFIVE_SERIAL |
767 | 787 | bool "SiFive UART support" |
768 | 788 | depends on DM_SERIAL |
include/configs/smarcimx8qm.h
1 | +/* SPDX-License-Identifier: GPL-2.0+ */ | |
2 | +/* | |
3 | + * Copyright 2018 NXP | |
4 | + */ | |
5 | + | |
6 | +#ifndef __SMARCIMX8QM_H | |
7 | +#define __SMARCIMX8QM_H | |
8 | + | |
9 | +#include <linux/sizes.h> | |
10 | +#include <asm/arch/imx-regs.h> | |
11 | +#include "imx_env.h" | |
12 | + | |
13 | +#ifdef CONFIG_SPL_BUILD | |
14 | +#define CONFIG_SPL_MAX_SIZE (192 * 1024) | |
15 | +#define CONFIG_SYS_MONITOR_LEN (1024 * 1024) | |
16 | +#define CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_USE_SECTOR | |
17 | +#define CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_SECTOR 0x1040 /* (flash.bin_offset + 2Mb)/sector_size */ | |
18 | + | |
19 | +/* | |
20 | + * 0x08081000 - 0x08180FFF is for m4_0 xip image, | |
21 | + * 0x08181000 - 0x008280FFF is for m4_1 xip image | |
22 | + * So 3rd container image may start from 0x8281000 | |
23 | + */ | |
24 | +#define CONFIG_SYS_UBOOT_BASE 0x08281000 | |
25 | +#define CONFIG_SYS_MMCSD_FS_BOOT_PARTITION 0 | |
26 | + | |
27 | +#define CONFIG_SPL_LDSCRIPT "arch/arm/cpu/armv8/u-boot-spl.lds" | |
28 | +#define CONFIG_SPL_STACK 0x013fff0 | |
29 | +#define CONFIG_SPL_BSS_START_ADDR 0x00130000 | |
30 | +#define CONFIG_SPL_BSS_MAX_SIZE 0x1000 /* 4 KB */ | |
31 | +#define CONFIG_SYS_SPL_MALLOC_START 0x82200000 | |
32 | +#define CONFIG_SYS_SPL_MALLOC_SIZE 0x80000 /* 512 KB */ | |
33 | +#ifdef CONFIG_CONSOLE_SER0 | |
34 | +#define CONFIG_SERIAL_LPUART_BASE 0x5a060000 /* lpuart0 */ | |
35 | +#endif | |
36 | +#ifdef CONFIG_CONSOLE_SER1 | |
37 | +#define CONFIG_SERIAL_LPUART_BASE 0x5a090000 /* lpuart3 */ | |
38 | +#endif | |
39 | +#ifdef CONFIG_CONSOLE_SER2 | |
40 | +#define CONFIG_SERIAL_LPUART_BASE 0x5a070000 /* lpuart1 */ | |
41 | +#endif | |
42 | +#ifdef CONFIG_CONSOLE_SER3 | |
43 | +#define CONFIG_SERIAL_LPUART_BASE 0x5a0a0000 /* lpuart4 */ | |
44 | +#endif | |
45 | +#define CONFIG_MALLOC_F_ADDR 0x00138000 | |
46 | + | |
47 | +#define CONFIG_SPL_RAW_IMAGE_ARM_TRUSTED_FIRMWARE | |
48 | + | |
49 | +#define CONFIG_SPL_ABORT_ON_RAW_IMAGE | |
50 | + | |
51 | +#endif | |
52 | + | |
53 | +#define CONFIG_REMAKE_ELF | |
54 | + | |
55 | +#define CONFIG_BOARD_EARLY_INIT_F | |
56 | + | |
57 | +#define CONFIG_CMD_READ | |
58 | + | |
59 | +/* Flat Device Tree Definitions */ | |
60 | +#define CONFIG_OF_BOARD_SETUP | |
61 | + | |
62 | +#undef CONFIG_CMD_EXPORTENV | |
63 | +/*#undef CONFIG_CMD_IMPORTENV*/ | |
64 | +#undef CONFIG_CMD_IMLS | |
65 | + | |
66 | +#undef CONFIG_CMD_CRC32 | |
67 | + | |
68 | +#define CONFIG_SYS_FSL_ESDHC_ADDR 0 | |
69 | +#define USDHC1_BASE_ADDR 0x5B010000 | |
70 | +#define USDHC2_BASE_ADDR 0x5B020000 | |
71 | + | |
72 | +#define CONFIG_ENV_OVERWRITE | |
73 | + | |
74 | +#define CONFIG_PCIE_IMX | |
75 | +#define CONFIG_CMD_PCI | |
76 | +#define CONFIG_PCI_SCAN_SHOW | |
77 | + | |
78 | +#define CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG | |
79 | + | |
80 | +#define CONFIG_FEC_XCV_TYPE RGMII | |
81 | +#define FEC_QUIRK_ENET_MAC | |
82 | +#define PHY_ANEG_TIMEOUT 20000 | |
83 | + | |
84 | +/* ENET0 connects AR8031 on CPU board, ENET1 connects to base board */ | |
85 | +#define CONFIG_FEC_ENET_DEV 0 | |
86 | + | |
87 | +#if (CONFIG_FEC_ENET_DEV == 0) | |
88 | +#define IMX_FEC_BASE 0x5B040000 | |
89 | +#define CONFIG_FEC_MXC_PHYADDR 0x6 | |
90 | +#define CONFIG_ETHPRIME "eth0" | |
91 | +#elif (CONFIG_FEC_ENET_DEV == 1) | |
92 | +#define IMX_FEC_BASE 0x5B050000 | |
93 | +#define CONFIG_FEC_MXC_PHYADDR 0x7 | |
94 | +#define CONFIG_ETHPRIME "eth1" | |
95 | +#endif | |
96 | + | |
97 | +#ifdef CONFIG_AHAB_BOOT | |
98 | +#define AHAB_ENV "sec_boot=yes\0" | |
99 | +#else | |
100 | +#define AHAB_ENV "sec_boot=no\0" | |
101 | +#endif | |
102 | + | |
103 | + | |
104 | +#define JAILHOUSE_ENV \ | |
105 | + "jh_mmcboot=" \ | |
106 | + "setenv fdt_file imx8qm-smarc.dtb;"\ | |
107 | + "setenv boot_os 'scu_rm dtb ${fdt_addr}; booti ${loadaddr} - ${fdt_addr};'; " \ | |
108 | + "run mmcboot; \0" \ | |
109 | + "jh_netboot=" \ | |
110 | + "setenv fdt_file imx8qm-smarc.dtb;"\ | |
111 | + "setenv boot_os 'scu_rm dtb ${fdt_addr}; booti ${loadaddr} - ${fdt_addr};'; " \ | |
112 | + "run netboot; \0" | |
113 | + | |
114 | +#define XEN_BOOT_ENV \ | |
115 | + "domu-android-auto=no\0" \ | |
116 | + "xenhyper_bootargs=console=dtuart dom0_mem=2048M dom0_max_vcpus=2 dom0_vcpus_pin=true hmp-unsafe=true\0" \ | |
117 | + "xenlinux_bootargs= \0" \ | |
118 | + "xenlinux_console=hvc0 earlycon=xen\0" \ | |
119 | + "xenlinux_addr=0x9e000000\0" \ | |
120 | + "dom0fdt_file=imx8qm-mek-dom0.dtb\0" \ | |
121 | + "xenboot_common=" \ | |
122 | + "${get_cmd} ${loadaddr} xen;" \ | |
123 | + "${get_cmd} ${fdt_addr} ${dom0fdt_file};" \ | |
124 | + "if ${get_cmd} ${hdp_addr} ${hdp_file}; then; hdp load ${hdp_addr}; fi;" \ | |
125 | + "${get_cmd} ${xenlinux_addr} ${image};" \ | |
126 | + "fdt addr ${fdt_addr};" \ | |
127 | + "fdt resize 256;" \ | |
128 | + "fdt set /chosen/module@0 reg <0x00000000 ${xenlinux_addr} 0x00000000 0x${filesize}>; " \ | |
129 | + "fdt set /chosen/module@0 bootargs \"${bootargs} ${xenlinux_bootargs}\"; " \ | |
130 | + "if test ${domu-android-auto} = yes; then; " \ | |
131 | + "fdt set /domu/doma android-auto <1>;" \ | |
132 | + "fdt rm /gpio@5d090000 power-domains;" \ | |
133 | + "fi;" \ | |
134 | + "setenv bootargs ${xenhyper_bootargs};" \ | |
135 | + "booti ${loadaddr} - ${fdt_addr};" \ | |
136 | + "\0" \ | |
137 | + "xennetboot=" \ | |
138 | + "setenv get_cmd dhcp;" \ | |
139 | + "setenv console ${xenlinux_console};" \ | |
140 | + "run netargs;" \ | |
141 | + "run xenboot_common;" \ | |
142 | + "\0" \ | |
143 | + "xenmmcboot=" \ | |
144 | + "setenv get_cmd \"fatload mmc ${mmcdev}:${mmcpart}\";" \ | |
145 | + "setenv console ${xenlinux_console};" \ | |
146 | + "run mmcargs;" \ | |
147 | + "run xenboot_common;" \ | |
148 | + "\0" \ | |
149 | +/* Boot M4 */ | |
150 | +#define M4_BOOT_ENV \ | |
151 | + "m4_0_image=m4_0.bin\0" \ | |
152 | + "m4_1_image=m4_1.bin\0" \ | |
153 | + "loadm4image_0=fatload mmc ${mmcdev}:${mmcpart} ${loadaddr} ${m4_0_image}\0" \ | |
154 | + "loadm4image_1=fatload mmc ${mmcdev}:${mmcpart} ${loadaddr} ${m4_1_image}\0" \ | |
155 | + "m4boot_0=run loadm4image_0; dcache flush; bootaux ${loadaddr} 0\0" \ | |
156 | + "m4boot_1=run loadm4image_1; dcache flush; bootaux ${loadaddr} 1\0" \ | |
157 | + | |
158 | +#ifdef CONFIG_NAND_BOOT | |
159 | +#define MFG_NAND_PARTITION "mtdparts=gpmi-nand:128m(boot),32m(kernel),16m(dtb),8m(misc),-(rootfs) " | |
160 | +#else | |
161 | +#define MFG_NAND_PARTITION "" | |
162 | +#endif | |
163 | + | |
164 | +#define CONFIG_MFG_ENV_SETTINGS \ | |
165 | + CONFIG_MFG_ENV_SETTINGS_DEFAULT \ | |
166 | + "initrd_addr=0x83100000\0" \ | |
167 | + "initrd_high=0xffffffffffffffff\0" \ | |
168 | + "emmc_dev=0\0" \ | |
169 | + "sd_dev=1\0" \ | |
170 | + | |
171 | +/* Initial environment variables */ | |
172 | +#define CONFIG_EXTRA_ENV_SETTINGS \ | |
173 | + CONFIG_MFG_ENV_SETTINGS \ | |
174 | + M4_BOOT_ENV \ | |
175 | + XEN_BOOT_ENV \ | |
176 | + JAILHOUSE_ENV\ | |
177 | + AHAB_ENV \ | |
178 | + "script=boot.scr\0" \ | |
179 | + "image=Image\0" \ | |
180 | + "splashimage=0x9e000000\0" \ | |
181 | + "console=ttyLP1\0" \ | |
182 | + "fdt_addr=0x83000000\0" \ | |
183 | + "fdt_high=0xffffffffffffffff\0" \ | |
184 | + "env_addr=0x83200000\0" \ | |
185 | + "cntr_addr=0x98000000\0" \ | |
186 | + "cntr_file=os_cntr_signed.bin\0" \ | |
187 | + "boot_fdt=try\0" \ | |
188 | + "fdt_file=" CONFIG_DEFAULT_FDT_FILE "\0" \ | |
189 | + "mmcdev="__stringify(CONFIG_SYS_MMC_ENV_DEV)"\0" \ | |
190 | + "mmcpart=" __stringify(CONFIG_SYS_MMC_IMG_LOAD_PART) "\0" \ | |
191 | + "mmcroot=" CONFIG_MMCROOT " rootwait rw\0" \ | |
192 | + "usbroot=/dev/sda2 rootwait ro\0" \ | |
193 | + "mmcrootfstype=ext4 \0" \ | |
194 | + "loadbootenv=fatload mmc ${mmcdev}:${mmcpart} ${env_addr} uEnv.txt\0" \ | |
195 | + "loadusbbootenv=fatload usb 0:1 ${env_addr} uEnv.txt\0" \ | |
196 | + "mmcautodetect=yes\0" \ | |
197 | + "importbootenv=echo Importing environment from mmc (uEnv.txt)...; " \ | |
198 | + "env import -t ${env_addr} $filesize\0" \ | |
199 | + "importusbbootenv=echo Importing environment from USB (uEnv.txt)...; " \ | |
200 | + "env import -t $env_addr $filesize\0" \ | |
201 | + "mmcargs=setenv bootargs console=${console} " \ | |
202 | + "${optargs} rootfstype=${mmcrootfstype} root=${mmcroot}\0 " \ | |
203 | + "loadbootscript=fatload mmc ${mmcdev}:${mmcpart} ${loadaddr} ${script};\0" \ | |
204 | + "bootscript=echo Running bootscript from mmc ...; " \ | |
205 | + "source\0" \ | |
206 | + "loadimage=fatload mmc ${mmcdev}:${mmcpart} ${loadaddr} ${image}\0" \ | |
207 | + "loadfdt=fatload mmc ${mmcdev}:${mmcpart} ${fdt_addr} /dtbs/${fdt_file}\0" \ | |
208 | + "loadusbfdt=fatload usb 0:1 ${fdt_addr} /dtbs/${fdt_file}\0" \ | |
209 | + "hdp_addr=0x9c000000\0" \ | |
210 | + "hdprx_addr=0x9c800000\0" \ | |
211 | + "hdp_file=hdmitxfw.bin\0" \ | |
212 | + "hdprx_file=hdmirxfw.bin\0" \ | |
213 | + "loadhdp=fatload mmc ${mmcdev}:${mmcpart} ${hdp_addr} ${hdp_file}\0" \ | |
214 | + "loadhdprx=fatload mmc ${mmcdev}:${mmcpart} ${hdprx_addr} ${hdprx_file}\0" \ | |
215 | + "boot_os=booti ${loadaddr} - ${fdt_addr};\0" \ | |
216 | + "loadcntr=fatload mmc ${mmcdev}:${mmcpart} ${cntr_addr} ${cntr_file}\0" \ | |
217 | + "auth_os=auth_cntr ${cntr_addr}\0" \ | |
218 | + "mmcboot=echo Booting from mmc ...; " \ | |
219 | + "if run loadhdp; then; hdp load ${hdp_addr}; fi;" \ | |
220 | + "run mmcargs; " \ | |
221 | + "if test ${sec_boot} = yes; then " \ | |
222 | + "if run auth_os; then " \ | |
223 | + "run boot_os; " \ | |
224 | + "else " \ | |
225 | + "echo ERR: failed to authenticate; " \ | |
226 | + "fi; " \ | |
227 | + "else " \ | |
228 | + "if test ${boot_fdt} = yes || test ${boot_fdt} = try; then " \ | |
229 | + "if run loadfdt; then " \ | |
230 | + "run boot_os; " \ | |
231 | + "else " \ | |
232 | + "echo WARN: Cannot load the DT; " \ | |
233 | + "fi; " \ | |
234 | + "else " \ | |
235 | + "echo wait for boot; " \ | |
236 | + "fi;" \ | |
237 | + "fi;\0" \ | |
238 | + "usbboot=echo Booting from usb ...; " \ | |
239 | + "if run loadhdp; then; hdp load ${hdp_addr}; fi;" \ | |
240 | + "run mmcargs; " \ | |
241 | + "if test ${sec_boot} = yes; then " \ | |
242 | + "if run auth_os; then " \ | |
243 | + "run boot_os; " \ | |
244 | + "else " \ | |
245 | + "echo ERR: failed to authenticate; " \ | |
246 | + "fi; " \ | |
247 | + "else " \ | |
248 | + "if test ${boot_fdt} = yes || test ${boot_fdt} = try; then " \ | |
249 | + "if run loadusbfdt; then " \ | |
250 | + "run boot_os; " \ | |
251 | + "else " \ | |
252 | + "echo WARN: Cannot load the DT; " \ | |
253 | + "fi; " \ | |
254 | + "else " \ | |
255 | + "echo wait for boot; " \ | |
256 | + "fi;" \ | |
257 | + "fi;\0" \ | |
258 | + "netargs=setenv bootargs console=${console},${baudrate} earlycon " \ | |
259 | + "root=/dev/nfs " \ | |
260 | + "ip=dhcp nfsroot=${serverip}:${nfsroot},v3,tcp\0" \ | |
261 | + "netboot=echo Booting from net ...; " \ | |
262 | + "run netargs; " \ | |
263 | + "if test ${ip_dyn} = yes; then " \ | |
264 | + "setenv get_cmd dhcp; " \ | |
265 | + "else " \ | |
266 | + "setenv get_cmd tftp; " \ | |
267 | + "fi; " \ | |
268 | + "if ${get_cmd} ${hdp_addr} ${hdp_file}; then; hdp load ${hdp_addr}; fi;" \ | |
269 | + "if test ${sec_boot} = yes; then " \ | |
270 | + "${get_cmd} ${cntr_addr} ${cntr_file}; " \ | |
271 | + "if run auth_os; then " \ | |
272 | + "run boot_os; " \ | |
273 | + "else " \ | |
274 | + "echo ERR: failed to authenticate; " \ | |
275 | + "fi; " \ | |
276 | + "else " \ | |
277 | + "${get_cmd} ${loadaddr} ${image}; " \ | |
278 | + "if test ${boot_fdt} = yes || test ${boot_fdt} = try; then " \ | |
279 | + "if ${get_cmd} ${fdt_addr} ${fdt_file}; then " \ | |
280 | + "run boot_os; " \ | |
281 | + "else " \ | |
282 | + "echo WARN: Cannot load the DT; " \ | |
283 | + "fi; " \ | |
284 | + "else " \ | |
285 | + "booti; " \ | |
286 | + "fi;" \ | |
287 | + "fi;\0" | |
288 | + | |
289 | +#define CONFIG_BOOTCOMMAND \ | |
290 | + "mmc dev ${mmcdev}; if mmc rescan; then " \ | |
291 | + "if test ${sec_boot} = yes; then " \ | |
292 | + "if run loadcntr; then " \ | |
293 | + "run mmcboot; " \ | |
294 | + "else run netboot; " \ | |
295 | + "fi; " \ | |
296 | + "else " \ | |
297 | + "echo Checking for: uEnv.txt ...; " \ | |
298 | + "if test -e mmc ${bootpart} /uEnv.txt; then " \ | |
299 | + "if run loadbootenv; then " \ | |
300 | + "echo Loaded environment from uEnv.txt;" \ | |
301 | + "run importbootenv;" \ | |
302 | + "fi;" \ | |
303 | + "echo Checking if uenvcmd is set ...;" \ | |
304 | + "if test -n ${uenvcmd}; then " \ | |
305 | + "echo Running uenvcmd ...;" \ | |
306 | + "run uenvcmd;" \ | |
307 | + "fi;" \ | |
308 | + "fi; " \ | |
309 | + "if run loadimage; then " \ | |
310 | + "run mmcboot; " \ | |
311 | + "else run netboot; " \ | |
312 | + "fi; " \ | |
313 | + "fi; " \ | |
314 | + "else booti ${loadaddr} - ${fdt_addr}; fi" | |
315 | + | |
316 | +/* Link Definitions */ | |
317 | +#define CONFIG_LOADADDR 0x80280000 | |
318 | + | |
319 | +#define CONFIG_SYS_LOAD_ADDR CONFIG_LOADADDR | |
320 | + | |
321 | +#define CONFIG_SYS_INIT_SP_ADDR 0x80200000 | |
322 | + | |
323 | + | |
324 | +#ifdef CONFIG_QSPI_BOOT | |
325 | +#define CONFIG_ENV_SECT_SIZE (128 * 1024) | |
326 | +#define CONFIG_ENV_SPI_BUS CONFIG_SF_DEFAULT_BUS | |
327 | +#define CONFIG_ENV_SPI_CS CONFIG_SF_DEFAULT_CS | |
328 | +#define CONFIG_ENV_SPI_MODE CONFIG_SF_DEFAULT_MODE | |
329 | +#define CONFIG_ENV_SPI_MAX_HZ CONFIG_SF_DEFAULT_SPEED | |
330 | +#else | |
331 | +#define CONFIG_SYS_MMC_ENV_PART 0 /* user area */ | |
332 | +#endif | |
333 | + | |
334 | +#define CONFIG_CMD_PART | |
335 | +#define CONFIG_CMD_FS_GENERIC | |
336 | + | |
337 | +#define CONFIG_SYS_MMC_IMG_LOAD_PART 1 | |
338 | + | |
339 | +/* On LPDDR4 board, USDHC1 is for eMMC, USDHC2 is for SD on CPU board */ | |
340 | +#define CONFIG_SYS_MMC_ENV_DEV 1 /* USDHC2 */ | |
341 | +#define CONFIG_MMCROOT "/dev/mmcblk1p2" /* USDHC2 */ | |
342 | +#define CONFIG_SYS_FSL_USDHC_NUM 2 | |
343 | + | |
344 | +/* Size of malloc() pool */ | |
345 | +#define CONFIG_SYS_MALLOC_LEN ((CONFIG_ENV_SIZE + (32 * 1024)) * 1024) | |
346 | + | |
347 | +#define CONFIG_SYS_SDRAM_BASE 0x80000000 | |
348 | +#define PHYS_SDRAM_1 0x80000000 | |
349 | +#define PHYS_SDRAM_2 0x880000000 | |
350 | +#define PHYS_SDRAM_1_SIZE 0x80000000 /* 2 GB */ | |
351 | +#ifdef CONFIG_4GB_LPDDR4 | |
352 | +#define PHYS_SDRAM_2_SIZE 0x80000000 /* 2 GB */ | |
353 | +#else | |
354 | +#define PHYS_SDRAM_2_SIZE 0x180000000 /* 6 GB */ | |
355 | +#endif | |
356 | + | |
357 | +#define CONFIG_SYS_MEMTEST_START 0xA0000000 | |
358 | +#define CONFIG_SYS_MEMTEST_END (CONFIG_SYS_MEMTEST_START + (PHYS_SDRAM_1_SIZE >> 2)) | |
359 | + | |
360 | +/* Serial */ | |
361 | +#define CONFIG_BAUDRATE 115200 | |
362 | + | |
363 | +/* Monitor Command Prompt */ | |
364 | +#define CONFIG_SYS_PROMPT_HUSH_PS2 "> " | |
365 | +#define CONFIG_SYS_CBSIZE 2048 | |
366 | +#define CONFIG_SYS_MAXARGS 64 | |
367 | +#define CONFIG_SYS_BARGSIZE CONFIG_SYS_CBSIZE | |
368 | +#define CONFIG_SYS_PBSIZE (CONFIG_SYS_CBSIZE + \ | |
369 | + sizeof(CONFIG_SYS_PROMPT) + 16) | |
370 | + | |
371 | +/* Generic Timer Definitions */ | |
372 | +#define COUNTER_FREQUENCY 8000000 /* 8MHz */ | |
373 | + | |
374 | +/* MT35XU512ABA1G12 has only one Die, so QSPI0 B won't work */ | |
375 | +#ifdef CONFIG_FSL_FSPI | |
376 | +#define FSL_FSPI_FLASH_SIZE SZ_64M | |
377 | +#define FSL_FSPI_FLASH_NUM 1 | |
378 | +#define FSPI0_BASE_ADDR 0x5d120000 | |
379 | +#define FSPI0_AMBA_BASE 0 | |
380 | +#define CONFIG_SYS_FSL_FSPI_AHB | |
381 | +#endif | |
382 | + | |
383 | +#define CONFIG_SERIAL_TAG | |
384 | + | |
385 | +/* USB Config */ | |
386 | +#ifndef CONFIG_SPL_BUILD | |
387 | +#ifdef CONFIG_HAS_FSL_XHCI_USB | |
388 | +#define CONFIG_USB_MAX_CONTROLLER_COUNT 2 | |
389 | +#endif | |
390 | +#define CONFIG_CMD_USB | |
391 | +#define CONFIG_USB_STORAGE | |
392 | +#define CONFIG_USBD_HS | |
393 | + | |
394 | +#define CONFIG_CMD_USB_MASS_STORAGE | |
395 | +#define CONFIG_USB_GADGET_MASS_STORAGE | |
396 | +#define CONFIG_USB_FUNCTION_MASS_STORAGE | |
397 | + | |
398 | +#endif | |
399 | + | |
400 | +#define CONFIG_USB_MAX_CONTROLLER_COUNT 2 | |
401 | + | |
402 | +/* USB OTG controller configs */ | |
403 | +#ifdef CONFIG_USB_EHCI_HCD | |
404 | +#define CONFIG_USB_HOST_ETHER | |
405 | +#define CONFIG_USB_ETHER_ASIX | |
406 | +#define CONFIG_MXC_USB_PORTSC (PORT_PTS_UTMI | PORT_PTS_PTW) | |
407 | +#endif | |
408 | + | |
409 | +#ifdef CONFIG_DM_VIDEO | |
410 | +#define CONFIG_VIDEO_LOGO | |
411 | +#define CONFIG_SPLASH_SCREEN | |
412 | +#define CONFIG_SPLASH_SCREEN_ALIGN | |
413 | +#define CONFIG_CMD_BMP | |
414 | +#define CONFIG_BMP_16BPP | |
415 | +#define CONFIG_BMP_24BPP | |
416 | +#define CONFIG_BMP_32BPP | |
417 | +#define CONFIG_VIDEO_BMP_RLE8 | |
418 | +#define CONFIG_VIDEO_BMP_LOGO | |
419 | +#endif | |
420 | + | |
421 | +#define IMX_HDMI_FIRMWARE_LOAD_ADDR (CONFIG_SYS_SDRAM_BASE + SZ_64M) | |
422 | +#define IMX_HDMITX_FIRMWARE_SIZE 0x20000 | |
423 | +#define IMX_HDMIRX_FIRMWARE_SIZE 0x20000 | |
424 | + | |
425 | +#if defined(CONFIG_ANDROID_SUPPORT) | |
426 | +#include "smarcimx8qm_android.h" | |
427 | +#elif defined (CONFIG_ANDROID_AUTO_SUPPORT) | |
428 | +#include "smarcimx8qm_android_auto.h" | |
429 | +#elif defined(CONFIG_IMX8_TRUSTY_XEN) | |
430 | +#include "smarcimx8qm_trusty_xen.h" | |
431 | +#endif | |
432 | + | |
433 | +#endif /* __SMARCIMX8QM_H */ |
include/configs/smarcimx8qm_android.h
1 | +/* | |
2 | + * Copyright 2020 NXP | |
3 | + * | |
4 | + * SPDX-License-Identifier: GPL-2.0+ | |
5 | + */ | |
6 | + | |
7 | +#ifndef SMARCIMX8QM_ANDROID_H | |
8 | +#define SMARCIMX8QM_ANDROID_H | |
9 | + | |
10 | +#define CONFIG_USB_GADGET_VBUS_DRAW 2 | |
11 | + | |
12 | +#define CONFIG_ANDROID_AB_SUPPORT | |
13 | +#ifdef CONFIG_ANDROID_AB_SUPPORT | |
14 | +#define CONFIG_SYSTEM_RAMDISK_SUPPORT | |
15 | +#endif | |
16 | +#define FSL_FASTBOOT_FB_DEV "mmc" | |
17 | + | |
18 | +#define IMX_HDMI_FIRMWARE_LOAD_ADDR (CONFIG_SYS_SDRAM_BASE + SZ_64M) | |
19 | +#define IMX_HDMITX_FIRMWARE_SIZE 0x20000 | |
20 | +#define IMX_HDMIRX_FIRMWARE_SIZE 0x20000 | |
21 | + | |
22 | +#define CONFIG_FASTBOOT_USB_DEV 1 | |
23 | + | |
24 | +#undef CONFIG_EXTRA_ENV_SETTINGS | |
25 | +#undef CONFIG_BOOTCOMMAND | |
26 | + | |
27 | +#define CONFIG_EXTRA_ENV_SETTINGS \ | |
28 | + "splashpos=m,m\0" \ | |
29 | + "splashimage=0x9e000000\0" \ | |
30 | + "fdt_high=0xffffffffffffffff\0" \ | |
31 | + "initrd_high=0xffffffffffffffff\0" \ | |
32 | + | |
33 | +#ifdef CONFIG_IMX_TRUSTY_OS | |
34 | +#define NS_ARCH_ARM64 1 | |
35 | +#define KEYSLOT_HWPARTITION_ID 2 | |
36 | +#define KEYSLOT_BLKS 0x3FFF | |
37 | +#define AVB_RPMB | |
38 | + | |
39 | +#ifdef CONFIG_SPL_BUILD | |
40 | +#undef CONFIG_BLK | |
41 | +#define CONFIG_FSL_CAAM_KB | |
42 | +#define CONFIG_SPL_CRYPTO_SUPPORT | |
43 | +#define CONFIG_SYS_FSL_SEC_LE | |
44 | +#endif | |
45 | +#endif | |
46 | + | |
47 | +#endif /* SMARCIMX8QM_ANDROID_H */ |
include/configs/smarcimx8qm_android_auto.h
1 | +/* | |
2 | + * Copyright 2020 NXP | |
3 | + * | |
4 | + * SPDX-License-Identifier: GPL-2.0+ | |
5 | + */ | |
6 | + | |
7 | +#ifndef SMARCIMX8QM_ANDROID_AUTO_H | |
8 | +#define SMARCIMX8QM_ANDROID_AUTO_H | |
9 | + | |
10 | +#define CONFIG_USB_GADGET_VBUS_DRAW 2 | |
11 | +#define CONFIG_SKIP_RESOURCE_CHECKING | |
12 | + | |
13 | +/* USB OTG controller configs */ | |
14 | +#ifdef CONFIG_USB_EHCI_HCD | |
15 | +#ifndef CONFIG_MXC_USB_PORTSC | |
16 | +#define CONFIG_MXC_USB_PORTSC (PORT_PTS_UTMI | PORT_PTS_PTW) | |
17 | +#endif | |
18 | +#endif | |
19 | + | |
20 | +#define CONFIG_ANDROID_AB_SUPPORT | |
21 | +#ifdef CONFIG_ANDROID_AB_SUPPORT | |
22 | +#define CONFIG_SYSTEM_RAMDISK_SUPPORT | |
23 | +#endif | |
24 | +#define FSL_FASTBOOT_FB_DEV "mmc" | |
25 | + | |
26 | +#define IMX_HDMI_FIRMWARE_LOAD_ADDR (CONFIG_SYS_SDRAM_BASE + SZ_64M) | |
27 | +#define IMX_HDMITX_FIRMWARE_SIZE 0x20000 | |
28 | +#define IMX_HDMIRX_FIRMWARE_SIZE 0x20000 | |
29 | + | |
30 | +#undef CONFIG_EXTRA_ENV_SETTINGS | |
31 | +#undef CONFIG_BOOTCOMMAND | |
32 | + | |
33 | +#define CONFIG_EXTRA_ENV_SETTINGS \ | |
34 | + "splashpos=m,m\0" \ | |
35 | + "fdt_high=0xffffffffffffffff\0" \ | |
36 | + "initrd_high=0xffffffffffffffff\0" \ | |
37 | + | |
38 | +/* Undefine some macros to save boot time */ | |
39 | +#undef CONFIG_FEC_MXC | |
40 | +#undef CONFIG_USB_HOST_ETHER | |
41 | +#undef CONFIG_ARCH_MISC_INIT | |
42 | +#undef CONFIG_SCSI | |
43 | +#undef CONFIG_SCSI_AHCI | |
44 | +#undef CONFIG_SCSI_AHCI_PLAT | |
45 | +#undef CONFIG_CMD_SCSI | |
46 | +#undef CONFIG_LIBATA | |
47 | +#undef CONFIG_SATA_IMX | |
48 | +#undef CONFIG_FSL_HSIO | |
49 | +#undef CONFIG_PCIE_IMX8X | |
50 | +#undef CONFIG_CMD_PCI | |
51 | +#undef CONFIG_PCI | |
52 | +#undef CONFIG_SYS_LONGHELP | |
53 | +#undef CONFIG_AUTO_COMPLETE | |
54 | +#undef CONFIG_MII | |
55 | +#undef CONFIG_PHYLIB | |
56 | +#undef CONFIG_PHY_ATHEROS | |
57 | +#undef CONFIG_CMD_FUSE | |
58 | +#undef CONFIG_USB_FUNCTION_MASS_STORAGE | |
59 | +#undef CONFIG_CMD_USB | |
60 | +#undef CONFIG_CMD_USB_MASS_STORAGE | |
61 | +#undef CONFIG_FAT_WRITE | |
62 | + | |
63 | +#ifdef CONFIG_IMX_TRUSTY_OS | |
64 | +#define AVB_RPMB | |
65 | +#define NS_ARCH_ARM64 1 | |
66 | +#define KEYSLOT_HWPARTITION_ID 2 | |
67 | +#define KEYSLOT_BLKS 0x3FFF | |
68 | +#endif | |
69 | + | |
70 | +#ifdef CONFIG_DUAL_BOOTLOADER | |
71 | +#define BOOTLOADER_RBIDX_OFFSET 0x3FE000 | |
72 | +#define BOOTLOADER_RBIDX_START 0x3FF000 | |
73 | +#define BOOTLOADER_RBIDX_LEN 0x08 | |
74 | +#define BOOTLOADER_RBIDX_INITVAL 0 | |
75 | +#define CONFIG_SYS_SPL_PTE_RAM_BASE 0x801F8000 | |
76 | +#endif | |
77 | + | |
78 | + | |
79 | +#ifdef CONFIG_SPL_BUILD | |
80 | +#undef CONFIG_BLK | |
81 | +#define CONFIG_FSL_CAAM_KB | |
82 | +#define CONFIG_SPL_CRYPTO_SUPPORT | |
83 | +#define CONFIG_SYS_FSL_SEC_LE | |
84 | +#endif | |
85 | + | |
86 | +#if defined(CONFIG_XEN) | |
87 | +#include "smarcimx8qm_android_auto_xen.h" | |
88 | +#endif | |
89 | + | |
90 | +#endif /* SMARCIMX8QM_ANDROID_AUTO_H */ |
include/configs/smarcimx8qm_android_auto_xen.h
1 | +/* | |
2 | + * Copyright 2018 NXP | |
3 | + * | |
4 | + * SPDX-License-Identifier: GPL-2.0+ | |
5 | + */ | |
6 | + | |
7 | +#ifndef SMARCIMX8QM_ANDROID_AUTO_XEN_H | |
8 | +#define SMARCIMX8QM_ANDROID_AUTO_XEN_H | |
9 | + | |
10 | +#undef CONFIG_SYS_SDRAM_BASE | |
11 | +#undef CONFIG_NR_DRAM_BANKS | |
12 | +#undef PHYS_SDRAM_1 | |
13 | +#undef PHYS_SDRAM_2 | |
14 | +#undef PHYS_SDRAM_1_SIZE | |
15 | +#undef PHYS_SDRAM_2_SIZE | |
16 | + | |
17 | +#define CONFIG_SYS_SDRAM_BASE 0x80000000 | |
18 | +#define CONFIG_NR_DRAM_BANKS 2 | |
19 | +#define PHYS_SDRAM_1 0x80000000 | |
20 | +#define PHYS_SDRAM_2 0x200000000 | |
21 | +#define PHYS_SDRAM_1_SIZE 0x80000000 /* 2 GB */ | |
22 | +#define PHYS_SDRAM_2_SIZE 0x50000000 /* 1024 + 256 MB */ | |
23 | + | |
24 | +#undef CONFIG_LOADADDR | |
25 | +#define CONFIG_LOADADDR 0x80080000 | |
26 | +#undef CONFIG_SYS_INIT_SP_ADDR | |
27 | +#define CONFIG_SYS_INIT_SP_ADDR 0x81200000 | |
28 | + | |
29 | +#undef CONFIG_REQUIRE_SERIAL_CONSOLE | |
30 | +#undef CONFIG_IMX_SMMU | |
31 | + | |
32 | +#undef CONFIG_FASTBOOT_USB_DEV | |
33 | +#define CONFIG_FASTBOOT_USB_DEV 0 /* Use OTG port, not typec port */ | |
34 | + | |
35 | +#ifdef CONFIG_SPL_BUILD | |
36 | +#undef CONFIG_SPL_BSS_START_ADDR | |
37 | +#undef CONFIG_SYS_SPL_MALLOC_START | |
38 | +#undef CONFIG_MALLOC_F_ADDR | |
39 | +#undef CONFIG_SPL_TEXT_BASE | |
40 | +#undef CONFIG_SPL_STACK | |
41 | + | |
42 | +#define CONFIG_MALLOC_F_ADDR 0x80100000 | |
43 | +#define CONFIG_SYS_SPL_MALLOC_START 0x80200000 | |
44 | +#define CONFIG_SPL_BSS_START_ADDR 0x80300000 | |
45 | +#define CONFIG_SPL_STACK 0x80400000 | |
46 | + | |
47 | +#undef CONFIG_SYS_SPL_PTE_RAM_BASE | |
48 | +#define CONFIG_SYS_SPL_PTE_RAM_BASE 0x80500000 | |
49 | +#endif | |
50 | + | |
51 | +#endif /* SMARCIMX8QM_ANDROID_AUTO_XEN_H */ |
include/configs/smarcimx8qm_trusty_xen.h
1 | +/* | |
2 | + * Copyright 2020 NXP | |
3 | + * | |
4 | + */ | |
5 | + | |
6 | +#ifndef __SMARCIMX8QM_XEN_TRUSTY_H__ | |
7 | +#define __SMARCIMX8QM_XEN_TRUSTY_H__ | |
8 | + | |
9 | +#ifdef CONFIG_SPL_BUILD | |
10 | +#define CONFIG_AVB_SUPPORT | |
11 | +#define AVB_RPMB | |
12 | +#define CONFIG_SHA256 | |
13 | +#define KEYSLOT_HWPARTITION_ID 2 | |
14 | +#define KEYSLOT_BLKS 0x3FFF | |
15 | +#define CONFIG_SUPPORT_EMMC_RPMB | |
16 | +#endif | |
17 | + | |
18 | +#endif |