Skip to content

Backup register features & SPIM timeout fixes#841

Merged
bunnie merged 8 commits intodevfrom
backup-regs
Mar 30, 2026
Merged

Backup register features & SPIM timeout fixes#841
bunnie merged 8 commits intodevfrom
backup-regs

Conversation

@bunnie
Copy link
Copy Markdown
Member

@bunnie bunnie commented Mar 30, 2026

Add:

  • ephemeral key interface to keystore
  • warm boot flag to keystore

Fix:

  • SPIM timeout issue on displays
  • Fix by propagating timeout up the stack & adding OS-level handler
  • in case of timeout, reset the block and re-initialize

Suspected root cause is a similar issue to the backpressure bug that affects the SPIM block when talking to SPI flash, but manifesting in a different form. I checked and this is using the backpressure flag, but backpressure only affects the Rx path. I seem to remember that only affected the Rx-side, but...clearly there is something else going on.

bunnie added 8 commits March 29, 2026 18:04
- adds API for retrieving & setting the ephemeral key. This is
a key that is erased by a power-on reset, but is preserved between
deep-sleep sleep/wake cycles. It is intended for securing a lock
PIN, and can be up to 192 bits long.

- adds API for checking the warm boot flags, which are also stored
in the backup registers.
occassionally the hardware block just goes unresponsive. the
'fix' is to reset it, and then re-initialize the interface.

I suspect this has to do with the UDMA silently dropping transactions
when there's too much contention on the bus.
@bunnie bunnie merged commit 8933899 into dev Mar 30, 2026
11 checks passed
@bunnie bunnie deleted the backup-regs branch March 30, 2026 19:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant