ra8-firmware 0.1.0
Bare-metal firmware for the Renesas RA8 family (RA8D2 / RA8P1)
Loading...
Searching...
No Matches
ra8_dotf_regs.h
Go to the documentation of this file.
1
81
82#pragma once
83
84#ifdef __cplusplus
85extern "C" {
86#endif
87
88#include <stdint.h>
89
90#include "ra8_attributes.h"
91
102typedef enum : uintptr_t {
103 k_ra8_dotf0_base_addr = 0x40268800UL,
104 k_ra8_dotf1_base_addr = 0x40268900UL,
109
122typedef enum : uint32_t {
123 k_ra8_dotf0_window_lo = 0x80000000UL,
124 k_ra8_dotf0_window_hi = 0x9FFFFFFFUL,
125 k_ra8_dotf1_window_lo = 0x70000000UL,
126 k_ra8_dotf1_window_hi = 0x7FFFFFFFUL,
128
140
145typedef enum : uint32_t {
146 k_ra8_dotf_addr_granule = 0x00001000UL,
147 k_ra8_dotf_addr_mask = 0xFFFFF000UL,
150
171
202
218typedef struct {
219 volatile uint32_t CONVAREAST;
220 volatile uint32_t CONVAREAD;
221 volatile uint32_t
223 volatile uint32_t REG00;
224 volatile uint32_t _r1[2];
225 volatile uint32_t REG03;
227
236static inline volatile ra8_dotf_regs_t* ra8_dotf_regs(uint8_t channel)
237{
238 if ((uint16_t)channel >= (uint16_t)k_ra8_dotf_channel_count) {
239 return nullptr;
240 }
241 return (volatile ra8_dotf_regs_t*)(k_ra8_dotf0_base_addr +
242 ((uintptr_t)channel * k_ra8_dotf_stride));
243}
244
245#ifdef __cplusplus
246}
247#endif
Annotation-attribute framework macros for ra8-firmware.
#define RA8_HW_REGISTER_ACCESS
Mark an MMIO accessor function (returns volatile register pointer).
ra8_dotf_addr_t
DOTF channel base addresses on the peripheral bus.
@ k_ra8_dotf_stride
Spacing between DOTF channels.
@ k_ra8_dotf0_ns_base_addr
DOTF channel 0 non-secure alias.
@ k_ra8_dotf1_base_addr
DOTF channel 1 secure alias.
@ k_ra8_dotf0_base_addr
DOTF channel 0 secure alias.
@ k_ra8_dotf1_ns_base_addr
DOTF channel 1 non-secure alias.
ra8_dotf_limits_t
Channel count + alignment limits.
@ k_ra8_dotf_channel_count
DOTF0 + DOTF1.
@ k_ra8_dotf_align_shift
CONVAREAST/CONVAREAD value scales 1<<12.
@ k_ra8_dotf_max_regions
Max staged regions per channel.
@ k_ra8_dotf_iv_word_count
IV is 128-bit = 4 x 32-bit words.
@ k_ra8_dotf_rsv_words_convaread
+0x008..0x07C reserved gap (32-bit words).
ra8_dotf_align_t
4 KB granularity values for CONVAREAST / CONVAREAD.
@ k_ra8_dotf_addr_low_mask
Low 12 bits read as 0/1 (HUM).
@ k_ra8_dotf_addr_mask
High 20 bits are the value.
@ k_ra8_dotf_addr_granule
4 KB region granule.
ra8_dotf_reg00_mask_t
REG00 bit-field masks (32-bit).
@ k_ra8_dotf_reg00_key_size_mask
Bits 25:24 – key size field.
@ k_ra8_dotf_reg00_default_field
Reset-pattern default value.
@ k_ra8_dotf_reg00_key_size_128
Key size = 128-bit (FSP dflt).
@ k_ra8_dotf_reg00_self_test
Bit 20 – self-test trigger.
@ k_ra8_dotf_reg00_mode_ctr
CTR mode (HUM 45.1 p 3048).
@ k_ra8_dotf_reg00_enable_value
default | bit9 enable.
@ k_ra8_dotf_reg00_mode_mask
Bits 29:28 – mode field.
@ k_ra8_dotf_reg00_key_size_192
Key size = 192-bit.
@ k_ra8_dotf_reg00_key_size_256
Key size = 256-bit.
@ k_ra8_dotf_reg00_aes_enable
Bit 9 – enable AES core.
@ k_ra8_dotf_reg00_sca_mode
Bit 17 – side-channel mode.
@ k_ra8_dotf_reg00_sca_en
Bit 16 – side-channel enable.
@ k_ra8_dotf_reg00_disable_value
Disable – AES bypassed.
ra8_dotf_reg00_bit_t
REG00 control-bit positions.
@ k_ra8_dotf_reg00_bit_st
Self-test trigger (FSP B20).
@ k_ra8_dotf_reg00_bit_sca1
Side-channel countermeasure mode.
@ k_ra8_dotf_reg00_bit09
AES core enable trigger (FSP B09).
@ k_ra8_dotf_reg00_bit_mode1
AES mode select [29:28] MSB.
@ k_ra8_dotf_reg00_bit_ksz0
Key-size select [25:24] LSB.
@ k_ra8_dotf_reg00_bit_mode0
AES mode select [29:28] LSB.
@ k_ra8_dotf_reg00_bit_sca0
Side-channel countermeasure enable.
@ k_ra8_dotf_reg00_bit_ksz1
Key-size select [25:24] MSB.
ra8_dotf_xspi_window_t
XSPI memory-mapped windows that DOTF channels decrypt over.
@ k_ra8_dotf0_window_hi
Last byte covered by DOTF0.
@ k_ra8_dotf0_window_lo
First byte covered by DOTF0.
@ k_ra8_dotf1_window_lo
First byte covered by DOTF1.
@ k_ra8_dotf1_window_hi
Last byte covered by DOTF1.
static volatile ra8_dotf_regs_t * ra8_dotf_regs(uint8_t channel)
Get pointer to DOTF channel channel.
Per-channel DOTF register window.
volatile uint32_t CONVAREAD
+0x004 Conversion area end address.
volatile uint32_t _r0[k_ra8_dotf_rsv_words_convaread]
+0x008..0x07C Reserved (FSP RESERVED).
volatile uint32_t REG03
+0x08C AES IV staging window.
volatile uint32_t REG00
+0x080 AES enable / mode select.
volatile uint32_t _r1[2]
+0x084..0x088 Reserved.
volatile uint32_t CONVAREAST
+0x000 Conversion area start address.