Commit e384b6442463f95ba94a6a23f5252befa5ed239e
Committed by
Ye Li
1 parent
c042f46cf7
Exists in
smarc_8mq_lf_v2020.04
and in
4 other branches
MLK-23927: board: freescale: imx8mm audio board 2.0
Add support for imx8mm audio board 2.0 support reuse common settings from imx8mm evk som Rework for imx_v2020.04 defconfig, dts and SPL Reviewed-by: Ye Li <ye.li@nxp.com> Signed-off-by: Adrian Alonso <adrian.alonso@nxp.com>
Showing 12 changed files with 3443 additions and 1 deletions Side-by-side Diff
- arch/arm/dts/Makefile
- arch/arm/dts/imx8mm-ab2-u-boot.dtsi
- arch/arm/dts/imx8mm-ab2.dts
- arch/arm/mach-imx/imx8m/Kconfig
- board/freescale/imx8mm_ab2/Kconfig
- board/freescale/imx8mm_ab2/Makefile
- board/freescale/imx8mm_ab2/imx8mm_ab2.c
- board/freescale/imx8mm_ab2/lpddr4_imx8mm_som.c
- board/freescale/imx8mm_ab2/spl.c
- configs/imx8mm_ab2_defconfig
- configs/imx8mm_ab2_fspi_defconfig
- include/configs/imx8mm_ab2.h
arch/arm/dts/Makefile
arch/arm/dts/imx8mm-ab2-u-boot.dtsi
1 | +// SPDX-License-Identifier: GPL-2.0+ | |
2 | +/* | |
3 | + * Copyright 2020 NXP | |
4 | + */ | |
5 | + | |
6 | +/ { | |
7 | + firmware { | |
8 | + optee { | |
9 | + compatible = "linaro,optee-tz"; | |
10 | + method = "smc"; | |
11 | + }; | |
12 | + }; | |
13 | +}; | |
14 | + | |
15 | +&{/soc@0} { | |
16 | + u-boot,dm-pre-reloc; | |
17 | + u-boot,dm-spl; | |
18 | +}; | |
19 | + | |
20 | +&clk { | |
21 | + u-boot,dm-spl; | |
22 | + u-boot,dm-pre-reloc; | |
23 | + /delete-property/ assigned-clocks; | |
24 | + /delete-property/ assigned-clock-parents; | |
25 | + /delete-property/ assigned-clock-rates; | |
26 | +}; | |
27 | + | |
28 | +&osc_24m { | |
29 | + u-boot,dm-spl; | |
30 | + u-boot,dm-pre-reloc; | |
31 | +}; | |
32 | + | |
33 | +&aips1 { | |
34 | + u-boot,dm-spl; | |
35 | + u-boot,dm-pre-reloc; | |
36 | +}; | |
37 | + | |
38 | +&aips2 { | |
39 | + u-boot,dm-spl; | |
40 | +}; | |
41 | + | |
42 | +&aips3 { | |
43 | + u-boot,dm-spl; | |
44 | +}; | |
45 | + | |
46 | +&iomuxc { | |
47 | + u-boot,dm-spl; | |
48 | +}; | |
49 | + | |
50 | +®_usdhc2_vmmc { | |
51 | + u-boot,dm-spl; | |
52 | +}; | |
53 | + | |
54 | +&pinctrl_reg_usdhc2_vmmc { | |
55 | + u-boot,dm-spl; | |
56 | +}; | |
57 | + | |
58 | +&pinctrl_uart2 { | |
59 | + u-boot,dm-spl; | |
60 | +}; | |
61 | + | |
62 | +&pinctrl_usdhc2_gpio { | |
63 | + u-boot,dm-spl; | |
64 | +}; | |
65 | + | |
66 | +&pinctrl_usdhc2 { | |
67 | + u-boot,dm-spl; | |
68 | +}; | |
69 | + | |
70 | +&pinctrl_usdhc3 { | |
71 | + u-boot,dm-spl; | |
72 | +}; | |
73 | + | |
74 | +&gpio1 { | |
75 | + u-boot,dm-spl; | |
76 | +}; | |
77 | + | |
78 | +&gpio2 { | |
79 | + u-boot,dm-spl; | |
80 | +}; | |
81 | + | |
82 | +&gpio3 { | |
83 | + u-boot,dm-spl; | |
84 | +}; | |
85 | + | |
86 | +&gpio4 { | |
87 | + u-boot,dm-spl; | |
88 | +}; | |
89 | + | |
90 | +&gpio5 { | |
91 | + u-boot,dm-spl; | |
92 | +}; | |
93 | + | |
94 | +&uart2 { | |
95 | + u-boot,dm-spl; | |
96 | +}; | |
97 | + | |
98 | +&usdhc1 { | |
99 | + u-boot,dm-spl; | |
100 | + assigned-clocks = <&clk IMX8MM_CLK_USDHC1>; | |
101 | + assigned-clock-rates = <400000000>; | |
102 | + assigned-clock-parents = <&clk IMX8MM_SYS_PLL1_400M>; | |
103 | +}; | |
104 | + | |
105 | +&usdhc2 { | |
106 | + u-boot,dm-spl; | |
107 | + sd-uhs-sdr104; | |
108 | + sd-uhs-ddr50; | |
109 | + assigned-clocks = <&clk IMX8MM_CLK_USDHC2>; | |
110 | + assigned-clock-rates = <400000000>; | |
111 | + assigned-clock-parents = <&clk IMX8MM_SYS_PLL1_400M>; | |
112 | +}; | |
113 | + | |
114 | +&usdhc3 { | |
115 | + u-boot,dm-spl; | |
116 | + mmc-hs400-1_8v; | |
117 | + mmc-hs400-enhanced-strobe; | |
118 | + assigned-clocks = <&clk IMX8MM_CLK_USDHC3>; | |
119 | + assigned-clock-rates = <400000000>; | |
120 | + assigned-clock-parents = <&clk IMX8MM_SYS_PLL1_400M>; | |
121 | +}; | |
122 | + | |
123 | +&i2c1 { | |
124 | + u-boot,dm-spl; | |
125 | +}; | |
126 | + | |
127 | +&{/soc@0/bus@30800000/i2c@30a20000/pmic@4b} { | |
128 | + u-boot,dm-spl; | |
129 | +}; | |
130 | + | |
131 | +&{/soc@0/bus@30800000/i2c@30a20000/pmic@4b/regulators} { | |
132 | + u-boot,dm-spl; | |
133 | +}; | |
134 | + | |
135 | +&pinctrl_i2c1 { | |
136 | + u-boot,dm-spl; | |
137 | +}; | |
138 | + | |
139 | +&pinctrl_pmic { | |
140 | + u-boot,dm-spl; | |
141 | +}; | |
142 | + | |
143 | +&flexspi { | |
144 | + assigned-clock-rates = <100000000>; | |
145 | + assigned-clocks = <&clk IMX8MM_CLK_QSPI>; | |
146 | + assigned-clock-parents = <&clk IMX8MM_SYS_PLL1_100M>; | |
147 | +}; |
arch/arm/dts/imx8mm-ab2.dts
1 | +// SPDX-License-Identifier: (GPL-2.0+ OR MIT) | |
2 | +/* | |
3 | + * Copyright 2020 NXP | |
4 | + */ | |
5 | + | |
6 | +/dts-v1/; | |
7 | + | |
8 | +#include "imx8mm.dtsi" | |
9 | + | |
10 | +/ { | |
11 | + model = "NXP i.MX8MM Audio board 2.0"; | |
12 | + compatible = "fsl,imx8mm-ab2", "fsl,imx8mm"; | |
13 | + | |
14 | + chosen { | |
15 | + bootargs = "console=ttymxc1,115200 earlycon=ec_imx6q,0x30890000,115200"; | |
16 | + stdout-path = &uart2; | |
17 | + }; | |
18 | + | |
19 | + leds { | |
20 | + compatible = "gpio-leds"; | |
21 | + pinctrl-names = "default"; | |
22 | + pinctrl-0 = <&pinctrl_gpio_led>; | |
23 | + | |
24 | + status { | |
25 | + label = "status"; | |
26 | + gpios = <&gpio3 16 GPIO_ACTIVE_HIGH>; | |
27 | + default-state = "on"; | |
28 | + }; | |
29 | + }; | |
30 | + | |
31 | + reg_usdhc2_vmmc: regulator-usdhc2 { | |
32 | + compatible = "regulator-fixed"; | |
33 | + pinctrl-names = "default"; | |
34 | + pinctrl-0 = <&pinctrl_reg_usdhc2_vmmc>; | |
35 | + regulator-name = "VSD_3V3"; | |
36 | + regulator-min-microvolt = <3300000>; | |
37 | + regulator-max-microvolt = <3300000>; | |
38 | + gpio = <&gpio2 19 GPIO_ACTIVE_HIGH>; | |
39 | + off-on-delay-us = <20000>; | |
40 | + enable-active-high; | |
41 | + }; | |
42 | + | |
43 | + reg_ab2_ana_pwr: regulator-ab2-ana-pwr { | |
44 | + compatible = "regulator-fixed"; | |
45 | + regulator-name = "ab2_ana_pwr"; | |
46 | + pinctrl-names = "default"; | |
47 | + pinctrl-0 = <&pinctrl_ab2_ana_pwr>; | |
48 | + regulator-min-microvolt = <3300000>; | |
49 | + regulator-max-microvolt = <3300000>; | |
50 | + gpio = <&gpio1 10 GPIO_ACTIVE_HIGH>; | |
51 | + enable-active-high; | |
52 | + }; | |
53 | + | |
54 | + reg_ab2_vdd_pwr_5v0: regulator-ab2-vdd-pwr-5v0 { | |
55 | + compatible = "regulator-fixed"; | |
56 | + regulator-name = "ab2_vdd_pwr_5v0"; | |
57 | + regulator-min-microvolt = <5000000>; | |
58 | + regulator-max-microvolt = <5000000>; | |
59 | + gpio = <&gpio1 7 GPIO_ACTIVE_HIGH>; | |
60 | + enable-active-high; | |
61 | + startup-delay-us = <100>; | |
62 | + u-boot,off-on-delay-us = <12000>; | |
63 | + }; | |
64 | +}; | |
65 | + | |
66 | +&A53_0 { | |
67 | + cpu-supply = <&buck2_reg>; | |
68 | +}; | |
69 | + | |
70 | +&fec1 { | |
71 | + pinctrl-names = "default"; | |
72 | + pinctrl-0 = <&pinctrl_fec1>; | |
73 | + phy-mode = "rgmii-id"; | |
74 | + phy-handle = <ðphy0>; | |
75 | + phy-reset-gpios = <&gpio1 5 GPIO_ACTIVE_LOW>; | |
76 | + phy-reset-post-delay = <150>; | |
77 | + phy-reset-duration = <10>; | |
78 | + fsl,magic-packet; | |
79 | + status = "okay"; | |
80 | + | |
81 | + mdio { | |
82 | + #address-cells = <1>; | |
83 | + #size-cells = <0>; | |
84 | + | |
85 | + ethphy0: ethernet-phy@0 { | |
86 | + compatible = "ethernet-phy-ieee802.3-c22"; | |
87 | + reg = <1>; | |
88 | + eee-broken-1000t; | |
89 | + }; | |
90 | + }; | |
91 | +}; | |
92 | + | |
93 | +&flexspi { | |
94 | + pinctrl-names = "default"; | |
95 | + pinctrl-0 = <&pinctrl_flexspi>; | |
96 | + status = "okay"; | |
97 | + | |
98 | + flash0: n25q256a@0 { | |
99 | + reg = <0>; | |
100 | + #address-cells = <1>; | |
101 | + #size-cells = <1>; | |
102 | + compatible = "spi-flash"; | |
103 | + spi-max-frequency = <29000000>; | |
104 | + spi-nor,ddr-quad-read-dummy = <8>; | |
105 | + }; | |
106 | +}; | |
107 | + | |
108 | +&iomuxc { | |
109 | + pinctrl-names = "default"; | |
110 | + pinctrl-0 = <&pinctrl_hog_1>; | |
111 | + | |
112 | + imx8mm-ab2 { | |
113 | + pinctrl_hog_1: hoggrp-1 { | |
114 | + fsl,pins = < | |
115 | + MX8MM_IOMUXC_GPIO1_IO07_GPIO1_IO7 0x19 | |
116 | + MX8MM_IOMUXC_GPIO1_IO08_GPIO1_IO8 0x19 | |
117 | + >; | |
118 | + }; | |
119 | + | |
120 | + pinctrl_fec1: fec1grp { | |
121 | + fsl,pins = < | |
122 | + MX8MM_IOMUXC_ENET_MDC_ENET1_MDC 0x3 | |
123 | + MX8MM_IOMUXC_ENET_MDIO_ENET1_MDIO 0x3 | |
124 | + MX8MM_IOMUXC_ENET_TD3_ENET1_RGMII_TD3 0x1f | |
125 | + MX8MM_IOMUXC_ENET_TD2_ENET1_RGMII_TD2 0x1f | |
126 | + MX8MM_IOMUXC_ENET_TD1_ENET1_RGMII_TD1 0x1f | |
127 | + MX8MM_IOMUXC_ENET_TD0_ENET1_RGMII_TD0 0x1f | |
128 | + MX8MM_IOMUXC_ENET_RD3_ENET1_RGMII_RD3 0x91 | |
129 | + MX8MM_IOMUXC_ENET_RD2_ENET1_RGMII_RD2 0x91 | |
130 | + MX8MM_IOMUXC_ENET_RD1_ENET1_RGMII_RD1 0x91 | |
131 | + MX8MM_IOMUXC_ENET_RD0_ENET1_RGMII_RD0 0x91 | |
132 | + MX8MM_IOMUXC_ENET_TXC_ENET1_RGMII_TXC 0x1f | |
133 | + MX8MM_IOMUXC_ENET_RXC_ENET1_RGMII_RXC 0x91 | |
134 | + MX8MM_IOMUXC_ENET_RX_CTL_ENET1_RGMII_RX_CTL 0x91 | |
135 | + MX8MM_IOMUXC_ENET_TX_CTL_ENET1_RGMII_TX_CTL 0x1f | |
136 | + MX8MM_IOMUXC_GPIO1_IO05_GPIO1_IO5 0x19 | |
137 | + >; | |
138 | + }; | |
139 | + | |
140 | + pinctrl_flexspi: flexspigrp { | |
141 | + fsl,pins = < | |
142 | + MX8MM_IOMUXC_NAND_ALE_QSPI_A_SCLK 0x1c2 | |
143 | + MX8MM_IOMUXC_NAND_CE0_B_QSPI_A_SS0_B 0x84 | |
144 | + MX8MM_IOMUXC_NAND_DATA00_QSPI_A_DATA0 0x84 | |
145 | + MX8MM_IOMUXC_NAND_DATA01_QSPI_A_DATA1 0x84 | |
146 | + MX8MM_IOMUXC_NAND_DATA02_QSPI_A_DATA2 0x84 | |
147 | + MX8MM_IOMUXC_NAND_DATA03_QSPI_A_DATA3 0x84 | |
148 | + >; | |
149 | + }; | |
150 | + | |
151 | + pinctrl_gpio_led: gpioledgrp { | |
152 | + fsl,pins = < | |
153 | + MX8MM_IOMUXC_NAND_READY_B_GPIO3_IO16 0x19 | |
154 | + >; | |
155 | + }; | |
156 | + | |
157 | + pinctrl_i2c1: i2c1grp { | |
158 | + fsl,pins = < | |
159 | + MX8MM_IOMUXC_I2C1_SCL_I2C1_SCL 0x400001c3 | |
160 | + MX8MM_IOMUXC_I2C1_SDA_I2C1_SDA 0x400001c3 | |
161 | + >; | |
162 | + }; | |
163 | + | |
164 | + pinctrl_i2c2: i2c2grp { | |
165 | + fsl,pins = < | |
166 | + MX8MM_IOMUXC_I2C2_SCL_I2C2_SCL 0x400001c3 | |
167 | + MX8MM_IOMUXC_I2C2_SDA_I2C2_SDA 0x400001c3 | |
168 | + >; | |
169 | + }; | |
170 | + | |
171 | + pinctrl_i2c3: i2c3grp { | |
172 | + fsl,pins = < | |
173 | + MX8MM_IOMUXC_I2C3_SCL_I2C3_SCL 0x400001c3 | |
174 | + MX8MM_IOMUXC_I2C3_SDA_I2C3_SDA 0x400001c3 | |
175 | + >; | |
176 | + }; | |
177 | + | |
178 | + pinctrl_i2c1_gpio: i2c1grp-gpio { | |
179 | + fsl,pins = < | |
180 | + MX8MM_IOMUXC_I2C1_SCL_GPIO5_IO14 0x1c3 | |
181 | + MX8MM_IOMUXC_I2C1_SDA_GPIO5_IO15 0x1c3 | |
182 | + >; | |
183 | + }; | |
184 | + | |
185 | + pinctrl_i2c2_gpio: i2c2grp-gpio { | |
186 | + fsl,pins = < | |
187 | + MX8MM_IOMUXC_I2C2_SCL_GPIO5_IO16 0x1c3 | |
188 | + MX8MM_IOMUXC_I2C2_SDA_GPIO5_IO17 0x1c3 | |
189 | + >; | |
190 | + }; | |
191 | + | |
192 | + pinctrl_i2c3_gpio: i2c3grp-gpio { | |
193 | + fsl,pins = < | |
194 | + MX8MM_IOMUXC_I2C3_SCL_GPIO5_IO18 0x1c3 | |
195 | + MX8MM_IOMUXC_I2C3_SDA_GPIO5_IO19 0x1c3 | |
196 | + >; | |
197 | + }; | |
198 | + | |
199 | + pinctrl_pmic: pmicirq { | |
200 | + fsl,pins = < | |
201 | + MX8MM_IOMUXC_GPIO1_IO03_GPIO1_IO3 0x41 | |
202 | + >; | |
203 | + }; | |
204 | + | |
205 | + pinctrl_reg_usdhc2_vmmc: regusdhc2vmmc { | |
206 | + fsl,pins = < | |
207 | + MX8MM_IOMUXC_SD2_RESET_B_GPIO2_IO19 0x41 | |
208 | + >; | |
209 | + }; | |
210 | + | |
211 | + pinctrl_ab2_ana_pwr: ab2anapwrgrp { | |
212 | + fsl,pins = < | |
213 | + MX8MM_IOMUXC_GPIO1_IO10_GPIO1_IO10 0x41 | |
214 | + >; | |
215 | + }; | |
216 | + | |
217 | + pinctrl_ab2_vdd_pwr_5v0: ab2vddpwr5v0grp { | |
218 | + fsl,pins = < | |
219 | + MX8MM_IOMUXC_GPIO1_IO07_GPIO1_IO7 0x41 | |
220 | + >; | |
221 | + }; | |
222 | + | |
223 | + pinctrl_uart2: uart1grp { | |
224 | + fsl,pins = < | |
225 | + MX8MM_IOMUXC_UART2_RXD_UART2_DCE_RX 0x49 | |
226 | + MX8MM_IOMUXC_UART2_TXD_UART2_DCE_TX 0x49 | |
227 | + >; | |
228 | + }; | |
229 | + | |
230 | + pinctrl_usdhc2_gpio: usdhc2grpgpio { | |
231 | + fsl,pins = < | |
232 | + MX8MM_IOMUXC_SD2_CD_B_GPIO2_IO12 0x1c4 | |
233 | + >; | |
234 | + }; | |
235 | + | |
236 | + pinctrl_usdhc2: usdhc2grp { | |
237 | + fsl,pins = < | |
238 | + MX8MM_IOMUXC_SD2_CLK_USDHC2_CLK 0x190 | |
239 | + MX8MM_IOMUXC_SD2_CMD_USDHC2_CMD 0x1d0 | |
240 | + MX8MM_IOMUXC_SD2_DATA0_USDHC2_DATA0 0x1d0 | |
241 | + MX8MM_IOMUXC_SD2_DATA1_USDHC2_DATA1 0x1d0 | |
242 | + MX8MM_IOMUXC_SD2_DATA2_USDHC2_DATA2 0x1d0 | |
243 | + MX8MM_IOMUXC_SD2_DATA3_USDHC2_DATA3 0x1d0 | |
244 | + MX8MM_IOMUXC_GPIO1_IO04_USDHC2_VSELECT 0x1d0 | |
245 | + >; | |
246 | + }; | |
247 | + | |
248 | + pinctrl_usdhc2_100mhz: usdhc2grp100mhz { | |
249 | + fsl,pins = < | |
250 | + MX8MM_IOMUXC_SD2_CLK_USDHC2_CLK 0x194 | |
251 | + MX8MM_IOMUXC_SD2_CMD_USDHC2_CMD 0x1d4 | |
252 | + MX8MM_IOMUXC_SD2_DATA0_USDHC2_DATA0 0x1d4 | |
253 | + MX8MM_IOMUXC_SD2_DATA1_USDHC2_DATA1 0x1d4 | |
254 | + MX8MM_IOMUXC_SD2_DATA2_USDHC2_DATA2 0x1d4 | |
255 | + MX8MM_IOMUXC_SD2_DATA3_USDHC2_DATA3 0x1d4 | |
256 | + MX8MM_IOMUXC_GPIO1_IO04_USDHC2_VSELECT 0x1d0 | |
257 | + >; | |
258 | + }; | |
259 | + | |
260 | + pinctrl_usdhc2_200mhz: usdhc2grp200mhz { | |
261 | + fsl,pins = < | |
262 | + MX8MM_IOMUXC_SD2_CLK_USDHC2_CLK 0x196 | |
263 | + MX8MM_IOMUXC_SD2_CMD_USDHC2_CMD 0x1d6 | |
264 | + MX8MM_IOMUXC_SD2_DATA0_USDHC2_DATA0 0x1d6 | |
265 | + MX8MM_IOMUXC_SD2_DATA1_USDHC2_DATA1 0x1d6 | |
266 | + MX8MM_IOMUXC_SD2_DATA2_USDHC2_DATA2 0x1d6 | |
267 | + MX8MM_IOMUXC_SD2_DATA3_USDHC2_DATA3 0x1d6 | |
268 | + MX8MM_IOMUXC_GPIO1_IO04_USDHC2_VSELECT 0x1d0 | |
269 | + >; | |
270 | + }; | |
271 | + | |
272 | + pinctrl_usdhc3: usdhc3grp { | |
273 | + fsl,pins = < | |
274 | + MX8MM_IOMUXC_NAND_WE_B_USDHC3_CLK 0x40000190 | |
275 | + MX8MM_IOMUXC_NAND_WP_B_USDHC3_CMD 0x1d0 | |
276 | + MX8MM_IOMUXC_NAND_DATA04_USDHC3_DATA0 0x1d0 | |
277 | + MX8MM_IOMUXC_NAND_DATA05_USDHC3_DATA1 0x1d0 | |
278 | + MX8MM_IOMUXC_NAND_DATA06_USDHC3_DATA2 0x1d0 | |
279 | + MX8MM_IOMUXC_NAND_DATA07_USDHC3_DATA3 0x1d0 | |
280 | + MX8MM_IOMUXC_NAND_RE_B_USDHC3_DATA4 0x1d0 | |
281 | + MX8MM_IOMUXC_NAND_CE2_B_USDHC3_DATA5 0x1d0 | |
282 | + MX8MM_IOMUXC_NAND_CE3_B_USDHC3_DATA6 0x1d0 | |
283 | + MX8MM_IOMUXC_NAND_CLE_USDHC3_DATA7 0x1d0 | |
284 | + MX8MM_IOMUXC_NAND_CE1_B_USDHC3_STROBE 0x190 | |
285 | + >; | |
286 | + }; | |
287 | + | |
288 | + pinctrl_usdhc3_100mhz: usdhc3grp100mhz { | |
289 | + fsl,pins = < | |
290 | + MX8MM_IOMUXC_NAND_WE_B_USDHC3_CLK 0x40000194 | |
291 | + MX8MM_IOMUXC_NAND_WP_B_USDHC3_CMD 0x1d4 | |
292 | + MX8MM_IOMUXC_NAND_DATA04_USDHC3_DATA0 0x1d4 | |
293 | + MX8MM_IOMUXC_NAND_DATA05_USDHC3_DATA1 0x1d4 | |
294 | + MX8MM_IOMUXC_NAND_DATA06_USDHC3_DATA2 0x1d4 | |
295 | + MX8MM_IOMUXC_NAND_DATA07_USDHC3_DATA3 0x1d4 | |
296 | + MX8MM_IOMUXC_NAND_RE_B_USDHC3_DATA4 0x1d4 | |
297 | + MX8MM_IOMUXC_NAND_CE2_B_USDHC3_DATA5 0x1d4 | |
298 | + MX8MM_IOMUXC_NAND_CE3_B_USDHC3_DATA6 0x1d4 | |
299 | + MX8MM_IOMUXC_NAND_CLE_USDHC3_DATA7 0x1d4 | |
300 | + MX8MM_IOMUXC_NAND_CE1_B_USDHC3_STROBE 0x194 | |
301 | + >; | |
302 | + }; | |
303 | + | |
304 | + pinctrl_usdhc3_200mhz: usdhc3grp200mhz { | |
305 | + fsl,pins = < | |
306 | + MX8MM_IOMUXC_NAND_WE_B_USDHC3_CLK 0x40000196 | |
307 | + MX8MM_IOMUXC_NAND_WP_B_USDHC3_CMD 0x1d6 | |
308 | + MX8MM_IOMUXC_NAND_DATA04_USDHC3_DATA0 0x1d6 | |
309 | + MX8MM_IOMUXC_NAND_DATA05_USDHC3_DATA1 0x1d6 | |
310 | + MX8MM_IOMUXC_NAND_DATA06_USDHC3_DATA2 0x1d6 | |
311 | + MX8MM_IOMUXC_NAND_DATA07_USDHC3_DATA3 0x1d6 | |
312 | + MX8MM_IOMUXC_NAND_RE_B_USDHC3_DATA4 0x1d6 | |
313 | + MX8MM_IOMUXC_NAND_CE2_B_USDHC3_DATA5 0x1d6 | |
314 | + MX8MM_IOMUXC_NAND_CE3_B_USDHC3_DATA6 0x1d6 | |
315 | + MX8MM_IOMUXC_NAND_CLE_USDHC3_DATA7 0x1d6 | |
316 | + MX8MM_IOMUXC_NAND_CE1_B_USDHC3_STROBE 0x196 | |
317 | + >; | |
318 | + }; | |
319 | + | |
320 | + pinctrl_wdog: wdoggrp { | |
321 | + fsl,pins = < | |
322 | + MX8MM_IOMUXC_GPIO1_IO02_WDOG1_WDOG_B 0xc6 | |
323 | + >; | |
324 | + }; | |
325 | + }; | |
326 | +}; | |
327 | + | |
328 | +&i2c1 { | |
329 | + clock-frequency = <400000>; | |
330 | + pinctrl-names = "default", "gpio"; | |
331 | + pinctrl-0 = <&pinctrl_i2c1>; | |
332 | + pinctrl-1 = <&pinctrl_i2c1_gpio>; | |
333 | + scl-gpios = <&gpio5 14 GPIO_ACTIVE_HIGH>; | |
334 | + sda-gpios = <&gpio5 15 GPIO_ACTIVE_HIGH>; | |
335 | + status = "okay"; | |
336 | + | |
337 | + pmic@4b { | |
338 | + compatible = "rohm,bd71847"; | |
339 | + reg = <0x4b>; | |
340 | + pinctrl-0 = <&pinctrl_pmic>; | |
341 | + interrupt-parent = <&gpio1>; | |
342 | + interrupts = <3 GPIO_ACTIVE_LOW>; | |
343 | + rohm,reset-snvs-powered; | |
344 | + | |
345 | + regulators { | |
346 | + buck1_reg: BUCK1 { | |
347 | + regulator-name = "BUCK1"; | |
348 | + regulator-min-microvolt = <700000>; | |
349 | + regulator-max-microvolt = <1300000>; | |
350 | + regulator-boot-on; | |
351 | + regulator-always-on; | |
352 | + regulator-ramp-delay = <1250>; | |
353 | + }; | |
354 | + | |
355 | + buck2_reg: BUCK2 { | |
356 | + regulator-name = "BUCK2"; | |
357 | + regulator-min-microvolt = <700000>; | |
358 | + regulator-max-microvolt = <1300000>; | |
359 | + regulator-boot-on; | |
360 | + regulator-always-on; | |
361 | + regulator-ramp-delay = <1250>; | |
362 | + rohm,dvs-run-voltage = <1000000>; | |
363 | + rohm,dvs-idle-voltage = <900000>; | |
364 | + }; | |
365 | + | |
366 | + buck3_reg: BUCK3 { | |
367 | + // BUCK5 in datasheet | |
368 | + regulator-name = "BUCK3"; | |
369 | + regulator-min-microvolt = <700000>; | |
370 | + regulator-max-microvolt = <1350000>; | |
371 | + regulator-boot-on; | |
372 | + regulator-always-on; | |
373 | + }; | |
374 | + | |
375 | + buck4_reg: BUCK4 { | |
376 | + // BUCK6 in datasheet | |
377 | + regulator-name = "BUCK4"; | |
378 | + regulator-min-microvolt = <3000000>; | |
379 | + regulator-max-microvolt = <3300000>; | |
380 | + regulator-boot-on; | |
381 | + regulator-always-on; | |
382 | + }; | |
383 | + | |
384 | + buck5_reg: BUCK5 { | |
385 | + // BUCK7 in datasheet | |
386 | + regulator-name = "BUCK5"; | |
387 | + regulator-min-microvolt = <1605000>; | |
388 | + regulator-max-microvolt = <1995000>; | |
389 | + regulator-boot-on; | |
390 | + regulator-always-on; | |
391 | + }; | |
392 | + | |
393 | + buck6_reg: BUCK6 { | |
394 | + // BUCK8 in datasheet | |
395 | + regulator-name = "BUCK6"; | |
396 | + regulator-min-microvolt = <800000>; | |
397 | + regulator-max-microvolt = <1400000>; | |
398 | + regulator-boot-on; | |
399 | + regulator-always-on; | |
400 | + }; | |
401 | + | |
402 | + ldo1_reg: LDO1 { | |
403 | + regulator-name = "LDO1"; | |
404 | + regulator-min-microvolt = <3000000>; | |
405 | + regulator-max-microvolt = <3300000>; | |
406 | + regulator-boot-on; | |
407 | + regulator-always-on; | |
408 | + }; | |
409 | + | |
410 | + ldo2_reg: LDO2 { | |
411 | + regulator-name = "LDO2"; | |
412 | + regulator-min-microvolt = <900000>; | |
413 | + regulator-max-microvolt = <900000>; | |
414 | + regulator-boot-on; | |
415 | + regulator-always-on; | |
416 | + }; | |
417 | + | |
418 | + ldo3_reg: LDO3 { | |
419 | + regulator-name = "LDO3"; | |
420 | + regulator-min-microvolt = <1800000>; | |
421 | + regulator-max-microvolt = <3300000>; | |
422 | + regulator-boot-on; | |
423 | + regulator-always-on; | |
424 | + }; | |
425 | + | |
426 | + ldo4_reg: LDO4 { | |
427 | + regulator-name = "LDO4"; | |
428 | + regulator-min-microvolt = <900000>; | |
429 | + regulator-max-microvolt = <1800000>; | |
430 | + regulator-boot-on; | |
431 | + regulator-always-on; | |
432 | + }; | |
433 | + | |
434 | + ldo6_reg: LDO6 { | |
435 | + regulator-name = "LDO6"; | |
436 | + regulator-min-microvolt = <900000>; | |
437 | + regulator-max-microvolt = <1800000>; | |
438 | + regulator-boot-on; | |
439 | + regulator-always-on; | |
440 | + }; | |
441 | + }; | |
442 | + }; | |
443 | +}; | |
444 | + | |
445 | +&i2c2 { | |
446 | + clock-frequency = <400000>; | |
447 | + pinctrl-names = "default", "gpio"; | |
448 | + pinctrl-0 = <&pinctrl_i2c2>; | |
449 | + pinctrl-1 = <&pinctrl_i2c2_gpio>; | |
450 | + scl-gpios = <&gpio5 16 GPIO_ACTIVE_HIGH>; | |
451 | + sda-gpios = <&gpio5 17 GPIO_ACTIVE_HIGH>; | |
452 | + status = "okay"; | |
453 | +}; | |
454 | + | |
455 | +&i2c3 { | |
456 | + clock-frequency = <100000>; | |
457 | + pinctrl-names = "default", "gpio"; | |
458 | + pinctrl-0 = <&pinctrl_i2c3>; | |
459 | + pinctrl-1 = <&pinctrl_i2c3_gpio>; | |
460 | + scl-gpios = <&gpio5 18 GPIO_ACTIVE_HIGH>; | |
461 | + sda-gpios = <&gpio5 19 GPIO_ACTIVE_HIGH>; | |
462 | + status = "okay"; | |
463 | +}; | |
464 | + | |
465 | +&snvs_pwrkey { | |
466 | + status = "okay"; | |
467 | +}; | |
468 | + | |
469 | +&uart2 { /* console */ | |
470 | + pinctrl-names = "default"; | |
471 | + pinctrl-0 = <&pinctrl_uart2>; | |
472 | + status = "okay"; | |
473 | +}; | |
474 | + | |
475 | +&usdhc2 { | |
476 | + pinctrl-names = "default", "state_100mhz", "state_200mhz"; | |
477 | + pinctrl-0 = <&pinctrl_usdhc2>, <&pinctrl_usdhc2_gpio>; | |
478 | + pinctrl-1 = <&pinctrl_usdhc2_100mhz>, <&pinctrl_usdhc2_gpio>; | |
479 | + pinctrl-2 = <&pinctrl_usdhc2_200mhz>, <&pinctrl_usdhc2_gpio>; | |
480 | + cd-gpios = <&gpio2 12 GPIO_ACTIVE_LOW>; | |
481 | + bus-width = <4>; | |
482 | + vmmc-supply = <®_usdhc2_vmmc>; | |
483 | + status = "okay"; | |
484 | +}; | |
485 | + | |
486 | +&usdhc3 { | |
487 | + pinctrl-names = "default", "state_100mhz", "state_200mhz"; | |
488 | + pinctrl-0 = <&pinctrl_usdhc3>; | |
489 | + pinctrl-1 = <&pinctrl_usdhc3_100mhz>; | |
490 | + pinctrl-2 = <&pinctrl_usdhc3_200mhz>; | |
491 | + bus-width = <8>; | |
492 | + non-removable; | |
493 | + status = "okay"; | |
494 | +}; | |
495 | + | |
496 | +&wdog1 { | |
497 | + pinctrl-names = "default"; | |
498 | + pinctrl-0 = <&pinctrl_wdog>; | |
499 | + fsl,ext-reset-output; | |
500 | + status = "okay"; | |
501 | +}; |
arch/arm/mach-imx/imx8m/Kconfig
... | ... | @@ -96,6 +96,12 @@ |
96 | 96 | select SUPPORT_SPL |
97 | 97 | select IMX8M_LPDDR4 |
98 | 98 | |
99 | +config TARGET_IMX8MM_AB2 | |
100 | + bool "imx8mm LPDDR4 Audio board 2.0" | |
101 | + select IMX8MM | |
102 | + select SUPPORT_SPL | |
103 | + select IMX8M_LPDDR4 | |
104 | + | |
99 | 105 | config TARGET_VERDIN_IMX8MM |
100 | 106 | bool "Support Toradex Verdin iMX8M Mini module" |
101 | 107 | select IMX8MM |
... | ... | @@ -106,6 +112,7 @@ |
106 | 112 | |
107 | 113 | source "board/freescale/imx8mq_evk/Kconfig" |
108 | 114 | source "board/freescale/imx8mq_val/Kconfig" |
115 | +source "board/freescale/imx8mm_ab2/Kconfig" | |
109 | 116 | source "board/freescale/imx8mm_evk/Kconfig" |
110 | 117 | source "board/freescale/imx8mm_val/Kconfig" |
111 | 118 | source "board/freescale/imx8mn_evk/Kconfig" |
board/freescale/imx8mm_ab2/Kconfig
board/freescale/imx8mm_ab2/Makefile
board/freescale/imx8mm_ab2/imx8mm_ab2.c
1 | +// SPDX-License-Identifier: GPL-2.0+ | |
2 | +/* | |
3 | + * Copyright 2020 NXP | |
4 | + */ | |
5 | + | |
6 | +#include <common.h> | |
7 | +#include <malloc.h> | |
8 | +#include <errno.h> | |
9 | +#include <miiphy.h> | |
10 | +#include <netdev.h> | |
11 | +#include <fsl_esdhc.h> | |
12 | +#include <mmc.h> | |
13 | +#include <asm/io.h> | |
14 | +#include <asm/arch/clock.h> | |
15 | +#ifdef CONFIG_TARGET_IMX8MM_AB2 | |
16 | +#include <asm/arch/imx8mm_pins.h> | |
17 | +#endif | |
18 | +#include <asm/arch/sys_proto.h> | |
19 | +#include <asm-generic/gpio.h> | |
20 | +#include <asm/mach-imx/dma.h> | |
21 | +#include <asm/mach-imx/gpio.h> | |
22 | +#include <asm/mach-imx/iomux-v3.h> | |
23 | +#include <asm/mach-imx/mxc_i2c.h> | |
24 | +#include <spl.h> | |
25 | + | |
26 | +DECLARE_GLOBAL_DATA_PTR; | |
27 | + | |
28 | +#define PWR_EN_5V0 IMX_GPIO_NR(1, 7) | |
29 | +#define PWR_EN_ANA IMX_GPIO_NR(1, 10) | |
30 | +#define UART_PAD_CTRL (PAD_CTL_DSE6 | PAD_CTL_FSEL1) | |
31 | +#define WDOG_PAD_CTRL (PAD_CTL_DSE6 | PAD_CTL_ODE | PAD_CTL_PUE | PAD_CTL_PE) | |
32 | + | |
33 | +#ifdef CONFIG_TARGET_IMX8MM_AB2 | |
34 | +static iomux_v3_cfg_t const uart_pads[] = { | |
35 | + IMX8MM_PAD_UART2_RXD_UART2_RX | MUX_PAD_CTRL(UART_PAD_CTRL), | |
36 | + IMX8MM_PAD_UART2_TXD_UART2_TX | MUX_PAD_CTRL(UART_PAD_CTRL), | |
37 | +}; | |
38 | + | |
39 | +static iomux_v3_cfg_t const wdog_pads[] = { | |
40 | + IMX8MM_PAD_GPIO1_IO02_WDOG1_WDOG_B | MUX_PAD_CTRL(WDOG_PAD_CTRL), | |
41 | +}; | |
42 | + | |
43 | +static iomux_v3_cfg_t const pwr_en_5v0[] = { | |
44 | + IMX8MM_PAD_GPIO1_IO07_GPIO1_IO7 | MUX_PAD_CTRL(NO_PAD_CTRL), | |
45 | +}; | |
46 | + | |
47 | +static iomux_v3_cfg_t const pwr_en_ana[] = { | |
48 | + IMX8MM_PAD_GPIO1_IO10_GPIO1_IO10 | MUX_PAD_CTRL(NO_PAD_CTRL), | |
49 | +}; | |
50 | +#endif | |
51 | + | |
52 | +#ifdef CONFIG_NAND_MXS | |
53 | +static void setup_gpmi_nand(void) | |
54 | +{ | |
55 | + init_nand_clk(); | |
56 | +} | |
57 | +#endif | |
58 | + | |
59 | +int board_early_init_f(void) | |
60 | +{ | |
61 | + struct wdog_regs *wdog = (struct wdog_regs *)WDOG1_BASE_ADDR; | |
62 | + | |
63 | + imx_iomux_v3_setup_multiple_pads(wdog_pads, ARRAY_SIZE(wdog_pads)); | |
64 | + | |
65 | + set_wdog_reset(wdog); | |
66 | + | |
67 | + imx_iomux_v3_setup_multiple_pads(uart_pads, ARRAY_SIZE(uart_pads)); | |
68 | + | |
69 | + init_uart_clk(1); | |
70 | + | |
71 | + imx_iomux_v3_setup_multiple_pads(pwr_en_5v0, ARRAY_SIZE(pwr_en_5v0)); | |
72 | + gpio_request(PWR_EN_5V0, "pwr_en_5v0"); | |
73 | + gpio_direction_output(PWR_EN_5V0, 1); | |
74 | + | |
75 | + imx_iomux_v3_setup_multiple_pads(pwr_en_ana, ARRAY_SIZE(pwr_en_ana)); | |
76 | + gpio_request(PWR_EN_ANA, "pwr_en_ana"); | |
77 | + gpio_direction_output(PWR_EN_ANA, 1); | |
78 | + | |
79 | + return 0; | |
80 | +} | |
81 | + | |
82 | +static int setup_fec(void) | |
83 | +{ | |
84 | + struct iomuxc_gpr_base_regs *gpr = | |
85 | + (struct iomuxc_gpr_base_regs *)IOMUXC_GPR_BASE_ADDR; | |
86 | + | |
87 | + /* Use 125M anatop REF_CLK1 for ENET1, not from external */ | |
88 | + clrsetbits_le32(&gpr->gpr[1], | |
89 | + IOMUXC_GPR_GPR1_GPR_ENET1_TX_CLK_SEL_MASK, 0); | |
90 | + | |
91 | + return set_clk_enet(ENET_125MHZ); | |
92 | +} | |
93 | + | |
94 | +int board_phy_config(struct phy_device *phydev) | |
95 | +{ | |
96 | + if (phydev->drv->config) | |
97 | + phydev->drv->config(phydev); | |
98 | + | |
99 | + return 0; | |
100 | +} | |
101 | + | |
102 | +int board_init(void) | |
103 | +{ | |
104 | +#ifdef CONFIG_FEC_MXC | |
105 | + setup_fec(); | |
106 | +#endif | |
107 | + | |
108 | +#ifdef CONFIG_NAND_MXS | |
109 | + setup_gpmi_nand(); | |
110 | +#endif | |
111 | + return 0; | |
112 | +} | |
113 | + | |
114 | +int board_late_init(void) | |
115 | +{ | |
116 | +#ifdef CONFIG_ENV_IS_IN_MMC | |
117 | + board_late_mmc_env_init(); | |
118 | +#endif | |
119 | +#ifdef CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG | |
120 | + env_set("board_name", "AB2"); | |
121 | + env_set("board_rev", "iMX8MM"); | |
122 | +#endif | |
123 | + return 0; | |
124 | +} |
board/freescale/imx8mm_ab2/lpddr4_imx8mm_som.c
Changes suppressed. Click to show
1 | +/* | |
2 | + * Copyright 2020 NXP | |
3 | + * | |
4 | + * SPDX-License-Identifier: GPL-2.0+ | |
5 | + * | |
6 | + * Generated code from MX8M_DDR_tool | |
7 | + */ | |
8 | + | |
9 | +#include <linux/kernel.h> | |
10 | +#include <asm/arch/ddr.h> | |
11 | + | |
12 | +struct dram_cfg_param ddr_ddrc_cfg[] = { | |
13 | + /* Initialize DDRC registers */ | |
14 | + { 0x3d400304, 0x1 }, | |
15 | + { 0x3d400030, 0x1 }, | |
16 | + { 0x3d400000, 0xa1080020 }, | |
17 | + { 0x3d400020, 0x223 }, | |
18 | + { 0x3d400024, 0x16e3600 }, | |
19 | + { 0x3d400064, 0x5b00d2 }, | |
20 | + { 0x3d4000d0, 0xc00305ba }, | |
21 | + { 0x3d4000d4, 0x940000 }, | |
22 | + { 0x3d4000dc, 0xd4002d }, | |
23 | + { 0x3d4000e0, 0x310000 }, | |
24 | + { 0x3d4000e8, 0x66004d }, | |
25 | + { 0x3d4000ec, 0x16004d }, | |
26 | + { 0x3d400100, 0x191e1920 }, | |
27 | + { 0x3d400104, 0x60630 }, | |
28 | + { 0x3d40010c, 0xb0b000 }, | |
29 | + { 0x3d400110, 0xe04080e }, | |
30 | + { 0x3d400114, 0x2040c0c }, | |
31 | + { 0x3d400118, 0x1010007 }, | |
32 | + { 0x3d40011c, 0x401 }, | |
33 | + { 0x3d400130, 0x20600 }, | |
34 | + { 0x3d400134, 0xc100002 }, | |
35 | + { 0x3d400138, 0xd8 }, | |
36 | + { 0x3d400144, 0x96004b }, | |
37 | + { 0x3d400180, 0x2ee0017 }, | |
38 | + { 0x3d400184, 0x2605b8e }, | |
39 | + { 0x3d400188, 0x0 }, | |
40 | + { 0x3d400190, 0x497820a }, | |
41 | + { 0x3d400194, 0x80303 }, | |
42 | + { 0x3d4001b4, 0x170a }, | |
43 | + { 0x3d4001a0, 0xe0400018 }, | |
44 | + { 0x3d4001a4, 0xdf00e4 }, | |
45 | + { 0x3d4001a8, 0x80000000 }, | |
46 | + { 0x3d4001b0, 0x11 }, | |
47 | + { 0x3d4001c0, 0x1 }, | |
48 | + { 0x3d4001c4, 0x0 }, | |
49 | + { 0x3d4000f4, 0xc99 }, | |
50 | + { 0x3d400108, 0x70e1617 }, | |
51 | + { 0x3d400200, 0x1f }, | |
52 | + { 0x3d40020c, 0x0 }, | |
53 | + { 0x3d400210, 0x1f1f }, | |
54 | + { 0x3d400204, 0x80808 }, | |
55 | + { 0x3d400214, 0x7070707 }, | |
56 | + { 0x3d400218, 0x7070707 }, | |
57 | + | |
58 | + /* performance setting */ | |
59 | + { 0x3d400250, 0x29001701 }, | |
60 | + { 0x3d400254, 0x2c }, | |
61 | + { 0x3d40025c, 0x4000030 }, | |
62 | + { 0x3d400264, 0x900093e7 }, | |
63 | + { 0x3d40026c, 0x2005574 }, | |
64 | + { 0x3d400400, 0x111 }, | |
65 | + { 0x3d400408, 0x72ff }, | |
66 | + { 0x3d400494, 0x2100e07 }, | |
67 | + { 0x3d400498, 0x620096 }, | |
68 | + { 0x3d40049c, 0x1100e07 }, | |
69 | + { 0x3d4004a0, 0xc8012c }, | |
70 | + | |
71 | + /* P1: 400mts */ | |
72 | + { 0x3d402020, 0x21 }, | |
73 | + { 0x3d402024, 0x30d400 }, | |
74 | + { 0x3d402050, 0x20d040 }, | |
75 | + { 0x3d402064, 0xc001c }, | |
76 | + { 0x3d4020dc, 0x840000 }, | |
77 | + { 0x3d4020e0, 0x310000 }, | |
78 | + { 0x3d4020e8, 0x66004d }, | |
79 | + { 0x3d4020ec, 0x16004d }, | |
80 | + { 0x3d402100, 0xa040305 }, | |
81 | + { 0x3d402104, 0x30407 }, | |
82 | + { 0x3d402108, 0x203060b }, | |
83 | + { 0x3d40210c, 0x505000 }, | |
84 | + { 0x3d402110, 0x2040202 }, | |
85 | + { 0x3d402114, 0x2030202 }, | |
86 | + { 0x3d402118, 0x1010004 }, | |
87 | + { 0x3d40211c, 0x301 }, | |
88 | + { 0x3d402130, 0x20300 }, | |
89 | + { 0x3d402134, 0xa100002 }, | |
90 | + { 0x3d402138, 0x1d }, | |
91 | + { 0x3d402144, 0x14000a }, | |
92 | + { 0x3d402180, 0x640004 }, | |
93 | + { 0x3d402190, 0x3818200 }, | |
94 | + { 0x3d402194, 0x80303 }, | |
95 | + { 0x3d4021b4, 0x100 }, | |
96 | + | |
97 | + /* p2: 100mts */ | |
98 | + { 0x3d403020, 0x21 }, | |
99 | + { 0x3d403024, 0xc3500 }, | |
100 | + { 0x3d403050, 0x20d040 }, | |
101 | + { 0x3d403064, 0x30007 }, | |
102 | + { 0x3d4030dc, 0x840000 }, | |
103 | + { 0x3d4030e0, 0x310000 }, | |
104 | + { 0x3d4030e8, 0x66004d }, | |
105 | + { 0x3d4030ec, 0x16004d }, | |
106 | + { 0x3d403100, 0xa010102 }, | |
107 | + { 0x3d403104, 0x30404 }, | |
108 | + { 0x3d403108, 0x203060b }, | |
109 | + { 0x3d40310c, 0x505000 }, | |
110 | + { 0x3d403110, 0x2040202 }, | |
111 | + { 0x3d403114, 0x2030202 }, | |
112 | + { 0x3d403118, 0x1010004 }, | |
113 | + { 0x3d40311c, 0x301 }, | |
114 | + { 0x3d403130, 0x20300 }, | |
115 | + { 0x3d403134, 0xa100002 }, | |
116 | + { 0x3d403138, 0x8 }, | |
117 | + { 0x3d403144, 0x50003 }, | |
118 | + { 0x3d403180, 0x190004 }, | |
119 | + { 0x3d403190, 0x3818200 }, | |
120 | + { 0x3d403194, 0x80303 }, | |
121 | + { 0x3d4031b4, 0x100 }, | |
122 | + | |
123 | + /* default boot point */ | |
124 | + { 0x3d400028, 0x0 }, | |
125 | +}; | |
126 | + | |
127 | +/* PHY Initialize Configuration */ | |
128 | +struct dram_cfg_param ddr_ddrphy_cfg[] = { | |
129 | + { 0x100a0, 0x0 }, | |
130 | + { 0x100a1, 0x1 }, | |
131 | + { 0x100a2, 0x2 }, | |
132 | + { 0x100a3, 0x3 }, | |
133 | + { 0x100a4, 0x4 }, | |
134 | + { 0x100a5, 0x5 }, | |
135 | + { 0x100a6, 0x6 }, | |
136 | + { 0x100a7, 0x7 }, | |
137 | + { 0x110a0, 0x0 }, | |
138 | + { 0x110a1, 0x1 }, | |
139 | + { 0x110a2, 0x3 }, | |
140 | + { 0x110a3, 0x4 }, | |
141 | + { 0x110a4, 0x5 }, | |
142 | + { 0x110a5, 0x2 }, | |
143 | + { 0x110a6, 0x7 }, | |
144 | + { 0x110a7, 0x6 }, | |
145 | + { 0x120a0, 0x0 }, | |
146 | + { 0x120a1, 0x1 }, | |
147 | + { 0x120a2, 0x3 }, | |
148 | + { 0x120a3, 0x2 }, | |
149 | + { 0x120a4, 0x5 }, | |
150 | + { 0x120a5, 0x4 }, | |
151 | + { 0x120a6, 0x7 }, | |
152 | + { 0x120a7, 0x6 }, | |
153 | + { 0x130a0, 0x0 }, | |
154 | + { 0x130a1, 0x1 }, | |
155 | + { 0x130a2, 0x2 }, | |
156 | + { 0x130a3, 0x3 }, | |
157 | + { 0x130a4, 0x4 }, | |
158 | + { 0x130a5, 0x5 }, | |
159 | + { 0x130a6, 0x6 }, | |
160 | + { 0x130a7, 0x7 }, | |
161 | + { 0x1005f, 0x1ff }, | |
162 | + { 0x1015f, 0x1ff }, | |
163 | + { 0x1105f, 0x1ff }, | |
164 | + { 0x1115f, 0x1ff }, | |
165 | + { 0x1205f, 0x1ff }, | |
166 | + { 0x1215f, 0x1ff }, | |
167 | + { 0x1305f, 0x1ff }, | |
168 | + { 0x1315f, 0x1ff }, | |
169 | + { 0x11005f, 0x1ff }, | |
170 | + { 0x11015f, 0x1ff }, | |
171 | + { 0x11105f, 0x1ff }, | |
172 | + { 0x11115f, 0x1ff }, | |
173 | + { 0x11205f, 0x1ff }, | |
174 | + { 0x11215f, 0x1ff }, | |
175 | + { 0x11305f, 0x1ff }, | |
176 | + { 0x11315f, 0x1ff }, | |
177 | + { 0x21005f, 0x1ff }, | |
178 | + { 0x21015f, 0x1ff }, | |
179 | + { 0x21105f, 0x1ff }, | |
180 | + { 0x21115f, 0x1ff }, | |
181 | + { 0x21205f, 0x1ff }, | |
182 | + { 0x21215f, 0x1ff }, | |
183 | + { 0x21305f, 0x1ff }, | |
184 | + { 0x21315f, 0x1ff }, | |
185 | + { 0x55, 0x1ff }, | |
186 | + { 0x1055, 0x1ff }, | |
187 | + { 0x2055, 0x1ff }, | |
188 | + { 0x3055, 0x1ff }, | |
189 | + { 0x4055, 0x1ff }, | |
190 | + { 0x5055, 0x1ff }, | |
191 | + { 0x6055, 0x1ff }, | |
192 | + { 0x7055, 0x1ff }, | |
193 | + { 0x8055, 0x1ff }, | |
194 | + { 0x9055, 0x1ff }, | |
195 | + { 0x200c5, 0x19 }, | |
196 | + { 0x1200c5, 0x7 }, | |
197 | + { 0x2200c5, 0x7 }, | |
198 | + { 0x2002e, 0x2 }, | |
199 | + { 0x12002e, 0x2 }, | |
200 | + { 0x22002e, 0x2 }, | |
201 | + { 0x90204, 0x0 }, | |
202 | + { 0x190204, 0x0 }, | |
203 | + { 0x290204, 0x0 }, | |
204 | + { 0x20024, 0x1ab }, | |
205 | + { 0x2003a, 0x0 }, | |
206 | + { 0x120024, 0x1ab }, | |
207 | + { 0x2003a, 0x0 }, | |
208 | + { 0x220024, 0x1ab }, | |
209 | + { 0x2003a, 0x0 }, | |
210 | + { 0x20056, 0x3 }, | |
211 | + { 0x120056, 0xa }, | |
212 | + { 0x220056, 0xa }, | |
213 | + { 0x1004d, 0xe00 }, | |
214 | + { 0x1014d, 0xe00 }, | |
215 | + { 0x1104d, 0xe00 }, | |
216 | + { 0x1114d, 0xe00 }, | |
217 | + { 0x1204d, 0xe00 }, | |
218 | + { 0x1214d, 0xe00 }, | |
219 | + { 0x1304d, 0xe00 }, | |
220 | + { 0x1314d, 0xe00 }, | |
221 | + { 0x11004d, 0xe00 }, | |
222 | + { 0x11014d, 0xe00 }, | |
223 | + { 0x11104d, 0xe00 }, | |
224 | + { 0x11114d, 0xe00 }, | |
225 | + { 0x11204d, 0xe00 }, | |
226 | + { 0x11214d, 0xe00 }, | |
227 | + { 0x11304d, 0xe00 }, | |
228 | + { 0x11314d, 0xe00 }, | |
229 | + { 0x21004d, 0xe00 }, | |
230 | + { 0x21014d, 0xe00 }, | |
231 | + { 0x21104d, 0xe00 }, | |
232 | + { 0x21114d, 0xe00 }, | |
233 | + { 0x21204d, 0xe00 }, | |
234 | + { 0x21214d, 0xe00 }, | |
235 | + { 0x21304d, 0xe00 }, | |
236 | + { 0x21314d, 0xe00 }, | |
237 | + { 0x10049, 0xeba }, | |
238 | + { 0x10149, 0xeba }, | |
239 | + { 0x11049, 0xeba }, | |
240 | + { 0x11149, 0xeba }, | |
241 | + { 0x12049, 0xeba }, | |
242 | + { 0x12149, 0xeba }, | |
243 | + { 0x13049, 0xeba }, | |
244 | + { 0x13149, 0xeba }, | |
245 | + { 0x110049, 0xeba }, | |
246 | + { 0x110149, 0xeba }, | |
247 | + { 0x111049, 0xeba }, | |
248 | + { 0x111149, 0xeba }, | |
249 | + { 0x112049, 0xeba }, | |
250 | + { 0x112149, 0xeba }, | |
251 | + { 0x113049, 0xeba }, | |
252 | + { 0x113149, 0xeba }, | |
253 | + { 0x210049, 0xeba }, | |
254 | + { 0x210149, 0xeba }, | |
255 | + { 0x211049, 0xeba }, | |
256 | + { 0x211149, 0xeba }, | |
257 | + { 0x212049, 0xeba }, | |
258 | + { 0x212149, 0xeba }, | |
259 | + { 0x213049, 0xeba }, | |
260 | + { 0x213149, 0xeba }, | |
261 | + { 0x43, 0x63 }, | |
262 | + { 0x1043, 0x63 }, | |
263 | + { 0x2043, 0x63 }, | |
264 | + { 0x3043, 0x63 }, | |
265 | + { 0x4043, 0x63 }, | |
266 | + { 0x5043, 0x63 }, | |
267 | + { 0x6043, 0x63 }, | |
268 | + { 0x7043, 0x63 }, | |
269 | + { 0x8043, 0x63 }, | |
270 | + { 0x9043, 0x63 }, | |
271 | + { 0x20018, 0x3 }, | |
272 | + { 0x20075, 0x4 }, | |
273 | + { 0x20050, 0x0 }, | |
274 | + { 0x20008, 0x2ee }, | |
275 | + { 0x120008, 0x64 }, | |
276 | + { 0x220008, 0x19 }, | |
277 | + { 0x20088, 0x9 }, | |
278 | + { 0x200b2, 0xdc }, | |
279 | + { 0x10043, 0x5a1 }, | |
280 | + { 0x10143, 0x5a1 }, | |
281 | + { 0x11043, 0x5a1 }, | |
282 | + { 0x11143, 0x5a1 }, | |
283 | + { 0x12043, 0x5a1 }, | |
284 | + { 0x12143, 0x5a1 }, | |
285 | + { 0x13043, 0x5a1 }, | |
286 | + { 0x13143, 0x5a1 }, | |
287 | + { 0x1200b2, 0xdc }, | |
288 | + { 0x110043, 0x5a1 }, | |
289 | + { 0x110143, 0x5a1 }, | |
290 | + { 0x111043, 0x5a1 }, | |
291 | + { 0x111143, 0x5a1 }, | |
292 | + { 0x112043, 0x5a1 }, | |
293 | + { 0x112143, 0x5a1 }, | |
294 | + { 0x113043, 0x5a1 }, | |
295 | + { 0x113143, 0x5a1 }, | |
296 | + { 0x2200b2, 0xdc }, | |
297 | + { 0x210043, 0x5a1 }, | |
298 | + { 0x210143, 0x5a1 }, | |
299 | + { 0x211043, 0x5a1 }, | |
300 | + { 0x211143, 0x5a1 }, | |
301 | + { 0x212043, 0x5a1 }, | |
302 | + { 0x212143, 0x5a1 }, | |
303 | + { 0x213043, 0x5a1 }, | |
304 | + { 0x213143, 0x5a1 }, | |
305 | + { 0x200fa, 0x1 }, | |
306 | + { 0x1200fa, 0x1 }, | |
307 | + { 0x2200fa, 0x1 }, | |
308 | + { 0x20019, 0x1 }, | |
309 | + { 0x120019, 0x1 }, | |
310 | + { 0x220019, 0x1 }, | |
311 | + { 0x200f0, 0x660 }, | |
312 | + { 0x200f1, 0x0 }, | |
313 | + { 0x200f2, 0x4444 }, | |
314 | + { 0x200f3, 0x8888 }, | |
315 | + { 0x200f4, 0x5665 }, | |
316 | + { 0x200f5, 0x0 }, | |
317 | + { 0x200f6, 0x0 }, | |
318 | + { 0x200f7, 0xf000 }, | |
319 | + { 0x20025, 0x0 }, | |
320 | + { 0x2002d, 0x0 }, | |
321 | + { 0x12002d, 0x0 }, | |
322 | + { 0x22002d, 0x0 }, | |
323 | + { 0x200c7, 0x21 }, | |
324 | + { 0x1200c7, 0x21 }, | |
325 | + { 0x2200c7, 0x21 }, | |
326 | + { 0x200ca, 0x24 }, | |
327 | + { 0x1200ca, 0x24 }, | |
328 | + { 0x2200ca, 0x24 }, | |
329 | +}; | |
330 | + | |
331 | +/* ddr phy trained csr */ | |
332 | +struct dram_cfg_param ddr_ddrphy_trained_csr[] = { | |
333 | + { 0x200b2, 0x0 }, | |
334 | + { 0x1200b2, 0x0 }, | |
335 | + { 0x2200b2, 0x0 }, | |
336 | + { 0x200cb, 0x0 }, | |
337 | + { 0x10043, 0x0 }, | |
338 | + { 0x110043, 0x0 }, | |
339 | + { 0x210043, 0x0 }, | |
340 | + { 0x10143, 0x0 }, | |
341 | + { 0x110143, 0x0 }, | |
342 | + { 0x210143, 0x0 }, | |
343 | + { 0x11043, 0x0 }, | |
344 | + { 0x111043, 0x0 }, | |
345 | + { 0x211043, 0x0 }, | |
346 | + { 0x11143, 0x0 }, | |
347 | + { 0x111143, 0x0 }, | |
348 | + { 0x211143, 0x0 }, | |
349 | + { 0x12043, 0x0 }, | |
350 | + { 0x112043, 0x0 }, | |
351 | + { 0x212043, 0x0 }, | |
352 | + { 0x12143, 0x0 }, | |
353 | + { 0x112143, 0x0 }, | |
354 | + { 0x212143, 0x0 }, | |
355 | + { 0x13043, 0x0 }, | |
356 | + { 0x113043, 0x0 }, | |
357 | + { 0x213043, 0x0 }, | |
358 | + { 0x13143, 0x0 }, | |
359 | + { 0x113143, 0x0 }, | |
360 | + { 0x213143, 0x0 }, | |
361 | + { 0x80, 0x0 }, | |
362 | + { 0x100080, 0x0 }, | |
363 | + { 0x200080, 0x0 }, | |
364 | + { 0x1080, 0x0 }, | |
365 | + { 0x101080, 0x0 }, | |
366 | + { 0x201080, 0x0 }, | |
367 | + { 0x2080, 0x0 }, | |
368 | + { 0x102080, 0x0 }, | |
369 | + { 0x202080, 0x0 }, | |
370 | + { 0x3080, 0x0 }, | |
371 | + { 0x103080, 0x0 }, | |
372 | + { 0x203080, 0x0 }, | |
373 | + { 0x4080, 0x0 }, | |
374 | + { 0x104080, 0x0 }, | |
375 | + { 0x204080, 0x0 }, | |
376 | + { 0x5080, 0x0 }, | |
377 | + { 0x105080, 0x0 }, | |
378 | + { 0x205080, 0x0 }, | |
379 | + { 0x6080, 0x0 }, | |
380 | + { 0x106080, 0x0 }, | |
381 | + { 0x206080, 0x0 }, | |
382 | + { 0x7080, 0x0 }, | |
383 | + { 0x107080, 0x0 }, | |
384 | + { 0x207080, 0x0 }, | |
385 | + { 0x8080, 0x0 }, | |
386 | + { 0x108080, 0x0 }, | |
387 | + { 0x208080, 0x0 }, | |
388 | + { 0x9080, 0x0 }, | |
389 | + { 0x109080, 0x0 }, | |
390 | + { 0x209080, 0x0 }, | |
391 | + { 0x10080, 0x0 }, | |
392 | + { 0x110080, 0x0 }, | |
393 | + { 0x210080, 0x0 }, | |
394 | + { 0x10180, 0x0 }, | |
395 | + { 0x110180, 0x0 }, | |
396 | + { 0x210180, 0x0 }, | |
397 | + { 0x11080, 0x0 }, | |
398 | + { 0x111080, 0x0 }, | |
399 | + { 0x211080, 0x0 }, | |
400 | + { 0x11180, 0x0 }, | |
401 | + { 0x111180, 0x0 }, | |
402 | + { 0x211180, 0x0 }, | |
403 | + { 0x12080, 0x0 }, | |
404 | + { 0x112080, 0x0 }, | |
405 | + { 0x212080, 0x0 }, | |
406 | + { 0x12180, 0x0 }, | |
407 | + { 0x112180, 0x0 }, | |
408 | + { 0x212180, 0x0 }, | |
409 | + { 0x13080, 0x0 }, | |
410 | + { 0x113080, 0x0 }, | |
411 | + { 0x213080, 0x0 }, | |
412 | + { 0x13180, 0x0 }, | |
413 | + { 0x113180, 0x0 }, | |
414 | + { 0x213180, 0x0 }, | |
415 | + { 0x10081, 0x0 }, | |
416 | + { 0x110081, 0x0 }, | |
417 | + { 0x210081, 0x0 }, | |
418 | + { 0x10181, 0x0 }, | |
419 | + { 0x110181, 0x0 }, | |
420 | + { 0x210181, 0x0 }, | |
421 | + { 0x11081, 0x0 }, | |
422 | + { 0x111081, 0x0 }, | |
423 | + { 0x211081, 0x0 }, | |
424 | + { 0x11181, 0x0 }, | |
425 | + { 0x111181, 0x0 }, | |
426 | + { 0x211181, 0x0 }, | |
427 | + { 0x12081, 0x0 }, | |
428 | + { 0x112081, 0x0 }, | |
429 | + { 0x212081, 0x0 }, | |
430 | + { 0x12181, 0x0 }, | |
431 | + { 0x112181, 0x0 }, | |
432 | + { 0x212181, 0x0 }, | |
433 | + { 0x13081, 0x0 }, | |
434 | + { 0x113081, 0x0 }, | |
435 | + { 0x213081, 0x0 }, | |
436 | + { 0x13181, 0x0 }, | |
437 | + { 0x113181, 0x0 }, | |
438 | + { 0x213181, 0x0 }, | |
439 | + { 0x100d0, 0x0 }, | |
440 | + { 0x1100d0, 0x0 }, | |
441 | + { 0x2100d0, 0x0 }, | |
442 | + { 0x101d0, 0x0 }, | |
443 | + { 0x1101d0, 0x0 }, | |
444 | + { 0x2101d0, 0x0 }, | |
445 | + { 0x110d0, 0x0 }, | |
446 | + { 0x1110d0, 0x0 }, | |
447 | + { 0x2110d0, 0x0 }, | |
448 | + { 0x111d0, 0x0 }, | |
449 | + { 0x1111d0, 0x0 }, | |
450 | + { 0x2111d0, 0x0 }, | |
451 | + { 0x120d0, 0x0 }, | |
452 | + { 0x1120d0, 0x0 }, | |
453 | + { 0x2120d0, 0x0 }, | |
454 | + { 0x121d0, 0x0 }, | |
455 | + { 0x1121d0, 0x0 }, | |
456 | + { 0x2121d0, 0x0 }, | |
457 | + { 0x130d0, 0x0 }, | |
458 | + { 0x1130d0, 0x0 }, | |
459 | + { 0x2130d0, 0x0 }, | |
460 | + { 0x131d0, 0x0 }, | |
461 | + { 0x1131d0, 0x0 }, | |
462 | + { 0x2131d0, 0x0 }, | |
463 | + { 0x100d1, 0x0 }, | |
464 | + { 0x1100d1, 0x0 }, | |
465 | + { 0x2100d1, 0x0 }, | |
466 | + { 0x101d1, 0x0 }, | |
467 | + { 0x1101d1, 0x0 }, | |
468 | + { 0x2101d1, 0x0 }, | |
469 | + { 0x110d1, 0x0 }, | |
470 | + { 0x1110d1, 0x0 }, | |
471 | + { 0x2110d1, 0x0 }, | |
472 | + { 0x111d1, 0x0 }, | |
473 | + { 0x1111d1, 0x0 }, | |
474 | + { 0x2111d1, 0x0 }, | |
475 | + { 0x120d1, 0x0 }, | |
476 | + { 0x1120d1, 0x0 }, | |
477 | + { 0x2120d1, 0x0 }, | |
478 | + { 0x121d1, 0x0 }, | |
479 | + { 0x1121d1, 0x0 }, | |
480 | + { 0x2121d1, 0x0 }, | |
481 | + { 0x130d1, 0x0 }, | |
482 | + { 0x1130d1, 0x0 }, | |
483 | + { 0x2130d1, 0x0 }, | |
484 | + { 0x131d1, 0x0 }, | |
485 | + { 0x1131d1, 0x0 }, | |
486 | + { 0x2131d1, 0x0 }, | |
487 | + { 0x10068, 0x0 }, | |
488 | + { 0x10168, 0x0 }, | |
489 | + { 0x10268, 0x0 }, | |
490 | + { 0x10368, 0x0 }, | |
491 | + { 0x10468, 0x0 }, | |
492 | + { 0x10568, 0x0 }, | |
493 | + { 0x10668, 0x0 }, | |
494 | + { 0x10768, 0x0 }, | |
495 | + { 0x10868, 0x0 }, | |
496 | + { 0x11068, 0x0 }, | |
497 | + { 0x11168, 0x0 }, | |
498 | + { 0x11268, 0x0 }, | |
499 | + { 0x11368, 0x0 }, | |
500 | + { 0x11468, 0x0 }, | |
501 | + { 0x11568, 0x0 }, | |
502 | + { 0x11668, 0x0 }, | |
503 | + { 0x11768, 0x0 }, | |
504 | + { 0x11868, 0x0 }, | |
505 | + { 0x12068, 0x0 }, | |
506 | + { 0x12168, 0x0 }, | |
507 | + { 0x12268, 0x0 }, | |
508 | + { 0x12368, 0x0 }, | |
509 | + { 0x12468, 0x0 }, | |
510 | + { 0x12568, 0x0 }, | |
511 | + { 0x12668, 0x0 }, | |
512 | + { 0x12768, 0x0 }, | |
513 | + { 0x12868, 0x0 }, | |
514 | + { 0x13068, 0x0 }, | |
515 | + { 0x13168, 0x0 }, | |
516 | + { 0x13268, 0x0 }, | |
517 | + { 0x13368, 0x0 }, | |
518 | + { 0x13468, 0x0 }, | |
519 | + { 0x13568, 0x0 }, | |
520 | + { 0x13668, 0x0 }, | |
521 | + { 0x13768, 0x0 }, | |
522 | + { 0x13868, 0x0 }, | |
523 | + { 0x10069, 0x0 }, | |
524 | + { 0x10169, 0x0 }, | |
525 | + { 0x10269, 0x0 }, | |
526 | + { 0x10369, 0x0 }, | |
527 | + { 0x10469, 0x0 }, | |
528 | + { 0x10569, 0x0 }, | |
529 | + { 0x10669, 0x0 }, | |
530 | + { 0x10769, 0x0 }, | |
531 | + { 0x10869, 0x0 }, | |
532 | + { 0x11069, 0x0 }, | |
533 | + { 0x11169, 0x0 }, | |
534 | + { 0x11269, 0x0 }, | |
535 | + { 0x11369, 0x0 }, | |
536 | + { 0x11469, 0x0 }, | |
537 | + { 0x11569, 0x0 }, | |
538 | + { 0x11669, 0x0 }, | |
539 | + { 0x11769, 0x0 }, | |
540 | + { 0x11869, 0x0 }, | |
541 | + { 0x12069, 0x0 }, | |
542 | + { 0x12169, 0x0 }, | |
543 | + { 0x12269, 0x0 }, | |
544 | + { 0x12369, 0x0 }, | |
545 | + { 0x12469, 0x0 }, | |
546 | + { 0x12569, 0x0 }, | |
547 | + { 0x12669, 0x0 }, | |
548 | + { 0x12769, 0x0 }, | |
549 | + { 0x12869, 0x0 }, | |
550 | + { 0x13069, 0x0 }, | |
551 | + { 0x13169, 0x0 }, | |
552 | + { 0x13269, 0x0 }, | |
553 | + { 0x13369, 0x0 }, | |
554 | + { 0x13469, 0x0 }, | |
555 | + { 0x13569, 0x0 }, | |
556 | + { 0x13669, 0x0 }, | |
557 | + { 0x13769, 0x0 }, | |
558 | + { 0x13869, 0x0 }, | |
559 | + { 0x1008c, 0x0 }, | |
560 | + { 0x11008c, 0x0 }, | |
561 | + { 0x21008c, 0x0 }, | |
562 | + { 0x1018c, 0x0 }, | |
563 | + { 0x11018c, 0x0 }, | |
564 | + { 0x21018c, 0x0 }, | |
565 | + { 0x1108c, 0x0 }, | |
566 | + { 0x11108c, 0x0 }, | |
567 | + { 0x21108c, 0x0 }, | |
568 | + { 0x1118c, 0x0 }, | |
569 | + { 0x11118c, 0x0 }, | |
570 | + { 0x21118c, 0x0 }, | |
571 | + { 0x1208c, 0x0 }, | |
572 | + { 0x11208c, 0x0 }, | |
573 | + { 0x21208c, 0x0 }, | |
574 | + { 0x1218c, 0x0 }, | |
575 | + { 0x11218c, 0x0 }, | |
576 | + { 0x21218c, 0x0 }, | |
577 | + { 0x1308c, 0x0 }, | |
578 | + { 0x11308c, 0x0 }, | |
579 | + { 0x21308c, 0x0 }, | |
580 | + { 0x1318c, 0x0 }, | |
581 | + { 0x11318c, 0x0 }, | |
582 | + { 0x21318c, 0x0 }, | |
583 | + { 0x1008d, 0x0 }, | |
584 | + { 0x11008d, 0x0 }, | |
585 | + { 0x21008d, 0x0 }, | |
586 | + { 0x1018d, 0x0 }, | |
587 | + { 0x11018d, 0x0 }, | |
588 | + { 0x21018d, 0x0 }, | |
589 | + { 0x1108d, 0x0 }, | |
590 | + { 0x11108d, 0x0 }, | |
591 | + { 0x21108d, 0x0 }, | |
592 | + { 0x1118d, 0x0 }, | |
593 | + { 0x11118d, 0x0 }, | |
594 | + { 0x21118d, 0x0 }, | |
595 | + { 0x1208d, 0x0 }, | |
596 | + { 0x11208d, 0x0 }, | |
597 | + { 0x21208d, 0x0 }, | |
598 | + { 0x1218d, 0x0 }, | |
599 | + { 0x11218d, 0x0 }, | |
600 | + { 0x21218d, 0x0 }, | |
601 | + { 0x1308d, 0x0 }, | |
602 | + { 0x11308d, 0x0 }, | |
603 | + { 0x21308d, 0x0 }, | |
604 | + { 0x1318d, 0x0 }, | |
605 | + { 0x11318d, 0x0 }, | |
606 | + { 0x21318d, 0x0 }, | |
607 | + { 0x100c0, 0x0 }, | |
608 | + { 0x1100c0, 0x0 }, | |
609 | + { 0x2100c0, 0x0 }, | |
610 | + { 0x101c0, 0x0 }, | |
611 | + { 0x1101c0, 0x0 }, | |
612 | + { 0x2101c0, 0x0 }, | |
613 | + { 0x102c0, 0x0 }, | |
614 | + { 0x1102c0, 0x0 }, | |
615 | + { 0x2102c0, 0x0 }, | |
616 | + { 0x103c0, 0x0 }, | |
617 | + { 0x1103c0, 0x0 }, | |
618 | + { 0x2103c0, 0x0 }, | |
619 | + { 0x104c0, 0x0 }, | |
620 | + { 0x1104c0, 0x0 }, | |
621 | + { 0x2104c0, 0x0 }, | |
622 | + { 0x105c0, 0x0 }, | |
623 | + { 0x1105c0, 0x0 }, | |
624 | + { 0x2105c0, 0x0 }, | |
625 | + { 0x106c0, 0x0 }, | |
626 | + { 0x1106c0, 0x0 }, | |
627 | + { 0x2106c0, 0x0 }, | |
628 | + { 0x107c0, 0x0 }, | |
629 | + { 0x1107c0, 0x0 }, | |
630 | + { 0x2107c0, 0x0 }, | |
631 | + { 0x108c0, 0x0 }, | |
632 | + { 0x1108c0, 0x0 }, | |
633 | + { 0x2108c0, 0x0 }, | |
634 | + { 0x110c0, 0x0 }, | |
635 | + { 0x1110c0, 0x0 }, | |
636 | + { 0x2110c0, 0x0 }, | |
637 | + { 0x111c0, 0x0 }, | |
638 | + { 0x1111c0, 0x0 }, | |
639 | + { 0x2111c0, 0x0 }, | |
640 | + { 0x112c0, 0x0 }, | |
641 | + { 0x1112c0, 0x0 }, | |
642 | + { 0x2112c0, 0x0 }, | |
643 | + { 0x113c0, 0x0 }, | |
644 | + { 0x1113c0, 0x0 }, | |
645 | + { 0x2113c0, 0x0 }, | |
646 | + { 0x114c0, 0x0 }, | |
647 | + { 0x1114c0, 0x0 }, | |
648 | + { 0x2114c0, 0x0 }, | |
649 | + { 0x115c0, 0x0 }, | |
650 | + { 0x1115c0, 0x0 }, | |
651 | + { 0x2115c0, 0x0 }, | |
652 | + { 0x116c0, 0x0 }, | |
653 | + { 0x1116c0, 0x0 }, | |
654 | + { 0x2116c0, 0x0 }, | |
655 | + { 0x117c0, 0x0 }, | |
656 | + { 0x1117c0, 0x0 }, | |
657 | + { 0x2117c0, 0x0 }, | |
658 | + { 0x118c0, 0x0 }, | |
659 | + { 0x1118c0, 0x0 }, | |
660 | + { 0x2118c0, 0x0 }, | |
661 | + { 0x120c0, 0x0 }, | |
662 | + { 0x1120c0, 0x0 }, | |
663 | + { 0x2120c0, 0x0 }, | |
664 | + { 0x121c0, 0x0 }, | |
665 | + { 0x1121c0, 0x0 }, | |
666 | + { 0x2121c0, 0x0 }, | |
667 | + { 0x122c0, 0x0 }, | |
668 | + { 0x1122c0, 0x0 }, | |
669 | + { 0x2122c0, 0x0 }, | |
670 | + { 0x123c0, 0x0 }, | |
671 | + { 0x1123c0, 0x0 }, | |
672 | + { 0x2123c0, 0x0 }, | |
673 | + { 0x124c0, 0x0 }, | |
674 | + { 0x1124c0, 0x0 }, | |
675 | + { 0x2124c0, 0x0 }, | |
676 | + { 0x125c0, 0x0 }, | |
677 | + { 0x1125c0, 0x0 }, | |
678 | + { 0x2125c0, 0x0 }, | |
679 | + { 0x126c0, 0x0 }, | |
680 | + { 0x1126c0, 0x0 }, | |
681 | + { 0x2126c0, 0x0 }, | |
682 | + { 0x127c0, 0x0 }, | |
683 | + { 0x1127c0, 0x0 }, | |
684 | + { 0x2127c0, 0x0 }, | |
685 | + { 0x128c0, 0x0 }, | |
686 | + { 0x1128c0, 0x0 }, | |
687 | + { 0x2128c0, 0x0 }, | |
688 | + { 0x130c0, 0x0 }, | |
689 | + { 0x1130c0, 0x0 }, | |
690 | + { 0x2130c0, 0x0 }, | |
691 | + { 0x131c0, 0x0 }, | |
692 | + { 0x1131c0, 0x0 }, | |
693 | + { 0x2131c0, 0x0 }, | |
694 | + { 0x132c0, 0x0 }, | |
695 | + { 0x1132c0, 0x0 }, | |
696 | + { 0x2132c0, 0x0 }, | |
697 | + { 0x133c0, 0x0 }, | |
698 | + { 0x1133c0, 0x0 }, | |
699 | + { 0x2133c0, 0x0 }, | |
700 | + { 0x134c0, 0x0 }, | |
701 | + { 0x1134c0, 0x0 }, | |
702 | + { 0x2134c0, 0x0 }, | |
703 | + { 0x135c0, 0x0 }, | |
704 | + { 0x1135c0, 0x0 }, | |
705 | + { 0x2135c0, 0x0 }, | |
706 | + { 0x136c0, 0x0 }, | |
707 | + { 0x1136c0, 0x0 }, | |
708 | + { 0x2136c0, 0x0 }, | |
709 | + { 0x137c0, 0x0 }, | |
710 | + { 0x1137c0, 0x0 }, | |
711 | + { 0x2137c0, 0x0 }, | |
712 | + { 0x138c0, 0x0 }, | |
713 | + { 0x1138c0, 0x0 }, | |
714 | + { 0x2138c0, 0x0 }, | |
715 | + { 0x100c1, 0x0 }, | |
716 | + { 0x1100c1, 0x0 }, | |
717 | + { 0x2100c1, 0x0 }, | |
718 | + { 0x101c1, 0x0 }, | |
719 | + { 0x1101c1, 0x0 }, | |
720 | + { 0x2101c1, 0x0 }, | |
721 | + { 0x102c1, 0x0 }, | |
722 | + { 0x1102c1, 0x0 }, | |
723 | + { 0x2102c1, 0x0 }, | |
724 | + { 0x103c1, 0x0 }, | |
725 | + { 0x1103c1, 0x0 }, | |
726 | + { 0x2103c1, 0x0 }, | |
727 | + { 0x104c1, 0x0 }, | |
728 | + { 0x1104c1, 0x0 }, | |
729 | + { 0x2104c1, 0x0 }, | |
730 | + { 0x105c1, 0x0 }, | |
731 | + { 0x1105c1, 0x0 }, | |
732 | + { 0x2105c1, 0x0 }, | |
733 | + { 0x106c1, 0x0 }, | |
734 | + { 0x1106c1, 0x0 }, | |
735 | + { 0x2106c1, 0x0 }, | |
736 | + { 0x107c1, 0x0 }, | |
737 | + { 0x1107c1, 0x0 }, | |
738 | + { 0x2107c1, 0x0 }, | |
739 | + { 0x108c1, 0x0 }, | |
740 | + { 0x1108c1, 0x0 }, | |
741 | + { 0x2108c1, 0x0 }, | |
742 | + { 0x110c1, 0x0 }, | |
743 | + { 0x1110c1, 0x0 }, | |
744 | + { 0x2110c1, 0x0 }, | |
745 | + { 0x111c1, 0x0 }, | |
746 | + { 0x1111c1, 0x0 }, | |
747 | + { 0x2111c1, 0x0 }, | |
748 | + { 0x112c1, 0x0 }, | |
749 | + { 0x1112c1, 0x0 }, | |
750 | + { 0x2112c1, 0x0 }, | |
751 | + { 0x113c1, 0x0 }, | |
752 | + { 0x1113c1, 0x0 }, | |
753 | + { 0x2113c1, 0x0 }, | |
754 | + { 0x114c1, 0x0 }, | |
755 | + { 0x1114c1, 0x0 }, | |
756 | + { 0x2114c1, 0x0 }, | |
757 | + { 0x115c1, 0x0 }, | |
758 | + { 0x1115c1, 0x0 }, | |
759 | + { 0x2115c1, 0x0 }, | |
760 | + { 0x116c1, 0x0 }, | |
761 | + { 0x1116c1, 0x0 }, | |
762 | + { 0x2116c1, 0x0 }, | |
763 | + { 0x117c1, 0x0 }, | |
764 | + { 0x1117c1, 0x0 }, | |
765 | + { 0x2117c1, 0x0 }, | |
766 | + { 0x118c1, 0x0 }, | |
767 | + { 0x1118c1, 0x0 }, | |
768 | + { 0x2118c1, 0x0 }, | |
769 | + { 0x120c1, 0x0 }, | |
770 | + { 0x1120c1, 0x0 }, | |
771 | + { 0x2120c1, 0x0 }, | |
772 | + { 0x121c1, 0x0 }, | |
773 | + { 0x1121c1, 0x0 }, | |
774 | + { 0x2121c1, 0x0 }, | |
775 | + { 0x122c1, 0x0 }, | |
776 | + { 0x1122c1, 0x0 }, | |
777 | + { 0x2122c1, 0x0 }, | |
778 | + { 0x123c1, 0x0 }, | |
779 | + { 0x1123c1, 0x0 }, | |
780 | + { 0x2123c1, 0x0 }, | |
781 | + { 0x124c1, 0x0 }, | |
782 | + { 0x1124c1, 0x0 }, | |
783 | + { 0x2124c1, 0x0 }, | |
784 | + { 0x125c1, 0x0 }, | |
785 | + { 0x1125c1, 0x0 }, | |
786 | + { 0x2125c1, 0x0 }, | |
787 | + { 0x126c1, 0x0 }, | |
788 | + { 0x1126c1, 0x0 }, | |
789 | + { 0x2126c1, 0x0 }, | |
790 | + { 0x127c1, 0x0 }, | |
791 | + { 0x1127c1, 0x0 }, | |
792 | + { 0x2127c1, 0x0 }, | |
793 | + { 0x128c1, 0x0 }, | |
794 | + { 0x1128c1, 0x0 }, | |
795 | + { 0x2128c1, 0x0 }, | |
796 | + { 0x130c1, 0x0 }, | |
797 | + { 0x1130c1, 0x0 }, | |
798 | + { 0x2130c1, 0x0 }, | |
799 | + { 0x131c1, 0x0 }, | |
800 | + { 0x1131c1, 0x0 }, | |
801 | + { 0x2131c1, 0x0 }, | |
802 | + { 0x132c1, 0x0 }, | |
803 | + { 0x1132c1, 0x0 }, | |
804 | + { 0x2132c1, 0x0 }, | |
805 | + { 0x133c1, 0x0 }, | |
806 | + { 0x1133c1, 0x0 }, | |
807 | + { 0x2133c1, 0x0 }, | |
808 | + { 0x134c1, 0x0 }, | |
809 | + { 0x1134c1, 0x0 }, | |
810 | + { 0x2134c1, 0x0 }, | |
811 | + { 0x135c1, 0x0 }, | |
812 | + { 0x1135c1, 0x0 }, | |
813 | + { 0x2135c1, 0x0 }, | |
814 | + { 0x136c1, 0x0 }, | |
815 | + { 0x1136c1, 0x0 }, | |
816 | + { 0x2136c1, 0x0 }, | |
817 | + { 0x137c1, 0x0 }, | |
818 | + { 0x1137c1, 0x0 }, | |
819 | + { 0x2137c1, 0x0 }, | |
820 | + { 0x138c1, 0x0 }, | |
821 | + { 0x1138c1, 0x0 }, | |
822 | + { 0x2138c1, 0x0 }, | |
823 | + { 0x10020, 0x0 }, | |
824 | + { 0x110020, 0x0 }, | |
825 | + { 0x210020, 0x0 }, | |
826 | + { 0x11020, 0x0 }, | |
827 | + { 0x111020, 0x0 }, | |
828 | + { 0x211020, 0x0 }, | |
829 | + { 0x12020, 0x0 }, | |
830 | + { 0x112020, 0x0 }, | |
831 | + { 0x212020, 0x0 }, | |
832 | + { 0x13020, 0x0 }, | |
833 | + { 0x113020, 0x0 }, | |
834 | + { 0x213020, 0x0 }, | |
835 | + { 0x20072, 0x0 }, | |
836 | + { 0x20073, 0x0 }, | |
837 | + { 0x20074, 0x0 }, | |
838 | + { 0x100aa, 0x0 }, | |
839 | + { 0x110aa, 0x0 }, | |
840 | + { 0x120aa, 0x0 }, | |
841 | + { 0x130aa, 0x0 }, | |
842 | + { 0x20010, 0x0 }, | |
843 | + { 0x120010, 0x0 }, | |
844 | + { 0x220010, 0x0 }, | |
845 | + { 0x20011, 0x0 }, | |
846 | + { 0x120011, 0x0 }, | |
847 | + { 0x220011, 0x0 }, | |
848 | + { 0x100ae, 0x0 }, | |
849 | + { 0x1100ae, 0x0 }, | |
850 | + { 0x2100ae, 0x0 }, | |
851 | + { 0x100af, 0x0 }, | |
852 | + { 0x1100af, 0x0 }, | |
853 | + { 0x2100af, 0x0 }, | |
854 | + { 0x110ae, 0x0 }, | |
855 | + { 0x1110ae, 0x0 }, | |
856 | + { 0x2110ae, 0x0 }, | |
857 | + { 0x110af, 0x0 }, | |
858 | + { 0x1110af, 0x0 }, | |
859 | + { 0x2110af, 0x0 }, | |
860 | + { 0x120ae, 0x0 }, | |
861 | + { 0x1120ae, 0x0 }, | |
862 | + { 0x2120ae, 0x0 }, | |
863 | + { 0x120af, 0x0 }, | |
864 | + { 0x1120af, 0x0 }, | |
865 | + { 0x2120af, 0x0 }, | |
866 | + { 0x130ae, 0x0 }, | |
867 | + { 0x1130ae, 0x0 }, | |
868 | + { 0x2130ae, 0x0 }, | |
869 | + { 0x130af, 0x0 }, | |
870 | + { 0x1130af, 0x0 }, | |
871 | + { 0x2130af, 0x0 }, | |
872 | + { 0x20020, 0x0 }, | |
873 | + { 0x120020, 0x0 }, | |
874 | + { 0x220020, 0x0 }, | |
875 | + { 0x100a0, 0x0 }, | |
876 | + { 0x100a1, 0x0 }, | |
877 | + { 0x100a2, 0x0 }, | |
878 | + { 0x100a3, 0x0 }, | |
879 | + { 0x100a4, 0x0 }, | |
880 | + { 0x100a5, 0x0 }, | |
881 | + { 0x100a6, 0x0 }, | |
882 | + { 0x100a7, 0x0 }, | |
883 | + { 0x110a0, 0x0 }, | |
884 | + { 0x110a1, 0x0 }, | |
885 | + { 0x110a2, 0x0 }, | |
886 | + { 0x110a3, 0x0 }, | |
887 | + { 0x110a4, 0x0 }, | |
888 | + { 0x110a5, 0x0 }, | |
889 | + { 0x110a6, 0x0 }, | |
890 | + { 0x110a7, 0x0 }, | |
891 | + { 0x120a0, 0x0 }, | |
892 | + { 0x120a1, 0x0 }, | |
893 | + { 0x120a2, 0x0 }, | |
894 | + { 0x120a3, 0x0 }, | |
895 | + { 0x120a4, 0x0 }, | |
896 | + { 0x120a5, 0x0 }, | |
897 | + { 0x120a6, 0x0 }, | |
898 | + { 0x120a7, 0x0 }, | |
899 | + { 0x130a0, 0x0 }, | |
900 | + { 0x130a1, 0x0 }, | |
901 | + { 0x130a2, 0x0 }, | |
902 | + { 0x130a3, 0x0 }, | |
903 | + { 0x130a4, 0x0 }, | |
904 | + { 0x130a5, 0x0 }, | |
905 | + { 0x130a6, 0x0 }, | |
906 | + { 0x130a7, 0x0 }, | |
907 | + { 0x2007c, 0x0 }, | |
908 | + { 0x12007c, 0x0 }, | |
909 | + { 0x22007c, 0x0 }, | |
910 | + { 0x2007d, 0x0 }, | |
911 | + { 0x12007d, 0x0 }, | |
912 | + { 0x22007d, 0x0 }, | |
913 | + { 0x400fd, 0x0 }, | |
914 | + { 0x400c0, 0x0 }, | |
915 | + { 0x90201, 0x0 }, | |
916 | + { 0x190201, 0x0 }, | |
917 | + { 0x290201, 0x0 }, | |
918 | + { 0x90202, 0x0 }, | |
919 | + { 0x190202, 0x0 }, | |
920 | + { 0x290202, 0x0 }, | |
921 | + { 0x90203, 0x0 }, | |
922 | + { 0x190203, 0x0 }, | |
923 | + { 0x290203, 0x0 }, | |
924 | + { 0x90204, 0x0 }, | |
925 | + { 0x190204, 0x0 }, | |
926 | + { 0x290204, 0x0 }, | |
927 | + { 0x90205, 0x0 }, | |
928 | + { 0x190205, 0x0 }, | |
929 | + { 0x290205, 0x0 }, | |
930 | + { 0x90206, 0x0 }, | |
931 | + { 0x190206, 0x0 }, | |
932 | + { 0x290206, 0x0 }, | |
933 | + { 0x90207, 0x0 }, | |
934 | + { 0x190207, 0x0 }, | |
935 | + { 0x290207, 0x0 }, | |
936 | + { 0x90208, 0x0 }, | |
937 | + { 0x190208, 0x0 }, | |
938 | + { 0x290208, 0x0 }, | |
939 | + { 0x10062, 0x0 }, | |
940 | + { 0x10162, 0x0 }, | |
941 | + { 0x10262, 0x0 }, | |
942 | + { 0x10362, 0x0 }, | |
943 | + { 0x10462, 0x0 }, | |
944 | + { 0x10562, 0x0 }, | |
945 | + { 0x10662, 0x0 }, | |
946 | + { 0x10762, 0x0 }, | |
947 | + { 0x10862, 0x0 }, | |
948 | + { 0x11062, 0x0 }, | |
949 | + { 0x11162, 0x0 }, | |
950 | + { 0x11262, 0x0 }, | |
951 | + { 0x11362, 0x0 }, | |
952 | + { 0x11462, 0x0 }, | |
953 | + { 0x11562, 0x0 }, | |
954 | + { 0x11662, 0x0 }, | |
955 | + { 0x11762, 0x0 }, | |
956 | + { 0x11862, 0x0 }, | |
957 | + { 0x12062, 0x0 }, | |
958 | + { 0x12162, 0x0 }, | |
959 | + { 0x12262, 0x0 }, | |
960 | + { 0x12362, 0x0 }, | |
961 | + { 0x12462, 0x0 }, | |
962 | + { 0x12562, 0x0 }, | |
963 | + { 0x12662, 0x0 }, | |
964 | + { 0x12762, 0x0 }, | |
965 | + { 0x12862, 0x0 }, | |
966 | + { 0x13062, 0x0 }, | |
967 | + { 0x13162, 0x0 }, | |
968 | + { 0x13262, 0x0 }, | |
969 | + { 0x13362, 0x0 }, | |
970 | + { 0x13462, 0x0 }, | |
971 | + { 0x13562, 0x0 }, | |
972 | + { 0x13662, 0x0 }, | |
973 | + { 0x13762, 0x0 }, | |
974 | + { 0x13862, 0x0 }, | |
975 | + { 0x20077, 0x0 }, | |
976 | + { 0x10001, 0x0 }, | |
977 | + { 0x11001, 0x0 }, | |
978 | + { 0x12001, 0x0 }, | |
979 | + { 0x13001, 0x0 }, | |
980 | + { 0x10040, 0x0 }, | |
981 | + { 0x10140, 0x0 }, | |
982 | + { 0x10240, 0x0 }, | |
983 | + { 0x10340, 0x0 }, | |
984 | + { 0x10440, 0x0 }, | |
985 | + { 0x10540, 0x0 }, | |
986 | + { 0x10640, 0x0 }, | |
987 | + { 0x10740, 0x0 }, | |
988 | + { 0x10840, 0x0 }, | |
989 | + { 0x10030, 0x0 }, | |
990 | + { 0x10130, 0x0 }, | |
991 | + { 0x10230, 0x0 }, | |
992 | + { 0x10330, 0x0 }, | |
993 | + { 0x10430, 0x0 }, | |
994 | + { 0x10530, 0x0 }, | |
995 | + { 0x10630, 0x0 }, | |
996 | + { 0x10730, 0x0 }, | |
997 | + { 0x10830, 0x0 }, | |
998 | + { 0x11040, 0x0 }, | |
999 | + { 0x11140, 0x0 }, | |
1000 | + { 0x11240, 0x0 }, | |
1001 | + { 0x11340, 0x0 }, | |
1002 | + { 0x11440, 0x0 }, | |
1003 | + { 0x11540, 0x0 }, | |
1004 | + { 0x11640, 0x0 }, | |
1005 | + { 0x11740, 0x0 }, | |
1006 | + { 0x11840, 0x0 }, | |
1007 | + { 0x11030, 0x0 }, | |
1008 | + { 0x11130, 0x0 }, | |
1009 | + { 0x11230, 0x0 }, | |
1010 | + { 0x11330, 0x0 }, | |
1011 | + { 0x11430, 0x0 }, | |
1012 | + { 0x11530, 0x0 }, | |
1013 | + { 0x11630, 0x0 }, | |
1014 | + { 0x11730, 0x0 }, | |
1015 | + { 0x11830, 0x0 }, | |
1016 | + { 0x12040, 0x0 }, | |
1017 | + { 0x12140, 0x0 }, | |
1018 | + { 0x12240, 0x0 }, | |
1019 | + { 0x12340, 0x0 }, | |
1020 | + { 0x12440, 0x0 }, | |
1021 | + { 0x12540, 0x0 }, | |
1022 | + { 0x12640, 0x0 }, | |
1023 | + { 0x12740, 0x0 }, | |
1024 | + { 0x12840, 0x0 }, | |
1025 | + { 0x12030, 0x0 }, | |
1026 | + { 0x12130, 0x0 }, | |
1027 | + { 0x12230, 0x0 }, | |
1028 | + { 0x12330, 0x0 }, | |
1029 | + { 0x12430, 0x0 }, | |
1030 | + { 0x12530, 0x0 }, | |
1031 | + { 0x12630, 0x0 }, | |
1032 | + { 0x12730, 0x0 }, | |
1033 | + { 0x12830, 0x0 }, | |
1034 | + { 0x13040, 0x0 }, | |
1035 | + { 0x13140, 0x0 }, | |
1036 | + { 0x13240, 0x0 }, | |
1037 | + { 0x13340, 0x0 }, | |
1038 | + { 0x13440, 0x0 }, | |
1039 | + { 0x13540, 0x0 }, | |
1040 | + { 0x13640, 0x0 }, | |
1041 | + { 0x13740, 0x0 }, | |
1042 | + { 0x13840, 0x0 }, | |
1043 | + { 0x13030, 0x0 }, | |
1044 | + { 0x13130, 0x0 }, | |
1045 | + { 0x13230, 0x0 }, | |
1046 | + { 0x13330, 0x0 }, | |
1047 | + { 0x13430, 0x0 }, | |
1048 | + { 0x13530, 0x0 }, | |
1049 | + { 0x13630, 0x0 }, | |
1050 | + { 0x13730, 0x0 }, | |
1051 | + { 0x13830, 0x0 }, | |
1052 | +}; | |
1053 | +/* P0 message block paremeter for training firmware */ | |
1054 | +struct dram_cfg_param ddr_fsp0_cfg[] = { | |
1055 | + { 0xd0000, 0x0 }, | |
1056 | + { 0x54003, 0xbb8 }, | |
1057 | + { 0x54004, 0x2 }, | |
1058 | + { 0x54005, 0x2228 }, | |
1059 | + { 0x54006, 0x11 }, | |
1060 | + { 0x54008, 0x131f }, | |
1061 | + { 0x54009, 0xc8 }, | |
1062 | + { 0x5400b, 0x2 }, | |
1063 | + { 0x5400d, 0x100 }, | |
1064 | + { 0x54012, 0x110 }, | |
1065 | + { 0x54019, 0x2dd4 }, | |
1066 | + { 0x5401a, 0x31 }, | |
1067 | + { 0x5401b, 0x4d66 }, | |
1068 | + { 0x5401c, 0x4d00 }, | |
1069 | + { 0x5401e, 0x16 }, | |
1070 | + { 0x5401f, 0x2dd4 }, | |
1071 | + { 0x54020, 0x31 }, | |
1072 | + { 0x54021, 0x4d66 }, | |
1073 | + { 0x54022, 0x4d00 }, | |
1074 | + { 0x54024, 0x16 }, | |
1075 | + { 0x5402b, 0x1000 }, | |
1076 | + { 0x5402c, 0x1 }, | |
1077 | + { 0x54032, 0xd400 }, | |
1078 | + { 0x54033, 0x312d }, | |
1079 | + { 0x54034, 0x6600 }, | |
1080 | + { 0x54035, 0x4d }, | |
1081 | + { 0x54036, 0x4d }, | |
1082 | + { 0x54037, 0x1600 }, | |
1083 | + { 0x54038, 0xd400 }, | |
1084 | + { 0x54039, 0x312d }, | |
1085 | + { 0x5403a, 0x6600 }, | |
1086 | + { 0x5403b, 0x4d }, | |
1087 | + { 0x5403c, 0x4d }, | |
1088 | + { 0x5403d, 0x1600 }, | |
1089 | + { 0xd0000, 0x1 }, | |
1090 | +}; | |
1091 | + | |
1092 | + | |
1093 | +/* P1 message block paremeter for training firmware */ | |
1094 | +struct dram_cfg_param ddr_fsp1_cfg[] = { | |
1095 | + { 0xd0000, 0x0 }, | |
1096 | + { 0x54002, 0x101 }, | |
1097 | + { 0x54003, 0x190 }, | |
1098 | + { 0x54004, 0x2 }, | |
1099 | + { 0x54005, 0x2228 }, | |
1100 | + { 0x54006, 0x11 }, | |
1101 | + { 0x54008, 0x121f }, | |
1102 | + { 0x54009, 0xc8 }, | |
1103 | + { 0x5400b, 0x2 }, | |
1104 | + { 0x5400d, 0x100 }, | |
1105 | + { 0x54012, 0x110 }, | |
1106 | + { 0x54019, 0x84 }, | |
1107 | + { 0x5401a, 0x31 }, | |
1108 | + { 0x5401b, 0x4d66 }, | |
1109 | + { 0x5401c, 0x4d00 }, | |
1110 | + { 0x5401e, 0x16 }, | |
1111 | + { 0x5401f, 0x84 }, | |
1112 | + { 0x54020, 0x31 }, | |
1113 | + { 0x54021, 0x4d66 }, | |
1114 | + { 0x54022, 0x4d00 }, | |
1115 | + { 0x54024, 0x16 }, | |
1116 | + { 0x5402b, 0x1000 }, | |
1117 | + { 0x5402c, 0x1 }, | |
1118 | + { 0x54032, 0x8400 }, | |
1119 | + { 0x54033, 0x3100 }, | |
1120 | + { 0x54034, 0x6600 }, | |
1121 | + { 0x54035, 0x4d }, | |
1122 | + { 0x54036, 0x4d }, | |
1123 | + { 0x54037, 0x1600 }, | |
1124 | + { 0x54038, 0x8400 }, | |
1125 | + { 0x54039, 0x3100 }, | |
1126 | + { 0x5403a, 0x6600 }, | |
1127 | + { 0x5403b, 0x4d }, | |
1128 | + { 0x5403c, 0x4d }, | |
1129 | + { 0x5403d, 0x1600 }, | |
1130 | + { 0xd0000, 0x1 }, | |
1131 | +}; | |
1132 | + | |
1133 | + | |
1134 | +/* P2 message block paremeter for training firmware */ | |
1135 | +struct dram_cfg_param ddr_fsp2_cfg[] = { | |
1136 | + { 0xd0000, 0x0 }, | |
1137 | + { 0x54002, 0x102 }, | |
1138 | + { 0x54003, 0x64 }, | |
1139 | + { 0x54004, 0x2 }, | |
1140 | + { 0x54005, 0x2228 }, | |
1141 | + { 0x54006, 0x11 }, | |
1142 | + { 0x54008, 0x121f }, | |
1143 | + { 0x54009, 0xc8 }, | |
1144 | + { 0x5400b, 0x2 }, | |
1145 | + { 0x5400d, 0x100 }, | |
1146 | + { 0x54012, 0x110 }, | |
1147 | + { 0x54019, 0x84 }, | |
1148 | + { 0x5401a, 0x31 }, | |
1149 | + { 0x5401b, 0x4d66 }, | |
1150 | + { 0x5401c, 0x4d00 }, | |
1151 | + { 0x5401e, 0x16 }, | |
1152 | + { 0x5401f, 0x84 }, | |
1153 | + { 0x54020, 0x31 }, | |
1154 | + { 0x54021, 0x4d66 }, | |
1155 | + { 0x54022, 0x4d00 }, | |
1156 | + { 0x54024, 0x16 }, | |
1157 | + { 0x5402b, 0x1000 }, | |
1158 | + { 0x5402c, 0x1 }, | |
1159 | + { 0x54032, 0x8400 }, | |
1160 | + { 0x54033, 0x3100 }, | |
1161 | + { 0x54034, 0x6600 }, | |
1162 | + { 0x54035, 0x4d }, | |
1163 | + { 0x54036, 0x4d }, | |
1164 | + { 0x54037, 0x1600 }, | |
1165 | + { 0x54038, 0x8400 }, | |
1166 | + { 0x54039, 0x3100 }, | |
1167 | + { 0x5403a, 0x6600 }, | |
1168 | + { 0x5403b, 0x4d }, | |
1169 | + { 0x5403c, 0x4d }, | |
1170 | + { 0x5403d, 0x1600 }, | |
1171 | + { 0xd0000, 0x1 }, | |
1172 | +}; | |
1173 | + | |
1174 | + | |
1175 | +/* P0 2D message block paremeter for training firmware */ | |
1176 | +struct dram_cfg_param ddr_fsp0_2d_cfg[] = { | |
1177 | + { 0xd0000, 0x0 }, | |
1178 | + { 0x54003, 0xbb8 }, | |
1179 | + { 0x54004, 0x2 }, | |
1180 | + { 0x54005, 0x2228 }, | |
1181 | + { 0x54006, 0x11 }, | |
1182 | + { 0x54008, 0x61 }, | |
1183 | + { 0x54009, 0xc8 }, | |
1184 | + { 0x5400b, 0x2 }, | |
1185 | + { 0x5400f, 0x100 }, | |
1186 | + { 0x54010, 0x1f7f }, | |
1187 | + { 0x54012, 0x110 }, | |
1188 | + { 0x54019, 0x2dd4 }, | |
1189 | + { 0x5401a, 0x31 }, | |
1190 | + { 0x5401b, 0x4d66 }, | |
1191 | + { 0x5401c, 0x4d00 }, | |
1192 | + { 0x5401e, 0x16 }, | |
1193 | + { 0x5401f, 0x2dd4 }, | |
1194 | + { 0x54020, 0x31 }, | |
1195 | + { 0x54021, 0x4d66 }, | |
1196 | + { 0x54022, 0x4d00 }, | |
1197 | + { 0x54024, 0x16 }, | |
1198 | + { 0x5402b, 0x1000 }, | |
1199 | + { 0x5402c, 0x1 }, | |
1200 | + { 0x54032, 0xd400 }, | |
1201 | + { 0x54033, 0x312d }, | |
1202 | + { 0x54034, 0x6600 }, | |
1203 | + { 0x54035, 0x4d }, | |
1204 | + { 0x54036, 0x4d }, | |
1205 | + { 0x54037, 0x1600 }, | |
1206 | + { 0x54038, 0xd400 }, | |
1207 | + { 0x54039, 0x312d }, | |
1208 | + { 0x5403a, 0x6600 }, | |
1209 | + { 0x5403b, 0x4d }, | |
1210 | + { 0x5403c, 0x4d }, | |
1211 | + { 0x5403d, 0x1600 }, | |
1212 | + { 0xd0000, 0x1 }, | |
1213 | +}; | |
1214 | + | |
1215 | +/* DRAM PHY init engine image */ | |
1216 | +struct dram_cfg_param ddr_phy_pie[] = { | |
1217 | + { 0xd0000, 0x0 }, | |
1218 | + { 0x90000, 0x10 }, | |
1219 | + { 0x90001, 0x400 }, | |
1220 | + { 0x90002, 0x10e }, | |
1221 | + { 0x90003, 0x0 }, | |
1222 | + { 0x90004, 0x0 }, | |
1223 | + { 0x90005, 0x8 }, | |
1224 | + { 0x90029, 0xb }, | |
1225 | + { 0x9002a, 0x480 }, | |
1226 | + { 0x9002b, 0x109 }, | |
1227 | + { 0x9002c, 0x8 }, | |
1228 | + { 0x9002d, 0x448 }, | |
1229 | + { 0x9002e, 0x139 }, | |
1230 | + { 0x9002f, 0x8 }, | |
1231 | + { 0x90030, 0x478 }, | |
1232 | + { 0x90031, 0x109 }, | |
1233 | + { 0x90032, 0x0 }, | |
1234 | + { 0x90033, 0xe8 }, | |
1235 | + { 0x90034, 0x109 }, | |
1236 | + { 0x90035, 0x2 }, | |
1237 | + { 0x90036, 0x10 }, | |
1238 | + { 0x90037, 0x139 }, | |
1239 | + { 0x90038, 0xf }, | |
1240 | + { 0x90039, 0x7c0 }, | |
1241 | + { 0x9003a, 0x139 }, | |
1242 | + { 0x9003b, 0x44 }, | |
1243 | + { 0x9003c, 0x630 }, | |
1244 | + { 0x9003d, 0x159 }, | |
1245 | + { 0x9003e, 0x14f }, | |
1246 | + { 0x9003f, 0x630 }, | |
1247 | + { 0x90040, 0x159 }, | |
1248 | + { 0x90041, 0x47 }, | |
1249 | + { 0x90042, 0x630 }, | |
1250 | + { 0x90043, 0x149 }, | |
1251 | + { 0x90044, 0x4f }, | |
1252 | + { 0x90045, 0x630 }, | |
1253 | + { 0x90046, 0x179 }, | |
1254 | + { 0x90047, 0x8 }, | |
1255 | + { 0x90048, 0xe0 }, | |
1256 | + { 0x90049, 0x109 }, | |
1257 | + { 0x9004a, 0x0 }, | |
1258 | + { 0x9004b, 0x7c8 }, | |
1259 | + { 0x9004c, 0x109 }, | |
1260 | + { 0x9004d, 0x0 }, | |
1261 | + { 0x9004e, 0x1 }, | |
1262 | + { 0x9004f, 0x8 }, | |
1263 | + { 0x90050, 0x0 }, | |
1264 | + { 0x90051, 0x45a }, | |
1265 | + { 0x90052, 0x9 }, | |
1266 | + { 0x90053, 0x0 }, | |
1267 | + { 0x90054, 0x448 }, | |
1268 | + { 0x90055, 0x109 }, | |
1269 | + { 0x90056, 0x40 }, | |
1270 | + { 0x90057, 0x630 }, | |
1271 | + { 0x90058, 0x179 }, | |
1272 | + { 0x90059, 0x1 }, | |
1273 | + { 0x9005a, 0x618 }, | |
1274 | + { 0x9005b, 0x109 }, | |
1275 | + { 0x9005c, 0x40c0 }, | |
1276 | + { 0x9005d, 0x630 }, | |
1277 | + { 0x9005e, 0x149 }, | |
1278 | + { 0x9005f, 0x8 }, | |
1279 | + { 0x90060, 0x4 }, | |
1280 | + { 0x90061, 0x48 }, | |
1281 | + { 0x90062, 0x4040 }, | |
1282 | + { 0x90063, 0x630 }, | |
1283 | + { 0x90064, 0x149 }, | |
1284 | + { 0x90065, 0x0 }, | |
1285 | + { 0x90066, 0x4 }, | |
1286 | + { 0x90067, 0x48 }, | |
1287 | + { 0x90068, 0x40 }, | |
1288 | + { 0x90069, 0x630 }, | |
1289 | + { 0x9006a, 0x149 }, | |
1290 | + { 0x9006b, 0x10 }, | |
1291 | + { 0x9006c, 0x4 }, | |
1292 | + { 0x9006d, 0x18 }, | |
1293 | + { 0x9006e, 0x0 }, | |
1294 | + { 0x9006f, 0x4 }, | |
1295 | + { 0x90070, 0x78 }, | |
1296 | + { 0x90071, 0x549 }, | |
1297 | + { 0x90072, 0x630 }, | |
1298 | + { 0x90073, 0x159 }, | |
1299 | + { 0x90074, 0xd49 }, | |
1300 | + { 0x90075, 0x630 }, | |
1301 | + { 0x90076, 0x159 }, | |
1302 | + { 0x90077, 0x94a }, | |
1303 | + { 0x90078, 0x630 }, | |
1304 | + { 0x90079, 0x159 }, | |
1305 | + { 0x9007a, 0x441 }, | |
1306 | + { 0x9007b, 0x630 }, | |
1307 | + { 0x9007c, 0x149 }, | |
1308 | + { 0x9007d, 0x42 }, | |
1309 | + { 0x9007e, 0x630 }, | |
1310 | + { 0x9007f, 0x149 }, | |
1311 | + { 0x90080, 0x1 }, | |
1312 | + { 0x90081, 0x630 }, | |
1313 | + { 0x90082, 0x149 }, | |
1314 | + { 0x90083, 0x0 }, | |
1315 | + { 0x90084, 0xe0 }, | |
1316 | + { 0x90085, 0x109 }, | |
1317 | + { 0x90086, 0xa }, | |
1318 | + { 0x90087, 0x10 }, | |
1319 | + { 0x90088, 0x109 }, | |
1320 | + { 0x90089, 0x9 }, | |
1321 | + { 0x9008a, 0x3c0 }, | |
1322 | + { 0x9008b, 0x149 }, | |
1323 | + { 0x9008c, 0x9 }, | |
1324 | + { 0x9008d, 0x3c0 }, | |
1325 | + { 0x9008e, 0x159 }, | |
1326 | + { 0x9008f, 0x18 }, | |
1327 | + { 0x90090, 0x10 }, | |
1328 | + { 0x90091, 0x109 }, | |
1329 | + { 0x90092, 0x0 }, | |
1330 | + { 0x90093, 0x3c0 }, | |
1331 | + { 0x90094, 0x109 }, | |
1332 | + { 0x90095, 0x18 }, | |
1333 | + { 0x90096, 0x4 }, | |
1334 | + { 0x90097, 0x48 }, | |
1335 | + { 0x90098, 0x18 }, | |
1336 | + { 0x90099, 0x4 }, | |
1337 | + { 0x9009a, 0x58 }, | |
1338 | + { 0x9009b, 0xa }, | |
1339 | + { 0x9009c, 0x10 }, | |
1340 | + { 0x9009d, 0x109 }, | |
1341 | + { 0x9009e, 0x2 }, | |
1342 | + { 0x9009f, 0x10 }, | |
1343 | + { 0x900a0, 0x109 }, | |
1344 | + { 0x900a1, 0x5 }, | |
1345 | + { 0x900a2, 0x7c0 }, | |
1346 | + { 0x900a3, 0x109 }, | |
1347 | + { 0x900a4, 0x10 }, | |
1348 | + { 0x900a5, 0x10 }, | |
1349 | + { 0x900a6, 0x109 }, | |
1350 | + { 0x40000, 0x811 }, | |
1351 | + { 0x40020, 0x880 }, | |
1352 | + { 0x40040, 0x0 }, | |
1353 | + { 0x40060, 0x0 }, | |
1354 | + { 0x40001, 0x4008 }, | |
1355 | + { 0x40021, 0x83 }, | |
1356 | + { 0x40041, 0x4f }, | |
1357 | + { 0x40061, 0x0 }, | |
1358 | + { 0x40002, 0x4040 }, | |
1359 | + { 0x40022, 0x83 }, | |
1360 | + { 0x40042, 0x51 }, | |
1361 | + { 0x40062, 0x0 }, | |
1362 | + { 0x40003, 0x811 }, | |
1363 | + { 0x40023, 0x880 }, | |
1364 | + { 0x40043, 0x0 }, | |
1365 | + { 0x40063, 0x0 }, | |
1366 | + { 0x40004, 0x720 }, | |
1367 | + { 0x40024, 0xf }, | |
1368 | + { 0x40044, 0x1740 }, | |
1369 | + { 0x40064, 0x0 }, | |
1370 | + { 0x40005, 0x16 }, | |
1371 | + { 0x40025, 0x83 }, | |
1372 | + { 0x40045, 0x4b }, | |
1373 | + { 0x40065, 0x0 }, | |
1374 | + { 0x40006, 0x716 }, | |
1375 | + { 0x40026, 0xf }, | |
1376 | + { 0x40046, 0x2001 }, | |
1377 | + { 0x40066, 0x0 }, | |
1378 | + { 0x40007, 0x716 }, | |
1379 | + { 0x40027, 0xf }, | |
1380 | + { 0x40047, 0x2800 }, | |
1381 | + { 0x40067, 0x0 }, | |
1382 | + { 0x40008, 0x716 }, | |
1383 | + { 0x40028, 0xf }, | |
1384 | + { 0x40048, 0xf00 }, | |
1385 | + { 0x40068, 0x0 }, | |
1386 | + { 0x40009, 0x720 }, | |
1387 | + { 0x40029, 0xf }, | |
1388 | + { 0x40049, 0x1400 }, | |
1389 | + { 0x40069, 0x0 }, | |
1390 | + { 0x4000a, 0xe08 }, | |
1391 | + { 0x4002a, 0xc15 }, | |
1392 | + { 0x4004a, 0x0 }, | |
1393 | + { 0x4006a, 0x0 }, | |
1394 | + { 0x4000b, 0x623 }, | |
1395 | + { 0x4002b, 0x15 }, | |
1396 | + { 0x4004b, 0x0 }, | |
1397 | + { 0x4006b, 0x0 }, | |
1398 | + { 0x4000c, 0x4028 }, | |
1399 | + { 0x4002c, 0x80 }, | |
1400 | + { 0x4004c, 0x0 }, | |
1401 | + { 0x4006c, 0x0 }, | |
1402 | + { 0x4000d, 0xe08 }, | |
1403 | + { 0x4002d, 0xc1a }, | |
1404 | + { 0x4004d, 0x0 }, | |
1405 | + { 0x4006d, 0x0 }, | |
1406 | + { 0x4000e, 0x623 }, | |
1407 | + { 0x4002e, 0x1a }, | |
1408 | + { 0x4004e, 0x0 }, | |
1409 | + { 0x4006e, 0x0 }, | |
1410 | + { 0x4000f, 0x4040 }, | |
1411 | + { 0x4002f, 0x80 }, | |
1412 | + { 0x4004f, 0x0 }, | |
1413 | + { 0x4006f, 0x0 }, | |
1414 | + { 0x40010, 0x2604 }, | |
1415 | + { 0x40030, 0x15 }, | |
1416 | + { 0x40050, 0x0 }, | |
1417 | + { 0x40070, 0x0 }, | |
1418 | + { 0x40011, 0x708 }, | |
1419 | + { 0x40031, 0x5 }, | |
1420 | + { 0x40051, 0x0 }, | |
1421 | + { 0x40071, 0x2002 }, | |
1422 | + { 0x40012, 0x8 }, | |
1423 | + { 0x40032, 0x80 }, | |
1424 | + { 0x40052, 0x0 }, | |
1425 | + { 0x40072, 0x0 }, | |
1426 | + { 0x40013, 0x2604 }, | |
1427 | + { 0x40033, 0x1a }, | |
1428 | + { 0x40053, 0x0 }, | |
1429 | + { 0x40073, 0x0 }, | |
1430 | + { 0x40014, 0x708 }, | |
1431 | + { 0x40034, 0xa }, | |
1432 | + { 0x40054, 0x0 }, | |
1433 | + { 0x40074, 0x2002 }, | |
1434 | + { 0x40015, 0x4040 }, | |
1435 | + { 0x40035, 0x80 }, | |
1436 | + { 0x40055, 0x0 }, | |
1437 | + { 0x40075, 0x0 }, | |
1438 | + { 0x40016, 0x60a }, | |
1439 | + { 0x40036, 0x15 }, | |
1440 | + { 0x40056, 0x1200 }, | |
1441 | + { 0x40076, 0x0 }, | |
1442 | + { 0x40017, 0x61a }, | |
1443 | + { 0x40037, 0x15 }, | |
1444 | + { 0x40057, 0x1300 }, | |
1445 | + { 0x40077, 0x0 }, | |
1446 | + { 0x40018, 0x60a }, | |
1447 | + { 0x40038, 0x1a }, | |
1448 | + { 0x40058, 0x1200 }, | |
1449 | + { 0x40078, 0x0 }, | |
1450 | + { 0x40019, 0x642 }, | |
1451 | + { 0x40039, 0x1a }, | |
1452 | + { 0x40059, 0x1300 }, | |
1453 | + { 0x40079, 0x0 }, | |
1454 | + { 0x4001a, 0x4808 }, | |
1455 | + { 0x4003a, 0x880 }, | |
1456 | + { 0x4005a, 0x0 }, | |
1457 | + { 0x4007a, 0x0 }, | |
1458 | + { 0x900a7, 0x0 }, | |
1459 | + { 0x900a8, 0x790 }, | |
1460 | + { 0x900a9, 0x11a }, | |
1461 | + { 0x900aa, 0x8 }, | |
1462 | + { 0x900ab, 0x7aa }, | |
1463 | + { 0x900ac, 0x2a }, | |
1464 | + { 0x900ad, 0x10 }, | |
1465 | + { 0x900ae, 0x7b2 }, | |
1466 | + { 0x900af, 0x2a }, | |
1467 | + { 0x900b0, 0x0 }, | |
1468 | + { 0x900b1, 0x7c8 }, | |
1469 | + { 0x900b2, 0x109 }, | |
1470 | + { 0x900b3, 0x10 }, | |
1471 | + { 0x900b4, 0x2a8 }, | |
1472 | + { 0x900b5, 0x129 }, | |
1473 | + { 0x900b6, 0x8 }, | |
1474 | + { 0x900b7, 0x370 }, | |
1475 | + { 0x900b8, 0x129 }, | |
1476 | + { 0x900b9, 0xa }, | |
1477 | + { 0x900ba, 0x3c8 }, | |
1478 | + { 0x900bb, 0x1a9 }, | |
1479 | + { 0x900bc, 0xc }, | |
1480 | + { 0x900bd, 0x408 }, | |
1481 | + { 0x900be, 0x199 }, | |
1482 | + { 0x900bf, 0x14 }, | |
1483 | + { 0x900c0, 0x790 }, | |
1484 | + { 0x900c1, 0x11a }, | |
1485 | + { 0x900c2, 0x8 }, | |
1486 | + { 0x900c3, 0x4 }, | |
1487 | + { 0x900c4, 0x18 }, | |
1488 | + { 0x900c5, 0xe }, | |
1489 | + { 0x900c6, 0x408 }, | |
1490 | + { 0x900c7, 0x199 }, | |
1491 | + { 0x900c8, 0x8 }, | |
1492 | + { 0x900c9, 0x8568 }, | |
1493 | + { 0x900ca, 0x108 }, | |
1494 | + { 0x900cb, 0x18 }, | |
1495 | + { 0x900cc, 0x790 }, | |
1496 | + { 0x900cd, 0x16a }, | |
1497 | + { 0x900ce, 0x8 }, | |
1498 | + { 0x900cf, 0x1d8 }, | |
1499 | + { 0x900d0, 0x169 }, | |
1500 | + { 0x900d1, 0x10 }, | |
1501 | + { 0x900d2, 0x8558 }, | |
1502 | + { 0x900d3, 0x168 }, | |
1503 | + { 0x900d4, 0x70 }, | |
1504 | + { 0x900d5, 0x788 }, | |
1505 | + { 0x900d6, 0x16a }, | |
1506 | + { 0x900d7, 0x1ff8 }, | |
1507 | + { 0x900d8, 0x85a8 }, | |
1508 | + { 0x900d9, 0x1e8 }, | |
1509 | + { 0x900da, 0x50 }, | |
1510 | + { 0x900db, 0x798 }, | |
1511 | + { 0x900dc, 0x16a }, | |
1512 | + { 0x900dd, 0x60 }, | |
1513 | + { 0x900de, 0x7a0 }, | |
1514 | + { 0x900df, 0x16a }, | |
1515 | + { 0x900e0, 0x8 }, | |
1516 | + { 0x900e1, 0x8310 }, | |
1517 | + { 0x900e2, 0x168 }, | |
1518 | + { 0x900e3, 0x8 }, | |
1519 | + { 0x900e4, 0xa310 }, | |
1520 | + { 0x900e5, 0x168 }, | |
1521 | + { 0x900e6, 0xa }, | |
1522 | + { 0x900e7, 0x408 }, | |
1523 | + { 0x900e8, 0x169 }, | |
1524 | + { 0x900e9, 0x6e }, | |
1525 | + { 0x900ea, 0x0 }, | |
1526 | + { 0x900eb, 0x68 }, | |
1527 | + { 0x900ec, 0x0 }, | |
1528 | + { 0x900ed, 0x408 }, | |
1529 | + { 0x900ee, 0x169 }, | |
1530 | + { 0x900ef, 0x0 }, | |
1531 | + { 0x900f0, 0x8310 }, | |
1532 | + { 0x900f1, 0x168 }, | |
1533 | + { 0x900f2, 0x0 }, | |
1534 | + { 0x900f3, 0xa310 }, | |
1535 | + { 0x900f4, 0x168 }, | |
1536 | + { 0x900f5, 0x1ff8 }, | |
1537 | + { 0x900f6, 0x85a8 }, | |
1538 | + { 0x900f7, 0x1e8 }, | |
1539 | + { 0x900f8, 0x68 }, | |
1540 | + { 0x900f9, 0x798 }, | |
1541 | + { 0x900fa, 0x16a }, | |
1542 | + { 0x900fb, 0x78 }, | |
1543 | + { 0x900fc, 0x7a0 }, | |
1544 | + { 0x900fd, 0x16a }, | |
1545 | + { 0x900fe, 0x68 }, | |
1546 | + { 0x900ff, 0x790 }, | |
1547 | + { 0x90100, 0x16a }, | |
1548 | + { 0x90101, 0x8 }, | |
1549 | + { 0x90102, 0x8b10 }, | |
1550 | + { 0x90103, 0x168 }, | |
1551 | + { 0x90104, 0x8 }, | |
1552 | + { 0x90105, 0xab10 }, | |
1553 | + { 0x90106, 0x168 }, | |
1554 | + { 0x90107, 0xa }, | |
1555 | + { 0x90108, 0x408 }, | |
1556 | + { 0x90109, 0x169 }, | |
1557 | + { 0x9010a, 0x58 }, | |
1558 | + { 0x9010b, 0x0 }, | |
1559 | + { 0x9010c, 0x68 }, | |
1560 | + { 0x9010d, 0x0 }, | |
1561 | + { 0x9010e, 0x408 }, | |
1562 | + { 0x9010f, 0x169 }, | |
1563 | + { 0x90110, 0x0 }, | |
1564 | + { 0x90111, 0x8b10 }, | |
1565 | + { 0x90112, 0x168 }, | |
1566 | + { 0x90113, 0x0 }, | |
1567 | + { 0x90114, 0xab10 }, | |
1568 | + { 0x90115, 0x168 }, | |
1569 | + { 0x90116, 0x0 }, | |
1570 | + { 0x90117, 0x1d8 }, | |
1571 | + { 0x90118, 0x169 }, | |
1572 | + { 0x90119, 0x80 }, | |
1573 | + { 0x9011a, 0x790 }, | |
1574 | + { 0x9011b, 0x16a }, | |
1575 | + { 0x9011c, 0x18 }, | |
1576 | + { 0x9011d, 0x7aa }, | |
1577 | + { 0x9011e, 0x6a }, | |
1578 | + { 0x9011f, 0xa }, | |
1579 | + { 0x90120, 0x0 }, | |
1580 | + { 0x90121, 0x1e9 }, | |
1581 | + { 0x90122, 0x8 }, | |
1582 | + { 0x90123, 0x8080 }, | |
1583 | + { 0x90124, 0x108 }, | |
1584 | + { 0x90125, 0xf }, | |
1585 | + { 0x90126, 0x408 }, | |
1586 | + { 0x90127, 0x169 }, | |
1587 | + { 0x90128, 0xc }, | |
1588 | + { 0x90129, 0x0 }, | |
1589 | + { 0x9012a, 0x68 }, | |
1590 | + { 0x9012b, 0x9 }, | |
1591 | + { 0x9012c, 0x0 }, | |
1592 | + { 0x9012d, 0x1a9 }, | |
1593 | + { 0x9012e, 0x0 }, | |
1594 | + { 0x9012f, 0x408 }, | |
1595 | + { 0x90130, 0x169 }, | |
1596 | + { 0x90131, 0x0 }, | |
1597 | + { 0x90132, 0x8080 }, | |
1598 | + { 0x90133, 0x108 }, | |
1599 | + { 0x90134, 0x8 }, | |
1600 | + { 0x90135, 0x7aa }, | |
1601 | + { 0x90136, 0x6a }, | |
1602 | + { 0x90137, 0x0 }, | |
1603 | + { 0x90138, 0x8568 }, | |
1604 | + { 0x90139, 0x108 }, | |
1605 | + { 0x9013a, 0xb7 }, | |
1606 | + { 0x9013b, 0x790 }, | |
1607 | + { 0x9013c, 0x16a }, | |
1608 | + { 0x9013d, 0x1f }, | |
1609 | + { 0x9013e, 0x0 }, | |
1610 | + { 0x9013f, 0x68 }, | |
1611 | + { 0x90140, 0x8 }, | |
1612 | + { 0x90141, 0x8558 }, | |
1613 | + { 0x90142, 0x168 }, | |
1614 | + { 0x90143, 0xf }, | |
1615 | + { 0x90144, 0x408 }, | |
1616 | + { 0x90145, 0x169 }, | |
1617 | + { 0x90146, 0xc }, | |
1618 | + { 0x90147, 0x0 }, | |
1619 | + { 0x90148, 0x68 }, | |
1620 | + { 0x90149, 0x0 }, | |
1621 | + { 0x9014a, 0x408 }, | |
1622 | + { 0x9014b, 0x169 }, | |
1623 | + { 0x9014c, 0x0 }, | |
1624 | + { 0x9014d, 0x8558 }, | |
1625 | + { 0x9014e, 0x168 }, | |
1626 | + { 0x9014f, 0x8 }, | |
1627 | + { 0x90150, 0x3c8 }, | |
1628 | + { 0x90151, 0x1a9 }, | |
1629 | + { 0x90152, 0x3 }, | |
1630 | + { 0x90153, 0x370 }, | |
1631 | + { 0x90154, 0x129 }, | |
1632 | + { 0x90155, 0x20 }, | |
1633 | + { 0x90156, 0x2aa }, | |
1634 | + { 0x90157, 0x9 }, | |
1635 | + { 0x90158, 0x0 }, | |
1636 | + { 0x90159, 0x400 }, | |
1637 | + { 0x9015a, 0x10e }, | |
1638 | + { 0x9015b, 0x8 }, | |
1639 | + { 0x9015c, 0xe8 }, | |
1640 | + { 0x9015d, 0x109 }, | |
1641 | + { 0x9015e, 0x0 }, | |
1642 | + { 0x9015f, 0x8140 }, | |
1643 | + { 0x90160, 0x10c }, | |
1644 | + { 0x90161, 0x10 }, | |
1645 | + { 0x90162, 0x8138 }, | |
1646 | + { 0x90163, 0x10c }, | |
1647 | + { 0x90164, 0x8 }, | |
1648 | + { 0x90165, 0x7c8 }, | |
1649 | + { 0x90166, 0x101 }, | |
1650 | + { 0x90167, 0x8 }, | |
1651 | + { 0x90168, 0x0 }, | |
1652 | + { 0x90169, 0x8 }, | |
1653 | + { 0x9016a, 0x8 }, | |
1654 | + { 0x9016b, 0x448 }, | |
1655 | + { 0x9016c, 0x109 }, | |
1656 | + { 0x9016d, 0xf }, | |
1657 | + { 0x9016e, 0x7c0 }, | |
1658 | + { 0x9016f, 0x109 }, | |
1659 | + { 0x90170, 0x0 }, | |
1660 | + { 0x90171, 0xe8 }, | |
1661 | + { 0x90172, 0x109 }, | |
1662 | + { 0x90173, 0x47 }, | |
1663 | + { 0x90174, 0x630 }, | |
1664 | + { 0x90175, 0x109 }, | |
1665 | + { 0x90176, 0x8 }, | |
1666 | + { 0x90177, 0x618 }, | |
1667 | + { 0x90178, 0x109 }, | |
1668 | + { 0x90179, 0x8 }, | |
1669 | + { 0x9017a, 0xe0 }, | |
1670 | + { 0x9017b, 0x109 }, | |
1671 | + { 0x9017c, 0x0 }, | |
1672 | + { 0x9017d, 0x7c8 }, | |
1673 | + { 0x9017e, 0x109 }, | |
1674 | + { 0x9017f, 0x8 }, | |
1675 | + { 0x90180, 0x8140 }, | |
1676 | + { 0x90181, 0x10c }, | |
1677 | + { 0x90182, 0x0 }, | |
1678 | + { 0x90183, 0x1 }, | |
1679 | + { 0x90184, 0x8 }, | |
1680 | + { 0x90185, 0x8 }, | |
1681 | + { 0x90186, 0x4 }, | |
1682 | + { 0x90187, 0x8 }, | |
1683 | + { 0x90188, 0x8 }, | |
1684 | + { 0x90189, 0x7c8 }, | |
1685 | + { 0x9018a, 0x101 }, | |
1686 | + { 0x90006, 0x0 }, | |
1687 | + { 0x90007, 0x0 }, | |
1688 | + { 0x90008, 0x8 }, | |
1689 | + { 0x90009, 0x0 }, | |
1690 | + { 0x9000a, 0x0 }, | |
1691 | + { 0x9000b, 0x0 }, | |
1692 | + { 0xd00e7, 0x400 }, | |
1693 | + { 0x90017, 0x0 }, | |
1694 | + { 0x9001f, 0x2a }, | |
1695 | + { 0x90026, 0x6a }, | |
1696 | + { 0x400d0, 0x0 }, | |
1697 | + { 0x400d1, 0x101 }, | |
1698 | + { 0x400d2, 0x105 }, | |
1699 | + { 0x400d3, 0x107 }, | |
1700 | + { 0x400d4, 0x10f }, | |
1701 | + { 0x400d5, 0x202 }, | |
1702 | + { 0x400d6, 0x20a }, | |
1703 | + { 0x400d7, 0x20b }, | |
1704 | + { 0x2003a, 0x2 }, | |
1705 | + { 0x2000b, 0x5d }, | |
1706 | + { 0x2000c, 0xbb }, | |
1707 | + { 0x2000d, 0x753 }, | |
1708 | + { 0x2000e, 0x2c }, | |
1709 | + { 0x12000b, 0xc }, | |
1710 | + { 0x12000c, 0x19 }, | |
1711 | + { 0x12000d, 0xfa }, | |
1712 | + { 0x12000e, 0x10 }, | |
1713 | + { 0x22000b, 0x3 }, | |
1714 | + { 0x22000c, 0x6 }, | |
1715 | + { 0x22000d, 0x3e }, | |
1716 | + { 0x22000e, 0x10 }, | |
1717 | + { 0x9000c, 0x0 }, | |
1718 | + { 0x9000d, 0x173 }, | |
1719 | + { 0x9000e, 0x60 }, | |
1720 | + { 0x9000f, 0x6110 }, | |
1721 | + { 0x90010, 0x2152 }, | |
1722 | + { 0x90011, 0xdfbd }, | |
1723 | + { 0x90012, 0x60 }, | |
1724 | + { 0x90013, 0x6152 }, | |
1725 | + { 0x20010, 0x5a }, | |
1726 | + { 0x20011, 0x3 }, | |
1727 | + { 0x120010, 0x5a }, | |
1728 | + { 0x120011, 0x3 }, | |
1729 | + { 0x220010, 0x5a }, | |
1730 | + { 0x220011, 0x3 }, | |
1731 | + { 0x40080, 0xe0 }, | |
1732 | + { 0x40081, 0x12 }, | |
1733 | + { 0x40082, 0xe0 }, | |
1734 | + { 0x40083, 0x12 }, | |
1735 | + { 0x40084, 0xe0 }, | |
1736 | + { 0x40085, 0x12 }, | |
1737 | + { 0x140080, 0xe0 }, | |
1738 | + { 0x140081, 0x12 }, | |
1739 | + { 0x140082, 0xe0 }, | |
1740 | + { 0x140083, 0x12 }, | |
1741 | + { 0x140084, 0xe0 }, | |
1742 | + { 0x140085, 0x12 }, | |
1743 | + { 0x240080, 0xe0 }, | |
1744 | + { 0x240081, 0x12 }, | |
1745 | + { 0x240082, 0xe0 }, | |
1746 | + { 0x240083, 0x12 }, | |
1747 | + { 0x240084, 0xe0 }, | |
1748 | + { 0x240085, 0x12 }, | |
1749 | + { 0x400fd, 0xf }, | |
1750 | + { 0x10011, 0x1 }, | |
1751 | + { 0x10012, 0x1 }, | |
1752 | + { 0x10013, 0x180 }, | |
1753 | + { 0x10018, 0x1 }, | |
1754 | + { 0x10002, 0x6209 }, | |
1755 | + { 0x100b2, 0x1 }, | |
1756 | + { 0x101b4, 0x1 }, | |
1757 | + { 0x102b4, 0x1 }, | |
1758 | + { 0x103b4, 0x1 }, | |
1759 | + { 0x104b4, 0x1 }, | |
1760 | + { 0x105b4, 0x1 }, | |
1761 | + { 0x106b4, 0x1 }, | |
1762 | + { 0x107b4, 0x1 }, | |
1763 | + { 0x108b4, 0x1 }, | |
1764 | + { 0x11011, 0x1 }, | |
1765 | + { 0x11012, 0x1 }, | |
1766 | + { 0x11013, 0x180 }, | |
1767 | + { 0x11018, 0x1 }, | |
1768 | + { 0x11002, 0x6209 }, | |
1769 | + { 0x110b2, 0x1 }, | |
1770 | + { 0x111b4, 0x1 }, | |
1771 | + { 0x112b4, 0x1 }, | |
1772 | + { 0x113b4, 0x1 }, | |
1773 | + { 0x114b4, 0x1 }, | |
1774 | + { 0x115b4, 0x1 }, | |
1775 | + { 0x116b4, 0x1 }, | |
1776 | + { 0x117b4, 0x1 }, | |
1777 | + { 0x118b4, 0x1 }, | |
1778 | + { 0x12011, 0x1 }, | |
1779 | + { 0x12012, 0x1 }, | |
1780 | + { 0x12013, 0x180 }, | |
1781 | + { 0x12018, 0x1 }, | |
1782 | + { 0x12002, 0x6209 }, | |
1783 | + { 0x120b2, 0x1 }, | |
1784 | + { 0x121b4, 0x1 }, | |
1785 | + { 0x122b4, 0x1 }, | |
1786 | + { 0x123b4, 0x1 }, | |
1787 | + { 0x124b4, 0x1 }, | |
1788 | + { 0x125b4, 0x1 }, | |
1789 | + { 0x126b4, 0x1 }, | |
1790 | + { 0x127b4, 0x1 }, | |
1791 | + { 0x128b4, 0x1 }, | |
1792 | + { 0x13011, 0x1 }, | |
1793 | + { 0x13012, 0x1 }, | |
1794 | + { 0x13013, 0x180 }, | |
1795 | + { 0x13018, 0x1 }, | |
1796 | + { 0x13002, 0x6209 }, | |
1797 | + { 0x130b2, 0x1 }, | |
1798 | + { 0x131b4, 0x1 }, | |
1799 | + { 0x132b4, 0x1 }, | |
1800 | + { 0x133b4, 0x1 }, | |
1801 | + { 0x134b4, 0x1 }, | |
1802 | + { 0x135b4, 0x1 }, | |
1803 | + { 0x136b4, 0x1 }, | |
1804 | + { 0x137b4, 0x1 }, | |
1805 | + { 0x138b4, 0x1 }, | |
1806 | + { 0x2003a, 0x2 }, | |
1807 | + { 0xc0080, 0x2 }, | |
1808 | + { 0xd0000, 0x1 } | |
1809 | +}; | |
1810 | + | |
1811 | +struct dram_fsp_msg ddr_dram_fsp_msg[] = { | |
1812 | + { | |
1813 | + /* P0 3000mts 1D */ | |
1814 | + .drate = 3000, | |
1815 | + .fw_type = FW_1D_IMAGE, | |
1816 | + .fsp_cfg = ddr_fsp0_cfg, | |
1817 | + .fsp_cfg_num = ARRAY_SIZE(ddr_fsp0_cfg), | |
1818 | + }, | |
1819 | + { | |
1820 | + /* P1 400mts 1D */ | |
1821 | + .drate = 400, | |
1822 | + .fw_type = FW_1D_IMAGE, | |
1823 | + .fsp_cfg = ddr_fsp1_cfg, | |
1824 | + .fsp_cfg_num = ARRAY_SIZE(ddr_fsp1_cfg), | |
1825 | + }, | |
1826 | + { | |
1827 | + /* P2 100mts 1D */ | |
1828 | + .drate = 100, | |
1829 | + .fw_type = FW_1D_IMAGE, | |
1830 | + .fsp_cfg = ddr_fsp2_cfg, | |
1831 | + .fsp_cfg_num = ARRAY_SIZE(ddr_fsp2_cfg), | |
1832 | + }, | |
1833 | + { | |
1834 | + /* P0 3000mts 2D */ | |
1835 | + .drate = 3000, | |
1836 | + .fw_type = FW_2D_IMAGE, | |
1837 | + .fsp_cfg = ddr_fsp0_2d_cfg, | |
1838 | + .fsp_cfg_num = ARRAY_SIZE(ddr_fsp0_2d_cfg), | |
1839 | + }, | |
1840 | +}; | |
1841 | + | |
1842 | +/* ddr timing config params */ | |
1843 | +struct dram_timing_info dram_timing = { | |
1844 | + .ddrc_cfg = ddr_ddrc_cfg, | |
1845 | + .ddrc_cfg_num = ARRAY_SIZE(ddr_ddrc_cfg), | |
1846 | + .ddrphy_cfg = ddr_ddrphy_cfg, | |
1847 | + .ddrphy_cfg_num = ARRAY_SIZE(ddr_ddrphy_cfg), | |
1848 | + .fsp_msg = ddr_dram_fsp_msg, | |
1849 | + .fsp_msg_num = ARRAY_SIZE(ddr_dram_fsp_msg), | |
1850 | + .ddrphy_trained_csr = ddr_ddrphy_trained_csr, | |
1851 | + .ddrphy_trained_csr_num = ARRAY_SIZE(ddr_ddrphy_trained_csr), | |
1852 | + .ddrphy_pie = ddr_phy_pie, | |
1853 | + .ddrphy_pie_num = ARRAY_SIZE(ddr_phy_pie), | |
1854 | + .fsp_table = { 3000, 400, 100, }, | |
1855 | +}; |
board/freescale/imx8mm_ab2/spl.c
1 | +/* | |
2 | + * Copyright 2020 NXP | |
3 | + * | |
4 | + * SPDX-License-Identifier: GPL-2.0+ | |
5 | + */ | |
6 | + | |
7 | +#include <common.h> | |
8 | +#include <cpu_func.h> | |
9 | +#include <hang.h> | |
10 | +#include <spl.h> | |
11 | +#include <asm/io.h> | |
12 | +#include <errno.h> | |
13 | +#include <asm/io.h> | |
14 | +#include <asm/mach-imx/iomux-v3.h> | |
15 | +#include <asm/arch/sys_proto.h> | |
16 | +#include <asm/mach-imx/boot_mode.h> | |
17 | +#include <power/pmic.h> | |
18 | +#include <asm/arch/clock.h> | |
19 | +#include <asm/mach-imx/gpio.h> | |
20 | +#include <asm/mach-imx/mxc_i2c.h> | |
21 | +#include <fsl_esdhc_imx.h> | |
22 | +#include <mmc.h> | |
23 | +#include <asm/arch/ddr.h> | |
24 | + | |
25 | +#ifdef CONFIG_TARGET_IMX8MM_AB2 | |
26 | +#include <asm/arch/imx8mm_pins.h> | |
27 | +#endif | |
28 | + | |
29 | +#ifdef CONFIG_POWER_PCA9450 | |
30 | +#include <power/pca9450.h> | |
31 | +#else | |
32 | +#include <power/bd71837.h> | |
33 | +#endif | |
34 | + | |
35 | +DECLARE_GLOBAL_DATA_PTR; | |
36 | + | |
37 | +int spl_board_boot_device(enum boot_device boot_dev_spl) | |
38 | +{ | |
39 | + switch (boot_dev_spl) { | |
40 | + case SD2_BOOT: | |
41 | + case MMC2_BOOT: | |
42 | + return BOOT_DEVICE_MMC1; | |
43 | + case SD3_BOOT: | |
44 | + case MMC3_BOOT: | |
45 | + return BOOT_DEVICE_MMC2; | |
46 | + case QSPI_BOOT: | |
47 | + return BOOT_DEVICE_NOR; | |
48 | + case NAND_BOOT: | |
49 | + return BOOT_DEVICE_NAND; | |
50 | + case USB_BOOT: | |
51 | + return BOOT_DEVICE_NONE; | |
52 | + default: | |
53 | + return BOOT_DEVICE_NONE; | |
54 | + } | |
55 | +} | |
56 | + | |
57 | +void spl_dram_init(void) | |
58 | +{ | |
59 | + ddr_init(&dram_timing); | |
60 | +} | |
61 | + | |
62 | +#define I2C_PAD_CTRL (PAD_CTL_DSE6 | PAD_CTL_HYS | PAD_CTL_PUE | PAD_CTL_PE) | |
63 | +#define PC MUX_PAD_CTRL(I2C_PAD_CTRL) | |
64 | +#define USDHC_PAD_CTRL (PAD_CTL_DSE6 | PAD_CTL_HYS | PAD_CTL_PUE |PAD_CTL_PE | \ | |
65 | + PAD_CTL_FSEL2) | |
66 | +#define USDHC_GPIO_PAD_CTRL (PAD_CTL_HYS | PAD_CTL_DSE1) | |
67 | +#define USDHC_CD_PAD_CTRL (PAD_CTL_PE |PAD_CTL_PUE |PAD_CTL_HYS | PAD_CTL_DSE4) | |
68 | + | |
69 | +#ifdef CONFIG_TARGET_IMX8MM_AB2 | |
70 | +struct i2c_pads_info i2c_pad_info1 = { | |
71 | + .scl = { | |
72 | + .i2c_mode = IMX8MM_PAD_I2C1_SCL_I2C1_SCL | PC, | |
73 | + .gpio_mode = IMX8MM_PAD_I2C1_SCL_GPIO5_IO14 | PC, | |
74 | + .gp = IMX_GPIO_NR(5, 14), | |
75 | + }, | |
76 | + .sda = { | |
77 | + .i2c_mode = IMX8MM_PAD_I2C1_SDA_I2C1_SDA | PC, | |
78 | + .gpio_mode = IMX8MM_PAD_I2C1_SDA_GPIO5_IO15 | PC, | |
79 | + .gp = IMX_GPIO_NR(5, 15), | |
80 | + }, | |
81 | +}; | |
82 | +#endif | |
83 | + | |
84 | +#define USDHC2_CD_GPIO IMX_GPIO_NR(2, 12) | |
85 | +#define USDHC2_PWR_GPIO IMX_GPIO_NR(2, 19) | |
86 | + | |
87 | +#ifdef CONFIG_TARGET_IMX8MM_AB2 | |
88 | +static iomux_v3_cfg_t const usdhc3_pads[] = { | |
89 | + IMX8MM_PAD_NAND_WE_B_USDHC3_CLK | MUX_PAD_CTRL(USDHC_PAD_CTRL), | |
90 | + IMX8MM_PAD_NAND_WP_B_USDHC3_CMD | MUX_PAD_CTRL(USDHC_PAD_CTRL), | |
91 | + IMX8MM_PAD_NAND_DATA04_USDHC3_DATA0 | MUX_PAD_CTRL(USDHC_PAD_CTRL), | |
92 | + IMX8MM_PAD_NAND_DATA05_USDHC3_DATA1 | MUX_PAD_CTRL(USDHC_PAD_CTRL), | |
93 | + IMX8MM_PAD_NAND_DATA06_USDHC3_DATA2 | MUX_PAD_CTRL(USDHC_PAD_CTRL), | |
94 | + IMX8MM_PAD_NAND_DATA07_USDHC3_DATA3 | MUX_PAD_CTRL(USDHC_PAD_CTRL), | |
95 | + IMX8MM_PAD_NAND_RE_B_USDHC3_DATA4 | MUX_PAD_CTRL(USDHC_PAD_CTRL), | |
96 | + IMX8MM_PAD_NAND_CE2_B_USDHC3_DATA5 | MUX_PAD_CTRL(USDHC_PAD_CTRL), | |
97 | + IMX8MM_PAD_NAND_CE3_B_USDHC3_DATA6 | MUX_PAD_CTRL(USDHC_PAD_CTRL), | |
98 | + IMX8MM_PAD_NAND_CLE_USDHC3_DATA7 | MUX_PAD_CTRL(USDHC_PAD_CTRL), | |
99 | +}; | |
100 | + | |
101 | +static iomux_v3_cfg_t const usdhc2_pads[] = { | |
102 | + IMX8MM_PAD_SD2_CLK_USDHC2_CLK | MUX_PAD_CTRL(USDHC_PAD_CTRL), | |
103 | + IMX8MM_PAD_SD2_CMD_USDHC2_CMD | MUX_PAD_CTRL(USDHC_PAD_CTRL), | |
104 | + IMX8MM_PAD_SD2_DATA0_USDHC2_DATA0 | MUX_PAD_CTRL(USDHC_PAD_CTRL), | |
105 | + IMX8MM_PAD_SD2_DATA1_USDHC2_DATA1 | MUX_PAD_CTRL(USDHC_PAD_CTRL), | |
106 | + IMX8MM_PAD_SD2_DATA2_USDHC2_DATA2 | MUX_PAD_CTRL(USDHC_PAD_CTRL), | |
107 | + IMX8MM_PAD_SD2_DATA3_USDHC2_DATA3 | MUX_PAD_CTRL(USDHC_PAD_CTRL), | |
108 | + IMX8MM_PAD_SD2_RESET_B_GPIO2_IO19 | MUX_PAD_CTRL(USDHC_GPIO_PAD_CTRL), | |
109 | + IMX8MM_PAD_SD2_CD_B_GPIO2_IO12 | MUX_PAD_CTRL(USDHC_CD_PAD_CTRL), | |
110 | +}; | |
111 | +#endif | |
112 | + | |
113 | +static struct fsl_esdhc_cfg usdhc_cfg[2] = { | |
114 | + {USDHC2_BASE_ADDR, 0, 4}, | |
115 | + {USDHC3_BASE_ADDR, 0, 8}, | |
116 | +}; | |
117 | + | |
118 | +int board_mmc_init(bd_t *bis) | |
119 | +{ | |
120 | + int i, ret; | |
121 | + /* | |
122 | + * According to the board_mmc_init() the following map is done: | |
123 | + * (U-Boot device node) (Physical Port) | |
124 | + * mmc0 USDHC1 | |
125 | + * mmc1 USDHC2 | |
126 | + */ | |
127 | + for (i = 0; i < CONFIG_SYS_FSL_USDHC_NUM; i++) { | |
128 | + switch (i) { | |
129 | + case 0: | |
130 | + init_clk_usdhc(1); | |
131 | + usdhc_cfg[0].sdhc_clk = mxc_get_clock(MXC_ESDHC2_CLK); | |
132 | + imx_iomux_v3_setup_multiple_pads( | |
133 | + usdhc2_pads, ARRAY_SIZE(usdhc2_pads)); | |
134 | + gpio_request(USDHC2_PWR_GPIO, "usdhc2_reset"); | |
135 | + gpio_direction_output(USDHC2_PWR_GPIO, 0); | |
136 | + udelay(500); | |
137 | + gpio_direction_output(USDHC2_PWR_GPIO, 1); | |
138 | + gpio_request(USDHC2_CD_GPIO, "usdhc2 cd"); | |
139 | + gpio_direction_input(USDHC2_CD_GPIO); | |
140 | + break; | |
141 | + case 1: | |
142 | + init_clk_usdhc(2); | |
143 | + usdhc_cfg[1].sdhc_clk = mxc_get_clock(MXC_ESDHC3_CLK); | |
144 | + imx_iomux_v3_setup_multiple_pads( | |
145 | + usdhc3_pads, ARRAY_SIZE(usdhc3_pads)); | |
146 | + break; | |
147 | + default: | |
148 | + printf("Warning: you configured more USDHC controllers" | |
149 | + "(%d) than supported by the board\n", i + 1); | |
150 | + return -EINVAL; | |
151 | + } | |
152 | + | |
153 | + ret = fsl_esdhc_initialize(bis, &usdhc_cfg[i]); | |
154 | + if (ret) | |
155 | + return ret; | |
156 | + } | |
157 | + | |
158 | + return 0; | |
159 | +} | |
160 | + | |
161 | +int board_mmc_getcd(struct mmc *mmc) | |
162 | +{ | |
163 | + struct fsl_esdhc_cfg *cfg = (struct fsl_esdhc_cfg *)mmc->priv; | |
164 | + int ret = 0; | |
165 | + | |
166 | + switch (cfg->esdhc_base) { | |
167 | + case USDHC3_BASE_ADDR: | |
168 | + ret = 1; | |
169 | + break; | |
170 | + case USDHC2_BASE_ADDR: | |
171 | + ret = !gpio_get_value(USDHC2_CD_GPIO); | |
172 | + return ret; | |
173 | + } | |
174 | + | |
175 | + return 1; | |
176 | +} | |
177 | + | |
178 | +#ifdef CONFIG_POWER | |
179 | +#define I2C_PMIC 0 | |
180 | +int power_init_board(void) | |
181 | +{ | |
182 | + struct pmic *p; | |
183 | + int ret; | |
184 | + | |
185 | +#ifdef CONFIG_POWER_PCA9450 | |
186 | + ret = power_pca9450b_init(I2C_PMIC); | |
187 | + if (ret) | |
188 | + printf("power init failed"); | |
189 | + p = pmic_get("PCA9450"); | |
190 | + pmic_probe(p); | |
191 | + | |
192 | + /* BUCKxOUT_DVS0/1 control BUCK123 output */ | |
193 | + pmic_reg_write(p, PCA9450_BUCK123_DVS, 0x29); | |
194 | + | |
195 | + /* | |
196 | + * increase VDD_SOC to typical value 0.95V before first | |
197 | + * DRAM access, set DVS1 to 0.85v for suspend. | |
198 | + * Enable DVS control through PMIC_STBY_REQ and | |
199 | + * set B1_ENMODE=1 (ON by PMIC_ON_REQ=H) | |
200 | + */ | |
201 | + pmic_reg_write(p, PCA9450_BUCK1OUT_DVS0, 0x1C); | |
202 | + pmic_reg_write(p, PCA9450_BUCK1OUT_DVS1, 0x14); | |
203 | + pmic_reg_write(p, PCA9450_BUCK1CTRL, 0x59); | |
204 | + | |
205 | + /* Kernel uses OD/OD freq for SOC */ | |
206 | + /* To avoid timing risk from SOC to ARM,increase VDD_ARM to OD voltage 0.95v */ | |
207 | + pmic_reg_write(p, PCA9450_BUCK2OUT_DVS0, 0x1C); | |
208 | + | |
209 | + /* set WDOG_B_CFG to cold reset */ | |
210 | + pmic_reg_write(p, PCA9450_RESET_CTRL, 0xA1); | |
211 | + | |
212 | +#else | |
213 | + ret = power_bd71837_init(I2C_PMIC); | |
214 | + if (ret) | |
215 | + printf("power init failed"); | |
216 | + p = pmic_get("BD71837"); | |
217 | + pmic_probe(p); | |
218 | + | |
219 | + /* decrease RESET key long push time from the default 10s to 10ms */ | |
220 | + pmic_reg_write(p, BD71837_PWRONCONFIG1, 0x0); | |
221 | + /* unlock the PMIC regs */ | |
222 | + pmic_reg_write(p, BD71837_REGLOCK, 0x1); | |
223 | + /* increase VDD_SOC to typical value 0.85v before first DRAM access */ | |
224 | + pmic_reg_write(p, BD71837_BUCK1_VOLT_RUN, 0x0f); | |
225 | + /* increase VDD_DRAM to 0.975v for 3Ghz DDR */ | |
226 | + pmic_reg_write(p, BD71837_BUCK5_VOLT, 0x83); | |
227 | +#ifndef CONFIG_IMX8M_LPDDR4 | |
228 | + /* increase NVCC_DRAM_1V2 to 1.2v for DDR4 */ | |
229 | + pmic_reg_write(p, BD71837_BUCK8_VOLT, 0x28); | |
230 | +#endif | |
231 | + /* lock the PMIC regs */ | |
232 | + pmic_reg_write(p, BD71837_REGLOCK, 0x11); | |
233 | +#endif | |
234 | + | |
235 | + return 0; | |
236 | +} | |
237 | +#endif | |
238 | + | |
239 | +void spl_board_init(void) | |
240 | +{ | |
241 | +#ifndef CONFIG_SPL_USB_SDP_SUPPORT | |
242 | +#ifdef CONFIG_TARGET_IMX8MM_AB2 | |
243 | + /* Serial download mode */ | |
244 | + if (is_usb_boot()) { | |
245 | + puts("Back to ROM, SDP\n"); | |
246 | + restore_boot_params(); | |
247 | + } | |
248 | +#endif | |
249 | +#endif | |
250 | + puts("Normal Boot\n"); | |
251 | +} | |
252 | + | |
253 | +#ifdef CONFIG_SPL_LOAD_FIT | |
254 | +int board_fit_config_name_match(const char *name) | |
255 | +{ | |
256 | + /* Just empty function now - can't decide what to choose */ | |
257 | + debug("%s: %s\n", __func__, name); | |
258 | + | |
259 | + return 0; | |
260 | +} | |
261 | +#endif | |
262 | + | |
263 | +void board_init_f(ulong dummy) | |
264 | +{ | |
265 | + int ret; | |
266 | + | |
267 | + /* Clear the BSS. */ | |
268 | + memset(__bss_start, 0, __bss_end - __bss_start); | |
269 | + | |
270 | + arch_cpu_init(); | |
271 | + | |
272 | + board_early_init_f(); | |
273 | + | |
274 | + timer_init(); | |
275 | + | |
276 | + preloader_console_init(); | |
277 | + | |
278 | + ret = spl_init(); | |
279 | + if (ret) { | |
280 | + debug("spl_init() failed: %d\n", ret); | |
281 | + hang(); | |
282 | + } | |
283 | + | |
284 | + enable_tzc380(); | |
285 | + | |
286 | + /* Adjust pmic voltage to 1.0V for 800M */ | |
287 | + setup_i2c(0, CONFIG_SYS_I2C_SPEED, 0x7f, &i2c_pad_info1); | |
288 | + | |
289 | + power_init_board(); | |
290 | + | |
291 | + /* DDR initialization */ | |
292 | + spl_dram_init(); | |
293 | + | |
294 | + board_init_r(NULL, 0); | |
295 | +} | |
296 | + | |
297 | +int do_reset(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]) | |
298 | +{ | |
299 | + puts("resetting ...\n"); | |
300 | + | |
301 | + reset_cpu(WDOG1_BASE_ADDR); | |
302 | + | |
303 | + return 0; | |
304 | +} |
configs/imx8mm_ab2_defconfig
1 | +CONFIG_ARM=y | |
2 | +CONFIG_SPL_SYS_ICACHE_OFF=y | |
3 | +CONFIG_SPL_SYS_DCACHE_OFF=y | |
4 | +CONFIG_ARCH_IMX8M=y | |
5 | +CONFIG_SYS_TEXT_BASE=0x40200000 | |
6 | +CONFIG_SPL_GPIO_SUPPORT=y | |
7 | +CONFIG_SPL_LIBCOMMON_SUPPORT=y | |
8 | +CONFIG_SPL_LIBGENERIC_SUPPORT=y | |
9 | +CONFIG_SYS_MALLOC_F_LEN=0x2000 | |
10 | +CONFIG_SYS_I2C_MXC_I2C1=y | |
11 | +CONFIG_SYS_I2C_MXC_I2C2=y | |
12 | +CONFIG_SYS_I2C_MXC_I2C3=y | |
13 | +CONFIG_ENV_SIZE=0x1000 | |
14 | +CONFIG_ENV_OFFSET=0x400000 | |
15 | +CONFIG_DM_GPIO=y | |
16 | +CONFIG_TARGET_IMX8MM_AB2=y | |
17 | +CONFIG_ARCH_MISC_INIT=y | |
18 | +CONFIG_SPL_MMC_SUPPORT=y | |
19 | +CONFIG_SPL_SERIAL_SUPPORT=y | |
20 | +CONFIG_SPL_DRIVERS_MISC_SUPPORT=y | |
21 | +CONFIG_SPL=y | |
22 | +CONFIG_CSF_SIZE=0x2000 | |
23 | +CONFIG_SPL_TEXT_BASE=0x7E1000 | |
24 | +CONFIG_FIT=y | |
25 | +CONFIG_FIT_EXTERNAL_OFFSET=0x3000 | |
26 | +CONFIG_SPL_LOAD_FIT=y | |
27 | +CONFIG_SPL_FIT_GENERATOR="arch/arm/mach-imx/mkimage_fit_atf.sh" | |
28 | +CONFIG_OF_SYSTEM_SETUP=y | |
29 | +CONFIG_SYS_EXTRA_OPTIONS="IMX_CONFIG=arch/arm/mach-imx/imx8m/imximage-8mm-lpddr4.cfg" | |
30 | +CONFIG_BOARD_LATE_INIT=y | |
31 | +CONFIG_BOARD_EARLY_INIT_F=y | |
32 | +CONFIG_SPL_BOARD_INIT=y | |
33 | +CONFIG_SPL_SEPARATE_BSS=y | |
34 | +CONFIG_SPL_I2C_SUPPORT=y | |
35 | +CONFIG_SPL_POWER_SUPPORT=y | |
36 | +CONFIG_NR_DRAM_BANKS=2 | |
37 | +CONFIG_HUSH_PARSER=y | |
38 | +CONFIG_SYS_PROMPT="u-boot=> " | |
39 | +# CONFIG_CMD_EXPORTENV is not set | |
40 | +# CONFIG_CMD_IMPORTENV is not set | |
41 | +# CONFIG_CMD_CRC32 is not set | |
42 | +# CONFIG_BOOTM_NETBSD is not set | |
43 | +CONFIG_CMD_CLK=y | |
44 | +CONFIG_CMD_FUSE=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_REGULATOR=y | |
53 | +CONFIG_CMD_MEMTEST=y | |
54 | +CONFIG_CMD_EXT2=y | |
55 | +CONFIG_CMD_EXT4=y | |
56 | +CONFIG_CMD_EXT4_WRITE=y | |
57 | +CONFIG_CMD_FAT=y | |
58 | +CONFIG_CMD_SF=y | |
59 | +CONFIG_OF_CONTROL=y | |
60 | +CONFIG_DEFAULT_DEVICE_TREE="imx8mm-ab2" | |
61 | +CONFIG_DEFAULT_FDT_FILE="imx8mm-ab2.dtb" | |
62 | +CONFIG_ENV_IS_IN_MMC=y | |
63 | +CONFIG_SYS_RELOC_GD_ENV_ADDR=y | |
64 | +CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y | |
65 | +CONFIG_CLK_COMPOSITE_CCF=y | |
66 | +CONFIG_CLK_IMX8MM=y | |
67 | +CONFIG_MXC_GPIO=y | |
68 | + | |
69 | +CONFIG_DM_I2C=y | |
70 | +CONFIG_SYS_I2C_MXC=y | |
71 | +CONFIG_DM_MMC=y | |
72 | +CONFIG_MMC_IO_VOLTAGE=y | |
73 | +CONFIG_MMC_UHS_SUPPORT=y | |
74 | +CONFIG_MMC_HS400_SUPPORT=y | |
75 | +CONFIG_MMC_HS400_ES_SUPPORT=y | |
76 | +CONFIG_EFI_PARTITION=y | |
77 | +CONFIG_SUPPORT_EMMC_BOOT=y | |
78 | +CONFIG_FSL_ESDHC_IMX=y | |
79 | +CONFIG_DM_SPI_FLASH=y | |
80 | +CONFIG_DM_SPI=y | |
81 | +CONFIG_FSL_FSPI=y | |
82 | +CONFIG_SPI=y | |
83 | +CONFIG_SPI_FLASH=y | |
84 | +CONFIG_SPI_FLASH_BAR=y | |
85 | +CONFIG_SPI_FLASH_STMICRO=y | |
86 | +CONFIG_SF_DEFAULT_BUS=0 | |
87 | +CONFIG_SF_DEFAULT_CS=0 | |
88 | +CONFIG_SF_DEFAULT_SPEED=40000000 | |
89 | +CONFIG_SF_DEFAULT_MODE=0 | |
90 | + | |
91 | +CONFIG_PHYLIB=y | |
92 | +CONFIG_PHY_REALTEK=y | |
93 | +CONFIG_DM_ETH=y | |
94 | +CONFIG_PHY_GIGE=y | |
95 | +CONFIG_FEC_MXC=y | |
96 | +CONFIG_MII=y | |
97 | +CONFIG_PINCTRL=y | |
98 | +CONFIG_PINCTRL_IMX8M=y | |
99 | +CONFIG_DM_REGULATOR=y | |
100 | +CONFIG_DM_REGULATOR_FIXED=y | |
101 | +CONFIG_DM_REGULATOR_GPIO=y | |
102 | +CONFIG_MXC_UART=y | |
103 | +CONFIG_SYSRESET=y | |
104 | +CONFIG_SYSRESET_PSCI=y | |
105 | +CONFIG_DM_THERMAL=y | |
106 | +CONFIG_NXP_TMU=y | |
107 | + | |
108 | +CONFIG_OF_LIBFDT_OVERLAY=y |
configs/imx8mm_ab2_fspi_defconfig
1 | +CONFIG_ARM=y | |
2 | +CONFIG_SPL_SYS_ICACHE_OFF=y | |
3 | +CONFIG_SPL_SYS_DCACHE_OFF=y | |
4 | +CONFIG_ARCH_IMX8M=y | |
5 | +CONFIG_SYS_TEXT_BASE=0x40200000 | |
6 | +CONFIG_SPL_GPIO_SUPPORT=y | |
7 | +CONFIG_SPL_LIBCOMMON_SUPPORT=y | |
8 | +CONFIG_SPL_LIBGENERIC_SUPPORT=y | |
9 | +CONFIG_SYS_MALLOC_F_LEN=0x2000 | |
10 | +CONFIG_SYS_I2C_MXC_I2C1=y | |
11 | +CONFIG_SYS_I2C_MXC_I2C2=y | |
12 | +CONFIG_SYS_I2C_MXC_I2C3=y | |
13 | +CONFIG_ENV_SIZE=0x1000 | |
14 | +CONFIG_ENV_OFFSET=0x400000 | |
15 | +CONFIG_DM_GPIO=y | |
16 | +CONFIG_TARGET_IMX8MM_AB2=y | |
17 | +CONFIG_ARCH_MISC_INIT=y | |
18 | +CONFIG_SPL_NOR_SUPPORT=y | |
19 | +CONFIG_SPL_SERIAL_SUPPORT=y | |
20 | +CONFIG_SPL_DRIVERS_MISC_SUPPORT=y | |
21 | +CONFIG_SPL=y | |
22 | +CONFIG_CSF_SIZE=0x2000 | |
23 | +CONFIG_SPL_TEXT_BASE=0x7E2000 | |
24 | +CONFIG_FIT=y | |
25 | +CONFIG_FIT_EXTERNAL_OFFSET=0x3000 | |
26 | +CONFIG_SPL_LOAD_FIT=y | |
27 | +CONFIG_SPL_FIT_GENERATOR="arch/arm/mach-imx/mkimage_fit_atf.sh" | |
28 | +CONFIG_OF_SYSTEM_SETUP=y | |
29 | +CONFIG_SYS_EXTRA_OPTIONS="IMX_CONFIG=arch/arm/mach-imx/imx8m/imximage-8mm-lpddr4-fspi.cfg" | |
30 | +CONFIG_BOARD_LATE_INIT=y | |
31 | +CONFIG_BOARD_EARLY_INIT_F=y | |
32 | +CONFIG_SPL_BOARD_INIT=y | |
33 | +CONFIG_SPL_SEPARATE_BSS=y | |
34 | +CONFIG_SPL_I2C_SUPPORT=y | |
35 | +CONFIG_SPL_POWER_SUPPORT=y | |
36 | +CONFIG_NR_DRAM_BANKS=2 | |
37 | +CONFIG_HUSH_PARSER=y | |
38 | +CONFIG_SYS_PROMPT="u-boot=> " | |
39 | +# CONFIG_CMD_EXPORTENV is not set | |
40 | +# CONFIG_CMD_IMPORTENV is not set | |
41 | +# CONFIG_CMD_CRC32 is not set | |
42 | +# CONFIG_BOOTM_NETBSD is not set | |
43 | +CONFIG_CMD_CLK=y | |
44 | +CONFIG_CMD_FUSE=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_REGULATOR=y | |
53 | +CONFIG_CMD_MEMTEST=y | |
54 | +CONFIG_CMD_EXT2=y | |
55 | +CONFIG_CMD_EXT4=y | |
56 | +CONFIG_CMD_EXT4_WRITE=y | |
57 | +CONFIG_CMD_FAT=y | |
58 | +CONFIG_CMD_SF=y | |
59 | +CONFIG_OF_CONTROL=y | |
60 | +CONFIG_DEFAULT_DEVICE_TREE="imx8mm-ab2" | |
61 | +CONFIG_DEFAULT_FDT_FILE="imx8mm-ab2.dtb" | |
62 | +CONFIG_ENV_IS_IN_SPI_FLASH=y | |
63 | +CONFIG_ENV_SECT_SIZE=0x10000 | |
64 | +CONFIG_SYS_RELOC_GD_ENV_ADDR=y | |
65 | +CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y | |
66 | +CONFIG_CLK_COMPOSITE_CCF=y | |
67 | +CONFIG_CLK_IMX8MM=y | |
68 | +CONFIG_MXC_GPIO=y | |
69 | + | |
70 | +CONFIG_DM_I2C=y | |
71 | +CONFIG_SYS_I2C_MXC=y | |
72 | +CONFIG_DM_MMC=y | |
73 | +CONFIG_MMC_IO_VOLTAGE=y | |
74 | +CONFIG_MMC_UHS_SUPPORT=y | |
75 | +CONFIG_MMC_HS400_SUPPORT=y | |
76 | +CONFIG_MMC_HS400_ES_SUPPORT=y | |
77 | +CONFIG_EFI_PARTITION=y | |
78 | +CONFIG_SUPPORT_EMMC_BOOT=y | |
79 | +CONFIG_FSL_ESDHC_IMX=y | |
80 | +CONFIG_DM_SPI_FLASH=y | |
81 | +CONFIG_DM_SPI=y | |
82 | +CONFIG_FSL_FSPI=y | |
83 | +CONFIG_SPI=y | |
84 | +CONFIG_SPI_FLASH=y | |
85 | +CONFIG_SPI_FLASH_BAR=y | |
86 | +CONFIG_SPI_FLASH_STMICRO=y | |
87 | +CONFIG_SF_DEFAULT_BUS=0 | |
88 | +CONFIG_SF_DEFAULT_CS=0 | |
89 | +CONFIG_SF_DEFAULT_SPEED=40000000 | |
90 | +CONFIG_SF_DEFAULT_MODE=0 | |
91 | + | |
92 | +CONFIG_PHYLIB=y | |
93 | +CONFIG_PHY_REALTEK=y | |
94 | +CONFIG_DM_ETH=y | |
95 | +CONFIG_PHY_GIGE=y | |
96 | +CONFIG_FEC_MXC=y | |
97 | +CONFIG_MII=y | |
98 | +CONFIG_PINCTRL=y | |
99 | +CONFIG_PINCTRL_IMX8M=y | |
100 | +CONFIG_DM_REGULATOR=y | |
101 | +CONFIG_DM_REGULATOR_FIXED=y | |
102 | +CONFIG_DM_REGULATOR_GPIO=y | |
103 | +CONFIG_MXC_UART=y | |
104 | +CONFIG_SYSRESET=y | |
105 | +CONFIG_SYSRESET_PSCI=y | |
106 | +CONFIG_DM_THERMAL=y | |
107 | +CONFIG_NXP_TMU=y | |
108 | + | |
109 | +CONFIG_OF_LIBFDT_OVERLAY=y |
include/configs/imx8mm_ab2.h
1 | +/* SPDX-License-Identifier: GPL-2.0+ */ | |
2 | +/* | |
3 | + * Copyright 2020 NXP | |
4 | + */ | |
5 | + | |
6 | +#ifndef __IMX8MM_AB2_H | |
7 | +#define __IMX8MM_AB2_H | |
8 | + | |
9 | +#include <linux/sizes.h> | |
10 | +#include <asm/arch/imx-regs.h> | |
11 | +#include "imx_env.h" | |
12 | + | |
13 | +#define CONFIG_SPL_MAX_SIZE (148 * 1024) | |
14 | +#define CONFIG_SYS_MONITOR_LEN SZ_512K | |
15 | +#define CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_USE_SECTOR | |
16 | +#define CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_SECTOR 0x300 | |
17 | +#define CONFIG_SYS_MMCSD_FS_BOOT_PARTITION 1 | |
18 | +#define CONFIG_SYS_UBOOT_BASE \ | |
19 | + (QSPI0_AMBA_BASE + CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_SECTOR * 512) | |
20 | + | |
21 | +#ifdef CONFIG_SPL_BUILD | |
22 | +#define CONFIG_SPL_STACK 0x920000 | |
23 | +#define CONFIG_SPL_BSS_START_ADDR 0x910000 | |
24 | +#define CONFIG_SPL_BSS_MAX_SIZE SZ_8K /* 8 KB */ | |
25 | +#define CONFIG_SYS_SPL_MALLOC_START 0x42200000 | |
26 | +#define CONFIG_SYS_SPL_MALLOC_SIZE SZ_512K /* 512 KB */ | |
27 | + | |
28 | +/* malloc f used before GD_FLG_FULL_MALLOC_INIT set */ | |
29 | +#define CONFIG_MALLOC_F_ADDR 0x912000 | |
30 | +/* For RAW image gives a error info not panic */ | |
31 | +#define CONFIG_SPL_ABORT_ON_RAW_IMAGE | |
32 | + | |
33 | +#define CONFIG_POWER | |
34 | +#define CONFIG_POWER_I2C | |
35 | +#define CONFIG_POWER_BD71837 | |
36 | + | |
37 | +#define CONFIG_SYS_I2C | |
38 | + | |
39 | +#if defined(CONFIG_NAND_BOOT) | |
40 | +#define CONFIG_SPL_NAND_SUPPORT | |
41 | +#define CONFIG_SPL_DMA | |
42 | +#define CONFIG_SPL_NAND_MXS | |
43 | +#define CONFIG_SPL_NAND_BASE | |
44 | +#define CONFIG_SPL_NAND_IDENT | |
45 | +#define CONFIG_SYS_NAND_U_BOOT_OFFS 0x4000000 /* Put the FIT out of first 64MB boot area */ | |
46 | + | |
47 | +/* Set a redundant offset in nand FIT mtdpart. The new uuu will burn full boot image (not only FIT part) to the mtdpart, so we check both two offsets */ | |
48 | +#define CONFIG_SYS_NAND_U_BOOT_OFFS_REDUND \ | |
49 | + (CONFIG_SYS_NAND_U_BOOT_OFFS + CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_SECTOR * 512 - 0x8400) | |
50 | +#endif | |
51 | + | |
52 | +#endif | |
53 | + | |
54 | +#define CONFIG_CMD_READ | |
55 | +#define CONFIG_SERIAL_TAG | |
56 | + | |
57 | +#define CONFIG_REMAKE_ELF | |
58 | +/* ENET Config */ | |
59 | +/* ENET1 */ | |
60 | +#if defined(CONFIG_FEC_MXC) | |
61 | +#define CONFIG_ETHPRIME "eth0" | |
62 | + | |
63 | +#define CONFIG_FEC_XCV_TYPE RGMII | |
64 | +#define CONFIG_FEC_MXC_PHYADDR 1 | |
65 | +#define FEC_QUIRK_ENET_MAC | |
66 | + | |
67 | +#define IMX_FEC_BASE 0x30BE0000 | |
68 | +#endif | |
69 | + | |
70 | +#ifdef CONFIG_NAND_BOOT | |
71 | +#define MFG_NAND_PARTITION "mtdparts=gpmi-nand:64m(nandboot),16m(nandfit),32m(nandkernel),16m(nanddtb),8m(nandtee),-(nandrootfs)" | |
72 | +#endif | |
73 | + | |
74 | +/* | |
75 | + * Another approach is add the clocks for inmates into clks_init_on | |
76 | + * in clk-imx8mm.c, then clk_ingore_unused could be removed. | |
77 | + */ | |
78 | +#define JAILHOUSE_ENV \ | |
79 | + "jh_clk= \0 " \ | |
80 | + "jh_mmcboot=mw 0x303d0518 0xff; setenv fdt_file imx8mm-ab2-root.dtb;" \ | |
81 | + "setenv jh_clk clk_ignore_unused; " \ | |
82 | + "if run loadimage; then " \ | |
83 | + "run mmcboot; " \ | |
84 | + "else run jh_netboot; fi; \0" \ | |
85 | + "jh_netboot=mw 0x303d0518 0xff; setenv fdt_file imx8mm-ab2-root.dtb; setenv jh_clk clk_ignore_unused; run netboot; \0 " | |
86 | + | |
87 | + | |
88 | +#define CONFIG_MFG_ENV_SETTINGS \ | |
89 | + CONFIG_MFG_ENV_SETTINGS_DEFAULT \ | |
90 | + "initrd_addr=0x43800000\0" \ | |
91 | + "initrd_high=0xffffffffffffffff\0" \ | |
92 | + "emmc_dev=2\0"\ | |
93 | + "sd_dev=1\0" \ | |
94 | + | |
95 | +/* Initial environment variables */ | |
96 | +#if defined(CONFIG_NAND_BOOT) | |
97 | +#define CONFIG_EXTRA_ENV_SETTINGS \ | |
98 | + CONFIG_MFG_ENV_SETTINGS \ | |
99 | + "fdt_addr=0x43000000\0" \ | |
100 | + "fdt_high=0xffffffffffffffff\0" \ | |
101 | + "mtdparts=" MFG_NAND_PARTITION "\0" \ | |
102 | + "console=ttymxc1,115200 earlycon=ec_imx6q,0x30890000,115200\0" \ | |
103 | + "bootargs=console=ttymxc1,115200 earlycon=ec_imx6q,0x30890000,115200 ubi.mtd=nandrootfs " \ | |
104 | + "root=ubi0:nandrootfs rootfstype=ubifs " \ | |
105 | + MFG_NAND_PARTITION \ | |
106 | + "\0" \ | |
107 | + "bootcmd=nand read ${loadaddr} 0x5000000 0x2000000;"\ | |
108 | + "nand read ${fdt_addr} 0x7000000 0x100000;"\ | |
109 | + "booti ${loadaddr} - ${fdt_addr}" | |
110 | + | |
111 | +#else | |
112 | +#define CONFIG_EXTRA_ENV_SETTINGS \ | |
113 | + CONFIG_MFG_ENV_SETTINGS \ | |
114 | + JAILHOUSE_ENV \ | |
115 | + "script=boot.scr\0" \ | |
116 | + "image=Image\0" \ | |
117 | + "console=ttymxc1,115200\0" \ | |
118 | + "fdt_addr=0x43000000\0" \ | |
119 | + "fdt_high=0xffffffffffffffff\0" \ | |
120 | + "boot_fit=no\0" \ | |
121 | + "fdt_file=" CONFIG_DEFAULT_FDT_FILE "\0" \ | |
122 | + "initrd_addr=0x43800000\0" \ | |
123 | + "initrd_high=0xffffffffffffffff\0" \ | |
124 | + "mmcdev="__stringify(CONFIG_SYS_MMC_ENV_DEV)"\0" \ | |
125 | + "mmcpart=" __stringify(CONFIG_SYS_MMC_IMG_LOAD_PART) "\0" \ | |
126 | + "mmcroot=" CONFIG_MMCROOT " rootwait rw\0" \ | |
127 | + "mmcautodetect=yes\0" \ | |
128 | + "mmcargs=setenv bootargs ${jh_clk} console=${console} root=${mmcroot}\0 " \ | |
129 | + "loadbootscript=fatload mmc ${mmcdev}:${mmcpart} ${loadaddr} ${script};\0" \ | |
130 | + "bootscript=echo Running bootscript from mmc ...; " \ | |
131 | + "source\0" \ | |
132 | + "loadimage=fatload mmc ${mmcdev}:${mmcpart} ${loadaddr} ${image}\0" \ | |
133 | + "loadfdt=fatload mmc ${mmcdev}:${mmcpart} ${fdt_addr} ${fdt_file}\0" \ | |
134 | + "mmcboot=echo Booting from mmc ...; " \ | |
135 | + "run mmcargs; " \ | |
136 | + "if test ${boot_fit} = yes || test ${boot_fit} = try; then " \ | |
137 | + "bootm ${loadaddr}; " \ | |
138 | + "else " \ | |
139 | + "if run loadfdt; then " \ | |
140 | + "booti ${loadaddr} - ${fdt_addr}; " \ | |
141 | + "else " \ | |
142 | + "echo WARN: Cannot load the DT; " \ | |
143 | + "fi; " \ | |
144 | + "fi;\0" \ | |
145 | + "netargs=setenv bootargs ${jh_clk} console=${console} " \ | |
146 | + "root=/dev/nfs " \ | |
147 | + "ip=dhcp nfsroot=${serverip}:${nfsroot},v3,tcp\0" \ | |
148 | + "netboot=echo Booting from net ...; " \ | |
149 | + "run netargs; " \ | |
150 | + "if test ${ip_dyn} = yes; then " \ | |
151 | + "setenv get_cmd dhcp; " \ | |
152 | + "else " \ | |
153 | + "setenv get_cmd tftp; " \ | |
154 | + "fi; " \ | |
155 | + "${get_cmd} ${loadaddr} ${image}; " \ | |
156 | + "if test ${boot_fit} = yes || test ${boot_fit} = try; then " \ | |
157 | + "bootm ${loadaddr}; " \ | |
158 | + "else " \ | |
159 | + "if ${get_cmd} ${fdt_addr} ${fdt_file}; then " \ | |
160 | + "booti ${loadaddr} - ${fdt_addr}; " \ | |
161 | + "else " \ | |
162 | + "echo WARN: Cannot load the DT; " \ | |
163 | + "fi; " \ | |
164 | + "fi;\0" | |
165 | + | |
166 | +#define CONFIG_BOOTCOMMAND \ | |
167 | + "mmc dev ${mmcdev}; if mmc rescan; then " \ | |
168 | + "if run loadbootscript; then " \ | |
169 | + "run bootscript; " \ | |
170 | + "else " \ | |
171 | + "if run loadimage; then " \ | |
172 | + "run mmcboot; " \ | |
173 | + "else run netboot; " \ | |
174 | + "fi; " \ | |
175 | + "fi; " \ | |
176 | + "fi;" | |
177 | +#endif | |
178 | + | |
179 | +/* Link Definitions */ | |
180 | +#define CONFIG_LOADADDR 0x40480000 | |
181 | + | |
182 | +#define CONFIG_SYS_LOAD_ADDR CONFIG_LOADADDR | |
183 | + | |
184 | +#define CONFIG_SYS_INIT_RAM_ADDR 0x40000000 | |
185 | +#define CONFIG_SYS_INIT_RAM_SIZE 0x200000 | |
186 | +#define CONFIG_SYS_INIT_SP_OFFSET \ | |
187 | + (CONFIG_SYS_INIT_RAM_SIZE - GENERATED_GBL_DATA_SIZE) | |
188 | +#define CONFIG_SYS_INIT_SP_ADDR \ | |
189 | + (CONFIG_SYS_INIT_RAM_ADDR + CONFIG_SYS_INIT_SP_OFFSET) | |
190 | + | |
191 | +#define CONFIG_ENV_OVERWRITE | |
192 | +#if defined(CONFIG_ENV_IS_IN_SPI_FLASH) | |
193 | +#define CONFIG_ENV_SPI_BUS CONFIG_SF_DEFAULT_BUS | |
194 | +#define CONFIG_ENV_SPI_CS CONFIG_SF_DEFAULT_CS | |
195 | +#define CONFIG_ENV_SPI_MODE CONFIG_SF_DEFAULT_MODE | |
196 | +#define CONFIG_ENV_SPI_MAX_HZ CONFIG_SF_DEFAULT_SPEED | |
197 | +#endif | |
198 | +#define CONFIG_SYS_MMC_ENV_DEV 1 /* USDHC2 */ | |
199 | +#define CONFIG_MMCROOT "/dev/mmcblk1p2" /* USDHC2 */ | |
200 | + | |
201 | +/* Size of malloc() pool */ | |
202 | +#define CONFIG_SYS_MALLOC_LEN SZ_32M | |
203 | + | |
204 | +#define CONFIG_SYS_SDRAM_BASE 0x40000000 | |
205 | +#define PHYS_SDRAM 0x40000000 | |
206 | +#define PHYS_SDRAM_SIZE 0x80000000 /* 2GB DDR */ | |
207 | + | |
208 | +#define CONFIG_SYS_MEMTEST_START PHYS_SDRAM | |
209 | +#define CONFIG_SYS_MEMTEST_END (CONFIG_SYS_MEMTEST_START + (PHYS_SDRAM_SIZE >> 1)) | |
210 | + | |
211 | +#define CONFIG_MXC_UART_BASE UART2_BASE_ADDR | |
212 | + | |
213 | +/* Monitor Command Prompt */ | |
214 | +#define CONFIG_SYS_PROMPT_HUSH_PS2 "> " | |
215 | +#define CONFIG_SYS_CBSIZE 2048 | |
216 | +#define CONFIG_SYS_MAXARGS 64 | |
217 | +#define CONFIG_SYS_BARGSIZE CONFIG_SYS_CBSIZE | |
218 | +#define CONFIG_SYS_PBSIZE (CONFIG_SYS_CBSIZE + \ | |
219 | + sizeof(CONFIG_SYS_PROMPT) + 16) | |
220 | + | |
221 | +#define CONFIG_IMX_BOOTAUX | |
222 | + | |
223 | +/* USDHC */ | |
224 | +#define CONFIG_FSL_USDHC | |
225 | + | |
226 | +#ifdef CONFIG_TARGET_IMX8MM_DDR4_EVK | |
227 | +#define CONFIG_SYS_FSL_USDHC_NUM 1 | |
228 | +#else | |
229 | +#define CONFIG_SYS_FSL_USDHC_NUM 2 | |
230 | +#endif | |
231 | +#define CONFIG_SYS_FSL_ESDHC_ADDR 0 | |
232 | + | |
233 | +#define CONFIG_SYS_MMC_IMG_LOAD_PART 1 | |
234 | + | |
235 | +#ifdef CONFIG_FSL_FSPI | |
236 | +#define FSL_FSPI_FLASH_SIZE SZ_32M | |
237 | +#define FSL_FSPI_FLASH_NUM 1 | |
238 | +#define FSPI0_BASE_ADDR 0x30bb0000 | |
239 | +#define FSPI0_AMBA_BASE 0x0 | |
240 | +#define CONFIG_FSPI_QUAD_SUPPORT | |
241 | + | |
242 | +#define CONFIG_SYS_FSL_FSPI_AHB | |
243 | +#endif | |
244 | + | |
245 | +#ifdef CONFIG_NAND_MXS | |
246 | +#define CONFIG_CMD_NAND_TRIMFFS | |
247 | + | |
248 | +/* NAND stuff */ | |
249 | +#define CONFIG_SYS_MAX_NAND_DEVICE 1 | |
250 | +#define CONFIG_SYS_NAND_BASE 0x20000000 | |
251 | +#define CONFIG_SYS_NAND_5_ADDR_CYCLE | |
252 | +#define CONFIG_SYS_NAND_ONFI_DETECTION | |
253 | +#define CONFIG_SYS_NAND_USE_FLASH_BBT | |
254 | +#endif /* CONFIG_NAND_MXS */ | |
255 | + | |
256 | +#define CONFIG_SYS_I2C_SPEED 100000 | |
257 | + | |
258 | +#endif |