On 2015-05-14 19:17:26, Ni, Ruiyu wrote:
> Maurice,
> When PcdPciDisableBusEnumeration is TRUE, PciBus driver assumes the
> bus number and IO/MMIO BAR are all initialized before it gets
> started, so it doesn't call SetBusNumbers(). It's also true for
> PciBusNoEnumeration driver in DuetPkg.
> I compared the PciBus and PciBusNoEnumeration before, the major gap
> is PciBus won't dispatch the option roms collected by
> PciRootBridgeNoEnumeration driver.

Can modify MdeModulePkg/Bus/Pci/PciBusDxe and
PcAtChipsetPkg/PciHostBridgeDxe so they can work for DuetPkg,
CorebootPayloadPkg and OvmfPkg? (Note that OvmfPkg already uses them.)

I think it is better to get all these platforms using common code, I
it doesn't seem like the gap is that big.

Maybe MdeModulePkg/Bus/Pci/PciBusDxe or
PcAtChipsetPkg/PciHostBridgeDxe could use additional PCDs to close the
gap on the differences preventing DuetPkg and CorebootPayloadPkg from
using these two modules?

> Another gap is the PciRootBridgeNoEnumeration needs a slightly
> change in order to work with PciBus driver. Can you try this patch?

You mean this should allow CorebootPayloadPkg to use
MdeModulePkg/Bus/Pci/PciBusDxe? What about DuetPkg as well?

Also, what changes would PcAtChipsetPkg/PciHostBridgeDxe need to be
able to replace DuetPkg/PciRootBridgeNoEnumerationDxe for
CorebootPayloadPkg and DuetPkg?

Thanks,

-Jordan

> -----Original Message-----
> From: Ma, Maurice 
> Sent: Saturday, May 9, 2015 6:33 AM
> To: Justen, Jordan L; Agyeman, Prince
> Cc: reza.jel...@tuhh.de; Zeng, Star; Ni, Ruiyu; ler...@redhat.com; 
> edk2-devel@lists.sourceforge.net
> Subject: RE: [edk2] [PATCH] CorebootPayloadPkg: Replace PciHostBridge driver 
> with PciRootBridgeNoEnumeration
> 
> Hi, Jordan,
> 
> Thank you for your feedback.
> 
> Ideally I don't want CorebootPayloadPkg to depend on DuetPkg.    But on the 
> other side I hesitate to duplicate drivers into the CorebootPayloadPkg from 
> other packages.
> If I have to make a choice, I'd like the former.
> 
> I just tried to use the standard  PciBus driver  with  
> PcdPciDisableBusEnumeration set to TRUE.  However It caused boot failure on 
> my Baytrail platform.    I think it might needs some slightly changes to make 
> it behavior the same way as PciBusNoEnumeration in DuetPkg.
> 
> However, even with the standard PciBus driver,  I still need a 
> PciRootBridgeNoEnumeration equivalent driver.   By looking into the PciBus 
> driver code,  I found PciBus driver will not call PCI host bridge resource 
> allocation interface  SetBusNumbers() when PcdPciDisableBusEnumeration is set 
> to TRUE.   As a result the PCI root bridge bus range is always 0 because 
> nobody will updated it.   In this case Shell PCI command will think only bus 
> 0 exists and no devices on other buses will be listed.
> 
> For SataControllerDxe driver,   I don't want to duplicate it 
> CorebootPayloadPkg again if it has been done in OvmfPkg.
> 
> Unless we have a more functional common drivers to replace the current ones 
> used in CorebootPayloadPkg,  I would prefer the current way.
> 
> Please let me know if you have any other ideas.
> 
> Thanks
> Maurice  
> 
> -----Original Message-----
> From: Justen, Jordan L 
> Sent: Friday, May 08, 2015 1:03 PM
> To: Ma, Maurice; edk2-devel@lists.sourceforge.net; Agyeman, Prince
> Cc: reza.jel...@tuhh.de; Zeng, Star; Ni, Ruiyu; ler...@redhat.com
> Subject: Re: [edk2] [PATCH] CorebootPayloadPkg: Replace PciHostBridge driver 
> with PciRootBridgeNoEnumeration
> 
> Can you use git send-email to send your patches? (Note the email double-space 
> strangeness below)
> 
> I don't think CorebootPayloadPkg should depend on DuetPkg.
> 
> Regarding the PciEnumeration issue, in OVMF we set 
> gEfiMdeModulePkgTokenSpaceGuid.PcdPciDisableBusEnumeration to TRUE at runtime 
> for Xen to disable enumeration. Maybe CorebootPayloadPkg could just set it as 
> a fixed PCD to TRUE?
> 
> Regarding using DuetPkg/SataControllerDxe in CorebootPayloadPkg, well, we 
> tried to create a common module under PcAtChipsetPkg to share with OVMF, but 
> it was rejected.
> 
> The recommendation was to duplicate the code in OVMF:
> http://permalink.gmane.org/gmane.comp.bios.tianocore.devel/9036
> 
> Shouldn't CorebootPayloadPkg then do something similar?
> 
> One unfortunate outcome of the SataControllerDxe discussion for OVMF is that 
> we still haven't managed to enable SATA in OVMF... But, I think this is maybe 
> because Reza got tired of trying to work with us.
> :)
> 
> -Jordan
> 
> On 2015-05-08 09:02:11, Ma, Maurice wrote:
> >    Current CorebootPayloadPkg uses PciHostBridge and 
> > PciBusNoEnumeration
> > 
> >    driver. It will cause the PCI bus resource incorrectly set in root
> > 
> >    bridge instance. As a result all PCI devices behind a PCI bridge 
> > will
> > 
> >    not show up in Shell 'PCI' command.
> > 
> >     
> > 
> >    To resolve it use PciRootBridgeNoEnumeration driver instead.
> > 
> >     
> > 
> >    Contributed-under: TianoCore Contribution Agreement 1.0
> > 
> >    Signed-off-by: Maurice Ma <maurice...@intel.com>
> > 
> >    ---
> > 
> >    CorebootPayloadPkg/CorebootPayloadPkg.fdf        | 2 +-
> > 
> >    CorebootPayloadPkg/CorebootPayloadPkgIa32.dsc    | 2 +-
> > 
> >    CorebootPayloadPkg/CorebootPayloadPkgIa32X64.dsc | 4 ++--
> > 
> >    3 files changed, 4 insertions(+), 4 deletions(-)
> > 
> >     
> > 
> >    diff --git a/CorebootPayloadPkg/CorebootPayloadPkg.fdf
> >    b/CorebootPayloadPkg/CorebootPayloadPkg.fdf
> > 
> >    index a1e72e7..810dcb1 100644
> > 
> >    --- a/CorebootPayloadPkg/CorebootPayloadPkg.fdf
> > 
> >    +++ b/CorebootPayloadPkg/CorebootPayloadPkg.fdf
> > 
> >    @@ -110,7 +110,7 @@ INF 
> > MdeModulePkg/Universal/SmbiosDxe/SmbiosDxe.inf
> > 
> >    #
> > 
> >    # PCI Support
> > 
> >    #
> > 
> >    -INF PcAtChipsetPkg/PciHostBridgeDxe/PciHostBridgeDxe.inf
> > 
> >    +INF 
> > DuetPkg/PciRootBridgeNoEnumerationDxe/PciRootBridgeNoEnumeration.inf
> > 
> >    INF DuetPkg/PciBusNoEnumerationDxe/PciBusNoEnumeration.inf
> > 
> >     
> > 
> >     #
> > 
> >    diff --git a/CorebootPayloadPkg/CorebootPayloadPkgIa32.dsc
> >    b/CorebootPayloadPkg/CorebootPayloadPkgIa32.dsc
> > 
> >    index feae027..a661f5d 100644
> > 
> >    --- a/CorebootPayloadPkg/CorebootPayloadPkgIa32.dsc
> > 
> >    +++ b/CorebootPayloadPkg/CorebootPayloadPkgIa32.dsc
> > 
> >    @@ -312,7 +312,7 @@
> > 
> >       #
> > 
> >       # PCI Support
> > 
> >       #
> > 
> >    -  PcAtChipsetPkg/PciHostBridgeDxe/PciHostBridgeDxe.inf
> > 
> >    +  
> > DuetPkg/PciRootBridgeNoEnumerationDxe/PciRootBridgeNoEnumeration.inf
> > 
> >       DuetPkg/PciBusNoEnumerationDxe/PciBusNoEnumeration.inf
> > 
> >       
> > 
> >       #
> > 
> >    diff --git a/CorebootPayloadPkg/CorebootPayloadPkgIa32X64.dsc
> >    b/CorebootPayloadPkg/CorebootPayloadPkgIa32X64.dsc
> > 
> >    index d954666..ecd12fb 100644
> > 
> >    --- a/CorebootPayloadPkg/CorebootPayloadPkgIa32X64.dsc
> > 
> >    +++ b/CorebootPayloadPkg/CorebootPayloadPkgIa32X64.dsc
> > 
> >    @@ -313,8 +313,8 @@
> > 
> >      
> > 
> >       #
> > 
> >       # PCI Support
> > 
> >    -  #
> > 
> >    -  PcAtChipsetPkg/PciHostBridgeDxe/PciHostBridgeDxe.inf
> > 
> >    +  #
> > 
> >    +  
> > DuetPkg/PciRootBridgeNoEnumerationDxe/PciRootBridgeNoEnumeration.inf
> > 
> >       DuetPkg/PciBusNoEnumerationDxe/PciBusNoEnumeration.inf
> > 
> >       
> > 
> >       #
> > 
> >    --
> > 
> >    1.8.3.1
> > 
> >     
> > 
> >    Thanks
> > 
> >    Maurice

------------------------------------------------------------------------------
One dashboard for servers and applications across Physical-Virtual-Cloud 
Widest out-of-the-box monitoring support with 50+ applications
Performance metrics, stats and reports that give you Actionable Insights
Deep dive visibility with transaction tracing using APM Insight.
http://ad.doubleclick.net/ddm/clk/290420510;117567292;y
_______________________________________________
edk2-devel mailing list
edk2-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/edk2-devel

Reply via email to