From mboxrd@z Thu Jan 1 00:00:00 1970 From: Keir Fraser Subject: Re: [Xen-devel] Re: [PATCH] SeaBIOS/Xen: Compute the low RAM memory size in the BDA according to the e820 Date: Mon, 14 Nov 2011 20:16:31 +0000 Message-ID: References: Mime-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Return-path: In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: seabios-bounces@seabios.org Sender: seabios-bounces@seabios.org To: Julian Pidancet Cc: seabios@seabios.org, xen-devel@lists.xensource.com, ian.campbell@citrix.com List-Id: xen-devel@lists.xenproject.org On 14/11/2011 19:25, "Julian Pidancet" wrote: > On Mon, Nov 14, 2011 at 1:23 PM, Keir Fraser wrote: >> On 14/11/2011 08:53, "Keir Fraser" wrote: >> = >>> On 14/11/2011 03:36, "Kevin O'Connor" 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. =A0Even 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 h= ave >>> 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 descripti= on >>> 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 anticipat= ed, >> 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 =3D 1 RAM > (XEN) HVM23: 1: 000000000009f400 - 00000000000a0000 =3D 2 RESERVED > (XEN) HVM23: 2: 00000000000f0000 - 0000000000100000 =3D 2 RESERVED > (XEN) HVM23: 3: 0000000000100000 - 000000003f7ff000 =3D 1 RAM > (XEN) HVM23: 4: 000000003f7ff000 - 000000003f800000 =3D 2 RESERVED > (XEN) HVM23: 5: 00000000fc000000 - 0000000100000000 =3D 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=3Dnocrs" 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 ? Done. Xen-unstable:24143 Thanks, Keir