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>
This commit is contained in:
Ji Luo 2018-11-28 16:19:51 +08:00
parent 33a2b5d57a
commit fd421f74db
7 changed files with 146 additions and 4 deletions

View File

@ -40,6 +40,9 @@ config SYS_SOC
config SMC_FUSE
bool "Call fuse commands through SMC"
config IMX8_TRUSTY_XEN
bool "Support Trusty Xen feature"
choice
prompt "MX8 board select"
optional

View File

@ -1,6 +1,6 @@
// SPDX-License-Identifier: GPL-2.0+
/*
* Copyright 2018 NXP
* Copyright 2018-2019 NXP
*/
#include <common.h>
#include <spl.h>
@ -282,6 +282,15 @@ int mmc_load_image_parse_container(struct spl_image_info *spl_image,
*/
#if defined(CONFIG_IMX_TRUSTY_OS) && !defined(CONFIG_DUAL_BOOTLOADER)
ret = check_rpmb_blob(mmc);
#endif
#if defined(CONFIG_IMX8_TRUSTY_XEN)
struct mmc *rpmb_mmc;
rpmb_mmc = find_mmc_device(0);
if (ret = mmc_init(rpmb_mmc))
printf("mmc init failed %s\n", __func__);
else
ret = check_rpmb_blob(rpmb_mmc);
#endif
}
return ret;

View File

@ -9,6 +9,7 @@ CONFIG_SYS_MALLOC_F_LEN=0x2000
CONFIG_DM=y
CONFIG_DM_WARN=n
CONFIG_DM_DEVICE_REMOVE=n
CONFIG_IMX_TRUSTY_OS=y
CONFIG_DM_SERIAL=y
CONFIG_FSL_LPUART=n
@ -76,7 +77,7 @@ CONFIG_CMD_EXPORTENV=n
CONFIG_CMD_IMPORTENV=n
CONFIG_CMD_EDITENV=n
CONFIG_CMD_ENV_EXISTS=n
CONFIG_CMD_MEMORY=n
CONFIG_CMD_MEMORY=y
CONFIG_CMD_CRC32=n
CONFIG_CMD_DM=n
CONFIG_CMD_LOADB=n
@ -118,3 +119,6 @@ CONFIG_SPL_FIT=y
CONFIG_SPL_LOAD_FIT=y
CONFIG_SPL_MMC_SUPPORT=y
CONFIG_SPL_GPIO_SUPPORT=y
CONFIG_SPL_ENV_SUPPORT=y
CONFIG_SPL_LIBDISK_SUPPORT=y

View File

@ -0,0 +1,97 @@
CONFIG_ARM=y
CONFIG_ARCH_IMX8=y
CONFIG_DEFAULT_DEVICE_TREE="fsl-imx8qm-mek"
CONFIG_TARGET_IMX8QM_MEK=y
CONFIG_SYS_TEXT_BASE=0x80020000
CONFIG_CMD_IMPORTENV=n
CONFIG_SYS_MALLOC_F_LEN=0x2000
CONFIG_DM=y
CONFIG_CMD_CACHE=y
CONFIG_DM_SERIAL=y
CONFIG_FSL_LPUART=y
CONFIG_OF_CONTROL=y
CONFIG_DM_I2C=y
# CONFIG_DM_I2C_COMPAT is not set
CONFIG_SYS_I2C_IMX_LPI2C=y
CONFIG_CMD_I2C=y
CONFIG_SPL=y
CONFIG_SPL_GPIO_SUPPORT=y
CONFIG_SPL_MMC_SUPPORT=y
CONFIG_FIT=y
CONFIG_SPL_LOAD_FIT=y
CONFIG_SPL_BOARD_INIT=y
CONFIG_SPL_TINY_MEMSET=y
CONFIG_SPL_OF_CONTROL=y
CONFIG_USB_XHCI_HCD=y
CONFIG_USB_XHCI_IMX8=y
CONFIG_DM_USB=y
CONFIG_USB=y
CONFIG_USB_TCPC=y
CONFIG_USB_GADGET=y
#CONFIG_CI_UDC=y
CONFIG_USB_GADGET_DOWNLOAD=y
CONFIG_USB_GADGET_MANUFACTURER="FSL"
CONFIG_USB_GADGET_VENDOR_NUM=0x0525
CONFIG_USB_GADGET_PRODUCT_NUM=0xa4a5
CONFIG_USB_CDNS3=y
CONFIG_USB_CDNS3_GADGET=y
CONFIG_USB_GADGET_DUALSPEED=y
CONFIG_CMD_GPIO=y
CONFIG_DM_GPIO=y
CONFIG_DM_PCA953X=y
CONFIG_BOOTDELAY=3
CONFIG_IMX_BOOTAUX=y
CONFIG_FS_FAT=y
CONFIG_CMD_FAT=y
CONFIG_CMD_MMC=y
CONFIG_DM_MMC=y
CONFIG_MMC_IO_VOLTAGE=y
CONFIG_MMC_UHS_SUPPORT=y
CONFIG_MMC_HS400_SUPPORT=y
CONFIG_EFI_PARTITION=y
CONFIG_FSL_FSPI=y
CONFIG_DM_SPI=y
CONFIG_DM_SPI_FLASH=y
CONFIG_SPI_FLASH=y
CONFIG_SPI_FLASH_4BYTES_ADDR=y
CONFIG_SPI_FLASH_STMICRO=y
CONFIG_CMD_SF=y
CONFIG_CMD_PING=y
CONFIG_CMD_DHCP=y
CONFIG_CMD_MII=y
CONFIG_DM_ETH=y
# CONFIG_EFI_LOADER is not set
CONFIG_DM_REGULATOR=y
CONFIG_DM_REGULATOR_FIXED=y
CONFIG_DM_REGULATOR_GPIO=y
CONFIG_VIDEO=y
CONFIG_VIDEO_IMX_HDP_LOAD=y
CONFIG_PINCTRL=y
CONFIG_PINCTRL_IMX8=y
CONFIG_POWER_DOMAIN=y
CONFIG_IMX8_POWER_DOMAIN=y
CONFIG_DM_THERMAL=y
CONFIG_IMX_SC_THERMAL=y
CONFIG_ENV_IS_IN_MMC=y
CONFIG_SMC_FUSE=y
CONFIG_CMD_MEMTEST=y
CONFIG_IMX8_TRUSTY_XEN=y
CONFIG_SPL_ENV_SUPPORT=y
CONFIG_SPL_LIBDISK_SUPPORT=y

View File

@ -437,6 +437,8 @@
#include "imx8qm_mek_android.h"
#elif defined (CONFIG_ANDROID_AUTO_SUPPORT)
#include "imx8qm_mek_android_auto.h"
#elif defined (CONFIG_IMX8_TRUSTY_XEN)
#include "imx8qm_mek_trusty_xen.h"
#endif
#endif /* __IMX8QM_MEK_H */

View File

@ -0,0 +1,23 @@
/*
* Copyright 2019 NXP
*
* SPDX-License-Identifier: GPL-2.0+
*/
#ifndef __IMX8QM_MEK_TRUSTY_XEN_H
#define __IMX8QM_MEK_TRUSTY_XEN_H
#ifdef CONFIG_SPL_BUILD
#undef CONFIG_BLK
#define CONFIG_AVB_SUPPORT
#define AVB_RPMB
#define KEYSLOT_HWPARTITION_ID 2
#define KEYSLOT_BLKS 0x3FFF
#define AVB_AB_I_UNDERSTAND_LIBAVB_AB_IS_DEPRECATED
#define CONFIG_SUPPORT_EMMC_RPMB
#endif
#endif

View File

@ -1,6 +1,6 @@
/*
* Copyright (C) 2016 Freescale Semiconductor, Inc.
* Copyright 2017 NXP
* Copyright 2017-2019 NXP
* SPDX-License-Identifier: GPL-2.0+
*
*/
@ -71,6 +71,9 @@ int read_keyslot_package(struct keyslot_package* kp) {
struct blk_desc *dev_desc = NULL;
struct mmc *mmc;
#ifdef CONFIG_IMX8_TRUSTY_XEN
mmcc = 0;
#endif
mmc = find_mmc_device(mmcc);
if (!mmc) {
printf("boota: cannot find '%d' mmc device\n", mmcc);
@ -702,7 +705,8 @@ int rbkidx_erase(void) {
#endif /* AVB_RPMB */
#ifdef CONFIG_SPL_BUILD
#if defined(CONFIG_IMX_TRUSTY_OS) && !defined(CONFIG_AVB_ATX)
#if defined (CONFIG_IMX8_TRUSTY_XEN) || \
(defined(CONFIG_IMX_TRUSTY_OS) && !defined(CONFIG_AVB_ATX))
int check_rpmb_blob(struct mmc *mmc)
{
int ret = 0;