From: James McKenzie james.mckenzie@citrix.com Date: Wed, 13 Apr 2011 10:01:36 +0000 (+0100) Subject: From XC trunk Apr 13 2011 X-Git-Url: http://xenbits.xensource.com/gitweb?a=commitdiff_plain;p=people%2Fjamesmck%2Fefi-xen-3.4-pq.git From XC trunk Apr 13 2011 --- 3ea984889733ebd041324ec5fe2ec2314d98e9f4 diff --git a/master/efi-grub b/master/efi-grub new file mode 100644 index 0000000..17df528 --- /dev/null +++ b/master/efi-grub @@ -0,0 +1,59 @@ +diff --git a/xen/arch/x86/boot/head.S b/xen/arch/x86/boot/head.S +index 3360107..f09c556 100644 +--- a/xen/arch/x86/boot/head.S ++++ b/xen/arch/x86/boot/head.S +@@ -33,6 +33,16 @@ ENTRY(start) + /* Checksum: must be the negated sum of the first two fields. */ + .long -(MULTIBOOT_HEADER_MAGIC + MULTIBOOT_HEADER_FLAGS) + ++/*** EFI GRUB HEADER ****/ ++ .align 8 ++ /*Magic number */ ++ .quad 0xdeadbeefef104ead ++ .quad sym_phys(efi_loader_signature) ++ .quad sym_phys(efi_system_table_addr) ++ .quad sym_phys(realmode_available) ++ .quad sym_phys(boot_vid_mode) ++ .quad sym_phys(boot_vid_info) ++ + .section .init.text + + .Lbad_cpu_msg: .asciz "ERR: Not a 64-bit CPU!" +@@ -198,6 +208,14 @@ __start: + reloc: + #include "reloc.S" + ++ .align 8 ++.globl efi_loader_signature ++efi_loader_signature: ++ .quad 0x1 /*Must not be placed into bss, as is overwritten by loader*/ ++.globl efi_system_table_addr ++efi_system_table_addr: ++ .quad 0x1 /*Must not be placed into bss, as is overwritten by loader*/ ++ + .align 16 + .globl trampoline_start, trampoline_end + trampoline_start: +diff --git a/xen/arch/x86/boot/trampoline.S b/xen/arch/x86/boot/trampoline.S +index ad15f5c..3c2e971 100644 +--- a/xen/arch/x86/boot/trampoline.S ++++ b/xen/arch/x86/boot/trampoline.S +@@ -119,6 +119,8 @@ high_start: + + .code32 + trampoline_boot_cpu_entry: ++ cmpb $0xff,bootsym_phys(realmode_available) ++ jnz .Lskip_realmode + cmpb $0,bootsym_phys(skip_realmode) + jnz .Lskip_realmode + +@@ -201,6 +203,9 @@ trampoline_boot_cpu_entry: + skip_realmode: + .byte 0 + ++realmode_available: ++ .byte 0xff /*must not be placed into bss as is overwritten by loader*/ ++ + rm_idt: .word 256*4-1, 0, 0 + + #include "mem.S" diff --git a/master/search-harder-for-acpi-and-smbios b/master/search-harder-for-acpi-and-smbios new file mode 100644 index 0000000..bca726f --- /dev/null +++ b/master/search-harder-for-acpi-and-smbios @@ -0,0 +1,41 @@ +diff --git a/xen/arch/x86/dmi_scan.c b/xen/arch/x86/dmi_scan.c +index cdc4674..58cfe01 100644 +--- a/xen/arch/x86/dmi_scan.c ++++ b/xen/arch/x86/dmi_scan.c +@@ -105,8 +105,8 @@ int __init dmi_get_table(u32 *base, u32 *len) + u8 buf[15]; + char __iomem *p, *q; + +- p = maddr_to_virt(0xF0000); +- for (q = p; q < p + 0x10000; q += 16) { ++ p = maddr_to_virt(0x90000); ++ for (q = p; q < p + 0x70000; q += 16) { + memcpy_fromio(buf, q, 15); + if (memcmp(buf, "_DMI_", 5)==0 && dmi_checksum(buf)) { + *base=buf[11]<<24|buf[10]<<16|buf[9]<<8|buf[8]; +@@ -122,8 +122,8 @@ static int __init dmi_iterate(void (*decode)(struct dmi_header *)) + u8 buf[15]; + char __iomem *p, *q; + +- p = maddr_to_virt(0xF0000); +- for (q = p; q < p + 0x10000; q += 16) { ++ p = maddr_to_virt(0x90000); ++ for (q = p; q < p + 0x70000; q += 16) { + memcpy_fromio(buf, q, 15); + if (memcmp(buf, "_DMI_", 5)==0 && dmi_checksum(buf)) { + u16 num=buf[13]<<8|buf[12]; +diff --git a/xen/include/acpi/acconfig.h b/xen/include/acpi/acconfig.h +index 422f29c..520ae2c 100644 +--- a/xen/include/acpi/acconfig.h ++++ b/xen/include/acpi/acconfig.h +@@ -166,8 +166,8 @@ + #define ACPI_EBDA_PTR_LOCATION 0x0000040E /* Physical Address */ + #define ACPI_EBDA_PTR_LENGTH 2 + #define ACPI_EBDA_WINDOW_SIZE 1024 +-#define ACPI_HI_RSDP_WINDOW_BASE 0x000E0000 /* Physical Address */ +-#define ACPI_HI_RSDP_WINDOW_SIZE 0x00020000 ++#define ACPI_HI_RSDP_WINDOW_BASE 0x00090000 /* Physical Address */ ++#define ACPI_HI_RSDP_WINDOW_SIZE 0x00070000 + #define ACPI_RSDP_SCAN_STEP 16 + + /* Operation regions */ diff --git a/master/series b/master/series new file mode 100644 index 0000000..ba6380b --- /dev/null +++ b/master/series @@ -0,0 +1,2 @@ +efi-grub +search-harder-for-acpi-and-smbios