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
|