Fix AliM1543C sector calculation and read race - #117
Merged
Merged
Conversation
Next sector needs to be data size divided by and not multiplied by sector size
This register returned a cached value (alt_status) that was only updated at specific points via UPDATE_ALT_STATUS(). When the controller thread completed a read command and set busy=false, drq=true, the alt_status still showed the old busy=true. The SRM would poll, see busy, time out, and report "failed to send Read". Compute alt_status live from the current status flags instead of returning the stale cached copy.
ostrich
pushed a commit
to ostrich/axpbox
that referenced
this pull request
Apr 17, 2026
Fix AliM1543C sector calculation and read race
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.
Next sector needs to be data size divided by and not multiplied by sector size. This got it to work some time, but there was also a race for status (2nd commit).
This fixes #115 (I verified. Boot failed with the error mentioned and succeeds after fix)
and potentially these as well (not verified)