Hi Eugene, On 5 February 2016 at 17:56, Cohen, Eugene <[email protected]> wrote: >> If I duplicate the call to BdsLibConnectAll() [2], then boot works as >> expected. On first boot, the boot order is created correctly and EFI >> Network pulls down a file and boots it. > > I have seen components that have asynchronous initialization characteristics, > meaning that they returns from the Driver Binding Start() call but keep doing > processing on callbacks. If this processing will eventually result in > creating new handles (USB bus enumeration comes to mind) then the > asynchronous processing is effectively racing the driver connection process > (others feel free to jump in and disagree with this assertion). I have no > idea if this is your issue but wanted to raise it as a possibility for > completeness. >
That could be part of the problem. Laszlo has proposed I add a gBS->Stall() to prevent the problem - and that works. I'm uncertain about the way that negotiation should be handled; it sounds like something asynchronous. A delay is simple, but my gut feeling is that it's never the "right" solution. Thanks, Ryan. > I've been thinking about proposing an enhancement to the spec to cover this > case but haven't been motivated enough yet. > > Eugene > _______________________________________________ edk2-devel mailing list [email protected] https://lists.01.org/mailman/listinfo/edk2-devel

