Datasheet

Table Of Contents
Appendix B: Errata
Hardware blocks are listed alphabetically. Errata are listed numerically under the relevant block.
Bootrom
RP2040-E9
Reference
RP2040-E9
Summary
ROM bootloader cannot boot directly into XIP cache-as-SRAM
Description
The XIP cache can be used as an additional 16 kB SRAM bank when XIP caching is disabled (Section
2.6.3.1). The UF2 bootloader supports RAM-only UF2 binaries, which it loads directly into memory, and
enters via a watchdog reboot. A single UF2 binary can initialise both the XIP cache contents and main
system memory, and the cache is disabled by the bootloader, so that cache contents be written.
However, the watchdog reset re-enables the cache, so booting directly into the cache-as-SRAM alias
causes an immediate bus fault. The cache contents are preserved, but can not be accessed immediately
post-boot.
Workaround
Add code in main SRAM to re-disable XIP caching before accessing the cache-as-SRAM alias. When
entering a RAM-only UF2 binary, the bootloader selects the lowest loaded address in either main SRAM or
cache-as-SRAM as the entry point, preferring main SRAM if both are loaded.
Additionally, if the 0x15… segment is written immediately post-boot, a dummy read of the FLUSH register
is required, so that no cache-as-SRAM writes take place during the tag memory flush triggered by the
watchdog (see Section 2.6.3.2).
Affects
RP2040B0, RP2040B1
Fixed by
Documentation
Clocks
RP2040-E7
Reference
RP2040-E7
Summary
ROSC and XOSC COUNT registers are unreliable
Description
The ROSC and XOSC COUNT registers are intended to be used in the configuration of components like PHYs
and PLLs where microsecond scale delays are required and NOP loops are inadequate because the
clk_sys frequency is variable. However due to a synchronisation issue the ROSC:COUNT and
XOSC:COUNT registers are unreliable.
Workaround
Do not use ROSC:COUNT or XOSC:COUNT
Affects
RP2040B0, RP2040B1
Fixed by
Not fixed, do not use. These registers are not used by the C SDK.
RP2040 Datasheet
Bootrom 641