Update to latest generated headers - note SVD peripherals section is now alphabetically sorted #2905

Closed
kilograham wants to merge 3 commits from hardware-header-updates into develop
kilograham commented 2026-04-18 15:40:15 -05:00 (Migrated from github.com)

the ordering in the SVD is not meaningful and was random before - it will at least now be stable

I also included all the hardware_structs into kitchen_sink.c to make sure they are all good (not all are included by other libraries)

the ordering in the SVD is not meaningful and was random before - it will at least now be stable I also included all the hardware_structs into kitchen_sink.c to make sure they are all good (not all are included by other libraries)
matiasilva (Migrated from github.com) reviewed 2026-04-18 15:40:15 -05:00
lurch (Migrated from github.com) reviewed 2026-04-22 02:20:32 -05:00
@ -170,6 +170,46 @@
// 0x3d -> Select Timer 2 as TREQ (Optional)
// 0x3e -> Select Timer 3 as TREQ (Optional)
// 0x3f -> Permanent request, for unpaced transfers.
// 0x00 -> Select PIO0's TX FIFO 0 as TREQ
lurch (Migrated from github.com) commented 2026-04-22 02:20:32 -05:00

There's a comment on line 167 which says "0x0 to 0x3a -> select DREQ n as TREQ". I guess that comment could be removed, now that the values are explicitly enumerated here?

There's a comment on line 167 which says "0x0 to 0x3a -> select DREQ n as TREQ". I guess that comment could be removed, now that the values are explicitly enumerated here?
lurch (Migrated from github.com) reviewed 2026-04-22 02:37:59 -05:00
lurch (Migrated from github.com) commented 2026-04-22 02:37:58 -05:00

@matiasilva Just out of curiosity, why was the line-wrap length changed? It means that this PR is showing a lot of changes which aren't "real changes" 🫤

@matiasilva Just out of curiosity, why was the line-wrap length changed? It means that this PR is showing a **lot** of changes which aren't "real changes" :face_with_diagonal_mouth:
lurch (Migrated from github.com) reviewed 2026-04-22 02:58:10 -05:00
@ -47,3 +47,3 @@
#define sysinfo_hw ((sysinfo_hw_t *)SYSINFO_BASE)
static_assert(sizeof (sysinfo_hw_t) == 0x0014, "");
static_assert(sizeof (sysinfo_hw_t) == 0x0044, "");
lurch (Migrated from github.com) commented 2026-04-22 02:58:09 -05:00

Why the extra padding in the new version?

Why the extra padding in the new version?
lurch (Migrated from github.com) reviewed 2026-04-22 03:10:00 -05:00
@ -2493,2 +2493,2 @@
// Field : ACCESSCTRL_ADC0_DBG
// Description : If 1, ADC0 can be accessed by the debugger, at
// Field : ACCESSCTRL_ADC_DBG
// Description : If 1, ADC can be accessed by the debugger, at
lurch (Migrated from github.com) commented 2026-04-22 03:10:00 -05:00

Hmmm, in case any code was using the old ACCESSCTRL_ADC0_OFFSET define, should we provide some backwards-compatibility defines? e.g.

#define ACCESSCTRL_ADC0_OFFSET ACCESSCTRL_ADC_OFFSET
#define ACCESSCTRL_ADC0_BITS ACCESSCTRL_ADC_BITS
#define ACCESSCTRL_ADC0_RESET ACCESSCTRL_ADC_RESET

etc. ? Same question also for the ACCESSCTRL_RSM_xxx -> ACCESSCTRL_PSM_xxx defines.
(Or if not, this is something that we should probably mention in the SDK 2.2.1 release notes)

Hmmm, in case any code was using the old `ACCESSCTRL_ADC0_OFFSET` define, should we provide some backwards-compatibility defines? e.g. ``` #define ACCESSCTRL_ADC0_OFFSET ACCESSCTRL_ADC_OFFSET #define ACCESSCTRL_ADC0_BITS ACCESSCTRL_ADC_BITS #define ACCESSCTRL_ADC0_RESET ACCESSCTRL_ADC_RESET ``` etc. ? Same question also for the `ACCESSCTRL_RSM_xxx` -> `ACCESSCTRL_PSM_xxx` defines. (Or if not, this is something that we should probably mention in the SDK 2.2.1 release notes)
lurch (Migrated from github.com) reviewed 2026-04-22 03:28:21 -05:00
lurch (Migrated from github.com) commented 2026-04-22 03:28:21 -05:00

See earlier question about whether we want to provide "backwards-compatibility defines" for any existing code that might be using the old names.

See earlier question about whether we want to provide "backwards-compatibility defines" for any existing code that might be using the old names.
lurch (Migrated from github.com) reviewed 2026-04-22 03:31:56 -05:00
@ -32,3 +32,3 @@
#define PWM_CH0_CSR_PH_ADV_LSB _u(7)
#define PWM_CH0_CSR_PH_ADV_ACCESS "SC"
#define PWM_CH0_CSR_PH_ADV_ACCESS "WC"
// -----------------------------------------------------------------------------
lurch (Migrated from github.com) commented 2026-04-22 03:31:56 -05:00

Hmmm, description says "Self-clearing. Write a 1, and poll until low." - does that mean that the SC was more appropriate than WC?

Hmmm, description says "Self-clearing. Write a 1, and poll until low." - does that mean that the `SC` was more appropriate than `WC`?
lurch (Migrated from github.com) reviewed 2026-04-22 03:36:53 -05:00
@ -38,3 +37,4 @@
#define SYSINFO_CHIP_ID_MANUFACTURER_RESET _u(0x493)
#define SYSINFO_CHIP_ID_MANUFACTURER_BITS _u(0x00000ffe)
#define SYSINFO_CHIP_ID_MANUFACTURER_MSB _u(11)
#define SYSINFO_CHIP_ID_MANUFACTURER_LSB _u(1)
lurch (Migrated from github.com) commented 2026-04-22 03:36:52 -05:00

Nice to see that this field now has a reset value listed 👍 But just out of curiosity, why does the SYSINFO_CHIP_ID_MANUFACTURER have a different value between RP2040 and RP2350?

Nice to see that this field now has a reset value listed :+1: But just out of curiosity, why does the `SYSINFO_CHIP_ID_MANUFACTURER` have a different value between RP2040 and RP2350?
lurch (Migrated from github.com) reviewed 2026-04-22 03:49:59 -05:00
@ -402,7 +402,7 @@ typedef struct {
// 0x00000002 [1] NSP (0) If 1, XOSC can be accessed from a Non-secure, Privileged context
lurch (Migrated from github.com) commented 2026-04-22 03:49:59 -05:00

Does this change mean that https://github.com/raspberrypi/pico-sdk/blob/develop/src/rp2_common/cmsis/stub/CMSIS/Device/RP2350/Include/RP2350.h#L1723 also ought to be updated from ADC0 to ADC, for consistency?
(Oh, looks like that file is auto-generated from RP2350.svd (which is itself autogenerated), so maybe this PR ought to be updating the CMSIS headers too? 🤔 )

Does this change mean that https://github.com/raspberrypi/pico-sdk/blob/develop/src/rp2_common/cmsis/stub/CMSIS/Device/RP2350/Include/RP2350.h#L1723 also ought to be updated from `ADC0` to `ADC`, for consistency? (Oh, looks like that file is auto-generated from `RP2350.svd` (which is itself autogenerated), so maybe this PR ought to be updating the CMSIS headers too? :thinking: )
lurch (Migrated from github.com) reviewed 2026-04-22 04:20:34 -05:00
@ -79,3 +79,3 @@
io_rw_32 scr;
_REG_(M33_CCR_OFFSET) // M33_CCR
lurch (Migrated from github.com) commented 2026-04-22 04:20:33 -05:00

Is it intentional that this appears in both src/rp2350/hardware_structs/include/hardware/structs/m33.h and also src/rp2350/hardware_structs/include/hardware/structs/scb.h ?

Is it intentional that this appears in both `src/rp2350/hardware_structs/include/hardware/structs/m33.h` and also `src/rp2350/hardware_structs/include/hardware/structs/scb.h` ?
lurch (Migrated from github.com) reviewed 2026-04-22 04:25:59 -05:00
lurch (Migrated from github.com) commented 2026-04-22 04:25:59 -05:00

Whilst this is true for e.g. the GPIO registers, it isn't actually true for the MMFR registers:
Screenshot from 2026-04-22 10-24-20

However this is such an edge-case that it's probably not worth fixing?

Whilst this is true for e.g. the GPIO registers, it isn't actually true for the MMFR registers: <img width="966" height="784" alt="Screenshot from 2026-04-22 10-24-20" src="https://github.com/user-attachments/assets/dccf828b-eadb-4ec1-bfc6-e7805293196c" /> However this is such an edge-case that it's _probably_ not worth fixing?
lurch (Migrated from github.com) reviewed 2026-04-22 04:28:59 -05:00
@ -29,2 +28,3 @@
// 0xffffffff [31:0] TIMEHW (0x00000000)
// Write to bits 63:32 of time +
// 0xffffffff [31:0] TIMEHW (0x00000000)
io_wo_32 timehw;
lurch (Migrated from github.com) commented 2026-04-22 04:28:59 -05:00

Hmmm, the + on the end of this line (and also on lines 33, 38 and 80) doesn't look right?

Hmmm, the `+` on the end of this line (and also on lines 33, 38 and 80) doesn't look right?
lurch commented 2026-04-22 04:39:38 -05:00 (Migrated from github.com)

All the extra whitespace changes made it very hard to review the actual changes here; but apart from the things I've noted above it looks like this includes lots of nice little fix-ups 🙂

I also included all the hardware_structs into kitchen_sink.c

Did you forget to push those changes to this PR?

All the extra whitespace changes made it very hard to review the **actual** changes here; but apart from the things I've noted above it looks like this includes lots of nice little fix-ups :slightly_smiling_face: > I also included all the hardware_structs into kitchen_sink.c Did you forget to push those changes to this PR?
lurch commented 2026-04-23 04:21:47 -05:00 (Migrated from github.com)

Looks like this fixes #2380 too 👍

Looks like this fixes #2380 too :+1:
lurch commented 2026-04-23 04:29:33 -05:00 (Migrated from github.com)

the ordering in the SVD is not meaningful and was random before - it will at least now be stable

Nice 👍

$ git grep -A2 "<peripheral" "*.svd"
src/rp2040/hardware_regs/RP2040.svd:    <peripherals>
src/rp2040/hardware_regs/RP2040.svd:    <peripheral>
src/rp2040/hardware_regs/RP2040.svd-        <name>ADC</name>
src/rp2040/hardware_regs/RP2040.svd-        <baseAddress>0x4004c000</baseAddress>
--
src/rp2040/hardware_regs/RP2040.svd:    <peripheral>
src/rp2040/hardware_regs/RP2040.svd-        <name>BUSCTRL</name>
src/rp2040/hardware_regs/RP2040.svd-        <baseAddress>0x40030000</baseAddress>
--
src/rp2040/hardware_regs/RP2040.svd:    <peripheral>
src/rp2040/hardware_regs/RP2040.svd-        <name>CLOCKS</name>
src/rp2040/hardware_regs/RP2040.svd-        <baseAddress>0x40008000</baseAddress>
--
src/rp2040/hardware_regs/RP2040.svd:    <peripheral>
src/rp2040/hardware_regs/RP2040.svd-        <name>DMA</name>
src/rp2040/hardware_regs/RP2040.svd-        <baseAddress>0x50000000</baseAddress>
--
src/rp2040/hardware_regs/RP2040.svd:    <peripheral>
src/rp2040/hardware_regs/RP2040.svd-        <name>I2C0</name>
src/rp2040/hardware_regs/RP2040.svd-        <baseAddress>0x40044000</baseAddress>
--
src/rp2040/hardware_regs/RP2040.svd:    <peripheral derivedFrom="I2C0">
src/rp2040/hardware_regs/RP2040.svd-        <name>I2C1</name>
src/rp2040/hardware_regs/RP2040.svd-        <baseAddress>0x40048000</baseAddress>
--
src/rp2040/hardware_regs/RP2040.svd:    <peripheral>
src/rp2040/hardware_regs/RP2040.svd-        <name>IO_BANK0</name>
src/rp2040/hardware_regs/RP2040.svd-        <baseAddress>0x40014000</baseAddress>
--
src/rp2040/hardware_regs/RP2040.svd:    <peripheral>
src/rp2040/hardware_regs/RP2040.svd-        <name>IO_QSPI</name>
src/rp2040/hardware_regs/RP2040.svd-        <baseAddress>0x40018000</baseAddress>
--
src/rp2040/hardware_regs/RP2040.svd:    <peripheral>
src/rp2040/hardware_regs/RP2040.svd-        <name>PADS_BANK0</name>
src/rp2040/hardware_regs/RP2040.svd-        <baseAddress>0x4001c000</baseAddress>
--
src/rp2040/hardware_regs/RP2040.svd:    <peripheral>
src/rp2040/hardware_regs/RP2040.svd-        <name>PADS_QSPI</name>
src/rp2040/hardware_regs/RP2040.svd-        <baseAddress>0x40020000</baseAddress>
--
src/rp2040/hardware_regs/RP2040.svd:    <peripheral>
src/rp2040/hardware_regs/RP2040.svd-        <name>PIO0</name>
src/rp2040/hardware_regs/RP2040.svd-        <baseAddress>0x50200000</baseAddress>
--
src/rp2040/hardware_regs/RP2040.svd:    <peripheral derivedFrom="PIO0">
src/rp2040/hardware_regs/RP2040.svd-        <name>PIO1</name>
src/rp2040/hardware_regs/RP2040.svd-        <baseAddress>0x50300000</baseAddress>
--
src/rp2040/hardware_regs/RP2040.svd:    <peripheral>
src/rp2040/hardware_regs/RP2040.svd-        <name>PLL_SYS</name>
src/rp2040/hardware_regs/RP2040.svd-        <baseAddress>0x40028000</baseAddress>
--
src/rp2040/hardware_regs/RP2040.svd:    <peripheral derivedFrom="PLL_SYS">
src/rp2040/hardware_regs/RP2040.svd-        <name>PLL_USB</name>
src/rp2040/hardware_regs/RP2040.svd-        <baseAddress>0x4002c000</baseAddress>
--
src/rp2040/hardware_regs/RP2040.svd:    <peripheral>
src/rp2040/hardware_regs/RP2040.svd-        <name>PPB</name>
src/rp2040/hardware_regs/RP2040.svd-        <baseAddress>0xe0000000</baseAddress>
--
src/rp2040/hardware_regs/RP2040.svd:    <peripheral>
src/rp2040/hardware_regs/RP2040.svd-        <name>PSM</name>
src/rp2040/hardware_regs/RP2040.svd-        <baseAddress>0x40010000</baseAddress>
--
src/rp2040/hardware_regs/RP2040.svd:    <peripheral>
src/rp2040/hardware_regs/RP2040.svd-        <name>PWM</name>
src/rp2040/hardware_regs/RP2040.svd-        <baseAddress>0x40050000</baseAddress>
--
src/rp2040/hardware_regs/RP2040.svd:    <peripheral>
src/rp2040/hardware_regs/RP2040.svd-        <name>RESETS</name>
src/rp2040/hardware_regs/RP2040.svd-        <baseAddress>0x4000c000</baseAddress>
--
src/rp2040/hardware_regs/RP2040.svd:    <peripheral>
src/rp2040/hardware_regs/RP2040.svd-        <name>ROSC</name>
src/rp2040/hardware_regs/RP2040.svd-        <baseAddress>0x40060000</baseAddress>
--
src/rp2040/hardware_regs/RP2040.svd:    <peripheral>
src/rp2040/hardware_regs/RP2040.svd-        <name>RTC</name>
src/rp2040/hardware_regs/RP2040.svd-        <baseAddress>0x4005c000</baseAddress>
--
src/rp2040/hardware_regs/RP2040.svd:    <peripheral>
src/rp2040/hardware_regs/RP2040.svd-        <name>SIO</name>
src/rp2040/hardware_regs/RP2040.svd-        <baseAddress>0xd0000000</baseAddress>
--
src/rp2040/hardware_regs/RP2040.svd:    <peripheral>
src/rp2040/hardware_regs/RP2040.svd-        <name>SPI0</name>
src/rp2040/hardware_regs/RP2040.svd-        <baseAddress>0x4003c000</baseAddress>
--
src/rp2040/hardware_regs/RP2040.svd:    <peripheral derivedFrom="SPI0">
src/rp2040/hardware_regs/RP2040.svd-        <name>SPI1</name>
src/rp2040/hardware_regs/RP2040.svd-        <baseAddress>0x40040000</baseAddress>
--
src/rp2040/hardware_regs/RP2040.svd:    <peripheral>
src/rp2040/hardware_regs/RP2040.svd-        <name>SSI</name>
src/rp2040/hardware_regs/RP2040.svd-        <baseAddress>0x18000000</baseAddress>
--
src/rp2040/hardware_regs/RP2040.svd:    <peripheral>
src/rp2040/hardware_regs/RP2040.svd-        <name>SYSCFG</name>
src/rp2040/hardware_regs/RP2040.svd-        <baseAddress>0x40004000</baseAddress>
--
src/rp2040/hardware_regs/RP2040.svd:    <peripheral>
src/rp2040/hardware_regs/RP2040.svd-        <name>SYSINFO</name>
src/rp2040/hardware_regs/RP2040.svd-        <baseAddress>0x40000000</baseAddress>
--
src/rp2040/hardware_regs/RP2040.svd:    <peripheral>
src/rp2040/hardware_regs/RP2040.svd-        <name>TBMAN</name>
src/rp2040/hardware_regs/RP2040.svd-        <baseAddress>0x4006c000</baseAddress>
--
src/rp2040/hardware_regs/RP2040.svd:    <peripheral>
src/rp2040/hardware_regs/RP2040.svd-        <name>TIMER</name>
src/rp2040/hardware_regs/RP2040.svd-        <baseAddress>0x40054000</baseAddress>
--
src/rp2040/hardware_regs/RP2040.svd:    <peripheral>
src/rp2040/hardware_regs/RP2040.svd-        <name>UART0</name>
src/rp2040/hardware_regs/RP2040.svd-        <baseAddress>0x40034000</baseAddress>
--
src/rp2040/hardware_regs/RP2040.svd:    <peripheral derivedFrom="UART0">
src/rp2040/hardware_regs/RP2040.svd-        <name>UART1</name>
src/rp2040/hardware_regs/RP2040.svd-        <baseAddress>0x40038000</baseAddress>
--
src/rp2040/hardware_regs/RP2040.svd:    <peripheral>
src/rp2040/hardware_regs/RP2040.svd-        <name>USB</name>
src/rp2040/hardware_regs/RP2040.svd-        <baseAddress>0x50110000</baseAddress>
--
src/rp2040/hardware_regs/RP2040.svd:    <peripheral>
src/rp2040/hardware_regs/RP2040.svd-        <name>USB_DEVICE_DPRAM</name>
src/rp2040/hardware_regs/RP2040.svd-        <baseAddress>0x50100000</baseAddress>
--
src/rp2040/hardware_regs/RP2040.svd:    <peripheral>
src/rp2040/hardware_regs/RP2040.svd-        <name>VREG_AND_CHIP_RESET</name>
src/rp2040/hardware_regs/RP2040.svd-        <baseAddress>0x40064000</baseAddress>
--
src/rp2040/hardware_regs/RP2040.svd:    <peripheral>
src/rp2040/hardware_regs/RP2040.svd-        <name>WATCHDOG</name>
src/rp2040/hardware_regs/RP2040.svd-        <baseAddress>0x40058000</baseAddress>
--
src/rp2040/hardware_regs/RP2040.svd:    <peripheral>
src/rp2040/hardware_regs/RP2040.svd-        <name>XIP_CTRL</name>
src/rp2040/hardware_regs/RP2040.svd-        <baseAddress>0x14000000</baseAddress>
--
src/rp2040/hardware_regs/RP2040.svd:    <peripheral>
src/rp2040/hardware_regs/RP2040.svd-        <name>XOSC</name>
src/rp2040/hardware_regs/RP2040.svd-        <baseAddress>0x40024000</baseAddress>
--
src/rp2040/hardware_regs/RP2040.svd:    <peripheral>
src/rp2040/hardware_regs/RP2040.svd-        <name>VIRTUAL</name>
src/rp2040/hardware_regs/RP2040.svd-        <baseAddress>0x00000000</baseAddress>
--
src/rp2350/hardware_regs/RP2350.svd:    <peripherals>
src/rp2350/hardware_regs/RP2350.svd:    <peripheral>
src/rp2350/hardware_regs/RP2350.svd-        <name>ACCESSCTRL</name>
src/rp2350/hardware_regs/RP2350.svd-        <baseAddress>0x40060000</baseAddress>
--
src/rp2350/hardware_regs/RP2350.svd:    <peripheral>
src/rp2350/hardware_regs/RP2350.svd-        <name>ADC</name>
src/rp2350/hardware_regs/RP2350.svd-        <baseAddress>0x400a0000</baseAddress>
--
src/rp2350/hardware_regs/RP2350.svd:    <peripheral>
src/rp2350/hardware_regs/RP2350.svd-        <name>BOOTRAM</name>
src/rp2350/hardware_regs/RP2350.svd-        <baseAddress>0x400e0000</baseAddress>
--
src/rp2350/hardware_regs/RP2350.svd:    <peripheral>
src/rp2350/hardware_regs/RP2350.svd-        <name>BUSCTRL</name>
src/rp2350/hardware_regs/RP2350.svd-        <baseAddress>0x40068000</baseAddress>
--
src/rp2350/hardware_regs/RP2350.svd:    <peripheral>
src/rp2350/hardware_regs/RP2350.svd-        <name>CLOCKS</name>
src/rp2350/hardware_regs/RP2350.svd-        <baseAddress>0x40010000</baseAddress>
--
src/rp2350/hardware_regs/RP2350.svd:    <peripheral>
src/rp2350/hardware_regs/RP2350.svd-        <name>CORESIGHT_TRACE</name>
src/rp2350/hardware_regs/RP2350.svd-        <baseAddress>0x50700000</baseAddress>
--
src/rp2350/hardware_regs/RP2350.svd:    <peripheral>
src/rp2350/hardware_regs/RP2350.svd-        <name>DMA</name>
src/rp2350/hardware_regs/RP2350.svd-        <baseAddress>0x50000000</baseAddress>
--
src/rp2350/hardware_regs/RP2350.svd:    <peripheral>
src/rp2350/hardware_regs/RP2350.svd-        <name>EPPB</name>
src/rp2350/hardware_regs/RP2350.svd-        <baseAddress>0xe0080000</baseAddress>
--
src/rp2350/hardware_regs/RP2350.svd:    <peripheral>
src/rp2350/hardware_regs/RP2350.svd-        <name>GLITCH_DETECTOR</name>
src/rp2350/hardware_regs/RP2350.svd-        <baseAddress>0x40158000</baseAddress>
--
src/rp2350/hardware_regs/RP2350.svd:    <peripheral>
src/rp2350/hardware_regs/RP2350.svd-        <name>HSTX_CTRL</name>
src/rp2350/hardware_regs/RP2350.svd-        <baseAddress>0x400c0000</baseAddress>
--
src/rp2350/hardware_regs/RP2350.svd:    <peripheral>
src/rp2350/hardware_regs/RP2350.svd-        <name>HSTX_FIFO</name>
src/rp2350/hardware_regs/RP2350.svd-        <baseAddress>0x50600000</baseAddress>
--
src/rp2350/hardware_regs/RP2350.svd:    <peripheral>
src/rp2350/hardware_regs/RP2350.svd-        <name>I2C0</name>
src/rp2350/hardware_regs/RP2350.svd-        <baseAddress>0x40090000</baseAddress>
--
src/rp2350/hardware_regs/RP2350.svd:    <peripheral derivedFrom="I2C0">
src/rp2350/hardware_regs/RP2350.svd-        <name>I2C1</name>
src/rp2350/hardware_regs/RP2350.svd-        <baseAddress>0x40098000</baseAddress>
--
src/rp2350/hardware_regs/RP2350.svd:    <peripheral>
src/rp2350/hardware_regs/RP2350.svd-        <name>IO_BANK0</name>
src/rp2350/hardware_regs/RP2350.svd-        <baseAddress>0x40028000</baseAddress>
--
src/rp2350/hardware_regs/RP2350.svd:    <peripheral>
src/rp2350/hardware_regs/RP2350.svd-        <name>IO_QSPI</name>
src/rp2350/hardware_regs/RP2350.svd-        <baseAddress>0x40030000</baseAddress>
--
src/rp2350/hardware_regs/RP2350.svd:    <peripheral>
src/rp2350/hardware_regs/RP2350.svd-        <name>OTP</name>
src/rp2350/hardware_regs/RP2350.svd-        <baseAddress>0x40120000</baseAddress>
--
src/rp2350/hardware_regs/RP2350.svd:    <peripheral>
src/rp2350/hardware_regs/RP2350.svd-        <name>OTP_DATA</name>
src/rp2350/hardware_regs/RP2350.svd-        <baseAddress>0x40130000</baseAddress>
--
src/rp2350/hardware_regs/RP2350.svd:    <peripheral>
src/rp2350/hardware_regs/RP2350.svd-        <name>OTP_DATA_RAW</name>
src/rp2350/hardware_regs/RP2350.svd-        <baseAddress>0x40134000</baseAddress>
--
src/rp2350/hardware_regs/RP2350.svd:    <peripheral>
src/rp2350/hardware_regs/RP2350.svd-        <name>PADS_BANK0</name>
src/rp2350/hardware_regs/RP2350.svd-        <baseAddress>0x40038000</baseAddress>
--
src/rp2350/hardware_regs/RP2350.svd:    <peripheral>
src/rp2350/hardware_regs/RP2350.svd-        <name>PADS_QSPI</name>
src/rp2350/hardware_regs/RP2350.svd-        <baseAddress>0x40040000</baseAddress>
--
src/rp2350/hardware_regs/RP2350.svd:    <peripheral>
src/rp2350/hardware_regs/RP2350.svd-        <name>PIO0</name>
src/rp2350/hardware_regs/RP2350.svd-        <baseAddress>0x50200000</baseAddress>
--
src/rp2350/hardware_regs/RP2350.svd:    <peripheral derivedFrom="PIO0">
src/rp2350/hardware_regs/RP2350.svd-        <name>PIO1</name>
src/rp2350/hardware_regs/RP2350.svd-        <baseAddress>0x50300000</baseAddress>
--
src/rp2350/hardware_regs/RP2350.svd:    <peripheral derivedFrom="PIO0">
src/rp2350/hardware_regs/RP2350.svd-        <name>PIO2</name>
src/rp2350/hardware_regs/RP2350.svd-        <baseAddress>0x50400000</baseAddress>
--
src/rp2350/hardware_regs/RP2350.svd:    <peripheral>
src/rp2350/hardware_regs/RP2350.svd-        <name>PLL_SYS</name>
src/rp2350/hardware_regs/RP2350.svd-        <baseAddress>0x40050000</baseAddress>
--
src/rp2350/hardware_regs/RP2350.svd:    <peripheral derivedFrom="PLL_SYS">
src/rp2350/hardware_regs/RP2350.svd-        <name>PLL_USB</name>
src/rp2350/hardware_regs/RP2350.svd-        <baseAddress>0x40058000</baseAddress>
--
src/rp2350/hardware_regs/RP2350.svd:    <peripheral>
src/rp2350/hardware_regs/RP2350.svd-        <name>POWMAN</name>
src/rp2350/hardware_regs/RP2350.svd-        <baseAddress>0x40100000</baseAddress>
--
src/rp2350/hardware_regs/RP2350.svd:    <peripheral>
src/rp2350/hardware_regs/RP2350.svd-        <name>PPB</name>
src/rp2350/hardware_regs/RP2350.svd-        <baseAddress>0xe0000000</baseAddress>
--
src/rp2350/hardware_regs/RP2350.svd:    <peripheral derivedFrom="PPB">
src/rp2350/hardware_regs/RP2350.svd-        <name>PPB_NS</name>
src/rp2350/hardware_regs/RP2350.svd-        <baseAddress>0xe0020000</baseAddress>
--
src/rp2350/hardware_regs/RP2350.svd:    <peripheral>
src/rp2350/hardware_regs/RP2350.svd-        <name>PSM</name>
src/rp2350/hardware_regs/RP2350.svd-        <baseAddress>0x40018000</baseAddress>
--
src/rp2350/hardware_regs/RP2350.svd:    <peripheral>
src/rp2350/hardware_regs/RP2350.svd-        <name>PWM</name>
src/rp2350/hardware_regs/RP2350.svd-        <baseAddress>0x400a8000</baseAddress>
--
src/rp2350/hardware_regs/RP2350.svd:    <peripheral>
src/rp2350/hardware_regs/RP2350.svd-        <name>QMI</name>
src/rp2350/hardware_regs/RP2350.svd-        <baseAddress>0x400d0000</baseAddress>
--
src/rp2350/hardware_regs/RP2350.svd:    <peripheral>
src/rp2350/hardware_regs/RP2350.svd-        <name>RESETS</name>
src/rp2350/hardware_regs/RP2350.svd-        <baseAddress>0x40020000</baseAddress>
--
src/rp2350/hardware_regs/RP2350.svd:    <peripheral>
src/rp2350/hardware_regs/RP2350.svd-        <name>ROSC</name>
src/rp2350/hardware_regs/RP2350.svd-        <baseAddress>0x400e8000</baseAddress>
--
src/rp2350/hardware_regs/RP2350.svd:    <peripheral>
src/rp2350/hardware_regs/RP2350.svd-        <name>SHA256</name>
src/rp2350/hardware_regs/RP2350.svd-        <baseAddress>0x400f8000</baseAddress>
--
src/rp2350/hardware_regs/RP2350.svd:    <peripheral>
src/rp2350/hardware_regs/RP2350.svd-        <name>SIO</name>
src/rp2350/hardware_regs/RP2350.svd-        <baseAddress>0xd0000000</baseAddress>
--
src/rp2350/hardware_regs/RP2350.svd:    <peripheral derivedFrom="SIO">
src/rp2350/hardware_regs/RP2350.svd-        <name>SIO_NS</name>
src/rp2350/hardware_regs/RP2350.svd-        <baseAddress>0xd0020000</baseAddress>
--
src/rp2350/hardware_regs/RP2350.svd:    <peripheral>
src/rp2350/hardware_regs/RP2350.svd-        <name>SPI0</name>
src/rp2350/hardware_regs/RP2350.svd-        <baseAddress>0x40080000</baseAddress>
--
src/rp2350/hardware_regs/RP2350.svd:    <peripheral derivedFrom="SPI0">
src/rp2350/hardware_regs/RP2350.svd-        <name>SPI1</name>
src/rp2350/hardware_regs/RP2350.svd-        <baseAddress>0x40088000</baseAddress>
--
src/rp2350/hardware_regs/RP2350.svd:    <peripheral>
src/rp2350/hardware_regs/RP2350.svd-        <name>SYSCFG</name>
src/rp2350/hardware_regs/RP2350.svd-        <baseAddress>0x40008000</baseAddress>
--
src/rp2350/hardware_regs/RP2350.svd:    <peripheral>
src/rp2350/hardware_regs/RP2350.svd-        <name>SYSINFO</name>
src/rp2350/hardware_regs/RP2350.svd-        <baseAddress>0x40000000</baseAddress>
--
src/rp2350/hardware_regs/RP2350.svd:    <peripheral>
src/rp2350/hardware_regs/RP2350.svd-        <name>TBMAN</name>
src/rp2350/hardware_regs/RP2350.svd-        <baseAddress>0x40160000</baseAddress>
--
src/rp2350/hardware_regs/RP2350.svd:    <peripheral>
src/rp2350/hardware_regs/RP2350.svd-        <name>TICKS</name>
src/rp2350/hardware_regs/RP2350.svd-        <baseAddress>0x40108000</baseAddress>
--
src/rp2350/hardware_regs/RP2350.svd:    <peripheral>
src/rp2350/hardware_regs/RP2350.svd-        <name>TIMER0</name>
src/rp2350/hardware_regs/RP2350.svd-        <baseAddress>0x400b0000</baseAddress>
--
src/rp2350/hardware_regs/RP2350.svd:    <peripheral derivedFrom="TIMER0">
src/rp2350/hardware_regs/RP2350.svd-        <name>TIMER1</name>
src/rp2350/hardware_regs/RP2350.svd-        <baseAddress>0x400b8000</baseAddress>
--
src/rp2350/hardware_regs/RP2350.svd:    <peripheral>
src/rp2350/hardware_regs/RP2350.svd-        <name>TRNG</name>
src/rp2350/hardware_regs/RP2350.svd-        <baseAddress>0x400f0000</baseAddress>
--
src/rp2350/hardware_regs/RP2350.svd:    <peripheral>
src/rp2350/hardware_regs/RP2350.svd-        <name>UART0</name>
src/rp2350/hardware_regs/RP2350.svd-        <baseAddress>0x40070000</baseAddress>
--
src/rp2350/hardware_regs/RP2350.svd:    <peripheral derivedFrom="UART0">
src/rp2350/hardware_regs/RP2350.svd-        <name>UART1</name>
src/rp2350/hardware_regs/RP2350.svd-        <baseAddress>0x40078000</baseAddress>
--
src/rp2350/hardware_regs/RP2350.svd:    <peripheral>
src/rp2350/hardware_regs/RP2350.svd-        <name>USB</name>
src/rp2350/hardware_regs/RP2350.svd-        <baseAddress>0x50110000</baseAddress>
--
src/rp2350/hardware_regs/RP2350.svd:    <peripheral>
src/rp2350/hardware_regs/RP2350.svd-        <name>USB_DEVICE_DPRAM</name>
src/rp2350/hardware_regs/RP2350.svd-        <baseAddress>0x50100000</baseAddress>
--
src/rp2350/hardware_regs/RP2350.svd:    <peripheral>
src/rp2350/hardware_regs/RP2350.svd-        <name>WATCHDOG</name>
src/rp2350/hardware_regs/RP2350.svd-        <baseAddress>0x400d8000</baseAddress>
--
src/rp2350/hardware_regs/RP2350.svd:    <peripheral>
src/rp2350/hardware_regs/RP2350.svd-        <name>XIP_AUX</name>
src/rp2350/hardware_regs/RP2350.svd-        <baseAddress>0x50500000</baseAddress>
--
src/rp2350/hardware_regs/RP2350.svd:    <peripheral>
src/rp2350/hardware_regs/RP2350.svd-        <name>XIP_CTRL</name>
src/rp2350/hardware_regs/RP2350.svd-        <baseAddress>0x400c8000</baseAddress>
--
src/rp2350/hardware_regs/RP2350.svd:    <peripheral>
src/rp2350/hardware_regs/RP2350.svd-        <name>XOSC</name>
src/rp2350/hardware_regs/RP2350.svd-        <baseAddress>0x40048000</baseAddress>
--
src/rp2350/hardware_regs/RP2350.svd:    <peripheral>
src/rp2350/hardware_regs/RP2350.svd-        <name>VIRTUAL</name>
src/rp2350/hardware_regs/RP2350.svd-        <baseAddress>0x00000000</baseAddress>
> the ordering in the SVD is not meaningful and was random before - it will at least now be stable Nice :+1: ```bash $ git grep -A2 "<peripheral" "*.svd" src/rp2040/hardware_regs/RP2040.svd: <peripherals> src/rp2040/hardware_regs/RP2040.svd: <peripheral> src/rp2040/hardware_regs/RP2040.svd- <name>ADC</name> src/rp2040/hardware_regs/RP2040.svd- <baseAddress>0x4004c000</baseAddress> -- src/rp2040/hardware_regs/RP2040.svd: <peripheral> src/rp2040/hardware_regs/RP2040.svd- <name>BUSCTRL</name> src/rp2040/hardware_regs/RP2040.svd- <baseAddress>0x40030000</baseAddress> -- src/rp2040/hardware_regs/RP2040.svd: <peripheral> src/rp2040/hardware_regs/RP2040.svd- <name>CLOCKS</name> src/rp2040/hardware_regs/RP2040.svd- <baseAddress>0x40008000</baseAddress> -- src/rp2040/hardware_regs/RP2040.svd: <peripheral> src/rp2040/hardware_regs/RP2040.svd- <name>DMA</name> src/rp2040/hardware_regs/RP2040.svd- <baseAddress>0x50000000</baseAddress> -- src/rp2040/hardware_regs/RP2040.svd: <peripheral> src/rp2040/hardware_regs/RP2040.svd- <name>I2C0</name> src/rp2040/hardware_regs/RP2040.svd- <baseAddress>0x40044000</baseAddress> -- src/rp2040/hardware_regs/RP2040.svd: <peripheral derivedFrom="I2C0"> src/rp2040/hardware_regs/RP2040.svd- <name>I2C1</name> src/rp2040/hardware_regs/RP2040.svd- <baseAddress>0x40048000</baseAddress> -- src/rp2040/hardware_regs/RP2040.svd: <peripheral> src/rp2040/hardware_regs/RP2040.svd- <name>IO_BANK0</name> src/rp2040/hardware_regs/RP2040.svd- <baseAddress>0x40014000</baseAddress> -- src/rp2040/hardware_regs/RP2040.svd: <peripheral> src/rp2040/hardware_regs/RP2040.svd- <name>IO_QSPI</name> src/rp2040/hardware_regs/RP2040.svd- <baseAddress>0x40018000</baseAddress> -- src/rp2040/hardware_regs/RP2040.svd: <peripheral> src/rp2040/hardware_regs/RP2040.svd- <name>PADS_BANK0</name> src/rp2040/hardware_regs/RP2040.svd- <baseAddress>0x4001c000</baseAddress> -- src/rp2040/hardware_regs/RP2040.svd: <peripheral> src/rp2040/hardware_regs/RP2040.svd- <name>PADS_QSPI</name> src/rp2040/hardware_regs/RP2040.svd- <baseAddress>0x40020000</baseAddress> -- src/rp2040/hardware_regs/RP2040.svd: <peripheral> src/rp2040/hardware_regs/RP2040.svd- <name>PIO0</name> src/rp2040/hardware_regs/RP2040.svd- <baseAddress>0x50200000</baseAddress> -- src/rp2040/hardware_regs/RP2040.svd: <peripheral derivedFrom="PIO0"> src/rp2040/hardware_regs/RP2040.svd- <name>PIO1</name> src/rp2040/hardware_regs/RP2040.svd- <baseAddress>0x50300000</baseAddress> -- src/rp2040/hardware_regs/RP2040.svd: <peripheral> src/rp2040/hardware_regs/RP2040.svd- <name>PLL_SYS</name> src/rp2040/hardware_regs/RP2040.svd- <baseAddress>0x40028000</baseAddress> -- src/rp2040/hardware_regs/RP2040.svd: <peripheral derivedFrom="PLL_SYS"> src/rp2040/hardware_regs/RP2040.svd- <name>PLL_USB</name> src/rp2040/hardware_regs/RP2040.svd- <baseAddress>0x4002c000</baseAddress> -- src/rp2040/hardware_regs/RP2040.svd: <peripheral> src/rp2040/hardware_regs/RP2040.svd- <name>PPB</name> src/rp2040/hardware_regs/RP2040.svd- <baseAddress>0xe0000000</baseAddress> -- src/rp2040/hardware_regs/RP2040.svd: <peripheral> src/rp2040/hardware_regs/RP2040.svd- <name>PSM</name> src/rp2040/hardware_regs/RP2040.svd- <baseAddress>0x40010000</baseAddress> -- src/rp2040/hardware_regs/RP2040.svd: <peripheral> src/rp2040/hardware_regs/RP2040.svd- <name>PWM</name> src/rp2040/hardware_regs/RP2040.svd- <baseAddress>0x40050000</baseAddress> -- src/rp2040/hardware_regs/RP2040.svd: <peripheral> src/rp2040/hardware_regs/RP2040.svd- <name>RESETS</name> src/rp2040/hardware_regs/RP2040.svd- <baseAddress>0x4000c000</baseAddress> -- src/rp2040/hardware_regs/RP2040.svd: <peripheral> src/rp2040/hardware_regs/RP2040.svd- <name>ROSC</name> src/rp2040/hardware_regs/RP2040.svd- <baseAddress>0x40060000</baseAddress> -- src/rp2040/hardware_regs/RP2040.svd: <peripheral> src/rp2040/hardware_regs/RP2040.svd- <name>RTC</name> src/rp2040/hardware_regs/RP2040.svd- <baseAddress>0x4005c000</baseAddress> -- src/rp2040/hardware_regs/RP2040.svd: <peripheral> src/rp2040/hardware_regs/RP2040.svd- <name>SIO</name> src/rp2040/hardware_regs/RP2040.svd- <baseAddress>0xd0000000</baseAddress> -- src/rp2040/hardware_regs/RP2040.svd: <peripheral> src/rp2040/hardware_regs/RP2040.svd- <name>SPI0</name> src/rp2040/hardware_regs/RP2040.svd- <baseAddress>0x4003c000</baseAddress> -- src/rp2040/hardware_regs/RP2040.svd: <peripheral derivedFrom="SPI0"> src/rp2040/hardware_regs/RP2040.svd- <name>SPI1</name> src/rp2040/hardware_regs/RP2040.svd- <baseAddress>0x40040000</baseAddress> -- src/rp2040/hardware_regs/RP2040.svd: <peripheral> src/rp2040/hardware_regs/RP2040.svd- <name>SSI</name> src/rp2040/hardware_regs/RP2040.svd- <baseAddress>0x18000000</baseAddress> -- src/rp2040/hardware_regs/RP2040.svd: <peripheral> src/rp2040/hardware_regs/RP2040.svd- <name>SYSCFG</name> src/rp2040/hardware_regs/RP2040.svd- <baseAddress>0x40004000</baseAddress> -- src/rp2040/hardware_regs/RP2040.svd: <peripheral> src/rp2040/hardware_regs/RP2040.svd- <name>SYSINFO</name> src/rp2040/hardware_regs/RP2040.svd- <baseAddress>0x40000000</baseAddress> -- src/rp2040/hardware_regs/RP2040.svd: <peripheral> src/rp2040/hardware_regs/RP2040.svd- <name>TBMAN</name> src/rp2040/hardware_regs/RP2040.svd- <baseAddress>0x4006c000</baseAddress> -- src/rp2040/hardware_regs/RP2040.svd: <peripheral> src/rp2040/hardware_regs/RP2040.svd- <name>TIMER</name> src/rp2040/hardware_regs/RP2040.svd- <baseAddress>0x40054000</baseAddress> -- src/rp2040/hardware_regs/RP2040.svd: <peripheral> src/rp2040/hardware_regs/RP2040.svd- <name>UART0</name> src/rp2040/hardware_regs/RP2040.svd- <baseAddress>0x40034000</baseAddress> -- src/rp2040/hardware_regs/RP2040.svd: <peripheral derivedFrom="UART0"> src/rp2040/hardware_regs/RP2040.svd- <name>UART1</name> src/rp2040/hardware_regs/RP2040.svd- <baseAddress>0x40038000</baseAddress> -- src/rp2040/hardware_regs/RP2040.svd: <peripheral> src/rp2040/hardware_regs/RP2040.svd- <name>USB</name> src/rp2040/hardware_regs/RP2040.svd- <baseAddress>0x50110000</baseAddress> -- src/rp2040/hardware_regs/RP2040.svd: <peripheral> src/rp2040/hardware_regs/RP2040.svd- <name>USB_DEVICE_DPRAM</name> src/rp2040/hardware_regs/RP2040.svd- <baseAddress>0x50100000</baseAddress> -- src/rp2040/hardware_regs/RP2040.svd: <peripheral> src/rp2040/hardware_regs/RP2040.svd- <name>VREG_AND_CHIP_RESET</name> src/rp2040/hardware_regs/RP2040.svd- <baseAddress>0x40064000</baseAddress> -- src/rp2040/hardware_regs/RP2040.svd: <peripheral> src/rp2040/hardware_regs/RP2040.svd- <name>WATCHDOG</name> src/rp2040/hardware_regs/RP2040.svd- <baseAddress>0x40058000</baseAddress> -- src/rp2040/hardware_regs/RP2040.svd: <peripheral> src/rp2040/hardware_regs/RP2040.svd- <name>XIP_CTRL</name> src/rp2040/hardware_regs/RP2040.svd- <baseAddress>0x14000000</baseAddress> -- src/rp2040/hardware_regs/RP2040.svd: <peripheral> src/rp2040/hardware_regs/RP2040.svd- <name>XOSC</name> src/rp2040/hardware_regs/RP2040.svd- <baseAddress>0x40024000</baseAddress> -- src/rp2040/hardware_regs/RP2040.svd: <peripheral> src/rp2040/hardware_regs/RP2040.svd- <name>VIRTUAL</name> src/rp2040/hardware_regs/RP2040.svd- <baseAddress>0x00000000</baseAddress> -- src/rp2350/hardware_regs/RP2350.svd: <peripherals> src/rp2350/hardware_regs/RP2350.svd: <peripheral> src/rp2350/hardware_regs/RP2350.svd- <name>ACCESSCTRL</name> src/rp2350/hardware_regs/RP2350.svd- <baseAddress>0x40060000</baseAddress> -- src/rp2350/hardware_regs/RP2350.svd: <peripheral> src/rp2350/hardware_regs/RP2350.svd- <name>ADC</name> src/rp2350/hardware_regs/RP2350.svd- <baseAddress>0x400a0000</baseAddress> -- src/rp2350/hardware_regs/RP2350.svd: <peripheral> src/rp2350/hardware_regs/RP2350.svd- <name>BOOTRAM</name> src/rp2350/hardware_regs/RP2350.svd- <baseAddress>0x400e0000</baseAddress> -- src/rp2350/hardware_regs/RP2350.svd: <peripheral> src/rp2350/hardware_regs/RP2350.svd- <name>BUSCTRL</name> src/rp2350/hardware_regs/RP2350.svd- <baseAddress>0x40068000</baseAddress> -- src/rp2350/hardware_regs/RP2350.svd: <peripheral> src/rp2350/hardware_regs/RP2350.svd- <name>CLOCKS</name> src/rp2350/hardware_regs/RP2350.svd- <baseAddress>0x40010000</baseAddress> -- src/rp2350/hardware_regs/RP2350.svd: <peripheral> src/rp2350/hardware_regs/RP2350.svd- <name>CORESIGHT_TRACE</name> src/rp2350/hardware_regs/RP2350.svd- <baseAddress>0x50700000</baseAddress> -- src/rp2350/hardware_regs/RP2350.svd: <peripheral> src/rp2350/hardware_regs/RP2350.svd- <name>DMA</name> src/rp2350/hardware_regs/RP2350.svd- <baseAddress>0x50000000</baseAddress> -- src/rp2350/hardware_regs/RP2350.svd: <peripheral> src/rp2350/hardware_regs/RP2350.svd- <name>EPPB</name> src/rp2350/hardware_regs/RP2350.svd- <baseAddress>0xe0080000</baseAddress> -- src/rp2350/hardware_regs/RP2350.svd: <peripheral> src/rp2350/hardware_regs/RP2350.svd- <name>GLITCH_DETECTOR</name> src/rp2350/hardware_regs/RP2350.svd- <baseAddress>0x40158000</baseAddress> -- src/rp2350/hardware_regs/RP2350.svd: <peripheral> src/rp2350/hardware_regs/RP2350.svd- <name>HSTX_CTRL</name> src/rp2350/hardware_regs/RP2350.svd- <baseAddress>0x400c0000</baseAddress> -- src/rp2350/hardware_regs/RP2350.svd: <peripheral> src/rp2350/hardware_regs/RP2350.svd- <name>HSTX_FIFO</name> src/rp2350/hardware_regs/RP2350.svd- <baseAddress>0x50600000</baseAddress> -- src/rp2350/hardware_regs/RP2350.svd: <peripheral> src/rp2350/hardware_regs/RP2350.svd- <name>I2C0</name> src/rp2350/hardware_regs/RP2350.svd- <baseAddress>0x40090000</baseAddress> -- src/rp2350/hardware_regs/RP2350.svd: <peripheral derivedFrom="I2C0"> src/rp2350/hardware_regs/RP2350.svd- <name>I2C1</name> src/rp2350/hardware_regs/RP2350.svd- <baseAddress>0x40098000</baseAddress> -- src/rp2350/hardware_regs/RP2350.svd: <peripheral> src/rp2350/hardware_regs/RP2350.svd- <name>IO_BANK0</name> src/rp2350/hardware_regs/RP2350.svd- <baseAddress>0x40028000</baseAddress> -- src/rp2350/hardware_regs/RP2350.svd: <peripheral> src/rp2350/hardware_regs/RP2350.svd- <name>IO_QSPI</name> src/rp2350/hardware_regs/RP2350.svd- <baseAddress>0x40030000</baseAddress> -- src/rp2350/hardware_regs/RP2350.svd: <peripheral> src/rp2350/hardware_regs/RP2350.svd- <name>OTP</name> src/rp2350/hardware_regs/RP2350.svd- <baseAddress>0x40120000</baseAddress> -- src/rp2350/hardware_regs/RP2350.svd: <peripheral> src/rp2350/hardware_regs/RP2350.svd- <name>OTP_DATA</name> src/rp2350/hardware_regs/RP2350.svd- <baseAddress>0x40130000</baseAddress> -- src/rp2350/hardware_regs/RP2350.svd: <peripheral> src/rp2350/hardware_regs/RP2350.svd- <name>OTP_DATA_RAW</name> src/rp2350/hardware_regs/RP2350.svd- <baseAddress>0x40134000</baseAddress> -- src/rp2350/hardware_regs/RP2350.svd: <peripheral> src/rp2350/hardware_regs/RP2350.svd- <name>PADS_BANK0</name> src/rp2350/hardware_regs/RP2350.svd- <baseAddress>0x40038000</baseAddress> -- src/rp2350/hardware_regs/RP2350.svd: <peripheral> src/rp2350/hardware_regs/RP2350.svd- <name>PADS_QSPI</name> src/rp2350/hardware_regs/RP2350.svd- <baseAddress>0x40040000</baseAddress> -- src/rp2350/hardware_regs/RP2350.svd: <peripheral> src/rp2350/hardware_regs/RP2350.svd- <name>PIO0</name> src/rp2350/hardware_regs/RP2350.svd- <baseAddress>0x50200000</baseAddress> -- src/rp2350/hardware_regs/RP2350.svd: <peripheral derivedFrom="PIO0"> src/rp2350/hardware_regs/RP2350.svd- <name>PIO1</name> src/rp2350/hardware_regs/RP2350.svd- <baseAddress>0x50300000</baseAddress> -- src/rp2350/hardware_regs/RP2350.svd: <peripheral derivedFrom="PIO0"> src/rp2350/hardware_regs/RP2350.svd- <name>PIO2</name> src/rp2350/hardware_regs/RP2350.svd- <baseAddress>0x50400000</baseAddress> -- src/rp2350/hardware_regs/RP2350.svd: <peripheral> src/rp2350/hardware_regs/RP2350.svd- <name>PLL_SYS</name> src/rp2350/hardware_regs/RP2350.svd- <baseAddress>0x40050000</baseAddress> -- src/rp2350/hardware_regs/RP2350.svd: <peripheral derivedFrom="PLL_SYS"> src/rp2350/hardware_regs/RP2350.svd- <name>PLL_USB</name> src/rp2350/hardware_regs/RP2350.svd- <baseAddress>0x40058000</baseAddress> -- src/rp2350/hardware_regs/RP2350.svd: <peripheral> src/rp2350/hardware_regs/RP2350.svd- <name>POWMAN</name> src/rp2350/hardware_regs/RP2350.svd- <baseAddress>0x40100000</baseAddress> -- src/rp2350/hardware_regs/RP2350.svd: <peripheral> src/rp2350/hardware_regs/RP2350.svd- <name>PPB</name> src/rp2350/hardware_regs/RP2350.svd- <baseAddress>0xe0000000</baseAddress> -- src/rp2350/hardware_regs/RP2350.svd: <peripheral derivedFrom="PPB"> src/rp2350/hardware_regs/RP2350.svd- <name>PPB_NS</name> src/rp2350/hardware_regs/RP2350.svd- <baseAddress>0xe0020000</baseAddress> -- src/rp2350/hardware_regs/RP2350.svd: <peripheral> src/rp2350/hardware_regs/RP2350.svd- <name>PSM</name> src/rp2350/hardware_regs/RP2350.svd- <baseAddress>0x40018000</baseAddress> -- src/rp2350/hardware_regs/RP2350.svd: <peripheral> src/rp2350/hardware_regs/RP2350.svd- <name>PWM</name> src/rp2350/hardware_regs/RP2350.svd- <baseAddress>0x400a8000</baseAddress> -- src/rp2350/hardware_regs/RP2350.svd: <peripheral> src/rp2350/hardware_regs/RP2350.svd- <name>QMI</name> src/rp2350/hardware_regs/RP2350.svd- <baseAddress>0x400d0000</baseAddress> -- src/rp2350/hardware_regs/RP2350.svd: <peripheral> src/rp2350/hardware_regs/RP2350.svd- <name>RESETS</name> src/rp2350/hardware_regs/RP2350.svd- <baseAddress>0x40020000</baseAddress> -- src/rp2350/hardware_regs/RP2350.svd: <peripheral> src/rp2350/hardware_regs/RP2350.svd- <name>ROSC</name> src/rp2350/hardware_regs/RP2350.svd- <baseAddress>0x400e8000</baseAddress> -- src/rp2350/hardware_regs/RP2350.svd: <peripheral> src/rp2350/hardware_regs/RP2350.svd- <name>SHA256</name> src/rp2350/hardware_regs/RP2350.svd- <baseAddress>0x400f8000</baseAddress> -- src/rp2350/hardware_regs/RP2350.svd: <peripheral> src/rp2350/hardware_regs/RP2350.svd- <name>SIO</name> src/rp2350/hardware_regs/RP2350.svd- <baseAddress>0xd0000000</baseAddress> -- src/rp2350/hardware_regs/RP2350.svd: <peripheral derivedFrom="SIO"> src/rp2350/hardware_regs/RP2350.svd- <name>SIO_NS</name> src/rp2350/hardware_regs/RP2350.svd- <baseAddress>0xd0020000</baseAddress> -- src/rp2350/hardware_regs/RP2350.svd: <peripheral> src/rp2350/hardware_regs/RP2350.svd- <name>SPI0</name> src/rp2350/hardware_regs/RP2350.svd- <baseAddress>0x40080000</baseAddress> -- src/rp2350/hardware_regs/RP2350.svd: <peripheral derivedFrom="SPI0"> src/rp2350/hardware_regs/RP2350.svd- <name>SPI1</name> src/rp2350/hardware_regs/RP2350.svd- <baseAddress>0x40088000</baseAddress> -- src/rp2350/hardware_regs/RP2350.svd: <peripheral> src/rp2350/hardware_regs/RP2350.svd- <name>SYSCFG</name> src/rp2350/hardware_regs/RP2350.svd- <baseAddress>0x40008000</baseAddress> -- src/rp2350/hardware_regs/RP2350.svd: <peripheral> src/rp2350/hardware_regs/RP2350.svd- <name>SYSINFO</name> src/rp2350/hardware_regs/RP2350.svd- <baseAddress>0x40000000</baseAddress> -- src/rp2350/hardware_regs/RP2350.svd: <peripheral> src/rp2350/hardware_regs/RP2350.svd- <name>TBMAN</name> src/rp2350/hardware_regs/RP2350.svd- <baseAddress>0x40160000</baseAddress> -- src/rp2350/hardware_regs/RP2350.svd: <peripheral> src/rp2350/hardware_regs/RP2350.svd- <name>TICKS</name> src/rp2350/hardware_regs/RP2350.svd- <baseAddress>0x40108000</baseAddress> -- src/rp2350/hardware_regs/RP2350.svd: <peripheral> src/rp2350/hardware_regs/RP2350.svd- <name>TIMER0</name> src/rp2350/hardware_regs/RP2350.svd- <baseAddress>0x400b0000</baseAddress> -- src/rp2350/hardware_regs/RP2350.svd: <peripheral derivedFrom="TIMER0"> src/rp2350/hardware_regs/RP2350.svd- <name>TIMER1</name> src/rp2350/hardware_regs/RP2350.svd- <baseAddress>0x400b8000</baseAddress> -- src/rp2350/hardware_regs/RP2350.svd: <peripheral> src/rp2350/hardware_regs/RP2350.svd- <name>TRNG</name> src/rp2350/hardware_regs/RP2350.svd- <baseAddress>0x400f0000</baseAddress> -- src/rp2350/hardware_regs/RP2350.svd: <peripheral> src/rp2350/hardware_regs/RP2350.svd- <name>UART0</name> src/rp2350/hardware_regs/RP2350.svd- <baseAddress>0x40070000</baseAddress> -- src/rp2350/hardware_regs/RP2350.svd: <peripheral derivedFrom="UART0"> src/rp2350/hardware_regs/RP2350.svd- <name>UART1</name> src/rp2350/hardware_regs/RP2350.svd- <baseAddress>0x40078000</baseAddress> -- src/rp2350/hardware_regs/RP2350.svd: <peripheral> src/rp2350/hardware_regs/RP2350.svd- <name>USB</name> src/rp2350/hardware_regs/RP2350.svd- <baseAddress>0x50110000</baseAddress> -- src/rp2350/hardware_regs/RP2350.svd: <peripheral> src/rp2350/hardware_regs/RP2350.svd- <name>USB_DEVICE_DPRAM</name> src/rp2350/hardware_regs/RP2350.svd- <baseAddress>0x50100000</baseAddress> -- src/rp2350/hardware_regs/RP2350.svd: <peripheral> src/rp2350/hardware_regs/RP2350.svd- <name>WATCHDOG</name> src/rp2350/hardware_regs/RP2350.svd- <baseAddress>0x400d8000</baseAddress> -- src/rp2350/hardware_regs/RP2350.svd: <peripheral> src/rp2350/hardware_regs/RP2350.svd- <name>XIP_AUX</name> src/rp2350/hardware_regs/RP2350.svd- <baseAddress>0x50500000</baseAddress> -- src/rp2350/hardware_regs/RP2350.svd: <peripheral> src/rp2350/hardware_regs/RP2350.svd- <name>XIP_CTRL</name> src/rp2350/hardware_regs/RP2350.svd- <baseAddress>0x400c8000</baseAddress> -- src/rp2350/hardware_regs/RP2350.svd: <peripheral> src/rp2350/hardware_regs/RP2350.svd- <name>XOSC</name> src/rp2350/hardware_regs/RP2350.svd- <baseAddress>0x40048000</baseAddress> -- src/rp2350/hardware_regs/RP2350.svd: <peripheral> src/rp2350/hardware_regs/RP2350.svd- <name>VIRTUAL</name> src/rp2350/hardware_regs/RP2350.svd- <baseAddress>0x00000000</baseAddress> ```
kilograham (Migrated from github.com) reviewed 2026-04-23 19:57:34 -05:00
kilograham (Migrated from github.com) commented 2026-04-23 19:57:34 -05:00

yeah, it is annoying once but i'm cool with it

yeah, it is annoying once but i'm cool with it
kilograham (Migrated from github.com) reviewed 2026-04-23 19:57:48 -05:00
@ -47,3 +47,3 @@
#define sysinfo_hw ((sysinfo_hw_t *)SYSINFO_BASE)
static_assert(sizeof (sysinfo_hw_t) == 0x0014, "");
static_assert(sizeof (sysinfo_hw_t) == 0x0044, "");
kilograham (Migrated from github.com) commented 2026-04-23 19:57:48 -05:00

because it was wrong before ;-)

because it was wrong before ;-)
kilograham (Migrated from github.com) reviewed 2026-04-23 19:58:17 -05:00
@ -2493,2 +2493,2 @@
// Field : ACCESSCTRL_ADC0_DBG
// Description : If 1, ADC0 can be accessed by the debugger, at
// Field : ACCESSCTRL_ADC_DBG
// Description : If 1, ADC can be accessed by the debugger, at
kilograham (Migrated from github.com) commented 2026-04-23 19:58:17 -05:00

yeah i probably will add them and note them

yeah i probably will add them and note them
kilograham (Migrated from github.com) reviewed 2026-04-23 19:58:42 -05:00
kilograham (Migrated from github.com) commented 2026-04-23 19:58:42 -05:00

yuo

yuo
kilograham (Migrated from github.com) reviewed 2026-04-23 19:59:21 -05:00
@ -402,7 +402,7 @@ typedef struct {
// 0x00000002 [1] NSP (0) If 1, XOSC can be accessed from a Non-secure, Privileged context
kilograham (Migrated from github.com) commented 2026-04-23 19:59:21 -05:00

good point - i will update those

good point - i will update those
kilograham commented 2026-04-23 20:01:37 -05:00 (Migrated from github.com)

All the extra whitespace changes made it very hard to review the actual changes here; but apart from the things I've noted above it looks like this includes lots of nice little fix-ups 🙂

I also included all the hardware_structs into kitchen_sink.c

Did you forget to push those changes to this PR?

apparently so; will fix

note - i recommend using a DIFF tool that supports ignoring whitespace!!

> All the extra whitespace changes made it very hard to review the **actual** changes here; but apart from the things I've noted above it looks like this includes lots of nice little fix-ups 🙂 > > > I also included all the hardware_structs into kitchen_sink.c > > Did you forget to push those changes to this PR? apparently so; will fix note - i recommend using a DIFF tool that supports ignoring whitespace!!
matiasilva (Migrated from github.com) reviewed 2026-04-24 08:18:48 -05:00
@ -170,6 +170,46 @@
// 0x3d -> Select Timer 2 as TREQ (Optional)
// 0x3e -> Select Timer 3 as TREQ (Optional)
// 0x3f -> Permanent request, for unpaced transfers.
// 0x00 -> Select PIO0's TX FIFO 0 as TREQ
matiasilva (Migrated from github.com) commented 2026-04-24 08:18:48 -05:00

I can remove the explicit enumeration, if that's better?

I can remove the explicit enumeration, if that's better?
matiasilva (Migrated from github.com) reviewed 2026-04-24 08:27:41 -05:00
matiasilva (Migrated from github.com) commented 2026-04-24 08:27:41 -05:00

I wrapped to column length of 80, which is standard I think.

I wrapped to column length of 80, which is standard I think.
matiasilva (Migrated from github.com) reviewed 2026-04-24 08:30:31 -05:00
@ -32,3 +32,3 @@
#define PWM_CH0_CSR_PH_ADV_LSB _u(7)
#define PWM_CH0_CSR_PH_ADV_ACCESS "SC"
#define PWM_CH0_CSR_PH_ADV_ACCESS "WC"
// -----------------------------------------------------------------------------
matiasilva (Migrated from github.com) commented 2026-04-24 08:30:31 -05:00
https://github.com/raspberrypi/pico-sdk/issues/1466
matiasilva (Migrated from github.com) reviewed 2026-04-24 08:33:04 -05:00
@ -79,3 +79,3 @@
io_rw_32 scr;
_REG_(M33_CCR_OFFSET) // M33_CCR
matiasilva (Migrated from github.com) commented 2026-04-24 08:33:04 -05:00

scb.h is a subset of m33.h

scb.h is a subset of m33.h
matiasilva commented 2026-04-24 08:35:16 -05:00 (Migrated from github.com)

All the extra whitespace changes made it very hard to review the actual changes here; but apart from the things I've noted above it looks like this includes lots of nice little fix-ups 🙂

The whitespace changes were fixes for the most part, so it had to be done. Unless there are any that I've missed that shouldn't be there?

> All the extra whitespace changes made it very hard to review the **actual** changes here; but apart from the things I've noted above it looks like this includes lots of nice little fix-ups 🙂 The whitespace changes were fixes for the most part, so it had to be done. Unless there are any that I've missed that shouldn't be there?
lurch (Migrated from github.com) reviewed 2026-04-24 10:03:06 -05:00
@ -170,6 +170,46 @@
// 0x3d -> Select Timer 2 as TREQ (Optional)
// 0x3e -> Select Timer 3 as TREQ (Optional)
// 0x3f -> Permanent request, for unpaced transfers.
// 0x00 -> Select PIO0's TX FIFO 0 as TREQ
lurch (Migrated from github.com) commented 2026-04-24 10:03:06 -05:00

Please don't - I think that it's great that these are now explicitly enumerated; sorry if I didn't make that clear.

Please don't - I think that it's **great** that these are now explicitly enumerated; sorry if I didn't make that clear.
lurch (Migrated from github.com) reviewed 2026-04-24 10:14:58 -05:00
@ -32,3 +32,3 @@
#define PWM_CH0_CSR_PH_ADV_LSB _u(7)
#define PWM_CH0_CSR_PH_ADV_ACCESS "SC"
#define PWM_CH0_CSR_PH_ADV_ACCESS "WC"
// -----------------------------------------------------------------------------
lurch (Migrated from github.com) commented 2026-04-24 10:14:58 -05:00

Huh, interesting... The person in that issue is complaining that SC wasn't appropriate because the bit isn't "cleared on the next clock cycle".
But Appendix A in the RP2350 datasheet now describes SC as "Writing a 1 to a bit in an SC field will trigger an event, once the event is triggered the bit clears automatically" (it looks like this was updated in February 2025), and no longer says anything about "next clock cycle". In contrast, WC is described as "Writing a 1 to a bit in a WC field will write that bit to 0" which implies that the bit gets written to 0 immediately?

Huh, interesting... The person in that issue is complaining that `SC` wasn't appropriate because the bit isn't "cleared on the next clock cycle". But Appendix A in the RP2350 datasheet now describes `SC` as "Writing a 1 to a bit in an SC field will trigger an event, once the event is triggered the bit clears automatically" (it looks like this was updated in February 2025), and no longer says anything about "next clock cycle". In contrast, `WC` is described as "Writing a 1 to a bit in a WC field will write that bit to 0" which implies that the bit gets written to 0 immediately?
lurch commented 2026-04-24 10:17:01 -05:00 (Migrated from github.com)

All the extra whitespace changes made it very hard to review the actual changes here; but apart from the things I've noted above it looks like this includes lots of nice little fix-ups 🙂

The whitespace changes were fixes for the most part, so it had to be done. Unless there are any that I've missed that shouldn't be there?

Sorry for moaning - I realise that it's a necessary evil 😉

> > All the extra whitespace changes made it very hard to review the **actual** changes here; but apart from the things I've noted above it looks like this includes lots of nice little fix-ups 🙂 > > The whitespace changes were fixes for the most part, so it had to be done. Unless there are any that I've missed that shouldn't be there? Sorry for moaning - I realise that it's a necessary evil :wink:
kilograham (Migrated from github.com) reviewed 2026-04-27 15:03:27 -05:00
@ -2493,2 +2493,2 @@
// Field : ACCESSCTRL_ADC0_DBG
// Description : If 1, ADC0 can be accessed by the debugger, at
// Field : ACCESSCTRL_ADC_DBG
// Description : If 1, ADC can be accessed by the debugger, at
kilograham (Migrated from github.com) commented 2026-04-27 15:03:27 -05:00

actually changed my mind - this is a lot of clutter for the probably no one who has used them

actually changed my mind - this is a lot of clutter for the probably no one who has used them
kilograham (Migrated from github.com) reviewed 2026-04-27 15:13:09 -05:00
@ -38,3 +37,4 @@
#define SYSINFO_CHIP_ID_MANUFACTURER_RESET _u(0x493)
#define SYSINFO_CHIP_ID_MANUFACTURER_BITS _u(0x00000ffe)
#define SYSINFO_CHIP_ID_MANUFACTURER_MSB _u(11)
#define SYSINFO_CHIP_ID_MANUFACTURER_LSB _u(1)
kilograham (Migrated from github.com) commented 2026-04-27 15:13:09 -05:00

the bit field on RP2040 is actually wrong - it includes bit 0 - the RP2040 constant is doubly wrong though as bit 0 is actually 1 in practice here. Probably worth fixing the RP2040 version (cc @matiasilva )

the bit field on RP2040 is actually wrong - it includes bit 0 - the RP2040 constant is doubly wrong though as bit 0 is actually 1 in practice here. Probably worth fixing the RP2040 version (cc @matiasilva )
lurch (Migrated from github.com) reviewed 2026-04-30 04:28:45 -05:00
@ -38,3 +37,4 @@
#define SYSINFO_CHIP_ID_MANUFACTURER_RESET _u(0x493)
#define SYSINFO_CHIP_ID_MANUFACTURER_BITS _u(0x00000ffe)
#define SYSINFO_CHIP_ID_MANUFACTURER_MSB _u(11)
#define SYSINFO_CHIP_ID_MANUFACTURER_LSB _u(1)
lurch (Migrated from github.com) commented 2026-04-30 04:28:45 -05:00

Ahhh, 0x926 >> 1 == 0x493. Looks like the RP2040 version is missing the SYSINFO_CHIP_ID_STOP_BIT.

Ahhh, 0x926 >> 1 == 0x493. Looks like the RP2040 version is missing the `SYSINFO_CHIP_ID_STOP_BIT`.
lurch (Migrated from github.com) reviewed 2026-04-30 04:36:18 -05:00
@ -32,3 +32,3 @@
#define PWM_CH0_CSR_PH_ADV_LSB _u(7)
#define PWM_CH0_CSR_PH_ADV_ACCESS "SC"
#define PWM_CH0_CSR_PH_ADV_ACCESS "WC"
// -----------------------------------------------------------------------------
lurch (Migrated from github.com) commented 2026-04-30 04:36:18 -05:00

I'm still not convinced that it makes sense to change all these PWM fields from SC to WC? RP2350 datasheet says:
Screenshot from 2026-04-30 10-34-24

I'm still not convinced that it makes sense to change all these PWM fields from `SC` to `WC`? RP2350 datasheet says: <img width="1237" height="961" alt="Screenshot from 2026-04-30 10-34-24" src="https://github.com/user-attachments/assets/c943ff34-25d5-4490-8ecc-5e51e884f26c" />
lurch commented 2026-04-30 04:41:22 -05:00 (Migrated from github.com)

I also included all the hardware_structs into kitchen_sink.c

Did you forget to push those changes to this PR?

apparently so; will fix

Done in #2913 👍

> > > I also included all the hardware_structs into kitchen_sink.c > > > > Did you forget to push those changes to this PR? > > apparently so; will fix Done in #2913 :+1:
liamfraser (Migrated from github.com) reviewed 2026-05-20 10:14:58 -05:00
@ -32,3 +32,3 @@
#define PWM_CH0_CSR_PH_ADV_LSB _u(7)
#define PWM_CH0_CSR_PH_ADV_ACCESS "SC"
#define PWM_CH0_CSR_PH_ADV_ACCESS "WC"
// -----------------------------------------------------------------------------
liamfraser (Migrated from github.com) commented 2026-05-20 10:14:58 -05:00

I'm pretty sure Luke's comment on this was that it is self clearing it just takes more than one cycle to clear

I'm pretty sure Luke's comment on this was that it is self clearing it just takes more than one cycle to clear
liamfraser (Migrated from github.com) reviewed 2026-05-20 10:30:19 -05:00
liamfraser (Migrated from github.com) left a comment

I decided to summarise what has changed while doing my review. I did not look at the SVD diff as it's too large

  • Mostly whitespace changes

  • PWM: It is SC not WC. It just takes more than 1 cycle to clear. This was Luke's comment and the description says it is SC (i.e. you write 1 and it goes to 0 when it's done)

  • DMA: Added enumval for each TREQ

  • SIOB renamed to -> SIO in enumvals etc

  • USB controller changes to WC make sense

  • M33 ID registers have gone from RW to "-". Don't think this is a big deal

  • M33 NMI mask description fixed up

  • OTP: exec2 deleted, mac address added

  • RSM renamed to PSM in powman regs. May want backwards compatibility defines for these?

  • TIMER: Agree with Andrew's comment about "// Write to bits 63:32 of time +" looks wrong to have the plus in there

  • GITREF RP2040 offset. Did this actually change?

I decided to summarise what has changed while doing my review. I did not look at the SVD diff as it's too large - Mostly whitespace changes - PWM: It is SC not WC. It just takes more than 1 cycle to clear. This was Luke's comment and the description says it is SC (i.e. you write 1 and it goes to 0 when it's done) - DMA: Added enumval for each TREQ - SIOB renamed to -> SIO in enumvals etc - USB controller changes to WC make sense - M33 ID registers have gone from RW to "-". Don't think this is a big deal - M33 NMI mask description fixed up - OTP: exec2 deleted, mac address added - RSM renamed to PSM in powman regs. May want backwards compatibility defines for these? - TIMER: Agree with Andrew's comment about "// Write to bits 63:32 of time +" looks wrong to have the plus in there - GITREF RP2040 offset. Did this actually change?
liamfraser (Migrated from github.com) commented 2026-05-20 10:16:56 -05:00

Has this actually changed location?

Has this actually changed location?
lurch commented 2026-05-20 11:26:41 -05:00 (Migrated from github.com)
  • RSM renamed to PSM in powman regs. May want backwards compatibility defines for these?

I suggested that in one of my earlier (now hidden) comments. Graham said "this is a lot of clutter for the probably no one who has used them".

> * RSM renamed to PSM in powman regs. May want backwards compatibility defines for these? I suggested that in one of my earlier (now hidden) comments. Graham said "this is a lot of clutter for the probably no one who has used them".
matiasilva (Migrated from github.com) reviewed 2026-06-22 10:59:37 -05:00
matiasilva (Migrated from github.com) commented 2026-06-22 10:59:37 -05:00

No, but I believe it was incorrectly set before

No, but I believe it was incorrectly set before
kilograham commented 2026-06-30 17:37:58 -05:00 (Migrated from github.com)

closed in favor of #3050 but i think its probably worth re-reviewing that with regards to comments here

closed in favor of #3050 but i think its probably worth re-reviewing that with regards to comments here
lurch (Migrated from github.com) reviewed 2026-07-01 07:30:50 -05:00
@ -402,7 +402,7 @@ typedef struct {
// 0x00000002 [1] NSP (0) If 1, XOSC can be accessed from a Non-secure, Privileged context
lurch (Migrated from github.com) commented 2026-07-01 07:30:50 -05:00

Fixed in #3050

Fixed in #3050
lurch (Migrated from github.com) reviewed 2026-07-01 07:33:11 -05:00
@ -29,2 +28,3 @@
// 0xffffffff [31:0] TIMEHW (0x00000000)
// Write to bits 63:32 of time +
// 0xffffffff [31:0] TIMEHW (0x00000000)
io_wo_32 timehw;
lurch (Migrated from github.com) commented 2026-07-01 07:33:11 -05:00

Fixed in #3050

Fixed in #3050
lurch commented 2026-07-01 07:38:38 -05:00 (Migrated from github.com)

re-reviewing that with regards to comments here

Done 👍

> re-reviewing that with regards to comments here Done :+1:

Pull request closed

Sign in to join this conversation.
No reviewers
No milestone
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
gh-raspberrypi/pico-sdk!2905
No description provided.