Skip to content
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

EmbeddedPkg/Universal/MmcDxe: Reorder multi-block abort sequence #10681

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

mariam-elshakfy-linaro
Copy link

Description

This change moves multi-block stop transmission scenario (CMD12) before getting card status (CMD13).

This follows the abort sequence mentioned in:
SD Host Controller Simplified Specification Version 4.20, Section 3.8.1 Abort Command Sequence

Additionally, make use of MmcStopTransmission to remove duplicate code.

  • Breaking change?
    • Breaking change - Does this PR cause a break in build or boot behavior?
    • Examples: Does it add a new library class or move a module to a different repo.
  • Impacts security?
    • Security - Does this PR have a direct security impact?
    • Examples: Crypto algorithm change or buffer overflow fix.
  • Includes tests?
    • Tests - Does this PR include any explicit test code?
    • Examples: Unit tests or integration tests.

How This Was Tested

Tested on KV260 (new EDK-II port)

Integration Instructions

N/A

This change moves multi-block stop transmission scenario
(CMD12) before getting card status (CMD13).

This follows the abort sequence mentioned in:
SD Host Controller Simplified Specification Version 4.20,
Section 3.8.1 Abort Command Sequence

Additionally, make use of MmcStopTransmission to remove duplicate
code.

Signed-off-by: Mariam Elshakfy <[email protected]>
@mariam-elshakfy-linaro mariam-elshakfy-linaro marked this pull request as ready for review January 27, 2025 15:26
@leiflindholm
Copy link
Member

Word of warning: this driver is not well supported. None of the EmbeddedPkg maintainers are actively using it or very familiar with the interface.

Ultimately, this should be replaced by Bus/Pci/SdMmcPciHcDxe/ used with NonDiscoverablePciDeviceDxe.

Until then, unless someone else volunteers to take on maintainership of this driver, I'm intending to flag it as "unmaintained".

@mariam-elshakfy-linaro
Copy link
Author

Word of warning: this driver is not well supported. None of the EmbeddedPkg maintainers are actively using it or very familiar with the interface.

Ultimately, this should be replaced by Bus/Pci/SdMmcPciHcDxe/ used with NonDiscoverablePciDeviceDxe.

Until then, unless someone else volunteers to take on maintainership of this driver, I'm intending to flag it as "unmaintained".

I was wandering about that actually. Does EDK-2 have any list with what drivers are maintained (or the deprecated ones)?

@leiflindholm
Copy link
Member

Until then, unless someone else volunteers to take on maintainership of this driver, I'm intending to flag it as "unmaintained".

I was wandering about that actually. Does EDK-2 have any list with what drivers are maintained (or the deprecated ones)?

We have the syntax for it in https://github.com/tianocore/edk2/blob/master/Maintainers.txt#L31, but generally the feeling is that something that is unmaintained for more than a very short period should be dropped/archived.

@michalsimek
Copy link

Until then, unless someone else volunteers to take on maintainership of this driver, I'm intending to flag it as "unmaintained".

I was wandering about that actually. Does EDK-2 have any list with what drivers are maintained (or the deprecated ones)?

We have the syntax for it in https://github.com/tianocore/edk2/blob/master/Maintainers.txt#L31, but generally the feeling is that something that is unmaintained for more than a very short period should be dropped/archived.

The package is used in edk2-platforms by 3 more boards:

Platform/ARM/VExpressPkg/ArmVExpress-FVP-AArch64.dsc:345: EmbeddedPkg/Universal/MmcDxe/MmcDxe.inf
Platform/ARM/VExpressPkg/ArmVExpress-FVP-AArch64.fdf:143: INF EmbeddedPkg/Universal/MmcDxe/MmcDxe.inf
Platform/BeagleBoard/BeagleBoardPkg/BeagleBoardPkg.dsc:414: EmbeddedPkg/Universal/MmcDxe/MmcDxe.inf
Platform/BeagleBoard/BeagleBoardPkg/BeagleBoardPkg.fdf:122: INF EmbeddedPkg/Universal/MmcDxe/MmcDxe.inf
Platform/Hisilicon/HiKey/HiKey.dsc:224: EmbeddedPkg/Universal/MmcDxe/MmcDxe.inf
Platform/Hisilicon/HiKey/HiKey.fdf:130: INF EmbeddedPkg/Universal/MmcDxe/MmcDxe.inf

Are you saying that all of them should be converted to Bus/Pci/SdMmcPciHcDxe/?

@leiflindholm
Copy link
Member

The package is used in edk2-platforms by 3 more boards:

Platform/ARM/VExpressPkg/ArmVExpress-FVP-AArch64.dsc:345: EmbeddedPkg/Universal/MmcDxe/MmcDxe.inf Platform/ARM/VExpressPkg/ArmVExpress-FVP-AArch64.fdf:143: INF EmbeddedPkg/Universal/MmcDxe/MmcDxe.inf Platform/BeagleBoard/BeagleBoardPkg/BeagleBoardPkg.dsc:414: EmbeddedPkg/Universal/MmcDxe/MmcDxe.inf Platform/BeagleBoard/BeagleBoardPkg/BeagleBoardPkg.fdf:122: INF EmbeddedPkg/Universal/MmcDxe/MmcDxe.inf Platform/Hisilicon/HiKey/HiKey.dsc:224: EmbeddedPkg/Universal/MmcDxe/MmcDxe.inf Platform/Hisilicon/HiKey/HiKey.fdf:130: INF EmbeddedPkg/Universal/MmcDxe/MmcDxe.inf

Are you saying that all of them should be converted to Bus/Pci/SdMmcPciHcDxe/?

At least the latter two are candidates for deletion/archiving. @samimujawar is ArmVExpress-FVP considered actively maintained by Arm?

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.

3 participants