ra8-firmware 0.1.0
Bare-metal firmware for the Renesas RA8 family (RA8D2 / RA8P1)
Loading...
Searching...
No Matches

Inter-Processor Communication (IPC) HAL driver – public API. More...

#include <stdint.h>
#include "ra8_err.h"
#include "ra8_ipc_regs.h"
#include "ra8_ipc_sync.h"
#include "ra8_ipc_types.h"
#include "ra8_ipc_xfer.h"
Include dependency graph for ra8_ipc.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Detailed Description

Inter-Processor Communication (IPC) HAL driver – public API.

Tag
[Ring 3 / HAL] {World: NS}

Bare-metal driver for the RA8D2 IPC mailbox between the Cortex-M85 (CPU0) and Cortex-M33 (CPU1). Exposes the full HUM Ch 3 surface:

Channel numbering (matches ra8_ipc_regs.h):

id direction unit FIFO
0 CPU1 -> CPU0 IPC0 FIFO00
1 CPU1 -> CPU0 IPC0 FIFO01
2 CPU0 -> CPU1 IPC1 FIFO10
3 CPU0 -> CPU1 IPC1 FIFO11

The two cores typically pair channels: e.g. M85 sends through channel 2 and reads replies on channel 0. The ra8_ipc_channel_for_* helpers encode that convention so user code remains symmetric across both cores.

Note
This header is a thin umbrella. The declarations are split across ra8_ipc_types.h (typed enums, structs, callback typedefs), ra8_ipc_xfer.h (lifecycle, channel-pair, send / receive, status, attribution), and ra8_ipc_sync.h (semaphores, NMI, interrupt dispatch, ring-buffer). Consumers continue to #include "ra8_ipc.h" unchanged.

Definition in file ra8_ipc.h.