libdvi: halt in RAM instead of flash-resident panic() in DMA IRQ#1
Closed
mikeysklar wants to merge 1 commit into
Closed
libdvi: halt in RAM instead of flash-resident panic() in DMA IRQ#1mikeysklar wants to merge 1 commit into
mikeysklar wants to merge 1 commit into
Conversation
The "TMDS free queue full" error path called panic(), which lives in flash. The DVI IRQ handler runs on a core that may have flash access disabled (CircuitPython locks it out with an MPU region), so the panic would hard fault on the first instruction fetch and never print. Spin in RAM instead, matching the existing hang-on-bug idiom in this code. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Author
|
Withdrawing per review discussion on adafruit/circuitpython#11115: RAM-only core1 is a CircuitPython requirement, so it'll be handled on the CircuitPython side by placing panic() itself in RAM via the linker script. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The "TMDS free queue full" error path called
panic(), which lives in flash. The DVI IRQ handler runs on a core that may have flash access disabled (CircuitPython locks it out with an MPU region afterdvi_start), so the panic would hard fault on the first instruction fetch and never print anything. Spin in RAM instead, matching the existing hang-on-bug idiom incore1_main.Found by the core1 flash-call checker from adafruit/circuitpython#11115.
🤖 Generated with Claude Code