| #include <asm/global_data.h> |
| #define __secure __section("._secure.text") |
| #define __secure_data __section("._secure.data") |
| typedef struct secure_svc_tbl { |
| * 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") \ |
| #define SECURE_SVC_TBL_OFFSET 16 |
| #define SECURE_SVC_TBL_OFFSET 8 |
| #endif /* __ASSEMBLY__ */ |
| #if defined(CONFIG_ARMV7_SECURE_BASE) || defined(CONFIG_ARMV8_SECURE_BASE) |
| * 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 |
| #define secure_ram_addr(_fn) ({ \ |
| DECLARE_GLOBAL_DATA_PTR; \ |
| typeof(_fn) *__tmp = (__fn - gd->reloc_off); \ |
| #define secure_ram_addr(_fn) (_fn) |