crypto/fsl: i.MX8M: Enable Job ring driver model.

i.MX8MM/MN/MP/MQ - added support for JR driver model.
sec is initialized based on job ring information processed
from device tree.

Signed-off-by: Gaurav Jain <gaurav.jain@nxp.com>
Reviewed-by: Ye Li <ye.li@nxp.com>
This commit is contained in:
Gaurav Jain 2022-03-24 11:50:27 +05:30 committed by Stefano Babic
parent ee51b2c767
commit 2cddfcbc75
7 changed files with 58 additions and 9 deletions

View File

@ -865,7 +865,7 @@ config ARCH_IMX8M
select ARM64 select ARM64
select GPIO_EXTRA_HEADER select GPIO_EXTRA_HEADER
select MACH_IMX select MACH_IMX
select SYS_FSL_HAS_SEC if IMX_HAB select SYS_FSL_HAS_SEC
select SYS_FSL_SEC_COMPAT_4 select SYS_FSL_SEC_COMPAT_4
select SYS_FSL_SEC_LE select SYS_FSL_SEC_LE
select SYS_I2C_MXC select SYS_I2C_MXC

View File

@ -39,6 +39,9 @@ config TARGET_IMX8MQ_EVK
select BINMAN select BINMAN
select IMX8MQ select IMX8MQ
select IMX8M_LPDDR4 select IMX8M_LPDDR4
select FSL_CAAM
select ARCH_MISC_INIT
select SPL_CRYPTO if SPL
config TARGET_IMX8MQ_PHANBELL config TARGET_IMX8MQ_PHANBELL
bool "imx8mq_phanbell" bool "imx8mq_phanbell"
@ -52,6 +55,9 @@ config TARGET_IMX8MM_EVK
select IMX8MM select IMX8MM
select SUPPORT_SPL select SUPPORT_SPL
select IMX8M_LPDDR4 select IMX8M_LPDDR4
select FSL_CAAM
select ARCH_MISC_INIT
select SPL_CRYPTO if SPL
config TARGET_IMX8MM_ICORE_MX8MM config TARGET_IMX8MM_ICORE_MX8MM
bool "Engicam i.Core MX8M Mini SOM" bool "Engicam i.Core MX8M Mini SOM"
@ -91,6 +97,8 @@ config TARGET_IMX8MN_EVK
select IMX8MN select IMX8MN
select SUPPORT_SPL select SUPPORT_SPL
select IMX8M_LPDDR4 select IMX8M_LPDDR4
select FSL_CAAM
select SPL_CRYPTO if SPL
config TARGET_IMX8MN_DDR4_EVK config TARGET_IMX8MN_DDR4_EVK
bool "imx8mn DDR4 EVK board" bool "imx8mn DDR4 EVK board"
@ -98,6 +106,8 @@ config TARGET_IMX8MN_DDR4_EVK
select IMX8MN select IMX8MN
select SUPPORT_SPL select SUPPORT_SPL
select IMX8M_DDR4 select IMX8M_DDR4
select FSL_CAAM
select SPL_CRYPTO if SPL
config TARGET_IMX8MN_VENICE config TARGET_IMX8MN_VENICE
bool "Support Gateworks Venice iMX8M Nano module" bool "Support Gateworks Venice iMX8M Nano module"
@ -112,6 +122,9 @@ config TARGET_IMX8MP_EVK
select IMX8MP select IMX8MP
select SUPPORT_SPL select SUPPORT_SPL
select IMX8M_LPDDR4 select IMX8M_LPDDR4
select FSL_CAAM
select ARCH_MISC_INIT
select SPL_CRYPTO if SPL
config TARGET_PICO_IMX8MQ config TARGET_PICO_IMX8MQ
bool "Support Technexion Pico iMX8MQ" bool "Support Technexion Pico iMX8MQ"

View File

@ -1,6 +1,6 @@
// SPDX-License-Identifier: GPL-2.0+ // SPDX-License-Identifier: GPL-2.0+
/* /*
* Copyright 2017-2019 NXP * Copyright 2017-2019, 2021 NXP
* *
* Peng Fan <peng.fan@nxp.com> * Peng Fan <peng.fan@nxp.com>
*/ */
@ -21,6 +21,7 @@
#include <asm/ptrace.h> #include <asm/ptrace.h>
#include <asm/armv8/mmu.h> #include <asm/armv8/mmu.h>
#include <dm/uclass.h> #include <dm/uclass.h>
#include <dm/device.h>
#include <efi_loader.h> #include <efi_loader.h>
#include <env.h> #include <env.h>
#include <env_internal.h> #include <env_internal.h>
@ -1212,6 +1213,14 @@ static void acquire_buildinfo(void)
int arch_misc_init(void) int arch_misc_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 %s: %d\n", dev->name, ret);
}
acquire_buildinfo(); acquire_buildinfo();
return 0; return 0;

View File

@ -1,6 +1,6 @@
// SPDX-License-Identifier: GPL-2.0+ // SPDX-License-Identifier: GPL-2.0+
/* /*
* Copyright 2019 NXP * Copyright 2019, 2021 NXP
*/ */
#include <common.h> #include <common.h>
@ -51,6 +51,14 @@ static void spl_dram_init(void)
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 %s: %d\n", dev->name, ret);
}
puts("Normal Boot\n"); puts("Normal Boot\n");
} }

View File

@ -1,7 +1,7 @@
// SPDX-License-Identifier: GPL-2.0-or-later
/* /*
* Copyright 2018-2019 NXP * Copyright 2018-2019, 2021 NXP
* *
* SPDX-License-Identifier: GPL-2.0+
*/ */
#include <common.h> #include <common.h>
@ -49,6 +49,11 @@ void spl_board_init(void)
struct udevice *dev; struct udevice *dev;
int ret; int ret;
if (IS_ENABLED(CONFIG_FSL_CAAM)) {
ret = uclass_get_device_by_driver(UCLASS_MISC, DM_DRIVER_GET(caam_jr), &dev);
if (ret)
printf("Failed to initialize %s: %d\n", dev->name, ret);
}
puts("Normal Boot\n"); puts("Normal Boot\n");
ret = uclass_get_device_by_name(UCLASS_CLK, ret = uclass_get_device_by_name(UCLASS_CLK,

View File

@ -1,7 +1,7 @@
// SPDX-License-Identifier: GPL-2.0-or-later
/* /*
* Copyright 2018-2019 NXP * Copyright 2018-2019, 2021 NXP
* *
* SPDX-License-Identifier: GPL-2.0+
*/ */
#include <common.h> #include <common.h>
@ -20,6 +20,8 @@
#include <asm/arch/ddr.h> #include <asm/arch/ddr.h>
#include <power/pmic.h> #include <power/pmic.h>
#include <power/pca9450.h> #include <power/pca9450.h>
#include <dm/uclass.h>
#include <dm/device.h>
DECLARE_GLOBAL_DATA_PTR; DECLARE_GLOBAL_DATA_PTR;
@ -35,6 +37,14 @@ void spl_dram_init(void)
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 %s: %d\n", dev->name, ret);
}
/* /*
* Set GIC clock to 500Mhz for OD VDD_SOC. Kernel driver does * Set GIC clock to 500Mhz for OD VDD_SOC. Kernel driver does
* not allow to change it. Should set the clock after PMIC * not allow to change it. Should set the clock after PMIC

View File

@ -1,8 +1,7 @@
// SPDX-License-Identifier: GPL-2.0+ // SPDX-License-Identifier: GPL-2.0+
/* /*
* Copyright 2018 NXP * Copyright 2018, 2021 NXP
* *
* SPDX-License-Identifier: GPL-2.0+
*/ */
#include <common.h> #include <common.h>
@ -22,6 +21,7 @@
#include <asm/mach-imx/gpio.h> #include <asm/mach-imx/gpio.h>
#include <asm/mach-imx/mxc_i2c.h> #include <asm/mach-imx/mxc_i2c.h>
#include <fsl_esdhc_imx.h> #include <fsl_esdhc_imx.h>
#include <fsl_sec.h>
#include <mmc.h> #include <mmc.h>
#include <linux/delay.h> #include <linux/delay.h>
#include <power/pmic.h> #include <power/pmic.h>
@ -199,6 +199,10 @@ int power_init_board(void)
void spl_board_init(void) void spl_board_init(void)
{ {
if (IS_ENABLED(CONFIG_FSL_CAAM)) {
if (sec_init())
printf("\nsec_init failed!\n");
}
puts("Normal Boot\n"); puts("Normal Boot\n");
} }