37#ifndef LIBBSP_AARCH64_SHARED_START_H
38#define LIBBSP_AARCH64_SHARED_START_H
58#define BSP_START_TEXT_SECTION __attribute__((section(".bsp_start_text")))
60#define BSP_START_DATA_SECTION __attribute__((section(".bsp_start_data")))
84BSP_START_TEXT_SECTION
static inline void
85bsp_start_memcpy_libc(
void *dest,
const void *src,
size_t n)
95BSP_START_TEXT_SECTION
static inline void bsp_start_copy_sections(
void)
98 bsp_start_memcpy_libc(
99 (
int *) bsp_section_text_begin,
100 (
const int *) bsp_section_text_load_begin,
101 (
size_t) bsp_section_text_size
105 bsp_start_memcpy_libc(
106 (
int *) bsp_section_rodata_begin,
107 (
const int *) bsp_section_rodata_load_begin,
108 (
size_t) bsp_section_rodata_size
112 bsp_start_memcpy_libc(
113 (
int *) bsp_section_data_begin,
114 (
const int *) bsp_section_data_load_begin,
115 (
size_t) bsp_section_data_size
119 bsp_start_memcpy_libc(
120 (
int *) bsp_section_fast_text_begin,
121 (
const int *) bsp_section_fast_text_load_begin,
122 (
size_t) bsp_section_fast_text_size
126 bsp_start_memcpy_libc(
127 (
int *) bsp_section_fast_data_begin,
128 (
const int *) bsp_section_fast_data_load_begin,
129 (
size_t) bsp_section_fast_data_size
140BSP_START_TEXT_SECTION
static inline void bsp_start_copy_sections_compact(
void)
143 bsp_start_memcpy_libc(
144 bsp_section_data_begin,
145 bsp_section_data_load_begin,
146 (
size_t) bsp_section_data_size
150 bsp_start_memcpy_libc(
151 bsp_section_fast_text_begin,
152 bsp_section_fast_text_load_begin,
153 (
size_t) bsp_section_fast_text_size
157 bsp_start_memcpy_libc(
158 bsp_section_fast_data_begin,
159 bsp_section_fast_data_load_begin,
160 (
size_t) bsp_section_fast_data_size
164BSP_START_TEXT_SECTION
static inline void bsp_start_clear_bss(
void)
166 memset(bsp_section_bss_begin, 0, (
size_t) bsp_section_bss_size);
169BSP_START_TEXT_SECTION
static inline void
170AArch64_start_set_vector_base(
void)
173 "msr VBAR_EL1, %[vtable]\n"
174 : : [vtable]
"r" (bsp_start_vector_table_begin)
void bsp_start_hook_1(void)
Start entry hook 1.
Definition: bspstarthooks.c:47
void _start(void)
System start entry.
void bsp_start_hook_0(void)
Start entry hook 0.
Definition: bspstarthooks.c:49
This header file provides interfaces to BSP-specific linker symbols and sections.