On 03/23/18 14:01, Wasim Khan wrote: > Hi Michael, > > Thank you for your prompt reply. > > Yes, in one of our implementation we are doing the same in our network driver > (without DriverBinding protocol support). > > We were thinking to update our network driver to support DriverBinding > Protocol and explore if we can get a boot call for boot options one by one > starting from 1st boot option. > If making the auto-neg asynchronous is the only option, then we don’t see any > profit by updating our network driver to support DriverBinding protocol.
The point of a UEFI device driver that follows the UEFI driver model is that platform BDS may elect *not* to connect the driver to various devices. This is unlike your DXE driver that probably binds all of the devices immediately at dispatch. In order to benefit from the flexibility of the above UEFI drivers, your platform BDS must actually be *capable* of not calling ConnectController() on those devices that you don't intend to boot off of. How about this: simply don't connect *any* NICs -- either via EfiBootManagerConnectAll() or EfiBootManagerConnectDevicePath() -- in your PlatformBootManagerLib. When a Boot#### option is being booted, the core UefiBootManagerLib / BdsDxe driver should connect the device automatically. - When the user enters the Setup utility, all devices are automatically connected with EfiBootManagerConnectAll(). - This way Boot#### options can be created by the user, simply by pointing to / selecting some devices. (Because all devices have been connected.) - At next boot, the user doesn't enter Setup, and your PlatformBootManagerLib doesn't connect any boot devices explicitly (NICs, disks, etc); only consoles. - Boot#### processing will take care of connecting boot devices, strictly as necessary. - If the user plugs the ethernet cable into another NIC, they'll have to enter Setup again, and update their Boot#### options. Thanks Laszlo >> -----Original Message----- >> From: Michael Brown [mailto:[email protected]] >> Sent: Friday, March 23, 2018 5:52 PM >> To: Wasim Khan <[email protected]>; Laszlo Ersek <[email protected]>; >> Pankaj Bansal <[email protected]> >> Cc: [email protected] >> Subject: Re: [edk2] Boot delay due to network devices >> >> On 23/03/18 11:58, Wasim Khan wrote: >>> Ex: if auto-neg timeout is 5 seconds and if we have 10 network interfaces >>> (all >> are legal candidate for booting), and cable is connected to 3rd interface >> only >> then 45 seconds will be wasted (5 seconds each for 9 interfaces) in auto-neg >> of >> interfaces which are not connected via cable. >> >> There is no need for drivers to block in the Start() method waiting for >> link-up >> detection. Link detection can happen entirely asynchronously, thereby >> reducing >> your wasted time from 45 seconds to zero. >> >> Michael _______________________________________________ edk2-devel mailing list [email protected] https://lists.01.org/mailman/listinfo/edk2-devel

