Commit fd421f74dbd570dba8233f84780a3a0e91e2101e
1 parent
33a2b5d57a
Exists in
smarc_8mm-imx_v2018.03_4.14.98_2.0.0_ga
and in
4 other branches
MA-14051 Enable trusty for imx8q xen
Open configs to add trusty os support for imx8q xen build. The rpmb keyslot package must be checked and copied to secure memory before trusty os boot. Change-Id: I66201783fa8439f2685377c10f257f064057dcfa Signed-off-by: Ji Luo <ji.luo@nxp.com>
Showing 7 changed files with 146 additions and 4 deletions Side-by-side Diff
arch/arm/mach-imx/imx8/Kconfig
arch/arm/mach-imx/imx8/parser.c
1 | 1 | // SPDX-License-Identifier: GPL-2.0+ |
2 | 2 | /* |
3 | - * Copyright 2018 NXP | |
3 | + * Copyright 2018-2019 NXP | |
4 | 4 | */ |
5 | 5 | #include <common.h> |
6 | 6 | #include <spl.h> |
... | ... | @@ -282,6 +282,15 @@ |
282 | 282 | */ |
283 | 283 | #if defined(CONFIG_IMX_TRUSTY_OS) && !defined(CONFIG_DUAL_BOOTLOADER) |
284 | 284 | ret = check_rpmb_blob(mmc); |
285 | +#endif | |
286 | +#if defined(CONFIG_IMX8_TRUSTY_XEN) | |
287 | + struct mmc *rpmb_mmc; | |
288 | + | |
289 | + rpmb_mmc = find_mmc_device(0); | |
290 | + if (ret = mmc_init(rpmb_mmc)) | |
291 | + printf("mmc init failed %s\n", __func__); | |
292 | + else | |
293 | + ret = check_rpmb_blob(rpmb_mmc); | |
285 | 294 | #endif |
286 | 295 | } |
287 | 296 | return ret; |
configs/imx8qm_mek_androidauto_xen_defconfig
... | ... | @@ -9,6 +9,7 @@ |
9 | 9 | CONFIG_DM=y |
10 | 10 | CONFIG_DM_WARN=n |
11 | 11 | CONFIG_DM_DEVICE_REMOVE=n |
12 | +CONFIG_IMX_TRUSTY_OS=y | |
12 | 13 | |
13 | 14 | CONFIG_DM_SERIAL=y |
14 | 15 | CONFIG_FSL_LPUART=n |
... | ... | @@ -76,7 +77,7 @@ |
76 | 77 | CONFIG_CMD_IMPORTENV=n |
77 | 78 | CONFIG_CMD_EDITENV=n |
78 | 79 | CONFIG_CMD_ENV_EXISTS=n |
79 | -CONFIG_CMD_MEMORY=n | |
80 | +CONFIG_CMD_MEMORY=y | |
80 | 81 | CONFIG_CMD_CRC32=n |
81 | 82 | CONFIG_CMD_DM=n |
82 | 83 | CONFIG_CMD_LOADB=n |
... | ... | @@ -118,4 +119,7 @@ |
118 | 119 | CONFIG_SPL_LOAD_FIT=y |
119 | 120 | CONFIG_SPL_MMC_SUPPORT=y |
120 | 121 | CONFIG_SPL_GPIO_SUPPORT=y |
122 | + | |
123 | +CONFIG_SPL_ENV_SUPPORT=y | |
124 | +CONFIG_SPL_LIBDISK_SUPPORT=y |
configs/imx8qm_mek_spl_trusty_defconfig
1 | +CONFIG_ARM=y | |
2 | +CONFIG_ARCH_IMX8=y | |
3 | +CONFIG_DEFAULT_DEVICE_TREE="fsl-imx8qm-mek" | |
4 | +CONFIG_TARGET_IMX8QM_MEK=y | |
5 | +CONFIG_SYS_TEXT_BASE=0x80020000 | |
6 | +CONFIG_CMD_IMPORTENV=n | |
7 | +CONFIG_SYS_MALLOC_F_LEN=0x2000 | |
8 | +CONFIG_DM=y | |
9 | +CONFIG_CMD_CACHE=y | |
10 | + | |
11 | +CONFIG_DM_SERIAL=y | |
12 | +CONFIG_FSL_LPUART=y | |
13 | +CONFIG_OF_CONTROL=y | |
14 | +CONFIG_DM_I2C=y | |
15 | +# CONFIG_DM_I2C_COMPAT is not set | |
16 | +CONFIG_SYS_I2C_IMX_LPI2C=y | |
17 | +CONFIG_CMD_I2C=y | |
18 | + | |
19 | +CONFIG_SPL=y | |
20 | +CONFIG_SPL_GPIO_SUPPORT=y | |
21 | +CONFIG_SPL_MMC_SUPPORT=y | |
22 | +CONFIG_FIT=y | |
23 | +CONFIG_SPL_LOAD_FIT=y | |
24 | +CONFIG_SPL_BOARD_INIT=y | |
25 | +CONFIG_SPL_TINY_MEMSET=y | |
26 | +CONFIG_SPL_OF_CONTROL=y | |
27 | + | |
28 | +CONFIG_USB_XHCI_HCD=y | |
29 | +CONFIG_USB_XHCI_IMX8=y | |
30 | + | |
31 | +CONFIG_DM_USB=y | |
32 | + | |
33 | +CONFIG_USB=y | |
34 | +CONFIG_USB_TCPC=y | |
35 | + | |
36 | +CONFIG_USB_GADGET=y | |
37 | +#CONFIG_CI_UDC=y | |
38 | +CONFIG_USB_GADGET_DOWNLOAD=y | |
39 | +CONFIG_USB_GADGET_MANUFACTURER="FSL" | |
40 | +CONFIG_USB_GADGET_VENDOR_NUM=0x0525 | |
41 | +CONFIG_USB_GADGET_PRODUCT_NUM=0xa4a5 | |
42 | + | |
43 | +CONFIG_USB_CDNS3=y | |
44 | +CONFIG_USB_CDNS3_GADGET=y | |
45 | +CONFIG_USB_GADGET_DUALSPEED=y | |
46 | + | |
47 | +CONFIG_CMD_GPIO=y | |
48 | +CONFIG_DM_GPIO=y | |
49 | +CONFIG_DM_PCA953X=y | |
50 | +CONFIG_BOOTDELAY=3 | |
51 | +CONFIG_IMX_BOOTAUX=y | |
52 | +CONFIG_FS_FAT=y | |
53 | +CONFIG_CMD_FAT=y | |
54 | +CONFIG_CMD_MMC=y | |
55 | +CONFIG_DM_MMC=y | |
56 | +CONFIG_MMC_IO_VOLTAGE=y | |
57 | +CONFIG_MMC_UHS_SUPPORT=y | |
58 | +CONFIG_MMC_HS400_SUPPORT=y | |
59 | +CONFIG_EFI_PARTITION=y | |
60 | +CONFIG_FSL_FSPI=y | |
61 | +CONFIG_DM_SPI=y | |
62 | +CONFIG_DM_SPI_FLASH=y | |
63 | +CONFIG_SPI_FLASH=y | |
64 | +CONFIG_SPI_FLASH_4BYTES_ADDR=y | |
65 | +CONFIG_SPI_FLASH_STMICRO=y | |
66 | +CONFIG_CMD_SF=y | |
67 | + | |
68 | +CONFIG_CMD_PING=y | |
69 | +CONFIG_CMD_DHCP=y | |
70 | +CONFIG_CMD_MII=y | |
71 | +CONFIG_DM_ETH=y | |
72 | +# CONFIG_EFI_LOADER is not set | |
73 | + | |
74 | +CONFIG_DM_REGULATOR=y | |
75 | +CONFIG_DM_REGULATOR_FIXED=y | |
76 | +CONFIG_DM_REGULATOR_GPIO=y | |
77 | + | |
78 | +CONFIG_VIDEO=y | |
79 | +CONFIG_VIDEO_IMX_HDP_LOAD=y | |
80 | + | |
81 | +CONFIG_PINCTRL=y | |
82 | +CONFIG_PINCTRL_IMX8=y | |
83 | + | |
84 | +CONFIG_POWER_DOMAIN=y | |
85 | +CONFIG_IMX8_POWER_DOMAIN=y | |
86 | + | |
87 | +CONFIG_DM_THERMAL=y | |
88 | +CONFIG_IMX_SC_THERMAL=y | |
89 | + | |
90 | +CONFIG_ENV_IS_IN_MMC=y | |
91 | + | |
92 | +CONFIG_SMC_FUSE=y | |
93 | +CONFIG_CMD_MEMTEST=y | |
94 | +CONFIG_IMX8_TRUSTY_XEN=y | |
95 | + | |
96 | +CONFIG_SPL_ENV_SUPPORT=y | |
97 | +CONFIG_SPL_LIBDISK_SUPPORT=y |
include/configs/imx8qm_mek.h
... | ... | @@ -437,6 +437,8 @@ |
437 | 437 | #include "imx8qm_mek_android.h" |
438 | 438 | #elif defined (CONFIG_ANDROID_AUTO_SUPPORT) |
439 | 439 | #include "imx8qm_mek_android_auto.h" |
440 | +#elif defined (CONFIG_IMX8_TRUSTY_XEN) | |
441 | +#include "imx8qm_mek_trusty_xen.h" | |
440 | 442 | #endif |
441 | 443 | |
442 | 444 | #endif /* __IMX8QM_MEK_H */ |
include/configs/imx8qm_mek_trusty_xen.h
1 | +/* | |
2 | + * Copyright 2019 NXP | |
3 | + * | |
4 | + * SPDX-License-Identifier: GPL-2.0+ | |
5 | + */ | |
6 | + | |
7 | +#ifndef __IMX8QM_MEK_TRUSTY_XEN_H | |
8 | +#define __IMX8QM_MEK_TRUSTY_XEN_H | |
9 | + | |
10 | +#ifdef CONFIG_SPL_BUILD | |
11 | + | |
12 | +#undef CONFIG_BLK | |
13 | +#define CONFIG_AVB_SUPPORT | |
14 | +#define AVB_RPMB | |
15 | +#define KEYSLOT_HWPARTITION_ID 2 | |
16 | +#define KEYSLOT_BLKS 0x3FFF | |
17 | +#define AVB_AB_I_UNDERSTAND_LIBAVB_AB_IS_DEPRECATED | |
18 | + | |
19 | +#define CONFIG_SUPPORT_EMMC_RPMB | |
20 | + | |
21 | +#endif | |
22 | + | |
23 | +#endif |
lib/avb/fsl/fsl_avbkey.c
1 | 1 | /* |
2 | 2 | * Copyright (C) 2016 Freescale Semiconductor, Inc. |
3 | - * Copyright 2017 NXP | |
3 | + * Copyright 2017-2019 NXP | |
4 | 4 | * SPDX-License-Identifier: GPL-2.0+ |
5 | 5 | * |
6 | 6 | */ |
... | ... | @@ -71,6 +71,9 @@ |
71 | 71 | struct blk_desc *dev_desc = NULL; |
72 | 72 | |
73 | 73 | struct mmc *mmc; |
74 | +#ifdef CONFIG_IMX8_TRUSTY_XEN | |
75 | + mmcc = 0; | |
76 | +#endif | |
74 | 77 | mmc = find_mmc_device(mmcc); |
75 | 78 | if (!mmc) { |
76 | 79 | printf("boota: cannot find '%d' mmc device\n", mmcc); |
... | ... | @@ -702,7 +705,8 @@ |
702 | 705 | #endif /* AVB_RPMB */ |
703 | 706 | |
704 | 707 | #ifdef CONFIG_SPL_BUILD |
705 | -#if defined(CONFIG_IMX_TRUSTY_OS) && !defined(CONFIG_AVB_ATX) | |
708 | +#if defined (CONFIG_IMX8_TRUSTY_XEN) || \ | |
709 | + (defined(CONFIG_IMX_TRUSTY_OS) && !defined(CONFIG_AVB_ATX)) | |
706 | 710 | int check_rpmb_blob(struct mmc *mmc) |
707 | 711 | { |
708 | 712 | int ret = 0; |