On 02/26/13 05:18, baban devkate wrote:
> Hi All,
> 
> what I learnt?
> PCI Bus driver enums PCI bus for PCI devices, checks Oprom is there,
> check Oprom header, checks UEFI driver and if yes loads it into RAM.
>  StartImage calls Drivers entry point & it exits successfully with
> driver in RAM.
> 
> 
> I have one query related to supporting multiple controllers in my driver. 
> 
> Query?
> Is same thing applicable for all HBA the in the system or UEFI drivers
> for devices only in boot path will be executed and it is decided in BDS
> phase?

Provided I understand your question correctly: UEFI will try to start
your driver on relevant controllers earlier than boot devpaths are
looked at. IOW you shouldn't have to care whether or not there's at
least one boot option pointing into an NVMe device, your driver will be
initialized earlier / independently.

See the following messages from Andrew and Michael:

http://thread.gmane.org/gmane.comp.bios.tianocore.devel/1155/focus=1159
http://thread.gmane.org/gmane.comp.bios.tianocore.devel/1954/focus=1990

Considering the OVMF bootdev selection policy in particular, see
"OvmfPkg/Library/PlatformBdsLib/BdsPlatform.c":

PlatformBdsPolicyBehavior()
  ConnectRootBridge()
  PlatformBdsConnectConsole()
  PlatformBdsConnectSequence()
    BdsLibConnectAll()
    PciInitialization()
    AcpiInitialization()
  BdsLibConnectAll()        <------ at the latest, your driver should
  BdsLibEnumerateAllBootOption()    be active on all relevant
  SetBootOrderFromQemu()            controllers after this call returns
  BdsLibBuildOptionFromVar(..., L"BootOrder")

Laszlo

------------------------------------------------------------------------------
Everyone hates slow websites. So do we.
Make your web apps faster with AppDynamics
Download AppDynamics Lite for free today:
http://p.sf.net/sfu/appdyn_d2d_feb
_______________________________________________
edk2-devel mailing list
edk2-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/edk2-devel

Reply via email to