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
74a44dca
Unverified
Commit
74a44dca
authored
6 years ago
by
Dimitris Papastamos
Committed by
GitHub
6 years ago
Browse files
Options
Download
Plain Diff
Merge pull request #1399 from danielboulby-arm/db/MISRA
MISRA 5.1, 5.3 & 5.7 compliance changes
parents
e109b0ff
776ff52a
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
v2.1
v2.1-rc1
v2.1-rc0
v2.0
v2.0-rc0
v1.6
v1.6-rc1
v1.6-rc0
arm_cca_v0.2
arm_cca_v0.1
No related merge requests found
Changes
23
Hide whitespace changes
Inline
Side-by-side
Showing
20 changed files
common/bl_common.c
+1
-1
common/bl_common.c
common/tf_printf.c
+6
-6
common/tf_printf.c
drivers/arm/gic/v3/gicv3_helpers.c
+6
-6
drivers/arm/gic/v3/gicv3_helpers.c
drivers/arm/gic/v3/gicv3_main.c
+8
-8
drivers/arm/gic/v3/gicv3_main.c
drivers/arm/gic/v3/gicv3_private.h
+13
-13
drivers/arm/gic/v3/gicv3_private.h
drivers/arm/smmu/smmu_v3.c
+2
-2
drivers/arm/smmu/smmu_v3.c
drivers/arm/tzc/tzc400.c
+1
-1
drivers/arm/tzc/tzc400.c
include/common/bl_common.h
+1
-1
include/common/bl_common.h
include/lib/xlat_tables/aarch32/xlat_tables_aarch32.h
+3
-3
include/lib/xlat_tables/aarch32/xlat_tables_aarch32.h
include/lib/xlat_tables/aarch64/xlat_tables_aarch64.h
+4
-4
include/lib/xlat_tables/aarch64/xlat_tables_aarch64.h
lib/cpus/aarch64/cpuamu.c
+4
-4
lib/cpus/aarch64/cpuamu.c
lib/locks/bakery/bakery_lock_coherent.c
+3
-3
lib/locks/bakery/bakery_lock_coherent.c
lib/locks/bakery/bakery_lock_normal.c
+7
-7
lib/locks/bakery/bakery_lock_normal.c
lib/optee/optee_utils.c
+24
-24
lib/optee/optee_utils.c
lib/psci/psci_private.h
+19
-19
lib/psci/psci_private.h
plat/arm/css/drivers/mhu/css_mhu_doorbell.h
+2
-2
plat/arm/css/drivers/mhu/css_mhu_doorbell.h
plat/arm/css/drivers/scmi/scmi_private.h
+6
-6
plat/arm/css/drivers/scmi/scmi_private.h
plat/arm/css/drivers/scp/css_pm_scmi.c
+13
-13
plat/arm/css/drivers/scp/css_pm_scmi.c
plat/arm/css/drivers/sds/sds_private.h
+10
-10
plat/arm/css/drivers/sds/sds_private.h
services/spd/opteed/opteed_main.c
+7
-7
services/spd/opteed/opteed_main.c
with
140 additions
and
140 deletions
+140
-140
common/bl_common.c
View file @
74a44dca
...
...
@@ -184,7 +184,7 @@ static void dump_load_info(uintptr_t image_load_addr,
#endif
/* LOAD_IMAGE_V2 */
/* Generic function to return the size of an image */
size_t
image_size
(
unsigned
int
image_id
)
size_t
get_
image_size
(
unsigned
int
image_id
)
{
uintptr_t
dev_handle
;
uintptr_t
image_handle
;
...
...
This diff is collapsed.
Click to expand it.
common/tf_printf.c
View file @
74a44dca
...
...
@@ -15,13 +15,13 @@
* The tf_printf implementation for all BL stages
***********************************************************/
#define get_num_va_args(args, lcount) \
(((lcount) > 1) ? va_arg(args, long long int) : \
((lcount) ? va_arg(args, long int) : va_arg(args, int)))
#define get_num_va_args(
_
args,
_
lcount) \
(((
_
lcount) > 1) ? va_arg(
_
args, long long int) : \
((
_
lcount) ? va_arg(
_
args, long int) : va_arg(
_
args, int)))
#define get_unum_va_args(args, lcount) \
(((lcount) > 1) ? va_arg(args, unsigned long long int) : \
((lcount) ? va_arg(args, unsigned long int) : va_arg(args, unsigned int)))
#define get_unum_va_args(
_
args,
_
lcount) \
(((
_
lcount) > 1) ? va_arg(
_
args, unsigned long long int) : \
((
_
lcount) ? va_arg(
_
args, unsigned long int) : va_arg(
_
args, unsigned int)))
void
tf_string_print
(
const
char
*
str
)
{
...
...
This diff is collapsed.
Click to expand it.
drivers/arm/gic/v3/gicv3_helpers.c
View file @
74a44dca
...
...
@@ -342,7 +342,7 @@ void gicv3_rdistif_base_addrs_probe(uintptr_t *rdistif_base_addrs,
/*******************************************************************************
* Helper function to configure the default attributes of SPIs.
******************************************************************************/
void
gicv3_spis_config
ure
_defaults
(
uintptr_t
gicd_base
)
void
gicv3_spis_config_defaults
(
uintptr_t
gicd_base
)
{
unsigned
int
index
,
num_ints
;
...
...
@@ -375,7 +375,7 @@ void gicv3_spis_configure_defaults(uintptr_t gicd_base)
/*******************************************************************************
* Helper function to configure secure G0 and G1S SPIs.
******************************************************************************/
void
gicv3_secure_spis_config
ure
(
uintptr_t
gicd_base
,
void
gicv3_secure_spis_config
(
uintptr_t
gicd_base
,
unsigned
int
num_ints
,
const
unsigned
int
*
sec_intr_list
,
unsigned
int
int_grp
)
...
...
@@ -423,7 +423,7 @@ void gicv3_secure_spis_configure(uintptr_t gicd_base,
/*******************************************************************************
* Helper function to configure properties of secure SPIs
******************************************************************************/
unsigned
int
gicv3_secure_spis_config
ure
_props
(
uintptr_t
gicd_base
,
unsigned
int
gicv3_secure_spis_config_props
(
uintptr_t
gicd_base
,
const
interrupt_prop_t
*
interrupt_props
,
unsigned
int
interrupt_props_num
)
{
...
...
@@ -478,7 +478,7 @@ unsigned int gicv3_secure_spis_configure_props(uintptr_t gicd_base,
/*******************************************************************************
* Helper function to configure the default attributes of SPIs.
******************************************************************************/
void
gicv3_ppi_sgi_config
ure
_defaults
(
uintptr_t
gicr_base
)
void
gicv3_ppi_sgi_config_defaults
(
uintptr_t
gicr_base
)
{
unsigned
int
index
;
...
...
@@ -507,7 +507,7 @@ void gicv3_ppi_sgi_configure_defaults(uintptr_t gicr_base)
/*******************************************************************************
* Helper function to configure secure G0 and G1S SPIs.
******************************************************************************/
void
gicv3_secure_ppi_sgi_config
ure
(
uintptr_t
gicr_base
,
void
gicv3_secure_ppi_sgi_config
(
uintptr_t
gicr_base
,
unsigned
int
num_ints
,
const
unsigned
int
*
sec_intr_list
,
unsigned
int
int_grp
)
...
...
@@ -546,7 +546,7 @@ void gicv3_secure_ppi_sgi_configure(uintptr_t gicr_base,
/*******************************************************************************
* Helper function to configure properties of secure G0 and G1S PPIs and SGIs.
******************************************************************************/
unsigned
int
gicv3_secure_ppi_sgi_config
ure
_props
(
uintptr_t
gicr_base
,
unsigned
int
gicv3_secure_ppi_sgi_config_props
(
uintptr_t
gicr_base
,
const
interrupt_prop_t
*
interrupt_props
,
unsigned
int
interrupt_props_num
)
{
...
...
This diff is collapsed.
Click to expand it.
drivers/arm/gic/v3/gicv3_main.c
View file @
74a44dca
...
...
@@ -190,12 +190,12 @@ void gicv3_distif_init(void)
CTLR_ARE_S_BIT
|
CTLR_ARE_NS_BIT
,
RWP_TRUE
);
/* Set the default attribute of all SPIs */
gicv3_spis_config
ure
_defaults
(
gicv3_driver_data
->
gicd_base
);
gicv3_spis_config_defaults
(
gicv3_driver_data
->
gicd_base
);
#if !ERROR_DEPRECATED
if
(
gicv3_driver_data
->
interrupt_props
!=
NULL
)
{
#endif
bitmap
=
gicv3_secure_spis_config
ure
_props
(
bitmap
=
gicv3_secure_spis_config_props
(
gicv3_driver_data
->
gicd_base
,
gicv3_driver_data
->
interrupt_props
,
gicv3_driver_data
->
interrupt_props_num
);
...
...
@@ -213,7 +213,7 @@ void gicv3_distif_init(void)
/* Configure the G1S SPIs */
if
(
gicv3_driver_data
->
g1s_interrupt_array
)
{
gicv3_secure_spis_config
ure
(
gicv3_driver_data
->
gicd_base
,
gicv3_secure_spis_config
(
gicv3_driver_data
->
gicd_base
,
gicv3_driver_data
->
g1s_interrupt_num
,
gicv3_driver_data
->
g1s_interrupt_array
,
INTR_GROUP1S
);
...
...
@@ -222,7 +222,7 @@ void gicv3_distif_init(void)
/* Configure the G0 SPIs */
if
(
gicv3_driver_data
->
g0_interrupt_array
)
{
gicv3_secure_spis_config
ure
(
gicv3_driver_data
->
gicd_base
,
gicv3_secure_spis_config
(
gicv3_driver_data
->
gicd_base
,
gicv3_driver_data
->
g0_interrupt_num
,
gicv3_driver_data
->
g0_interrupt_array
,
INTR_GROUP0
);
...
...
@@ -263,12 +263,12 @@ void gicv3_rdistif_init(unsigned int proc_num)
gicr_base
=
gicv3_driver_data
->
rdistif_base_addrs
[
proc_num
];
/* Set the default attribute of all SGIs and PPIs */
gicv3_ppi_sgi_config
ure
_defaults
(
gicr_base
);
gicv3_ppi_sgi_config_defaults
(
gicr_base
);
#if !ERROR_DEPRECATED
if
(
gicv3_driver_data
->
interrupt_props
!=
NULL
)
{
#endif
bitmap
=
gicv3_secure_ppi_sgi_config
ure
_props
(
gicr_base
,
bitmap
=
gicv3_secure_ppi_sgi_config_props
(
gicr_base
,
gicv3_driver_data
->
interrupt_props
,
gicv3_driver_data
->
interrupt_props_num
);
#if !ERROR_DEPRECATED
...
...
@@ -285,7 +285,7 @@ void gicv3_rdistif_init(unsigned int proc_num)
/* Configure the G1S SGIs/PPIs */
if
(
gicv3_driver_data
->
g1s_interrupt_array
)
{
gicv3_secure_ppi_sgi_config
ure
(
gicr_base
,
gicv3_secure_ppi_sgi_config
(
gicr_base
,
gicv3_driver_data
->
g1s_interrupt_num
,
gicv3_driver_data
->
g1s_interrupt_array
,
INTR_GROUP1S
);
...
...
@@ -294,7 +294,7 @@ void gicv3_rdistif_init(unsigned int proc_num)
/* Configure the G0 SGIs/PPIs */
if
(
gicv3_driver_data
->
g0_interrupt_array
)
{
gicv3_secure_ppi_sgi_config
ure
(
gicr_base
,
gicv3_secure_ppi_sgi_config
(
gicr_base
,
gicv3_driver_data
->
g0_interrupt_num
,
gicv3_driver_data
->
g0_interrupt_array
,
INTR_GROUP0
);
...
...
This diff is collapsed.
Click to expand it.
drivers/arm/gic/v3/gicv3_private.h
View file @
74a44dca
...
...
@@ -27,20 +27,20 @@
* GICD_IROUTER. Bits[31:24] in the MPIDR are cleared as they are not relevant
* to GICv3.
*/
#define gicd_irouter_val_from_mpidr(mpidr, irm) \
((mpidr & ~(0xff << 24)) | \
(irm & IROUTER_IRM_MASK) << IROUTER_IRM_SHIFT)
#define gicd_irouter_val_from_mpidr(
_
mpidr,
_
irm) \
((
_
mpidr & ~(0xff << 24)) | \
(
_
irm & IROUTER_IRM_MASK) << IROUTER_IRM_SHIFT)
/*
* Macro to convert a GICR_TYPER affinity value into a MPIDR value. Bits[31:24]
* are zeroes.
*/
#ifdef AARCH32
#define mpidr_from_gicr_typer(typer_val) (((typer_val) >> 32) & 0xffffff)
#define mpidr_from_gicr_typer(
_
typer_val) (((
_
typer_val) >> 32) & 0xffffff)
#else
#define mpidr_from_gicr_typer(typer_val) \
(((((typer_val) >> 56) & MPIDR_AFFLVL_MASK) << MPIDR_AFF3_SHIFT) | \
(((typer_val) >> 32) & 0xffffff))
#define mpidr_from_gicr_typer(
_
typer_val) \
(((((
_
typer_val) >> 56) & MPIDR_AFFLVL_MASK) << MPIDR_AFF3_SHIFT) | \
(((
_
typer_val) >> 32) & 0xffffff))
#endif
/*******************************************************************************
...
...
@@ -85,22 +85,22 @@ void gicr_set_icfgr1(uintptr_t base, unsigned int id, unsigned int cfg);
/*******************************************************************************
* Private GICv3 helper function prototypes
******************************************************************************/
void
gicv3_spis_config
ure
_defaults
(
uintptr_t
gicd_base
);
void
gicv3_ppi_sgi_config
ure
_defaults
(
uintptr_t
gicr_base
);
void
gicv3_spis_config_defaults
(
uintptr_t
gicd_base
);
void
gicv3_ppi_sgi_config_defaults
(
uintptr_t
gicr_base
);
#if !ERROR_DEPRECATED
void
gicv3_secure_spis_config
ure
(
uintptr_t
gicd_base
,
void
gicv3_secure_spis_config
(
uintptr_t
gicd_base
,
unsigned
int
num_ints
,
const
unsigned
int
*
sec_intr_list
,
unsigned
int
int_grp
);
void
gicv3_secure_ppi_sgi_config
ure
(
uintptr_t
gicr_base
,
void
gicv3_secure_ppi_sgi_config
(
uintptr_t
gicr_base
,
unsigned
int
num_ints
,
const
unsigned
int
*
sec_intr_list
,
unsigned
int
int_grp
);
#endif
unsigned
int
gicv3_secure_ppi_sgi_config
ure
_props
(
uintptr_t
gicr_base
,
unsigned
int
gicv3_secure_ppi_sgi_config_props
(
uintptr_t
gicr_base
,
const
interrupt_prop_t
*
interrupt_props
,
unsigned
int
interrupt_props_num
);
unsigned
int
gicv3_secure_spis_config
ure
_props
(
uintptr_t
gicd_base
,
unsigned
int
gicv3_secure_spis_config_props
(
uintptr_t
gicd_base
,
const
interrupt_prop_t
*
interrupt_props
,
unsigned
int
interrupt_props_num
);
void
gicv3_rdistif_base_addrs_probe
(
uintptr_t
*
rdistif_base_addrs
,
...
...
This diff is collapsed.
Click to expand it.
drivers/arm/smmu/smmu_v3.c
View file @
74a44dca
...
...
@@ -8,8 +8,8 @@
#include <smmu_v3.h>
/* Test for pending invalidate */
#define INVAL_PENDING(base) \
smmuv3_read_s_init(base) & SMMU_S_INIT_INV_ALL_MASK
#define INVAL_PENDING(
_
base) \
smmuv3_read_s_init(
_
base) & SMMU_S_INIT_INV_ALL_MASK
static
inline
uint32_t
smmuv3_read_s_idr1
(
uintptr_t
base
)
{
...
...
This diff is collapsed.
Click to expand it.
drivers/arm/tzc/tzc400.c
View file @
74a44dca
...
...
@@ -54,7 +54,7 @@ static inline void _tzc400_write_gate_keeper(uintptr_t base, unsigned int val)
/*
* Get the open status information for all filter units.
*/
#define get_gate_keeper_os(base) ((_tzc400_read_gate_keeper(base) >>
\
#define get_gate_keeper_os(
_
base) ((_tzc400_read_gate_keeper(
_
base) >>
\
GATE_KEEPER_OS_SHIFT) & \
GATE_KEEPER_OS_MASK)
...
...
This diff is collapsed.
Click to expand it.
include/common/bl_common.h
View file @
74a44dca
...
...
@@ -207,7 +207,7 @@ typedef struct bl31_params {
/*******************************************************************************
* Function & variable prototypes
******************************************************************************/
size_t
image_size
(
unsigned
int
image_id
);
size_t
get_
image_size
(
unsigned
int
image_id
);
int
is_mem_free
(
uintptr_t
free_base
,
size_t
free_size
,
uintptr_t
addr
,
size_t
size
);
...
...
This diff is collapsed.
Click to expand it.
include/lib/xlat_tables/aarch32/xlat_tables_aarch32.h
View file @
74a44dca
/*
* Copyright (c) 2017, ARM Limited and Contributors. All rights reserved.
* Copyright (c) 2017
-2018
, ARM Limited and Contributors. All rights reserved.
*
* SPDX-License-Identifier: BSD-3-Clause
*/
...
...
@@ -66,7 +66,7 @@
* valid. Therefore, the caller is expected to check it is the case using the
* CHECK_VIRT_ADDR_SPACE_SIZE() macro first.
*/
#define GET_XLAT_TABLE_LEVEL_BASE(virt_addr_space_size) \
(((virt_addr_space_size) > (ULL(1) << L1_XLAT_ADDRESS_SHIFT)) ? 1 : 2)
#define GET_XLAT_TABLE_LEVEL_BASE(
_
virt_addr_space_size) \
(((
_
virt_addr_space_size) > (ULL(1) << L1_XLAT_ADDRESS_SHIFT)) ? 1 : 2)
#endif
/* __XLAT_TABLES_AARCH32_H__ */
This diff is collapsed.
Click to expand it.
include/lib/xlat_tables/aarch64/xlat_tables_aarch64.h
View file @
74a44dca
/*
* Copyright (c) 2017, ARM Limited and Contributors. All rights reserved.
* Copyright (c) 2017
-2018
, ARM Limited and Contributors. All rights reserved.
*
* SPDX-License-Identifier: BSD-3-Clause
*/
...
...
@@ -74,10 +74,10 @@ unsigned long long tcr_physical_addr_size_bits(unsigned long long max_addr);
* valid. Therefore, the caller is expected to check it is the case using the
* CHECK_VIRT_ADDR_SPACE_SIZE() macro first.
*/
#define GET_XLAT_TABLE_LEVEL_BASE(virt_addr_space_size) \
(((virt_addr_space_size) > (ULL(1) << L0_XLAT_ADDRESS_SHIFT)) \
#define GET_XLAT_TABLE_LEVEL_BASE(
_
virt_addr_space_size) \
(((
_
virt_addr_space_size) > (ULL(1) << L0_XLAT_ADDRESS_SHIFT)) \
? 0 \
: (((virt_addr_space_size) > (ULL(1) << L1_XLAT_ADDRESS_SHIFT)) \
: (((
_
virt_addr_space_size) > (ULL(1) << L1_XLAT_ADDRESS_SHIFT)) \
? 1 : 2))
#endif
/* __XLAT_TABLES_AARCH64_H__ */
This diff is collapsed.
Click to expand it.
lib/cpus/aarch64/cpuamu.c
View file @
74a44dca
...
...
@@ -10,12 +10,12 @@
#define CPUAMU_NR_COUNTERS 5U
struct
amu_ctx
{
struct
cpu
amu_ctx
{
uint64_t
cnts
[
CPUAMU_NR_COUNTERS
];
unsigned
int
mask
;
};
static
struct
amu_ctx
amu_ctxs
[
PLATFORM_CORE_COUNT
];
static
struct
cpu
amu_ctx
cpu
amu_ctxs
[
PLATFORM_CORE_COUNT
];
int
midr_match
(
unsigned
int
cpu_midr
)
{
...
...
@@ -29,7 +29,7 @@ int midr_match(unsigned int cpu_midr)
void
cpuamu_context_save
(
unsigned
int
nr_counters
)
{
struct
amu_ctx
*
ctx
=
&
amu_ctxs
[
plat_my_core_pos
()];
struct
cpu
amu_ctx
*
ctx
=
&
cpu
amu_ctxs
[
plat_my_core_pos
()];
unsigned
int
i
;
assert
(
nr_counters
<=
CPUAMU_NR_COUNTERS
);
...
...
@@ -48,7 +48,7 @@ void cpuamu_context_save(unsigned int nr_counters)
void
cpuamu_context_restore
(
unsigned
int
nr_counters
)
{
struct
amu_ctx
*
ctx
=
&
amu_ctxs
[
plat_my_core_pos
()];
struct
cpu
amu_ctx
*
ctx
=
&
cpu
amu_ctxs
[
plat_my_core_pos
()];
unsigned
int
i
;
assert
(
nr_counters
<=
CPUAMU_NR_COUNTERS
);
...
...
This diff is collapsed.
Click to expand it.
lib/locks/bakery/bakery_lock_coherent.c
View file @
74a44dca
...
...
@@ -34,9 +34,9 @@
* accesses regardless of status of address translation.
*/
#define assert_bakery_entry_valid(entry, bakery) do { \
assert(bakery); \
assert(entry < BAKERY_LOCK_MAX_CPUS); \
#define assert_bakery_entry_valid(
_
entry,
_
bakery) do { \
assert(
_
bakery); \
assert(
_
entry < BAKERY_LOCK_MAX_CPUS); \
} while (0)
/* Obtain a ticket for a given CPU */
...
...
This diff is collapsed.
Click to expand it.
lib/locks/bakery/bakery_lock_normal.c
View file @
74a44dca
...
...
@@ -53,18 +53,18 @@ CASSERT((PLAT_PERCPU_BAKERY_LOCK_SIZE & (CACHE_WRITEBACK_GRANULE - 1)) == 0, \
IMPORT_SYM
(
uintptr_t
,
__PERCPU_BAKERY_LOCK_SIZE__
,
PERCPU_BAKERY_LOCK_SIZE
);
#endif
#define get_bakery_info(cpu_ix, lock) \
(bakery_info_t *)((uintptr_t)lock + cpu_ix * PERCPU_BAKERY_LOCK_SIZE)
#define get_bakery_info(
_
cpu_ix,
_
lock) \
(bakery_info_t *)((uintptr_t)
_
lock +
_
cpu_ix * PERCPU_BAKERY_LOCK_SIZE)
#define write_cache_op(addr, cached) \
#define write_cache_op(
_
addr,
_
cached) \
do { \
(cached ? dccvac((uintptr_t)addr) :\
dcivac((uintptr_t)addr));\
(
_
cached ? dccvac((uintptr_t)
_
addr) :\
dcivac((uintptr_t)
_
addr));\
dsbish();\
} while (0)
#define read_cache_op(addr, cached) if (cached) \
dccivac((uintptr_t)addr)
#define read_cache_op(
_
addr,
_
cached) if (
_
cached) \
dccivac((uintptr_t)
_
addr)
/* Helper function to check if the lock is acquired */
static
inline
int
is_lock_acquired
(
const
bakery_info_t
*
my_bakery_info
,
...
...
This diff is collapsed.
Click to expand it.
lib/optee/optee_utils.c
View file @
74a44dca
...
...
@@ -43,7 +43,7 @@ typedef struct optee_header {
uint8_t
arch
;
uint16_t
flags
;
uint32_t
nb_images
;
optee_image_t
optee_image
[];
optee_image_t
optee_image
_list
[];
}
optee_header_t
;
/*******************************************************************************
...
...
@@ -51,11 +51,11 @@ typedef struct optee_header {
* Return 1 if valid
* Return 0 if invalid
******************************************************************************/
static
inline
int
tee_validate_header
(
optee_header_t
*
optee_
header
)
static
inline
int
tee_validate_header
(
optee_header_t
*
header
)
{
if
((
optee_
header
->
magic
==
TEE_MAGIC_NUM_OPTEE
)
&&
(
optee_
header
->
version
==
2
)
&&
(
optee_
header
->
nb_images
<=
OPTEE_MAX_IMAGE_NUM
))
{
if
((
header
->
magic
==
TEE_MAGIC_NUM_OPTEE
)
&&
(
header
->
version
==
2
)
&&
(
header
->
nb_images
<=
OPTEE_MAX_IMAGE_NUM
))
{
return
1
;
}
...
...
@@ -68,14 +68,14 @@ static inline int tee_validate_header(optee_header_t *optee_header)
* Return 0 on success or a negative error code otherwise.
******************************************************************************/
static
int
parse_optee_image
(
image_info_t
*
image_info
,
optee_image_t
*
optee_
image
)
optee_image_t
*
image
)
{
uintptr_t
init_load_addr
,
free_end
,
requested_end
;
size_t
init_size
;
init_load_addr
=
((
uint64_t
)
optee_
image
->
load_addr_hi
<<
32
)
|
optee_
image
->
load_addr_lo
;
init_size
=
optee_
image
->
size
;
init_load_addr
=
((
uint64_t
)
image
->
load_addr_hi
<<
32
)
|
image
->
load_addr_lo
;
init_size
=
image
->
size
;
/*
* -1 indicates loader decided address; take our pre-mapped area
...
...
@@ -133,21 +133,21 @@ int parse_optee_header(entry_point_info_t *header_ep,
image_info_t
*
paged_image_info
)
{
optee_header_t
*
optee_
header
;
optee_header_t
*
header
;
int
num
,
ret
;
assert
(
header_ep
);
optee_
header
=
(
optee_header_t
*
)
header_ep
->
pc
;
assert
(
optee_
header
);
header
=
(
optee_header_t
*
)
header_ep
->
pc
;
assert
(
header
);
/* Print the OPTEE header information */
INFO
(
"OPTEE ep=0x%x
\n
"
,
(
unsigned
int
)
header_ep
->
pc
);
INFO
(
"OPTEE header info:
\n
"
);
INFO
(
" magic=0x%x
\n
"
,
optee_
header
->
magic
);
INFO
(
" version=0x%x
\n
"
,
optee_
header
->
version
);
INFO
(
" arch=0x%x
\n
"
,
optee_
header
->
arch
);
INFO
(
" flags=0x%x
\n
"
,
optee_
header
->
flags
);
INFO
(
" nb_images=0x%x
\n
"
,
optee_
header
->
nb_images
);
INFO
(
" magic=0x%x
\n
"
,
header
->
magic
);
INFO
(
" version=0x%x
\n
"
,
header
->
version
);
INFO
(
" arch=0x%x
\n
"
,
header
->
arch
);
INFO
(
" flags=0x%x
\n
"
,
header
->
flags
);
INFO
(
" nb_images=0x%x
\n
"
,
header
->
nb_images
);
/*
* OPTEE image has 3 types:
...
...
@@ -166,7 +166,7 @@ int parse_optee_header(entry_point_info_t *header_ep,
* pager and pageable. Remove skip attr for BL32_EXTRA1_IMAGE_ID
* and BL32_EXTRA2_IMAGE_ID to load pager and paged bin.
*/
if
(
!
tee_validate_header
(
optee_
header
))
{
if
(
!
tee_validate_header
(
header
))
{
INFO
(
"Invalid OPTEE header, set legacy mode.
\n
"
);
#ifdef AARCH64
header_ep
->
args
.
arg0
=
MODE_RW_64
;
...
...
@@ -177,15 +177,15 @@ int parse_optee_header(entry_point_info_t *header_ep,
}
/* Parse OPTEE image */
for
(
num
=
0
;
num
<
optee_
header
->
nb_images
;
num
++
)
{
if
(
optee_
header
->
optee_image
[
num
].
image_id
==
for
(
num
=
0
;
num
<
header
->
nb_images
;
num
++
)
{
if
(
header
->
optee_image
_list
[
num
].
image_id
==
OPTEE_PAGER_IMAGE_ID
)
{
ret
=
parse_optee_image
(
pager_image_info
,
&
optee_
header
->
optee_image
[
num
]);
}
else
if
(
optee_
header
->
optee_image
[
num
].
image_id
==
&
header
->
optee_image
_list
[
num
]);
}
else
if
(
header
->
optee_image
_list
[
num
].
image_id
==
OPTEE_PAGED_IMAGE_ID
)
{
ret
=
parse_optee_image
(
paged_image_info
,
&
optee_
header
->
optee_image
[
num
]);
&
header
->
optee_image
_list
[
num
]);
}
else
{
ERROR
(
"Parse optee image failed.
\n
"
);
return
-
1
;
...
...
@@ -211,7 +211,7 @@ int parse_optee_header(entry_point_info_t *header_ep,
header_ep
->
args
.
arg2
=
paged_image_info
->
image_size
;
/* Set OPTEE runtime arch - aarch32/aarch64 */
if
(
optee_
header
->
arch
==
0
)
{
if
(
header
->
arch
==
0
)
{
header_ep
->
args
.
arg0
=
MODE_RW_32
;
}
else
{
#ifdef AARCH64
...
...
This diff is collapsed.
Click to expand it.
lib/psci/psci_private.h
View file @
74a44dca
...
...
@@ -65,8 +65,8 @@
#endif
#define psci_lock_init(non_cpu_pd_node, idx) \
((non_cpu_pd_node)[(idx)].lock_index = (idx))
#define psci_lock_init(
_
non_cpu_pd_node,
_
idx) \
((
_
non_cpu_pd_node)[(
_
idx)].lock_index = (
_
idx))
/*
* The PSCI capability which are provided by the generic code but does not
...
...
@@ -96,35 +96,35 @@
/*
* Helper macros to get/set the fields of PSCI per-cpu data.
*/
#define psci_set_aff_info_state(aff_state) \
set_cpu_data(psci_svc_cpu_data.aff_info_state, aff_state)
#define psci_set_aff_info_state(
_
aff_state) \
set_cpu_data(psci_svc_cpu_data.aff_info_state,
_
aff_state)
#define psci_get_aff_info_state() \
get_cpu_data(psci_svc_cpu_data.aff_info_state)
#define psci_get_aff_info_state_by_idx(idx) \
get_cpu_data_by_index(idx, psci_svc_cpu_data.aff_info_state)
#define psci_set_aff_info_state_by_idx(idx, aff_state) \
set_cpu_data_by_index(idx, psci_svc_cpu_data.aff_info_state,\
aff_state)
#define psci_get_aff_info_state_by_idx(
_
idx) \
get_cpu_data_by_index(
_
idx, psci_svc_cpu_data.aff_info_state)
#define psci_set_aff_info_state_by_idx(
_
idx,
_
aff_state) \
set_cpu_data_by_index(
_
idx, psci_svc_cpu_data.aff_info_state,\
_
aff_state)
#define psci_get_suspend_pwrlvl() \
get_cpu_data(psci_svc_cpu_data.target_pwrlvl)
#define psci_set_suspend_pwrlvl(target_lvl) \
set_cpu_data(psci_svc_cpu_data.target_pwrlvl, target_lvl)
#define psci_set_cpu_local_state(state) \
set_cpu_data(psci_svc_cpu_data.local_state, state)
#define psci_set_suspend_pwrlvl(
_
target_lvl) \
set_cpu_data(psci_svc_cpu_data.target_pwrlvl,
_
target_lvl)
#define psci_set_cpu_local_state(
_
state) \
set_cpu_data(psci_svc_cpu_data.local_state,
_
state)
#define psci_get_cpu_local_state() \
get_cpu_data(psci_svc_cpu_data.local_state)
#define psci_get_cpu_local_state_by_idx(idx) \
get_cpu_data_by_index(idx, psci_svc_cpu_data.local_state)
#define psci_get_cpu_local_state_by_idx(
_
idx) \
get_cpu_data_by_index(
_
idx, psci_svc_cpu_data.local_state)
/*
* Helper macros for the CPU level spinlocks
*/
#define psci_spin_lock_cpu(idx)
spin_lock(&psci_cpu_pd_nodes[idx].cpu_lock)
#define psci_spin_unlock_cpu(idx) spin_unlock(&psci_cpu_pd_nodes[idx].cpu_lock)
#define psci_spin_lock_cpu(
_
idx)
spin_lock(&psci_cpu_pd_nodes[
_
idx].cpu_lock)
#define psci_spin_unlock_cpu(
_
idx) spin_unlock(&psci_cpu_pd_nodes[
_
idx].cpu_lock)
/* Helper macro to identify a CPU standby request in PSCI Suspend call */
#define is_cpu_standby_req(is_power_down_state, retn_lvl) \
(((!(is_power_down_state)) && ((retn_lvl) == 0)) ? 1 : 0)
#define is_cpu_standby_req(
_
is_power_down_state,
_
retn_lvl) \
(((!(
_
is_power_down_state)) && ((
_
retn_lvl) == 0)) ? 1 : 0)
/*******************************************************************************
* The following two data structures implement the power domain tree. The tree
...
...
This diff is collapsed.
Click to expand it.
plat/arm/css/drivers/mhu/css_mhu_doorbell.h
View file @
74a44dca
...
...
@@ -18,8 +18,8 @@
#define MHU_V2_ACCESS_REQ_OFFSET 0xF88
#define MHU_V2_ACCESS_READY_OFFSET 0xF8C
#define SENDER_REG_STAT(
CHANNEL
) (0x20 * (
CHANNEL
))
#define SENDER_REG_SET(
CHANNEL
)
(0x20 * (
CHANNEL
)) + 0xC
#define SENDER_REG_STAT(
_channel
) (0x20 * (
_channel
))
#define SENDER_REG_SET(
_channel
)
(
(0x20 * (
_channel
)) + 0xC
)
/* Helper macro to ring doorbell */
#define MHU_RING_DOORBELL(addr, modify_mask, preserve_mask) do { \
...
...
This diff is collapsed.
Click to expand it.
plat/arm/css/drivers/scmi/scmi_private.h
View file @
74a44dca
...
...
@@ -60,14 +60,14 @@
* Helper macro to create an SCMI message header given protocol, message id
* and token.
*/
#define SCMI_MSG_CREATE(protocol, msg_id, token) \
((((protocol) & SCMI_MSG_PROTO_ID_MASK) << SCMI_MSG_PROTO_ID_SHIFT) | \
(((msg_id) & SCMI_MSG_ID_MASK) << SCMI_MSG_ID_SHIFT) | \
(((token) & SCMI_MSG_TOKEN_MASK) << SCMI_MSG_TOKEN_SHIFT))
#define SCMI_MSG_CREATE(
_
protocol,
_
msg_id,
_
token) \
((((
_
protocol) & SCMI_MSG_PROTO_ID_MASK) << SCMI_MSG_PROTO_ID_SHIFT) | \
(((
_
msg_id) & SCMI_MSG_ID_MASK) << SCMI_MSG_ID_SHIFT) | \
(((
_
token) & SCMI_MSG_TOKEN_MASK) << SCMI_MSG_TOKEN_SHIFT))
/* Helper macro to get the token from a SCMI message header */
#define SCMI_MSG_GET_TOKEN(msg) \
(((msg) >> SCMI_MSG_TOKEN_SHIFT) & SCMI_MSG_TOKEN_MASK)
#define SCMI_MSG_GET_TOKEN(
_
msg) \
(((
_
msg) >> SCMI_MSG_TOKEN_SHIFT) & SCMI_MSG_TOKEN_MASK)
/* SCMI Channel Status bit fields */
#define SCMI_CH_STATUS_RES0_MASK 0xFFFFFFFE
...
...
This diff is collapsed.
Click to expand it.
plat/arm/css/drivers/scp/css_pm_scmi.c
View file @
74a44dca
...
...
@@ -36,21 +36,21 @@
#define SCMI_PWR_STATE_MAX_PWR_LVL_WIDTH 4
#define SCMI_PWR_STATE_MAX_PWR_LVL_MASK \
((1 << SCMI_PWR_STATE_MAX_PWR_LVL_WIDTH) - 1)
#define SCMI_SET_PWR_STATE_MAX_PWR_LVL(
pw
r_state, max_l
v
l) \
(
pw
r_state) |= ((max_l
v
l) & SCMI_PWR_STATE_MAX_PWR_LVL_MASK)
\
#define SCMI_SET_PWR_STATE_MAX_PWR_LVL(
_powe
r_state,
_
max_l
eve
l) \
(
_powe
r_state) |= ((
_
max_l
eve
l) & SCMI_PWR_STATE_MAX_PWR_LVL_MASK)\
<< SCMI_PWR_STATE_MAX_PWR_LVL_SHIFT
#define SCMI_GET_PWR_STATE_MAX_PWR_LVL(
pw
r_state) \
(((
pw
r_state) >> SCMI_PWR_STATE_MAX_PWR_LVL_SHIFT) \
#define SCMI_GET_PWR_STATE_MAX_PWR_LVL(
_powe
r_state) \
(((
_powe
r_state) >> SCMI_PWR_STATE_MAX_PWR_LVL_SHIFT) \
& SCMI_PWR_STATE_MAX_PWR_LVL_MASK)
#define SCMI_PWR_STATE_LVL_WIDTH 4
#define SCMI_PWR_STATE_LVL_MASK \
((1 << SCMI_PWR_STATE_LVL_WIDTH) - 1)
#define SCMI_SET_PWR_STATE_LVL(
pw
r_state,
lvl, lv
l_state) \
(
pw
r_state) |= ((
lv
l_state) & SCMI_PWR_STATE_LVL_MASK) \
<< (SCMI_PWR_STATE_LVL_WIDTH * (
lv
l))
#define SCMI_GET_PWR_STATE_LVL(
pw
r_state,
lv
l) \
(((
pw
r_state) >> (SCMI_PWR_STATE_LVL_WIDTH * (
lv
l))) & \
#define SCMI_SET_PWR_STATE_LVL(
_powe
r_state,
_level, _leve
l_state) \
(
_powe
r_state) |= ((
_leve
l_state) & SCMI_PWR_STATE_LVL_MASK) \
<< (SCMI_PWR_STATE_LVL_WIDTH * (
_leve
l))
#define SCMI_GET_PWR_STATE_LVL(
_powe
r_state,
_leve
l) \
(((
_powe
r_state) >> (SCMI_PWR_STATE_LVL_WIDTH * (
_leve
l))) & \
SCMI_PWR_STATE_LVL_MASK)
/*
...
...
@@ -69,7 +69,7 @@ typedef enum {
static
void
*
scmi_handle
;
/* The SCMI channel global object */
static
scmi_channel_t
scmi_
channel
;
static
scmi_channel_t
channel
;
ARM_INSTANTIATE_LOCK
;
...
...
@@ -308,9 +308,9 @@ scmi_channel_plat_info_t plat_css_scmi_plat_info = {
void
plat_arm_pwrc_setup
(
void
)
{
scmi_
channel
.
info
=
&
plat_css_scmi_plat_info
;
scmi_
channel
.
lock
=
ARM_LOCK_GET_INSTANCE
;
scmi_handle
=
scmi_init
(
&
scmi_
channel
);
channel
.
info
=
&
plat_css_scmi_plat_info
;
channel
.
lock
=
ARM_LOCK_GET_INSTANCE
;
scmi_handle
=
scmi_init
(
&
channel
);
if
(
scmi_handle
==
NULL
)
{
ERROR
(
"SCMI Initialization failed
\n
"
);
panic
();
...
...
This diff is collapsed.
Click to expand it.
plat/arm/css/drivers/sds/sds_private.h
View file @
74a44dca
...
...
@@ -67,18 +67,18 @@ typedef struct structure_header {
uint32_t
reg
[
2
];
}
struct_header_t
;
#define GET_SDS_HEADER_ID(header) \
((((struct_header_t *)(header))->reg[0]) & SDS_HEADER_ID_MASK)
#define GET_SDS_HEADER_VERSION(header) \
(((((struct_header_t *)(header))->reg[0]) >> SDS_HEADER_MINOR_VERSION_SHIFT)\
#define GET_SDS_HEADER_ID(
_
header) \
((((struct_header_t *)(
_
header))->reg[0]) & SDS_HEADER_ID_MASK)
#define GET_SDS_HEADER_VERSION(
_
header) \
(((((struct_header_t *)(
_
header))->reg[0]) >> SDS_HEADER_MINOR_VERSION_SHIFT)\
& SDS_HEADER_VERSION_MASK)
#define GET_SDS_HEADER_STRUCT_SIZE(header) \
(((((struct_header_t *)(header))->reg[1]) >> SDS_HEADER_STRUCT_SIZE_SHIFT)\
#define GET_SDS_HEADER_STRUCT_SIZE(
_
header) \
(((((struct_header_t *)(
_
header))->reg[1]) >> SDS_HEADER_STRUCT_SIZE_SHIFT)\
& SDS_HEADER_STRUCT_SIZE_MASK)
#define IS_SDS_HEADER_VALID(header) \
((((struct_header_t *)(header))->reg[1]) & SDS_HEADER_VALID_MASK)
#define GET_SDS_STRUCT_FIELD(header, field_offset) \
((((uint8_t *)(header)) + sizeof(struct_header_t)) + (field_offset))
#define IS_SDS_HEADER_VALID(
_
header) \
((((struct_header_t *)(
_
header))->reg[1]) & SDS_HEADER_VALID_MASK)
#define GET_SDS_STRUCT_FIELD(
_
header,
_
field_offset) \
((((uint8_t *)(
_
header)) + sizeof(struct_header_t)) + (
_
field_offset))
/* Region Descriptor describing the SDS Memory Region */
typedef
struct
region_descriptor
{
...
...
This diff is collapsed.
Click to expand it.
services/spd/opteed/opteed_main.c
View file @
74a44dca
...
...
@@ -34,7 +34,7 @@
* Address of the entrypoint vector table in OPTEE. It is
* initialised once on the primary core after a cold boot.
******************************************************************************/
optee_vectors_t
*
optee_vector
s
;
optee_vectors_t
*
optee_vector
_table
;
/*******************************************************************************
* Array to keep track of per-cpu OPTEE state
...
...
@@ -71,7 +71,7 @@ static uint64_t opteed_sel1_interrupt_handler(uint32_t id,
optee_ctx
=
&
opteed_sp_context
[
linear_id
];
assert
(
&
optee_ctx
->
cpu_ctx
==
cm_get_context
(
SECURE
));
cm_set_elr_el3
(
SECURE
,
(
uint64_t
)
&
optee_vector
s
->
fiq_entry
);
cm_set_elr_el3
(
SECURE
,
(
uint64_t
)
&
optee_vector
_table
->
fiq_entry
);
cm_el1_sysregs_context_restore
(
SECURE
);
cm_set_next_eret_context
(
SECURE
);
...
...
@@ -236,10 +236,10 @@ static uintptr_t opteed_smc_handler(uint32_t smc_fid,
*/
if
(
GET_SMC_TYPE
(
smc_fid
)
==
SMC_TYPE_FAST
)
{
cm_set_elr_el3
(
SECURE
,
(
uint64_t
)
&
optee_vector
s
->
fast_smc_entry
);
&
optee_vector
_table
->
fast_smc_entry
);
}
else
{
cm_set_elr_el3
(
SECURE
,
(
uint64_t
)
&
optee_vector
s
->
yield_smc_entry
);
&
optee_vector
_table
->
yield_smc_entry
);
}
cm_el1_sysregs_context_restore
(
SECURE
);
...
...
@@ -279,10 +279,10 @@ static uintptr_t opteed_smc_handler(uint32_t smc_fid,
* Stash the OPTEE entry points information. This is done
* only once on the primary cpu
*/
assert
(
optee_vector
s
==
NULL
);
optee_vector
s
=
(
optee_vectors_t
*
)
x1
;
assert
(
optee_vector
_table
==
NULL
);
optee_vector
_table
=
(
optee_vectors_t
*
)
x1
;
if
(
optee_vector
s
)
{
if
(
optee_vector
_table
)
{
set_optee_pstate
(
optee_ctx
->
state
,
OPTEE_PSTATE_ON
);
/*
...
...
This diff is collapsed.
Click to expand it.
Prev
1
2
Next
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