ra8-firmware 0.1.0
Bare-metal firmware for the Renesas RA8 family (RA8D2 / RA8P1)
Loading...
Searching...
No Matches
ra8_sdramc_regs.h
Go to the documentation of this file.
1
20
21#pragma once
22
23#ifdef __cplusplus
24extern "C" {
25#endif
26
27#include <stddef.h>
28#include <stdint.h>
29
30typedef enum : uintptr_t {
31 /* R_BUS_SDRAM is a sub-block inside R_BUS (R_BUS_BASE = 0x40003000)
32 * at offset +0xC00, so the SDRAMC control registers sit at
33 * 0x40003C00. */
34 k_ra8_sdramc_base_addr = 0x40003C00UL,
35 k_ra8_sdram_base_addr = 0x68000000UL,
36 /* SDRAM Clock Output Control Register lives in R_SYSTEM (0x4001E000)
37 * at offset 0x53; it gates the SDCLK output to the external device.
38 * HUM Ch 9 "Clock Generation Circuit". */
41
42typedef enum : uint32_t {
43 k_ra8_sdram_size_bytes = 0x04000000UL,
45
70
82typedef struct {
83 volatile uint8_t SDCCR;
84 volatile uint8_t SDCMOD;
85 volatile uint8_t SDAMOD;
88 volatile uint8_t SDSELF;
91 volatile uint16_t SDRFCR;
92 volatile uint8_t SDRFEN;
95 volatile uint8_t SDICR;
98 volatile uint16_t SDIR;
101 volatile uint8_t SDADR;
104 volatile uint32_t SDTR;
105 volatile uint16_t SDMOD;
108 volatile uint8_t SDSR;
110
111static_assert(offsetof(r_sdramc_regs_t, SDTR) == (size_t)k_ra8_sdramc_off_sdtr,
112 "SDRAMC SDTR offset");
113static_assert(offsetof(r_sdramc_regs_t, SDSR) == (size_t)k_ra8_sdramc_off_sdsr,
114 "SDRAMC SDSR offset");
115static_assert(offsetof(r_sdramc_regs_t, SDICR) == (size_t)k_ra8_sdramc_off_sdicr,
116 "SDRAMC SDICR offset");
117static_assert(offsetof(r_sdramc_regs_t, SDADR) == (size_t)k_ra8_sdramc_off_sdadr,
118 "SDRAMC SDADR offset");
119
121static inline volatile r_sdramc_regs_t* ra8_sdramc(void)
122{
123 return (volatile r_sdramc_regs_t*)k_ra8_sdramc_base_addr;
124}
125
127static inline volatile uint8_t* ra8_sdramc_sdckocr(void)
128{
129 return (volatile uint8_t*)k_ra8_system_sdckocr_addr;
130}
131
132#ifdef __cplusplus
133}
134#endif
static volatile uint8_t * ra8_sdramc_sdckocr(void)
Get pointer to the R_SYSTEM SDCLK-output control register.
ra8_sdramc_addr_t
@ k_ra8_sdram_base_addr
External SDRAM window.
@ k_ra8_sdramc_base_addr
R_BUS.SDRAM sub-block.
@ k_ra8_system_sdckocr_addr
R_SYSTEM.SDCKOCR.
ra8_sdramc_off_t
Register offsets within the SDRAMC sub-block.
@ k_ra8_sdramc_off_sdir
SDIR – Initialization.
@ k_ra8_sdramc_off_sdself
SDSELF – Self-Refresh Control.
@ k_ra8_sdramc_off_sdicr
SDICR – Init Sequence Control.
@ k_ra8_sdramc_off_sdadr
SDADR – Address.
@ k_ra8_sdramc_off_sdccr
SDCCR – SDC Control.
@ k_ra8_sdramc_off_sdcmod
SDCMOD – SDC Mode.
@ k_ra8_sdramc_off_sdmod
SDMOD – Mode.
@ k_ra8_sdramc_off_sdtr
SDTR – Timing.
@ k_ra8_sdramc_off_sdamod
SDAMOD – SDRAM Access Mode.
@ k_ra8_sdramc_off_sdsr
SDSR – Status (RO).
@ k_ra8_sdramc_off_sdrfcr
SDRFCR – Refresh Control.
@ k_ra8_sdramc_off_sdrfen
SDRFEN – Auto-Refresh Control.
ra8_sdram_geom_t
@ k_ra8_sdram_size_bytes
64 MiB.
static volatile r_sdramc_regs_t * ra8_sdramc(void)
Get pointer to the SDRAMC register block.
SDRAM controller register window.
volatile uint8_t _rsv1[k_ra8_sdramc_off_sdrfcr - k_ra8_sdramc_off_sdself - 1]
Reserved.
volatile uint8_t _rsv5[k_ra8_sdramc_off_sdtr - k_ra8_sdramc_off_sdadr - 1]
Reserved.
volatile uint8_t _rsv4[k_ra8_sdramc_off_sdadr - k_ra8_sdramc_off_sdir - 2]
Reserved.
volatile uint8_t SDCMOD
SDC Mode Register.
volatile uint8_t SDICR
Init Sequence Control.
volatile uint8_t SDSR
SDRAM Status Register (RO).
volatile uint16_t SDIR
SDRAM Initialization Register.
volatile uint8_t SDSELF
SDRAM Self-Refresh Control.
volatile uint16_t SDMOD
SDRAM Mode Register.
volatile uint8_t _rsv2[k_ra8_sdramc_off_sdicr - k_ra8_sdramc_off_sdrfen - 1]
Reserved.
volatile uint8_t _rsv3[k_ra8_sdramc_off_sdir - k_ra8_sdramc_off_sdicr - 1]
Reserved.
volatile uint32_t SDTR
SDRAM Timing Register.
volatile uint16_t SDRFCR
SDRAM Refresh Control.
volatile uint8_t SDRFEN
SDRAM Auto-Refresh Control.
volatile uint8_t _rsv0[k_ra8_sdramc_off_sdself - k_ra8_sdramc_off_sdamod - 1]
Reserved.
volatile uint8_t SDAMOD
SDRAM Access Mode Register.
volatile uint8_t _rsv6[k_ra8_sdramc_off_sdsr - k_ra8_sdramc_off_sdmod - 2]
Reserved.
volatile uint8_t SDCCR
SDC Control Register.
volatile uint8_t SDADR
SDRAM Address Register.