Hello exports,

I have a question for bus assign of SR-IOV device.



I researched the SR-IOV specification.

I think that assign bus number of SR-IOV device is follow:

  <reserved bus number for SR-IOV> = <LastVF's bus number> - <PF's bus number>
  <assign bus number> = 1 + <reserved bus number for SR-IOV>

  <reserved bus number for SR-IOV> is PciIoDevice->ReservedBusNum in 
PciEnumeratorSupport.c in PciBusDxe.



But PciIoDevice->ReservedBusNum is set to value of one or more in 
PciEnumeratorSupport.c in PciBusDxe.

So <assign bus number> is set to value of two or more in PciScanBus function of 
PciLib.c in PciBusDxe.

== PciEnumeratorSupport.c:CreatePciIoDevice() ==================================

      ...

      //
      // Calculate ReservedBusNum for this PF
      //
      PciIoDevice->ReservedBusNum = (UINT16)(EFI_PCI_BUS_OF_RID (LastVF) - Bus 
+ 1);
                                                                               
~~~

      ...

=================================================================================

Question 1) Plus 1 in Calculate ReservedBusNum is bug?

Question 2) If Question 1 answer is no, plese tell me that specification of 
this code.


Regards,

------------------------------------------------------------------------------
October Webinars: Code for Performance
Free Intel webinars can help you accelerate application performance.
Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from 
the latest Intel processors and coprocessors. See abstracts and register >
http://pubads.g.doubleclick.net/gampad/clk?id=60134071&iu=/4140/ostg.clktrk
_______________________________________________
edk2-devel mailing list
edk2-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/edk2-devel

Reply via email to