efifb (EFI frame buffer) doesn't work in RHEL-6.3 guests on RHEL-6.3 qemu-kvm without the "pci=nocrs" guest kernel parameter. This is because dynamic MMIO range allocation places the emulated Cirrus card's frame buffer much lower than specified in the _CRS. Try to sync the related bits.
v1->v2: - dropped most of v1 and started from scratch - ASL / AML heavily based on SeaBIOS commit 2062f2ba by Gerd Hoffmann <kra...@redhat.com> - to be applied on top of: - (svn rev 13538) - Bei Guan's patch in <caeqjb-tt0fxup3fjnd+cn7clk5jdjpgjpqpbc+amt+28ohd...@mail.gmail.com> - my first two patches in <5000520c.6020...@redhat.com> v2->v3: - (rebased to svn r13552) - coding style fixes - Ssdt.asl: changed license to 2-clause BSDL, paraphrasing Dsdt.asl retested for v3 (pci=nocrs never passed, efifb working): 2 GB guest, OVMF debug output ----------------------------- PopulateFwData(): base=0x0000000000000000 length=0x00000000000A0000 top=0x00000000000A0000 type=system PopulateFwData(): base=0x00000000000A0000 length=0x0000000000060000 top=0x0000000000100000 type=mmio PopulateFwData(): base=0x0000000000100000 length=0x000000007FEE0000 top=0x000000007FFE0000 type=system PopulateFwData(): base=0x000000007FFE0000 length=0x000000000000C000 top=0x000000007FFEC000 type=system PopulateFwData(): base=0x000000007FFEC000 length=0x0000000000014000 top=0x0000000080000000 type=system PopulateFwData(): base=0x0000000080000000 length=0x000000007EC01000 top=0x00000000FEC01000 type=mmio PopulateFwData(): base=0x00000000FEC01000 length=0x00000000000FF000 top=0x00000000FED00000 type=nonexistent PopulateFwData(): base=0x00000000FED00000 length=0x0000000000000400 top=0x00000000FED00400 type=mmio PopulateFwData(): base=0x00000000FED00400 length=0x00000000000FFC00 top=0x00000000FEE00000 type=nonexistent PopulateFwData(): base=0x00000000FEE00000 length=0x0000000000100000 top=0x00000000FEF00000 type=mmio PopulateFwData(): base=0x00000000FEF00000 length=0x0000000F01100000 top=0x0000001000000000 type=nonexistent PopulateFwData(): Mmio32MinBase=0x000A0000 Mmio32MaxExclTop=0xFEF00000 NonMmio32MaxExclTop=0x80000000 PopulateFwData(): PciWindow32.Base=0x80000000 PciWindow32.End=0xFEEFFFFF PciWindow32.Length=0x7EF00000 2 GB guest, dumped & decompiled SSDT ------------------------------------ /* * Intel ACPI Component Architecture * AML Disassembler version 20090123 * * Disassembly of SSDT-2048.aml, Tue Jul 24 22:02:31 2012 * * * Original Table Header: * Signature "SSDT" * Length 0x00000035 (53) * Revision 0x01 * Checksum 0x02 * OEM ID "REDHAT" * OEM Table ID "OVMF " * OEM Revision 0x00000001 (1) * Compiler ID "INTL" * Compiler Version 0x20090123 (537461027) */ DefinitionBlock ("SSDT-2048.aml", "SSDT", 1, "REDHAT", "OVMF ", 0x00000001) { OperationRegion (FWDT, SystemMemory, 0x7FB76F98, 0x00000030) } 2 GB guest, dmesg extract ------------------------- BIOS-e820: 000000007fb21000 - 000000007fb79000 (reserved) pci_root PNP0A03:00: host bridge window [mem 0x000a0000-0x000bffff] pci_root PNP0A03:00: host bridge window [mem 0x80000000-0xfeefffff] 3 GB guest, OVMF debug output ----------------------------- PopulateFwData(): base=0x0000000000000000 length=0x00000000000A0000 top=0x00000000000A0000 type=system PopulateFwData(): base=0x00000000000A0000 length=0x0000000000060000 top=0x0000000000100000 type=mmio PopulateFwData(): base=0x0000000000100000 length=0x00000000BFEE0000 top=0x00000000BFFE0000 type=system PopulateFwData(): base=0x00000000BFFE0000 length=0x000000000000C000 top=0x00000000BFFEC000 type=system PopulateFwData(): base=0x00000000BFFEC000 length=0x0000000000014000 top=0x00000000C0000000 type=system PopulateFwData(): base=0x00000000C0000000 length=0x000000003EC01000 top=0x00000000FEC01000 type=mmio PopulateFwData(): base=0x00000000FEC01000 length=0x00000000000FF000 top=0x00000000FED00000 type=nonexistent PopulateFwData(): base=0x00000000FED00000 length=0x0000000000000400 top=0x00000000FED00400 type=mmio PopulateFwData(): base=0x00000000FED00400 length=0x00000000000FFC00 top=0x00000000FEE00000 type=nonexistent PopulateFwData(): base=0x00000000FEE00000 length=0x0000000000100000 top=0x00000000FEF00000 type=mmio PopulateFwData(): base=0x00000000FEF00000 length=0x0000000F01100000 top=0x0000001000000000 type=nonexistent PopulateFwData(): Mmio32MinBase=0x000A0000 Mmio32MaxExclTop=0xFEF00000 NonMmio32MaxExclTop=0xC0000000 PopulateFwData(): PciWindow32.Base=0xC0000000 PciWindow32.End=0xFEEFFFFF PciWindow32.Length=0x3EF00000 3 GB guest, dumped & decompiled SSDT ------------------------------------ /* * Intel ACPI Component Architecture * AML Disassembler version 20090123 * * Disassembly of SSDT-3072.aml, Tue Jul 24 22:02:35 2012 * * * Original Table Header: * Signature "SSDT" * Length 0x00000035 (53) * Revision 0x01 * Checksum 0xC2 * OEM ID "REDHAT" * OEM Table ID "OVMF " * OEM Revision 0x00000001 (1) * Compiler ID "INTL" * Compiler Version 0x20090123 (537461027) */ DefinitionBlock ("SSDT-3072.aml", "SSDT", 1, "REDHAT", "OVMF ", 0x00000001) { OperationRegion (FWDT, SystemMemory, 0xBFB76F98, 0x00000030) } 3 GB guest, dmesg extract ------------------------- BIOS-e820: 00000000bfb21000 - 00000000bfb79000 (reserved) pci_root PNP0A03:00: host bridge window [mem 0x000a0000-0x000bffff] pci_root PNP0A03:00: host bridge window [mem 0xc0000000-0xfeefffff] 6 GB guest, OVMF debug output ----------------------------- PopulateFwData(): base=0x0000000000000000 length=0x00000000000A0000 top=0x00000000000A0000 type=system PopulateFwData(): base=0x00000000000A0000 length=0x0000000000060000 top=0x0000000000100000 type=mmio PopulateFwData(): base=0x0000000000100000 length=0x00000000DFEE0000 top=0x00000000DFFE0000 type=system PopulateFwData(): base=0x00000000DFFE0000 length=0x000000000000C000 top=0x00000000DFFEC000 type=system PopulateFwData(): base=0x00000000DFFEC000 length=0x0000000000014000 top=0x00000000E0000000 type=system PopulateFwData(): base=0x00000000E0000000 length=0x000000001EC01000 top=0x00000000FEC01000 type=mmio PopulateFwData(): base=0x00000000FEC01000 length=0x00000000000FF000 top=0x00000000FED00000 type=nonexistent PopulateFwData(): base=0x00000000FED00000 length=0x0000000000000400 top=0x00000000FED00400 type=mmio PopulateFwData(): base=0x00000000FED00400 length=0x00000000000FFC00 top=0x00000000FEE00000 type=nonexistent PopulateFwData(): base=0x00000000FEE00000 length=0x0000000000100000 top=0x00000000FEF00000 type=mmio PopulateFwData(): base=0x00000000FEF00000 length=0x0000000001100000 top=0x0000000100000000 type=nonexistent PopulateFwData(): base=0x0000000100000000 length=0x00000000A0000000 top=0x00000001A0000000 type=reserved PopulateFwData(): base=0x00000001A0000000 length=0x0000000E60000000 top=0x0000001000000000 type=nonexistent PopulateFwData(): Mmio32MinBase=0x000A0000 Mmio32MaxExclTop=0xFEF00000 NonMmio32MaxExclTop=0xE0000000 PopulateFwData(): PciWindow32.Base=0xE0000000 PciWindow32.End=0xFEEFFFFF PciWindow32.Length=0x1EF00000 6 GB guest, dumped & decompiled SSDT ------------------------------------ /* * Intel ACPI Component Architecture * AML Disassembler version 20090123 * * Disassembly of SSDT-6144.aml, Tue Jul 24 22:02:37 2012 * * * Original Table Header: * Signature "SSDT" * Length 0x00000035 (53) * Revision 0x01 * Checksum 0xA2 * OEM ID "REDHAT" * OEM Table ID "OVMF " * OEM Revision 0x00000001 (1) * Compiler ID "INTL" * Compiler Version 0x20090123 (537461027) */ DefinitionBlock ("SSDT-6144.aml", "SSDT", 1, "REDHAT", "OVMF ", 0x00000001) { OperationRegion (FWDT, SystemMemory, 0xDFB76F98, 0x00000030) } 6 GB guest, dmesg extract ------------------------- BIOS-e820: 00000000dfb21000 - 00000000dfb79000 (reserved) pci_root PNP0A03:00: host bridge window [mem 0x000a0000-0x000bffff] pci_root PNP0A03:00: host bridge window [mem 0xe0000000-0xfeefffff] Laszlo Ersek (5): OvmfPkg: clean up memory map OvmfPkg: install an SSDT with a dynamic OperationRegion called FWDT OvmfPkg: scan memory space map and populate FWDT (32-bit fields only) OvmfPkg/AcpiTables/Dsdt.asl: strip trailing whitespace OvmfPkg/AcpiTables/Dsdt.asl: report the PCI IO ranges set in FWDT OvmfPkg/AcpiPlatformDxe/Qemu.c | 212 ++++++++++++++++++++++++++- OvmfPkg/PlatformPei/Platform.c | 32 ++--- OvmfPkg/AcpiPlatformDxe/AcpiPlatformDxe.inf | 1 + OvmfPkg/AcpiTables/AcpiTables.inf | 1 + OvmfPkg/AcpiTables/Dsdt.asl | 117 +++++++++++++--- OvmfPkg/AcpiTables/Ssdt.asl | 19 +++ OvmfPkg/PlatformPei/PlatformPei.inf | 2 + 7 files changed, 347 insertions(+), 37 deletions(-) create mode 100644 OvmfPkg/AcpiTables/Ssdt.asl ------------------------------------------------------------------------------ Live Security Virtual Conference Exclusive live event will cover all the ways today's security and threat landscape has changed and how IT managers can respond. Discussions will include endpoint security, mobile security and the latest in malware threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/ _______________________________________________ edk2-devel mailing list edk2-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/edk2-devel