[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-devel] placement of emulated flash [was: seabios Improved multi-platform support]



Regarding the ACPI tables, OVMF takes them from Xen. It scans 0x000EA020
to 0x000FFFFF for the RSDP and goes from there. See
OvmfPkg/AcpiPlatformDxe/Xen.c.

I'm not sure about the e820 table. In hvmloader's build_e820_table()
[tools/firmware/hvmloader/e820.c], a range starting at RESERVED_MEMBASE
is added to the table:

    /*
     * Explicitly reserve space for special pages.
     * This space starts at RESERVED_MEMBASE an extends to cover various
     * fixed hardware mappings (e.g., LAPIC, IOAPIC, default SVGA framebuffer).
     *
     * If igd_opregion_pgbase we need to split the RESERVED region in two.
     */

I gather this range is found non-specially by SeaBIOS [src/xen.c] in
xen_ramsize_preinit(), following the xen_seabios_info struct you
mentioned, placed at 0x00001000.

However in OVMF the RESERVED_MEMBASE range is not parsed from this
Xen-exported table, it is added manually in InitializeXen()
[OvmfPkg/PlatformPei/Xen.c]:

  //
  // Reserve away HVMLOADER reserved memory [0xFC000000,0xFD000000).
  // This needs to match HVMLOADER RESERVED_MEMBASE/RESERVED_MEMSIZE.
  //
  AddReservedMemoryBaseSizeHob (0xFC000000, 0x1000000);

"MemDetect.c" in the same directory might be relevant as well
(GetSystemMemorySizeBelow4gb(), GetSystemMemorySizeAbove4gb(); they work
from the CMOS).

... I gather this is about the placement of the flash memory, yes? If a
static address could work for the flash, I think in OVMF we should
update
- MemMapInitialization() [OvmfPkg/PlatformPei/Platform.c]
- OvmfPkg/AcpiTables/Dsdt.asl

But I could be completely missing the topic here...

Thanks,
Laszlo

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.