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

Reply via email to