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

Re: [Xen-devel] Re: [PATCH] SeaBIOS/Xen: Compute the low RAM memory size in the BDA according to the e820



On Mon, Nov 14, 2011 at 1:23 PM, Keir Fraser <keir@xxxxxxx> wrote:
> On 14/11/2011 08:53, "Keir Fraser" <keir.xen@xxxxxxxxx> wrote:
>
>> On 14/11/2011 03:36, "Kevin O'Connor" <kevin@xxxxxxxxxxxx> wrote:
>>
>>> On Xen, the PCI init code isn't used, so assuming this struct doesn't
>>> need to live in real "ram", I think it could live just about anywhere
>>> past the end of ram. ÂEven with pciinit.c, addresses over 0xfc00000
>>> (with the exception of a few bytes for hpet, apic, ioapic, and bios
>>> image) could be used.
>>
>> I suggest we stick it at FC000000, and shift hvmloader's mem_alloc()
>> starting address up by one page to FC001000. The acpi build code will have
>> to manually mem_hole_populate_ram() that one page before writing to it. This
>> can then be documented in hvmloader/config.h which contains a description
>> of, and defines for, the system memory map. This is by far the easiest
>> solution to this problem; manually crafting an SSDT is a right pain in the
>> arse, whereas this is maybe a 5-line patch.
>
> Like the attached patch (untested), which is a bit larger than anticipated,
> but actually allows code to be net deleted. :-)
>

I just tested your patch with Windows 7 and Linux guest booted from iPXE.

Everything seems to work fine. SeaBIOS reports the following e820:

(XEN) HVM23: e820 map has 6 items:
(XEN) HVM23:   0: 0000000000000000 - 000000000009f400 = 1 RAM
(XEN) HVM23:   1: 000000000009f400 - 00000000000a0000 = 2 RESERVED
(XEN) HVM23:   2: 00000000000f0000 - 0000000000100000 = 2 RESERVED
(XEN) HVM23:   3: 0000000000100000 - 000000003f7ff000 = 1 RAM
(XEN) HVM23:   4: 000000003f7ff000 - 000000003f800000 = 2 RESERVED
(XEN) HVM23:   5: 00000000fc000000 - 0000000100000000 = 2 RESERVED

The ACPI code in Linux reports the right PCI memory window:

[    0.338966] PCI: Using host bridge windows from ACPI; if necessary,
use "pci=nocrs" and report a bug
[    0.340000] ACPI: PCI Root Bridge [PCI0] (domain 0000 [bus 00-ff])
[    0.341029] pci_root PNP0A03:00: host bridge window [io  0x0000-0x0cf7]
[    0.341965] pci_root PNP0A03:00: host bridge window [io  0x0d00-0xffff]
[    0.342965] pci_root PNP0A03:00: host bridge window [mem
0x000a0000-0x000bffff]
[    0.343965] pci_root PNP0A03:00: host bridge window [mem
0xf0000000-0xfbffffff]

Can you ship it ?

-- 
Julian

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel


 


Rackspace

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