From 1b5d7cd40eb1c1f55deedf34d3d6324498b5f000 Mon Sep 17 00:00:00 2001 From: 3gg <3gg@shellblade.net> Date: Sat, 8 Feb 2025 17:50:57 -0800 Subject: Hello world. --- src/mmio.c | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 src/mmio.c (limited to 'src/mmio.c') diff --git a/src/mmio.c b/src/mmio.c new file mode 100644 index 0000000..e545517 --- /dev/null +++ b/src/mmio.c @@ -0,0 +1,23 @@ +#include + +void* MMIO_BASE; + +void mmio_init(int raspi) { + switch (raspi) { + case 2: + case 3: MMIO_BASE = (void*)0x3F000000; break; // raspi2 & 3 + case 4: MMIO_BASE = (void*)0xFE000000; break; // raspi4 + default: MMIO_BASE = (void*)0x20000000; break; // raspi1, raspi zero, etc. + } +} + +#define REG_ADDR(reg) ((volatile uint32_t*)(MMIO_BASE + reg)) + +uint32_t mmio_read(uint32_t reg) { + return *REG_ADDR(reg); +} + +void mmio_write(uint32_t reg, uint32_t val) { + *REG_ADDR(reg) = val; +} + -- cgit v1.2.3