Send release power-down (0xAB) instruction, to revive flash, that might be in power-down state #2130
No reviewers
Labels
No labels
bazel
bluetooth
board settings
boot_stage2
bug
build
c++
can't reproduce
clang
clib-interface
cmsis
code cleanliness
code size
compiler version issues
cyw43_driver
debug
discussion
documentation
duplicate
dynamic_clock
elf2uf2
enhancement
errata
filesystem
flash layout
floating point
FreeRTOS
hardware_adc
hardware_claim
hardware_clocks
hardware_dma
hardware_exception
hardware_flash
hardware_gpio
hardware_i2c
hardware_irq
hardware_pio
hardware_pwm
hardware_rcp
hardware_rtc
hardware_spi
hardware_sync
hardware_uart
hardware_vreg
hardware_watchdog
hardware_xosc
help wanted
host
IAR
installation
invalid
linker scripts
lto
lwip
mbedtls
missing API
needs reporter detail
networking
newlib
newlib-multicore
non-c
non-cmake
non-gcc
openocd
orphan PR
OS integration
pico_async_context
pico_base
pico_binary_info
pico_flash
picolibc
pico_lwip
pico_malloc
pico_multicore
pico_printf
pico_runtime
pico_stdio
pico_stdio_usb
pico_sync
pico_time
pico_util
pioasm
port
question
review
review2
rtos interop
runtime init
static library
svd
test
tinyusb
vscode
wifi integration
wontfix
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
gh-raspberrypi/pico-sdk!2130
Loading…
Reference in a new issue
No description provided.
Delete branch "matsobdev/master"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
It fixes #2111 of RP2350, by adding
0xABinstruction before communicating with flash device, ex. when restarting from flash bypowman. Flash might be put in power-down state before and will only respond to0xAB.Should this be gated behind a
#ifdefsetting, since I guess this will only be needed by executables that have explicitly powered-down the flash?Sounds like a right direction. Is there a naming scheme to follow?
Naming scheme is generally
PICO_SOME_THING- see section 5.1 of https://datasheets.raspberrypi.com/pico/raspberry-pi-pico-c-sdk.pdf for a big list of examples 🙂It's probably fine to just add this
#definedirectly (to the end of the#define CMD_...lines below), without wrapping it in an#ifguard?I've updated it, extended to RP2040, but now it is not picking up
PICO_BOOT_STAGE2_FLASH_RELEASE_POWERDOWN:D I'll work on it.I'd agree. I guess, it will be safe.
@ -11,6 +11,11 @@Given that this is a boolean value, perhaps the "enable/disable" is implicit, and so "Release the flash device from power-down state during boot stage 2" would be an easier-to-read description?
Now I know, why
PICO_BOOT_STAGE2_FLASH_RELEASE_POWERDOWNwas unreachable. Since there are two artefacts (if I wrap my head around it right way) built and boot stage 2 is the one of them, then it requires its owntarget_compile_definitions:Maybe very beginning of chapter 5. of https://datasheets.raspberrypi.com/pico/raspberry-pi-pico-c-sdk.pdf requires then a word about
bs2_default?PS.
boot2_at25sf128aandboot2_w25q080.Sof RP2040 are now 252 bytes in size.@ -11,6 +11,11 @@I agree.
It doesn't have much documentation yet, but
PICO_EMBED_XIP_SETUPis also mentioned in a few other issues and PRs.Yes,
PICO_EMBED_XIP_SETUPis a key to get boot stage 2 on RP2350, where it might benefit the most from that 10 uA, but I was thinking about:since
PICO_BOOT_STAGE2_FLASH_RELEASE_POWERDOWNwill be accessible only, whentarget(ing)_compile_definitionsofbs2_default. Rootmy_program, for basicly user's code won't reach that andPICO_BOOT_STAGE2_FLASH_RELEASE_POWERDOWNis useless then.View command line instructions
Manual merge helper
Use this merge commit message when completing the merge manually.
Checkout
From your project repository, check out a new branch and test the changes.Merge
Merge the changes and update on Forgejo.Warning: The "Autodetect manual merge" setting is not enabled for this repository, you will have to mark this pull request as manually merged afterwards.