mirror of
https://source.denx.de/u-boot/u-boot.git
synced 2025-11-28 22:21:49 +01:00
ls1021atwr: caam: Enable Uboot validaion in SPL.
caam driver model enabled in spl for secure boot. fsl_rsa_mod_exp driver enabled in spl for validating uboot image. Signed-off-by: Gaurav Jain <gaurav.jain@nxp.com>
This commit is contained in:
parent
20d4c6052f
commit
47465877a5
@ -1499,5 +1499,6 @@ F: */
|
|||||||
CAAM
|
CAAM
|
||||||
M: Gaurav Jain <gaurav.jain@nxp.com>
|
M: Gaurav Jain <gaurav.jain@nxp.com>
|
||||||
S: Maintained
|
S: Maintained
|
||||||
|
F: arch/arm/dts/ls1021a-twr-u-boot.dtsi
|
||||||
F: drivers/crypto/fsl/
|
F: drivers/crypto/fsl/
|
||||||
F: include/fsl_sec.h
|
F: include/fsl_sec.h
|
||||||
|
|||||||
29
arch/arm/dts/ls1021a-twr-u-boot.dtsi
Normal file
29
arch/arm/dts/ls1021a-twr-u-boot.dtsi
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
/*
|
||||||
|
* Copyright 2022 NXP
|
||||||
|
*/
|
||||||
|
|
||||||
|
&{/soc} {
|
||||||
|
u-boot,dm-spl;
|
||||||
|
u-boot,dm-pre-reloc;
|
||||||
|
};
|
||||||
|
|
||||||
|
&crypto {
|
||||||
|
u-boot,dm-spl;
|
||||||
|
};
|
||||||
|
|
||||||
|
&sec_jr0 {
|
||||||
|
u-boot,dm-spl;
|
||||||
|
};
|
||||||
|
|
||||||
|
&sec_jr1 {
|
||||||
|
u-boot,dm-spl;
|
||||||
|
};
|
||||||
|
|
||||||
|
&sec_jr2 {
|
||||||
|
u-boot,dm-spl;
|
||||||
|
};
|
||||||
|
|
||||||
|
&sec_jr3 {
|
||||||
|
u-boot,dm-spl;
|
||||||
|
};
|
||||||
@ -6,6 +6,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#include "ls1021a.dtsi"
|
#include "ls1021a.dtsi"
|
||||||
|
#include "ls1021a-twr-u-boot.dtsi"
|
||||||
|
|
||||||
/ {
|
/ {
|
||||||
model = "LS1021A TWR Board";
|
model = "LS1021A TWR Board";
|
||||||
|
|||||||
@ -1,6 +1,7 @@
|
|||||||
// SPDX-License-Identifier: GPL-2.0+
|
// SPDX-License-Identifier: GPL-2.0+
|
||||||
/*
|
/*
|
||||||
* Copyright 2015 Freescale Semiconductor, Inc.
|
* Copyright 2015 Freescale Semiconductor, Inc.
|
||||||
|
* Copyright 2022 NXP
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <common.h>
|
#include <common.h>
|
||||||
@ -114,11 +115,6 @@ void spl_validate_uboot(uint32_t hdr_addr, uintptr_t img_addr)
|
|||||||
fsl_secboot_handle_error(ERROR_ESBC_PAMU_INIT);
|
fsl_secboot_handle_error(ERROR_ESBC_PAMU_INIT);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef CONFIG_FSL_CAAM
|
|
||||||
if (sec_init() < 0)
|
|
||||||
fsl_secboot_handle_error(ERROR_ESBC_SEC_INIT);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* dm_init_and_scan() is called as part of common SPL framework, so no
|
* dm_init_and_scan() is called as part of common SPL framework, so no
|
||||||
* need to call it again but in case of powerpc platforms which currently
|
* need to call it again but in case of powerpc platforms which currently
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
// SPDX-License-Identifier: GPL-2.0+
|
// SPDX-License-Identifier: GPL-2.0+
|
||||||
/*
|
/*
|
||||||
* Copyright 2015 Freescale Semiconductor, Inc.
|
* Copyright 2015 Freescale Semiconductor, Inc.
|
||||||
* Copyright 2021 NXP
|
* Copyright 2021-2022 NXP
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <common.h>
|
#include <common.h>
|
||||||
@ -19,6 +19,7 @@
|
|||||||
#ifdef CONFIG_ARCH_LS1021A
|
#ifdef CONFIG_ARCH_LS1021A
|
||||||
#include <asm/arch/immap_ls102xa.h>
|
#include <asm/arch/immap_ls102xa.h>
|
||||||
#endif
|
#endif
|
||||||
|
#include <dm/lists.h>
|
||||||
|
|
||||||
#define SHA256_BITS 256
|
#define SHA256_BITS 256
|
||||||
#define SHA256_BYTES (256/8)
|
#define SHA256_BYTES (256/8)
|
||||||
@ -807,6 +808,13 @@ static int calculate_cmp_img_sig(struct fsl_secboot_img_priv *img)
|
|||||||
prop.num_bits = key_len * 8;
|
prop.num_bits = key_len * 8;
|
||||||
prop.exp_len = key_len;
|
prop.exp_len = key_len;
|
||||||
|
|
||||||
|
#if defined(CONFIG_SPL_BUILD)
|
||||||
|
ret = device_bind_driver(NULL, "fsl_rsa_mod_exp", "fsl_rsa_mod_exp", NULL);
|
||||||
|
if (ret) {
|
||||||
|
printf("Couldn't bind fsl_rsa_mod_exp driver (%d)\n", ret);
|
||||||
|
return -EINVAL;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
ret = uclass_get_device(UCLASS_MOD_EXP, 0, &mod_exp_dev);
|
ret = uclass_get_device(UCLASS_MOD_EXP, 0, &mod_exp_dev);
|
||||||
if (ret) {
|
if (ret) {
|
||||||
printf("RSA: Can't find Modular Exp implementation\n");
|
printf("RSA: Can't find Modular Exp implementation\n");
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
// SPDX-License-Identifier: GPL-2.0+
|
// SPDX-License-Identifier: GPL-2.0+
|
||||||
/*
|
/*
|
||||||
* Copyright 2014 Freescale Semiconductor, Inc.
|
* Copyright 2014 Freescale Semiconductor, Inc.
|
||||||
* Copyright 2019, 2021 NXP
|
* Copyright 2019, 2021-2022 NXP
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <common.h>
|
#include <common.h>
|
||||||
@ -34,7 +34,7 @@
|
|||||||
#include <fsl_qe.h>
|
#include <fsl_qe.h>
|
||||||
#endif
|
#endif
|
||||||
#include <fsl_validate.h>
|
#include <fsl_validate.h>
|
||||||
|
#include <dm/uclass.h>
|
||||||
|
|
||||||
DECLARE_GLOBAL_DATA_PTR;
|
DECLARE_GLOBAL_DATA_PTR;
|
||||||
|
|
||||||
@ -530,6 +530,15 @@ int board_init(void)
|
|||||||
#if defined(CONFIG_SPL_BUILD)
|
#if defined(CONFIG_SPL_BUILD)
|
||||||
void spl_board_init(void)
|
void spl_board_init(void)
|
||||||
{
|
{
|
||||||
|
if (IS_ENABLED(CONFIG_FSL_CAAM)) {
|
||||||
|
struct udevice *dev;
|
||||||
|
int ret;
|
||||||
|
|
||||||
|
ret = uclass_get_device_by_driver(UCLASS_MISC, DM_DRIVER_GET(caam_jr), &dev);
|
||||||
|
if (ret)
|
||||||
|
printf("Failed to initialize caam_jr: %d\n", ret);
|
||||||
|
}
|
||||||
|
|
||||||
ls102xa_smmu_stream_id_init();
|
ls102xa_smmu_stream_id_init();
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user