|
ra8-firmware 0.1.0
Bare-metal firmware for the Renesas RA8 family (RA8D2 / RA8P1)
|
CPU1 (Cortex-M33) cache-coherency responder. More...
Go to the source code of this file.
Functions | |
| void | cpu1_reset_handler (void) |
| CPU1 reset handler. | |
| static void | internal_cpu1_main (void) |
| CPU1 responder loop. | |
| static void | internal_fault_handler (void) |
| Default fault handler. | |
Variables | |
| uint32_t | g_ra8_ls_cpu1_stack_top |
| uint32_t | g_ra8_ls_cpu1_data_start |
| uint32_t | g_ra8_ls_cpu1_data_end |
| uint32_t | g_ra8_ls_cpu1_data_load |
| uint32_t | g_ra8_ls_cpu1_bss_start |
| uint32_t | g_ra8_ls_cpu1_bss_end |
| const uintptr_t | g_cpu1_vector_table [] |
CPU1 (Cortex-M33) cache-coherency responder.
Built as a separate ELF (-mcpu=cortex-m33) and embedded into the M85 image by ra8_add_cpu1_image(). Polls the shared SRAM struct at 0x22100000 for a ping_seq advance; on each new ping it echoes the transformed payload (ping_payload + k_cache_coherency_delta) and acks via pong_seq. The Cortex-M33 has no data cache, so it always sees SRAM directly; the coherency burden is one-sided (the M85 D-cache), which the non-cacheable MPU region on the M85 side removes. No IPC peripheral is used – see cache_coherency_shared.h for the rationale.
Definition in file cpu1_main.c.
| void cpu1_reset_handler | ( | void | ) |
CPU1 reset handler.
Runs the minimal C-runtime init the M33 image needs before branching into cpu1_main:
Definition at line 90 of file cpu1_main.c.
References g_ra8_ls_cpu1_bss_end, g_ra8_ls_cpu1_bss_start, g_ra8_ls_cpu1_data_end, g_ra8_ls_cpu1_data_load, g_ra8_ls_cpu1_data_start, and internal_cpu1_main().
|
static |
CPU1 responder loop.
See file header. Each ping is echoed as ping_payload + delta so the M85 can verify the round-trip carried data end-to-end.
Definition at line 48 of file cpu1_main.c.
References internal_shared(), k_cache_coherency_delta, cache_coherency_shared_t::ping_payload, cache_coherency_shared_t::ping_seq, cache_coherency_shared_t::pong_payload, cache_coherency_shared_t::pong_seq, and RA8_INTERNAL.
|
static |
Default fault handler.
All M33 exception slots route here.
Definition at line 119 of file cpu1_main.c.
References RA8_INTERNAL.
| const uintptr_t g_cpu1_vector_table[] |
Definition at line 138 of file cpu1_main.c.
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |