mirror of
https://github.com/u-boot/u-boot.git
synced 2025-04-17 18:34:42 +00:00

We need to include <config.h> directly when a file needs to have something such as CFG_SYS_SDRAM_SIZE referenced as this file is not automatically globally included and is most commonly indirectly included via common.h. Remove most cases of arm including config.h directly, but add it where needed. This includes a few board-specific fixes. Reviewed-by: Simon Glass <sjg@chromium.org> Signed-off-by: Tom Rini <trini@konsulko.com>
60 lines
1.3 KiB
C
60 lines
1.3 KiB
C
#ifndef __ASM_SECURE_H
|
|
#define __ASM_SECURE_H
|
|
|
|
#include <asm/global_data.h>
|
|
|
|
#define __secure __section("._secure.text")
|
|
#define __secure_data __section("._secure.data")
|
|
|
|
#ifndef __ASSEMBLY__
|
|
|
|
typedef struct secure_svc_tbl {
|
|
u32 id;
|
|
#ifdef CONFIG_ARMV8_PSCI
|
|
u8 pad[4];
|
|
#endif
|
|
void *func;
|
|
} secure_svc_tbl_t;
|
|
|
|
/*
|
|
* Macro to declare a SiP function service in '_secure_svc_tbl_entries' section
|
|
*/
|
|
#define DECLARE_SECURE_SVC(_name, _id, _fn) \
|
|
static const secure_svc_tbl_t __secure_svc_ ## _name \
|
|
__used __section("._secure_svc_tbl_entries") \
|
|
= { \
|
|
.id = _id, \
|
|
.func = _fn }
|
|
|
|
#else
|
|
|
|
#ifdef CONFIG_ARMV8_PSCI
|
|
#define SECURE_SVC_TBL_OFFSET 16
|
|
#else
|
|
#define SECURE_SVC_TBL_OFFSET 8
|
|
|
|
#endif
|
|
|
|
#endif /* __ASSEMBLY__ */
|
|
|
|
#if defined(CONFIG_ARMV7_SECURE_BASE) || defined(CONFIG_ARMV8_SECURE_BASE)
|
|
/*
|
|
* Warning, horror ahead.
|
|
*
|
|
* The target code lives in our "secure ram", but u-boot doesn't know
|
|
* that, and has blindly added reloc_off to every relocation
|
|
* entry. Gahh. Do the opposite conversion. This hack also prevents
|
|
* GCC from generating code veeners, which u-boot doesn't relocate at
|
|
* all...
|
|
*/
|
|
#define secure_ram_addr(_fn) ({ \
|
|
DECLARE_GLOBAL_DATA_PTR; \
|
|
void *__fn = _fn; \
|
|
typeof(_fn) *__tmp = (__fn - gd->reloc_off); \
|
|
__tmp; \
|
|
})
|
|
#else
|
|
#define secure_ram_addr(_fn) (_fn)
|
|
#endif
|
|
|
|
#endif
|