diff mbox series

[v9,11/14] Layerscape: Enable Job ring driver model.

Message ID 20220111112805.3566-12-gaurav.jain@nxp.com
State Changes Requested
Delegated to: Stefano Babic
Headers show
Series Add CAAM driver model support | expand

Commit Message

Gaurav Jain Jan. 11, 2022, 11:28 a.m. UTC
LS(1021/1012/1028/1043/1046/1088/2088), LX2160, LX2162
platforms are enabled with JR driver model.

removed sec_init() call from board files.
removed CONFIG_FSL_CAAM from defconfig files.
sec is initialized based on job ring information processed
from device tree.

Signed-off-by: Gaurav Jain <gaurav.jain@nxp.com>
Reviewed-by: Priyanka Jain <priyanka.jain@nxp.com>
---
 arch/arm/Kconfig                              | 31 +++++++++++++++++++
 arch/arm/cpu/armv7/ls102xa/cpu.c              | 16 ++++++++++
 arch/arm/cpu/armv8/fsl-layerscape/cpu.c       | 10 +++++-
 board/freescale/ls1012afrdm/ls1012afrdm.c     |  7 +----
 board/freescale/ls1012aqds/ls1012aqds.c       |  6 +---
 board/freescale/ls1012ardb/ls1012ardb.c       |  6 +---
 board/freescale/ls1021aiot/ls1021aiot.c       |  6 ++--
 board/freescale/ls1021aqds/ls1021aqds.c       |  6 +---
 board/freescale/ls1021atsn/ls1021atsn.c       |  7 ++---
 board/freescale/ls1021atwr/ls1021atwr.c       |  8 ++---
 board/freescale/ls1028a/ls1028a.c             |  6 +---
 board/freescale/ls1043ardb/ls1043ardb.c       |  6 +---
 board/freescale/ls1046afrwy/ls1046afrwy.c     |  7 +----
 board/freescale/ls1046aqds/ls1046aqds.c       |  7 +----
 board/freescale/ls1046ardb/ls1046ardb.c       |  6 +---
 board/freescale/ls1088a/ls1088a.c             |  6 +---
 board/freescale/ls2080aqds/ls2080aqds.c       |  6 +---
 board/freescale/ls2080ardb/ls2080ardb.c       |  9 +-----
 board/freescale/lx2160a/lx2160a.c             |  5 ---
 board/kontron/sl28/sl28.c                     |  3 --
 configs/ls1021aiot_qspi_defconfig             |  1 -
 configs/ls1021aqds_nor_defconfig              |  1 -
 configs/ls1021aqds_qspi_defconfig             |  1 -
 configs/ls1021atsn_qspi_defconfig             |  1 -
 configs/ls1021atwr_nor_defconfig              |  1 -
 ...s1021atwr_sdcard_ifc_SECURE_BOOT_defconfig |  1 +
 configs/ls1028ardb_tfa_defconfig              |  1 -
 configs/ls1043ardb_tfa_defconfig              |  1 -
 configs/ls1046afrwy_tfa_defconfig             |  1 -
 configs/ls1046aqds_tfa_defconfig              |  1 -
 configs/ls1046ardb_tfa_defconfig              |  1 -
 configs/ls2088aqds_tfa_defconfig              |  1 -
 configs/ls2088ardb_tfa_defconfig              |  1 -
 configs/lx2160aqds_tfa_defconfig              |  1 -
 configs/lx2160ardb_tfa_defconfig              |  1 -
 configs/lx2162aqds_tfa_defconfig              |  1 -
 36 files changed, 75 insertions(+), 105 deletions(-)

Comments

Michael Walle Jan. 11, 2022, 12:10 p.m. UTC | #1
Hi Gaurav,

Am 2022-01-11 12:28, schrieb Gaurav Jain:
> @@ -1329,6 +1331,7 @@ config TARGET_LS2080ARDB
>  	select FSL_DDR_BIST
>  	select FSL_DDR_INTERACTIVE if !SPL
>  	select GPIO_EXTRA_HEADER
> +	select FSL_CAAM

See below.

> diff --git a/arch/arm/cpu/armv8/fsl-layerscape/cpu.c
> b/arch/arm/cpu/armv8/fsl-layerscape/cpu.c
> index 2ded3e4efc..29aa9a3f10 100644
> --- a/arch/arm/cpu/armv8/fsl-layerscape/cpu.c
> +++ b/arch/arm/cpu/armv8/fsl-layerscape/cpu.c
> @@ -1,6 +1,6 @@
>  // SPDX-License-Identifier: GPL-2.0+
>  /*
> - * Copyright 2017-2020 NXP
> + * Copyright 2017-2021 NXP
>   * Copyright 2014-2015 Freescale Semiconductor, Inc.
>   */
> 
> @@ -49,6 +49,7 @@
>  #endif
>  #endif
>  #include <linux/mii.h>
> +#include <dm.h>
> 
>  DECLARE_GLOBAL_DATA_PTR;
> 
> @@ -1650,6 +1651,13 @@ __weak int serdes_misc_init(void)
> 
>  int arch_misc_init(void)
>  {
> +	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);

This will fail when the CAAM driver isn't enabled and will then print
this error message. Should be guarded with IS_ENABLED(FSL_CAAM).


> diff --git a/configs/ls2088ardb_tfa_defconfig 
> b/configs/ls2088ardb_tfa_defconfig
> index a28b45b129..5230d7ead8 100644
> --- a/configs/ls2088ardb_tfa_defconfig
> +++ b/configs/ls2088ardb_tfa_defconfig
> @@ -53,7 +53,6 @@ CONFIG_ENV_ADDR=0x580500000
>  CONFIG_NET_RANDOM_ETHADDR=y
>  CONFIG_DM=y
>  CONFIG_SATA_CEVA=y
> -CONFIG_FSL_CAAM=y
>  CONFIG_DDR_CLK_FREQ=133333333
>  CONFIG_DDR_ECC=y
>  CONFIG_ECC_INIT_VIA_DDRCONTROLLER=y
..

I still don't understand why you make the FSL_CAAM mandatory and remove 
the
option here. Same for all other boards.

-michael
Gaurav Jain Jan. 11, 2022, 12:30 p.m. UTC | #2
Hi Michael

> -----Original Message-----
> From: Michael Walle <michael@walle.cc>
> Sent: Tuesday, January 11, 2022 5:41 PM
> To: Gaurav Jain <gaurav.jain@nxp.com>
> Cc: u-boot@lists.denx.de; Stefano Babic <sbabic@denx.de>; Fabio Estevam
> <festevam@gmail.com>; Peng Fan <peng.fan@nxp.com>; Simon Glass
> <sjg@chromium.org>; Priyanka Jain <priyanka.jain@nxp.com>; Ye Li
> <ye.li@nxp.com>; Horia Geanta <horia.geanta@nxp.com>; Ji Luo
> <ji.luo@nxp.com>; Franck Lenormand <franck.lenormand@nxp.com>; Silvano Di
> Ninno <silvano.dininno@nxp.com>; Sahil Malhotra <sahil.malhotra@nxp.com>;
> Pankaj Gupta <pankaj.gupta@nxp.com>; Varun Sethi <V.Sethi@nxp.com>; dl-
> uboot-imx <uboot-imx@nxp.com>; Shengzhou Liu <shengzhou.liu@nxp.com>;
> Mingkai Hu <mingkai.hu@nxp.com>; Rajesh Bhagat <rajesh.bhagat@nxp.com>;
> Meenakshi Aggarwal <meenakshi.aggarwal@nxp.com>; Wasim Khan
> <wasim.khan@nxp.com>; Alison Wang <alison.wang@nxp.com>; Pramod
> Kumar <pramod.kumar_1@nxp.com>; Andy Tang <andy.tang@nxp.com>;
> Adrian Alonso <adrian.alonso@nxp.com>; Vladimir Oltean <olteanv@gmail.com>
> Subject: [EXT] Re: [PATCH v9 11/14] Layerscape: Enable Job ring driver model.
> 
> Caution: EXT Email
> 
> Hi Gaurav,
> 
> Am 2022-01-11 12:28, schrieb Gaurav Jain:
> > @@ -1329,6 +1331,7 @@ config TARGET_LS2080ARDB
> >       select FSL_DDR_BIST
> >       select FSL_DDR_INTERACTIVE if !SPL
> >       select GPIO_EXTRA_HEADER
> > +     select FSL_CAAM
> 
> See below.
> 
> > diff --git a/arch/arm/cpu/armv8/fsl-layerscape/cpu.c
> > b/arch/arm/cpu/armv8/fsl-layerscape/cpu.c
> > index 2ded3e4efc..29aa9a3f10 100644
> > --- a/arch/arm/cpu/armv8/fsl-layerscape/cpu.c
> > +++ b/arch/arm/cpu/armv8/fsl-layerscape/cpu.c
> > @@ -1,6 +1,6 @@
> >  // SPDX-License-Identifier: GPL-2.0+
> >  /*
> > - * Copyright 2017-2020 NXP
> > + * Copyright 2017-2021 NXP
> >   * Copyright 2014-2015 Freescale Semiconductor, Inc.
> >   */
> >
> > @@ -49,6 +49,7 @@
> >  #endif
> >  #endif
> >  #include <linux/mii.h>
> > +#include <dm.h>
> >
> >  DECLARE_GLOBAL_DATA_PTR;
> >
> > @@ -1650,6 +1651,13 @@ __weak int serdes_misc_init(void)
> >
> >  int arch_misc_init(void)
> >  {
> > +     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);
> 
> This will fail when the CAAM driver isn't enabled and will then print this error
> message. Should be guarded with IS_ENABLED(FSL_CAAM).
I agree. Will add this.
If you have more comments, please share.
I will check and incorporate the changes in single version.

> 
> 
> > diff --git a/configs/ls2088ardb_tfa_defconfig
> > b/configs/ls2088ardb_tfa_defconfig
> > index a28b45b129..5230d7ead8 100644
> > --- a/configs/ls2088ardb_tfa_defconfig
> > +++ b/configs/ls2088ardb_tfa_defconfig
> > @@ -53,7 +53,6 @@ CONFIG_ENV_ADDR=0x580500000
> > CONFIG_NET_RANDOM_ETHADDR=y  CONFIG_DM=y  CONFIG_SATA_CEVA=y
> > -CONFIG_FSL_CAAM=y
> >  CONFIG_DDR_CLK_FREQ=133333333
> >  CONFIG_DDR_ECC=y
> >  CONFIG_ECC_INIT_VIA_DDRCONTROLLER=y
> ..
> 
> I still don't understand why you make the FSL_CAAM mandatory and remove the
> option here. Same for all other boards.
Instead of enabling FSL_CAAM in every defconfig for a particular board, I moved FSL_CAAM to specific TARGET boards.
this will enable FSL_CAAM to every defconfig for a target board.

Regards
Gaurav Jain
> 
> -michael
Michael Walle Jan. 11, 2022, 12:34 p.m. UTC | #3
Hi Gaurav,

Am 2022-01-11 13:30, schrieb Gaurav Jain:
>> Am 2022-01-11 12:28, schrieb Gaurav Jain:
>> > @@ -1329,6 +1331,7 @@ config TARGET_LS2080ARDB
>> >       select FSL_DDR_BIST
>> >       select FSL_DDR_INTERACTIVE if !SPL
>> >       select GPIO_EXTRA_HEADER
>> > +     select FSL_CAAM
>> 
>> See below.
>> 
>> > diff --git a/arch/arm/cpu/armv8/fsl-layerscape/cpu.c
>> > b/arch/arm/cpu/armv8/fsl-layerscape/cpu.c
>> > index 2ded3e4efc..29aa9a3f10 100644
>> > --- a/arch/arm/cpu/armv8/fsl-layerscape/cpu.c
>> > +++ b/arch/arm/cpu/armv8/fsl-layerscape/cpu.c
>> > @@ -1,6 +1,6 @@
>> >  // SPDX-License-Identifier: GPL-2.0+
>> >  /*
>> > - * Copyright 2017-2020 NXP
>> > + * Copyright 2017-2021 NXP
>> >   * Copyright 2014-2015 Freescale Semiconductor, Inc.
>> >   */
>> >
>> > @@ -49,6 +49,7 @@
>> >  #endif
>> >  #endif
>> >  #include <linux/mii.h>
>> > +#include <dm.h>
>> >
>> >  DECLARE_GLOBAL_DATA_PTR;
>> >
>> > @@ -1650,6 +1651,13 @@ __weak int serdes_misc_init(void)
>> >
>> >  int arch_misc_init(void)
>> >  {
>> > +     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);
>> 
>> This will fail when the CAAM driver isn't enabled and will then print 
>> this error
>> message. Should be guarded with IS_ENABLED(FSL_CAAM).
> I agree. Will add this.
> If you have more comments, please share.
> I will check and incorporate the changes in single version.

Sorry, didn't notice that before.

>> > diff --git a/configs/ls2088ardb_tfa_defconfig
>> > b/configs/ls2088ardb_tfa_defconfig
>> > index a28b45b129..5230d7ead8 100644
>> > --- a/configs/ls2088ardb_tfa_defconfig
>> > +++ b/configs/ls2088ardb_tfa_defconfig
>> > @@ -53,7 +53,6 @@ CONFIG_ENV_ADDR=0x580500000
>> > CONFIG_NET_RANDOM_ETHADDR=y  CONFIG_DM=y  CONFIG_SATA_CEVA=y
>> > -CONFIG_FSL_CAAM=y
>> >  CONFIG_DDR_CLK_FREQ=133333333
>> >  CONFIG_DDR_ECC=y
>> >  CONFIG_ECC_INIT_VIA_DDRCONTROLLER=y
>> ..
>> 
>> I still don't understand why you make the FSL_CAAM mandatory and 
>> remove the
>> option here. Same for all other boards.
> Instead of enabling FSL_CAAM in every defconfig for a particular
> board, I moved FSL_CAAM to specific TARGET boards.
> this will enable FSL_CAAM to every defconfig for a target board.

But a user/developer cannot disable that option anymore in this case.

-michael
Gaurav Jain Jan. 11, 2022, 12:55 p.m. UTC | #4
Hi Michael

> -----Original Message-----
> From: Michael Walle <michael@walle.cc>
> Sent: Tuesday, January 11, 2022 6:04 PM
> To: Gaurav Jain <gaurav.jain@nxp.com>
> Cc: u-boot@lists.denx.de; Stefano Babic <sbabic@denx.de>; Fabio Estevam
> <festevam@gmail.com>; Peng Fan <peng.fan@nxp.com>; Simon Glass
> <sjg@chromium.org>; Priyanka Jain <priyanka.jain@nxp.com>; Ye Li
> <ye.li@nxp.com>; Horia Geanta <horia.geanta@nxp.com>; Ji Luo
> <ji.luo@nxp.com>; Franck Lenormand <franck.lenormand@nxp.com>; Silvano Di
> Ninno <silvano.dininno@nxp.com>; Sahil Malhotra <sahil.malhotra@nxp.com>;
> Pankaj Gupta <pankaj.gupta@nxp.com>; Varun Sethi <V.Sethi@nxp.com>; dl-
> uboot-imx <uboot-imx@nxp.com>; Shengzhou Liu <shengzhou.liu@nxp.com>;
> Mingkai Hu <mingkai.hu@nxp.com>; Rajesh Bhagat <rajesh.bhagat@nxp.com>;
> Meenakshi Aggarwal <meenakshi.aggarwal@nxp.com>; Wasim Khan
> <wasim.khan@nxp.com>; Alison Wang <alison.wang@nxp.com>; Pramod
> Kumar <pramod.kumar_1@nxp.com>; Andy Tang <andy.tang@nxp.com>;
> Adrian Alonso <adrian.alonso@nxp.com>; Vladimir Oltean <olteanv@gmail.com>
> Subject: Re: [EXT] Re: [PATCH v9 11/14] Layerscape: Enable Job ring driver
> model.
> 
> Caution: EXT Email
> 
> Hi Gaurav,
> 
> Am 2022-01-11 13:30, schrieb Gaurav Jain:
> >> Am 2022-01-11 12:28, schrieb Gaurav Jain:
> >> > @@ -1329,6 +1331,7 @@ config TARGET_LS2080ARDB
> >> >       select FSL_DDR_BIST
> >> >       select FSL_DDR_INTERACTIVE if !SPL
> >> >       select GPIO_EXTRA_HEADER
> >> > +     select FSL_CAAM
> >>
> >> See below.
> >>
> >> > diff --git a/arch/arm/cpu/armv8/fsl-layerscape/cpu.c
> >> > b/arch/arm/cpu/armv8/fsl-layerscape/cpu.c
> >> > index 2ded3e4efc..29aa9a3f10 100644
> >> > --- a/arch/arm/cpu/armv8/fsl-layerscape/cpu.c
> >> > +++ b/arch/arm/cpu/armv8/fsl-layerscape/cpu.c
> >> > @@ -1,6 +1,6 @@
> >> >  // SPDX-License-Identifier: GPL-2.0+
> >> >  /*
> >> > - * Copyright 2017-2020 NXP
> >> > + * Copyright 2017-2021 NXP
> >> >   * Copyright 2014-2015 Freescale Semiconductor, Inc.
> >> >   */
> >> >
> >> > @@ -49,6 +49,7 @@
> >> >  #endif
> >> >  #endif
> >> >  #include <linux/mii.h>
> >> > +#include <dm.h>
> >> >
> >> >  DECLARE_GLOBAL_DATA_PTR;
> >> >
> >> > @@ -1650,6 +1651,13 @@ __weak int serdes_misc_init(void)
> >> >
> >> >  int arch_misc_init(void)
> >> >  {
> >> > +     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);
> >>
> >> This will fail when the CAAM driver isn't enabled and will then print
> >> this error message. Should be guarded with IS_ENABLED(FSL_CAAM).
> > I agree. Will add this.
> > If you have more comments, please share.
> > I will check and incorporate the changes in single version.
> 
> Sorry, didn't notice that before.
> 
> >> > diff --git a/configs/ls2088ardb_tfa_defconfig
> >> > b/configs/ls2088ardb_tfa_defconfig
> >> > index a28b45b129..5230d7ead8 100644
> >> > --- a/configs/ls2088ardb_tfa_defconfig
> >> > +++ b/configs/ls2088ardb_tfa_defconfig
> >> > @@ -53,7 +53,6 @@ CONFIG_ENV_ADDR=0x580500000
> >> > CONFIG_NET_RANDOM_ETHADDR=y  CONFIG_DM=y
> CONFIG_SATA_CEVA=y
> >> > -CONFIG_FSL_CAAM=y
> >> >  CONFIG_DDR_CLK_FREQ=133333333
> >> >  CONFIG_DDR_ECC=y
> >> >  CONFIG_ECC_INIT_VIA_DDRCONTROLLER=y
> >> ..
> >>
> >> I still don't understand why you make the FSL_CAAM mandatory and
> >> remove the option here. Same for all other boards.
> > Instead of enabling FSL_CAAM in every defconfig for a particular
> > board, I moved FSL_CAAM to specific TARGET boards.
> > this will enable FSL_CAAM to every defconfig for a target board.
> 
> But a user/developer cannot disable that option anymore in this case.
I have enabled FSL_CAAM only for the boards that are enabling CAAM previously as well.
Current change make it easy, else I have to make change in each defconfig for all target boards. 

Regards
Gaurav Jain
> 
> -michael
Michael Walle Jan. 11, 2022, 1:02 p.m. UTC | #5
Hi,

Am 2022-01-11 13:55, schrieb Gaurav Jain:
>> >> > diff --git a/configs/ls2088ardb_tfa_defconfig
>> >> > b/configs/ls2088ardb_tfa_defconfig
>> >> > index a28b45b129..5230d7ead8 100644
>> >> > --- a/configs/ls2088ardb_tfa_defconfig
>> >> > +++ b/configs/ls2088ardb_tfa_defconfig
>> >> > @@ -53,7 +53,6 @@ CONFIG_ENV_ADDR=0x580500000
>> >> > CONFIG_NET_RANDOM_ETHADDR=y  CONFIG_DM=y
>> CONFIG_SATA_CEVA=y
>> >> > -CONFIG_FSL_CAAM=y
>> >> >  CONFIG_DDR_CLK_FREQ=133333333
>> >> >  CONFIG_DDR_ECC=y
>> >> >  CONFIG_ECC_INIT_VIA_DDRCONTROLLER=y
>> >> ..
>> >>
>> >> I still don't understand why you make the FSL_CAAM mandatory and
>> >> remove the option here. Same for all other boards.
>> > Instead of enabling FSL_CAAM in every defconfig for a particular
>> > board, I moved FSL_CAAM to specific TARGET boards.
>> > this will enable FSL_CAAM to every defconfig for a target board.
>> 
>> But a user/developer cannot disable that option anymore in this case.
> I have enabled FSL_CAAM only for the boards that are enabling CAAM
> previously as well.
> Current change make it easy, else I have to make change in each
> defconfig for all target boards.

But a defconfig is, as the name says, just the default config. A user
can still disable the CAAM driver. If you instead add it as a
"select FSL_CAAM" to the TARGET_ symbol, the user cannot disable
it anymore.

-michael
diff mbox series

Patch

diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index dd01856b3e..aadc915de3 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -1293,6 +1293,7 @@  config TARGET_LS1088AQDS
 	select GPIO_EXTRA_HEADER
 	select SUPPORT_SPL
 	select FSL_DDR_INTERACTIVE if !SD_BOOT
+	select FSL_CAAM
 	help
 	  Support for NXP LS1088AQDS platform.
 	  The LS1088A Development System (QDS) is a high-performance
@@ -1312,6 +1313,7 @@  config TARGET_LS2080AQDS
 	imply SCSI_AHCI
 	select FSL_DDR_BIST
 	select FSL_DDR_INTERACTIVE if !SPL
+	select FSL_CAAM
 	help
 	  Support for Freescale LS2080AQDS platform.
 	  The LS2080A Development System (QDS) is a high-performance
@@ -1329,6 +1331,7 @@  config TARGET_LS2080ARDB
 	select FSL_DDR_BIST
 	select FSL_DDR_INTERACTIVE if !SPL
 	select GPIO_EXTRA_HEADER
+	select FSL_CAAM
 	imply SCSI
 	imply SCSI_AHCI
 	help
@@ -1359,6 +1362,7 @@  config TARGET_LX2160ARDB
 	select ARCH_SUPPORT_TFABOOT
 	select BOARD_LATE_INIT
 	select GPIO_EXTRA_HEADER
+	select FSL_CAAM
 	help
 	  Support for NXP LX2160ARDB platform.
 	  The lx2160ardb (LX2160A Reference design board (RDB)
@@ -1373,6 +1377,7 @@  config TARGET_LX2160AQDS
 	select ARCH_SUPPORT_TFABOOT
 	select BOARD_LATE_INIT
 	select GPIO_EXTRA_HEADER
+	select FSL_CAAM
 	help
 	  Support for NXP LX2160AQDS platform.
 	  The lx2160aqds (LX2160A QorIQ Development System (QDS)
@@ -1388,6 +1393,7 @@  config TARGET_LX2162AQDS
 	select ARCH_SUPPORT_TFABOOT
 	select BOARD_LATE_INIT
 	select GPIO_EXTRA_HEADER
+	select FSL_CAAM
 	help
 	  Support for NXP LX2162AQDS platform.
 	  The lx2162aqds support is based on LX2160A Layerscape Architecture processor.
@@ -1442,6 +1448,8 @@  config TARGET_LS1012AQDS
 	select ARCH_SUPPORT_TFABOOT
 	select BOARD_LATE_INIT
 	select GPIO_EXTRA_HEADER
+	select FSL_CAAM
+	select ARCH_MISC_INIT
 	help
 	  Support for Freescale LS1012AQDS platform.
 	  The LS1012A Development System (QDS) is a high-performance
@@ -1455,6 +1463,8 @@  config TARGET_LS1012ARDB
 	select ARCH_SUPPORT_TFABOOT
 	select BOARD_LATE_INIT
 	select GPIO_EXTRA_HEADER
+	select FSL_CAAM
+	select ARCH_MISC_INIT
 	imply SCSI
 	imply SCSI_AHCI
 	help
@@ -1498,6 +1508,8 @@  config TARGET_LS1012AFRDM
 	select ARM64
 	select ARCH_SUPPORT_TFABOOT
 	select GPIO_EXTRA_HEADER
+	select FSL_CAAM
+	select ARCH_MISC_INIT
 	help
 	  Support for Freescale LS1012AFRDM platform.
 	  The LS1012A Freedom  board (FRDM) is a high-performance
@@ -1512,6 +1524,7 @@  config TARGET_LS1028AQDS
 	select ARCH_SUPPORT_TFABOOT
 	select BOARD_LATE_INIT
 	select GPIO_EXTRA_HEADER
+	select FSL_CAAM
 	help
 	  Support for Freescale LS1028AQDS platform
 	  The LS1028A Development System (QDS) is a high-performance
@@ -1526,6 +1539,7 @@  config TARGET_LS1028ARDB
 	select ARCH_SUPPORT_TFABOOT
 	select BOARD_LATE_INIT
 	select GPIO_EXTRA_HEADER
+	select FSL_CAAM
 	help
 	  Support for Freescale LS1028ARDB platform
 	  The LS1028A Development System (RDB) is a high-performance
@@ -1542,6 +1556,7 @@  config TARGET_LS1088ARDB
 	select SUPPORT_SPL
 	select FSL_DDR_INTERACTIVE if !SD_BOOT
 	select GPIO_EXTRA_HEADER
+	select FSL_CAAM
 	help
 	  Support for NXP LS1088ARDB platform.
 	  The LS1088A Reference design board (RDB) is a high-performance
@@ -1564,6 +1579,8 @@  config TARGET_LS1021AQDS
 	select DM_SPI_FLASH if FSL_DSPI || FSL_QSPI
 	select GPIO_EXTRA_HEADER
 	select SPI_FLASH_DATAFLASH if FSL_DSPI || FSL_QSPI
+	select FSL_CAAM
+	select ARCH_MISC_INIT
 	imply SCSI
 
 config TARGET_LS1021ATWR
@@ -1579,6 +1596,8 @@  config TARGET_LS1021ATWR
 	select SUPPORT_SPL
 	select DM_SPI_FLASH if FSL_DSPI || FSL_QSPI
 	select GPIO_EXTRA_HEADER
+	select FSL_CAAM
+	select ARCH_MISC_INIT
 	imply SCSI
 
 config TARGET_PG_WCOM_SELI8
@@ -1630,6 +1649,8 @@  config TARGET_LS1021ATSN
 	select LS1_DEEP_SLEEP
 	select SUPPORT_SPL
 	select GPIO_EXTRA_HEADER
+	select FSL_CAAM
+	select ARCH_MISC_INIT
 	imply SCSI
 
 config TARGET_LS1021AIOT
@@ -1643,6 +1664,8 @@  config TARGET_LS1021AIOT
 	select SUPPORT_SPL
 	select DM_SPI_FLASH if FSL_DSPI || FSL_QSPI
 	select GPIO_EXTRA_HEADER
+	select FSL_CAAM
+	select ARCH_MISC_INIT
 	imply SCSI
 	help
 	  Support for Freescale LS1021AIOT platform.
@@ -1680,6 +1703,8 @@  config TARGET_LS1043ARDB
 	select FSL_DSPI if !SPL_NO_DSPI
 	select DM_SPI_FLASH if FSL_DSPI
 	select GPIO_EXTRA_HEADER
+	select FSL_CAAM
+	select ARCH_MISC_INIT
 	help
 	  Support for Freescale LS1043ARDB platform.
 
@@ -1697,6 +1722,8 @@  config TARGET_LS1046AQDS
 	select FSL_DDR_INTERACTIVE  if !SPL
 	select FSL_DDR_INTERACTIVE if !SPL
 	select GPIO_EXTRA_HEADER
+	select FSL_CAAM
+	select ARCH_MISC_INIT
 	imply SCSI
 	help
 	  Support for Freescale LS1046AQDS platform.
@@ -1718,6 +1745,8 @@  config TARGET_LS1046ARDB
 	select FSL_DDR_BIST
 	select FSL_DDR_INTERACTIVE if !SPL
 	select GPIO_EXTRA_HEADER
+	select FSL_CAAM
+	select ARCH_MISC_INIT
 	imply SCSI
 	help
 	  Support for Freescale LS1046ARDB platform.
@@ -1735,6 +1764,8 @@  config TARGET_LS1046AFRWY
 	select BOARD_LATE_INIT
 	select DM_SPI_FLASH if DM_SPI
 	select GPIO_EXTRA_HEADER
+	select FSL_CAAM
+	select ARCH_MISC_INIT
 	imply SCSI
 	help
 	  Support for Freescale LS1046AFRWY platform.
diff --git a/arch/arm/cpu/armv7/ls102xa/cpu.c b/arch/arm/cpu/armv7/ls102xa/cpu.c
index d863c9625a..4904592703 100644
--- a/arch/arm/cpu/armv7/ls102xa/cpu.c
+++ b/arch/arm/cpu/armv7/ls102xa/cpu.c
@@ -1,6 +1,7 @@ 
 // SPDX-License-Identifier: GPL-2.0+
 /*
  * Copyright 2014 Freescale Semiconductor, Inc.
+ * Copyright 2021 NXP
  */
 
 #include <common.h>
@@ -20,6 +21,7 @@ 
 #include <config.h>
 #include <fsl_wdog.h>
 #include <linux/delay.h>
+#include <dm.h>
 
 #include "fsl_epu.h"
 
@@ -397,3 +399,17 @@  void arch_preboot_os(void)
 	ctrl &= ~ARCH_TIMER_CTRL_ENABLE;
 	asm("mcr p15, 0, %0, c14, c2, 1" : : "r" (ctrl));
 }
+
+#ifdef CONFIG_ARCH_MISC_INIT
+int arch_misc_init(void)
+{
+	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);
+
+	return 0;
+}
+#endif
diff --git a/arch/arm/cpu/armv8/fsl-layerscape/cpu.c b/arch/arm/cpu/armv8/fsl-layerscape/cpu.c
index 2ded3e4efc..29aa9a3f10 100644
--- a/arch/arm/cpu/armv8/fsl-layerscape/cpu.c
+++ b/arch/arm/cpu/armv8/fsl-layerscape/cpu.c
@@ -1,6 +1,6 @@ 
 // SPDX-License-Identifier: GPL-2.0+
 /*
- * Copyright 2017-2020 NXP
+ * Copyright 2017-2021 NXP
  * Copyright 2014-2015 Freescale Semiconductor, Inc.
  */
 
@@ -49,6 +49,7 @@ 
 #endif
 #endif
 #include <linux/mii.h>
+#include <dm.h>
 
 DECLARE_GLOBAL_DATA_PTR;
 
@@ -1650,6 +1651,13 @@  __weak int serdes_misc_init(void)
 
 int arch_misc_init(void)
 {
+	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);
+
 	serdes_misc_init();
 
 	return 0;
diff --git a/board/freescale/ls1012afrdm/ls1012afrdm.c b/board/freescale/ls1012afrdm/ls1012afrdm.c
index 5dd19cfcd9..bc37c553a5 100644
--- a/board/freescale/ls1012afrdm/ls1012afrdm.c
+++ b/board/freescale/ls1012afrdm/ls1012afrdm.c
@@ -1,6 +1,6 @@ 
 // SPDX-License-Identifier: GPL-2.0+
 /*
- * Copyright 2017-2018 NXP
+ * Copyright 2017-2018, 2021 NXP
  */
 
 #include <common.h>
@@ -22,7 +22,6 @@ 
 #include <env_internal.h>
 #include <fsl_mmdc.h>
 #include <netdev.h>
-#include <fsl_sec.h>
 #include <net/pfe_eth/pfe/pfe_hw.h>
 
 DECLARE_GLOBAL_DATA_PTR;
@@ -172,10 +171,6 @@  int board_init(void)
 	if (current_el() == 3)
 		out_le32(&cci->ctrl_ord, CCI400_CTRLORD_EN_BARRIER);
 
-#ifdef CONFIG_FSL_CAAM
-	sec_init();
-#endif
-
 #ifdef CONFIG_FSL_LS_PPA
 	ppa_init();
 #endif
diff --git a/board/freescale/ls1012aqds/ls1012aqds.c b/board/freescale/ls1012aqds/ls1012aqds.c
index 68578e81a5..361bd5c582 100644
--- a/board/freescale/ls1012aqds/ls1012aqds.c
+++ b/board/freescale/ls1012aqds/ls1012aqds.c
@@ -1,6 +1,7 @@ 
 // SPDX-License-Identifier: GPL-2.0+
 /*
  * Copyright 2016 Freescale Semiconductor, Inc.
+ * Copyright 2021 NXP
  */
 
 #include <common.h>
@@ -28,7 +29,6 @@ 
 #include <fsl_mmdc.h>
 #include <spl.h>
 #include <netdev.h>
-#include <fsl_sec.h>
 #include "../common/qixis.h"
 #include "ls1012aqds_qixis.h"
 #include "ls1012aqds_pfe.h"
@@ -150,10 +150,6 @@  int board_init(void)
 	erratum_a010315();
 #endif
 
-#ifdef CONFIG_FSL_CAAM
-	sec_init();
-#endif
-
 #ifdef CONFIG_FSL_LS_PPA
 	ppa_init();
 #endif
diff --git a/board/freescale/ls1012ardb/ls1012ardb.c b/board/freescale/ls1012ardb/ls1012ardb.c
index 064fb4d39f..456609d993 100644
--- a/board/freescale/ls1012ardb/ls1012ardb.c
+++ b/board/freescale/ls1012ardb/ls1012ardb.c
@@ -1,6 +1,7 @@ 
 // SPDX-License-Identifier: GPL-2.0+
 /*
  * Copyright 2016 Freescale Semiconductor, Inc.
+ * Copyright 2021 NXP
  */
 
 #include <common.h>
@@ -27,7 +28,6 @@ 
 #include <env_internal.h>
 #include <fsl_mmdc.h>
 #include <netdev.h>
-#include <fsl_sec.h>
 #include <net/pfe_eth/pfe/pfe_hw.h>
 
 DECLARE_GLOBAL_DATA_PTR;
@@ -173,10 +173,6 @@  int board_init(void)
 	erratum_a010315();
 #endif
 
-#ifdef CONFIG_FSL_CAAM
-	sec_init();
-#endif
-
 #ifdef CONFIG_FSL_LS_PPA
 	ppa_init();
 #endif
diff --git a/board/freescale/ls1021aiot/ls1021aiot.c b/board/freescale/ls1021aiot/ls1021aiot.c
index bfe6137604..5ab03b3340 100644
--- a/board/freescale/ls1021aiot/ls1021aiot.c
+++ b/board/freescale/ls1021aiot/ls1021aiot.c
@@ -1,6 +1,7 @@ 
 // SPDX-License-Identifier: GPL-2.0+
 /*
  * Copyright 2016 Freescale Semiconductor, Inc.
+ * Copyright 2021 NXP
  */
 
 #include <common.h>
@@ -209,10 +210,7 @@  int misc_init_r(void)
 	device_disable(devdis_tbl, ARRAY_SIZE(devdis_tbl));
 
 #endif
-
-#ifdef CONFIG_FSL_CAAM
-	return sec_init();
-#endif
+	return 0;
 }
 #endif
 
diff --git a/board/freescale/ls1021aqds/ls1021aqds.c b/board/freescale/ls1021aqds/ls1021aqds.c
index 0647622cde..2eaad9e742 100644
--- a/board/freescale/ls1021aqds/ls1021aqds.c
+++ b/board/freescale/ls1021aqds/ls1021aqds.c
@@ -1,7 +1,7 @@ 
 // SPDX-License-Identifier: GPL-2.0+
 /*
  * Copyright 2014 Freescale Semiconductor, Inc.
- * Copyright 2019 NXP
+ * Copyright 2019, 2021 NXP
  */
 
 #include <common.h>
@@ -20,7 +20,6 @@ 
 #include <mmc.h>
 #include <fsl_csu.h>
 #include <fsl_ifc.h>
-#include <fsl_sec.h>
 #include <spl.h>
 #include <fsl_devdis.h>
 #include <fsl_validate.h>
@@ -388,9 +387,6 @@  int misc_init_r(void)
 
 #ifdef CONFIG_FSL_DEVICE_DISABLE
 	device_disable(devdis_tbl, ARRAY_SIZE(devdis_tbl));
-#endif
-#ifdef CONFIG_FSL_CAAM
-	return sec_init();
 #endif
 	return 0;
 }
diff --git a/board/freescale/ls1021atsn/ls1021atsn.c b/board/freescale/ls1021atsn/ls1021atsn.c
index f31e16c419..f016088670 100644
--- a/board/freescale/ls1021atsn/ls1021atsn.c
+++ b/board/freescale/ls1021atsn/ls1021atsn.c
@@ -1,5 +1,5 @@ 
 // SPDX-License-Identifier: GPL-2.0
-/* Copyright 2016-2019 NXP
+/* Copyright 2016-2019, 2021 NXP
  */
 #include <common.h>
 #include <clock_legacy.h>
@@ -238,10 +238,7 @@  int misc_init_r(void)
 #ifdef CONFIG_FSL_DEVICE_DISABLE
 	device_disable(devdis_tbl, ARRAY_SIZE(devdis_tbl));
 #endif
-
-#ifdef CONFIG_FSL_CAAM
-	return sec_init();
-#endif
+	return 0;
 }
 #endif
 
diff --git a/board/freescale/ls1021atwr/ls1021atwr.c b/board/freescale/ls1021atwr/ls1021atwr.c
index f0b441db63..a2a87eaf35 100644
--- a/board/freescale/ls1021atwr/ls1021atwr.c
+++ b/board/freescale/ls1021atwr/ls1021atwr.c
@@ -1,7 +1,7 @@ 
 // SPDX-License-Identifier: GPL-2.0+
 /*
  * Copyright 2014 Freescale Semiconductor, Inc.
- * Copyright 2019 NXP
+ * Copyright 2019, 2021 NXP
  */
 
 #include <common.h>
@@ -26,7 +26,6 @@ 
 #include <netdev.h>
 #include <fsl_mdio.h>
 #include <tsec.h>
-#include <fsl_sec.h>
 #include <fsl_devdis.h>
 #include <spl.h>
 #include <linux/delay.h>
@@ -555,10 +554,7 @@  int misc_init_r(void)
 #if !defined(CONFIG_QSPI_BOOT) && !defined(CONFIG_SD_BOOT_QSPI)
 	config_board_mux();
 #endif
-
-#ifdef CONFIG_FSL_CAAM
-	return sec_init();
-#endif
+	return 0;
 }
 #endif
 
diff --git a/board/freescale/ls1028a/ls1028a.c b/board/freescale/ls1028a/ls1028a.c
index 486a544d35..71a086ef67 100644
--- a/board/freescale/ls1028a/ls1028a.c
+++ b/board/freescale/ls1028a/ls1028a.c
@@ -1,6 +1,6 @@ 
 // SPDX-License-Identifier: GPL-2.0+
 /*
- * Copyright 2019 NXP
+ * Copyright 2019, 2021 NXP
  */
 
 #include <common.h>
@@ -73,10 +73,6 @@  u32 get_lpuart_clk(void)
 
 int board_init(void)
 {
-#ifdef CONFIG_FSL_CAAM
-	sec_init();
-#endif
-
 #ifdef CONFIG_FSL_LS_PPA
 	ppa_init();
 #endif
diff --git a/board/freescale/ls1043ardb/ls1043ardb.c b/board/freescale/ls1043ardb/ls1043ardb.c
index beef26b084..c7f214c236 100644
--- a/board/freescale/ls1043ardb/ls1043ardb.c
+++ b/board/freescale/ls1043ardb/ls1043ardb.c
@@ -1,6 +1,7 @@ 
 // SPDX-License-Identifier: GPL-2.0+
 /*
  * Copyright 2015 Freescale Semiconductor, Inc.
+ * Copyright 2021 NXP
  */
 
 #include <common.h>
@@ -20,7 +21,6 @@ 
 #include <fm_eth.h>
 #include <fsl_esdhc.h>
 #include <fsl_ifc.h>
-#include <fsl_sec.h>
 #include "cpld.h"
 #ifdef CONFIG_U_QE
 #include <fsl_qe.h>
@@ -211,10 +211,6 @@  int board_init(void)
 	out_le32(SMMU_NSCR0, val);
 #endif
 
-#ifdef CONFIG_FSL_CAAM
-	sec_init();
-#endif
-
 #ifdef CONFIG_FSL_LS_PPA
 	ppa_init();
 #endif
diff --git a/board/freescale/ls1046afrwy/ls1046afrwy.c b/board/freescale/ls1046afrwy/ls1046afrwy.c
index f1c08a13f7..5a298cd311 100644
--- a/board/freescale/ls1046afrwy/ls1046afrwy.c
+++ b/board/freescale/ls1046afrwy/ls1046afrwy.c
@@ -1,6 +1,6 @@ 
 // SPDX-License-Identifier: GPL-2.0+
 /*
- * Copyright 2019 NXP
+ * Copyright 2019, 2021 NXP
  */
 
 #include <common.h>
@@ -20,7 +20,6 @@ 
 #include <fm_eth.h>
 #include <fsl_csu.h>
 #include <fsl_esdhc.h>
-#include <fsl_sec.h>
 #include <fsl_dspi.h>
 #include "../common/i2c_mux.h"
 
@@ -135,10 +134,6 @@  val = (in_le32(SMMU_SCR0) | SCR0_CLIENTPD_MASK) & ~(SCR0_USFCFG_MASK);
 	out_le32(SMMU_NSCR0, val);
 #endif
 
-#ifdef CONFIG_FSL_CAAM
-	sec_init();
-#endif
-
 	select_i2c_ch_pca9547(I2C_MUX_CH_DEFAULT, 0);
 	return 0;
 }
diff --git a/board/freescale/ls1046aqds/ls1046aqds.c b/board/freescale/ls1046aqds/ls1046aqds.c
index 8481c45a58..e5b5441e2c 100644
--- a/board/freescale/ls1046aqds/ls1046aqds.c
+++ b/board/freescale/ls1046aqds/ls1046aqds.c
@@ -1,7 +1,7 @@ 
 // SPDX-License-Identifier: GPL-2.0+
 /*
  * Copyright 2016 Freescale Semiconductor, Inc.
- * Copyright 2019-2020 NXP
+ * Copyright 2019-2021 NXP
  */
 
 #include <common.h>
@@ -28,7 +28,6 @@ 
 #include <fsl_csu.h>
 #include <fsl_esdhc.h>
 #include <fsl_ifc.h>
-#include <fsl_sec.h>
 #include <spl.h>
 #include "../common/i2c_mux.h"
 
@@ -421,10 +420,6 @@  int board_init(void)
 	out_le32(SMMU_NSCR0, val);
 #endif
 
-#ifdef CONFIG_FSL_CAAM
-	sec_init();
-#endif
-
 	return 0;
 }
 
diff --git a/board/freescale/ls1046ardb/ls1046ardb.c b/board/freescale/ls1046ardb/ls1046ardb.c
index 93ef903f29..2e9a6d44eb 100644
--- a/board/freescale/ls1046ardb/ls1046ardb.c
+++ b/board/freescale/ls1046ardb/ls1046ardb.c
@@ -1,6 +1,7 @@ 
 // SPDX-License-Identifier: GPL-2.0+
 /*
  * Copyright 2016 Freescale Semiconductor, Inc.
+ * Copyright 2021 NXP
  */
 
 #include <common.h>
@@ -23,7 +24,6 @@ 
 #include <fsl_esdhc.h>
 #include <power/mc34vr500_pmic.h>
 #include "cpld.h"
-#include <fsl_sec.h>
 
 DECLARE_GLOBAL_DATA_PTR;
 
@@ -85,10 +85,6 @@  int board_init(void)
 	out_le32(SMMU_NSCR0, val);
 #endif
 
-#ifdef CONFIG_FSL_CAAM
-	sec_init();
-#endif
-
 #ifdef CONFIG_FSL_LS_PPA
 	ppa_init();
 #endif
diff --git a/board/freescale/ls1088a/ls1088a.c b/board/freescale/ls1088a/ls1088a.c
index aa548b20d7..db94ee5689 100644
--- a/board/freescale/ls1088a/ls1088a.c
+++ b/board/freescale/ls1088a/ls1088a.c
@@ -1,6 +1,6 @@ 
 // SPDX-License-Identifier: GPL-2.0+
 /*
- * Copyright 2017-2018 NXP
+ * Copyright 2017-2018, 2021 NXP
  */
 #include <common.h>
 #include <clock_legacy.h>
@@ -13,7 +13,6 @@ 
 #include <netdev.h>
 #include <fsl_ifc.h>
 #include <fsl_ddr.h>
-#include <fsl_sec.h>
 #include <asm/global_data.h>
 #include <asm/io.h>
 #include <fdt_support.h>
@@ -820,9 +819,6 @@  int board_init(void)
 	out_le32(irq_ccsr + IRQCR_OFFSET / 4, AQR105_IRQ_MASK);
 #endif
 
-#ifdef CONFIG_FSL_CAAM
-	sec_init();
-#endif
 #ifdef CONFIG_FSL_LS_PPA
 	ppa_init();
 #endif
diff --git a/board/freescale/ls2080aqds/ls2080aqds.c b/board/freescale/ls2080aqds/ls2080aqds.c
index 297629d5ef..5bdafebb6b 100644
--- a/board/freescale/ls2080aqds/ls2080aqds.c
+++ b/board/freescale/ls2080aqds/ls2080aqds.c
@@ -1,6 +1,7 @@ 
 // SPDX-License-Identifier: GPL-2.0+
 /*
  * Copyright 2015 Freescale Semiconductor
+ * Copyright 2021 NXP
  */
 #include <common.h>
 #include <clock_legacy.h>
@@ -21,7 +22,6 @@ 
 #include <rtc.h>
 #include <asm/arch/soc.h>
 #include <hwconfig.h>
-#include <fsl_sec.h>
 #include <asm/arch/ppa.h>
 #include <asm/arch-fsl-layerscape/fsl_icid.h>
 #include "../common/i2c_mux.h"
@@ -222,10 +222,6 @@  int board_init(void)
 #endif
 #endif
 
-#ifdef CONFIG_FSL_CAAM
-	sec_init();
-#endif
-
 #ifdef CONFIG_FSL_LS_PPA
 	ppa_init();
 #endif
diff --git a/board/freescale/ls2080ardb/ls2080ardb.c b/board/freescale/ls2080ardb/ls2080ardb.c
index 1975b0f47d..f5ebb934eb 100644
--- a/board/freescale/ls2080ardb/ls2080ardb.c
+++ b/board/freescale/ls2080ardb/ls2080ardb.c
@@ -1,7 +1,7 @@ 
 // SPDX-License-Identifier: GPL-2.0+
 /*
  * Copyright 2015 Freescale Semiconductor
- * Copyright 2017 NXP
+ * Copyright 2017, 2021 NXP
  */
 #include <common.h>
 #include <clock_legacy.h>
@@ -24,7 +24,6 @@ 
 #include <asm/arch/mmu.h>
 #include <asm/arch/soc.h>
 #include <asm/arch/ppa.h>
-#include <fsl_sec.h>
 #include <asm/arch-fsl-layerscape/fsl_icid.h>
 #include "../common/i2c_mux.h"
 
@@ -288,9 +287,6 @@  int board_init(void)
 	QIXIS_WRITE(rst_ctl, QIXIS_RST_CTL_RESET_EN);
 #endif
 
-#ifdef CONFIG_FSL_CAAM
-	sec_init();
-#endif
 #ifdef CONFIG_FSL_LS_PPA
 	ppa_init();
 #endif
@@ -299,9 +295,6 @@  int board_init(void)
 	/* invert AQR405 IRQ pins polarity */
 	out_le32(irq_ccsr + IRQCR_OFFSET / 4, AQR405_IRQ_MASK);
 #endif
-#ifdef CONFIG_FSL_CAAM
-	sec_init();
-#endif
 
 #if !defined(CONFIG_SYS_EARLY_PCI_INIT) && defined(CONFIG_DM_ETH)
 	pci_init();
diff --git a/board/freescale/lx2160a/lx2160a.c b/board/freescale/lx2160a/lx2160a.c
index bda665624d..c8a47c6bae 100644
--- a/board/freescale/lx2160a/lx2160a.c
+++ b/board/freescale/lx2160a/lx2160a.c
@@ -14,7 +14,6 @@ 
 #include <errno.h>
 #include <netdev.h>
 #include <fsl_ddr.h>
-#include <fsl_sec.h>
 #include <asm/io.h>
 #include <fdt_support.h>
 #include <linux/bitops.h>
@@ -596,10 +595,6 @@  int board_init(void)
 	out_le32(irq_ccsr + IRQCR_OFFSET / 4, AQR107_IRQ_MASK);
 #endif
 
-#ifdef CONFIG_FSL_CAAM
-	sec_init();
-#endif
-
 #if !defined(CONFIG_SYS_EARLY_PCI_INIT) && defined(CONFIG_DM_ETH)
 	pci_init();
 #endif
diff --git a/board/kontron/sl28/sl28.c b/board/kontron/sl28/sl28.c
index e84b356918..7f2a8aac62 100644
--- a/board/kontron/sl28/sl28.c
+++ b/board/kontron/sl28/sl28.c
@@ -28,9 +28,6 @@  int board_early_init_f(void)
 
 int board_init(void)
 {
-	if (CONFIG_IS_ENABLED(FSL_CAAM))
-		sec_init();
-
 	return 0;
 }
 
diff --git a/configs/ls1021aiot_qspi_defconfig b/configs/ls1021aiot_qspi_defconfig
index 4705e34e1d..6e5ce2ed92 100644
--- a/configs/ls1021aiot_qspi_defconfig
+++ b/configs/ls1021aiot_qspi_defconfig
@@ -38,7 +38,6 @@  CONFIG_ENV_IS_IN_SPI_FLASH=y
 CONFIG_SYS_RELOC_GD_ENV_ADDR=y
 CONFIG_DM=y
 CONFIG_SATA_CEVA=y
-CONFIG_FSL_CAAM=y
 CONFIG_DM_I2C=y
 CONFIG_SPL_SYS_I2C_LEGACY=y
 CONFIG_I2C_SET_DEFAULT_BUS_NUM=y
diff --git a/configs/ls1021aqds_nor_defconfig b/configs/ls1021aqds_nor_defconfig
index f4e2274fb8..ab3276ca54 100644
--- a/configs/ls1021aqds_nor_defconfig
+++ b/configs/ls1021aqds_nor_defconfig
@@ -51,7 +51,6 @@  CONFIG_ENV_IS_IN_FLASH=y
 CONFIG_ENV_ADDR=0x60300000
 CONFIG_DM=y
 CONFIG_SATA_CEVA=y
-CONFIG_FSL_CAAM=y
 CONFIG_DYNAMIC_DDR_CLK_FREQ=y
 CONFIG_SYS_FSL_DDR3=y
 CONFIG_DDR_ECC=y
diff --git a/configs/ls1021aqds_qspi_defconfig b/configs/ls1021aqds_qspi_defconfig
index f967619ef9..6c60bb384a 100644
--- a/configs/ls1021aqds_qspi_defconfig
+++ b/configs/ls1021aqds_qspi_defconfig
@@ -50,7 +50,6 @@  CONFIG_ENV_IS_IN_SPI_FLASH=y
 CONFIG_SYS_RELOC_GD_ENV_ADDR=y
 CONFIG_DM=y
 CONFIG_SATA_CEVA=y
-CONFIG_FSL_CAAM=y
 CONFIG_SYS_FSL_DDR3=y
 CONFIG_DDR_ECC=y
 CONFIG_ECC_INIT_VIA_DDRCONTROLLER=y
diff --git a/configs/ls1021atsn_qspi_defconfig b/configs/ls1021atsn_qspi_defconfig
index 5c8cee3ea9..ad199ce482 100644
--- a/configs/ls1021atsn_qspi_defconfig
+++ b/configs/ls1021atsn_qspi_defconfig
@@ -37,7 +37,6 @@  CONFIG_ENV_IS_IN_SPI_FLASH=y
 CONFIG_SYS_RELOC_GD_ENV_ADDR=y
 CONFIG_NET_RANDOM_ETHADDR=y
 CONFIG_DM=y
-CONFIG_FSL_CAAM=y
 CONFIG_DM_I2C=y
 CONFIG_SPL_SYS_I2C_LEGACY=y
 CONFIG_I2C_SET_DEFAULT_BUS_NUM=y
diff --git a/configs/ls1021atwr_nor_defconfig b/configs/ls1021atwr_nor_defconfig
index 02c25cda7d..e7ed10cbd6 100644
--- a/configs/ls1021atwr_nor_defconfig
+++ b/configs/ls1021atwr_nor_defconfig
@@ -45,7 +45,6 @@  CONFIG_ENV_IS_IN_FLASH=y
 CONFIG_ENV_ADDR=0x60300000
 CONFIG_DM=y
 CONFIG_SATA_CEVA=y
-CONFIG_FSL_CAAM=y
 CONFIG_MPC8XXX_GPIO=y
 CONFIG_DM_I2C=y
 CONFIG_SPL_SYS_I2C_LEGACY=y
diff --git a/configs/ls1021atwr_sdcard_ifc_SECURE_BOOT_defconfig b/configs/ls1021atwr_sdcard_ifc_SECURE_BOOT_defconfig
index 756e072f9c..8a3233e54a 100644
--- a/configs/ls1021atwr_sdcard_ifc_SECURE_BOOT_defconfig
+++ b/configs/ls1021atwr_sdcard_ifc_SECURE_BOOT_defconfig
@@ -62,6 +62,7 @@  CONFIG_ENV_OVERWRITE=y
 CONFIG_SYS_RELOC_GD_ENV_ADDR=y
 CONFIG_DM=y
 CONFIG_SPL_DM=y
+CONFIG_SPL_OF_CONTROL=y
 # CONFIG_SPL_BLK is not set
 CONFIG_MPC8XXX_GPIO=y
 CONFIG_DM_I2C=y
diff --git a/configs/ls1028ardb_tfa_defconfig b/configs/ls1028ardb_tfa_defconfig
index b58254dc65..dbe2ed37cb 100644
--- a/configs/ls1028ardb_tfa_defconfig
+++ b/configs/ls1028ardb_tfa_defconfig
@@ -49,7 +49,6 @@  CONFIG_NETCONSOLE=y
 CONFIG_DM=y
 CONFIG_SCSI_AHCI=y
 CONFIG_SATA_CEVA=y
-CONFIG_FSL_CAAM=y
 # CONFIG_DDR_SPD is not set
 CONFIG_MPC8XXX_GPIO=y
 CONFIG_DM_I2C=y
diff --git a/configs/ls1043ardb_tfa_defconfig b/configs/ls1043ardb_tfa_defconfig
index 99c125731f..262082f893 100644
--- a/configs/ls1043ardb_tfa_defconfig
+++ b/configs/ls1043ardb_tfa_defconfig
@@ -41,7 +41,6 @@  CONFIG_ENV_IS_IN_MMC=y
 CONFIG_ENV_IS_IN_NAND=y
 CONFIG_ENV_ADDR=0x60500000
 CONFIG_DM=y
-CONFIG_FSL_CAAM=y
 # CONFIG_DDR_SPD is not set
 CONFIG_ECC_INIT_VIA_DDRCONTROLLER=y
 CONFIG_MPC8XXX_GPIO=y
diff --git a/configs/ls1046afrwy_tfa_defconfig b/configs/ls1046afrwy_tfa_defconfig
index af07b1cd46..548b95a300 100644
--- a/configs/ls1046afrwy_tfa_defconfig
+++ b/configs/ls1046afrwy_tfa_defconfig
@@ -39,7 +39,6 @@  CONFIG_ENV_ADDR=0x40500000
 CONFIG_SYS_RELOC_GD_ENV_ADDR=y
 CONFIG_DM=y
 CONFIG_SATA_CEVA=y
-CONFIG_FSL_CAAM=y
 # CONFIG_DDR_SPD is not set
 CONFIG_MPC8XXX_GPIO=y
 CONFIG_DM_I2C=y
diff --git a/configs/ls1046aqds_tfa_defconfig b/configs/ls1046aqds_tfa_defconfig
index f706dd6179..3858746d69 100644
--- a/configs/ls1046aqds_tfa_defconfig
+++ b/configs/ls1046aqds_tfa_defconfig
@@ -59,7 +59,6 @@  CONFIG_ENV_ADDR=0x60500000
 CONFIG_SYS_RELOC_GD_ENV_ADDR=y
 CONFIG_DM=y
 CONFIG_SATA_CEVA=y
-CONFIG_FSL_CAAM=y
 CONFIG_DYNAMIC_DDR_CLK_FREQ=y
 CONFIG_DDR_ECC=y
 CONFIG_ECC_INIT_VIA_DDRCONTROLLER=y
diff --git a/configs/ls1046ardb_tfa_defconfig b/configs/ls1046ardb_tfa_defconfig
index 149091af4a..4c636caf6d 100644
--- a/configs/ls1046ardb_tfa_defconfig
+++ b/configs/ls1046ardb_tfa_defconfig
@@ -44,7 +44,6 @@  CONFIG_ENV_ADDR=0x40500000
 CONFIG_SYS_RELOC_GD_ENV_ADDR=y
 CONFIG_DM=y
 CONFIG_SATA_CEVA=y
-CONFIG_FSL_CAAM=y
 CONFIG_DDR_ECC=y
 CONFIG_ECC_INIT_VIA_DDRCONTROLLER=y
 CONFIG_MPC8XXX_GPIO=y
diff --git a/configs/ls2088aqds_tfa_defconfig b/configs/ls2088aqds_tfa_defconfig
index 61e0fdf113..f652c9860a 100644
--- a/configs/ls2088aqds_tfa_defconfig
+++ b/configs/ls2088aqds_tfa_defconfig
@@ -51,7 +51,6 @@  CONFIG_SYS_RELOC_GD_ENV_ADDR=y
 CONFIG_NET_RANDOM_ETHADDR=y
 CONFIG_DM=y
 CONFIG_SATA_CEVA=y
-CONFIG_FSL_CAAM=y
 CONFIG_DYNAMIC_DDR_CLK_FREQ=y
 CONFIG_DDR_ECC=y
 CONFIG_ECC_INIT_VIA_DDRCONTROLLER=y
diff --git a/configs/ls2088ardb_tfa_defconfig b/configs/ls2088ardb_tfa_defconfig
index a28b45b129..5230d7ead8 100644
--- a/configs/ls2088ardb_tfa_defconfig
+++ b/configs/ls2088ardb_tfa_defconfig
@@ -53,7 +53,6 @@  CONFIG_ENV_ADDR=0x580500000
 CONFIG_NET_RANDOM_ETHADDR=y
 CONFIG_DM=y
 CONFIG_SATA_CEVA=y
-CONFIG_FSL_CAAM=y
 CONFIG_DDR_CLK_FREQ=133333333
 CONFIG_DDR_ECC=y
 CONFIG_ECC_INIT_VIA_DDRCONTROLLER=y
diff --git a/configs/lx2160aqds_tfa_defconfig b/configs/lx2160aqds_tfa_defconfig
index de8dc553d1..74314c0be2 100644
--- a/configs/lx2160aqds_tfa_defconfig
+++ b/configs/lx2160aqds_tfa_defconfig
@@ -56,7 +56,6 @@  CONFIG_ENV_ADDR=0x20500000
 CONFIG_NET_RANDOM_ETHADDR=y
 CONFIG_DM=y
 CONFIG_SATA_CEVA=y
-CONFIG_FSL_CAAM=y
 CONFIG_DYNAMIC_DDR_CLK_FREQ=y
 CONFIG_DDR_ECC=y
 CONFIG_ECC_INIT_VIA_DDRCONTROLLER=y
diff --git a/configs/lx2160ardb_tfa_defconfig b/configs/lx2160ardb_tfa_defconfig
index 59955eebbe..3af38a68d0 100644
--- a/configs/lx2160ardb_tfa_defconfig
+++ b/configs/lx2160ardb_tfa_defconfig
@@ -55,7 +55,6 @@  CONFIG_ENV_ADDR=0x20500000
 CONFIG_NET_RANDOM_ETHADDR=y
 CONFIG_DM=y
 CONFIG_SATA_CEVA=y
-CONFIG_FSL_CAAM=y
 CONFIG_DYNAMIC_DDR_CLK_FREQ=y
 CONFIG_DDR_ECC=y
 CONFIG_ECC_INIT_VIA_DDRCONTROLLER=y
diff --git a/configs/lx2162aqds_tfa_defconfig b/configs/lx2162aqds_tfa_defconfig
index 203554b61f..8fa5406678 100644
--- a/configs/lx2162aqds_tfa_defconfig
+++ b/configs/lx2162aqds_tfa_defconfig
@@ -58,7 +58,6 @@  CONFIG_ENV_ADDR=0x20500000
 CONFIG_NET_RANDOM_ETHADDR=y
 CONFIG_DM=y
 CONFIG_SATA_CEVA=y
-CONFIG_FSL_CAAM=y
 CONFIG_DYNAMIC_DDR_CLK_FREQ=y
 CONFIG_DDR_ECC=y
 CONFIG_ECC_INIT_VIA_DDRCONTROLLER=y