91typedef enum : uintptr_t {
102typedef enum : uint8_t {
111typedef enum : uint16_t {
119typedef enum : uint32_t {
159 volatile uint32_t
_r3[16];
175 "r_xspi_regs_t must match FSP R_XSPI0_Type size (412 bytes)");
211typedef enum : uint16_t {
228typedef enum : uint8_t {
238typedef enum : uint32_t {
253typedef enum : uint8_t {
265typedef enum : uint8_t {
280typedef enum : uint8_t {
285typedef enum : uint32_t {
299typedef enum : uint8_t {
304typedef enum : uint32_t {
319typedef enum : uint8_t {
337typedef enum : uint8_t {
350typedef enum : uint8_t {
367typedef enum : uint32_t {
379typedef enum : uint8_t {
389typedef enum : uint8_t {
404typedef enum : uint32_t {
415typedef enum : uint32_t {
424typedef enum : uint32_t {
441typedef enum : uint8_t {
450typedef enum : uint32_t {
472typedef enum : uint32_t {
481typedef enum : uint8_t {
496typedef enum : uint32_t {
507typedef enum : uint32_t {
521typedef enum : uint8_t {
Annotation-attribute framework macros for ra8-firmware.
#define RA8_HW_REGISTER_ACCESS
Mark an MMIO accessor function (returns volatile register pointer).
ra8_xspi_cdt_trtype_t
CDT.TRTYPE direction selector.
@ k_ra8_xspi_cdt_trtype_read
Read transaction (host samples).
@ k_ra8_xspi_cdt_trtype_write
Write transaction (host drives).
ra8_xspi_cmctlch_t
Pre-shifted bit masks for CMCTLCH[n] (XiP control).
@ k_ra8_xspi_cmctlch_xipencode_pos
XIPENCODE[7..0] enter.
@ k_ra8_xspi_cmctlch_xipexcode_pos
XIPEXCODE[15..8] exit.
@ k_ra8_xspi_cmctlch_xipen_mask
XIPEN[16] enable.
@ k_ra8_xspi_cmctlch_xipen_pos
XIPEN bit position.
ra8_xspi_bmctl1_t
Pre-shifted control masks for BMCTL1 (write-only).
@ k_ra8_xspi_bmctl1_mwrpush_mask
Push combine ch0+ch1.
@ k_ra8_xspi_bmctl1_pbufclr_mask
Clear prefetch ch0+ch1.
ra8_xspi_wrapcfg_pos_t
Bit positions inside WRAPCFG (DQS shift per target).
@ k_ra8_xspi_wrapcfg_pos_dssft_cs1
DSSFTCS1[28..24].
@ k_ra8_xspi_wrapcfg_pos_dssft_cs0
DSSFTCS0[12..8].
ra8_xspi_ints_mask_t
Pre-shifted masks for the INTS and INTC registers.
@ k_ra8_xspi_ints_mask_all
Clear every pending flag.
@ k_ra8_xspi_ints_mask_patcmp
PATCMP – pattern complete.
@ k_ra8_xspi_ints_mask_inicmp
INICMP – initial seq done.
@ k_ra8_xspi_ints_mask_cmdcmp
CMDCMP – command complete.
ra8_xspi_cdt_addsize_t
Encoded address-byte counts for CDT.ADDSIZE.
@ k_ra8_xspi_cdt_addsize_4
4-byte address (32-bit JEDEC).
@ k_ra8_xspi_cdt_addsize_3
3-byte address (24-bit JEDEC).
@ k_ra8_xspi_cdt_addsize_0
No address phase (e.g.
ra8_xspi_calib_t
Reserved-bit positions in CCCTLCS[n].CCCTL0 (calibration).
@ k_ra8_xspi_ccctlcs_words_per_cs
8 u32 per chip-select bank.
@ k_ra8_xspi_ccctl0_pos_caen
CAEN[0] auto-calibration enable.
ra8_xspi_cdt_pos_t
Bit positions inside the CDBUF[n].CDT (Command Type) word.
@ k_ra8_xspi_cdt_pos_datasize
DATASIZE[8..5] data bytes.
@ k_ra8_xspi_cdt_pos_cmd
CMD[31..16] JEDEC opcode.
@ k_ra8_xspi_cdt_pos_cmdsize
CMDSIZE[1..0] command bytes.
@ k_ra8_xspi_cdt_pos_trtype
TRTYPE[15] 0=read 1=write.
@ k_ra8_xspi_cdt_pos_addsize
ADDSIZE[4..2] address bytes.
@ k_ra8_xspi_cdt_pos_late
LATE[13..9] latency cycles.
ra8_xspi_cdt_field_mask_t
Width-limited masks for the sub-fields packed into CDT.
@ k_ra8_xspi_cdt_mask_addsize
ADDSIZE field is 3 bits.
@ k_ra8_xspi_cdt_mask_datasize
DATASIZE field is 4 bits.
@ k_ra8_xspi_cdt_mask_trtype
TRTYPE field is 1 bit.
@ k_ra8_xspi_cdt_mask_cmdsize
CMDSIZE field is 2 bits.
@ k_ra8_xspi_cdt_mask_cmd
CMD[31..16] is a 16-bit field.
ra8_xspi_cdctl0_mask_t
Pre-shifted masks for CDCTL0 control bits.
@ k_ra8_xspi_cdctl0_mask_trreq
TRREQ (kick off xfer).
@ k_ra8_xspi_cdctl0_mask_cssel
CSSEL (target select).
ra8_xspi_inte_mask_t
Pre-shifted masks for the INTE interrupt-enable register.
@ k_ra8_xspi_inte_mask_cmdcmp
CMDCMPE – enable CMDCMP IRQ.
ra8_xspi_cmcfgcs_pos_t
Bit positions inside the CMCFGCS read-cmd word.
@ k_ra8_xspi_cmcfgcs_pos_addr_size
ADDSIZE[2..0] addr bytes.
@ k_ra8_xspi_cmcfgcs_pos_cmd
CMD[31..16] read opcode.
ra8_xspi_cdctl0_bit_t
Bit positions in CDCTL0 (command manual control 0).
@ k_ra8_xspi_cdctl0_bit_cssel
Chip-select select (0 = CS0).
@ k_ra8_xspi_cdctl0_bit_trreq
Transaction request.
ra8_xspi_ints_bit_t
Bit positions in the INTS interrupt-status register.
@ k_ra8_xspi_ints_bit_patcmp
Pattern-complete flag.
@ k_ra8_xspi_ints_bit_inicmp
Initial-sequence-complete flag.
@ k_ra8_xspi_ints_bit_cmdcmp
Command-complete flag.
static volatile r_xspi_regs_t * ra8_xspi(uint8_t instance)
Get pointer to xSPI instance N (0..1).
ra8_xspi_xfer_limits_t
Limits for direct-command flash transfers.
@ k_ra8_xspi_page_len
Page size of standard NOR flash parts.
@ k_ra8_xspi_sector_len
Sector size for opcode 0x20 / 0x21.
@ k_ra8_xspi_max_xfer
Maximum bytes per flash read/program call.
ra8_xspi_lio_mode_t
Protocol mode values written to LIOCFGCS[n].PRTMD.
@ k_ra8_xspi_lio_1s1s1s
1S-1S-1S extended SPI.
@ k_ra8_xspi_lio_1s2s2s
1S-2S-2S dual IO.
@ k_ra8_xspi_lio_1s4s4s
1S-4S-4S quad IO.
@ k_ra8_xspi_lio_8d8d8d
8D-8D-8D octal DDR (OPI).
@ k_ra8_xspi_lio_1s8s8s
1S-8S-8S octal IO.
ra8_xspi_cmcfgcs_layout_t
Word indices inside one CMCFGCS[n] slot (4 u32 each).
@ k_ra8_xspi_cmcfgcs_word_addr
+0x0C address-byte width.
@ k_ra8_xspi_cmcfgcs_word_write_cmd
+0x08 write-cmd + dummy.
@ k_ra8_xspi_cmcfgcs_word_mode
+0x00 mapping mode word.
@ k_ra8_xspi_cmcfgcs_words_per_slot
Each slot is 4 u32 wide.
@ k_ra8_xspi_cmcfgcs_word_read_cmd
+0x04 read-cmd + dummy cycles.
ra8_xspi_liocfgcs_pos_t
Bit positions in LIOCFGCS[n] (link I/O config per target).
@ k_ra8_xspi_liocfgcs_pos_prtmd
PRTMD[9..0] protocol mode.
@ k_ra8_xspi_liocfgcs_pos_latemd
LATEMD[10] latency mode.
@ k_ra8_xspi_liocfgcs_pos_ddren
DDREN[11] DDR enable.
@ k_ra8_xspi_wrapcfg_dssft_mask
5-bit DQS shift code mask.
ra8_xspi_comstt_bit_t
Bit positions in the COMSTT (common status) register.
@ k_ra8_xspi_comstt_bit_ecs_cs1
ECS monitor for target 1.
@ k_ra8_xspi_comstt_bit_int_cs0
INT monitor for target 0.
@ k_ra8_xspi_comstt_bit_ecs_cs0
ECS monitor for target 0.
@ k_ra8_xspi_comstt_bit_memacc_ch0
Mem access ongoing for ch0.
@ k_ra8_xspi_comstt_bit_int_cs1
INT monitor for target 1.
@ k_ra8_xspi_comstt_bit_pbufne_ch0
Prefetch buf not-empty ch0.
@ k_ra8_xspi_comstt_bit_memacc_ch1
Mem access ongoing for ch1.
@ k_ra8_xspi_comstt_bit_pbufne_ch1
Prefetch buf not-empty ch1.
ra8_xspi_bmctl0_t
Pre-shifted masks for BMCTL0 (system-bus access enable).
@ k_ra8_xspi_bmctl0_read_write
11 per pair: read/write.
@ k_ra8_xspi_bmctl0_write_only
10 per pair: write-only.
@ k_ra8_xspi_bmctl0_disabled
All AHB access disabled.
@ k_ra8_xspi_bmctl0_read_only
01 per pair: read-only.
ra8_xspi_addr_t
xSPI / DOTF window base addresses on the peripheral bus.
@ k_ra8_xspi1_base_addr
XSPI1 register window.
@ k_ra8_dotf_base_addr
DOTF (decryption-on-the-fly).
@ k_ra8_xspi0_base_addr
XSPI0 register window.
@ k_ra8_xspi_stride
Spacing between XSPIn windows.
@ k_ra8_xspi_ccctl0_mask_caen
CAEN enable mask.
ra8_xspi_lioctl_mask_t
Pre-shifted masks for LIOCTL (link I/O control: WP / RST drive).
@ k_ra8_xspi_lioctl_mask_wpcs
WPCS – write-protect drive.
@ k_ra8_xspi_lioctl_mask_rstcs
RSTCS – hardware-reset drive.
@ k_ra8_xspi_regs_size
FSP R_XSPI0_Type size (412 bytes).
ra8_xspi_limits_t
Fixed xSPI limits (instance counts, slot counts).
@ k_ra8_xspi_cdbuf_slots
CDBUF has 4 x 16-byte manual slots.
@ k_ra8_xspi_r5_words
Reserved 16-byte gap at +0x170.
@ k_ra8_xspi_r4_words
Reserved 36-byte gap at +0x10C.
@ k_ra8_xspi_ccctlcs_words
CCCTLCS is 2 targets x 8 u32 each.
@ k_ra8_xspi_instance_count
XSPI0 and XSPI1.
@ k_ra8_xspi_cdbuf_words
Flattened CDBUF view (4 slots x 4 u32).
ra8_xspi_cdt_cmdsize_t
Encoded command-byte counts for CDT.CMDSIZE.
@ k_ra8_xspi_cdt_cmdsize_2
2-byte command (DDR / OPI).
@ k_ra8_xspi_cdt_cmdsize_1
1-byte command (standard SPI).
@ k_ra8_xspi_cdt_cmdsize_0
No command byte (rare).
ra8_xspi_cdbuf_slot_word_t
Per-slot word indices inside one CDBUF slot (4 u32 each).
@ k_ra8_xspi_cdbuf_word_cdt
+0x00 CDT – cmd/size/type word.
@ k_ra8_xspi_cdbuf_word_cdd1
+0x0C CDD1 – data bytes 4..7.
@ k_ra8_xspi_cdbuf_word_cda
+0x04 CDA – address word.
@ k_ra8_xspi_cdbuf_words_per_slot
Each CDBUF slot is 4 u32 wide.
@ k_ra8_xspi_cdbuf_word_cdd0
+0x08 CDD0 – data bytes 0..3.
ra8_xspi_liocfgcs_mask_t
Pre-shifted bit masks for LIOCFGCS[n] enable bits.
@ k_ra8_xspi_liocfgcs_mask_ddren
DDR / DTR enable bit.
xSPI per-instance register window.
volatile uint32_t VERSTT
+0x180 Version (RO).
volatile uint32_t COMCFG
+0x004 Channel arbitration + INT en.
volatile uint32_t LIOCFGCS[2]
+0x050..+0x054 Link I/O per target.
volatile uint32_t CDCTL2
+0x078 Manual cmd ctl 2.
volatile uint32_t BMCTL0
+0x060 Bridge map control 0.
volatile uint32_t LIOCTL
+0x108 Link I/O control (WP/RST).
volatile uint32_t _r5[k_ra8_xspi_r5_words]
+0x170 Reserved.
volatile uint32_t INTC
+0x194 Interrupt clear (W1C).
volatile uint32_t COMSTT
+0x184 Common status (MEMACC/PBUFNE).
volatile uint32_t INTS
+0x190 Interrupt status (CMDCMP=b0).
volatile uint32_t _r4[k_ra8_xspi_r4_words]
+0x10C Reserved.
volatile uint32_t WRAPCFG
+0x000 Wrapper config (CK/DS shift).
volatile uint32_t CCCTLCS[k_ra8_xspi_ccctlcs_words]
+0x130 Calib 2x8.
volatile uint32_t LPCTL1
+0x104 Link pattern control 1.
volatile uint32_t INTE
+0x198 Interrupt enable.
volatile uint32_t _r0[8]
+0x030 Reserved (32 bytes).
volatile uint32_t _r3[16]
+0x0C0 Reserved (64 bytes).
volatile uint32_t CMCFGCS[8]
+0x010..+0x02C Command map (2x4 u32).
volatile uint32_t BMCFGCH[2]
+0x008..+0x00C Bridge map config.
volatile uint32_t CASTTCS[2]
+0x188..+0x18C Calibration status.
volatile uint32_t CDCTL0
+0x070 Manual cmd ctl 0 (TRREQ/CSSEL)
volatile uint32_t BMCTL1
+0x064 Bridge map control 1 (WO).
volatile uint32_t CMCTLCH[2]
+0x068..+0x06C XiP command control.
volatile uint32_t CDBUF[16]
+0x080..+0x0BC Command buf (4x4 u32).
volatile uint32_t LPCTL0
+0x100 Link pattern control 0.
volatile uint32_t ABMCFG
+0x058 AXI bridge map config.
volatile uint32_t _r1
+0x05C Reserved.
volatile uint32_t _r2
+0x07C Reserved.
volatile uint32_t CDCTL1
+0x074 Manual cmd ctl 1.