[U-Boot] [PATCH 1/2] board: move ppa header address in board specific kconfig

Since, ppa firmware address is moved to board specific Kconfig, moving their respective headers also to the same Kconfig files.
Signed-off-by: Vinitha V Pillai vinitha.pillai@nxp.com
This patch depends on the following patches:
https://patchwork.ozlabs.org/patch/908676/ https://patchwork.ozlabs.org/patch/908089/
--- arch/arm/cpu/armv8/fsl-layerscape/Kconfig | 17 ------------- board/freescale/ls1012ardb/Kconfig | 6 +++++ board/freescale/ls1043aqds/Kconfig | 18 +++++++++++++ board/freescale/ls1043ardb/Kconfig | 21 ++++++++++++++++ board/freescale/ls1046aqds/Kconfig | 18 +++++++++++++ board/freescale/ls1046ardb/Kconfig | 21 ++++++++++++++++ board/freescale/ls1088a/Kconfig | 24 ++++++++++++++++++ board/freescale/ls2080aqds/Kconfig | 18 +++++++++++++ board/freescale/ls2080ardb/Kconfig | 42 +++++++++++++++++++++++++++++++ 9 files changed, 168 insertions(+), 17 deletions(-)
diff --git a/arch/arm/cpu/armv8/fsl-layerscape/Kconfig b/arch/arm/cpu/armv8/fsl-layerscape/Kconfig index 66d6465..2743d87 100644 --- a/arch/arm/cpu/armv8/fsl-layerscape/Kconfig +++ b/arch/arm/cpu/armv8/fsl-layerscape/Kconfig @@ -237,23 +237,6 @@ config SYS_LS_PPA_FW_IN_NAND
endchoice
-config SYS_LS_PPA_ESBC_ADDR - hex "hdr address of PPA firmware loading from" - depends on FSL_LS_PPA && CHAIN_OF_TRUST - default 0x60680000 if SYS_LS_PPA_FW_IN_XIP && ARCH_LS1043A - default 0x40680000 if SYS_LS_PPA_FW_IN_XIP && ARCH_LS1046A - default 0x40680000 if SYS_LS_PPA_FW_IN_XIP && ARCH_LS1012A - default 0x20680000 if SYS_LS_PPA_FW_IN_XIP && QSPI_BOOT && ARCH_LS2080A - default 0x580680000 if SYS_LS_PPA_FW_IN_XIP && ARCH_LS2080A - default 0x20680000 if SYS_LS_PPA_FW_IN_XIP && ARCH_LS1088A - default 0x680000 if SYS_LS_PPA_FW_IN_MMC - default 0x680000 if SYS_LS_PPA_FW_IN_NAND - help - If the PPA header firmware locate at XIP flash, such as NOR or - QSPI flash, this address is a directly memory-mapped. - If it is in a serial accessed flash, such as NAND and SD - card, it is a byte offset. - config LS_PPA_ESBC_HDR_SIZE hex "Length of PPA ESBC header" depends on FSL_LS_PPA && CHAIN_OF_TRUST && !SYS_LS_PPA_FW_IN_XIP diff --git a/board/freescale/ls1012ardb/Kconfig b/board/freescale/ls1012ardb/Kconfig index 0b873dd..4cd66bd 100644 --- a/board/freescale/ls1012ardb/Kconfig +++ b/board/freescale/ls1012ardb/Kconfig @@ -16,6 +16,12 @@ config SYS_LS_PPA_FW_ADDR hex "PPA Firmware Addr" default 0x40400000
+if CHAIN_OF_TRUST +config SYS_LS_PPA_ESBC_ADDR + hex "PPA Firmware HDR Addr" + default 0x40680000 +endif + if FSL_PFE
config BOARD_SPECIFIC_OPTIONS # dummy diff --git a/board/freescale/ls1043aqds/Kconfig b/board/freescale/ls1043aqds/Kconfig index 3c571aa..c3b660f 100644 --- a/board/freescale/ls1043aqds/Kconfig +++ b/board/freescale/ls1043aqds/Kconfig @@ -17,6 +17,12 @@ if SYS_LS_PPA_FW_IN_XIP config SYS_LS_PPA_FW_ADDR hex "PPA Firmware Addr" default 0x60400000 + +if CHAIN_OF_TRUST +config SYS_LS_PPA_ESBC_ADDR + hex "PPA Firmware HDR Addr" + default 0x60680000 +endif endif
if (SYS_LS_PPA_FW_IN_XIP && QSPI_BOOT) @@ -24,6 +30,12 @@ if (SYS_LS_PPA_FW_IN_XIP && QSPI_BOOT) config SYS_LS_PPA_FW_ADDR hex "PPA Firmware Addr" default 0x40400000 + +if CHAIN_OF_TRUST +config SYS_LS_PPA_ESBC_ADDR + hex "PPA Firmware HDR Addr" + default 0x40680000 +endif endif
if (SYS_LS_PPA_FW_IN_MMC || SYS_LS_PPA_FW_IN_NAND) @@ -31,6 +43,12 @@ if (SYS_LS_PPA_FW_IN_MMC || SYS_LS_PPA_FW_IN_NAND) config SYS_LS_PPA_FW_ADDR hex "PPA Firmware Addr" default 0x400000 + +if CHAIN_OF_TRUST +config SYS_LS_PPA_ESBC_ADDR + hex "PPA Firmware HDR Addr" + default 0x680000 +endif endif
source "board/freescale/common/Kconfig" diff --git a/board/freescale/ls1043ardb/Kconfig b/board/freescale/ls1043ardb/Kconfig index 26272c9..60dc9ff 100644 --- a/board/freescale/ls1043ardb/Kconfig +++ b/board/freescale/ls1043ardb/Kconfig @@ -27,6 +27,13 @@ if SYS_LS_PPA_FW_IN_XIP config SYS_LS_PPA_FW_ADDR hex "PPA Firmware Addr" default 0x60400000 + +if CHAIN_OF_TRUST +config SYS_LS_PPA_ESBC_ADDR + hex "PPA Firmware HDR Addr" + default 0x60680000 +endif + endif
if (SYS_LS_PPA_FW_IN_XIP && QSPI_BOOT) @@ -34,6 +41,13 @@ if (SYS_LS_PPA_FW_IN_XIP && QSPI_BOOT) config SYS_LS_PPA_FW_ADDR hex "PPA Firmware Addr" default 0x40400000 + +if CHAIN_OF_TRUST +config SYS_LS_PPA_ESBC_ADDR + hex "PPA Firmware HDR Addr" + default 0x40680000 +endif + endif
if (SYS_LS_PPA_FW_IN_MMC || SYS_LS_PPA_FW_IN_NAND) @@ -41,6 +55,13 @@ if (SYS_LS_PPA_FW_IN_MMC || SYS_LS_PPA_FW_IN_NAND) config SYS_LS_PPA_FW_ADDR hex "PPA Firmware Addr" default 0x400000 + +if CHAIN_OF_TRUST +config SYS_LS_PPA_ESBC_ADDR + hex "PPA Firmware HDR Addr" + default 0x680000 +endif + endif
source "board/freescale/common/Kconfig" diff --git a/board/freescale/ls1046aqds/Kconfig b/board/freescale/ls1046aqds/Kconfig index d75960f..bf93ab9 100644 --- a/board/freescale/ls1046aqds/Kconfig +++ b/board/freescale/ls1046aqds/Kconfig @@ -17,6 +17,12 @@ if SYS_LS_PPA_FW_IN_XIP config SYS_LS_PPA_FW_ADDR hex "PPA Firmware Addr" default 0x60400000 + +if CHAIN_OF_TRUST +config SYS_LS_PPA_ESBC_ADDR + hex "PPA Firmware HDR Addr" + default 0x60680000 +endif endif
if (SYS_LS_PPA_FW_IN_XIP && QSPI_BOOT) @@ -24,6 +30,12 @@ if (SYS_LS_PPA_FW_IN_XIP && QSPI_BOOT) config SYS_LS_PPA_FW_ADDR hex "PPA Firmware Addr" default 0x40400000 + +if CHAIN_OF_TRUST +config SYS_LS_PPA_ESBC_ADDR + hex "PPA Firmware HDR Addr" + default 0x40680000 +endif endif
if (SYS_LS_PPA_FW_IN_MMC || SYS_LS_PPA_FW_IN_NAND) @@ -31,6 +43,12 @@ if (SYS_LS_PPA_FW_IN_MMC || SYS_LS_PPA_FW_IN_NAND) config SYS_LS_PPA_FW_ADDR hex "PPA Firmware Addr" default 0x400000 + +if CHAIN_OF_TRUST +config SYS_LS_PPA_ESBC_ADDR + hex "PPA Firmware HDR Addr" + default 0x680000 +endif endif
source "board/freescale/common/Kconfig" diff --git a/board/freescale/ls1046ardb/Kconfig b/board/freescale/ls1046ardb/Kconfig index cd05cbf..34b7ac2 100644 --- a/board/freescale/ls1046ardb/Kconfig +++ b/board/freescale/ls1046ardb/Kconfig @@ -18,6 +18,13 @@ if SYS_LS_PPA_FW_IN_XIP config SYS_LS_PPA_FW_ADDR hex "PPA Firmware Addr" default 0x60400000 + +if CHAIN_OF_TRUST +config SYS_LS_PPA_ESBC_ADDR + hex "PPA Firmware HDR Addr" + default 0x60680000 +endif + endif
if (SYS_LS_PPA_FW_IN_XIP && QSPI_BOOT) @@ -25,6 +32,13 @@ if (SYS_LS_PPA_FW_IN_XIP && QSPI_BOOT) config SYS_LS_PPA_FW_ADDR hex "PPA Firmware Addr" default 0x40400000 + +if CHAIN_OF_TRUST +config SYS_LS_PPA_ESBC_ADDR + hex "PPA Firmware HDR Addr" + default 0x40680000 +endif + endif
if (SYS_LS_PPA_FW_IN_MMC || SYS_LS_PPA_FW_IN_NAND) @@ -32,6 +46,13 @@ if (SYS_LS_PPA_FW_IN_MMC || SYS_LS_PPA_FW_IN_NAND) config SYS_LS_PPA_FW_ADDR hex "PPA Firmware Addr" default 0x400000 + +if CHAIN_OF_TRUST +config SYS_LS_PPA_ESBC_ADDR + hex "PPA Firmware HDR Addr" + default 0x680000 +endif + endif
source "board/freescale/common/Kconfig" diff --git a/board/freescale/ls1088a/Kconfig b/board/freescale/ls1088a/Kconfig index 235e5d1..931367d 100644 --- a/board/freescale/ls1088a/Kconfig +++ b/board/freescale/ls1088a/Kconfig @@ -17,6 +17,12 @@ if SYS_LS_PPA_FW_IN_XIP config SYS_LS_PPA_FW_ADDR hex "PPA Firmware Addr" default 0x20400000 + +if CHAIN_OF_TRUST +config SYS_LS_PPA_ESBC_ADDR + hex "PPA Firmware HDR Addr" + default 0x20680000 +endif endif
if (SYS_LS_PPA_FW_IN_MMC || SYS_LS_PPA_FW_IN_NAND) @@ -24,6 +30,12 @@ if (SYS_LS_PPA_FW_IN_MMC || SYS_LS_PPA_FW_IN_NAND) config SYS_LS_PPA_FW_ADDR hex "PPA Firmware Addr" default 0x400000 + +if CHAIN_OF_TRUST +config SYS_LS_PPA_ESBC_ADDR + hex "PPA Firmware HDR Addr" + default 0x680000 +endif endif
source "board/freescale/common/Kconfig" @@ -48,6 +60,12 @@ if SYS_LS_PPA_FW_IN_XIP config SYS_LS_PPA_FW_ADDR hex "PPA Firmware Addr" default 0x20400000 + +if CHAIN_OF_TRUST +config SYS_LS_PPA_ESBC_ADDR + hex "PPA Firmware HDR Addr" + default 0x20680000 +endif endif
if (SYS_LS_PPA_FW_IN_MMC || SYS_LS_PPA_FW_IN_NAND) @@ -55,6 +73,12 @@ if (SYS_LS_PPA_FW_IN_MMC || SYS_LS_PPA_FW_IN_NAND) config SYS_LS_PPA_FW_ADDR hex "PPA Firmware Addr" default 0x400000 + +if CHAIN_OF_TRUST +config SYS_LS_PPA_ESBC_ADDR + hex "PPA Firmware HDR Addr" + default 0x680000 +endif endif
source "board/freescale/common/Kconfig" diff --git a/board/freescale/ls2080aqds/Kconfig b/board/freescale/ls2080aqds/Kconfig index 5f23304..8db2dcb 100644 --- a/board/freescale/ls2080aqds/Kconfig +++ b/board/freescale/ls2080aqds/Kconfig @@ -18,6 +18,12 @@ if SYS_LS_PPA_FW_IN_XIP config SYS_LS_PPA_FW_ADDR hex "PPA Firmware Addr" default 0x580400000 + +if CHAIN_OF_TRUST +config SYS_LS_PPA_ESBC_ADDR + hex "PPA Firmware HDR Addr" + default 0x580680000 +endif endif
if (SYS_LS_PPA_FW_IN_XIP && QSPI_BOOT) @@ -25,6 +31,12 @@ if (SYS_LS_PPA_FW_IN_XIP && QSPI_BOOT) config SYS_LS_PPA_FW_ADDR hex "PPA Firmware Addr" default 0x20400000 + +if CHAIN_OF_TRUST +config SYS_LS_PPA_ESBC_ADDR + hex "PPA Firmware HDR Addr" + default 0x20680000 +endif endif
if (SYS_LS_PPA_FW_IN_MMC || SYS_LS_PPA_FW_IN_NAND) @@ -32,6 +44,12 @@ if (SYS_LS_PPA_FW_IN_MMC || SYS_LS_PPA_FW_IN_NAND) config SYS_LS_PPA_FW_ADDR hex "PPA Firmware Addr" default 0x400000 + +if CHAIN_OF_TRUST +config SYS_LS_PPA_ESBC_ADDR + hex "PPA Firmware HDR Addr" + default 0x680000 +endif endif
source "board/freescale/common/Kconfig" diff --git a/board/freescale/ls2080ardb/Kconfig b/board/freescale/ls2080ardb/Kconfig index 787f8f4..0e66d66 100644 --- a/board/freescale/ls2080ardb/Kconfig +++ b/board/freescale/ls2080ardb/Kconfig @@ -18,6 +18,13 @@ if SYS_LS_PPA_FW_IN_XIP config SYS_LS_PPA_FW_ADDR hex "PPA Firmware Addr" default 0x580400000 + +if CHAIN_OF_TRUST +config SYS_LS_PPA_ESBC_ADDR + hex "PPA Firmware HDR Addr" + default 0x580680000 +endif + endif
if (SYS_LS_PPA_FW_IN_XIP && QSPI_BOOT) @@ -25,6 +32,13 @@ if (SYS_LS_PPA_FW_IN_XIP && QSPI_BOOT) config SYS_LS_PPA_FW_ADDR hex "PPA Firmware Addr" default 0x20400000 + +if CHAIN_OF_TRUST +config SYS_LS_PPA_ESBC_ADDR + hex "PPA Firmware HDR Addr" + default 0x20680000 +endif + endif
if (SYS_LS_PPA_FW_IN_MMC || SYS_LS_PPA_FW_IN_NAND) @@ -32,6 +46,13 @@ if (SYS_LS_PPA_FW_IN_MMC || SYS_LS_PPA_FW_IN_NAND) config SYS_LS_PPA_FW_ADDR hex "PPA Firmware Addr" default 0x400000 + +if CHAIN_OF_TRUST +config SYS_LS_PPA_ESBC_ADDR + hex "PPA Firmware HDR Addr" + default 0x680000 +endif + endif
source "board/freescale/common/Kconfig" @@ -57,6 +78,13 @@ if SYS_LS_PPA_FW_IN_XIP config SYS_LS_PPA_FW_ADDR hex "PPA Firmware Addr" default 0x580400000 + +if CHAIN_OF_TRUST +config SYS_LS_PPA_ESBC_ADDR + hex "PPA Firmware HDR Addr" + default 0x580680000 +endif + endif
if (SYS_LS_PPA_FW_IN_XIP && QSPI_BOOT) @@ -64,6 +92,13 @@ if (SYS_LS_PPA_FW_IN_XIP && QSPI_BOOT) config SYS_LS_PPA_FW_ADDR hex "PPA Firmware Addr" default 0x20400000 + +if CHAIN_OF_TRUST +config SYS_LS_PPA_ESBC_ADDR + hex "PPA Firmware HDR Addr" + default 0x20680000 +endif + endif
if (SYS_LS_PPA_FW_IN_MMC || SYS_LS_PPA_FW_IN_NAND) @@ -71,6 +106,13 @@ if (SYS_LS_PPA_FW_IN_MMC || SYS_LS_PPA_FW_IN_NAND) config SYS_LS_PPA_FW_ADDR hex "PPA Firmware Addr" default 0x400000 + +if CHAIN_OF_TRUST +config SYS_LS_PPA_ESBC_ADDR + hex "PPA Firmware HDR Addr" + default 0x680000 +endif + endif
source "board/freescale/common/Kconfig"

Added the following: 1. defconfig for LS1012AFRWY Secure boot 2. PfE Validation support
Signed-off-by: Vinitha V Pillai vinitha.pillai@nxp.com
This patch depends on the following patches:
https://patchwork.ozlabs.org/patch/908676/ https://patchwork.ozlabs.org/patch/908089/
--- arch/arm/Kconfig | 1 + board/freescale/ls1012afrdm/Kconfig | 8 ++++ board/freescale/ls1012afrdm/MAINTAINERS | 4 ++ board/freescale/ls1012afrdm/ls1012afrdm.c | 5 +++ configs/ls1012afrwy_qspi_SECURE_BOOT_defconfig | 53 ++++++++++++++++++++++++++ drivers/net/pfe_eth/pfe_firmware.c | 29 ++++++++++++++ include/configs/ls1012afrwy.h | 16 +++++++- 7 files changed, 115 insertions(+), 1 deletion(-) create mode 100644 configs/ls1012afrwy_qspi_SECURE_BOOT_defconfig
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig index 2c6f036..350653b 100644 --- a/arch/arm/Kconfig +++ b/arch/arm/Kconfig @@ -971,6 +971,7 @@ config TARGET_LS1012A2G5RDB config TARGET_LS1012AFRWY bool "Support ls1012afrwy" select ARCH_LS1012A + select BOARD_LATE_INIT select ARM64 imply SCSI imply SCSI_AHCI diff --git a/board/freescale/ls1012afrdm/Kconfig b/board/freescale/ls1012afrdm/Kconfig index 73ad2fe..f52a896 100644 --- a/board/freescale/ls1012afrdm/Kconfig +++ b/board/freescale/ls1012afrdm/Kconfig @@ -70,6 +70,14 @@ config SYS_LS_PPA_FW_ADDR hex "PPA Firmware Addr" default 0x40060000
+config SYS_LS_PPA_ESBC_ADDR + hex "PPA Firmware HDR Addr" + default 0x401f4000 + +config SYS_LS_PFE_ESBC_ADDR + hex "PFE Firmware HDR Addr" + default 0x401f8000 + endif
source "board/freescale/common/Kconfig" diff --git a/board/freescale/ls1012afrdm/MAINTAINERS b/board/freescale/ls1012afrdm/MAINTAINERS index 36e3e5a..f3fcdb8 100644 --- a/board/freescale/ls1012afrdm/MAINTAINERS +++ b/board/freescale/ls1012afrdm/MAINTAINERS @@ -11,3 +11,7 @@ S: Maintained F: board/freescale/ls1012afrwy/ F: include/configs/ls1012afrwy.h F: configs/ls1012afrwy_qspi_defconfig + +M: Vinitha V Pillai vinitha.pillai@nxp.com +S: Maintained +F: configs/ls1012afrwy_qspi_SECURE_BOOT_defconfig diff --git a/board/freescale/ls1012afrdm/ls1012afrdm.c b/board/freescale/ls1012afrdm/ls1012afrdm.c index 140d0c2..80d869c 100644 --- a/board/freescale/ls1012afrdm/ls1012afrdm.c +++ b/board/freescale/ls1012afrdm/ls1012afrdm.c @@ -19,6 +19,7 @@ #include <environment.h> #include <fsl_mmdc.h> #include <netdev.h> +#include <fsl_sec.h>
DECLARE_GLOBAL_DATA_PTR;
@@ -140,6 +141,10 @@ int board_init(void) gd->env_addr = (ulong)&default_environment[0]; #endif
+#ifdef CONFIG_FSL_CAAM + sec_init(); +#endif + #ifdef CONFIG_FSL_LS_PPA ppa_init(); #endif diff --git a/configs/ls1012afrwy_qspi_SECURE_BOOT_defconfig b/configs/ls1012afrwy_qspi_SECURE_BOOT_defconfig new file mode 100644 index 0000000..adfec8f --- /dev/null +++ b/configs/ls1012afrwy_qspi_SECURE_BOOT_defconfig @@ -0,0 +1,53 @@ +CONFIG_ARM=y +CONFIG_TARGET_LS1012AFRWY=y +CONFIG_SECURE_BOOT=y +CONFIG_SYS_TEXT_BASE=0x40100000 +CONFIG_FSL_LS_PPA=y +CONFIG_DEFAULT_DEVICE_TREE="fsl-ls1012a-frwy" +CONFIG_DISTRO_DEFAULTS=y +# CONFIG_SYS_MALLOC_F is not set +CONFIG_FIT_VERBOSE=y +CONFIG_OF_BOARD_SETUP=y +CONFIG_OF_STDOUT_VIA_ALIAS=y +CONFIG_SYS_EXTRA_OPTIONS="QSPI_BOOT" +CONFIG_QSPI_BOOT=y +CONFIG_BOOTDELAY=10 +CONFIG_USE_BOOTARGS=y +CONFIG_BOOTARGS="console=ttyS0,115200 root=/dev/ram0 earlycon=uart8250,mmio,0x21c0500 quiet lpj=250000" +# CONFIG_DISPLAY_BOARDINFO is not set +CONFIG_CMD_GREPENV=y +CONFIG_CMD_GPT=y +CONFIG_CMD_I2C=y +CONFIG_CMD_MMC=y +CONFIG_CMD_PCI=y +CONFIG_CMD_SF=y +CONFIG_CMD_USB=y +CONFIG_CMD_CACHE=y +CONFIG_OF_CONTROL=y +CONFIG_ENV_IS_IN_SPI_FLASH=y +CONFIG_NET_RANDOM_ETHADDR=y +CONFIG_DM=y +# CONFIG_BLK is not set +CONFIG_DM_MMC=y +# CONFIG_DM_MMC_OPS is not set +CONFIG_DM_SPI_FLASH=y +CONFIG_SPI_FLASH=y +CONFIG_DM_ETH=y +CONFIG_SPI_FLASH_WINBOND=y +CONFIG_NETDEVICES=y +CONFIG_E1000=y +CONFIG_FSL_PFE=y +CONFIG_PCI=y +CONFIG_DM_PCI=y +CONFIG_DM_PCI_COMPAT=y +CONFIG_PCIE_LAYERSCAPE=y +CONFIG_SYS_NS16550=y +CONFIG_DM_SPI=y +CONFIG_FSL_DSPI=y +CONFIG_USB=y +CONFIG_DM_USB=y +CONFIG_USB_XHCI_HCD=y +CONFIG_USB_XHCI_DWC3=y +CONFIG_USB_STORAGE=y +CONFIG_RSA=y +CONFIG_RSA_SOFTWARE_EXP=y diff --git a/drivers/net/pfe_eth/pfe_firmware.c b/drivers/net/pfe_eth/pfe_firmware.c index 9dc063d..6053d3c 100644 --- a/drivers/net/pfe_eth/pfe_firmware.c +++ b/drivers/net/pfe_eth/pfe_firmware.c @@ -13,6 +13,9 @@
#include <net/pfe_eth/pfe_eth.h> #include <net/pfe_eth/pfe_firmware.h> +#ifdef CONFIG_CHAIN_OF_TRUST +#include <fsl_validate.h> +#endif
#define PFE_FIRMEWARE_FIT_CNF_NAME "config@1"
@@ -169,10 +172,15 @@ static int pfe_fit_check(void) */ int pfe_firmware_init(void) { +#define PFE_KEY_HASH NULL char *pfe_firmware_name; const void *raw_image_addr; size_t raw_image_size = 0; u8 *pfe_firmware; +#ifdef CONFIG_CHAIN_OF_TRUST + uintptr_t pfe_esbc_hdr = 0; + uintptr_t pfe_img_addr = 0; +#endif int ret = 0; int fw_count;
@@ -180,6 +188,27 @@ int pfe_firmware_init(void) if (ret) goto err;
+#ifdef CONFIG_CHAIN_OF_TRUST + pfe_esbc_hdr = CONFIG_SYS_LS_PFE_ESBC_ADDR; + pfe_img_addr = (uintptr_t)pfe_fit_addr; + if (fsl_check_boot_mode_secure() != 0) { + /* + * In case of failure in validation, fsl_secboot_validate + * would not return back in case of Production environment + * with ITS=1. In Development environment (ITS=0 and + * SB_EN=1), the function may return back in case of + * non-fatal failures. + */ + ret = fsl_secboot_validate(pfe_esbc_hdr, + PFE_KEY_HASH, + &pfe_img_addr); + if (ret != 0) + printf("PFE firmware(s) validation failed\n"); + else + printf("PFE firmware(s) validation Successful\n"); + } +#endif + for (fw_count = 0; fw_count < 2; fw_count++) { if (fw_count == 0) pfe_firmware_name = "class"; diff --git a/include/configs/ls1012afrwy.h b/include/configs/ls1012afrwy.h index 67da6c5..770e566 100644 --- a/include/configs/ls1012afrwy.h +++ b/include/configs/ls1012afrwy.h @@ -58,11 +58,17 @@ "initrd_high=0xffffffffffffffff\0" \ "fdt_addr=0x00f00000\0" \ "kernel_addr=0x01000000\0" \ + "kernel_size_sd=0x16000\0" \ + "kernelhdr_size_sd=0x10\0" \ + "kernel_addr_sd=0x8000\0" \ + "kernelhdr_addr_sd=0x4000\0" \ + "kernelheader_addr=0x1fc000\0" \ "kernelheader_addr=0x1fc000\0" \ "scriptaddr=0x80000000\0" \ "scripthdraddr=0x80080000\0" \ "fdtheader_addr_r=0x80100000\0" \ "kernelheader_addr_r=0x80200000\0" \ + "kernelheader_size=0x40000\0" \ "kernel_addr_r=0x81000000\0" \ "fdt_addr_r=0x90000000\0" \ "load_addr=0x96000000\0" \ @@ -105,10 +111,17 @@ "$kernel_addr $kernel_size; env exists secureboot " \ "&& sf read $kernelheader_addr_r $kernelheader_addr " \ "$kernelheader_size && esbc_validate ${kernelheader_addr_r}; " \ + "bootm $load_addr#$board\0" \ + "sd_bootcmd=echo Trying load from sd card..;" \ + "mmcinfo; mmc read $load_addr " \ + "$kernel_addr_sd $kernel_size_sd ;" \ + "env exists secureboot && mmc read $kernelheader_addr_r "\ + "$kernelhdr_addr_sd $kernelhdr_size_sd " \ + " && esbc_validate ${kernelheader_addr_r};" \ "bootm $load_addr#$board\0"
#undef CONFIG_BOOTCOMMAND -#define CONFIG_BOOTCOMMAND "pfe stop; run distro_bootcmd; run qspi_bootcmd; "\ +#define CONFIG_BOOTCOMMAND "pfe stop; run distro_bootcmd; run sd_bootcmd; "\ "env exists secureboot && esbc_halt;" #define CONFIG_CMD_MEMINFO #define CONFIG_CMD_MEMTEST @@ -117,4 +130,5 @@
#include <asm/fsl_secure_boot.h>
+#include <asm/fsl_secure_boot.h> #endif /* __LS1012AFRWY_H__ */
participants (1)
-
Vinitha V Pillai