MdeModulePkg/Bus/Pci/SdMmcPciHcDxe/SdMmcPciHcDxe.c | 35 ++++++- MdeModulePkg/Bus/Pci/SdMmcPciHcDxe/SdMmcPciHcDxe.h | 36 ++++++++ MdeModulePkg/Bus/Pci/SdMmcPciHcDxe/SdMmcPciHcDxe.inf | 2 + MdeModulePkg/Bus/Pci/SdMmcPciHcDxe/SdMmcPciHci.c | 95 +++++++++++++++++-- MdeModulePkg/Bus/Pci/SdMmcPciHcDxe/SdMmcPciHci.h | 35 ------- MdeModulePkg/Include/Protocol/SdMmcOverride.h | 97 ++++++++++++++++++++ MdeModulePkg/MdeModulePkg.dec | 3 + 7 files changed, 257 insertions(+), 46 deletions(-) create mode 100644 MdeModulePkg/Include/Protocol/SdMmcOverride.h
Many SDHCI implementations exist that are almost spec complicant, and could be driven by the generic SD/MMC host controller driver except for some minimal necessary init time tweaks. Adding such tweaks to the generic driver is undesirable. On the other hand, forking the driver for every platform that has such a SDHCI controller is problematic when it comes to upstreaming and ongoing maintenance (which is arguably the point of upstreaming in the first place). So these patches propose a workaround that is minimally invasive on the EDK2 side, but gives platforms a lot of leeway when it comes to applying SDHCI quirks. Changes since v3: - remove PassThru argument from protocol members: it is unclear whether the protocol is available when the override protocol is invoked, and my example use case does not need it - replace incorrect HandleProtocol with LocateProtocol, given that the override protocol is now a singleton instance - merge notifier calls into SdMmcHcReset() and SdMmcHcInitHost (), this required changing the prototype to take a SD_MMC_HC_PRIVATE_DATA* argument and so the prototypes no longer belong in SdMmcPciHci.h and have been moved to SdMmcPciHcDxe.h - use VOID* type for capability not UINT64* since we don't know its alignment Changes since v2: - use a singleton instance of the SD/MMC protocol rather than one per controller; this is needed to support 'reconnect -r', as pointed out by Ray - use EDKII prefixes for all types defined by the protocol - replace 'hook' with 'notify', and tweak some other identifiers - add missing function comment headers for factored out functions Changes since RFC/v1: - add EFI_SD_MMC_PASS_THRU_PROTOCOL* member to override methods - use UINT64* not VOID* to pass capability structure (which is always 64 bits in size) Ard Biesheuvel (2): MdeModulePkg: introduce SD/MMC override protocol MdeModulePkg/SdMmcPciHcDxe: allow HC capabilities to be overridden MdeModulePkg/Bus/Pci/SdMmcPciHcDxe/SdMmcPciHcDxe.c | 35 ++++++- MdeModulePkg/Bus/Pci/SdMmcPciHcDxe/SdMmcPciHcDxe.h | 36 ++++++++ MdeModulePkg/Bus/Pci/SdMmcPciHcDxe/SdMmcPciHcDxe.inf | 2 + MdeModulePkg/Bus/Pci/SdMmcPciHcDxe/SdMmcPciHci.c | 95 +++++++++++++++++-- MdeModulePkg/Bus/Pci/SdMmcPciHcDxe/SdMmcPciHci.h | 35 ------- MdeModulePkg/Include/Protocol/SdMmcOverride.h | 97 ++++++++++++++++++++ MdeModulePkg/MdeModulePkg.dec | 3 + 7 files changed, 257 insertions(+), 46 deletions(-) create mode 100644 MdeModulePkg/Include/Protocol/SdMmcOverride.h -- 2.11.0 _______________________________________________ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel
On 7 December 2017 at 22:43, Ard Biesheuvel <ard.biesheuvel@linaro.org> wrote: > Many SDHCI implementations exist that are almost spec complicant, and > could be driven by the generic SD/MMC host controller driver except > for some minimal necessary init time tweaks. > > Adding such tweaks to the generic driver is undesirable. On the other > hand, forking the driver for every platform that has such a SDHCI > controller is problematic when it comes to upstreaming and ongoing > maintenance (which is arguably the point of upstreaming in the first > place). > > So these patches propose a workaround that is minimally invasive on the > EDK2 side, but gives platforms a lot of leeway when it comes to applying > SDHCI quirks. > > Changes since v3: > - remove PassThru argument from protocol members: it is unclear whether the > protocol is available when the override protocol is invoked, and my > example use case does not need it > - replace incorrect HandleProtocol with LocateProtocol, given that the override > protocol is now a singleton instance > - merge notifier calls into SdMmcHcReset() and SdMmcHcInitHost (), this > required changing the prototype to take a SD_MMC_HC_PRIVATE_DATA* argument > and so the prototypes no longer belong in SdMmcPciHci.h and have been moved > to SdMmcPciHcDxe.h > - use VOID* type for capability not UINT64* since we don't know its alignment > > Changes since v2: > - use a singleton instance of the SD/MMC protocol rather than one per > controller; this is needed to support 'reconnect -r', as pointed out > by Ray > - use EDKII prefixes for all types defined by the protocol > - replace 'hook' with 'notify', and tweak some other identifiers > - add missing function comment headers for factored out functions > > Changes since RFC/v1: > - add EFI_SD_MMC_PASS_THRU_PROTOCOL* member to override methods > - use UINT64* not VOID* to pass capability structure (which is always 64 bits > in size) > > Ard Biesheuvel (2): > MdeModulePkg: introduce SD/MMC override protocol > MdeModulePkg/SdMmcPciHcDxe: allow HC capabilities to be overridden > OK, so I did send my v4 but I couldn't find it in my mail folders :-) Comments anyone? _______________________________________________ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel
Hi Ard, > -----Original Message----- > From: edk2-devel [mailto:edk2-devel-bounces@lists.01.org] On Behalf Of Ard > Biesheuvel > Sent: Tuesday, December 12, 2017 3:00 PM > To: edk2-devel@lists.01.org > Cc: Ni, Ruiyu; Tian, Feng; Ard Biesheuvel; Wu, Hao A; Leif Lindholm; Kinney, > Michael D; Zeng, Star > Subject: Re: [edk2] [PATCH v4 0/2] quirks handling for SDHCI controllers > > On 7 December 2017 at 22:43, Ard Biesheuvel <ard.biesheuvel@linaro.org> > wrote: > > Many SDHCI implementations exist that are almost spec complicant, and > > could be driven by the generic SD/MMC host controller driver except > > for some minimal necessary init time tweaks. > > > > Adding such tweaks to the generic driver is undesirable. On the other > > hand, forking the driver for every platform that has such a SDHCI > > controller is problematic when it comes to upstreaming and ongoing > > maintenance (which is arguably the point of upstreaming in the first > > place). > > > > So these patches propose a workaround that is minimally invasive on the > > EDK2 side, but gives platforms a lot of leeway when it comes to applying > > SDHCI quirks. > > > > Changes since v3: > > - remove PassThru argument from protocol members: it is unclear whether the > > protocol is available when the override protocol is invoked, and my > > example use case does not need it > > - replace incorrect HandleProtocol with LocateProtocol, given that the > override > > protocol is now a singleton instance > > - merge notifier calls into SdMmcHcReset() and SdMmcHcInitHost (), this > > required changing the prototype to take a SD_MMC_HC_PRIVATE_DATA* > argument > > and so the prototypes no longer belong in SdMmcPciHci.h and have been > moved > > to SdMmcPciHcDxe.h > > - use VOID* type for capability not UINT64* since we don't know its > alignment > > > > Changes since v2: > > - use a singleton instance of the SD/MMC protocol rather than one per > > controller; this is needed to support 'reconnect -r', as pointed out > > by Ray > > - use EDKII prefixes for all types defined by the protocol > > - replace 'hook' with 'notify', and tweak some other identifiers > > - add missing function comment headers for factored out functions > > > > Changes since RFC/v1: > > - add EFI_SD_MMC_PASS_THRU_PROTOCOL* member to override methods > > - use UINT64* not VOID* to pass capability structure (which is always 64 bits > > in size) > > > > Ard Biesheuvel (2): > > MdeModulePkg: introduce SD/MMC override protocol > > MdeModulePkg/SdMmcPciHcDxe: allow HC capabilities to be overridden > > > > OK, so I did send my v4 but I couldn't find it in my mail folders :-) > > Comments anyone? I still need some time to evaluate whether the current proposed override protocol can be utilized in our using scenario. Will let you know the feedbacks as soon as I finish the evaluation. Really sorry for the delay. Best Regards, Hao Wu > _______________________________________________ > edk2-devel mailing list > edk2-devel@lists.01.org > https://lists.01.org/mailman/listinfo/edk2-devel _______________________________________________ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel
On 12 December 2017 at 10:56, Wu, Hao A <hao.a.wu@intel.com> wrote: > Hi Ard, > >> -----Original Message----- >> From: edk2-devel [mailto:edk2-devel-bounces@lists.01.org] On Behalf Of Ard >> Biesheuvel >> Sent: Tuesday, December 12, 2017 3:00 PM >> To: edk2-devel@lists.01.org >> Cc: Ni, Ruiyu; Tian, Feng; Ard Biesheuvel; Wu, Hao A; Leif Lindholm; Kinney, >> Michael D; Zeng, Star >> Subject: Re: [edk2] [PATCH v4 0/2] quirks handling for SDHCI controllers >> >> On 7 December 2017 at 22:43, Ard Biesheuvel <ard.biesheuvel@linaro.org> >> wrote: >> > Many SDHCI implementations exist that are almost spec complicant, and >> > could be driven by the generic SD/MMC host controller driver except >> > for some minimal necessary init time tweaks. >> > >> > Adding such tweaks to the generic driver is undesirable. On the other >> > hand, forking the driver for every platform that has such a SDHCI >> > controller is problematic when it comes to upstreaming and ongoing >> > maintenance (which is arguably the point of upstreaming in the first >> > place). >> > >> > So these patches propose a workaround that is minimally invasive on the >> > EDK2 side, but gives platforms a lot of leeway when it comes to applying >> > SDHCI quirks. >> > >> > Changes since v3: >> > - remove PassThru argument from protocol members: it is unclear whether the >> > protocol is available when the override protocol is invoked, and my >> > example use case does not need it >> > - replace incorrect HandleProtocol with LocateProtocol, given that the >> override >> > protocol is now a singleton instance >> > - merge notifier calls into SdMmcHcReset() and SdMmcHcInitHost (), this >> > required changing the prototype to take a SD_MMC_HC_PRIVATE_DATA* >> argument >> > and so the prototypes no longer belong in SdMmcPciHci.h and have been >> moved >> > to SdMmcPciHcDxe.h >> > - use VOID* type for capability not UINT64* since we don't know its >> alignment >> > >> > Changes since v2: >> > - use a singleton instance of the SD/MMC protocol rather than one per >> > controller; this is needed to support 'reconnect -r', as pointed out >> > by Ray >> > - use EDKII prefixes for all types defined by the protocol >> > - replace 'hook' with 'notify', and tweak some other identifiers >> > - add missing function comment headers for factored out functions >> > >> > Changes since RFC/v1: >> > - add EFI_SD_MMC_PASS_THRU_PROTOCOL* member to override methods >> > - use UINT64* not VOID* to pass capability structure (which is always 64 bits >> > in size) >> > >> > Ard Biesheuvel (2): >> > MdeModulePkg: introduce SD/MMC override protocol >> > MdeModulePkg/SdMmcPciHcDxe: allow HC capabilities to be overridden >> > >> >> OK, so I did send my v4 but I couldn't find it in my mail folders :-) >> >> Comments anyone? > > I still need some time to evaluate whether the current proposed override > protocol can be utilized in our using scenario. > > Will let you know the feedbacks as soon as I finish the evaluation. > > Really sorry for the delay. > No problem at all. Just keep me informed. Thanks, Ard. _______________________________________________ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel
On 12 December 2017 at 10:56, Wu, Hao A <hao.a.wu@intel.com> wrote: > Hi Ard, > >> -----Original Message----- >> From: edk2-devel [mailto:edk2-devel-bounces@lists.01.org] On Behalf Of Ard >> Biesheuvel >> Sent: Tuesday, December 12, 2017 3:00 PM >> To: edk2-devel@lists.01.org >> Cc: Ni, Ruiyu; Tian, Feng; Ard Biesheuvel; Wu, Hao A; Leif Lindholm; Kinney, >> Michael D; Zeng, Star >> Subject: Re: [edk2] [PATCH v4 0/2] quirks handling for SDHCI controllers >> >> On 7 December 2017 at 22:43, Ard Biesheuvel <ard.biesheuvel@linaro.org> >> wrote: >> > Many SDHCI implementations exist that are almost spec complicant, and >> > could be driven by the generic SD/MMC host controller driver except >> > for some minimal necessary init time tweaks. >> > >> > Adding such tweaks to the generic driver is undesirable. On the other >> > hand, forking the driver for every platform that has such a SDHCI >> > controller is problematic when it comes to upstreaming and ongoing >> > maintenance (which is arguably the point of upstreaming in the first >> > place). >> > >> > So these patches propose a workaround that is minimally invasive on the >> > EDK2 side, but gives platforms a lot of leeway when it comes to applying >> > SDHCI quirks. >> > >> > Changes since v3: >> > - remove PassThru argument from protocol members: it is unclear whether the >> > protocol is available when the override protocol is invoked, and my >> > example use case does not need it >> > - replace incorrect HandleProtocol with LocateProtocol, given that the >> override >> > protocol is now a singleton instance >> > - merge notifier calls into SdMmcHcReset() and SdMmcHcInitHost (), this >> > required changing the prototype to take a SD_MMC_HC_PRIVATE_DATA* >> argument >> > and so the prototypes no longer belong in SdMmcPciHci.h and have been >> moved >> > to SdMmcPciHcDxe.h >> > - use VOID* type for capability not UINT64* since we don't know its >> alignment >> > >> > Changes since v2: >> > - use a singleton instance of the SD/MMC protocol rather than one per >> > controller; this is needed to support 'reconnect -r', as pointed out >> > by Ray >> > - use EDKII prefixes for all types defined by the protocol >> > - replace 'hook' with 'notify', and tweak some other identifiers >> > - add missing function comment headers for factored out functions >> > >> > Changes since RFC/v1: >> > - add EFI_SD_MMC_PASS_THRU_PROTOCOL* member to override methods >> > - use UINT64* not VOID* to pass capability structure (which is always 64 bits >> > in size) >> > >> > Ard Biesheuvel (2): >> > MdeModulePkg: introduce SD/MMC override protocol >> > MdeModulePkg/SdMmcPciHcDxe: allow HC capabilities to be overridden >> > >> >> OK, so I did send my v4 but I couldn't find it in my mail folders :-) >> >> Comments anyone? > > I still need some time to evaluate whether the current proposed override > protocol can be utilized in our using scenario. > > Will let you know the feedbacks as soon as I finish the evaluation. > > Really sorry for the delay. > Any news on this? _______________________________________________ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel
One minor comment, please help to remove the line (around line 1067): @param[in] Capability The capability of the slot. within function description comment for SdMmcHcInitHost() in file: MdeModulePkg\Bus\Pci\SdMmcPciHcDxe\SdMmcPciHci.c Other than that, the series is good to me: Reviewed-by: Hao Wu <hao.a.wu@intel.com> Really sorry for the delay. Best Regards, Hao Wu > -----Original Message----- > From: Ard Biesheuvel [mailto:ard.biesheuvel@linaro.org] > Sent: Friday, December 08, 2017 6:43 AM > To: edk2-devel@lists.01.org > Cc: leif.lindholm@linaro.org; Kinney, Michael D; Zeng, Star; Tian, Feng; Ni, > Ruiyu; Wu, Hao A; Ard Biesheuvel > Subject: [PATCH v4 0/2] quirks handling for SDHCI controllers > > Many SDHCI implementations exist that are almost spec complicant, and > could be driven by the generic SD/MMC host controller driver except > for some minimal necessary init time tweaks. > > Adding such tweaks to the generic driver is undesirable. On the other > hand, forking the driver for every platform that has such a SDHCI > controller is problematic when it comes to upstreaming and ongoing > maintenance (which is arguably the point of upstreaming in the first > place). > > So these patches propose a workaround that is minimally invasive on the > EDK2 side, but gives platforms a lot of leeway when it comes to applying > SDHCI quirks. > > Changes since v3: > - remove PassThru argument from protocol members: it is unclear whether the > protocol is available when the override protocol is invoked, and my > example use case does not need it > - replace incorrect HandleProtocol with LocateProtocol, given that the override > protocol is now a singleton instance > - merge notifier calls into SdMmcHcReset() and SdMmcHcInitHost (), this > required changing the prototype to take a SD_MMC_HC_PRIVATE_DATA* > argument > and so the prototypes no longer belong in SdMmcPciHci.h and have been > moved > to SdMmcPciHcDxe.h > - use VOID* type for capability not UINT64* since we don't know its alignment > > Changes since v2: > - use a singleton instance of the SD/MMC protocol rather than one per > controller; this is needed to support 'reconnect -r', as pointed out > by Ray > - use EDKII prefixes for all types defined by the protocol > - replace 'hook' with 'notify', and tweak some other identifiers > - add missing function comment headers for factored out functions > > Changes since RFC/v1: > - add EFI_SD_MMC_PASS_THRU_PROTOCOL* member to override methods > - use UINT64* not VOID* to pass capability structure (which is always 64 bits > in size) > > Ard Biesheuvel (2): > MdeModulePkg: introduce SD/MMC override protocol > MdeModulePkg/SdMmcPciHcDxe: allow HC capabilities to be overridden > > MdeModulePkg/Bus/Pci/SdMmcPciHcDxe/SdMmcPciHcDxe.c | 35 ++++++- > MdeModulePkg/Bus/Pci/SdMmcPciHcDxe/SdMmcPciHcDxe.h | 36 ++++++++ > MdeModulePkg/Bus/Pci/SdMmcPciHcDxe/SdMmcPciHcDxe.inf | 2 + > MdeModulePkg/Bus/Pci/SdMmcPciHcDxe/SdMmcPciHci.c | 95 > +++++++++++++++++-- > MdeModulePkg/Bus/Pci/SdMmcPciHcDxe/SdMmcPciHci.h | 35 ------- > MdeModulePkg/Include/Protocol/SdMmcOverride.h | 97 > ++++++++++++++++++++ > MdeModulePkg/MdeModulePkg.dec | 3 + > 7 files changed, 257 insertions(+), 46 deletions(-) > create mode 100644 MdeModulePkg/Include/Protocol/SdMmcOverride.h > > -- > 2.11.0 _______________________________________________ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel
On 29 January 2018 at 05:13, Wu, Hao A <hao.a.wu@intel.com> wrote: > One minor comment, please help to remove the line (around line 1067): > @param[in] Capability The capability of the slot. > > within function description comment for SdMmcHcInitHost() in file: > MdeModulePkg\Bus\Pci\SdMmcPciHcDxe\SdMmcPciHci.c > > Other than that, the series is good to me: > Reviewed-by: Hao Wu <hao.a.wu@intel.com> > Thank you very much! > Really sorry for the delay. > No worries. Star, Ray, any more comments from your side? > >> -----Original Message----- >> From: Ard Biesheuvel [mailto:ard.biesheuvel@linaro.org] >> Sent: Friday, December 08, 2017 6:43 AM >> To: edk2-devel@lists.01.org >> Cc: leif.lindholm@linaro.org; Kinney, Michael D; Zeng, Star; Tian, Feng; Ni, >> Ruiyu; Wu, Hao A; Ard Biesheuvel >> Subject: [PATCH v4 0/2] quirks handling for SDHCI controllers >> >> Many SDHCI implementations exist that are almost spec complicant, and >> could be driven by the generic SD/MMC host controller driver except >> for some minimal necessary init time tweaks. >> >> Adding such tweaks to the generic driver is undesirable. On the other >> hand, forking the driver for every platform that has such a SDHCI >> controller is problematic when it comes to upstreaming and ongoing >> maintenance (which is arguably the point of upstreaming in the first >> place). >> >> So these patches propose a workaround that is minimally invasive on the >> EDK2 side, but gives platforms a lot of leeway when it comes to applying >> SDHCI quirks. >> >> Changes since v3: >> - remove PassThru argument from protocol members: it is unclear whether the >> protocol is available when the override protocol is invoked, and my >> example use case does not need it >> - replace incorrect HandleProtocol with LocateProtocol, given that the override >> protocol is now a singleton instance >> - merge notifier calls into SdMmcHcReset() and SdMmcHcInitHost (), this >> required changing the prototype to take a SD_MMC_HC_PRIVATE_DATA* >> argument >> and so the prototypes no longer belong in SdMmcPciHci.h and have been >> moved >> to SdMmcPciHcDxe.h >> - use VOID* type for capability not UINT64* since we don't know its alignment >> >> Changes since v2: >> - use a singleton instance of the SD/MMC protocol rather than one per >> controller; this is needed to support 'reconnect -r', as pointed out >> by Ray >> - use EDKII prefixes for all types defined by the protocol >> - replace 'hook' with 'notify', and tweak some other identifiers >> - add missing function comment headers for factored out functions >> >> Changes since RFC/v1: >> - add EFI_SD_MMC_PASS_THRU_PROTOCOL* member to override methods >> - use UINT64* not VOID* to pass capability structure (which is always 64 bits >> in size) >> >> Ard Biesheuvel (2): >> MdeModulePkg: introduce SD/MMC override protocol >> MdeModulePkg/SdMmcPciHcDxe: allow HC capabilities to be overridden >> >> MdeModulePkg/Bus/Pci/SdMmcPciHcDxe/SdMmcPciHcDxe.c | 35 ++++++- >> MdeModulePkg/Bus/Pci/SdMmcPciHcDxe/SdMmcPciHcDxe.h | 36 ++++++++ >> MdeModulePkg/Bus/Pci/SdMmcPciHcDxe/SdMmcPciHcDxe.inf | 2 + >> MdeModulePkg/Bus/Pci/SdMmcPciHcDxe/SdMmcPciHci.c | 95 >> +++++++++++++++++-- >> MdeModulePkg/Bus/Pci/SdMmcPciHcDxe/SdMmcPciHci.h | 35 ------- >> MdeModulePkg/Include/Protocol/SdMmcOverride.h | 97 >> ++++++++++++++++++++ >> MdeModulePkg/MdeModulePkg.dec | 3 + >> 7 files changed, 257 insertions(+), 46 deletions(-) >> create mode 100644 MdeModulePkg/Include/Protocol/SdMmcOverride.h >> >> -- >> 2.11.0 > _______________________________________________ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel
Reviewed-by: Star Zeng <star.zeng@intel.com> Thanks Hao's investigation and Ard's contribution. Star -----Original Message----- From: Ard Biesheuvel [mailto:ard.biesheuvel@linaro.org] Sent: Monday, January 29, 2018 4:26 PM To: Wu, Hao A <hao.a.wu@intel.com>; Zeng, Star <star.zeng@intel.com>; Ni, Ruiyu <ruiyu.ni@intel.com> Cc: edk2-devel@lists.01.org; leif.lindholm@linaro.org; Kinney, Michael D <michael.d.kinney@intel.com>; Tian, Feng <feng.tian@intel.com> Subject: Re: [PATCH v4 0/2] quirks handling for SDHCI controllers On 29 January 2018 at 05:13, Wu, Hao A <hao.a.wu@intel.com> wrote: > One minor comment, please help to remove the line (around line 1067): > @param[in] Capability The capability of the slot. > > within function description comment for SdMmcHcInitHost() in file: > MdeModulePkg\Bus\Pci\SdMmcPciHcDxe\SdMmcPciHci.c > > Other than that, the series is good to me: > Reviewed-by: Hao Wu <hao.a.wu@intel.com> > Thank you very much! > Really sorry for the delay. > No worries. Star, Ray, any more comments from your side? > >> -----Original Message----- >> From: Ard Biesheuvel [mailto:ard.biesheuvel@linaro.org] >> Sent: Friday, December 08, 2017 6:43 AM >> To: edk2-devel@lists.01.org >> Cc: leif.lindholm@linaro.org; Kinney, Michael D; Zeng, Star; Tian, >> Feng; Ni, Ruiyu; Wu, Hao A; Ard Biesheuvel >> Subject: [PATCH v4 0/2] quirks handling for SDHCI controllers >> >> Many SDHCI implementations exist that are almost spec complicant, and >> could be driven by the generic SD/MMC host controller driver except >> for some minimal necessary init time tweaks. >> >> Adding such tweaks to the generic driver is undesirable. On the other >> hand, forking the driver for every platform that has such a SDHCI >> controller is problematic when it comes to upstreaming and ongoing >> maintenance (which is arguably the point of upstreaming in the first >> place). >> >> So these patches propose a workaround that is minimally invasive on >> the >> EDK2 side, but gives platforms a lot of leeway when it comes to >> applying SDHCI quirks. >> >> Changes since v3: >> - remove PassThru argument from protocol members: it is unclear whether the >> protocol is available when the override protocol is invoked, and my >> example use case does not need it >> - replace incorrect HandleProtocol with LocateProtocol, given that the override >> protocol is now a singleton instance >> - merge notifier calls into SdMmcHcReset() and SdMmcHcInitHost (), this >> required changing the prototype to take a SD_MMC_HC_PRIVATE_DATA* >> argument >> and so the prototypes no longer belong in SdMmcPciHci.h and have >> been moved >> to SdMmcPciHcDxe.h >> - use VOID* type for capability not UINT64* since we don't know its >> alignment >> >> Changes since v2: >> - use a singleton instance of the SD/MMC protocol rather than one per >> controller; this is needed to support 'reconnect -r', as pointed out >> by Ray >> - use EDKII prefixes for all types defined by the protocol >> - replace 'hook' with 'notify', and tweak some other identifiers >> - add missing function comment headers for factored out functions >> >> Changes since RFC/v1: >> - add EFI_SD_MMC_PASS_THRU_PROTOCOL* member to override methods >> - use UINT64* not VOID* to pass capability structure (which is always 64 bits >> in size) >> >> Ard Biesheuvel (2): >> MdeModulePkg: introduce SD/MMC override protocol >> MdeModulePkg/SdMmcPciHcDxe: allow HC capabilities to be overridden >> >> MdeModulePkg/Bus/Pci/SdMmcPciHcDxe/SdMmcPciHcDxe.c | 35 ++++++- >> MdeModulePkg/Bus/Pci/SdMmcPciHcDxe/SdMmcPciHcDxe.h | 36 ++++++++ >> MdeModulePkg/Bus/Pci/SdMmcPciHcDxe/SdMmcPciHcDxe.inf | 2 + >> MdeModulePkg/Bus/Pci/SdMmcPciHcDxe/SdMmcPciHci.c | 95 >> +++++++++++++++++-- >> MdeModulePkg/Bus/Pci/SdMmcPciHcDxe/SdMmcPciHci.h | 35 ------- >> MdeModulePkg/Include/Protocol/SdMmcOverride.h | 97 >> ++++++++++++++++++++ >> MdeModulePkg/MdeModulePkg.dec | 3 + >> 7 files changed, 257 insertions(+), 46 deletions(-) create mode >> 100644 MdeModulePkg/Include/Protocol/SdMmcOverride.h >> >> -- >> 2.11.0 > _______________________________________________ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel
On 30 January 2018 at 01:24, Zeng, Star <star.zeng@intel.com> wrote: > Reviewed-by: Star Zeng <star.zeng@intel.com> > > Thanks Hao's investigation and Ard's contribution. > Thanks all Pushed as 864701886fc3..b23fc39cd3c3 > > Star > -----Original Message----- > From: Ard Biesheuvel [mailto:ard.biesheuvel@linaro.org] > Sent: Monday, January 29, 2018 4:26 PM > To: Wu, Hao A <hao.a.wu@intel.com>; Zeng, Star <star.zeng@intel.com>; Ni, Ruiyu <ruiyu.ni@intel.com> > Cc: edk2-devel@lists.01.org; leif.lindholm@linaro.org; Kinney, Michael D <michael.d.kinney@intel.com>; Tian, Feng <feng.tian@intel.com> > Subject: Re: [PATCH v4 0/2] quirks handling for SDHCI controllers > > On 29 January 2018 at 05:13, Wu, Hao A <hao.a.wu@intel.com> wrote: >> One minor comment, please help to remove the line (around line 1067): >> @param[in] Capability The capability of the slot. >> >> within function description comment for SdMmcHcInitHost() in file: >> MdeModulePkg\Bus\Pci\SdMmcPciHcDxe\SdMmcPciHci.c >> >> Other than that, the series is good to me: >> Reviewed-by: Hao Wu <hao.a.wu@intel.com> >> > > Thank you very much! > >> Really sorry for the delay. >> > > No worries. Star, Ray, any more comments from your side? > > >> >>> -----Original Message----- >>> From: Ard Biesheuvel [mailto:ard.biesheuvel@linaro.org] >>> Sent: Friday, December 08, 2017 6:43 AM >>> To: edk2-devel@lists.01.org >>> Cc: leif.lindholm@linaro.org; Kinney, Michael D; Zeng, Star; Tian, >>> Feng; Ni, Ruiyu; Wu, Hao A; Ard Biesheuvel >>> Subject: [PATCH v4 0/2] quirks handling for SDHCI controllers >>> >>> Many SDHCI implementations exist that are almost spec complicant, and >>> could be driven by the generic SD/MMC host controller driver except >>> for some minimal necessary init time tweaks. >>> >>> Adding such tweaks to the generic driver is undesirable. On the other >>> hand, forking the driver for every platform that has such a SDHCI >>> controller is problematic when it comes to upstreaming and ongoing >>> maintenance (which is arguably the point of upstreaming in the first >>> place). >>> >>> So these patches propose a workaround that is minimally invasive on >>> the >>> EDK2 side, but gives platforms a lot of leeway when it comes to >>> applying SDHCI quirks. >>> >>> Changes since v3: >>> - remove PassThru argument from protocol members: it is unclear whether the >>> protocol is available when the override protocol is invoked, and my >>> example use case does not need it >>> - replace incorrect HandleProtocol with LocateProtocol, given that the override >>> protocol is now a singleton instance >>> - merge notifier calls into SdMmcHcReset() and SdMmcHcInitHost (), this >>> required changing the prototype to take a SD_MMC_HC_PRIVATE_DATA* >>> argument >>> and so the prototypes no longer belong in SdMmcPciHci.h and have >>> been moved >>> to SdMmcPciHcDxe.h >>> - use VOID* type for capability not UINT64* since we don't know its >>> alignment >>> >>> Changes since v2: >>> - use a singleton instance of the SD/MMC protocol rather than one per >>> controller; this is needed to support 'reconnect -r', as pointed out >>> by Ray >>> - use EDKII prefixes for all types defined by the protocol >>> - replace 'hook' with 'notify', and tweak some other identifiers >>> - add missing function comment headers for factored out functions >>> >>> Changes since RFC/v1: >>> - add EFI_SD_MMC_PASS_THRU_PROTOCOL* member to override methods >>> - use UINT64* not VOID* to pass capability structure (which is always 64 bits >>> in size) >>> >>> Ard Biesheuvel (2): >>> MdeModulePkg: introduce SD/MMC override protocol >>> MdeModulePkg/SdMmcPciHcDxe: allow HC capabilities to be overridden >>> >>> MdeModulePkg/Bus/Pci/SdMmcPciHcDxe/SdMmcPciHcDxe.c | 35 ++++++- >>> MdeModulePkg/Bus/Pci/SdMmcPciHcDxe/SdMmcPciHcDxe.h | 36 ++++++++ >>> MdeModulePkg/Bus/Pci/SdMmcPciHcDxe/SdMmcPciHcDxe.inf | 2 + >>> MdeModulePkg/Bus/Pci/SdMmcPciHcDxe/SdMmcPciHci.c | 95 >>> +++++++++++++++++-- >>> MdeModulePkg/Bus/Pci/SdMmcPciHcDxe/SdMmcPciHci.h | 35 ------- >>> MdeModulePkg/Include/Protocol/SdMmcOverride.h | 97 >>> ++++++++++++++++++++ >>> MdeModulePkg/MdeModulePkg.dec | 3 + >>> 7 files changed, 257 insertions(+), 46 deletions(-) create mode >>> 100644 MdeModulePkg/Include/Protocol/SdMmcOverride.h >>> >>> -- >>> 2.11.0 >> _______________________________________________ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel
Hi, I am using Mmc Driver implemented in " EmbeddedPkg/Universal/MmcDxe/" for my SD/MMC controller and my controller is not on PCI bus. I am a bit confused if i should move to SD implementation available in 'MdeModulePkg\Bus\Pci\SdMmcPciHcDxe". Please suggest. Thanks, Meenakshi > -----Original Message----- > From: edk2-devel [mailto:edk2-devel-bounces@lists.01.org] On Behalf Of > Ard Biesheuvel > Sent: Tuesday, January 30, 2018 3:22 PM > To: Zeng, Star <star.zeng@intel.com> > Cc: Ni, Ruiyu <ruiyu.ni@intel.com>; Tian, Feng <feng.tian@intel.com>; Wu, > Hao A <hao.a.wu@intel.com>; edk2-devel@lists.01.org; > leif.lindholm@linaro.org; Kinney, Michael D <michael.d.kinney@intel.com> > Subject: Re: [edk2] [PATCH v4 0/2] quirks handling for SDHCI controllers > > On 30 January 2018 at 01:24, Zeng, Star <star.zeng@intel.com> wrote: > > Reviewed-by: Star Zeng <star.zeng@intel.com> > > > > Thanks Hao's investigation and Ard's contribution. > > > > Thanks all > > Pushed as 864701886fc3..b23fc39cd3c3 > > > > > Star > > -----Original Message----- > > From: Ard Biesheuvel [mailto:ard.biesheuvel@linaro.org] > > Sent: Monday, January 29, 2018 4:26 PM > > To: Wu, Hao A <hao.a.wu@intel.com>; Zeng, Star <star.zeng@intel.com>; > Ni, Ruiyu <ruiyu.ni@intel.com> > > Cc: edk2-devel@lists.01.org; leif.lindholm@linaro.org; Kinney, Michael D > <michael.d.kinney@intel.com>; Tian, Feng <feng.tian@intel.com> > > Subject: Re: [PATCH v4 0/2] quirks handling for SDHCI controllers > > > > On 29 January 2018 at 05:13, Wu, Hao A <hao.a.wu@intel.com> wrote: > >> One minor comment, please help to remove the line (around line 1067): > >> @param[in] Capability The capability of the slot. > >> > >> within function description comment for SdMmcHcInitHost() in file: > >> MdeModulePkg\Bus\Pci\SdMmcPciHcDxe\SdMmcPciHci.c > >> > >> Other than that, the series is good to me: > >> Reviewed-by: Hao Wu <hao.a.wu@intel.com> > >> > > > > Thank you very much! > > > >> Really sorry for the delay. > >> > > > > No worries. Star, Ray, any more comments from your side? > > > > > >> > >>> -----Original Message----- > >>> From: Ard Biesheuvel [mailto:ard.biesheuvel@linaro.org] > >>> Sent: Friday, December 08, 2017 6:43 AM > >>> To: edk2-devel@lists.01.org > >>> Cc: leif.lindholm@linaro.org; Kinney, Michael D; Zeng, Star; Tian, > >>> Feng; Ni, Ruiyu; Wu, Hao A; Ard Biesheuvel > >>> Subject: [PATCH v4 0/2] quirks handling for SDHCI controllers > >>> > >>> Many SDHCI implementations exist that are almost spec complicant, and > >>> could be driven by the generic SD/MMC host controller driver except > >>> for some minimal necessary init time tweaks. > >>> > >>> Adding such tweaks to the generic driver is undesirable. On the other > >>> hand, forking the driver for every platform that has such a SDHCI > >>> controller is problematic when it comes to upstreaming and ongoing > >>> maintenance (which is arguably the point of upstreaming in the first > >>> place). > >>> > >>> So these patches propose a workaround that is minimally invasive on > >>> the > >>> EDK2 side, but gives platforms a lot of leeway when it comes to > >>> applying SDHCI quirks. > >>> > >>> Changes since v3: > >>> - remove PassThru argument from protocol members: it is unclear > whether the > >>> protocol is available when the override protocol is invoked, and my > >>> example use case does not need it > >>> - replace incorrect HandleProtocol with LocateProtocol, given that the > override > >>> protocol is now a singleton instance > >>> - merge notifier calls into SdMmcHcReset() and SdMmcHcInitHost (), this > >>> required changing the prototype to take a > SD_MMC_HC_PRIVATE_DATA* > >>> argument > >>> and so the prototypes no longer belong in SdMmcPciHci.h and have > >>> been moved > >>> to SdMmcPciHcDxe.h > >>> - use VOID* type for capability not UINT64* since we don't know its > >>> alignment > >>> > >>> Changes since v2: > >>> - use a singleton instance of the SD/MMC protocol rather than one per > >>> controller; this is needed to support 'reconnect -r', as pointed out > >>> by Ray > >>> - use EDKII prefixes for all types defined by the protocol > >>> - replace 'hook' with 'notify', and tweak some other identifiers > >>> - add missing function comment headers for factored out functions > >>> > >>> Changes since RFC/v1: > >>> - add EFI_SD_MMC_PASS_THRU_PROTOCOL* member to override > methods > >>> - use UINT64* not VOID* to pass capability structure (which is always 64 > bits > >>> in size) > >>> > >>> Ard Biesheuvel (2): > >>> MdeModulePkg: introduce SD/MMC override protocol > >>> MdeModulePkg/SdMmcPciHcDxe: allow HC capabilities to be > overridden > >>> > >>> MdeModulePkg/Bus/Pci/SdMmcPciHcDxe/SdMmcPciHcDxe.c | 35 > ++++++- > >>> MdeModulePkg/Bus/Pci/SdMmcPciHcDxe/SdMmcPciHcDxe.h | 36 > ++++++++ > >>> MdeModulePkg/Bus/Pci/SdMmcPciHcDxe/SdMmcPciHcDxe.inf | 2 + > >>> MdeModulePkg/Bus/Pci/SdMmcPciHcDxe/SdMmcPciHci.c | 95 > >>> +++++++++++++++++-- > >>> MdeModulePkg/Bus/Pci/SdMmcPciHcDxe/SdMmcPciHci.h | 35 ------- > >>> MdeModulePkg/Include/Protocol/SdMmcOverride.h | 97 > >>> ++++++++++++++++++++ > >>> MdeModulePkg/MdeModulePkg.dec | 3 + > >>> 7 files changed, 257 insertions(+), 46 deletions(-) create mode > >>> 100644 MdeModulePkg/Include/Protocol/SdMmcOverride.h > >>> > >>> -- > >>> 2.11.0 > >> > _______________________________________________ > edk2-devel mailing list > edk2-devel@lists.01.org > https://emea01.safelinks.protection.outlook.com/?url=https%3A%2F%2Flist > s.01.org%2Fmailman%2Flistinfo%2Fedk2- > devel&data=02%7C01%7Cmeenakshi.aggarwal%40nxp.com%7Ce1c1a5872a7 > 1476d17fc08d567c7280c%7C686ea1d3bc2b4c6fa92cd99c5c301635%7C0%7C0% > 7C636529027474388370&sdata=gkmLosBokCxUJsWSPlvmsUABakEYdbIZTOho > qFsbbpI%3D&reserved=0 _______________________________________________ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel
On 6 March 2018 at 05:14, Meenakshi Aggarwal <meenakshi.aggarwal@nxp.com> wrote: > Hi, > > I am using Mmc Driver implemented in " EmbeddedPkg/Universal/MmcDxe/" for my SD/MMC controller and my controller is not on PCI bus. > > I am a bit confused if i should move to SD implementation available in 'MdeModulePkg\Bus\Pci\SdMmcPciHcDxe". > > Please suggest. > It really depends on whether the IP is SDHCI compatible or not. _______________________________________________ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel
> -----Original Message----- > From: Ard Biesheuvel [mailto:ard.biesheuvel@linaro.org] > Sent: Tuesday, March 06, 2018 4:41 PM > To: Meenakshi Aggarwal <meenakshi.aggarwal@nxp.com> > Cc: edk2-devel@lists.01.org > Subject: Re: [edk2] [PATCH v4 0/2] quirks handling for SDHCI controllers > > On 6 March 2018 at 05:14, Meenakshi Aggarwal > <meenakshi.aggarwal@nxp.com> wrote: > > Hi, > > > > I am using Mmc Driver implemented in " > EmbeddedPkg/Universal/MmcDxe/" for my SD/MMC controller and my > controller is not on PCI bus. > > > > I am a bit confused if i should move to SD implementation available in > 'MdeModulePkg\Bus\Pci\SdMmcPciHcDxe". > > > > Please suggest. > > > > It really depends on whether the IP is SDHCI compatible or not. Thanks for reply Ard, its not SDHCI compatible, so i guess no additional advantage in moving to 'MdeModulePkg\Bus\Pci\SdMmcPciHcDxe' for my IP. _______________________________________________ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel
Ard, No more comments from my side. Thanks/Ray > -----Original Message----- > From: Ard Biesheuvel [mailto:ard.biesheuvel@linaro.org] > Sent: Monday, January 29, 2018 4:26 PM > To: Wu, Hao A <hao.a.wu@intel.com>; Zeng, Star <star.zeng@intel.com>; Ni, > Ruiyu <ruiyu.ni@intel.com> > Cc: edk2-devel@lists.01.org; leif.lindholm@linaro.org; Kinney, Michael D > <michael.d.kinney@intel.com>; Tian, Feng <feng.tian@intel.com> > Subject: Re: [PATCH v4 0/2] quirks handling for SDHCI controllers > > On 29 January 2018 at 05:13, Wu, Hao A <hao.a.wu@intel.com> wrote: > > One minor comment, please help to remove the line (around line 1067): > > @param[in] Capability The capability of the slot. > > > > within function description comment for SdMmcHcInitHost() in file: > > MdeModulePkg\Bus\Pci\SdMmcPciHcDxe\SdMmcPciHci.c > > > > Other than that, the series is good to me: > > Reviewed-by: Hao Wu <hao.a.wu@intel.com> > > > > Thank you very much! > > > Really sorry for the delay. > > > > No worries. Star, Ray, any more comments from your side? > > > > > >> -----Original Message----- > >> From: Ard Biesheuvel [mailto:ard.biesheuvel@linaro.org] > >> Sent: Friday, December 08, 2017 6:43 AM > >> To: edk2-devel@lists.01.org > >> Cc: leif.lindholm@linaro.org; Kinney, Michael D; Zeng, Star; Tian, > >> Feng; Ni, Ruiyu; Wu, Hao A; Ard Biesheuvel > >> Subject: [PATCH v4 0/2] quirks handling for SDHCI controllers > >> > >> Many SDHCI implementations exist that are almost spec complicant, and > >> could be driven by the generic SD/MMC host controller driver except > >> for some minimal necessary init time tweaks. > >> > >> Adding such tweaks to the generic driver is undesirable. On the other > >> hand, forking the driver for every platform that has such a SDHCI > >> controller is problematic when it comes to upstreaming and ongoing > >> maintenance (which is arguably the point of upstreaming in the first > >> place). > >> > >> So these patches propose a workaround that is minimally invasive on > >> the > >> EDK2 side, but gives platforms a lot of leeway when it comes to > >> applying SDHCI quirks. > >> > >> Changes since v3: > >> - remove PassThru argument from protocol members: it is unclear whether > the > >> protocol is available when the override protocol is invoked, and my > >> example use case does not need it > >> - replace incorrect HandleProtocol with LocateProtocol, given that the > override > >> protocol is now a singleton instance > >> - merge notifier calls into SdMmcHcReset() and SdMmcHcInitHost (), this > >> required changing the prototype to take a SD_MMC_HC_PRIVATE_DATA* > >> argument > >> and so the prototypes no longer belong in SdMmcPciHci.h and have > >> been moved > >> to SdMmcPciHcDxe.h > >> - use VOID* type for capability not UINT64* since we don't know its > >> alignment > >> > >> Changes since v2: > >> - use a singleton instance of the SD/MMC protocol rather than one per > >> controller; this is needed to support 'reconnect -r', as pointed out > >> by Ray > >> - use EDKII prefixes for all types defined by the protocol > >> - replace 'hook' with 'notify', and tweak some other identifiers > >> - add missing function comment headers for factored out functions > >> > >> Changes since RFC/v1: > >> - add EFI_SD_MMC_PASS_THRU_PROTOCOL* member to override methods > >> - use UINT64* not VOID* to pass capability structure (which is always 64 bits > >> in size) > >> > >> Ard Biesheuvel (2): > >> MdeModulePkg: introduce SD/MMC override protocol > >> MdeModulePkg/SdMmcPciHcDxe: allow HC capabilities to be overridden > >> > >> MdeModulePkg/Bus/Pci/SdMmcPciHcDxe/SdMmcPciHcDxe.c | 35 ++++++- > >> MdeModulePkg/Bus/Pci/SdMmcPciHcDxe/SdMmcPciHcDxe.h | 36 > ++++++++ > >> MdeModulePkg/Bus/Pci/SdMmcPciHcDxe/SdMmcPciHcDxe.inf | 2 + > >> MdeModulePkg/Bus/Pci/SdMmcPciHcDxe/SdMmcPciHci.c | 95 > >> +++++++++++++++++-- > >> MdeModulePkg/Bus/Pci/SdMmcPciHcDxe/SdMmcPciHci.h | 35 ------- > >> MdeModulePkg/Include/Protocol/SdMmcOverride.h | 97 > >> ++++++++++++++++++++ > >> MdeModulePkg/MdeModulePkg.dec | 3 + > >> 7 files changed, 257 insertions(+), 46 deletions(-) create mode > >> 100644 MdeModulePkg/Include/Protocol/SdMmcOverride.h > >> > >> -- > >> 2.11.0 > > _______________________________________________ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel
© 2016 - 2024 Red Hat, Inc.