Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Menu
Open sidebar
adam.huang
Arm Trusted Firmware
Commits
21bde92f
Commit
21bde92f
authored
5 years ago
by
Sandrine Bailleux
Committed by
TrustedFirmware Code Review
5 years ago
Browse files
Options
Download
Plain Diff
Merge "plat: imx8m: Add caam module init on imx8m" into integration
parents
a83d8d2c
2502709f
master
v2.5
v2.5-rc1
v2.5-rc0
v2.4
v2.4-rc2
v2.4-rc1
v2.4-rc0
v2.3
v2.3-rc2
v2.3-rc1
v2.3-rc0
v2.2
v2.2-rc2
v2.2-rc1
v2.2-rc0
arm_cca_v0.2
arm_cca_v0.1
No related merge requests found
Changes
8
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
plat/imx/imx8m/imx8m_caam.c
+40
-0
plat/imx/imx8m/imx8m_caam.c
plat/imx/imx8m/imx8mm/imx8mm_bl31_setup.c
+3
-0
plat/imx/imx8m/imx8mm/imx8mm_bl31_setup.c
plat/imx/imx8m/imx8mm/include/platform_def.h
+1
-0
plat/imx/imx8m/imx8mm/include/platform_def.h
plat/imx/imx8m/imx8mm/platform.mk
+1
-0
plat/imx/imx8m/imx8mm/platform.mk
plat/imx/imx8m/imx8mq/imx8mq_bl31_setup.c
+2
-4
plat/imx/imx8m/imx8mq/imx8mq_bl31_setup.c
plat/imx/imx8m/imx8mq/include/platform_def.h
+2
-6
plat/imx/imx8m/imx8mq/include/platform_def.h
plat/imx/imx8m/imx8mq/platform.mk
+2
-1
plat/imx/imx8m/imx8mq/platform.mk
plat/imx/imx8m/include/imx8m_caam.h
+35
-0
plat/imx/imx8m/include/imx8m_caam.h
with
86 additions
and
11 deletions
+86
-11
plat/imx/imx8m/imx8m_caam.c
0 → 100644
View file @
21bde92f
/*
* Copyright (c) 2019, NXP. All rights reserved.
*
* SPDX-License-Identifier: BSD-3-Clause
*/
#include <lib/mmio.h>
#include <imx8m_caam.h>
void
imx8m_caam_init
(
void
)
{
uint32_t
sm_cmd
;
/* Dealloc part 0 and 2 with current DID */
sm_cmd
=
(
0
<<
SMC_PART_SHIFT
|
SMC_CMD_DEALLOC_PART
);
mmio_write_32
(
SM_CMD
,
sm_cmd
);
sm_cmd
=
(
2
<<
SMC_PART_SHIFT
|
SMC_CMD_DEALLOC_PART
);
mmio_write_32
(
SM_CMD
,
sm_cmd
);
/* config CAAM JRaMID set MID to Cortex A */
mmio_write_32
(
CAAM_JR0MID
,
CAAM_NS_MID
);
mmio_write_32
(
CAAM_JR1MID
,
CAAM_NS_MID
);
mmio_write_32
(
CAAM_JR2MID
,
CAAM_NS_MID
);
/* Alloc partition 0 writing SMPO and SMAGs */
mmio_write_32
(
SM_P0_PERM
,
0xff
);
mmio_write_32
(
SM_P0_SMAG2
,
0xffffffff
);
mmio_write_32
(
SM_P0_SMAG1
,
0xffffffff
);
/* Allocate page 0 and 1 to partition 0 with DID set */
sm_cmd
=
(
0
<<
SMC_PAGE_SHIFT
|
0
<<
SMC_PART_SHIFT
|
SMC_CMD_ALLOC_PAGE
);
mmio_write_32
(
SM_CMD
,
sm_cmd
);
sm_cmd
=
(
1
<<
SMC_PAGE_SHIFT
|
0
<<
SMC_PART_SHIFT
|
SMC_CMD_ALLOC_PAGE
);
mmio_write_32
(
SM_CMD
,
sm_cmd
);
}
This diff is collapsed.
Click to expand it.
plat/imx/imx8m/imx8mm/imx8mm_bl31_setup.c
View file @
21bde92f
...
...
@@ -24,6 +24,7 @@
#include <gpc.h>
#include <imx_aipstz.h>
#include <imx_uart.h>
#include <imx8m_caam.h>
#include <plat_imx8.h>
static
const
mmap_region_t
imx_mmap
[]
=
{
...
...
@@ -93,6 +94,8 @@ void bl31_early_platform_setup2(u_register_t arg0, u_register_t arg1,
imx_aipstz_init
(
aipstz
);
imx8m_caam_init
();
console_imx_uart_register
(
IMX_BOOT_UART_BASE
,
IMX_BOOT_UART_CLK_IN_HZ
,
IMX_CONSOLE_BAUDRATE
,
&
console
);
/* This console is only used for boot stage */
...
...
This diff is collapsed.
Click to expand it.
plat/imx/imx8m/imx8mm/include/platform_def.h
View file @
21bde92f
...
...
@@ -77,6 +77,7 @@
#define IMX_NOC_BASE U(0x32700000)
#define IMX_TZASC_BASE U(0x32F80000)
#define IMX_IOMUX_GPR_BASE U(0x30340000)
#define IMX_CAAM_BASE U(0x30900000)
#define IMX_DDRC_BASE U(0x3d400000)
#define IMX_DDRPHY_BASE U(0x3c000000)
#define IMX_DDR_IPS_BASE U(0x3d000000)
...
...
This diff is collapsed.
Click to expand it.
plat/imx/imx8m/imx8mm/platform.mk
View file @
21bde92f
...
...
@@ -20,6 +20,7 @@ IMX_GIC_SOURCES := drivers/arm/gic/v3/gicv3_helpers.c \
BL31_SOURCES
+=
plat/imx/common/imx8_helpers.S
\
plat/imx/imx8m/gpc_common.c
\
plat/imx/imx8m/imx_aipstz.c
\
plat/imx/imx8m/imx8m_caam.c
\
plat/imx/imx8m/imx8m_psci_common.c
\
plat/imx/imx8m/imx8mm/imx8mm_bl31_setup.c
\
plat/imx/imx8m/imx8mm/imx8mm_psci.c
\
...
...
This diff is collapsed.
Click to expand it.
plat/imx/imx8m/imx8mq/imx8mq_bl31_setup.c
View file @
21bde92f
...
...
@@ -24,6 +24,7 @@
#include <gpc.h>
#include <imx_aipstz.h>
#include <imx_uart.h>
#include <imx8m_caam.h>
#include <plat_imx8.h>
static
const
mmap_region_t
imx_mmap
[]
=
{
...
...
@@ -129,10 +130,7 @@ void bl31_early_platform_setup2(u_register_t arg0, u_register_t arg1,
imx_aipstz_init
(
aipstz
);
/* config CAAM JRaMID set MID to Cortex A */
mmio_write_32
(
CAAM_JR0MID
,
CAAM_NS_MID
);
mmio_write_32
(
CAAM_JR1MID
,
CAAM_NS_MID
);
mmio_write_32
(
CAAM_JR2MID
,
CAAM_NS_MID
);
imx8m_caam_init
();
#if DEBUG_CONSOLE
static
console_uart_t
console
;
...
...
This diff is collapsed.
Click to expand it.
plat/imx/imx8m/imx8mq/include/platform_def.h
View file @
21bde92f
/*
* Copyright (c) 2018, ARM Limited and Contributors. All rights reserved.
* Copyright (c) 2018
-2019
, ARM Limited and Contributors. All rights reserved.
*
* SPDX-License-Identifier: BSD-3-Clause
*/
...
...
@@ -70,6 +70,7 @@
#define IMX_SNVS_BASE U(0x30370000)
#define IMX_NOC_BASE U(0x32700000)
#define IMX_TZASC_BASE U(0x32F80000)
#define IMX_CAAM_BASE U(0x30900000)
#define IMX_IOMUX_GPR_BASE U(0x30340000)
#define IMX_DDRC_BASE U(0x3d400000)
#define IMX_DDRPHY_BASE U(0x3c000000)
...
...
@@ -122,8 +123,3 @@
#define DEBUG_CONSOLE 0
#define IMX_WDOG_B_RESET
#define CAAM_JR0MID U(0x30900010)
#define CAAM_JR1MID U(0x30900018)
#define CAAM_JR2MID U(0x30900020)
#define CAAM_NS_MID U(0x1)
This diff is collapsed.
Click to expand it.
plat/imx/imx8m/imx8mq/platform.mk
View file @
21bde92f
#
# Copyright (c) 2018, ARM Limited and Contributors. All rights reserved.
# Copyright (c) 2018
-2019
, ARM Limited and Contributors. All rights reserved.
#
# SPDX-License-Identifier: BSD-3-Clause
#
...
...
@@ -22,6 +22,7 @@ BL31_SOURCES += plat/imx/common/imx8_helpers.S \
plat/imx/imx8m/imx8mq/imx8mq_psci.c
\
plat/imx/imx8m/gpc_common.c
\
plat/imx/imx8m/imx_aipstz.c
\
plat/imx/imx8m/imx8m_caam.c
\
plat/imx/imx8m/imx8m_psci_common.c
\
plat/imx/imx8m/imx8mq/gpc.c
\
plat/imx/common/imx8_topology.c
\
...
...
This diff is collapsed.
Click to expand it.
plat/imx/imx8m/include/imx8m_caam.h
0 → 100644
View file @
21bde92f
/*
* Copyright (c) 2019, NXP. All rights reserved.
*
* SPDX-License-Identifier: BSD-3-Clause
*/
#ifndef IMX8M_CAAM_H
#define IMX8M_CAAM_H
#include <lib/utils_def.h>
#include <platform_def.h>
#define CAAM_JR0MID (IMX_CAAM_BASE + 0x10)
#define CAAM_JR1MID (IMX_CAAM_BASE + 0x18)
#define CAAM_JR2MID (IMX_CAAM_BASE + 0x20)
#define CAAM_NS_MID (0x1)
#define JR0_BASE (IMX_CAAM_BASE + 0x1000)
#define SM_P0_PERM (JR0_BASE + 0xa04)
#define SM_P0_SMAG2 (JR0_BASE + 0xa08)
#define SM_P0_SMAG1 (JR0_BASE + 0xa0c)
#define SM_CMD (JR0_BASE + 0xbe4)
/* secure memory command */
#define SMC_PAGE_SHIFT 16
#define SMC_PART_SHIFT 8
#define SMC_CMD_ALLOC_PAGE 0x01
/* allocate page to this partition */
#define SMC_CMD_DEALLOC_PART 0x03
/* deallocate partition */
void
imx8m_caam_init
(
void
);
#endif
/* IMX8M_CAAM_H */
This diff is collapsed.
Click to expand it.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment
Menu
Projects
Groups
Snippets
Help