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
4e0d14f2
Commit
4e0d14f2
authored
Dec 17, 2019
by
Soby Mathew
Committed by
TrustedFirmware Code Review
Dec 17, 2019
Browse files
Merge "arm: gicv3: Fix compiler dependent behavior" into integration
parents
287a81df
d0196911
Changes
2
Hide whitespace changes
Inline
Side-by-side
include/lib/utils.h
View file @
4e0d14f2
/*
/*
* Copyright (c) 2016-201
8
, ARM Limited and Contributors. All rights reserved.
* Copyright (c) 2016-201
9
, ARM Limited and Contributors. All rights reserved.
*
*
* SPDX-License-Identifier: BSD-3-Clause
* SPDX-License-Identifier: BSD-3-Clause
*/
*/
...
@@ -79,13 +79,11 @@ void zeromem(void *mem, u_register_t length);
...
@@ -79,13 +79,11 @@ void zeromem(void *mem, u_register_t length);
* which is constant and does not depend on the execute address of the binary.
* which is constant and does not depend on the execute address of the binary.
*/
*/
#define DEFINE_LOAD_SYM_ADDR(_name) \
#define DEFINE_LOAD_SYM_ADDR(_name) \
static inline u_register_t load_addr_## _name(void) \
static inline u_register_t load_addr_## _name(void) \
{ \
{ \
u_register_t v; \
u_register_t v; \
/* Create a void reference to silence compiler */
\
__asm__ volatile ("ldr %0, =" #_name : "=r" (v) : "X" (#_name));\
(void) _name; \
return v; \
__asm__ volatile ("ldr %0, =" #_name : "=r" (v)); \
return v; \
}
}
/* Helper to invoke the function defined by DEFINE_LOAD_SYM_ADDR() */
/* Helper to invoke the function defined by DEFINE_LOAD_SYM_ADDR() */
...
...
plat/arm/common/arm_gicv3.c
View file @
4e0d14f2
...
@@ -44,12 +44,11 @@ static const interrupt_prop_t arm_interrupt_props[] = {
...
@@ -44,12 +44,11 @@ static const interrupt_prop_t arm_interrupt_props[] = {
/*
/*
* We save and restore the GICv3 context on system suspend. Allocate the
* We save and restore the GICv3 context on system suspend. Allocate the
* data in the designated EL3 Secure carve-out memory. The `volatile`
* data in the designated EL3 Secure carve-out memory. The `used` attribute
* is used to prevent the compiler from removing the gicv3 contexts even
* is used to prevent the compiler from removing the gicv3 contexts.
* though the DEFINE_LOAD_SYM_ADDR creates a dummy reference to it.
*/
*/
static
volatile
gicv3_redist_ctx_t
rdist_ctx
__section
(
"arm_el3_tzc_dram"
);
static
gicv3_redist_ctx_t
rdist_ctx
__section
(
"arm_el3_tzc_dram"
)
__used
;
static
volatile
gicv3_dist_ctx_t
dist_ctx
__section
(
"arm_el3_tzc_dram"
);
static
gicv3_dist_ctx_t
dist_ctx
__section
(
"arm_el3_tzc_dram"
)
__used
;
/* Define accessor function to get reference to the GICv3 context */
/* Define accessor function to get reference to the GICv3 context */
DEFINE_LOAD_SYM_ADDR
(
rdist_ctx
)
DEFINE_LOAD_SYM_ADDR
(
rdist_ctx
)
...
...
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