WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-ia64-devel

Re: [Xen-ia64-devel] [PATCH] VP model doesn't pass the whole ACPI table

Hi Alex,

Good work! Your patch works well on the PRIMEQUEST.

Now ASSIGN_DOMAIN_MACH_PAGE in dom_fw.c is redundant and 
the attached patch should be applied.
It removes the xen console message:
"__assign_domain_page: mpaddr XXXX already mapped!".

Thanks a lot,
Kouya

Signed-off-by: Kouya Shimura <kouya@xxxxxxxxxxxxxx>

Alex Williamson writes:
 > Hi Kouya,
 > 
 >    Here's a different approach that might be more clean.  Newer upstream
 > kernels have changed EFI MDT parsing so that it doesn't change the
 > original EFI table.  Here's a reference to the upstream changeset:
 > 
 > http://www.kernel.org/hg/linux-2.6/?cs=fb781f6d3e81
 > 
 > The attached patch is a port of this to xen.  Does this improve things
 > on the PRIMEQUEST?  The nice part about this is that it doesn't add any
 > new Xen specific code to the linux-xen files.  Thanks,
 > 
 >      Alex

diff -r 4e78528e3480 xen/arch/ia64/xen/dom_fw.c
--- a/xen/arch/ia64/xen/dom_fw.c        Tue Jun 06 09:11:25 2006 -0600
+++ b/xen/arch/ia64/xen/dom_fw.c        Thu Jun 08 14:31:16 2006 +0900
@@ -594,18 +594,11 @@ dom_fw_init (struct domain *d, const cha
                efi_tables[i].table = 0;
        }
        if (d == dom0) {
-#ifdef CONFIG_XEN_IA64_DOM0_VP
-# define ASSIGN_DOMAIN_MACH_PAGE(d, p) \
-        assign_domain_mach_page((d), (p), PAGE_SIZE, ASSIGN_readonly)
-#else
-# define ASSIGN_DOMAIN_MACH_PAGE(d, p) (p)
-#endif
-
                printf("Domain0 EFI passthrough:");
                i = 1;
                if (efi.mps) {
                        efi_tables[i].guid = MPS_TABLE_GUID;
-                       efi_tables[i].table = ASSIGN_DOMAIN_MACH_PAGE(d, 
__pa(efi.mps));
+                       efi_tables[i].table = __pa(efi.mps);
                        printf(" MPS=0x%lx",efi_tables[i].table);
                        i++;
                }
@@ -614,25 +607,25 @@ dom_fw_init (struct domain *d, const cha
 
                if (efi.acpi20) {
                        efi_tables[i].guid = ACPI_20_TABLE_GUID;
-                       efi_tables[i].table = ASSIGN_DOMAIN_MACH_PAGE(d, 
__pa(efi.acpi20));
+                       efi_tables[i].table = __pa(efi.acpi20);
                        printf(" ACPI 2.0=0x%lx",efi_tables[i].table);
                        i++;
                }
                if (efi.acpi) {
                        efi_tables[i].guid = ACPI_TABLE_GUID;
-                       efi_tables[i].table = ASSIGN_DOMAIN_MACH_PAGE(d, 
__pa(efi.acpi));
+                       efi_tables[i].table = __pa(efi.acpi);
                        printf(" ACPI=0x%lx",efi_tables[i].table);
                        i++;
                }
                if (efi.smbios) {
                        efi_tables[i].guid = SMBIOS_TABLE_GUID;
-                       efi_tables[i].table = ASSIGN_DOMAIN_MACH_PAGE(d, 
__pa(efi.smbios));
+                       efi_tables[i].table = __pa(efi.smbios);
                        printf(" SMBIOS=0x%lx",efi_tables[i].table);
                        i++;
                }
                if (efi.hcdp) {
                        efi_tables[i].guid = HCDP_TABLE_GUID;
-                       efi_tables[i].table = ASSIGN_DOMAIN_MACH_PAGE(d, 
__pa(efi.hcdp));
+                       efi_tables[i].table = __pa(efi.hcdp);
                        printf(" HCDP=0x%lx",efi_tables[i].table);
                        i++;
                }
_______________________________________________
Xen-ia64-devel mailing list
Xen-ia64-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-ia64-devel