在 8/14/2018 11:26 PM, Leif Lindholm 写道:
On Fri, Aug 10, 2018 at 09:44:29AM +0800, Ming wrote:
Which is exactly what an event is for. At the point where the SAS controller driver is currently updating the variable, it can instead call SignalEvent ().
The WaitForDiskReady () function can be changed to wait/check for that event.
As current solution(using variables) have run stable, I prefer don't change SAS driver and this wait function. Is it OK?
You can leave the driver out if you wish, but it cannot go into the 18.08 release with this design.
With event, two problem should be solved: 1 How to share the event between SAS driver and PlatformBootManagerLib; 2 How to avoid waiting for D03/D05;
For the two problems I plan to install a protocal in D06 SAS driver and locate the protocal in PlatformBootManagerLib. if fail to locate (D03/D05), it will not wait. struct _HISI_SAS_NOTIFY_PROTOCAL { EFI_EVENT WaitDiskEvent; }; How about this?
This is why it is important to publish the code as soon as possible - especially for new platform ports. And to publish bits that are possible earlier, rather than wait and do everything in one go once the whole port is done.
Best Regards,
Leif