On 2016-05-13 01:03:02, Laszlo Ersek wrote:
> On 05/13/16 01:49, Jordan Justen wrote:
> > Is there much point to the PCDs after this?
> > 
> > Even before, the benefit was minimal. I think there was the idea that
> > they could allow you to get the base address without having to include
> > the platform specific include files. (OvmfPlatforms.h)
> > 
> > Another idea could be to go ahead and convert it to a dynamic PCD, and
> > use it wherever possible. But, it doesn't seem all that important
> > either way.
> > 
> > I'd prefer to either drop the PCDs, or make 1 dynamic PCD. What do you
> > think?
> 
> I can replace both PCDs, with macros in "OvmfPlatforms.h":
> 
> #define PIIX4_PMBA_VALUE  0xB000
> #define ICH9_PMBASE_VALUE 0x0600
> 
> These macro names would be built by taking the register names from the
> IndustryStandard include files, and appending _VALUE:
> 
> - I440FxPiix4.h: PIIX4_PMBA + _VALUE
> - Q35MchIch9.h: ICH9_PMBASE + _VALUE
> 
> Is that okay for version 2?
> 

Yeah, sounds good.

-Jordan

> > 
> > On 2016-05-09 17:37:29, Laszlo Ersek wrote:
> >> Short version:
> >> - Each PCIe downstream port can host only one device.
> >> - Each PCIe downstream port is represented as a PCI bridge.
> >> - If a PCI device needs an IO BAR, then the non-root bridge it is on
> >>   will at least need 0x1000 IO ports (required by the PCI spec), for
> >>   accommodating the IO BARs of all of the devices on it.
> >> - Consequently, each IO BAR requiring device in a PCIe downstream port
> >>   eats up 0x1000 from the limited PCI IO Port aperture (current size:
> >>   0x4000).
> >> - The long term solution is to move away from IO BARs (for example,
> >>   legacy-free virtio-1.0 devices use MMIO BARs only).
> >> - Until then, we can push down PMBASE from 0xB000 to 0x0600 on Q35 (same
> >>   as SeaBIOS does), and then push down the base of the PCI IO Port
> >>   aperture from 0xC000 to 0x6000, increasing its size from 0x4000 to
> >>   0xA000.
> >>
> >> Long version:
> >> - https://bugzilla.redhat.com/show_bug.cgi?id=1333238
> >>
> >> Public branch:
> >> - https://github.com/lersek/edk2/commits/grow_portspace_bz1333238
> >>
> >> Cc: Jordan Justen <[email protected]>
> >>
> >> Thanks
> >> Laszlo
> >>
> >> Laszlo Ersek (6):
> >>   OvmfPkg: rename PcdAcpiPmBaseAddress to PcdPiix4AcpiPmBaseAddress
> >>   OvmfPkg: add and use industry standard macro PIIX4_PMBA_MASK
> >>   OvmfPkg: introduce PcdIch9AcpiPmBaseAddress
> >>   OvmfPkg: determine PMBA value dependent on host bridge device ID
> >>   OvmfPkg/PlatformPei: set PCI IO port aperture dynamically
> >>   OvmfPkg/PlatformPei: provide 10 * 4KB of PCI IO Port space on Q35
> >>
> >>  OvmfPkg/OvmfPkg.dec                                  | 16 ++++---
> >>  OvmfPkg/OvmfPkgIa32.dsc                              |  2 +
> >>  OvmfPkg/OvmfPkgIa32X64.dsc                           |  2 +
> >>  OvmfPkg/OvmfPkgX64.dsc                               |  2 +
> >>  OvmfPkg/Library/AcpiTimerLib/BaseAcpiTimerLib.inf    |  5 +-
> >>  OvmfPkg/Library/AcpiTimerLib/BaseRomAcpiTimerLib.inf |  5 +-
> >>  OvmfPkg/Library/ResetSystemLib/ResetSystemLib.inf    |  5 +-
> >>  OvmfPkg/PlatformPei/PlatformPei.inf                  |  3 +-
> >>  OvmfPkg/Include/IndustryStandard/I440FxPiix4.h       |  2 +
> >>  OvmfPkg/Library/AcpiTimerLib/BaseAcpiTimerLib.c      | 10 +++-
> >>  OvmfPkg/Library/AcpiTimerLib/BaseRomAcpiTimerLib.c   | 10 +++-
> >>  OvmfPkg/Library/ResetSystemLib/ResetSystemLib.c      | 22 ++++++++-
> >>  OvmfPkg/PlatformPei/Platform.c                       | 48 
> >> +++++++++++++++-----
> >>  13 files changed, 101 insertions(+), 31 deletions(-)
> >>
> >> -- 
> >> 1.8.3.1
> >>
> 
_______________________________________________
edk2-devel mailing list
[email protected]
https://lists.01.org/mailman/listinfo/edk2-devel

Reply via email to