We shouldn't assume that a DriverBindingStart() can only start on a handle with 
device path installed. DevicePath protocol is just a special protocol.
It's possible that a bus driver starts on a host controller handle and creates 
multiple children, each with only a Specific_IO protocol installed.
Certain device driver can start on the children handle and open the Specific_IO 
protocol BY_DRIVER.
I am not sure if certain today's network drivers may work like this. It's 
allowed per UEFI spec.

Thanks,
Ray

> -----Original Message-----
> From: vit9696 <vit9...@protonmail.com>
> Sent: Monday, January 13, 2020 5:20 PM
> To: Gao, Zhichao <zhichao....@intel.com>
> Cc: devel@edk2.groups.io; Ni, Ray <ray...@intel.com>
> Subject: Re: [edk2-devel] [PATCH 1/1] ShellPkg: Do not connect handles 
> without device paths
> 
> Hi,
> 
> ‘Freeze’ means it is hung up forever, and we believe it is caused by an 
> invalid memory access in the firmware code.
> 
> Using loading command with ‘-nc’ (no connect) will work fine, but that is 
> kind of expected, as the issue is caused exactly by
> the connect logic.
> 
> We do not believe it is possible for device controller to exist without a 
> device path protocol in the wild. Would you please
> provide an example? If there is something we do not know about, I can imagine 
> introducing a PCD for this logic.
> 
> Best wishes,
> Vitaly
> 
> > 13 янв. 2020 г., в 11:11, Gao, Zhichao <zhichao....@intel.com> написал(а):
> >
> >
> > Hi,
> >
> > What does 'freeze' mean? System blocked for a while or it hung up forever?
> >
> > The change would affect the operation of the 'load' command. If some 
> > drivers need to connect to the device controller
> but it doesn't have a device path protocol, the behavior of 'load' may be 
> incorrect.
> > Is the option '-nc' working for your request?
> >
> > Thanks,
> > Zhichao
> >
> >> -----Original Message-----
> >> From: devel@edk2.groups.io [mailto:devel@edk2.groups.io] On Behalf Of
> >> Vitaly Cheptsov via Groups.Io
> >> Sent: Monday, January 13, 2020 5:39 AM
> >> To: devel@edk2.groups.io
> >> Subject: [edk2-devel] [PATCH 1/1] ShellPkg: Do not connect handles without
> >> device paths
> >>
> >> REF: https://bugzilla.tianocore.org/show_bug.cgi?id=2460
> >>
> >> Doing this reduces the amount of needless work during device connection
> >> and resolves issues with firmwares that freeze when connecting handles
> >> without device paths.
> >>
> >> Signed-off-by: Vitaly Cheptsov <vit9...@protonmail.com>
> >> ---
> >> ShellPkg/Library/UefiShellLevel2CommandsLib/Load.c | 4 ++--
> >> 1 file changed, 2 insertions(+), 2 deletions(-)
> >>
> >> diff --git a/ShellPkg/Library/UefiShellLevel2CommandsLib/Load.c
> >> b/ShellPkg/Library/UefiShellLevel2CommandsLib/Load.c
> >> index b6e7c952fa..083aac0dba 100644
> >> --- a/ShellPkg/Library/UefiShellLevel2CommandsLib/Load.c
> >> +++ b/ShellPkg/Library/UefiShellLevel2CommandsLib/Load.c
> >> @@ -32,8 +32,8 @@ ConnectAllEfi (
> >>   UINTN       Index;
> >>
> >>   Status = gBS->LocateHandleBuffer (
> >> -                  AllHandles,
> >> -                  NULL,
> >> +                  ByProtocol,
> >> +                  &gEfiDevicePathProtocolGuid,
> >>                   NULL,
> >>                   &HandleCount,
> >>                   &HandleBuffer
> >> --
> >> 2.21.0 (Apple Git-122.2)
> >>
> >>
> >> -=-=-=-=-=-=
> >> Groups.io Links: You receive all messages sent to this group.
> >>
> >> View/Reply Online (#53170): https://edk2.groups.io/g/devel/message/53170
> >> Mute This Topic: https://groups.io/mt/69653841/1768756
> >> Group Owner: devel+ow...@edk2.groups.io
> >> Unsubscribe: https://edk2.groups.io/g/devel/unsub
> >> [zhichao....@intel.com]
> >> -=-=-=-=-=-=
> >


-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.

View/Reply Online (#53188): https://edk2.groups.io/g/devel/message/53188
Mute This Topic: https://groups.io/mt/69653841/21656
Group Owner: devel+ow...@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub  [arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to