]> xenbits.xensource.com Git - people/jamesmck/efi-xen-3.4-pq.git/commitdiff
From XC trunk Apr 13 2011 master
authorJames McKenzie james.mckenzie@citrix.com <jamesmck@taoand.cam.xci-test.com>
Wed, 13 Apr 2011 10:01:36 +0000 (11:01 +0100)
committerJames McKenzie james.mckenzie@citrix.com <jamesmck@taoand.cam.xci-test.com>
Wed, 13 Apr 2011 10:01:36 +0000 (11:01 +0100)
master/efi-grub [new file with mode: 0644]
master/search-harder-for-acpi-and-smbios [new file with mode: 0644]
master/series [new file with mode: 0644]

diff --git a/master/efi-grub b/master/efi-grub
new file mode 100644 (file)
index 0000000..17df528
--- /dev/null
@@ -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 (file)
index 0000000..bca726f
--- /dev/null
@@ -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 (file)
index 0000000..ba6380b
--- /dev/null
@@ -0,0 +1,2 @@
+efi-grub
+search-harder-for-acpi-and-smbios