Skip to content
GitLab
Menu
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
0ef419b1
"git:/github.com/robbyrussell/oh-my-zsh" did not exist on "0ba398f9e1aaf05e72406d5c840f013eebb6b260"
Commit
0ef419b1
authored
Jun 03, 2021
by
Madhukar Pappireddy
Committed by
TrustedFirmware Code Review
Jun 03, 2021
Browse files
Merge "feat(plat/zynqmp): add SDEI support" into integration
parents
a49babce
4143268a
Changes
4
Show whitespace changes
Inline
Side-by-side
plat/xilinx/zynqmp/include/platform_def.h
View file @
0ef419b1
...
...
@@ -36,7 +36,7 @@
* little space for growth.
*/
#ifndef ZYNQMP_ATF_MEM_BASE
#if !DEBUG && defined(SPD_none)
#if !DEBUG && defined(SPD_none)
&& !SDEI_SUPPORT
# define BL31_BASE 0xfffea000
# define BL31_LIMIT 0xffffffff
#else
...
...
@@ -91,6 +91,13 @@
#define CACHE_WRITEBACK_SHIFT 6
#define CACHE_WRITEBACK_GRANULE (1 << CACHE_WRITEBACK_SHIFT)
#define ZYNQMP_SDEI_SGI_PRIVATE U(8)
/* Platform macros to support exception handling framework */
#define PLAT_PRI_BITS U(3)
#define PLAT_SDEI_CRITICAL_PRI 0x10
#define PLAT_SDEI_NORMAL_PRI 0x20
#define PLAT_ARM_GICD_BASE BASE_GICD_BASE
#define PLAT_ARM_GICC_BASE BASE_GICC_BASE
/*
...
...
@@ -102,8 +109,6 @@
#define PLAT_ARM_G1S_IRQ_PROPS(grp) \
INTR_PROP_DESC(ARM_IRQ_SEC_PHY_TIMER, GIC_HIGHEST_SEC_PRIORITY, grp, \
GIC_INTR_CFG_LEVEL), \
INTR_PROP_DESC(ARM_IRQ_SEC_SGI_0, GIC_HIGHEST_SEC_PRIORITY, grp, \
GIC_INTR_CFG_EDGE), \
INTR_PROP_DESC(ARM_IRQ_SEC_SGI_1, GIC_HIGHEST_SEC_PRIORITY, grp, \
GIC_INTR_CFG_EDGE), \
INTR_PROP_DESC(ARM_IRQ_SEC_SGI_2, GIC_HIGHEST_SEC_PRIORITY, grp, \
...
...
@@ -124,8 +129,6 @@
GIC_INTR_CFG_LEVEL), \
INTR_PROP_DESC(IRQ_TTC3_1, GIC_HIGHEST_SEC_PRIORITY, grp, \
GIC_INTR_CFG_EDGE), \
INTR_PROP_DESC(ARM_IRQ_SEC_SGI_0, GIC_HIGHEST_SEC_PRIORITY, grp, \
GIC_INTR_CFG_EDGE), \
INTR_PROP_DESC(ARM_IRQ_SEC_SGI_1, GIC_HIGHEST_SEC_PRIORITY, grp, \
GIC_INTR_CFG_EDGE), \
INTR_PROP_DESC(ARM_IRQ_SEC_SGI_2, GIC_HIGHEST_SEC_PRIORITY, grp, \
...
...
@@ -142,6 +145,8 @@
GIC_INTR_CFG_EDGE)
#endif
#define PLAT_ARM_G0_IRQ_PROPS(grp)
#define PLAT_ARM_G0_IRQ_PROPS(grp) \
INTR_PROP_DESC(ARM_IRQ_SEC_SGI_0, PLAT_SDEI_NORMAL_PRI, grp, \
GIC_INTR_CFG_EDGE)
#endif
/* PLATFORM_DEF_H */
plat/xilinx/zynqmp/platform.mk
View file @
0ef419b1
...
...
@@ -14,6 +14,8 @@ override RESET_TO_BL31 := 1
override GICV2_G0_FOR_EL3
:
= 1
override WARMBOOT_ENABLE_DCACHE_EARLY
:
= 1
EL3_EXCEPTION_HANDLING
:=
$(SDEI_SUPPORT)
# Do not enable SVE
ENABLE_SVE_FOR_NS
:=
0
...
...
@@ -107,6 +109,11 @@ BL31_SOURCES += drivers/arm/cci/cci.c \
plat/xilinx/zynqmp/pm_service/pm_api_clock.c
\
plat/xilinx/zynqmp/pm_service/pm_client.c
ifeq
(${SDEI_SUPPORT},1)
BL31_SOURCES
+=
plat/xilinx/zynqmp/zynqmp_ehf.c
\
plat/xilinx/zynqmp/zynqmp_sdei.c
endif
BL31_CPPFLAGS
+=
-fno-jump-tables
ifneq
(${RESET_TO_BL31},1)
...
...
plat/xilinx/zynqmp/zynqmp_ehf.c
0 → 100644
View file @
0ef419b1
/*
* Copyright (c) 2017-2019, ARM Limited and Contributors. All rights reserved.
* Copyright (c) Siemens AG, 2020-2021
*
* SPDX-License-Identifier: BSD-3-Clause
*/
#include <platform_def.h>
#include <bl31/ehf.h>
/*
* Enumeration of priority levels on ARM platforms.
*/
ehf_pri_desc_t
zynqmp_exceptions
[]
=
{
/* Critical priority SDEI */
EHF_PRI_DESC
(
PLAT_PRI_BITS
,
PLAT_SDEI_CRITICAL_PRI
),
/* Normal priority SDEI */
EHF_PRI_DESC
(
PLAT_PRI_BITS
,
PLAT_SDEI_NORMAL_PRI
),
};
/* Plug in ARM exceptions to Exception Handling Framework. */
EHF_REGISTER_PRIORITIES
(
zynqmp_exceptions
,
ARRAY_SIZE
(
zynqmp_exceptions
),
PLAT_PRI_BITS
);
plat/xilinx/zynqmp/zynqmp_sdei.c
0 → 100644
View file @
0ef419b1
/*
* Copyright (c) 2017-2020, ARM Limited and Contributors. All rights reserved.
* Copyright (c) Siemens AG, 2020-2021
*
* SPDX-License-Identifier: BSD-3-Clause
*/
/* SDEI configuration for ARM platforms */
#include <bl31/ehf.h>
#include <common/debug.h>
#include <services/sdei.h>
#include <plat/common/platform.h>
#include <platform_def.h>
int
arm_validate_ns_entrypoint
(
uintptr_t
entrypoint
)
{
return
(
entrypoint
<
BL31_BASE
||
entrypoint
>
BL31_LIMIT
)
?
0
:
-
1
;
}
/* Private event mappings */
static
sdei_ev_map_t
zynqmp_sdei_private
[]
=
{
SDEI_DEFINE_EVENT_0
(
ZYNQMP_SDEI_SGI_PRIVATE
),
};
/* Shared event mappings */
static
sdei_ev_map_t
zynqmp_sdei_shared
[]
=
{
};
void
plat_sdei_setup
(
void
)
{
INFO
(
"SDEI platform setup
\n
"
);
}
/* Export ARM SDEI events */
REGISTER_SDEI_MAP
(
zynqmp_sdei_private
,
zynqmp_sdei_shared
);
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