]> git.dujemihanovic.xyz Git - u-boot.git/commitdiff
crypto: caam: Add CAAM support to i.MX8M platforms
authorAymen Sghaier <aymen.sghaier@nxp.com>
Thu, 25 Mar 2021 09:30:25 +0000 (17:30 +0800)
committerStefano Babic <sbabic@denx.de>
Thu, 8 Apr 2021 07:18:29 +0000 (09:18 +0200)
This patch enable CAAM support for i.MX8M platforms.

Signed-off-by: Aymen Sghaier <aymen.sghaier@nxp.com>
Signed-off-by: Peng Fan <peng.fan@nxp.com>
arch/arm/Kconfig
arch/arm/mach-imx/imx8m/Kconfig
drivers/crypto/fsl/jobdesc.c
include/fsl_sec.h

index 70b9ad5b9f92c2d388bd2af218045b53f47d3bcd..76adf7fdb2430db0d791344d2be4a880b5b332b8 100644 (file)
@@ -839,6 +839,9 @@ config ARCH_IMX8
 config ARCH_IMX8M
        bool "NXP i.MX8M platform"
        select ARM64
+       select SYS_FSL_HAS_SEC if IMX_HAB
+       select SYS_FSL_SEC_COMPAT_4
+       select SYS_FSL_SEC_LE
        select DM
        select SUPPORT_SPL
        imply CMD_DM
index 59a45f7b01f0c7ba8f8d3966ef4f00b8d212d0f3..e7e1315bac5b72c7ed76b7d4a20c8815399dd6a1 100644 (file)
@@ -2,6 +2,7 @@ if ARCH_IMX8M
 
 config IMX8M
        bool
+       select HAS_CAAM
        select ROM_UNIFIED_SECTIONS
 
 config IMX8MQ
index 8c3db64527ec49e350b31fb31e80c85c775379e9..0120a5c9772b481492bba21541b16a966a7ade6f 100644 (file)
@@ -4,6 +4,7 @@
  * Basic job descriptor construction
  *
  * Copyright 2014 Freescale Semiconductor, Inc.
+ * Copyright 2018 NXP
  *
  */
 
@@ -15,7 +16,8 @@
 #include "rsa_caam.h"
 #include <asm/cache.h>
 
-#if defined(CONFIG_MX6) || defined(CONFIG_MX7) || defined(CONFIG_MX7ULP)
+#if defined(CONFIG_MX6) || defined(CONFIG_MX7) || defined(CONFIG_MX7ULP) || \
+               defined(CONFIG_IMX8M)
 /*!
  * Secure memory run command
  *
index a98f6cb12ae0bed5152c38ce72c2071b0b37469e..c531a144778136b7f738f62274856525847d4941 100644 (file)
@@ -3,6 +3,7 @@
  * Common internal memory map for some Freescale SoCs
  *
  * Copyright 2014 Freescale Semiconductor, Inc.
+ * Copyright 2018 NXP
  */
 
 #ifndef __FSL_SEC_H
@@ -195,7 +196,8 @@ typedef struct ccsr_sec {
 
 struct jr_regs {
 #if defined(CONFIG_SYS_FSL_SEC_LE) && \
-       !(defined(CONFIG_MX6) || defined(CONFIG_MX7) || defined(CONFIG_MX7ULP))
+       !(defined(CONFIG_MX6) || defined(CONFIG_MX7) || \
+         defined(CONFIG_MX7ULP) || defined(CONFIG_IMX8M))
        u32 irba_l;
        u32 irba_h;
 #else
@@ -209,7 +211,8 @@ struct jr_regs {
        u32 rsvd3;
        u32 irja;
 #if defined(CONFIG_SYS_FSL_SEC_LE) && \
-       !(defined(CONFIG_MX6) || defined(CONFIG_MX7) || defined(CONFIG_MX7ULP))
+       !(defined(CONFIG_MX6) || defined(CONFIG_MX7) || \
+         defined(CONFIG_MX7ULP) || defined(CONFIG_IMX8M))
        u32 orba_l;
        u32 orba_h;
 #else
@@ -242,7 +245,8 @@ struct jr_regs {
  */
 struct sg_entry {
 #if defined(CONFIG_SYS_FSL_SEC_LE) && \
-       !(defined(CONFIG_MX6) || defined(CONFIG_MX7) || defined(CONFIG_MX7ULP))
+       !(defined(CONFIG_MX6) || defined(CONFIG_MX7) || \
+         defined(CONFIG_MX7ULP) || defined(CONFIG_IMX8M))
        uint32_t addr_lo;       /* Memory Address - lo */
        uint32_t addr_hi;       /* Memory Address of start of buffer - hi */
 #else
@@ -263,7 +267,8 @@ struct sg_entry {
 
 #define BLOB_SIZE(x)           ((x) + 32 + 16) /* Blob buffer size */
 
-#if defined(CONFIG_MX6) || defined(CONFIG_MX7) || defined(CONFIG_MX7ULP)
+#if defined(CONFIG_MX6) || defined(CONFIG_MX7) || \
+       defined(CONFIG_MX7ULP) || defined(CONFIG_IMX8M)
 /* Job Ring Base Address */
 #define JR_BASE_ADDR(x) (CONFIG_SYS_FSL_SEC_ADDR + 0x1000 * (x + 1))
 /* Secure Memory Offset varies accross versions */