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

[Xen-changelog] [xen-unstable] [IA64] efi: remove old efi code to copmile newer linux acpi code.



# HG changeset patch
# User Isaku Yamahata <yamahata@xxxxxxxxxxxxx>
# Date 1213171062 -32400
# Node ID cfbc535ebf6f3f33be596e15dccdc2a32d6d7c4e
# Parent  0034766b45c27400b334fd202eb397d30776e06a
[IA64] efi: remove old efi code to copmile newer linux acpi code.

Signed-off-by: Isaku Yamahata <yamahata@xxxxxxxxxxxxx>
---
 xen/arch/ia64/linux-xen/efi.c              |   26 --------------------------
 xen/arch/ia64/xen/dom_fw_dom0.c            |   20 ++++++++++----------
 xen/arch/ia64/xen/pcdp.c                   |   13 +++++++++++++
 xen/arch/ia64/xen/xensetup.c               |    3 ++-
 xen/include/asm-ia64/linux-xen/linux/efi.h |   11 -----------
 5 files changed, 25 insertions(+), 48 deletions(-)

diff -r 0034766b45c2 -r cfbc535ebf6f xen/arch/ia64/linux-xen/efi.c
--- a/xen/arch/ia64/linux-xen/efi.c     Thu Jun 19 12:46:26 2008 +0900
+++ b/xen/arch/ia64/linux-xen/efi.c     Wed Jun 11 16:57:42 2008 +0900
@@ -504,7 +504,6 @@ efi_init (void)
        printk(KERN_INFO "EFI v%u.%.02u by %s:",
               efi.systab->hdr.revision >> 16, efi.systab->hdr.revision & 
0xffff, vendor);
 
-#ifndef XEN
        efi.mps        = EFI_INVALID_TABLE_ADDR;
        efi.acpi       = EFI_INVALID_TABLE_ADDR;
        efi.acpi20     = EFI_INVALID_TABLE_ADDR;
@@ -535,31 +534,6 @@ efi_init (void)
                        printk(" HCDP=0x%lx", config_tables[i].table);
                }
        }
-#else
-       /* Members of efi are set with virtual address in old linux code.
-          The latest linux set wiht physicall address. */
-       for (i = 0; i < (int) efi.systab->nr_tables; i++) {
-               if (efi_guidcmp(config_tables[i].guid, MPS_TABLE_GUID) == 0) {
-                       efi.mps = __va(config_tables[i].table);
-                       printk(" MPS=0x%lx", config_tables[i].table);
-               } else if (efi_guidcmp(config_tables[i].guid, 
ACPI_20_TABLE_GUID) == 0) {
-                       efi.acpi20 = __va(config_tables[i].table);
-                       printk(" ACPI 2.0=0x%lx", config_tables[i].table);
-               } else if (efi_guidcmp(config_tables[i].guid, ACPI_TABLE_GUID) 
== 0) {
-                       efi.acpi = __va(config_tables[i].table);
-                       printk(" ACPI=0x%lx", config_tables[i].table);
-               } else if (efi_guidcmp(config_tables[i].guid, 
SMBIOS_TABLE_GUID) == 0) {
-                       efi.smbios = __va(config_tables[i].table);
-                       printk(" SMBIOS=0x%lx", config_tables[i].table);
-               } else if (efi_guidcmp(config_tables[i].guid, 
SAL_SYSTEM_TABLE_GUID) == 0) {
-                       efi.sal_systab = __va(config_tables[i].table);
-                       printk(" SALsystab=0x%lx", config_tables[i].table);
-               } else if (efi_guidcmp(config_tables[i].guid, HCDP_TABLE_GUID) 
== 0) {
-                       efi.hcdp = __va(config_tables[i].table);
-                       printk(" HCDP=0x%lx", config_tables[i].table);
-               }
-       }
-#endif
        printk("\n");
 
        runtime = __va(efi.systab->runtime);
diff -r 0034766b45c2 -r cfbc535ebf6f xen/arch/ia64/xen/dom_fw_dom0.c
--- a/xen/arch/ia64/xen/dom_fw_dom0.c   Thu Jun 19 12:46:26 2008 +0900
+++ b/xen/arch/ia64/xen/dom_fw_dom0.c   Wed Jun 11 16:57:42 2008 +0900
@@ -212,33 +212,33 @@ void __init efi_systable_init_dom0(struc
 
        /* Write messages to the console.  */
        printk("Domain0 EFI passthrough:");
-       if (efi.mps) {
+       if (efi.mps != EFI_INVALID_TABLE_ADDR) {
                tables->efi_tables[i].guid = MPS_TABLE_GUID;
-               tables->efi_tables[i].table = __pa(efi.mps);
+               tables->efi_tables[i].table = efi.mps;
                printk(" MPS=0x%lx", tables->efi_tables[i].table);
                i++;
        }
-       if (efi.acpi20) {
+       if (efi.acpi20 != EFI_INVALID_TABLE_ADDR) {
                tables->efi_tables[i].guid = ACPI_20_TABLE_GUID;
-               tables->efi_tables[i].table = __pa(efi.acpi20);
+               tables->efi_tables[i].table = efi.acpi20;
                printk(" ACPI 2.0=0x%lx", tables->efi_tables[i].table);
                i++;
        }
-       if (efi.acpi) {
+       if (efi.acpi != EFI_INVALID_TABLE_ADDR) {
                tables->efi_tables[i].guid = ACPI_TABLE_GUID;
-               tables->efi_tables[i].table = __pa(efi.acpi);
+               tables->efi_tables[i].table = efi.acpi;
                printk(" ACPI=0x%lx", tables->efi_tables[i].table);
                i++;
        }
-       if (efi.smbios) {
+       if (efi.smbios != EFI_INVALID_TABLE_ADDR) {
                tables->efi_tables[i].guid = SMBIOS_TABLE_GUID;
-               tables->efi_tables[i].table = __pa(efi.smbios);
+               tables->efi_tables[i].table = efi.smbios;
                printk(" SMBIOS=0x%lx", tables->efi_tables[i].table);
                i++;
        }
-       if (efi.hcdp) {
+       if (efi.hcdp != EFI_INVALID_TABLE_ADDR) {
                tables->efi_tables[i].guid = HCDP_TABLE_GUID;
-               tables->efi_tables[i].table = __pa(efi.hcdp);
+               tables->efi_tables[i].table = efi.hcdp;
                printk(" HCDP=0x%lx", tables->efi_tables[i].table);
                i++;
        }
diff -r 0034766b45c2 -r cfbc535ebf6f xen/arch/ia64/xen/pcdp.c
--- a/xen/arch/ia64/xen/pcdp.c  Thu Jun 19 12:46:26 2008 +0900
+++ b/xen/arch/ia64/xen/pcdp.c  Wed Jun 11 16:57:42 2008 +0900
@@ -146,10 +146,17 @@ setup_serial_console(struct pcdp_uart *u
        if (uart->bits)
                ns16550_com1.data_bits = uart->bits;
 
+#ifndef XEN
        setup_pcdp_irq(efi.hcdp, uart);
 
        /* Hide the HCDP table from dom0, xencons will be the console */
        efi.hcdp = NULL;
+#else
+       setup_pcdp_irq(__va(efi.hcdp), uart);
+
+       /* Hide the HCDP table from dom0, xencons will be the console */
+       efi.hcdp = EFI_INVALID_TABLE_ADDR;
+#endif
 
        return 0;
 }
@@ -227,9 +234,15 @@ efi_setup_pcdp_console(char *cmdline)
        struct pcdp_device *dev, *end;
        int i, serial = 0;
 
+#ifndef XEN
        pcdp = efi.hcdp;
        if (!pcdp)
                return -ENODEV;
+#else
+       if (efi.hcdp == EFI_INVALID_TABLE_ADDR)
+               return -ENODEV;
+       pcdp = __va(efi.hcdp);
+#endif
 
        printk(KERN_INFO "PCDP: v%d at 0x%lx\n", pcdp->rev, __pa(pcdp));
 
diff -r 0034766b45c2 -r cfbc535ebf6f xen/arch/ia64/xen/xensetup.c
--- a/xen/arch/ia64/xen/xensetup.c      Thu Jun 19 12:46:26 2008 +0900
+++ b/xen/arch/ia64/xen/xensetup.c      Wed Jun 11 16:57:42 2008 +0900
@@ -557,7 +557,8 @@ skip_move:
 
     /* process SAL system table */
     /* must be before any pal/sal call */
-    ia64_sal_init(efi.sal_systab);
+    BUG_ON(efi.sal_systab == EFI_INVALID_TABLE_ADDR);
+    ia64_sal_init(__va(efi.sal_systab));
 
     /* early_setup_arch() maps PAL code. */
     identify_vmx_feature();
diff -r 0034766b45c2 -r cfbc535ebf6f xen/include/asm-ia64/linux-xen/linux/efi.h
--- a/xen/include/asm-ia64/linux-xen/linux/efi.h        Thu Jun 19 12:46:26 
2008 +0900
+++ b/xen/include/asm-ia64/linux-xen/linux/efi.h        Wed Jun 11 16:57:42 
2008 +0900
@@ -256,7 +256,6 @@ struct efi_memory_map {
  */
 extern struct efi {
        efi_system_table_t *systab;     /* EFI system table */
-#ifndef XEN
        unsigned long mps;              /* MPS table */
        unsigned long acpi;             /* ACPI table  (IA64 ext 0.71) */
        unsigned long acpi20;           /* ACPI table  (ACPI 2.0) */
@@ -265,16 +264,6 @@ extern struct efi {
        unsigned long boot_info;        /* boot info table */
        unsigned long hcdp;             /* HCDP table */
        unsigned long uga;              /* UGA table */
-#else
-       void *mps;                      /* MPS table */
-       void *acpi;                     /* ACPI table  (IA64 ext 0.71) */
-       void *acpi20;                   /* ACPI table  (ACPI 2.0) */
-       void *smbios;                   /* SM BIOS table */
-       void *sal_systab;               /* SAL system table */
-       void *boot_info;                /* boot info table */
-       void *hcdp;                     /* HCDP table */
-       void *uga;                      /* UGA table */
-#endif
        efi_get_time_t *get_time;
        efi_set_time_t *set_time;
        efi_get_wakeup_time_t *get_wakeup_time;

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


 


Rackspace

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