Commit 7353572ff55fa2766127a279353385ed5a8834fa

Authored by BJ DevOps Team

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
... ... @@ -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
... ... @@ -158,4 +158,5 @@
158 158 CONFIG_AVB_WARNING_LOGO_ROWS=0xc0
159 159 CONFIG_VIRTUAL_AB_SUPPORT=y
160 160 CONFIG_LOAD_KEY_FROM_RPMB=y
  161 +CONFIG_ID_ATTESTATION=y
configs/imx8mm_evk_android_trusty_dual_defconfig
... ... @@ -160,4 +160,5 @@
160 160 CONFIG_AVB_WARNING_LOGO_ROWS=0xc0
161 161 CONFIG_VIRTUAL_AB_SUPPORT=y
162 162 CONFIG_LOAD_KEY_FROM_RPMB=y
  163 +CONFIG_ID_ATTESTATION=y
configs/imx8mm_evk_android_trusty_secure_unlock_defconfig
... ... @@ -160,4 +160,5 @@
160 160 CONFIG_AVB_WARNING_LOGO_ROWS=0xc0
161 161 CONFIG_VIRTUAL_AB_SUPPORT=y
162 162 CONFIG_LOAD_KEY_FROM_RPMB=y
  163 +CONFIG_ID_ATTESTATION=y
configs/imx8mn_evk_android_trusty_defconfig
... ... @@ -158,4 +158,5 @@
158 158 CONFIG_AVB_WARNING_LOGO_ROWS=0xc0
159 159 CONFIG_VIRTUAL_AB_SUPPORT=y
160 160 CONFIG_LOAD_KEY_FROM_RPMB=y
  161 +CONFIG_ID_ATTESTATION=y
configs/imx8mn_evk_android_trusty_dual_defconfig
... ... @@ -160,4 +160,5 @@
160 160 CONFIG_AVB_WARNING_LOGO_ROWS=0xc0
161 161 CONFIG_VIRTUAL_AB_SUPPORT=y
162 162 CONFIG_LOAD_KEY_FROM_RPMB=y
  163 +CONFIG_ID_ATTESTATION=y
configs/imx8mn_evk_android_trusty_secure_unlock_defconfig
... ... @@ -160,4 +160,5 @@
160 160 CONFIG_AVB_WARNING_LOGO_ROWS=0xc0
161 161 CONFIG_VIRTUAL_AB_SUPPORT=y
162 162 CONFIG_LOAD_KEY_FROM_RPMB=y
  163 +CONFIG_ID_ATTESTATION=y
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
... ... @@ -170,4 +170,5 @@
170 170 CONFIG_AVB_WARNING_LOGO_ROWS=0xc0
171 171 CONFIG_VIRTUAL_AB_SUPPORT=y
172 172 CONFIG_LOAD_KEY_FROM_RPMB=y
  173 +CONFIG_ID_ATTESTATION=y
configs/imx8mp_evk_android_trusty_dual_defconfig
... ... @@ -172,4 +172,5 @@
172 172 CONFIG_AVB_WARNING_LOGO_ROWS=0xc0
173 173 CONFIG_VIRTUAL_AB_SUPPORT=y
174 174 CONFIG_LOAD_KEY_FROM_RPMB=y
  175 +CONFIG_ID_ATTESTATION=y
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
... ... @@ -172,4 +172,5 @@
172 172 CONFIG_AVB_WARNING_LOGO_ROWS=0xc0
173 173 CONFIG_VIRTUAL_AB_SUPPORT=y
174 174 CONFIG_LOAD_KEY_FROM_RPMB=y
  175 +CONFIG_ID_ATTESTATION=y
configs/imx8mq_evk_android_trusty_defconfig
... ... @@ -150,4 +150,5 @@
150 150 CONFIG_AVB_WARNING_LOGO_ROWS=0x60
151 151 CONFIG_VIRTUAL_AB_SUPPORT=y
152 152 CONFIG_LOAD_KEY_FROM_RPMB=y
  153 +CONFIG_ID_ATTESTATION=y
configs/imx8mq_evk_android_trusty_dual_defconfig
... ... @@ -152,4 +152,5 @@
152 152 CONFIG_AVB_WARNING_LOGO_ROWS=0x60
153 153 CONFIG_VIRTUAL_AB_SUPPORT=y
154 154 CONFIG_LOAD_KEY_FROM_RPMB=y
  155 +CONFIG_ID_ATTESTATION=y
configs/imx8mq_evk_android_trusty_secure_unlock_defconfig
... ... @@ -152,4 +152,5 @@
152 152 CONFIG_AVB_WARNING_LOGO_ROWS=0x60
153 153 CONFIG_VIRTUAL_AB_SUPPORT=y
154 154 CONFIG_LOAD_KEY_FROM_RPMB=y
  155 +CONFIG_ID_ATTESTATION=y
configs/imx8qm_mek_android_hdmi_defconfig
... ... @@ -183,6 +183,7 @@
183 183 CONFIG_AVB_SUPPORT=y
184 184 CONFIG_APPEND_BOOTARGS=y
185 185 CONFIG_IMX_LOAD_HDMI_FIMRWARE_TX=y
  186 +CONFIG_IMX_LOAD_HDMI_FIMRWARE_RX=y
186 187 CONFIG_AVB_WARNING_LOGO=y
187 188 CONFIG_AVB_WARNING_LOGO_COLS=0x1E0
188 189 CONFIG_AVB_WARNING_LOGO_ROWS=0x60
configs/imx8qm_mek_android_trusty_defconfig
... ... @@ -193,4 +193,5 @@
193 193 CONFIG_PSCI_BOARD_REBOOT=y
194 194 CONFIG_VIRTUAL_AB_SUPPORT=y
195 195 CONFIG_LOAD_KEY_FROM_RPMB=y
  196 +CONFIG_ID_ATTESTATION=y
configs/imx8qm_mek_android_trusty_secure_unlock_defconfig
... ... @@ -195,4 +195,5 @@
195 195 CONFIG_PSCI_BOARD_REBOOT=y
196 196 CONFIG_VIRTUAL_AB_SUPPORT=y
197 197 CONFIG_LOAD_KEY_FROM_RPMB=y
  198 +CONFIG_ID_ATTESTATION=y
configs/imx8qm_mek_androidauto2_trusty_defconfig
... ... @@ -176,4 +176,6 @@
176 176 CONFIG_SPL_LIBDISK_SUPPORT=y
177 177 CONFIG_PSCI_BOARD_REBOOT=y
178 178 CONFIG_VIRTUAL_AB_SUPPORT=y
  179 +CONFIG_ATTESTATION_ID_PRODUCT="mek_8q_car2"
  180 +CONFIG_ID_ATTESTATION=y
configs/imx8qm_mek_androidauto2_trusty_md_defconfig
... ... @@ -179,4 +179,6 @@
179 179 CONFIG_IMX_LOAD_HDMI_FIMRWARE_TX=y
180 180 CONFIG_PSCI_BOARD_REBOOT=y
181 181 CONFIG_VIRTUAL_AB_SUPPORT=y
  182 +CONFIG_ATTESTATION_ID_PRODUCT="mek_8q_car2"
  183 +CONFIG_ID_ATTESTATION=y
configs/imx8qm_mek_androidauto_trusty_defconfig
... ... @@ -177,4 +177,6 @@
177 177 CONFIG_SPL_LIBDISK_SUPPORT=y
178 178 CONFIG_PSCI_BOARD_REBOOT=y
179 179 CONFIG_LOAD_KEY_FROM_RPMB=y
  180 +CONFIG_ATTESTATION_ID_PRODUCT="mek_8q_car"
  181 +CONFIG_ID_ATTESTATION=y
configs/imx8qm_mek_androidauto_trusty_secure_unlock_defconfig
... ... @@ -179,4 +179,6 @@
179 179 CONFIG_AHAB_BOOT=y
180 180 CONFIG_PSCI_BOARD_REBOOT=y
181 181 CONFIG_LOAD_KEY_FROM_RPMB=y
  182 +CONFIG_ATTESTATION_ID_PRODUCT="mek_8q_car"
  183 +CONFIG_ID_ATTESTATION=y
configs/imx8qxp_mek_android_trusty_defconfig
... ... @@ -194,4 +194,5 @@
194 194 CONFIG_PSCI_BOARD_REBOOT=y
195 195 CONFIG_VIRTUAL_AB_SUPPORT=y
196 196 CONFIG_LOAD_KEY_FROM_RPMB=y
  197 +CONFIG_ID_ATTESTATION=y
configs/imx8qxp_mek_android_trusty_secure_unlock_defconfig
... ... @@ -196,4 +196,5 @@
196 196 CONFIG_PSCI_BOARD_REBOOT=y
197 197 CONFIG_VIRTUAL_AB_SUPPORT=y
198 198 CONFIG_LOAD_KEY_FROM_RPMB=y
  199 +CONFIG_ID_ATTESTATION=y
configs/imx8qxp_mek_androidauto2_trusty_defconfig
... ... @@ -186,4 +186,6 @@
186 186 CONFIG_SPL_LIBDISK_SUPPORT=y
187 187 CONFIG_PSCI_BOARD_REBOOT=y
188 188 CONFIG_VIRTUAL_AB_SUPPORT=y
  189 +CONFIG_ATTESTATION_ID_PRODUCT="mek_8q_car2"
  190 +CONFIG_ID_ATTESTATION=y
configs/imx8qxp_mek_androidauto_trusty_defconfig
... ... @@ -188,4 +188,6 @@
188 188 CONFIG_SPL_LIBDISK_SUPPORT=y
189 189 CONFIG_PSCI_BOARD_REBOOT=y
190 190 CONFIG_LOAD_KEY_FROM_RPMB=y
  191 +CONFIG_ATTESTATION_ID_PRODUCT="mek_8q_car"
  192 +CONFIG_ID_ATTESTATION=y
configs/imx8qxp_mek_androidauto_trusty_secure_unlock_defconfig
... ... @@ -190,4 +190,6 @@
190 190 CONFIG_AHAB_BOOT=y
191 191 CONFIG_PSCI_BOARD_REBOOT=y
192 192 CONFIG_LOAD_KEY_FROM_RPMB=y
  193 +CONFIG_ATTESTATION_ID_PRODUCT="mek_8q_car"
  194 +CONFIG_ID_ATTESTATION=y
... ... @@ -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
... ... @@ -44,7 +44,7 @@
44 44 {
45 45 struct watchdog_regs *wdog = (struct watchdog_regs *)WDOG1_BASE_ADDR;
46 46  
47   - imx_watchdog_expire_now(wdog, true);
  47 + imx_watchdog_expire_now(wdog, false);
48 48 }
49 49 #endif
50 50  
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
... ... @@ -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 *
... ... @@ -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.
... ... @@ -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 {
... ... @@ -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;