MLK-18044-1: crypto: caam: Add CAAM support to i.MX8M platforms
This patch enable CAAM support for i.MX8M platforms. Signed-off-by: Aymen Sghaier <aymen.sghaier@nxp.com> (cherry picked from commit 1fc92e6e34b06bdee81240ce06326aca1d9c02d8)
This commit is contained in:
parent
5d797db35d
commit
b0f889b77b
|
|
@ -611,6 +611,9 @@ config ARCH_IMX8
|
||||||
config ARCH_IMX8M
|
config ARCH_IMX8M
|
||||||
bool "NXP i.MX8M platform"
|
bool "NXP i.MX8M platform"
|
||||||
select ARM64
|
select ARM64
|
||||||
|
select SYS_FSL_HAS_SEC if SECURE_BOOT
|
||||||
|
select SYS_FSL_SEC_COMPAT_4
|
||||||
|
select SYS_FSL_SEC_LE
|
||||||
select DM
|
select DM
|
||||||
select SUPPORT_SPL
|
select SUPPORT_SPL
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright 2017 NXP
|
* Copyright 2017-2018 NXP
|
||||||
*
|
*
|
||||||
* SPDX-License-Identifier: GPL-2.0+
|
* SPDX-License-Identifier: GPL-2.0+
|
||||||
*/
|
*/
|
||||||
|
|
@ -129,6 +129,16 @@
|
||||||
#define DDRC_IPS_BASE_ADDR(X) (0x3d400000 + ((X) * 0x2000000))
|
#define DDRC_IPS_BASE_ADDR(X) (0x3d400000 + ((X) * 0x2000000))
|
||||||
#define DDR_CSD1_BASE_ADDR 0x40000000
|
#define DDR_CSD1_BASE_ADDR 0x40000000
|
||||||
|
|
||||||
|
#define CAAM_ARB_BASE_ADDR (0x00100000)
|
||||||
|
#define CAAM_ARB_END_ADDR (0x00107FFF)
|
||||||
|
#define CAAM_IPS_BASE_ADDR (0x30900000)
|
||||||
|
#define CONFIG_SYS_FSL_SEC_OFFSET (0)
|
||||||
|
#define CONFIG_SYS_FSL_SEC_ADDR (CAAM_IPS_BASE_ADDR + \
|
||||||
|
CONFIG_SYS_FSL_SEC_OFFSET)
|
||||||
|
#define CONFIG_SYS_FSL_JR0_OFFSET (0x1000)
|
||||||
|
#define CONFIG_SYS_FSL_JR0_ADDR (CONFIG_SYS_FSL_SEC_ADDR + \
|
||||||
|
CONFIG_SYS_FSL_JR0_OFFSET)
|
||||||
|
#define CONFIG_SYS_FSL_MAX_NUM_OF_SEC 1
|
||||||
#if !defined(__ASSEMBLY__)
|
#if !defined(__ASSEMBLY__)
|
||||||
#include <asm/types.h>
|
#include <asm/types.h>
|
||||||
#include <linux/bitops.h>
|
#include <linux/bitops.h>
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,7 @@ if ARCH_IMX8M
|
||||||
|
|
||||||
config IMX8M
|
config IMX8M
|
||||||
bool
|
bool
|
||||||
|
select HAS_CAAM
|
||||||
select ROM_UNIFIED_SECTIONS
|
select ROM_UNIFIED_SECTIONS
|
||||||
|
|
||||||
choice
|
choice
|
||||||
|
|
|
||||||
|
|
@ -3,6 +3,7 @@
|
||||||
* Basic job descriptor construction
|
* Basic job descriptor construction
|
||||||
*
|
*
|
||||||
* Copyright 2014 Freescale Semiconductor, Inc.
|
* Copyright 2014 Freescale Semiconductor, Inc.
|
||||||
|
* Copyright 2018 NXP
|
||||||
*
|
*
|
||||||
* SPDX-License-Identifier: GPL-2.0+
|
* SPDX-License-Identifier: GPL-2.0+
|
||||||
*
|
*
|
||||||
|
|
@ -14,7 +15,8 @@
|
||||||
#include "jobdesc.h"
|
#include "jobdesc.h"
|
||||||
#include "rsa_caam.h"
|
#include "rsa_caam.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
|
* Secure memory run command
|
||||||
*
|
*
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,7 @@
|
||||||
* Common internal memory map for some Freescale SoCs
|
* Common internal memory map for some Freescale SoCs
|
||||||
*
|
*
|
||||||
* Copyright 2014 Freescale Semiconductor, Inc.
|
* Copyright 2014 Freescale Semiconductor, Inc.
|
||||||
|
* Copyright 2018 NXP
|
||||||
*
|
*
|
||||||
* SPDX-License-Identifier: GPL-2.0+
|
* SPDX-License-Identifier: GPL-2.0+
|
||||||
*/
|
*/
|
||||||
|
|
@ -152,7 +153,8 @@ typedef struct ccsr_sec {
|
||||||
|
|
||||||
struct jr_regs {
|
struct jr_regs {
|
||||||
#if defined(CONFIG_SYS_FSL_SEC_LE) && \
|
#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_l;
|
||||||
u32 irba_h;
|
u32 irba_h;
|
||||||
#else
|
#else
|
||||||
|
|
@ -166,7 +168,8 @@ struct jr_regs {
|
||||||
u32 rsvd3;
|
u32 rsvd3;
|
||||||
u32 irja;
|
u32 irja;
|
||||||
#if defined(CONFIG_SYS_FSL_SEC_LE) && \
|
#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_l;
|
||||||
u32 orba_h;
|
u32 orba_h;
|
||||||
#else
|
#else
|
||||||
|
|
@ -199,7 +202,8 @@ struct jr_regs {
|
||||||
*/
|
*/
|
||||||
struct sg_entry {
|
struct sg_entry {
|
||||||
#if defined(CONFIG_SYS_FSL_SEC_LE) && \
|
#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_lo; /* Memory Address - lo */
|
||||||
uint32_t addr_hi; /* Memory Address of start of buffer - hi */
|
uint32_t addr_hi; /* Memory Address of start of buffer - hi */
|
||||||
#else
|
#else
|
||||||
|
|
@ -220,7 +224,8 @@ struct sg_entry {
|
||||||
|
|
||||||
#define BLOB_SIZE(x) ((x) + 32 + 16) /* Blob buffer size */
|
#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 */
|
/* Job Ring Base Address */
|
||||||
#define JR_BASE_ADDR(x) (CONFIG_SYS_FSL_SEC_ADDR + 0x1000 * (x + 1))
|
#define JR_BASE_ADDR(x) (CONFIG_SYS_FSL_SEC_ADDR + 0x1000 * (x + 1))
|
||||||
/* Secure Memory Offset varies accross versions */
|
/* Secure Memory Offset varies accross versions */
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue