-
Notifications
You must be signed in to change notification settings - Fork 1.2k
Open
Milestone
Description
It would be nice to have the +0x4000 non-replication write alias offset from 2.1.5. Narrow IO register writes of the RP2350 datasheet defined somewhere. Not sure sure about the name, and whether hw_*_alias_untyped(addr) and hw_*_alias(p) would be necessary, but maybe something like:
diff --git src/rp2350/hardware_regs/include/hardware/regs/addressmap.h src/rp2350/hardware_regs/include/hardware/regs/addressmap.h
index 0e8df52..43d4d22 100644
--- src/rp2350/hardware_regs/include/hardware/regs/addressmap.h
+++ src/rp2350/hardware_regs/include/hardware/regs/addressmap.h
@@ -17,12 +17,16 @@
// Register address offsets for atomic RMW aliases
#define REG_ALIAS_RW_BITS (_u(0x0) << _u(12))
#define REG_ALIAS_XOR_BITS (_u(0x1) << _u(12))
#define REG_ALIAS_SET_BITS (_u(0x2) << _u(12))
#define REG_ALIAS_CLR_BITS (_u(0x3) << _u(12))
+// Register address offsets for narrow write replicating aliases
+#define REG_ALIAS_NARROW_REPL_BITS (_u(0x0) << _u(14))
+#define REG_ALIAS_NARROW_ZERO_BITS (_u(0x1) << _u(14))
+
#define ROM_BASE _u(0x00000000)
#define XIP_BASE _u(0x10000000)
#define XIP_SRAM_BASE _u(0x13ffc000)
#define XIP_END _u(0x14000000)
#define XIP_NOCACHE_NOALLOC_BASE _u(0x14000000)
#define XIP_SRAM_END _u(0x14000000)
diff --git src/rp2040/hardware_regs/include/hardware/regs/addressmap.h src/rp2040/hardware_regs/include/hardware/regs/addressmap.h
index 61da68c..d33e40d 100644
--- src/rp2040/hardware_regs/include/hardware/regs/addressmap.h
+++ src/rp2040/hardware_regs/include/hardware/regs/addressmap.h
@@ -20,6 +20,9 @@
#define REG_ALIAS_SET_BITS (_u(0x2) << _u(12))
#define REG_ALIAS_CLR_BITS (_u(0x3) << _u(12))
+// Register address offsets for narrow write replicating aliases
+#define REG_ALIAS_NARROW_REPL_BITS (_u(0x0) << _u(14))
+
#define ROM_BASE _u(0x00000000)
#define XIP_BASE _u(0x10000000)
#define XIP_MAIN_BASE _u(0x10000000)Maybe also update https://github.com/raspberrypi/pico-examples/blob/master/system/narrow_io_write/narrow_io_write.c with #ifdef on above.
Metadata
Metadata
Assignees
Labels
No labels