ra8-firmware 0.1.0
Bare-metal firmware for the Renesas RA8 family (RA8D2 / RA8P1)
Loading...
Searching...
No Matches
ra8_flash_regs.h
Go to the documentation of this file.
1
32
33#pragma once
34
35#ifdef __cplusplus
36extern "C" {
37#endif
38
39#include <stdint.h>
40
41/* =============================================================================
42 * Memory map: code-MRAM, extra-MRAM, OFS aliases
43 * =============================================================================
44 */
45
63typedef enum : uintptr_t {
64 /* HUM Ch 59.1 "Address Map" p 3543 */
65 k_ra8_flash_code_start = 0x02000000UL,
66 k_ra8_flash_code_size = 0x00100000UL,
67
68 /* Extra-MRAM option-setting / OTP window: the whole address space the MACI
69 * Program command accepts. There is NO rewritable data-flash on this part.
70 * HUM Ch 59.7.4.5 "Program Command" Table 59.15 p 3592 (0x02E0_7600 first
71 * legal target .. 0x02E1_79F0 last). */
72 k_ra8_flash_extra_start = 0x02E07600UL,
73 k_ra8_flash_extra_size = 0x00010400UL,
74
75 /* General-purpose OTP sub-range: the only portion of the window a
76 * general-purpose write may target. The rest (FSBL, code certificate, PBPS,
77 * POFSPS, REVOKE, HUK-zeroize, anti-rollback) is security-critical and needs
78 * a deliberate, separately-named call (see ra8_flash_config_set_write).
79 * HUM Ch 7.2.25 "GPOTPn : General Purpose OTP (n = 0 to 23)" p 299 (24 words
80 * at 0x02E0_76A0 + 0x4 x n). */
81 k_ra8_flash_gpotp_start = 0x02E076A0UL,
82 k_ra8_flash_gpotp_size = 0x00000060UL,
83
84 /* Guard boundary: the permanent / irreversible option-setting structures
85 * begin here (PBPS_SEC, PBPS, POFSPS, REVOKE, Zeroization HUK enable,
86 * anti-rollback lock/config). A general-purpose write is refused at or above
87 * this address so a caller cannot brick the part or destroy the wrapped HUK
88 * by accident. HUM Ch 59.7.4.5 Table 59.15 p 3592 (PBPS_SEC at 0x02E1_7700). */
90
91 /* HUM Ch 7 "Option-Setting Memory" p 278 -- the config_set MACI command
92 * targets halfwords inside this OFS window (BTFLG/BTSIZE at 0x02C9F070,
93 * SAS at 0x02C9F074, etc.). FSP r_mram.c uses MSADDR values inside this
94 * 4 KiB block as the only legal config_set destinations. */
95 k_ra8_flash_ofs_start = 0x02C9F000UL,
96 k_ra8_flash_ofs_size = 0x00001000UL,
97
98 /* HUM Ch 7.2.21 "ARCCS Anti-Rollback Counter Configuration" p 296 */
100 /* HUM Ch 7.2.22 "ARC_SEC" p 296 */
102 /* HUM Ch 7.2.23 "ARC_NSEC" p 297 */
105
116typedef enum : uintptr_t {
117 /* HUM Ch 59.1 "Address Map" p 3543 */
118 k_ra8_mram_base_addr = 0x4013C000UL,
119 k_ra8_mram_base_addr_ns = 0x5013C000UL,
120 k_ra8_mram_cmd_base = 0x40120000UL,
122
123/* =============================================================================
124 * Register offsets within the MRMS window
125 * =============================================================================
126 */
127
137typedef enum : uint16_t {
138 /* HUM Ch 59.5.1 "MRCPFB : Code MRAM Pre-Fetch Buffer Enable Register" p 3551 */
140 /* HUM Ch 59.5.2 "MRCFREQ : Code MRAM Frequency Notifications Register" p 3551 */
142 /* HUM Ch 59.5.3 "MREFREQ : Extra MRAM Frequency Notifications Register" p 3552 */
144 /* HUM Ch 59.5.4 "MRCDECC : Code MRAM ECC Decoder Control Register" p 3554 */
146 /* HUM Ch 59.5.5 "MRCRAEINT : Code MRAM Read Access Error Interrupt Enable" p 3554 */
148 /* HUM Ch 59.5.6 "MRCRAES : Code MRAM Read Access Error Status Register" p 3554 */
150 /* HUM Ch 59.5.7 "MRCRTEA : Code MRAM TED Error Address Register" p 3555 */
152 /* HUM Ch 59.5.8 "MRCRDEA : Code MRAM DEC Error Address Register" p 3556 */
154 /* HUM Ch 59.5.9 "MRERAINT : Extra MRAM Read Access Error Interrupt Enable" p 3557 */
156 /* HUM Ch 59.5.10 "MRERAES : Extra MRAM Read Access Error Status Register" p 3557 */
158 /* HUM Ch 59.5.11 "MRERTEA : Extra MRAM TED Error Address Register" p 3558 */
160 /* HUM Ch 59.5.12 "MRERDEA : Extra MRAM DEC Error Address Register" p 3559 */
162 /* HUM Ch 59.5.13 "MSAR : MRAM Security Attribution Register" p 3559 */
164 /* HUM Ch 59.5.14 "MREZS : Extra MRAM Zeroization Status Register" p 3561 */
166 /* HUM Ch 59.5.15 "MREZC : Extra MRAM Zeroization Control Register" p 3561 */
168 /* HUM Ch 59.5.16 "MASTAT : Extra MRAM Access Status Register" p 3562 */
170 /* HUM Ch 59.5.17 "MPAEINT : Extra MRAM Access Error Interrupt Enable" p 3563 */
172 /* HUM Ch 59.5.18 "MRDYIE : Extra MRAM Ready Interrupt Enable Register" p 3564 */
174 /* HUM Ch 59.5.19 "MSADDR : MACI Command Start Address Register" p 3564 */
176 /* HUM Ch 59.5.20 "MCNTSELR : MRAM Counter Select Register" p 3565 */
178 /* HUM Ch 59.5.21 "MCNTDTR0 : MRAM Counter Data Register 0" p 3576 */
180 /* HUM Ch 59.5.22 "MCNTDTR1 : MRAM Counter Data Register 1" p 3577 */
182 /* HUM Ch 59.5.23 "MCTRCNTR : MRAM Configuration Update Transfer Control" p 3566 */
184 /* HUM Ch 59.5.24 "MCTRLSR : MRAM Configuration Update Transfer List Select" p 3567 */
186 /* HUM Ch 59.5.25 "MCTRSTATR : MRAM Configuration Update Transfer Status" p 3568 */
188 /* HUM Ch 59.5.26 "MSTATR : Extra MRAM Status Register" p 3568 */
190 /* HUM Ch 59.5.27 "MENTRYR : Extra MRAM Program Mode Entry Register" p 3571 */
192 /* HUM Ch 59.5.28 "MSUINITR : Extra MRAM Sequencer Set-Up Initialization" p 3572 */
194 /* HUM Ch 59.5.29 "MCMDR : MACI Command Register" p 3572 */
196 /* HUM Ch 59.5.30 "MSUASMON : MRAM Start-Up Area Select Monitor Register" p 3573 */
198 /* HUM Ch 59.5.31 "MSUACR : MRAM Start-Up Area Control Register" p 3574 */
200 /* HUM Ch 59.5.32 "MRPSC : MRAM Program Speed Control Register" p 3575 */
202 /* HUM Ch 59.5.33 "MRCPC0 : Code MRAM Program Control Register" p 3575 */
204 /* HUM Ch 59.5.34 "MRCPC1 : Code MRAM Program Control for Secure Register" p 3576 */
206 /* HUM Ch 59.5.35 "MRCBPROT0 : Code MRAM Block Protection Register" p 3576 */
208 /* HUM Ch 59.5.36 "MRCBPROT1 : Code MRAM Block Protection for Secure Register" p 3577 */
210 /* HUM Ch 59.5.37 "MRCPS : Code MRAM Program Status Register" p 3577 */
212 /* HUM Ch 59.5.38 "MRCPAEINT : Code MRAM Program Access Error Interrupt Enable" p 3579 */
214 /* HUM Ch 59.5.39 "MRCPEA : Code MRAM Program Error Address Register" p 3579 */
216 /* HUM Ch 59.5.40 "MRCFLR : Code MRAM Flush Register" p 3580 */
218 /* HUM Ch 59.5.41 "MRCEECC : Code MRAM ECC Encoder Control Register" p 3580 */
221
222/* =============================================================================
223 * MRCPS field masks (HUM Ch 59 "MRCPS" p 3601)
224 * =============================================================================
225 */
226
235typedef enum : uint8_t {
236 /* HUM Ch 59 "MRCPS : Code MRAM Program Status Register" p 3577 */
244
245/* =============================================================================
246 * MRCEECC / MRCDECC ECC controls (HUM Ch 59 p 3554, p 3624)
247 * =============================================================================
248 */
249
259typedef enum : uint16_t {
260 /* HUM Ch 59 "MRCEECC : Code MRAM ECC Encoder Control" p 3580 */
264
269typedef enum : uint16_t {
270 /* HUM Ch 59 "MRCDECC : Code MRAM ECC Decoder Control" p 3554 */
274
275/* =============================================================================
276 * Read-error and access-error masks
277 * =============================================================================
278 */
279
289typedef enum : uint8_t {
290 /* HUM Ch 59 "MRCRAES : Code MRAM Read Access Error Status" p 3554 */
295
303typedef enum : uint8_t {
304 /* HUM Ch 59 "MRCRAEINT : Code MRAM Read Access Error IRQ Enable" p 3554 */
308
313typedef enum : uint8_t {
314 /* HUM Ch 59 "MRCPAEINT : Code MRAM Program Access Error IRQ Enable" p 3579 */
317
322typedef enum : uint8_t {
323 /* HUM Ch 59 "MPAEINT : Extra MRAM Access Error IRQ Enable" p 3563 */
327
332typedef enum : uint8_t {
333 /* HUM Ch 59 "MRDYIE : Extra MRAM Ready Interrupt Enable" p 3564 */
336
341typedef enum : uint8_t {
342 /* HUM Ch 59 "MASTAT : Extra MRAM Access Status Register" p 3562 */
346
351typedef enum : uint8_t {
352 /* HUM Ch 59 "MREZS : Extra MRAM Zeroization Status Register" p 3561 */
356
365typedef enum : uint16_t {
366 /* HUM Ch 59 "MREZC : Extra MRAM Zeroization Control" p 3561 */
369
370/* =============================================================================
371 * MENTRYR / MSUACR / MSUINITR / MSUASMON
372 * =============================================================================
373 */
374
379typedef enum : uint16_t {
380 /* HUM Ch 59 "MENTRYR : Extra MRAM Program-Mode Entry" p 3571 */
384 /* PCKA -- driver-internal name for the suspend/resume gate the
385 * FSP firmware exposes through the keyed MENTRYR write window.
386 * Setting PCKA pauses an in-flight P/E at the next page boundary;
387 * clearing it resumes. HUM Ch 59 "MENTRYR" pp 3582+. */
392
401typedef enum : uint16_t {
402 /* HUM Ch 59 "MSUACR : Start-Up Area Control Register" p 3574 */
407
412typedef enum : uint32_t {
413 /* HUM Ch 59 "MSUASMON : Start-Up Area Monitor" p 3573 */
417
422typedef enum : uint16_t {
423 /* HUM Ch 59 "MSUINITR : Extra MRAM Sequencer Set-Up Init" p 3572 */
427
428/* =============================================================================
429 * MCMDR / MSTATR
430 * =============================================================================
431 */
432
437typedef enum : uint16_t {
438 /* HUM Ch 59 "MCMDR : MACI Command Register" p 3572 */
443
448typedef enum : uint32_t {
449 /* HUM Ch 59 "MSTATR : Extra MRAM Status Register" p 3568 */
453 k_ra8_mstatr_mask_mrdy = 0x00008000UL,
455 k_ra8_mstatr_mask_oterr = 0x00100000UL,
458 /* Aggregate of all error bits used by the driver to gate command success.
459 * HUM Ch 59.5.26 "MSTATR" p 3578 lists CFGSETERR(5)=0x20, PRGERR(12)=0x1000,
460 * ILGLERR(14)=0x4000, TZFERR(19)=0x80000, OTERR(20)=0x100000,
461 * SECERR(21)=0x200000, ILGCOMERR(23)=0x800000. OR of all seven = 0x00B85020.
462 * The previous 0x009850A0 dropped SECERR and added a stray bit 7. */
465
466/* =============================================================================
467 * MRPSC / MRCPC0 / MRCPC1 / MRCBPROT0 / MRCBPROT1 / MRCFLR
468 * =============================================================================
469 */
470
475typedef enum : uint8_t {
476 /* HUM Ch 59 "MRPSC : MRAM Program Speed Control Register" p 3575 */
479
487typedef enum : uint16_t {
488 /* HUM Ch 59 "MRCPC0 : Code MRAM Program Control Register" p 3575 */
492
500typedef enum : uint16_t {
501 /* HUM Ch 59 "MRCPC1 : Code MRAM Program Control for Secure Register" p 3576 */
505
514typedef enum : uint16_t {
515 /* HUM Ch 59 "MRCBPROT0 : Code MRAM Block Protection (NS)" p 3576 */
519
527typedef enum : uint16_t {
528 /* HUM Ch 59 "MRCBPROT1 : Code MRAM Block Protection (S)" p 3577 */
532
540typedef enum : uint16_t {
541 /* HUM Ch 59 "MRCFLR : Code MRAM Flush Register" p 3580 */
544
545/* =============================================================================
546 * Update-transfer registers (MCTRCNTR / MCTRSTATR / MCTRLSR)
547 * =============================================================================
548 */
549
558typedef enum : uint16_t {
559 /* HUM Ch 59 "MCTRCNTR : MRAM Update Transfer Control" p 3566 */
563
568typedef enum : uint8_t {
569 /* HUM Ch 59 "MCTRLSR : MRAM Update Transfer List Select" p 3567 */
572
582typedef enum : uint16_t {
583 /* HUM Ch 59 "MCTRSTATR : MRAM Update Transfer Status" p 3568 */
588
589/* =============================================================================
590 * MCNTSELR (counter select) and ARC layout
591 * =============================================================================
592 */
593
598typedef enum : uint8_t {
599 /* HUM Ch 59 "MCNTSELR : MRAM Counter Select Register" p 3565 */
605
615typedef enum : uint32_t {
616 /* HUM Ch 7.2.22 "ARC_SEC" p 296 */
618 /* HUM Ch 7.2.21 "ARCCS OEMBL counter" p 296 */
620 /* HUM Ch 7.2.21 "ARCCS NSEC single-counter mode" p 296 */
622 /* HUM Ch 7.2.21 "ARCCS NSEC multi-counter mode" p 296 */
624 /* HUM Ch 7.2.21 "ARCCS ARCNS field mask" p 296 */
626 /* HUM Ch 7.2.21 "ARCCS ARCNS=1 selects single big counter" p 296 */
629
630/* =============================================================================
631 * MACI command opcodes and configuration-set targets
632 * =============================================================================
633 */
634
660typedef enum : uint8_t {
661 /* HUM Ch 59.7.4.6 "Status Clear Command" p 3593 */
663 /* HUM Ch 59.7.4.7 "Forced Stop Command" p 3593 */
665 /* HUM Ch 59.7.4.5 "Program Command" Figure 59.13 p 3591 */
667 /* HUM Ch 59.7.4.8 "Configuration Set Command" p 3594 */
669 /* HUM Ch 59.7.4.5 "Program Command" p 3591 */
671 /* HUM Ch 59.7.4.9 "Increment Counter Command" p 3595 */
673 /* HUM Ch 59.7.4.10 "Read Counter Command" p 3596 */
675 /* HUM Ch 59.7.4.5 "Program Command" p 3592 */
678
687typedef enum : uint32_t {
688 /* HUM Ch 7 "Option-Setting Memory" p 278 */
690 /* HUM Ch 7 "OFS SAS region" p 278 */
691 k_ra8_msaddr_ofs_sas = 0x02C9F074UL,
693
694/* =============================================================================
695 * Driver-facing data constants
696 * =============================================================================
697 */
698
703typedef enum : uint32_t {
704 /* HUM Ch 59.4.2 "Code MRAM programming" p 3548 */
706 /* HUM Ch 59.4.2 "Block layout" p 3548 */
708 /* HUM Ch 59 "Configuration-set MACI sequence" p 3550 */
711 /* HUM Ch 7.2.23 "ARC_NSEC layout" p 297 */
714
715/* =============================================================================
716 * Inline accessors: register windows and MACI command issue area
717 * =============================================================================
718 */
719
735static inline volatile uint8_t* ra8_mram_reg8(uint16_t off)
736{
737 return (volatile uint8_t*)(k_ra8_mram_base_addr + (uintptr_t)off);
738}
739
750static inline volatile uint16_t* ra8_mram_reg16(uint16_t off)
751{
752 return (volatile uint16_t*)(k_ra8_mram_base_addr + (uintptr_t)off);
753}
754
765static inline volatile uint32_t* ra8_mram_reg32(uint16_t off)
766{
767 return (volatile uint32_t*)(k_ra8_mram_base_addr + (uintptr_t)off);
768}
769
779static inline volatile uint8_t* ra8_mram_cmd8(void)
780{
781 return (volatile uint8_t*)k_ra8_mram_cmd_base;
782}
783
792static inline volatile uint16_t* ra8_mram_cmd16(void)
793{
794 return (volatile uint16_t*)k_ra8_mram_cmd_base;
795}
796
797#ifdef __cplusplus
798}
799#endif
ra8_mcmdr_mask_t
MCMDR field masks (MACI command status snapshot).
@ k_ra8_mcmdr_mask_cmdr
Command flag.
@ k_ra8_mcmdr_mask_cmd_progress
Any command in flight.
@ k_ra8_mcmdr_mask_pcmdr
Pre-command flag.
ra8_mrcbprot0_t
Keyed values for MRCBPROT0 (non-secure block-protection cancel).
@ k_ra8_mrcbprot0_key_unlock
Cancel block protect.
@ k_ra8_mrcbprot0_key_lock
Keep block protect on.
ra8_mrcbprot1_t
Keyed values for MRCBPROT1 (secure block-protection cancel).
@ k_ra8_mrcbprot1_key_lock
RA8 mrcbprot1 key lock.
@ k_ra8_mrcbprot1_key_unlock
RA8 mrcbprot1 key unlock.
static volatile uint8_t * ra8_mram_reg8(uint16_t off)
Pointer to a byte-wide MRMS register at offset off.
static volatile uint16_t * ra8_mram_cmd16(void)
Pointer to the MACI command-issuing area, halfword-wide.
ra8_mram_base_addr_t
MRMS controller base addresses.
@ k_ra8_mram_base_addr_ns
Non-secure MRMS alias.
@ k_ra8_mram_base_addr
Secure MRMS base.
@ k_ra8_mram_cmd_base
MACI command issue area.
static volatile uint8_t * ra8_mram_cmd8(void)
Pointer to the MACI command-issuing area, byte-wide.
ra8_mrcraes_mask_t
MRCRAES / MRERAES read-access error status bits.
@ k_ra8_mrcraes_mask_decerrc
2-bit DEC error.
@ k_ra8_mrcraes_mask_any
Either 1-bit or 2-bit.
@ k_ra8_mrcraes_mask_tederrc
1-bit TED error.
ra8_mrcpc1_t
Keyed values for MRCPC1 (secure program-gate).
@ k_ra8_mrcpc1_key_enable
RA8 mrcpc1 key enable.
@ k_ra8_mrcpc1_key_disable
RA8 mrcpc1 key disable.
ra8_mrcpaeint_mask_t
MRCPAEINT field mask.
@ k_ra8_mrcpaeint_mask_mrcaeie
Code program-error IRQ enable.
ra8_mctrstatr_mask_t
MCTRSTATR field masks.
@ k_ra8_mctrstatr_mask_done
TRMD.
@ k_ra8_mctrstatr_mask_busy
TRBUSY.
@ k_ra8_mctrstatr_mask_err
Reserved-future error.
ra8_mrceecc_mask_t
Field masks and key for the MRCEECC ECC encoder control.
@ k_ra8_mrceecc_mask_eccen
Encoder enable bit.
@ k_ra8_mrceecc_key_shift
Pre-shifted KEY[15:8]=0xC0.
ra8_mastat_mask_t
MASTAT field masks.
@ k_ra8_mastat_mask_cmdlk
Command lock latched.
@ k_ra8_mastat_mask_mreae
Extra MRAM access error.
ra8_mctrcntr_t
Keyed values + masks for MCTRCNTR.
@ k_ra8_mctrcntr_mask_start
RA8 mctrcntr mask start.
@ k_ra8_mctrcntr_key
RA8 mctrcntr key.
ra8_flash_map_t
Address bounds of the user-visible MRAM windows.
@ k_ra8_flash_code_size
1 MiB of code MRAM.
@ k_ra8_flash_gpotp_start
GPOTP0.
@ k_ra8_flash_extra_start
First legal Program target (FSBL setting).
@ k_ra8_flash_extra_size
Covers through 0x02E179F0 (last, reserved).
@ k_ra8_flash_code_start
Start of code MRAM region.
@ k_ra8_flash_ofs_start
Start of OFS config_set window.
@ k_ra8_flash_extra_locked_start
First permanent-OTP structure.
@ k_ra8_flash_gpotp_size
24 words (GPOTP0..GPOTP23).
@ k_ra8_flash_ofs_size
4 KiB OFS block.
@ k_ra8_flash_ofs_arc_nsec_addr
RA8 flash ofs arc nsec address.
@ k_ra8_flash_ofs_arccs_addr
RA8 flash ofs arccs address.
@ k_ra8_flash_ofs_arc_sec_addr
RA8 flash ofs arc sec address.
ra8_mctrlsr_mask_t
MCTRLSR field mask (transfer-list select).
@ k_ra8_mctrlsr_mask_list_sel
RA8 mctrlsr mask list sel.
static volatile uint16_t * ra8_mram_reg16(uint16_t off)
Pointer to a halfword-wide MRMS register at offset off.
ra8_arc_limits_t
Per-counter bit limits and ARCCS field masks.
@ k_ra8_arc_nsec_single
RA8 arc nsec single.
@ k_ra8_arc_arccs_mask
RA8 arc arccs mask.
@ k_ra8_arc_sec_max_bits
RA8 arc sec maximum bits.
@ k_ra8_arc_nsec_multiple
RA8 arc nsec multiple.
@ k_ra8_arc_oembl_max_bits
RA8 arc oembl maximum bits.
@ k_ra8_arc_arcns_single
RA8 arc arcns single.
ra8_mrezs_mask_t
MREZS field masks (zeroization status).
@ k_ra8_mrezs_mask_whukexe
W-HUK Zeroization Executing.
@ k_ra8_mrezs_mask_whukzf
W-HUK Zero Flag.
ra8_mrcflr_t
Keyed value for MRCFLR (write-buffer flush).
@ k_ra8_mrcflr_key_flush
RA8 mrcflr key flush.
ra8_mrcpc0_t
Keyed values for MRCPC0 (non-secure program-gate).
@ k_ra8_mrcpc0_key_disable
RA8 mrcpc0 key disable.
@ k_ra8_mrcpc0_key_enable
RA8 mrcpc0 key enable.
ra8_mcntselr_t
MCNTSELR field-value codes for the four counter families.
@ k_ra8_mcntselr_oembl
ARC_OEMBL (OEM bootloader).
@ k_ra8_mcntselr_nsec_0
ARC_NSEC index 0; +1/+2/+3 follow.
@ k_ra8_mcntselr_sec
ARC_SEC.
@ k_ra8_mcntselr_mask
CNTSEL[2:0].
ra8_msuasmon_mask_t
MSUASMON read-only field masks.
@ k_ra8_msuasmon_mask_btflg
Boot-swap flag.
@ k_ra8_msuasmon_mask_fspr
Protection flag.
ra8_mstatr_mask_t
MSTATR field masks (extra-MRAM status flags).
@ k_ra8_mstatr_mask_ilglerr
Illegal error.
@ k_ra8_mstatr_mask_mrdy
MRE ready.
@ k_ra8_mstatr_mask_oterr
Other error.
@ k_ra8_mstatr_mask_any_err
Composite error mask.
@ k_ra8_mstatr_mask_cfgseterr
Configuration set error.
@ k_ra8_mstatr_mask_prgerr
Program error.
@ k_ra8_mstatr_mask_secerr
Security error.
@ k_ra8_mstatr_mask_ilgcomerr
Illegal command error.
@ k_ra8_mstatr_mask_tzferr
TrustZone filter error.
ra8_mrpsc_mask_t
MRPSC field masks (high-speed program enable).
@ k_ra8_mrpsc_mask_mhspen
High-speed program enable.
ra8_msuinitr_t
Keyed value + field mask for MSUINITR.
@ k_ra8_msuinitr_full_init
KEY=0xAA, SUINIT=1.
@ k_ra8_msuinitr_mask_suinit
SUINIT status bit.
ra8_mpaeint_mask_t
MPAEINT field masks (extra MRAM access-error IRQ enable).
@ k_ra8_mpaeint_mask_cmdlkie
Command-lock IRQ enable.
@ k_ra8_mpaeint_mask_mreaeie
Access-error IRQ enable.
ra8_mrdyie_mask_t
MRDYIE field mask.
@ k_ra8_mrdyie_mask_mrdyie
MRDY IRQ enable.
ra8_mentryr_t
Keyed values and field masks for the MENTRYR P/E entry register.
@ k_ra8_mentryr_mask_pcka
Pause / resume gate bit.
@ k_ra8_mentryr_mask_pe_mode
MENTRY status bit.
@ k_ra8_mentryr_pe_resume
KEY=0xAA, MENTRY=1, PCKA=0.
@ k_ra8_mentryr_pe_enter
KEY=0xAA, MENTRY=1.
@ k_ra8_mentryr_pe_pause
KEY=0xAA, MENTRY=1, PCKA=1.
@ k_ra8_mentryr_read_mode
KEY=0xAA, MENTRY=0.
static volatile uint32_t * ra8_mram_reg32(uint16_t off)
Pointer to a word-wide MRMS register at offset off.
ra8_mrezc_t
MREZC keyed control words (zeroization).
@ k_ra8_mrezc_full_zero
RA8 mrezc full zero.
ra8_maci_cmd_t
MACI command opcodes streamed through the MACI command-issuing area.
@ k_ra8_maci_cmd_word_count_n
N = 8 halfwords (one 16-byte unit).
@ k_ra8_maci_cmd_forced_stop
Abort in-flight command processing.
@ k_ra8_maci_cmd_increment_counter
Increment an anti-rollback count.
@ k_ra8_maci_cmd_final
Trailer byte: starts command processing.
@ k_ra8_maci_cmd_status_clear
Clear the command-locked state.
@ k_ra8_maci_cmd_program
Program opener: extra-MRAM DATA area.
@ k_ra8_maci_cmd_read_counter
Read an anti-rollback counter.
@ k_ra8_maci_cmd_config_set
Config-Set opener: OFS config area.
ra8_msuacr_t
Keyed values for MSUACR start-up swap.
@ k_ra8_msuacr_swap_default
RA8 msuacr swap default.
@ k_ra8_msuacr_key
RA8 msuacr key.
@ k_ra8_msuacr_swap_alternate
RA8 msuacr swap alternate.
ra8_mram_data_const_t
Sizes used by the driver when chunking writes / counter reads.
@ k_ra8_mram_arc_max_words
Max 32-bit words per ARC.
@ k_ra8_mram_block_size_bytes
One programmable block.
@ k_ra8_mram_config_set_word_count
8 halfwords per MACI write.
@ k_ra8_mram_write_size_bytes
Minimum programmable unit.
@ k_ra8_mram_config_set_bytes
Bytes per config-set (8 halfwords).
ra8_mram_off_t
Byte offsets into the MRMS register window.
@ k_ra8_mram_off_mentryr
RA8 MRAM off mentryr.
@ k_ra8_mram_off_mrcrtea
RA8 MRAM off mrcrtea.
@ k_ra8_mram_off_msuinitr
RA8 MRAM off msuinitr.
@ k_ra8_mram_off_mrcps
RA8 MRAM off mrcps.
@ k_ra8_mram_off_mrcfreq
RA8 MRAM off mrcfreq.
@ k_ra8_mram_off_mrefreq
RA8 MRAM off mrefreq.
@ k_ra8_mram_off_mrceecc
RA8 MRAM off mrceecc.
@ k_ra8_mram_off_mcntdtr0
RA8 MRAM off mcntdtr0.
@ k_ra8_mram_off_mrertea
RA8 MRAM off mrertea.
@ k_ra8_mram_off_mrdyie
RA8 MRAM off mrdyie.
@ k_ra8_mram_off_mctrstatr
RA8 MRAM off mctrstatr.
@ k_ra8_mram_off_mrcbprot1
RA8 MRAM off mrcbprot1.
@ k_ra8_mram_off_msuacr
RA8 MRAM off msuacr.
@ k_ra8_mram_off_mpaeint
RA8 MRAM off mpaeint.
@ k_ra8_mram_off_msar
RA8 MRAM off msar.
@ k_ra8_mram_off_mrcflr
RA8 MRAM off mrcflr.
@ k_ra8_mram_off_mrcpea
RA8 MRAM off mrcpea.
@ k_ra8_mram_off_mrcraes
RA8 MRAM off mrcraes.
@ k_ra8_mram_off_mctrlsr
RA8 MRAM off mctrlsr.
@ k_ra8_mram_off_mctrcntr
RA8 MRAM off mctrcntr.
@ k_ra8_mram_off_mrcraeint
RA8 MRAM off mrcraeint.
@ k_ra8_mram_off_mcntdtr1
RA8 MRAM off mcntdtr1.
@ k_ra8_mram_off_mrcpfb
RA8 MRAM off mrcpfb.
@ k_ra8_mram_off_mcmdr
RA8 MRAM off mcmdr.
@ k_ra8_mram_off_mrcdecc
RA8 MRAM off mrcdecc.
@ k_ra8_mram_off_mrezc
RA8 MRAM off mrezc.
@ k_ra8_mram_off_mrerdea
RA8 MRAM off mrerdea.
@ k_ra8_mram_off_mrcpc0
RA8 MRAM off mrcpc0.
@ k_ra8_mram_off_mreraint
RA8 MRAM off mreraint.
@ k_ra8_mram_off_mrcpaeint
RA8 MRAM off mrcpaeint.
@ k_ra8_mram_off_mrcbprot0
RA8 MRAM off mrcbprot0.
@ k_ra8_mram_off_mrezs
RA8 MRAM off mrezs.
@ k_ra8_mram_off_mrpsc
RA8 MRAM off mrpsc.
@ k_ra8_mram_off_mastat
RA8 MRAM off mastat.
@ k_ra8_mram_off_mrcpc1
RA8 MRAM off mrcpc1.
@ k_ra8_mram_off_msaddr
RA8 MRAM off msaddr.
@ k_ra8_mram_off_mcntselr
RA8 MRAM off mcntselr.
@ k_ra8_mram_off_mstatr
RA8 MRAM off mstatr.
@ k_ra8_mram_off_msuasmon
RA8 MRAM off msuasmon.
@ k_ra8_mram_off_mreraes
RA8 MRAM off mreraes.
@ k_ra8_mram_off_mrcrdea
RA8 MRAM off mrcrdea.
ra8_mrcdecc_mask_t
Field masks and key for the MRCDECC ECC decoder control.
@ k_ra8_mrcdecc_mask_dececen
Decoder enable (ECCSELC).
@ k_ra8_mrcdecc_key_shift
Pre-shifted KEY[15:8]=0x8C.
ra8_msaddr_t
Well-known MSADDR targets for configuration-set writes.
@ k_ra8_msaddr_config_set_startup
RA8 msaddr config set startup.
@ k_ra8_msaddr_ofs_sas
RA8 msaddr ofs sas.
ra8_mrcps_mask_t
Bit masks for the MRCPS Code MRAM Program Status Register.
@ k_ra8_mrcps_mask_errors
W1C: PRGERRC + ECCERRC.
@ k_ra8_mrcps_mask_prgbsyc
Code MRAM program busy.
@ k_ra8_mrcps_mask_abufemp
Address buffer empty.
@ k_ra8_mrcps_mask_prgerrc
Programming error.
@ k_ra8_mrcps_mask_eccerrc
ECC error.
@ k_ra8_mrcps_mask_abuffull
Address buffer full.
ra8_mrcraeint_mask_t
MRCRAEINT / MRERAINT IRQ-enable bits.
@ k_ra8_mrcraeint_mask_intenbtc
TED error IRQ enable.
@ k_ra8_mrcraeint_mask_intenbdc
DEC error IRQ enable.