Skip to content
Commit c69ff250 authored by Ard Biesheuvel's avatar Ard Biesheuvel
Browse files

Silicon/SynQuacer/NetsecDxe: move device path to root device



Currently, SynQuacer's platform DXE driver installs a non-discoverable
device protocol onto a new handle to declare the existence of the NetSec
network controller. This protocol is consumed by the NetSec DXE driver
in its implementation of the UEFI driver model supported/start/stop
routines. Only when the driver is started, an instance of the device
path protocol is installed onto the handle, annotating the handle as
supporting the MAC flavor of the messaging device path.

This approach works as long as the non-discoverable driver is always
connected at some point during the boot. However, it breaks the intent
of the UEFI driver model, since it is not possible to defer connection
of the driver to the controller to the point where it is actually being
used.

For instance, the following device path could be attached to a boot
entry to trigger HTTP boot once the entry is chosen:

  MAC(408d5cb1e6fa,1)/IPv4(0.0.0.0,0,0)/Uri()

This only works as expected if some part of this device path resolves
to a controller which can be connected recursively. In other words,
an instance of the EFI device path protocol needs to already exist,
covering at least the first level of the path.

Fix this by moving the instantiation of the device path protocol to
the platform DXE code that instantiates the handle.

Signed-off-by: default avatarArd Biesheuvel <ard.biesheuvel@arm.com>
Reviewed-by: default avatarLeif Lindholm <leif@nuviainc.com>
parent 4be1e20c
Loading
Loading
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment