-
Notifications
You must be signed in to change notification settings - Fork 5.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
CQE improvements for 6.6 #6591
Merged
Merged
CQE improvements for 6.6 #6591
+45
−10
Conversation
This file contains 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
We want to be able to control the interop surface exposed by Command Queueing across bcm2712 products to a more restrictive default, with selectable disable and permissive behaviour. Changing the bool to a cell lets it relay a tristate value. Also add the override parameter to CM5 as CM5-lite may interface with arbitrary eMMC or SD cards. Signed-off-by: Jonathan Bell <[email protected]>
We have found that many SD cards in the field, even of the same make and model, have latent bugs in their CQ implementation. Some product lines have fewer bugs with newer manufacture dates, but this is not a guarantee that a particular card is at a particular firmware revision level. Many of these bugs lead to card hangs or data corruption. Add a quirk to mark a card as having a tested, working CQ implementation and ignore the capability if absent. Signed-off-by: Jonathan Bell <[email protected]>
pelwell
approved these changes
Jan 8, 2025
I will need to test on CM5 hardware, that means finding lite and eMMC samples... |
These cards have a known-good CQ implementation and are based on a Longsys product. Add the MANFID for Longsys SD, and the particular CID details for the Pi card. Signed-off-by: Jonathan Bell <[email protected]>
Implement a tristate-style option for "supports-cqe". If the property is absent or zero, disable CQ completely. For 1, enable CQ unconditionally for eMMC cards, and known-good SD cards. For 2, enable for eMMC cards, and all SD cards that are not known-bad. The sdhci-brcmstb driver needs to know about the tristate as its probe sequence would otherwise override a disable in mmc_of_parse(). Signed-off-by: Jonathan Bell <[email protected]>
P33M
force-pushed
the
sd_cqe_allowlist_6.6
branch
from
January 9, 2025 15:58
823042c
to
b99aad1
Compare
Testing did reveal that the 32GB cards have a lower CID hwrev/fwrev than the 64GB cards. Which is quite annoying, as this CID is shared by the Amazon Basics cards that don't implement CQ - however, allowing these is benign as they get filtered by the mandatory features list. |
Merged
popcornmix
added a commit
to raspberrypi/firmware
that referenced
this pull request
Jan 10, 2025
kernel: CQE improvements for 6.6 See: raspberrypi/linux#6591 kernel: Handle PIO probe failures (i.e. old EEPROMs) See: raspberrypi/linux#6599
popcornmix
added a commit
to raspberrypi/rpi-firmware
that referenced
this pull request
Jan 10, 2025
kernel: CQE improvements for 6.6 See: raspberrypi/linux#6591 kernel: Handle PIO probe failures (i.e. old EEPROMs) See: raspberrypi/linux#6599
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 decision has been taken to soft-disable CQ on SD cards. Don't enable CQ unless there's a matching CID with a proven implementation.
To aid testing, and additionally let CM5 users control CQ, override the upstream boolean
supports-cqe
to a one-cell property which tristates probe behaviour, and add/modify the sd_cqe dtparam to suit.The slight wart is the wonky way in which sdhci-brcmstb parts out the platform support from MMC/SD layer probe, which means it needs to comprehend the downstream DT modification.