Commit 7353572ff55fa2766127a279353385ed5a8834fa
Exists in
smarc_8mq_lf_v2020.04
and in
4 other branches
Merge remote-tracking branch 'origin/imx_v2020.04' into lf_v2020.04
* origin/imx_v2020.04: (11 commits) LF-3117 wdog: imx_watchdog: Change default reset_cpu to internal reset MA-18534 imx8mp: Enable trusty for powersave config MA-18525 Enable HDMI RX as external camera on mek_8qm MA-18346-11 Android refine power on imx8mp board MA-18508 Sync keymaster bootloader commands ID ...
Showing 52 changed files Side-by-side Diff
- board/freescale/imx8mp_evk/lpddr4_timing.c
- board/freescale/imx8mp_evk/spl.c
- common/image-android.c
- configs/imx8mm_evk_android_trusty_defconfig
- configs/imx8mm_evk_android_trusty_dual_defconfig
- configs/imx8mm_evk_android_trusty_secure_unlock_defconfig
- configs/imx8mn_evk_android_trusty_defconfig
- configs/imx8mn_evk_android_trusty_dual_defconfig
- configs/imx8mn_evk_android_trusty_secure_unlock_defconfig
- configs/imx8mp_evk_android_powersave_defconfig
- configs/imx8mp_evk_android_trusty_defconfig
- configs/imx8mp_evk_android_trusty_dual_defconfig
- configs/imx8mp_evk_android_trusty_powersave_defconfig
- configs/imx8mp_evk_android_trusty_secure_unlock_defconfig
- configs/imx8mq_evk_android_trusty_defconfig
- configs/imx8mq_evk_android_trusty_dual_defconfig
- configs/imx8mq_evk_android_trusty_secure_unlock_defconfig
- configs/imx8qm_mek_android_hdmi_defconfig
- configs/imx8qm_mek_android_trusty_defconfig
- configs/imx8qm_mek_android_trusty_secure_unlock_defconfig
- configs/imx8qm_mek_androidauto2_trusty_defconfig
- configs/imx8qm_mek_androidauto2_trusty_md_defconfig
- configs/imx8qm_mek_androidauto_trusty_defconfig
- configs/imx8qm_mek_androidauto_trusty_secure_unlock_defconfig
- configs/imx8qxp_mek_android_trusty_defconfig
- configs/imx8qxp_mek_android_trusty_secure_unlock_defconfig
- configs/imx8qxp_mek_androidauto2_trusty_defconfig
- configs/imx8qxp_mek_androidauto_trusty_defconfig
- configs/imx8qxp_mek_androidauto_trusty_secure_unlock_defconfig
- disk/part_efi.c
- drivers/ddr/imx/imx8m/Kconfig
- drivers/fastboot/fb_fsl/fb_fsl_command.c
- drivers/fastboot/fb_fsl/fb_fsl_common.c
- drivers/watchdog/imx_watchdog.c
- include/configs/imx8mm_evk_android.h
- include/configs/imx8mn_evk_android.h
- include/configs/imx8mp_evk_android.h
- include/configs/imx8mq_evk_android.h
- include/configs/imx8qm_mek_android.h
- include/configs/imx8qm_mek_android_auto.h
- include/configs/imx8qxp_mek_android.h
- include/configs/imx8qxp_mek_android_auto.h
- include/fb_fsl.h
- include/interface/keymaster/keymaster.h
- include/part.h
- include/trusty/keymaster.h
- include/trusty/keymaster_serializable.h
- lib/Kconfig
- lib/avb/fsl/fsl_bootctrl.c
- lib/trusty/ql-tipc/keymaster.c
- lib/trusty/ql-tipc/keymaster_serializable.c
- tools/imximage.c
board/freescale/imx8mp_evk/lpddr4_timing.c
... | ... | @@ -11,6 +11,16 @@ |
11 | 11 | { 0x3d400304, 0x1 }, |
12 | 12 | { 0x3d400030, 0x1 }, |
13 | 13 | { 0x3d400000, 0xa3080020 }, |
14 | +#ifdef CONFIG_IMX8M_LPDDR4_FREQ0_2400MTS | |
15 | + { 0x3d400020, 0x223 }, | |
16 | + { 0x3d400024, 0x124f800 }, | |
17 | + { 0x3d400064, 0x4900a8 }, | |
18 | + { 0x3d400070, 0x1027f90 }, | |
19 | + { 0x3d400074, 0x790 }, | |
20 | + { 0x3d4000d0, 0xc0030495 }, | |
21 | + { 0x3d4000d4, 0x770000 }, | |
22 | + { 0x3d4000dc, 0xc40024 }, | |
23 | +#else | |
14 | 24 | { 0x3d400020, 0x1323 }, |
15 | 25 | { 0x3d400024, 0x1e84800 }, |
16 | 26 | { 0x3d400064, 0x7a017c }, |
17 | 27 | |
... | ... | @@ -23,9 +33,29 @@ |
23 | 33 | { 0x3d4000d0, 0xc00307a3 }, |
24 | 34 | { 0x3d4000d4, 0xc50000 }, |
25 | 35 | { 0x3d4000dc, 0xf4003f }, |
36 | +#endif | |
26 | 37 | { 0x3d4000e0, 0x330000 }, |
27 | 38 | { 0x3d4000e8, 0x660048 }, |
28 | 39 | { 0x3d4000ec, 0x160048 }, |
40 | +#ifdef CONFIG_IMX8M_LPDDR4_FREQ0_2400MTS | |
41 | + { 0x3d400100, 0x1618141a }, | |
42 | + { 0x3d400104, 0x504a6 }, | |
43 | + { 0x3d40010c, 0x909000 }, | |
44 | + { 0x3d400110, 0xb04060b }, | |
45 | + { 0x3d400114, 0x2030909 }, | |
46 | + { 0x3d400118, 0x1010006 }, | |
47 | + { 0x3d40011c, 0x301 }, | |
48 | + { 0x3d400130, 0x20500 }, | |
49 | + { 0x3d400134, 0xb100002 }, | |
50 | + { 0x3d400138, 0xad }, | |
51 | + { 0x3d400144, 0x78003c }, | |
52 | + { 0x3d400180, 0x2580012 }, | |
53 | + { 0x3d400184, 0x1e0493e }, | |
54 | + { 0x3d400188, 0x0 }, | |
55 | + { 0x3d400190, 0x4938208 }, | |
56 | + { 0x3d400194, 0x80303 }, | |
57 | + { 0x3d4001b4, 0x1308 }, | |
58 | +#else | |
29 | 59 | { 0x3d400100, 0x2028222a }, |
30 | 60 | { 0x3d400104, 0x807bf }, |
31 | 61 | { 0x3d40010c, 0xe0e000 }, |
... | ... | @@ -43,6 +73,7 @@ |
43 | 73 | { 0x3d400190, 0x49f820e }, |
44 | 74 | { 0x3d400194, 0x80303 }, |
45 | 75 | { 0x3d4001b4, 0x1f0e }, |
76 | +#endif | |
46 | 77 | { 0x3d4001a0, 0xe0400018 }, |
47 | 78 | { 0x3d4001a4, 0xdf00e4 }, |
48 | 79 | { 0x3d4001a8, 0x80000000 }, |
... | ... | @@ -50,6 +81,30 @@ |
50 | 81 | { 0x3d4001c0, 0x1 }, |
51 | 82 | { 0x3d4001c4, 0x1 }, |
52 | 83 | { 0x3d4000f4, 0xc99 }, |
84 | +#ifdef CONFIG_IMX8M_LPDDR4_FREQ0_2400MTS | |
85 | + { 0x3d400108, 0x60c1514 }, | |
86 | + { 0x3d400200, 0x16 }, | |
87 | + { 0x3d40020c, 0x0 }, | |
88 | + { 0x3d400210, 0x1f1f }, | |
89 | + { 0x3d400204, 0x80808 }, | |
90 | + { 0x3d400214, 0x7070707 }, | |
91 | + { 0x3d400218, 0x68070707 }, | |
92 | + { 0x3d40021c, 0xf08 }, | |
93 | + { 0x3d400250, 0x1f05 }, | |
94 | + { 0x3d400254, 0x1f }, | |
95 | + { 0x3d400264, 0x90003ff }, | |
96 | + { 0x3d40026c, 0x20003ff }, | |
97 | + { 0x3d400400, 0x111 }, | |
98 | + { 0x3d400408, 0x72ff }, | |
99 | + { 0x3d400494, 0x1000e00 }, | |
100 | + { 0x3d400498, 0x3ff0000 }, | |
101 | + { 0x3d40049c, 0x1000e00 }, | |
102 | + { 0x3d4004a0, 0x3ff0000 }, | |
103 | + { 0x3d402020, 0x21 }, | |
104 | + { 0x3d402024, 0x30d400 }, | |
105 | + { 0x3d402050, 0x20d000 }, | |
106 | + { 0x3d402064, 0xc001c }, | |
107 | +#else | |
53 | 108 | { 0x3d400108, 0x9121c1c }, |
54 | 109 | #ifdef CONFIG_IMX8M_DRAM_INLINE_ECC |
55 | 110 | { 0x3d400200, 0x13 }, |
... | ... | @@ -83,6 +138,7 @@ |
83 | 138 | { 0x3d402024, 0x30d400 }, |
84 | 139 | { 0x3d402050, 0x20d000 }, |
85 | 140 | { 0x3d402064, 0xc0026 }, |
141 | +#endif | |
86 | 142 | { 0x3d4020dc, 0x840000 }, |
87 | 143 | { 0x3d4020e0, 0x330000 }, |
88 | 144 | { 0x3d4020e8, 0x660048 }, |
89 | 145 | |
... | ... | @@ -104,10 +160,17 @@ |
104 | 160 | { 0x3d402194, 0x80303 }, |
105 | 161 | { 0x3d4021b4, 0x100 }, |
106 | 162 | { 0x3d4020f4, 0xc99 }, |
163 | +#ifdef CONFIG_IMX8M_LPDDR4_FREQ0_2400MTS | |
164 | + { 0x3d403020, 0x21 }, | |
165 | + { 0x3d403024, 0xc3500 }, | |
166 | + { 0x3d403050, 0x20d000 }, | |
167 | + { 0x3d403064, 0x30007 }, | |
168 | +#else | |
107 | 169 | { 0x3d403020, 0x1021 }, |
108 | 170 | { 0x3d403024, 0xc3500 }, |
109 | 171 | { 0x3d403050, 0x20d000 }, |
110 | 172 | { 0x3d403064, 0x3000a }, |
173 | +#endif | |
111 | 174 | { 0x3d4030dc, 0x840000 }, |
112 | 175 | { 0x3d4030e0, 0x330000 }, |
113 | 176 | { 0x3d4030e8, 0x660048 }, |
114 | 177 | |
... | ... | @@ -200,7 +263,11 @@ |
200 | 263 | { 0x7055, 0x1ff }, |
201 | 264 | { 0x8055, 0x1ff }, |
202 | 265 | { 0x9055, 0x1ff }, |
266 | +#ifdef CONFIG_IMX8M_LPDDR4_FREQ0_2400MTS | |
267 | + { 0x200c5, 0xa }, | |
268 | +#else | |
203 | 269 | { 0x200c5, 0x18 }, |
270 | +#endif | |
204 | 271 | { 0x1200c5, 0x7 }, |
205 | 272 | { 0x2200c5, 0x7 }, |
206 | 273 | { 0x2002e, 0x2 }, |
207 | 274 | |
... | ... | @@ -279,7 +346,11 @@ |
279 | 346 | { 0x20018, 0x3 }, |
280 | 347 | { 0x20075, 0x4 }, |
281 | 348 | { 0x20050, 0x0 }, |
349 | +#ifdef CONFIG_IMX8M_LPDDR4_FREQ0_2400MTS | |
350 | + { 0x20008, 0x258 }, | |
351 | +#else | |
282 | 352 | { 0x20008, 0x3e8 }, |
353 | +#endif | |
283 | 354 | { 0x120008, 0x64 }, |
284 | 355 | { 0x220008, 0x19 }, |
285 | 356 | { 0x20088, 0x9 }, |
286 | 357 | |
... | ... | @@ -1066,7 +1137,39 @@ |
1066 | 1137 | |
1067 | 1138 | /* P0 message block paremeter for training firmware */ |
1068 | 1139 | struct dram_cfg_param ddr_fsp0_cfg[] = { |
1140 | +#ifdef CONFIG_IMX8M_LPDDR4_FREQ0_2400MTS | |
1069 | 1141 | { 0xd0000, 0x0 }, |
1142 | + { 0x54003, 0x960 }, | |
1143 | + { 0x54004, 0x2 }, | |
1144 | + { 0x54005, 0x2228 }, | |
1145 | + { 0x54006, 0x14 }, | |
1146 | + { 0x54008, 0x131f }, | |
1147 | + { 0x54009, 0xc8 }, | |
1148 | + { 0x5400b, 0x2 }, | |
1149 | + { 0x5400f, 0x100 }, | |
1150 | + { 0x54012, 0x310 }, | |
1151 | + { 0x54019, 0x24c4 }, | |
1152 | + { 0x5401a, 0x33 }, | |
1153 | + { 0x5401b, 0x4866 }, | |
1154 | + { 0x5401c, 0x4800 }, | |
1155 | + { 0x5401e, 0x16 }, | |
1156 | + { 0x5401f, 0x24c4 }, | |
1157 | + { 0x54020, 0x33 }, | |
1158 | + { 0x54021, 0x4866 }, | |
1159 | + { 0x54022, 0x4800 }, | |
1160 | + { 0x54024, 0x16 }, | |
1161 | + { 0x5402b, 0x1000 }, | |
1162 | + { 0x5402c, 0x3 }, | |
1163 | + { 0x54032, 0xc400 }, | |
1164 | + { 0x54033, 0x3324 }, | |
1165 | + { 0x54034, 0x6600 }, | |
1166 | + { 0x54035, 0x48 }, | |
1167 | + { 0x54036, 0x48 }, | |
1168 | + { 0x54037, 0x1600 }, | |
1169 | + { 0x54038, 0xc400 }, | |
1170 | + { 0x54039, 0x3324 }, | |
1171 | +#else | |
1172 | + { 0xd0000, 0x0 }, | |
1070 | 1173 | { 0x54003, 0xfa0 }, |
1071 | 1174 | { 0x54004, 0x2 }, |
1072 | 1175 | { 0x54005, 0x2228 }, |
... | ... | @@ -1096,6 +1199,7 @@ |
1096 | 1199 | { 0x54037, 0x1600 }, |
1097 | 1200 | { 0x54038, 0xf400 }, |
1098 | 1201 | { 0x54039, 0x333f }, |
1202 | +#endif | |
1099 | 1203 | { 0x5403a, 0x6600 }, |
1100 | 1204 | { 0x5403b, 0x48 }, |
1101 | 1205 | { 0x5403c, 0x48 }, |
... | ... | @@ -1186,6 +1290,39 @@ |
1186 | 1290 | /* P0 2D message block paremeter for training firmware */ |
1187 | 1291 | struct dram_cfg_param ddr_fsp0_2d_cfg[] = { |
1188 | 1292 | { 0xd0000, 0x0 }, |
1293 | +#ifdef CONFIG_IMX8M_LPDDR4_FREQ0_2400MTS | |
1294 | + { 0x54003, 0x960 }, | |
1295 | + { 0x54004, 0x2 }, | |
1296 | + { 0x54005, 0x2228 }, | |
1297 | + { 0x54006, 0x14 }, | |
1298 | + { 0x54008, 0x61 }, | |
1299 | + { 0x54009, 0xc8 }, | |
1300 | + { 0x5400b, 0x2 }, | |
1301 | + { 0x5400d, 0x100 }, | |
1302 | + { 0x5400f, 0x100 }, | |
1303 | + { 0x54010, 0x1f7f }, | |
1304 | + { 0x54012, 0x310 }, | |
1305 | + { 0x54019, 0x24c4 }, | |
1306 | + { 0x5401a, 0x33 }, | |
1307 | + { 0x5401b, 0x4866 }, | |
1308 | + { 0x5401c, 0x4800 }, | |
1309 | + { 0x5401e, 0x16 }, | |
1310 | + { 0x5401f, 0x24c4 }, | |
1311 | + { 0x54020, 0x33 }, | |
1312 | + { 0x54021, 0x4866 }, | |
1313 | + { 0x54022, 0x4800 }, | |
1314 | + { 0x54024, 0x16 }, | |
1315 | + { 0x5402b, 0x1000 }, | |
1316 | + { 0x5402c, 0x3 }, | |
1317 | + { 0x54032, 0xc400 }, | |
1318 | + { 0x54033, 0x3324 }, | |
1319 | + { 0x54034, 0x6600 }, | |
1320 | + { 0x54035, 0x48 }, | |
1321 | + { 0x54036, 0x48 }, | |
1322 | + { 0x54037, 0x1600 }, | |
1323 | + { 0x54038, 0xc400 }, | |
1324 | + { 0x54039, 0x3324 }, | |
1325 | +#else | |
1189 | 1326 | { 0x54003, 0xfa0 }, |
1190 | 1327 | { 0x54004, 0x2 }, |
1191 | 1328 | { 0x54005, 0x2228 }, |
... | ... | @@ -1217,6 +1354,7 @@ |
1217 | 1354 | { 0x54037, 0x1600 }, |
1218 | 1355 | { 0x54038, 0xf400 }, |
1219 | 1356 | { 0x54039, 0x333f }, |
1357 | +#endif | |
1220 | 1358 | { 0x5403a, 0x6600 }, |
1221 | 1359 | { 0x5403b, 0x48 }, |
1222 | 1360 | { 0x5403c, 0x48 }, |
1223 | 1361 | |
... | ... | @@ -1705,10 +1843,16 @@ |
1705 | 1843 | { 0x400d6, 0x20a }, |
1706 | 1844 | { 0x400d7, 0x20b }, |
1707 | 1845 | { 0x2003a, 0x2 }, |
1846 | +#ifdef CONFIG_IMX8M_LPDDR4_FREQ0_2400MTS | |
1847 | + { 0x2000b, 0x4b }, | |
1848 | + { 0x2000c, 0x96 }, | |
1849 | + { 0x2000d, 0x5dc }, | |
1850 | +#else | |
1708 | 1851 | { 0x200be, 0x3 }, |
1709 | 1852 | { 0x2000b, 0x7d }, |
1710 | 1853 | { 0x2000c, 0xfa }, |
1711 | 1854 | { 0x2000d, 0x9c4 }, |
1855 | +#endif | |
1712 | 1856 | { 0x2000e, 0x2c }, |
1713 | 1857 | { 0x12000b, 0xc }, |
1714 | 1858 | { 0x12000c, 0x19 }, |
... | ... | @@ -1728,6 +1872,12 @@ |
1728 | 1872 | { 0x90013, 0x6152 }, |
1729 | 1873 | { 0x20010, 0x5a }, |
1730 | 1874 | { 0x20011, 0x3 }, |
1875 | +#ifdef CONFIG_IMX8M_LPDDR4_FREQ0_2400MTS | |
1876 | + { 0x120010, 0x5a }, | |
1877 | + { 0x120011, 0x3 }, | |
1878 | + { 0x220010, 0x5a }, | |
1879 | + { 0x220011, 0x3 }, | |
1880 | +#endif | |
1731 | 1881 | { 0x40080, 0xe0 }, |
1732 | 1882 | { 0x40081, 0x12 }, |
1733 | 1883 | { 0x40082, 0xe0 }, |
1734 | 1884 | |
... | ... | @@ -1811,8 +1961,13 @@ |
1811 | 1961 | |
1812 | 1962 | struct dram_fsp_msg ddr_dram_fsp_msg[] = { |
1813 | 1963 | { |
1964 | +#ifdef CONFIG_IMX8M_LPDDR4_FREQ0_2400MTS | |
1965 | + /* P0 2400mts 1D */ | |
1966 | + .drate = 2400, | |
1967 | +#else | |
1814 | 1968 | /* P0 4000mts 1D */ |
1815 | 1969 | .drate = 4000, |
1970 | +#endif | |
1816 | 1971 | .fw_type = FW_1D_IMAGE, |
1817 | 1972 | .fsp_cfg = ddr_fsp0_cfg, |
1818 | 1973 | .fsp_cfg_num = ARRAY_SIZE(ddr_fsp0_cfg), |
... | ... | @@ -1832,8 +1987,13 @@ |
1832 | 1987 | .fsp_cfg_num = ARRAY_SIZE(ddr_fsp2_cfg), |
1833 | 1988 | }, |
1834 | 1989 | { |
1835 | - /* P0 4000mts 2D */ | |
1836 | - .drate = 4000, | |
1990 | +#ifdef CONFIG_IMX8M_LPDDR4_FREQ0_2400MTS | |
1991 | + /* P0 2400mts 2D */ | |
1992 | + .drate = 2400, | |
1993 | +#else | |
1994 | + /* P0 4000mts 2D */ | |
1995 | + .drate = 4000, | |
1996 | +#endif | |
1837 | 1997 | .fw_type = FW_2D_IMAGE, |
1838 | 1998 | .fsp_cfg = ddr_fsp0_2d_cfg, |
1839 | 1999 | .fsp_cfg_num = ARRAY_SIZE(ddr_fsp0_2d_cfg), |
1840 | 2000 | |
... | ... | @@ -1852,9 +2012,14 @@ |
1852 | 2012 | .ddrphy_trained_csr_num = ARRAY_SIZE(ddr_ddrphy_trained_csr), |
1853 | 2013 | .ddrphy_pie = ddr_phy_pie, |
1854 | 2014 | .ddrphy_pie_num = ARRAY_SIZE(ddr_phy_pie), |
1855 | - .fsp_table = { 4000, 400, 100, }, | |
2015 | +#ifdef CONFIG_IMX8M_LPDDR4_FREQ0_2400MTS | |
2016 | + .fsp_table = { 2400, 400, 100, }, | |
2017 | +#else | |
2018 | + .fsp_table = { 4000, 400, 100, }, | |
2019 | +#endif | |
1856 | 2020 | }; |
1857 | 2021 | |
2022 | +#ifndef CONFIG_IMX8M_LPDDR4_FREQ0_2400MTS | |
1858 | 2023 | #ifdef CONFIG_IMX8M_DRAM_INLINE_ECC |
1859 | 2024 | void board_dram_ecc_scrub(void) |
1860 | 2025 | { |
... | ... | @@ -1881,5 +2046,6 @@ |
1881 | 2046 | ddrc_inline_ecc_scrub(0x58000000,0x5bffffff); |
1882 | 2047 | ddrc_inline_ecc_scrub_end(0x0,0x5fffffff); |
1883 | 2048 | } |
2049 | +#endif | |
1884 | 2050 | #endif |
board/freescale/imx8mp_evk/spl.c
... | ... | @@ -194,7 +194,12 @@ |
194 | 194 | * Enable DVS control through PMIC_STBY_REQ and |
195 | 195 | * set B1_ENMODE=1 (ON by PMIC_ON_REQ=H) |
196 | 196 | */ |
197 | +#ifdef CONFIG_IMX8M_VDD_SOC_850MV | |
198 | + /* set DVS0 to 0.85v for special case*/ | |
199 | + pmic_reg_write(p, PCA9450_BUCK1OUT_DVS0, 0x14); | |
200 | +#else | |
197 | 201 | pmic_reg_write(p, PCA9450_BUCK1OUT_DVS0, 0x1C); |
202 | +#endif | |
198 | 203 | pmic_reg_write(p, PCA9450_BUCK1OUT_DVS1, 0x14); |
199 | 204 | pmic_reg_write(p, PCA9450_BUCK1CTRL, 0x59); |
200 | 205 |
common/image-android.c
... | ... | @@ -97,6 +97,14 @@ |
97 | 97 | soc_type); |
98 | 98 | strncat(commandline, newbootargs, COMMANDLINE_LENGTH - strlen(commandline)); |
99 | 99 | } |
100 | + /* append soc rev into bootargs */ | |
101 | + char *soc_rev = env_get("soc_rev"); | |
102 | + if (soc_rev) { | |
103 | + sprintf(newbootargs, | |
104 | + " androidboot.soc_rev=%s", | |
105 | + soc_rev); | |
106 | + strncat(commandline, newbootargs, COMMANDLINE_LENGTH - strlen(commandline)); | |
107 | + } | |
100 | 108 | |
101 | 109 | sprintf(newbootargs, |
102 | 110 | " androidboot.boot_device_root=mmcblk%d", mmc_map_to_kernel_blk(mmc_get_env_dev())); |
configs/imx8mm_evk_android_trusty_defconfig
configs/imx8mm_evk_android_trusty_dual_defconfig
configs/imx8mm_evk_android_trusty_secure_unlock_defconfig
configs/imx8mn_evk_android_trusty_defconfig
configs/imx8mn_evk_android_trusty_dual_defconfig
configs/imx8mn_evk_android_trusty_secure_unlock_defconfig
configs/imx8mp_evk_android_powersave_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_ENV_SECT_SIZE=0x10000 | |
16 | +CONFIG_DM_GPIO=y | |
17 | +CONFIG_TARGET_IMX8MP_EVK=y | |
18 | +CONFIG_ARCH_MISC_INIT=y | |
19 | +CONFIG_SPL_SERIAL_SUPPORT=y | |
20 | +CONFIG_SPL_DRIVERS_MISC_SUPPORT=y | |
21 | +CONFIG_SPL=y | |
22 | +CONFIG_SPL_IMX_ROMAPI_LOADADDR=0x48000000 | |
23 | +CONFIG_CSF_SIZE=0x2000 | |
24 | +CONFIG_SPL_TEXT_BASE=0x920000 | |
25 | +CONFIG_FIT=y | |
26 | +CONFIG_FIT_EXTERNAL_OFFSET=0x3000 | |
27 | +CONFIG_SPL_LOAD_FIT=y | |
28 | +CONFIG_SPL_FIT_GENERATOR="arch/arm/mach-imx/mkimage_fit_atf.sh" | |
29 | +CONFIG_OF_SYSTEM_SETUP=y | |
30 | +CONFIG_SYS_EXTRA_OPTIONS="IMX_CONFIG=arch/arm/mach-imx/imx8m/imximage-8mp-lpddr4.cfg, ANDROID_SUPPORT" | |
31 | +CONFIG_DEFAULT_FDT_FILE="imx8mp-evk.dtb" | |
32 | +CONFIG_BOARD_LATE_INIT=y | |
33 | +CONFIG_BOARD_EARLY_INIT_F=y | |
34 | +CONFIG_SPL_BOARD_INIT=y | |
35 | +CONFIG_SPL_SEPARATE_BSS=y | |
36 | +CONFIG_SPL_I2C_SUPPORT=y | |
37 | +CONFIG_SPL_POWER_SUPPORT=y | |
38 | +CONFIG_NR_DRAM_BANKS=3 | |
39 | +CONFIG_HUSH_PARSER=y | |
40 | +CONFIG_SYS_PROMPT="u-boot=> " | |
41 | +# CONFIG_CMD_EXPORTENV is not set | |
42 | +# CONFIG_CMD_IMPORTENV is not set | |
43 | +CONFIG_CMD_ERASEENV=y | |
44 | +# CONFIG_CMD_CRC32 is not set | |
45 | +# CONFIG_BOOTM_NETBSD is not set | |
46 | +CONFIG_CMD_CLK=y | |
47 | +CONFIG_CMD_FUSE=y | |
48 | +CONFIG_CMD_GPIO=y | |
49 | +CONFIG_CMD_I2C=y | |
50 | +CONFIG_CMD_MMC=y | |
51 | +CONFIG_CMD_DHCP=y | |
52 | +CONFIG_CMD_MII=y | |
53 | +CONFIG_CMD_PING=y | |
54 | +CONFIG_CMD_CACHE=y | |
55 | +CONFIG_CMD_REGULATOR=y | |
56 | +CONFIG_CMD_MEMTEST=y | |
57 | +CONFIG_CMD_EXT2=y | |
58 | +CONFIG_CMD_EXT4=y | |
59 | +CONFIG_CMD_EXT4_WRITE=y | |
60 | +CONFIG_CMD_FAT=y | |
61 | +CONFIG_CMD_SF=y | |
62 | +CONFIG_CMD_LED=y | |
63 | +CONFIG_OF_CONTROL=y | |
64 | +CONFIG_DEFAULT_DEVICE_TREE="imx8mp-evk" | |
65 | +CONFIG_ENV_IS_IN_MMC=y | |
66 | +CONFIG_ENV_IS_IN_SPI_FLASH=y | |
67 | +CONFIG_ENV_IS_NOWHERE=y | |
68 | +CONFIG_SYS_RELOC_GD_ENV_ADDR=y | |
69 | +CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y | |
70 | +CONFIG_CLK_COMPOSITE_CCF=y | |
71 | +CONFIG_CLK_IMX8MP=y | |
72 | +CONFIG_MXC_GPIO=y | |
73 | +CONFIG_DM_PCA953X=y | |
74 | +CONFIG_FASTBOOT=y | |
75 | +CONFIG_USB_FUNCTION_FASTBOOT=y | |
76 | +CONFIG_CMD_FASTBOOT=y | |
77 | +CONFIG_ANDROID_BOOT_IMAGE=y | |
78 | +CONFIG_FASTBOOT_UUU_SUPPORT=n | |
79 | +CONFIG_FASTBOOT_BUF_ADDR=0x42800000 | |
80 | +CONFIG_FASTBOOT_BUF_SIZE=0xc800000 | |
81 | +CONFIG_FASTBOOT_FLASH=y | |
82 | +CONFIG_DM_I2C=y | |
83 | +CONFIG_SYS_I2C_MXC=y | |
84 | +CONFIG_LED=y | |
85 | +CONFIG_LED_GPIO=y | |
86 | +CONFIG_DM_MMC=y | |
87 | +CONFIG_MMC_IO_VOLTAGE=y | |
88 | +CONFIG_MMC_UHS_SUPPORT=y | |
89 | +CONFIG_MMC_HS400_SUPPORT=y | |
90 | +CONFIG_MMC_HS400_ES_SUPPORT=y | |
91 | +CONFIG_EFI_PARTITION=y | |
92 | +CONFIG_SUPPORT_EMMC_BOOT=y | |
93 | +CONFIG_FSL_ESDHC_IMX=y | |
94 | +CONFIG_DM_SPI_FLASH=y | |
95 | +CONFIG_DM_SPI=y | |
96 | +CONFIG_FSL_FSPI=y | |
97 | +CONFIG_SPI=y | |
98 | +CONFIG_SPI_FLASH=y | |
99 | +CONFIG_SPI_FLASH_BAR=y | |
100 | +CONFIG_SPI_FLASH_STMICRO=y | |
101 | +CONFIG_SF_DEFAULT_BUS=0 | |
102 | +CONFIG_SF_DEFAULT_CS=0 | |
103 | +CONFIG_SF_DEFAULT_SPEED=40000000 | |
104 | +CONFIG_SF_DEFAULT_MODE=0 | |
105 | + | |
106 | +CONFIG_DM_ETH=y | |
107 | +# CONFIG_DM_ETH_PHY=y | |
108 | +CONFIG_DWC_ETH_QOS=y | |
109 | + | |
110 | +CONFIG_PHY_GIGE=y | |
111 | +CONFIG_FEC_MXC=y | |
112 | +CONFIG_MII=y | |
113 | +CONFIG_PHYLIB=y | |
114 | +CONFIG_PHY_REALTEK=y | |
115 | + | |
116 | +CONFIG_PINCTRL=y | |
117 | +CONFIG_PINCTRL_IMX8M=y | |
118 | +CONFIG_DM_REGULATOR=y | |
119 | +CONFIG_DM_REGULATOR_FIXED=y | |
120 | +CONFIG_DM_REGULATOR_GPIO=y | |
121 | +CONFIG_MXC_UART=y | |
122 | +CONFIG_SYSRESET=y | |
123 | +CONFIG_SYSRESET_PSCI=y | |
124 | +CONFIG_DM_THERMAL=y | |
125 | +CONFIG_NXP_TMU=y | |
126 | +CONFIG_USB_TCPC=y | |
127 | +CONFIG_USB=y | |
128 | +CONFIG_USB_GADGET=y | |
129 | +CONFIG_DM_USB=y | |
130 | + | |
131 | +CONFIG_USB_GADGET_MANUFACTURER="FSL" | |
132 | +CONFIG_USB_GADGET_VENDOR_NUM=0x0525 | |
133 | +CONFIG_USB_GADGET_PRODUCT_NUM=0xa4a5 | |
134 | +CONFIG_USB_GADGET_DOWNLOAD=y | |
135 | +CONFIG_USB_XHCI_HCD=y | |
136 | +CONFIG_USB_XHCI_IMX8M=y | |
137 | +CONFIG_USB_XHCI_DWC3=y | |
138 | +CONFIG_USB_DWC3=y | |
139 | +CONFIG_USB_DWC3_GADGET=y | |
140 | + | |
141 | +CONFIG_OF_BOARD_SETUP=y | |
142 | + | |
143 | +CONFIG_REGMAP=y | |
144 | +CONFIG_SYSCON=y | |
145 | +CONFIG_VIDEO_IMX_LCDIFV3=y | |
146 | +CONFIG_VIDEO_IMX_SEC_DSI=y | |
147 | +CONFIG_DM_VIDEO=y | |
148 | +CONFIG_VIDEO_LCD_RAYDIUM_RM67191=y | |
149 | +CONFIG_VIDEO_ADV7535=y | |
150 | +CONFIG_SYS_WHITE_ON_BLACK=y | |
151 | + | |
152 | +CONFIG_LZ4=y | |
153 | +CONFIG_BCB_SUPPORT=y | |
154 | +CONFIG_ANDROID_RECOVERY=y | |
155 | +CONFIG_SUPPORT_RAW_INITRD=y | |
156 | +CONFIG_FLASH_MCUFIRMWARE_SUPPORT=y | |
157 | +CONFIG_FSL_FASTBOOT=y | |
158 | +CONFIG_FASTBOOT_LOCK=y | |
159 | +CONFIG_CMD_BOOTA=y | |
160 | +CONFIG_LIBAVB=y | |
161 | +CONFIG_AVB_SUPPORT=y | |
162 | +CONFIG_APPEND_BOOTARGS=y | |
163 | +CONFIG_SPL_MMC_SUPPORT=y | |
164 | +CONFIG_AVB_WARNING_LOGO=y | |
165 | +CONFIG_AVB_WARNING_LOGO_COLS=0x320 | |
166 | +CONFIG_AVB_WARNING_LOGO_ROWS=0xc0 | |
167 | +CONFIG_VIRTUAL_AB_SUPPORT=y | |
168 | +CONFIG_IMX8M_VDD_SOC_850MV=y | |
169 | +CONFIG_IMX8M_LPDDR4_FREQ0_2400MTS=y |
configs/imx8mp_evk_android_trusty_defconfig
configs/imx8mp_evk_android_trusty_dual_defconfig
configs/imx8mp_evk_android_trusty_powersave_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_ENV_SECT_SIZE=0x10000 | |
16 | +CONFIG_DM_GPIO=y | |
17 | +CONFIG_TARGET_IMX8MP_EVK=y | |
18 | +CONFIG_ARCH_MISC_INIT=y | |
19 | +CONFIG_SPL_SERIAL_SUPPORT=y | |
20 | +CONFIG_SPL_DRIVERS_MISC_SUPPORT=y | |
21 | +CONFIG_SPL=y | |
22 | +CONFIG_SPL_IMX_ROMAPI_LOADADDR=0x48000000 | |
23 | +CONFIG_CSF_SIZE=0x2000 | |
24 | +CONFIG_SPL_TEXT_BASE=0x920000 | |
25 | +CONFIG_FIT=y | |
26 | +CONFIG_FIT_EXTERNAL_OFFSET=0x3000 | |
27 | +CONFIG_SPL_LOAD_FIT=y | |
28 | +CONFIG_SPL_FIT_GENERATOR="arch/arm/mach-imx/mkimage_fit_atf.sh" | |
29 | +CONFIG_OF_SYSTEM_SETUP=y | |
30 | +CONFIG_SYS_EXTRA_OPTIONS="IMX_CONFIG=arch/arm/mach-imx/imx8m/imximage-8mp-lpddr4.cfg, ANDROID_SUPPORT" | |
31 | +CONFIG_DEFAULT_FDT_FILE="imx8mp-evk.dtb" | |
32 | +CONFIG_BOARD_LATE_INIT=y | |
33 | +CONFIG_BOARD_EARLY_INIT_F=y | |
34 | +CONFIG_SPL_BOARD_INIT=y | |
35 | +CONFIG_SPL_SEPARATE_BSS=y | |
36 | +CONFIG_SPL_I2C_SUPPORT=y | |
37 | +CONFIG_SPL_POWER_SUPPORT=y | |
38 | +CONFIG_NR_DRAM_BANKS=3 | |
39 | +CONFIG_HUSH_PARSER=y | |
40 | +CONFIG_SYS_PROMPT="u-boot=> " | |
41 | +# CONFIG_CMD_EXPORTENV is not set | |
42 | +# CONFIG_CMD_IMPORTENV is not set | |
43 | +CONFIG_CMD_ERASEENV=y | |
44 | +# CONFIG_CMD_CRC32 is not set | |
45 | +# CONFIG_BOOTM_NETBSD is not set | |
46 | +CONFIG_CMD_CLK=y | |
47 | +CONFIG_CMD_FUSE=y | |
48 | +CONFIG_CMD_GPIO=y | |
49 | +CONFIG_CMD_I2C=y | |
50 | +CONFIG_CMD_MMC=y | |
51 | +CONFIG_CMD_DHCP=y | |
52 | +CONFIG_CMD_MII=y | |
53 | +CONFIG_CMD_PING=y | |
54 | +CONFIG_CMD_CACHE=y | |
55 | +CONFIG_CMD_REGULATOR=y | |
56 | +CONFIG_CMD_MEMTEST=y | |
57 | +CONFIG_CMD_EXT2=y | |
58 | +CONFIG_CMD_EXT4=y | |
59 | +CONFIG_CMD_EXT4_WRITE=y | |
60 | +CONFIG_CMD_FAT=y | |
61 | +CONFIG_CMD_SF=y | |
62 | +CONFIG_CMD_LED=y | |
63 | +CONFIG_OF_CONTROL=y | |
64 | +CONFIG_DEFAULT_DEVICE_TREE="imx8mp-evk" | |
65 | +CONFIG_ENV_IS_IN_MMC=y | |
66 | +CONFIG_ENV_IS_IN_SPI_FLASH=y | |
67 | +CONFIG_ENV_IS_NOWHERE=y | |
68 | +CONFIG_SYS_RELOC_GD_ENV_ADDR=y | |
69 | +CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y | |
70 | +CONFIG_CLK_COMPOSITE_CCF=y | |
71 | +CONFIG_CLK_IMX8MP=y | |
72 | +CONFIG_MXC_GPIO=y | |
73 | +CONFIG_DM_PCA953X=y | |
74 | +CONFIG_FASTBOOT=y | |
75 | +CONFIG_USB_FUNCTION_FASTBOOT=y | |
76 | +CONFIG_CMD_FASTBOOT=y | |
77 | +CONFIG_ANDROID_BOOT_IMAGE=y | |
78 | +CONFIG_FASTBOOT_UUU_SUPPORT=n | |
79 | +CONFIG_FASTBOOT_BUF_ADDR=0x42800000 | |
80 | +CONFIG_FASTBOOT_BUF_SIZE=0xc800000 | |
81 | +CONFIG_FASTBOOT_FLASH=y | |
82 | +CONFIG_DM_I2C=y | |
83 | +CONFIG_SYS_I2C_MXC=y | |
84 | +CONFIG_LED=y | |
85 | +CONFIG_LED_GPIO=y | |
86 | +CONFIG_DM_MMC=y | |
87 | +CONFIG_MMC_IO_VOLTAGE=y | |
88 | +CONFIG_MMC_UHS_SUPPORT=y | |
89 | +CONFIG_MMC_HS400_SUPPORT=y | |
90 | +CONFIG_MMC_HS400_ES_SUPPORT=y | |
91 | +CONFIG_EFI_PARTITION=y | |
92 | +CONFIG_SUPPORT_EMMC_BOOT=y | |
93 | +CONFIG_FSL_ESDHC_IMX=y | |
94 | +CONFIG_DM_SPI_FLASH=y | |
95 | +CONFIG_DM_SPI=y | |
96 | +CONFIG_FSL_FSPI=y | |
97 | +CONFIG_SPI=y | |
98 | +CONFIG_SPI_FLASH=y | |
99 | +CONFIG_SPI_FLASH_BAR=y | |
100 | +CONFIG_SPI_FLASH_STMICRO=y | |
101 | +CONFIG_SF_DEFAULT_BUS=0 | |
102 | +CONFIG_SF_DEFAULT_CS=0 | |
103 | +CONFIG_SF_DEFAULT_SPEED=40000000 | |
104 | +CONFIG_SF_DEFAULT_MODE=0 | |
105 | + | |
106 | +CONFIG_DM_ETH=y | |
107 | +# CONFIG_DM_ETH_PHY=y | |
108 | +CONFIG_DWC_ETH_QOS=y | |
109 | + | |
110 | +CONFIG_PHY_GIGE=y | |
111 | +CONFIG_FEC_MXC=y | |
112 | +CONFIG_MII=y | |
113 | +CONFIG_PHYLIB=y | |
114 | +CONFIG_PHY_REALTEK=y | |
115 | + | |
116 | +CONFIG_PINCTRL=y | |
117 | +CONFIG_PINCTRL_IMX8M=y | |
118 | +CONFIG_DM_REGULATOR=y | |
119 | +CONFIG_DM_REGULATOR_FIXED=y | |
120 | +CONFIG_DM_REGULATOR_GPIO=y | |
121 | +CONFIG_MXC_UART=y | |
122 | +CONFIG_SYSRESET=y | |
123 | +CONFIG_SYSRESET_PSCI=y | |
124 | +CONFIG_DM_THERMAL=y | |
125 | +CONFIG_NXP_TMU=y | |
126 | +CONFIG_USB_TCPC=y | |
127 | +CONFIG_USB=y | |
128 | +CONFIG_USB_GADGET=y | |
129 | +CONFIG_DM_USB=y | |
130 | + | |
131 | +CONFIG_USB_GADGET_MANUFACTURER="FSL" | |
132 | +CONFIG_USB_GADGET_VENDOR_NUM=0x0525 | |
133 | +CONFIG_USB_GADGET_PRODUCT_NUM=0xa4a5 | |
134 | +CONFIG_USB_GADGET_DOWNLOAD=y | |
135 | +CONFIG_USB_XHCI_HCD=y | |
136 | +CONFIG_USB_XHCI_IMX8M=y | |
137 | +CONFIG_USB_XHCI_DWC3=y | |
138 | +CONFIG_USB_DWC3=y | |
139 | +CONFIG_USB_DWC3_GADGET=y | |
140 | + | |
141 | +CONFIG_OF_BOARD_SETUP=y | |
142 | + | |
143 | +CONFIG_REGMAP=y | |
144 | +CONFIG_SYSCON=y | |
145 | +CONFIG_VIDEO_IMX_LCDIFV3=y | |
146 | +CONFIG_VIDEO_IMX_SEC_DSI=y | |
147 | +CONFIG_DM_VIDEO=y | |
148 | +CONFIG_VIDEO_LCD_RAYDIUM_RM67191=y | |
149 | +CONFIG_VIDEO_ADV7535=y | |
150 | +CONFIG_SYS_WHITE_ON_BLACK=y | |
151 | + | |
152 | +CONFIG_LZ4=y | |
153 | +CONFIG_BCB_SUPPORT=y | |
154 | +CONFIG_ANDROID_RECOVERY=y | |
155 | +CONFIG_SUPPORT_RAW_INITRD=y | |
156 | +CONFIG_FLASH_MCUFIRMWARE_SUPPORT=y | |
157 | +CONFIG_FSL_FASTBOOT=y | |
158 | +CONFIG_FASTBOOT_LOCK=y | |
159 | +CONFIG_CMD_BOOTA=y | |
160 | +CONFIG_LIBAVB=y | |
161 | +CONFIG_AVB_SUPPORT=y | |
162 | +CONFIG_APPEND_BOOTARGS=y | |
163 | +CONFIG_SPL_MMC_SUPPORT=y | |
164 | +CONFIG_AVB_WARNING_LOGO=y | |
165 | +CONFIG_AVB_WARNING_LOGO_COLS=0x320 | |
166 | +CONFIG_AVB_WARNING_LOGO_ROWS=0xc0 | |
167 | +CONFIG_VIRTUAL_AB_SUPPORT=y | |
168 | +CONFIG_IMX8M_VDD_SOC_850MV=y | |
169 | +CONFIG_IMX8M_LPDDR4_FREQ0_2400MTS=y | |
170 | + | |
171 | +CONFIG_CMD_MMC_RPMB=y | |
172 | +CONFIG_SUPPORT_EMMC_RPMB=y | |
173 | +CONFIG_IMX_TRUSTY_OS=y | |
174 | +CONFIG_TRUSTY_UNLOCK_PERMISSION=y | |
175 | +CONFIG_LOAD_KEY_FROM_RPMB=y | |
176 | +CONFIG_ID_ATTESTATION=y |
configs/imx8mp_evk_android_trusty_secure_unlock_defconfig
configs/imx8mq_evk_android_trusty_defconfig
configs/imx8mq_evk_android_trusty_dual_defconfig
configs/imx8mq_evk_android_trusty_secure_unlock_defconfig
configs/imx8qm_mek_android_hdmi_defconfig
configs/imx8qm_mek_android_trusty_defconfig
configs/imx8qm_mek_android_trusty_secure_unlock_defconfig
configs/imx8qm_mek_androidauto2_trusty_defconfig
configs/imx8qm_mek_androidauto2_trusty_md_defconfig
configs/imx8qm_mek_androidauto_trusty_defconfig
configs/imx8qm_mek_androidauto_trusty_secure_unlock_defconfig
configs/imx8qxp_mek_android_trusty_defconfig
configs/imx8qxp_mek_android_trusty_secure_unlock_defconfig
configs/imx8qxp_mek_androidauto2_trusty_defconfig
configs/imx8qxp_mek_androidauto_trusty_defconfig
configs/imx8qxp_mek_androidauto_trusty_secure_unlock_defconfig
disk/part_efi.c
... | ... | @@ -333,6 +333,62 @@ |
333 | 333 | return 0; |
334 | 334 | } |
335 | 335 | |
336 | +#if defined(CONFIG_DUAL_BOOTLOADER) && defined(CONFIG_SPL_BUILD) | |
337 | +int part_get_info_efi_by_name(struct blk_desc *dev_desc, const char *name, | |
338 | + disk_partition_t *info) | |
339 | +{ | |
340 | + ALLOC_CACHE_ALIGN_BUFFER_PAD(gpt_header, gpt_head, 1, dev_desc->blksz); | |
341 | + /* We don't free gpt_pte because the memory is allocated at | |
342 | + * CONFIG_SYS_SPL_PTE_RAM_BASE due to the limited memory at | |
343 | + * SPL stage. | |
344 | + */ | |
345 | + gpt_entry *gpt_pte = NULL; | |
346 | + int i = 0; | |
347 | + | |
348 | + if (name == NULL) { | |
349 | + printf("%s: Invalid Argument(s)\n", __func__); | |
350 | + return -1; | |
351 | + } | |
352 | + | |
353 | + /* This function validates AND fills in the GPT header and PTE */ | |
354 | + if (find_valid_gpt(dev_desc, gpt_head, &gpt_pte) != 1) | |
355 | + return -1; | |
356 | + | |
357 | + /* Search PTE to find matched partition. */ | |
358 | + for (i = 0; i < le32_to_cpu(gpt_head->num_partition_entries); i++) { | |
359 | + if (is_pte_valid(&gpt_pte[i]) && | |
360 | + strcmp(name, print_efiname(&gpt_pte[i])) == 0) { | |
361 | + /* Matched partition found, copy it. */ | |
362 | + /* The 'lbaint_t' casting may limit the maximum disk size to 2 TB */ | |
363 | + info->start = (lbaint_t)le64_to_cpu(gpt_pte[i].starting_lba); | |
364 | + /* The ending LBA is inclusive, to calculate size, add 1 to it */ | |
365 | + info->size = (lbaint_t)le64_to_cpu(gpt_pte[i].ending_lba) + 1 | |
366 | + - info->start; | |
367 | + info->blksz = dev_desc->blksz; | |
368 | + | |
369 | + snprintf((char *)info->name, sizeof(info->name), "%s", name); | |
370 | + strcpy((char *)info->type, "U-Boot"); | |
371 | + info->bootable = is_bootable(&gpt_pte[i]); | |
372 | +#if CONFIG_IS_ENABLED(PARTITION_UUIDS) | |
373 | + uuid_bin_to_str(gpt_pte[i].unique_partition_guid.b, info->uuid, | |
374 | + UUID_STR_FORMAT_GUID); | |
375 | +#endif | |
376 | +#ifdef CONFIG_PARTITION_TYPE_GUID | |
377 | + uuid_bin_to_str(gpt_pte[i].partition_type_guid.b, | |
378 | + info->type_guid, UUID_STR_FORMAT_GUID); | |
379 | +#endif | |
380 | + | |
381 | + debug("%s: start 0x" LBAF ", size 0x" LBAF ", name %s\n", __func__, | |
382 | + info->start, info->size, info->name); | |
383 | + | |
384 | + return i; | |
385 | + } | |
386 | + } | |
387 | + | |
388 | + return -1; | |
389 | +} | |
390 | +#endif /* CONFIG_DUAL_BOOTLOADER && CONFIG_SPL_BUILD */ | |
391 | + | |
336 | 392 | static int part_test_efi(struct blk_desc *dev_desc) |
337 | 393 | { |
338 | 394 | ALLOC_CACHE_ALIGN_BUFFER_PAD(legacy_mbr, legacymbr, 1, dev_desc->blksz); |
drivers/ddr/imx/imx8m/Kconfig
... | ... | @@ -39,5 +39,13 @@ |
39 | 39 | help |
40 | 40 | Select this config if you want to use inline ecc feature for |
41 | 41 | imx8mp-evk board. |
42 | + | |
43 | +config IMX8M_VDD_SOC_850MV | |
44 | + bool "imx8mp change the vdd_soc voltage to 850mv" | |
45 | + depends on IMX8MP | |
46 | + | |
47 | +config IMX8M_LPDDR4_FREQ0_2400MTS | |
48 | + bool "imx8m PDDR4 freq0 change from 4000MTS to 2400MTS" | |
49 | + | |
42 | 50 | endmenu |
drivers/fastboot/fb_fsl/fb_fsl_command.c
... | ... | @@ -664,6 +664,37 @@ |
664 | 664 | strcpy(response, "OKAY"); |
665 | 665 | } |
666 | 666 | } |
667 | +#ifdef CONFIG_ID_ATTESTATION | |
668 | + else if (endswith(cmd, FASTBOOT_APPEND_ATTESTATION_ID)) { | |
669 | + if (trusty_append_attestation_id(ATTESTATION_ID_BRAND, strlen(ATTESTATION_ID_BRAND))) { | |
670 | + printf("Error append ATTESTATION_ID_BRAND failed!\n"); | |
671 | + strcpy(response, "FAILAppend ATTESTATION_ID_BRAND failed!"); | |
672 | + } else if (trusty_append_attestation_id(ATTESTATION_ID_DEVICE, strlen(ATTESTATION_ID_DEVICE))) { | |
673 | + printf("Error append ATTESTATION_ID_DEVICE failed!\n"); | |
674 | + strcpy(response, "FAILAppend ATTESTATION_ID_DEVICE failed!"); | |
675 | + } else if (trusty_append_attestation_id(CONFIG_ATTESTATION_ID_PRODUCT, strlen(CONFIG_ATTESTATION_ID_PRODUCT))) { | |
676 | + printf("Error append ATTESTATION_ID_PRODUCT failed!\n"); | |
677 | + strcpy(response, "FAILAppend ATTESTATION_ID_PRODUCT failed!"); | |
678 | + } else if (trusty_append_attestation_id(ATTESTATION_ID_MANUFACTURER, strlen(ATTESTATION_ID_MANUFACTURER))) { | |
679 | + printf("Error append ATTESTATION_ID_MANUFACTURER failed!\n"); | |
680 | + strcpy(response, "FAILAppend ATTESTATION_ID_MANUFACTURER failed!"); | |
681 | + } else if (trusty_append_attestation_id(ATTESTATION_ID_MODEL, strlen(ATTESTATION_ID_MODEL))) { | |
682 | + printf("Error append ATTESTATION_ID_MODEL failed!\n"); | |
683 | + strcpy(response, "FAILAppend ATTESTATION_ID_MODEL failed!"); | |
684 | + } else { | |
685 | + char *serial = get_serial(); | |
686 | + | |
687 | + if (!serial) { | |
688 | + printf("Error Failed to append the serial number!\n"); | |
689 | + strcpy(response, "FAIL Failed to append the serial number!"); | |
690 | + } else if (trusty_append_attestation_id(serial, 16)) { | |
691 | + printf("Error Failed to append the serial number!\n"); | |
692 | + strcpy(response, "FAILFailed to append the serial number!"); | |
693 | + } else | |
694 | + strcpy(response, "OKAY"); | |
695 | + } | |
696 | + } | |
697 | +#endif | |
667 | 698 | #ifndef CONFIG_AVB_ATX |
668 | 699 | else if (endswith(cmd, FASTBOOT_SET_RPMB_KEY)) { |
669 | 700 | if (fastboot_set_rpmb_key(fastboot_buf_addr, fastboot_bytes_received)) { |
drivers/fastboot/fb_fsl/fb_fsl_common.c
... | ... | @@ -182,9 +182,19 @@ |
182 | 182 | } else if (is_imx8qm()) { |
183 | 183 | if (!env_get("soc_type")) |
184 | 184 | env_set("soc_type", "imx8qm"); |
185 | + if (is_soc_rev(CHIP_REV_A)) | |
186 | + env_set("soc_rev", "reva"); | |
187 | + else if (is_soc_rev(CHIP_REV_B)) | |
188 | + env_set("soc_rev", "revb"); | |
185 | 189 | } else if (is_imx8qxp()) { |
186 | 190 | if (!env_get("soc_type")) |
187 | 191 | env_set("soc_type", "imx8qxp"); |
192 | + if (is_soc_rev(CHIP_REV_A)) | |
193 | + env_set("soc_rev", "reva"); | |
194 | + else if (is_soc_rev(CHIP_REV_B)) | |
195 | + env_set("soc_rev", "revb"); | |
196 | + else if (is_soc_rev(CHIP_REV_C)) | |
197 | + env_set("soc_rev", "revc"); | |
188 | 198 | } else if (is_imx8mq()) { |
189 | 199 | if (!env_get("soc_type")) |
190 | 200 | env_set("soc_type", "imx8mq"); |
drivers/watchdog/imx_watchdog.c
include/configs/imx8mm_evk_android.h
... | ... | @@ -56,6 +56,18 @@ |
56 | 56 | #define KEYSLOT_HWPARTITION_ID 2 |
57 | 57 | #define KEYSLOT_BLKS 0x1FFF |
58 | 58 | #define NS_ARCH_ARM64 1 |
59 | + | |
60 | +#ifdef CONFIG_ID_ATTESTATION | |
61 | +#define ATTESTATION_ID_BRAND "Android" | |
62 | +#define ATTESTATION_ID_DEVICE "evk_8mm" | |
63 | +#define ATTESTATION_ID_MANUFACTURER "nxp" | |
64 | +#define ATTESTATION_ID_MODEL "EVK_8MM" | |
65 | +#ifdef CONFIG_ATTESTATION_ID_PRODUCT | |
66 | +#undef CONFIG_ATTESTATION_ID_PRODUCT | |
67 | +#endif | |
68 | +#define CONFIG_ATTESTATION_ID_PRODUCT "evk_8mm" | |
69 | +#endif | |
70 | + | |
59 | 71 | #endif |
60 | 72 | |
61 | 73 | /* Enable CONFIG_ANDROID_LOW_MEMORY to config 1GB ddr */ |
include/configs/imx8mn_evk_android.h
... | ... | @@ -56,6 +56,18 @@ |
56 | 56 | #define KEYSLOT_HWPARTITION_ID 2 |
57 | 57 | #define KEYSLOT_BLKS 0x1FFF |
58 | 58 | #define NS_ARCH_ARM64 1 |
59 | + | |
60 | +#ifdef CONFIG_ID_ATTESTATION | |
61 | +#define ATTESTATION_ID_BRAND "Android" | |
62 | +#define ATTESTATION_ID_DEVICE "evk_8mn" | |
63 | +#define ATTESTATION_ID_MANUFACTURER "nxp" | |
64 | +#define ATTESTATION_ID_MODEL "EVK_8MN" | |
65 | +#ifdef CONFIG_ATTESTATION_ID_PRODUCT | |
66 | +#undef CONFIG_ATTESTATION_ID_PRODUCT | |
67 | +#endif | |
68 | +#define CONFIG_ATTESTATION_ID_PRODUCT "evk_8mn" | |
69 | +#endif | |
70 | + | |
59 | 71 | #endif |
60 | 72 | |
61 | 73 | #endif /* IMX8MN_EVK_ANDROID_H */ |
include/configs/imx8mp_evk_android.h
... | ... | @@ -56,6 +56,18 @@ |
56 | 56 | #define KEYSLOT_HWPARTITION_ID 2 |
57 | 57 | #define KEYSLOT_BLKS 0x1FFF |
58 | 58 | #define NS_ARCH_ARM64 1 |
59 | + | |
60 | +#ifdef CONFIG_ID_ATTESTATION | |
61 | +#define ATTESTATION_ID_BRAND "Android" | |
62 | +#define ATTESTATION_ID_DEVICE "evk_8mp" | |
63 | +#define ATTESTATION_ID_MANUFACTURER "nxp" | |
64 | +#define ATTESTATION_ID_MODEL "EVK_8MP" | |
65 | +#ifdef CONFIG_ATTESTATION_ID_PRODUCT | |
66 | +#undef CONFIG_ATTESTATION_ID_PRODUCT | |
67 | +#endif | |
68 | +#define CONFIG_ATTESTATION_ID_PRODUCT "evk_8mp" | |
69 | +#endif | |
70 | + | |
59 | 71 | #endif |
60 | 72 | |
61 | 73 | #endif /* IMX8MP_EVK_ANDROID_H */ |
include/configs/imx8mq_evk_android.h
... | ... | @@ -56,6 +56,18 @@ |
56 | 56 | #define KEYSLOT_HWPARTITION_ID 2 |
57 | 57 | #define KEYSLOT_BLKS 0x1FFF |
58 | 58 | #define NS_ARCH_ARM64 1 |
59 | + | |
60 | +#ifdef CONFIG_ID_ATTESTATION | |
61 | +#define ATTESTATION_ID_BRAND "Android" | |
62 | +#define ATTESTATION_ID_DEVICE "evk_8mq" | |
63 | +#define ATTESTATION_ID_MANUFACTURER "nxp" | |
64 | +#define ATTESTATION_ID_MODEL "EVK_8MQ" | |
65 | +#ifdef CONFIG_ATTESTATION_ID_PRODUCT | |
66 | +#undef CONFIG_ATTESTATION_ID_PRODUCT | |
67 | +#endif | |
68 | +#define CONFIG_ATTESTATION_ID_PRODUCT "evk_8mq" | |
69 | +#endif | |
70 | + | |
59 | 71 | #endif |
60 | 72 | |
61 | 73 | #endif /* IMX8MQ_EVK_ANDROID_H */ |
include/configs/imx8qm_mek_android.h
... | ... | @@ -42,6 +42,18 @@ |
42 | 42 | #define CONFIG_SPL_CRYPTO_SUPPORT |
43 | 43 | #define CONFIG_SYS_FSL_SEC_LE |
44 | 44 | #endif |
45 | + | |
46 | +#ifdef CONFIG_ID_ATTESTATION | |
47 | +#define ATTESTATION_ID_BRAND "Android" | |
48 | +#define ATTESTATION_ID_DEVICE "mek_8q" | |
49 | +#define ATTESTATION_ID_MANUFACTURER "nxp" | |
50 | +#define ATTESTATION_ID_MODEL "MEK-MX8Q" | |
51 | +#ifdef CONFIG_ATTESTATION_ID_PRODUCT | |
52 | +#undef CONFIG_ATTESTATION_ID_PRODUCT | |
53 | +#endif | |
54 | +#define CONFIG_ATTESTATION_ID_PRODUCT "mek_8q" | |
55 | +#endif | |
56 | + | |
45 | 57 | #endif |
46 | 58 | |
47 | 59 | #endif /* IMX8QM_MEK_ANDROID_H */ |
include/configs/imx8qm_mek_android_auto.h
... | ... | @@ -65,6 +65,14 @@ |
65 | 65 | #define NS_ARCH_ARM64 1 |
66 | 66 | #define KEYSLOT_HWPARTITION_ID 2 |
67 | 67 | #define KEYSLOT_BLKS 0x3FFF |
68 | + | |
69 | +#ifdef CONFIG_ID_ATTESTATION | |
70 | +#define ATTESTATION_ID_BRAND "Android" | |
71 | +#define ATTESTATION_ID_DEVICE "mek_8q" | |
72 | +#define ATTESTATION_ID_MANUFACTURER "nxp" | |
73 | +#define ATTESTATION_ID_MODEL "MEK-MX8Q" | |
74 | +#endif | |
75 | + | |
68 | 76 | #endif |
69 | 77 | |
70 | 78 | #ifdef CONFIG_DUAL_BOOTLOADER |
include/configs/imx8qxp_mek_android.h
... | ... | @@ -40,6 +40,17 @@ |
40 | 40 | #define CONFIG_SYS_FSL_SEC_LE |
41 | 41 | #endif |
42 | 42 | |
43 | +#ifdef CONFIG_ID_ATTESTATION | |
44 | +#define ATTESTATION_ID_BRAND "Android" | |
45 | +#define ATTESTATION_ID_DEVICE "mek_8q" | |
46 | +#define ATTESTATION_ID_MANUFACTURER "nxp" | |
47 | +#define ATTESTATION_ID_MODEL "MEK-MX8Q" | |
48 | +#ifdef CONFIG_ATTESTATION_ID_PRODUCT | |
49 | +#undef CONFIG_ATTESTATION_ID_PRODUCT | |
50 | +#endif | |
51 | +#define CONFIG_ATTESTATION_ID_PRODUCT "mek_8q" | |
52 | +#endif | |
53 | + | |
43 | 54 | #endif |
44 | 55 | |
45 | 56 | #endif /* IMX8QXP_MEK_ANDROID_H */ |
include/configs/imx8qxp_mek_android_auto.h
... | ... | @@ -57,6 +57,14 @@ |
57 | 57 | #define AVB_RPMB |
58 | 58 | #define KEYSLOT_HWPARTITION_ID 2 |
59 | 59 | #define KEYSLOT_BLKS 0x3FFF |
60 | + | |
61 | +#ifdef CONFIG_ID_ATTESTATION | |
62 | +#define ATTESTATION_ID_BRAND "Android" | |
63 | +#define ATTESTATION_ID_DEVICE "mek_8q" | |
64 | +#define ATTESTATION_ID_MANUFACTURER "nxp" | |
65 | +#define ATTESTATION_ID_MODEL "MEK-MX8Q" | |
66 | +#endif | |
67 | + | |
60 | 68 | #endif |
61 | 69 | |
62 | 70 | #ifdef CONFIG_DUAL_BOOTLOADER |
include/fb_fsl.h
... | ... | @@ -103,6 +103,7 @@ |
103 | 103 | #define FASTBOOT_APPEND_EC_ATTESTATION_CERT_ENC "append-ec-atte-cert-enc" |
104 | 104 | #define FASTBOOT_GET_MPPUBK "get-mppubk" |
105 | 105 | #define FASTBOOT_GET_SERIAL_NUMBER "get-serial-number" |
106 | +#define FASTBOOT_APPEND_ATTESTATION_ID "append-device-id" | |
106 | 107 | #endif |
107 | 108 | |
108 | 109 | #ifdef CONFIG_ANDROID_THINGS_SUPPORT |
include/interface/keymaster/keymaster.h
... | ... | @@ -63,10 +63,11 @@ |
63 | 63 | KM_ATAP_SET_CA_RESPONSE_FINISH = (0x7000 << KEYMASTER_REQ_SHIFT), |
64 | 64 | KM_ATAP_READ_UUID = (0x8000 << KEYMASTER_REQ_SHIFT), |
65 | 65 | KM_SET_PRODUCT_ID = (0x9000 << KEYMASTER_REQ_SHIFT), |
66 | - KM_SET_ATTESTATION_KEY_ENC = (0xa000 << KEYMASTER_REQ_SHIFT), | |
67 | - KM_APPEND_ATTESTATION_CERT_CHAIN_ENC = (0xb000 << KEYMASTER_REQ_SHIFT), | |
68 | - KM_GET_MPPUBK = (0xc000 << KEYMASTER_REQ_SHIFT), | |
69 | - KM_VERIFY_SECURE_UNLOCK = (0xd000 << KEYMASTER_REQ_SHIFT) | |
66 | + KM_GET_MPPUBK = (0xb000 << KEYMASTER_REQ_SHIFT), | |
67 | + KM_APPEND_ATTESTATION_CERT_CHAIN_ENC = (0xc000 << KEYMASTER_REQ_SHIFT), | |
68 | + KM_SET_ATTESTATION_KEY_ENC = (0xd000 << KEYMASTER_REQ_SHIFT), | |
69 | + KM_VERIFY_SECURE_UNLOCK = (0xe000 << KEYMASTER_REQ_SHIFT), | |
70 | + KM_APPEND_ATTESTATION_ID = (0xf000 << KEYMASTER_REQ_SHIFT) | |
70 | 71 | }; |
71 | 72 | |
72 | 73 | typedef enum { |
... | ... | @@ -287,6 +288,10 @@ |
287 | 288 | const uint8_t *data; |
288 | 289 | } TRUSTY_ATTR_PACKED; |
289 | 290 | |
291 | +struct km_attestation_id_data { | |
292 | + uint32_t data_size; | |
293 | + const uint8_t *data; | |
294 | +} TRUSTY_ATTR_PACKED; | |
290 | 295 | /** |
291 | 296 | * km_raw_buffer - represents a single raw buffer |
292 | 297 | * |
include/part.h
... | ... | @@ -453,6 +453,11 @@ |
453 | 453 | */ |
454 | 454 | int get_disk_guid(struct blk_desc *dev_desc, char *guid); |
455 | 455 | |
456 | +#if defined(CONFIG_DUAL_BOOTLOADER) && defined(CONFIG_SPL_BUILD) | |
457 | +int part_get_info_efi_by_name(struct blk_desc *dev_desc, const char *name, | |
458 | + disk_partition_t *info); | |
459 | +#endif | |
460 | + | |
456 | 461 | #endif |
457 | 462 | |
458 | 463 | #if CONFIG_IS_ENABLED(DOS_PARTITION) |
include/trusty/keymaster.h
... | ... | @@ -169,5 +169,13 @@ |
169 | 169 | uint32_t credential_size, |
170 | 170 | uint8_t *serial, uint32_t serial_size); |
171 | 171 | |
172 | +/* | |
173 | + * trusty_append_attestation_id is called to set attestation Device ID. | |
174 | + * | |
175 | + * @ data: Device ID string | |
176 | + * @ data_size: Device ID size | |
177 | + * */ | |
178 | +int trusty_append_attestation_id(const char *data, uint32_t data_size); | |
179 | + | |
172 | 180 | #endif /* TRUSTY_KEYMASTER_H_ */ |
include/trusty/keymaster_serializable.h
... | ... | @@ -68,6 +68,14 @@ |
68 | 68 | uint8_t **out, uint32_t *out_size); |
69 | 69 | |
70 | 70 | /** |
71 | + * Serializes a km_attestation_id_data structure. On success, allocates |*out_size| | |
72 | + * bytes to |*out| and writes the serialized |data| to |*out|. Caller takes | |
73 | + * ownership of |*out|. Returns one of trusty_err. | |
74 | + */ | |
75 | +int km_attestation_id_data_serialize(const struct km_attestation_id_data *data, | |
76 | + uint8_t** out, uint32_t *out_size); | |
77 | + | |
78 | +/** | |
71 | 79 | * Serializes a km_secure_unlock_data structure. On success, allocates |*out_size| |
72 | 80 | * bytes to |*out| and writes the serialized |data| to |*out|. Caller takes |
73 | 81 | * ownership of |*out|. Returns one of trusty_err. |
lib/Kconfig
... | ... | @@ -393,6 +393,16 @@ |
393 | 393 | default n |
394 | 394 | depends on IMX_TRUSTY_OS |
395 | 395 | |
396 | +config ID_ATTESTATION | |
397 | + bool "Support device ID attestation" | |
398 | + default n | |
399 | + depends on IMX_TRUSTY_OS | |
400 | + | |
401 | +config ATTESTATION_ID_PRODUCT | |
402 | + string "Product name for ID attestation" | |
403 | + depends on IMX_TRUSTY_OS && ID_ATTESTATION | |
404 | + default SYS_CONFIG_NAME | |
405 | + | |
396 | 406 | endmenu |
397 | 407 | |
398 | 408 | menu "Hashing Support" |
lib/avb/fsl/fsl_bootctrl.c
... | ... | @@ -462,9 +462,6 @@ |
462 | 462 | |
463 | 463 | #define PARTITION_NAME_LEN 13 |
464 | 464 | #define PARTITION_BOOTLOADER "bootloader" |
465 | -#ifdef CONFIG_ANDROID_AUTO_SUPPORT | |
466 | -#define PARTITION_MISC_ID 11 | |
467 | -#endif | |
468 | 465 | |
469 | 466 | extern int mmc_switch(struct mmc *mmc, u8 set, u8 index, u8 value); |
470 | 467 | |
... | ... | @@ -486,11 +483,7 @@ |
486 | 483 | /* Save metadata if changed. */ |
487 | 484 | if (memcmp(ab_data, ab_data_orig, sizeof(struct bootloader_control)) != 0) { |
488 | 485 | /* Get misc partition info */ |
489 | -#ifdef CONFIG_ANDROID_AUTO_SUPPORT | |
490 | - if (part_get_info(dev_desc, PARTITION_MISC_ID, &info) == -1) { | |
491 | -#else | |
492 | - if (part_get_info_by_name(dev_desc, FASTBOOT_PARTITION_MISC, &info) == -1) { | |
493 | -#endif | |
486 | + if (part_get_info_efi_by_name(dev_desc, FASTBOOT_PARTITION_MISC, &info) == -1) { | |
494 | 487 | printf("Can't get partition info of partition: misc\n"); |
495 | 488 | return -1; |
496 | 489 | } |
... | ... | @@ -518,11 +511,7 @@ |
518 | 511 | struct bootloader_control serialized; |
519 | 512 | size_t num_bytes; |
520 | 513 | |
521 | -#ifdef CONFIG_ANDROID_AUTO_SUPPORT | |
522 | - if (part_get_info(dev_desc, PARTITION_MISC_ID, &info) == -1) { | |
523 | -#else | |
524 | - if (part_get_info_by_name(dev_desc, FASTBOOT_PARTITION_MISC, &info) == -1) { | |
525 | -#endif | |
514 | + if (part_get_info_efi_by_name(dev_desc, FASTBOOT_PARTITION_MISC, &info) == -1) { | |
526 | 515 | printf("Can't get partition info of partition: misc\n"); |
527 | 516 | return -1; |
528 | 517 | } else { |
529 | 518 | |
... | ... | @@ -887,10 +876,9 @@ |
887 | 876 | AvbOps* ops = ab_ops->ops; |
888 | 877 | AvbSlotVerifyData* slot_data = NULL; |
889 | 878 | AvbSlotVerifyData* data = NULL; |
890 | - AvbABFlowResult ret; | |
879 | + AvbABFlowResult ret = 0; | |
891 | 880 | struct bootloader_control ab_data, ab_data_orig; |
892 | 881 | AvbIOResult io_ret; |
893 | - bool saw_and_allowed_verification_error = false; | |
894 | 882 | AvbSlotVerifyResult verify_result; |
895 | 883 | bool set_slot_unbootable = false; |
896 | 884 | int target_slot, n; |
... | ... | @@ -959,8 +947,7 @@ |
959 | 947 | "AVB_SLOT_VERIFY_FLAGS_ALLOW_VERIFICATION_ERROR " |
960 | 948 | "is set.\n", |
961 | 949 | NULL); |
962 | - saw_and_allowed_verification_error = | |
963 | - true; | |
950 | + ret = AVB_AB_FLOW_RESULT_OK_WITH_VERIFICATION_ERROR; | |
964 | 951 | } else { |
965 | 952 | set_slot_unbootable = true; |
966 | 953 | } |
... | ... | @@ -1039,13 +1026,6 @@ |
1039 | 1026 | avb_assert(slot_data != NULL); |
1040 | 1027 | data = slot_data; |
1041 | 1028 | slot_data = NULL; |
1042 | - if (saw_and_allowed_verification_error) { | |
1043 | - avb_assert( | |
1044 | - flags & AVB_SLOT_VERIFY_FLAGS_ALLOW_VERIFICATION_ERROR); | |
1045 | - ret = AVB_AB_FLOW_RESULT_OK_WITH_VERIFICATION_ERROR; | |
1046 | - } else { | |
1047 | - ret = AVB_AB_FLOW_RESULT_OK; | |
1048 | - } | |
1049 | 1029 | |
1050 | 1030 | out: |
1051 | 1031 | io_ret = fsl_save_metadata_if_changed(ab_ops, &ab_data, &ab_data_orig); |
1052 | 1032 | |
... | ... | @@ -1211,11 +1191,10 @@ |
1211 | 1191 | AvbOps* ops = ab_ops->ops; |
1212 | 1192 | AvbSlotVerifyData* slot_data[2] = {NULL, NULL}; |
1213 | 1193 | AvbSlotVerifyData* data = NULL; |
1214 | - AvbABFlowResult ret; | |
1194 | + AvbABFlowResult ret = 0; | |
1215 | 1195 | struct bootloader_control ab_data, ab_data_orig; |
1216 | 1196 | size_t slot_index_to_boot, n; |
1217 | 1197 | AvbIOResult io_ret; |
1218 | - bool saw_and_allowed_verification_error = false; | |
1219 | 1198 | size_t target_slot; |
1220 | 1199 | AvbSlotVerifyResult verify_result; |
1221 | 1200 | bool set_slot_unbootable = false; |
1222 | 1201 | |
... | ... | @@ -1284,9 +1263,8 @@ |
1284 | 1263 | "AVB_SLOT_VERIFY_FLAGS_ALLOW_VERIFICATION_ERROR " |
1285 | 1264 | "is set.\n", |
1286 | 1265 | NULL); |
1287 | - saw_and_allowed_verification_error = | |
1288 | - true; | |
1289 | 1266 | slot_index_to_boot = target_slot; |
1267 | + ret = AVB_AB_FLOW_RESULT_OK_WITH_VERIFICATION_ERROR; | |
1290 | 1268 | n = 2; |
1291 | 1269 | } else { |
1292 | 1270 | set_slot_unbootable = true; |
... | ... | @@ -1374,13 +1352,6 @@ |
1374 | 1352 | avb_assert(slot_data[slot_index_to_boot] != NULL); |
1375 | 1353 | data = slot_data[slot_index_to_boot]; |
1376 | 1354 | slot_data[slot_index_to_boot] = NULL; |
1377 | - if (saw_and_allowed_verification_error) { | |
1378 | - avb_assert( | |
1379 | - flags & AVB_SLOT_VERIFY_FLAGS_ALLOW_VERIFICATION_ERROR); | |
1380 | - ret = AVB_AB_FLOW_RESULT_OK_WITH_VERIFICATION_ERROR; | |
1381 | - } else { | |
1382 | - ret = AVB_AB_FLOW_RESULT_OK; | |
1383 | - } | |
1384 | 1355 | |
1385 | 1356 | /* ... and decrement tries remaining, if applicable. */ |
1386 | 1357 | if (!ab_data.slot_info[slot_index_to_boot].successful_boot && |
lib/trusty/ql-tipc/keymaster.c
... | ... | @@ -580,4 +580,27 @@ |
580 | 580 | } |
581 | 581 | return rc; |
582 | 582 | } |
583 | + | |
584 | +int trusty_append_attestation_id(const char *data, uint32_t data_size) | |
585 | +{ | |
586 | + struct km_attestation_id_data attestation_id_data = { | |
587 | + .data_size = data_size, | |
588 | + .data = (uint8_t *)data, | |
589 | + }; | |
590 | + uint8_t *req = NULL; | |
591 | + uint32_t req_size = 0; | |
592 | + int rc = km_attestation_id_data_serialize(&attestation_id_data, &req, &req_size); | |
593 | + | |
594 | + if (rc < 0) { | |
595 | + trusty_error("failed (%d) to serialize request\n", rc); | |
596 | + goto end; | |
597 | + } | |
598 | + rc = km_do_tipc(KM_APPEND_ATTESTATION_ID, req, req_size, NULL, NULL); | |
599 | + | |
600 | +end: | |
601 | + if (req) { | |
602 | + trusty_free(req); | |
603 | + } | |
604 | + return rc; | |
605 | +} |
lib/trusty/ql-tipc/keymaster_serializable.c
... | ... | @@ -97,6 +97,23 @@ |
97 | 97 | return TRUSTY_ERR_NONE; |
98 | 98 | } |
99 | 99 | |
100 | +int km_attestation_id_data_serialize(const struct km_attestation_id_data *data, | |
101 | + uint8_t** out, uint32_t *out_size) | |
102 | +{ | |
103 | + if (!out || !data || !out_size) { | |
104 | + return TRUSTY_ERR_INVALID_ARGS; | |
105 | + } | |
106 | + *out_size = (sizeof(data->data_size) + data->data_size); | |
107 | + *out = trusty_calloc(*out_size, 1); | |
108 | + if (!*out) { | |
109 | + return TRUSTY_ERR_NO_MEMORY; | |
110 | + } | |
111 | + | |
112 | + append_sized_buf_to_buf(*out, data->data, data->data_size); | |
113 | + | |
114 | + return TRUSTY_ERR_NONE; | |
115 | +} | |
116 | + | |
100 | 117 | int km_secure_unlock_data_serialize(const struct km_secure_unlock_data *data, |
101 | 118 | uint8_t** out, uint32_t *out_size) |
102 | 119 | { |
tools/imximage.c
... | ... | @@ -529,7 +529,7 @@ |
529 | 529 | (uint32_t)fhdr_v2->self, 0, |
530 | 530 | (uint32_t)(fhdr_v2->csf - fhdr_v2->self)); |
531 | 531 | printf("DCD Blocks: 0x%08x 0x%08x 0x%08x\n", |
532 | - offs, CONFIG_IMX_DCD_ADDR, be16_to_cpu(dcdlen)); | |
532 | + CONFIG_IMX_DCD_ADDR, offs, be16_to_cpu(dcdlen)); | |
533 | 533 | } |
534 | 534 | } else { |
535 | 535 | imx_header_v2_t *next_hdr_v2; |