Hi,

"9.2 Driver Binding Protocol Template" in the Driver Writer’s Guide
for UEFI 2.3.1 (v1.01) says,

    Although the thought of initializing something as soon as it is
    supported in the Supported() service of the driver seems to make
    sense, the Supported() service is intended only to be a quick check
    to find out if a driver can make a connection to the specified
    controller, find out if it has already been called (started and in
    use), or if it is in use exclusively by another component. The
    Supported() service must return an error if the controller is
    already in use or is in use exclusively by another component.

How do I detect if Start() has already been called for this Controller
(which is a PCI device BTW). I figured my driver could keep a list of
already driven Controllers, but "18 PCI Driver Design Guidelines" comes
with several examples and none of them implement something like this, as
far as I can see.

My current Supported() function starts by calling gBS->OpenProtocol()
with gEfiPciIoProtocolGuid. This operation is undone at the end of
Supported(), but not undone at the end of a successful Start(). So, may
I expect the PciIo protocol to keep track of driven Controllers for me?
Consequently, may I expect OpenProtocol() in my Supported() function to
return EFI_ALREADY_STARTED (which I then forward outwards from Supported())?

Thanks a lot,
Laszlo

------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
_______________________________________________
edk2-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/edk2-devel

Reply via email to