> -----Original Message-----
> From: Ni, Ray <ray...@intel.com>
> Sent: Thursday, April 23, 2020 8:47 PM
> To: Wasim Khan <wasim.k...@nxp.com>; devel@edk2.groups.io
> Cc: ard.biesheu...@linaro.org; Varun Sethi <v.se...@nxp.com>; Wu, Hao A
> <hao.a...@intel.com>
> Subject: RE: [edk2-devel] [PATCH] MdeModulePkg/PciHostBridge: Update Mem
> and PMem Limit Checks
> 
> 
> 
> > -----Original Message-----
> > From: Wasim Khan <wasim.k...@nxp.com>
> > Sent: Thursday, April 23, 2020 10:54 PM
> > To: devel@edk2.groups.io; Ni, Ray <ray...@intel.com>
> > Cc: ard.biesheu...@linaro.org; Varun Sethi <v.se...@nxp.com>; Wu, Hao
> > A <hao.a...@intel.com>
> > Subject: RE: [edk2-devel] [PATCH] MdeModulePkg/PciHostBridge: Update
> > Mem and PMem Limit Checks
> > > > >
> > > > > Thanks for fixing the check.
> > > > >
> > > > > PCI_ROOT_BRIDGE_APERTURE.Base/Limit are device address while the
> > > > > memory space in GCD belongs to host domain.
> > > > > So, host address for Mem/Pmem should be below 4GB while device
> > > > > address can across 4GB.
> > > > >
> > > >
> > > >
> > > > Hi Ray,
> > > > Thank you for the review.
> > > > There are cases when we don't have PCIe host address below 4GB,
> > > > and the PCIe HOST Address space is only available above 4GB.
> > > > For Example, Mem: 40000000 - FFFFFFFF Translation=FFFFFF6000000000
> > > > will result in HOST Address = 0xA0FFFFFFFF . This is a valid use
> > > > case, but below
> > > check will report ASSERT for this HOST ADDRESS.
> > >
> > > OK. Now I remember that "Mem" reports the 32bit memory space (device
> > > address) and "MemAbove4GB" reports the 64bit memory space (device
> address).
> > >
> > > Then if "Mem" reports memory range that across 4GB, it means the
> > > range above 4GB should be reported through "MemAbove4GB".
> > >
> > Yes this is true, but some devices needs MMIO 32bit space only as per their
> BAR property, including E1000 EP.
> 
> I understand some devices contain only 32bit MMIO BAR so only 32bit memory
> space (device address) can be assigned to them.
> Can you tell me the value of Mem/MemAbove4GB/Pmem/PmemAbove4GB in
> your real case?
> Can you also tell me the PCI(e) device BAR information you want to initialize
> through the EDKII PCI stack?

So as mentioned that in our case, we do not have Host region below 4GB. So we 
use MMIO + Translation.
For a PCIe device which needs 32 Bit, Non-prefetchable memory , below are the 
two experiments I could run.

With MMIO + translation , and a MMIO64 , for a device : (Works fine)
 
Mem: 40000000 - FFFFFFFF Translation=FFFFFF7000000000
 MemAbove4G: 9100000000 - 91FFFFFFFF Translation=0
 PMem: FFFFFFFFFFFFFFFF - 0 Translation=0
 PMemAbove4G: FFFFFFFFFFFFFFFF - 0 Translation=0

PciHostBridge: SubmitResources for PcieRoot(0x2)
Mem: Granularity/SpecificFlag = 32 / 00
      Length/Alignment = 0x6100000 / 0x3FFFFFF

PciHostBridge: NotifyPhase (AllocateResources)
 RootBridge: PcieRoot(0x2)
  Mem: Base/Length/Alignment = 9040000000/6100000/3FFFFFF - Success

EP's BAR0 : 0x46080000


With Only MMIO64: (Does not work)
 Mem: FFFFFFFFFFFFFFFF - 0 Translation=0
 MemAbove4G: 9100000000 - 91FFFFFFFF Translation=0
 PMem: FFFFFFFFFFFFFFFF - 0 Translation=0
 PMemAbove4G: FFFFFFFFFFFFFFFF - 0 Translation=0

PciHostBridge: SubmitResources for PcieRoot(0x2)
Mem: Granularity/SpecificFlag = 32 / 00
      Length/Alignment = 0x6100000 / 0x3FFFFFF

PciHostBridge: NotifyPhase (AllocateResources)
 RootBridge: PcieRoot(0x2)
  Mem: Base/Length/Alignment = FFFFFFFFFFFFFFFF/6100000/3FFFFFF - Out Of 
Resource!

EP's BAR0: 0xFFFE0000

-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.

View/Reply Online (#57981): https://edk2.groups.io/g/devel/message/57981
Mute This Topic: https://groups.io/mt/73215737/21656
Group Owner: devel+ow...@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub  [arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to