|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] fixed location of share info page in HVM guests
>>> On 22.10.12 at 20:50, Olaf Hering <olaf@xxxxxxxxx> wrote:
> I came up with this (perhaps whitespace damaged) change, the guest still
> boots ok.
> The asl part is just copy&paste from the HPET part.
... and, pending a response to Keir's question on its need in the
first place, need to be fixed:
> --- xen-4.2.0-testing.orig/tools/firmware/hvmloader/acpi/dsdt.asl
> +++ xen-4.2.0-testing/tools/firmware/hvmloader/acpi/dsdt.asl
> @@ -50,6 +50,7 @@ DefinitionBlock ("DSDT.aml", "DSDT", 2,
> UAR1, 1,
> UAR2, 1,
> LTP1, 1,
> + XENR, 1,
> HPET, 1,
This gets things out of sync with build.c's struct acpi_info. Which
raises the question whether, even if the below is needed, this
change is necessary.
> Offset(4),
> PMIN, 32,
> @@ -166,6 +167,28 @@ DefinitionBlock ("DSDT.aml", "DSDT", 2,
> Return (PRT0)
> }
>
> + Device(XENR) {
> + Name(_UID, 0)
> + Method (_STA, 0, NotSerialized) {
> + If(LEqual(\_SB.XENR, 0)) {
> + Return(0x00)
> + } Else {
> + Return(0x0F)
> + }
Especially with the missing build.c change, this ought to be
unconditionally returning 0x0F or get dropped (depending on
whether _STA is required, which I don't recall off the top of my
head, but looking at other device declarations it doesn't look
like so).
Jan
> + }
> + Name(_CRS, ResourceTemplate() {
> + DWordMemory(
> + ResourceConsumer, PosDecode, MinFixed, MaxFixed,
> + NonCacheable, ReadWrite,
> + 0x00000000,
> + 0xFE700000,
> + 0xFE7FFFFF,
> + 0x00000000,
> + 0x00100000 /* 1M memory: FE700000 - FE7FFFFF */
> + )
> + })
> + }
> +
> Device(HPET) {
> Name(_HID, EISAID("PNP0103"))
> Name(_UID, 0)
> Index: xen-4.2.0-testing/tools/firmware/hvmloader/config.h
> ===================================================================
> --- xen-4.2.0-testing.orig/tools/firmware/hvmloader/config.h
> +++ xen-4.2.0-testing/tools/firmware/hvmloader/config.h
> @@ -66,6 +66,8 @@ extern unsigned long pci_mem_start, pci_
> /* NB. ACPI_INFO_PHYSICAL_ADDRESS *MUST* match definition in acpi/dsdt.asl!
> */
> #define ACPI_INFO_PHYSICAL_ADDRESS 0xFC000000
> #define RESERVED_MEMORY_DYNAMIC 0xFC001000
> +#define HVM_SHARED_INFO_AREA 0xFE700000
> +#define HVM_SHARED_INFO_SIZE 0x00100000
>
> extern unsigned long scratch_start;
>
> Index: xen-4.2.0-testing/tools/firmware/hvmloader/util.c
> ===================================================================
> --- xen-4.2.0-testing.orig/tools/firmware/hvmloader/util.c
> +++ xen-4.2.0-testing/tools/firmware/hvmloader/util.c
> @@ -433,11 +433,19 @@ void *mem_alloc(uint32_t size, uint32_t
> if ( align < 16 )
> align = 16;
>
> +retry:
> s = (reserve + align) & ~(align - 1);
> e = s + size - 1;
>
> BUG_ON((e < s) || (e >> PAGE_SHIFT) >= hvm_info->reserved_mem_pgstart);
>
> + /* Skip the shared info region */
> + if (s <= HVM_SHARED_INFO_AREA && e >= HVM_SHARED_INFO_AREA) {
> + printf("%s: skipping HVM_SHARED_INFO_AREA: s %08x e %08x r
> %08x", __func__, s, e, reserve);
> + reserve = HVM_SHARED_INFO_AREA + HVM_SHARED_INFO_SIZE - 1;
> + goto retry;
> + }
> +
> while ( (reserve >> PAGE_SHIFT) != (e >> PAGE_SHIFT) )
> {
> reserve += PAGE_SIZE;
>
>
> _______________________________________________
> Xen-devel mailing list
> Xen-devel@xxxxxxxxxxxxx
> http://lists.xen.org/xen-devel
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |