From: "Samer El-Haj-Mahmoud" <samer.el-haj-mahmoud@arm.com>
To: "devel@edk2.groups.io" <devel@edk2.groups.io>,
"treffer+groups.io@measite.de" <treffer+groups.io@measite.de>
Cc: Pete Batard <pete@akeo.ie>, Leif Lindholm <leif@nuviainc.com>,
Ard Biesheuvel <ardb+tianocore@kernel.org>,
"Andrei Warkentin (awarkentin@vmware.com)"
<awarkentin@vmware.com>, Jeremy Linton <Jeremy.Linton@arm.com>,
Samer El-Haj-Mahmoud <Samer.El-Haj-Mahmoud@arm.com>
Subject: Re: [edk2-devel] [edk2-platforms][PATCH 1/1] Platform/RaspberryPi: Fix dwc2 reset on raspberry pi boards
Date: Thu, 11 Mar 2021 21:50:48 +0000 [thread overview]
Message-ID: <DB7PR08MB326000076507924C3A8889EB90909@DB7PR08MB3260.eurprd08.prod.outlook.com> (raw)
In-Reply-To: <7669a539-91a0-7b48-a6b7-897dbfeda3ae@measite.de>
Thanks for the patch!
+ Andrei and Jeremey for review
I think this may be a side effect of https://github.com/tianocore/edk2-platforms/commit/f8958b86e8863432b815a132a0f0fe82950c6dd1
Previously, the DwHcReset() function did not check for valid Attributes passed in as an argument. So if you pass in 0, the function will still happily reset the controller. That caused UEFI SCT issues (since the function will take in garbage Attributes without checking for their validity, per UEFI spec). The change was to verify the Attributes are valid, and return EFI_UNSUPPORTED if they are not. The only valid attributes for resetting are EFI_USB_HC_RESET_GLOBAL and EFI_USB_HC_RESET_HOST_CONTROLLER.
I think your change makes sense. But I would like to run more tests.
Acked-by: Samer El-Haj-Mahmoud <Samer.El-Haj-Mahmoud@arm.com>
> -----Original Message-----
> From: devel@edk2.groups.io <devel@edk2.groups.io> On Behalf Of René
> Treffer via groups.io
> Sent: Thursday, March 11, 2021 7:40 AM
> To: devel@edk2.groups.io
> Cc: Pete Batard <pete@akeo.ie>; Leif Lindholm <leif@nuviainc.com>; Ard
> Biesheuvel <ardb+tianocore@kernel.org>
> Subject: [edk2-devel] [edk2-platforms][PATCH 1/1] Platform/RaspberryPi:
> Fix dwc2 reset on raspberry pi boards
>
> DwHcReset expects attributes as the second argument. A reset is performed
> if the passed attribute is valid. However 0 is not a valid attribute and will thus
> never cause a controller reset.
>
> Passing EFI_USB_HC_RESET_HOST_CONTROLLER will reset the dwc2
> controller as expected.
>
> This enables the USB 2.0 port of the raspberry compute module 4.
> ---
> Platform/RaspberryPi/Drivers/DwUsbHostDxe/DriverBinding.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/Platform/RaspberryPi/Drivers/DwUsbHostDxe/DriverBinding.c
> b/Platform/RaspberryPi/Drivers/DwUsbHostDxe/DriverBinding.c
> index bada13a6cd..bb228e62d9 100644
> --- a/Platform/RaspberryPi/Drivers/DwUsbHostDxe/DriverBinding.c
> +++ b/Platform/RaspberryPi/Drivers/DwUsbHostDxe/DriverBinding.c
> @@ -140,7 +140,7 @@ DriverStart (
> * UsbBusDxe as of b4e96b82b4e2e47e95014b51787ba5b43abac784 expects
> * the HCD to do this. There is no agent invoking DwHcReset anymore.
> */
> - DwHcReset (&DwHc->DwUsbOtgHc, 0);
> + DwHcReset (&DwHc->DwUsbOtgHc,
> EFI_USB_HC_RESET_HOST_CONTROLLER);
> DwHcSetState (&DwHc->DwUsbOtgHc, EfiUsbHcStateOperational);
>
> Status = gBS->InstallMultipleProtocolInterfaces (
> --
> 2.27.0
>
>
>
>
>
IMPORTANT NOTICE: The contents of this email and any attachments are confidential and may also be privileged. If you are not the intended recipient, please notify the sender immediately and do not disclose the contents to any other person, use it for any purpose, or store or copy the information in any medium. Thank you.
next prev parent reply other threads:[~2021-03-11 21:51 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-03-11 12:40 [edk2-platforms][PATCH 1/1] Platform/RaspberryPi: Fix dwc2 reset on raspberry pi boards treffer+groups.io
2021-03-11 21:50 ` Samer El-Haj-Mahmoud [this message]
[not found] ` <166B6833F171D19D.3362@groups.io>
2021-03-12 15:17 ` [edk2-devel] " Samer El-Haj-Mahmoud
2021-03-12 16:00 ` Ard Biesheuvel
2021-03-12 17:42 ` René Treffer
2021-03-12 17:43 ` Ard Biesheuvel
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-list from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=DB7PR08MB326000076507924C3A8889EB90909@DB7PR08MB3260.eurprd08.prod.outlook.com \
--to=devel@edk2.groups.io \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox