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

[Xen-ia64-devel] [patch] use ia64_platform_is and do not init ns16550 on sn2



Hi,

This patch changes kernel_start() to use ia64_platform_is() and not
init the 16550 driver on sn2. In addtion this eliminates the need for
the old hpsim test function.

This patch is relative to the sn2+machvec branch!

Signed-off-by: Jes Sorensen <jes@xxxxxxx>

Cheers,
Jes

# HG changeset patch
# User jes@xxxxxxxxxxxxxxxx
# Date 1166175419 -3600
# Node ID 2a5baff73732c6942f7cbfb8eedd713011f27fa0
# Parent  07a3d5e8524daf5746902de72a1760a87215d981
Use ia64_platform_is() to detect machine type in start_kernel() and
avoid initializing ns16550 driver on sn2.

This eliminates the need for the old is_platform_hp_ski() hack.

diff -r 07a3d5e8524d -r 2a5baff73732 xen/arch/ia64/xen/xenmisc.c
--- a/xen/arch/ia64/xen/xenmisc.c       Fri Dec 15 09:18:07 2006 +0100
+++ b/xen/arch/ia64/xen/xenmisc.c       Fri Dec 15 10:36:59 2006 +0100
@@ -37,22 +37,6 @@ void hpsim_setup(char **x)
 
 // called from mem_init... don't think s/w I/O tlb is needed in Xen
 //void swiotlb_init(void) { }  ...looks like it IS needed
-
-long
-is_platform_hp_ski(void)
-{
-       int i;
-       long cpuid[6];
-
-       for (i = 0; i < 5; ++i)
-               cpuid[i] = ia64_get_cpuid(i);
-       if ((cpuid[0] & 0xff) != 'H') return 0;
-       if ((cpuid[3] & 0xff) != 0x4) return 0;
-       if (((cpuid[3] >> 8) & 0xff) != 0x0) return 0;
-       if (((cpuid[3] >> 16) & 0xff) != 0x0) return 0;
-       if (((cpuid[3] >> 24) & 0x7) != 0x7) return 0;
-       return 1;
-}
 
 struct pt_regs *guest_cpu_user_regs(void) { return vcpu_regs(current); }
 
diff -r 07a3d5e8524d -r 2a5baff73732 xen/arch/ia64/xen/xensetup.c
--- a/xen/arch/ia64/xen/xensetup.c      Fri Dec 15 09:18:07 2006 +0100
+++ b/xen/arch/ia64/xen/xensetup.c      Fri Dec 15 10:36:59 2006 +0100
@@ -26,6 +26,7 @@
 #include <asm/vmx.h>
 #include <linux/efi.h>
 #include <asm/iosapic.h>
+#include <asm/sn/simulator.h>
 
 unsigned long xenheap_phys_end, total_pages;
 
@@ -39,7 +40,6 @@ int find_max_pfn (unsigned long, unsigne
 int find_max_pfn (unsigned long, unsigned long, void *);
 
 /* FIXME: which header these declarations should be there ? */
-extern long is_platform_hp_ski(void);
 extern void early_setup_arch(char **);
 extern void late_setup_arch(char **);
 extern void hpsim_serial_init(void);
@@ -257,15 +257,19 @@ void start_kernel(void)
     /* Be sure the struct shared_info size is <= XSI_SIZE.  */
     BUILD_BUG_ON(sizeof(struct shared_info) > XSI_SIZE);
 
-    running_on_sim = is_platform_hp_ski();
     /* Kernel may be relocated by EFI loader */
     xen_pstart = ia64_tpa(KERNEL_START);
 
     early_setup_arch(&cmdline);
 
     /* We initialise the serial devices very early so we can get debugging. */
-    if (running_on_sim) hpsim_serial_init();
-    else {
+    if (ia64_platform_is("hpsim")) {
+       running_on_sim = 1;
+       hpsim_serial_init();
+    } else if (ia64_platform_is("sn2")) {
+       if (IS_RUNNING_ON_SIMULATOR())
+           running_on_sim = 1;
+    } else {
        ns16550_init(0, &ns16550_com1);
        /* Also init com2 for Tiger4. */
        ns16550_com2.io_base = 0x2f8;
_______________________________________________
Xen-ia64-devel mailing list
Xen-ia64-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-ia64-devel

 


Rackspace

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