u-boot/arch/arm/include/asm/secure.h
Chen-Yu Tsai a5aa7ff33a ARM: Add secure section for initialized data
The secure monitor may need to store global or static values within the
secure section of memory, such as target PC or CPU power status.

Signed-off-by: Chen-Yu Tsai <wens@csie.org>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
2016-07-15 15:54:58 +02:00

29 lines
768 B
C

#ifndef __ASM_SECURE_H
#define __ASM_SECURE_H
#include <config.h>
#define __secure __attribute__ ((section ("._secure.text")))
#define __secure_data __attribute__ ((section ("._secure.data")))
#ifdef CONFIG_ARMV7_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