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

[Xen-changelog] Basic update to new ns16550 driver (not all working yet)



ChangeSet 1.1666, 2005/06/03 10:39:51-06:00, djm@xxxxxxxxxxxxxxx

        Basic update to new ns16550 driver (not all working yet)
        
        Signed-off by: Dan Magenheimer <dan.magenheimer@xxxxxx>
        Signed-off-by Kevin Tian <Kevin.tian@xxxxxxxxx>



 arch/ia64/Makefile                   |    2 
 arch/ia64/hpsimserial.c              |   23 ++++++++
 arch/ia64/patch/linux-2.6.11/setup.c |   33 ++++++-----
 arch/ia64/xensetup.c                 |   98 +++++++++++++++++------------------
 include/asm-ia64/init.h              |    2 
 5 files changed, 92 insertions(+), 66 deletions(-)


diff -Nru a/xen/arch/ia64/Makefile b/xen/arch/ia64/Makefile
--- a/xen/arch/ia64/Makefile    2005-06-04 12:01:46 -04:00
+++ b/xen/arch/ia64/Makefile    2005-06-04 12:01:46 -04:00
@@ -4,7 +4,7 @@
 
 OBJS = xensetup.o setup.o time.o irq.o ia64_ksyms.o process.o smp.o \
        xenmisc.o pdb-stub.o acpi.o hypercall.o \
-       machvec.o dom0_ops.o domain.o \
+       machvec.o dom0_ops.o domain.o hpsimserial.o \
        idle0_task.o pal.o hpsim.o efi.o efi_stub.o ivt.o mm_contig.o \
        xenmem.o sal.o cmdline.o mm_init.o tlb.o smpboot.o \
        extable.o linuxextable.o xenirq.o xentime.o \
diff -Nru a/xen/arch/ia64/hpsimserial.c b/xen/arch/ia64/hpsimserial.c
--- /dev/null   Wed Dec 31 16:00:00 196900
+++ b/xen/arch/ia64/hpsimserial.c       2005-06-04 12:01:46 -04:00
@@ -0,0 +1,23 @@
+/*
+ * HP Ski simulator serial I/O
+ *
+ * Copyright (C) 2004 Hewlett-Packard Co
+ *     Dan Magenheimer <dan.magenheimer@xxxxxx>
+ */
+
+#include <linux/config.h>
+#include <xen/sched.h>
+#include <xen/serial.h>
+#include <asm/hpsim_ssc.h>
+
+static void hp_ski_putc(struct serial_port *port, char c)
+{
+       ia64_ssc(c,0,0,0,SSC_PUTCHAR);
+}
+
+static struct uart_driver hp_ski = { .putc = hp_ski_putc };
+
+void hpsim_serial_init(void)
+{
+       serial_register_uart(0, &hp_ski, 0);
+}
diff -Nru a/xen/arch/ia64/patch/linux-2.6.11/setup.c 
b/xen/arch/ia64/patch/linux-2.6.11/setup.c
--- a/xen/arch/ia64/patch/linux-2.6.11/setup.c  2005-06-04 12:01:46 -04:00
+++ b/xen/arch/ia64/patch/linux-2.6.11/setup.c  2005-06-04 12:01:46 -04:00
@@ -1,5 +1,5 @@
---- 
/home/adsharma/disk2/xen-ia64/xeno-unstable-rebase.bk/xen/../../linux-2.6.11/arch/ia64/kernel/setup.c
      2005-03-01 23:37:49.000000000 -0800
-+++ 
/home/adsharma/disk2/xen-ia64/xeno-unstable-rebase.bk/xen/arch/ia64/setup.c     
   2005-05-18 12:40:50.000000000 -0700
+--- ../../linux-2.6.11/arch/ia64/kernel/setup.c        2005-03-02 
00:37:49.000000000 -0700
++++ arch/ia64/setup.c  2005-06-03 10:14:24.000000000 -0600
 @@ -51,6 +51,10 @@
  #include <asm/smp.h>
  #include <asm/system.h>
@@ -11,7 +11,7 @@
  
  #if defined(CONFIG_SMP) && (IA64_CPU_SIZE > PAGE_SIZE)
  # error "struct cpuinfo_ia64 too big!"
-@@ -127,7 +130,16 @@
+@@ -127,7 +131,16 @@
                range_end   = min(end, rsvd_region[i].start);
  
                if (range_start < range_end)
@@ -28,7 +28,7 @@
  
                /* nothing more available in this segment */
                if (range_end == end) return 0;
-@@ -185,7 +197,12 @@
+@@ -185,7 +198,12 @@
        n++;
  
        rsvd_region[n].start = (unsigned long) ia64_imva((void *)KERNEL_START);
@@ -41,7 +41,7 @@
        n++;
  
  #ifdef CONFIG_BLK_DEV_INITRD
-@@ -299,7 +316,11 @@
+@@ -299,17 +317,25 @@
  }
  
  void __init
@@ -53,22 +53,33 @@
  {
        unw_init();
  
-@@ -308,8 +329,14 @@
+       ia64_patch_vtop((u64) __start___vtop_patchlist, (u64) 
__end___vtop_patchlist);
+ 
        *cmdline_p = __va(ia64_boot_param->command_line);
++#ifdef XEN
++      efi_init();
++#else
        strlcpy(saved_command_line, *cmdline_p, COMMAND_LINE_SIZE);
  
-+#ifdef XEN
-+      cmdline_parse(*cmdline_p);
-+#undef CONFIG_ACPI_BOOT
-+#endif
        efi_init();
-+#ifndef XEN
        io_port_init();
 +#endif
  
  #ifdef CONFIG_IA64_GENERIC
        {
-@@ -351,8 +378,18 @@
+@@ -336,6 +362,11 @@
+       }
+ #endif
+ 
++#ifdef XEN
++      early_cmdline_parse(cmdline_p);
++      cmdline_parse(*cmdline_p);
++#undef CONFIG_ACPI_BOOT
++#endif
+       if (early_console_setup(*cmdline_p) == 0)
+               mark_bsp_online();
+ 
+@@ -351,8 +382,18 @@
  # endif
  #endif /* CONFIG_APCI_BOOT */
  
@@ -87,7 +98,7 @@
        /* process SAL system table: */
        ia64_sal_init(efi.sal_systab);
  
-@@ -360,6 +397,10 @@
+@@ -360,6 +401,10 @@
        cpu_physical_id(0) = hard_smp_processor_id();
  #endif
  
@@ -98,7 +109,7 @@
        cpu_init();     /* initialize the bootstrap CPU */
  
  #ifdef CONFIG_ACPI_BOOT
-@@ -492,12 +533,14 @@
+@@ -492,12 +537,14 @@
  {
  }
  
@@ -113,7 +124,7 @@
  
  void
  identify_cpu (struct cpuinfo_ia64 *c)
-@@ -551,6 +594,12 @@
+@@ -551,6 +598,12 @@
        }
        c->unimpl_va_mask = ~((7L<<61) | ((1L << (impl_va_msb + 1)) - 1));
        c->unimpl_pa_mask = ~((1L<<63) | ((1L << phys_addr_size) - 1));
@@ -126,7 +137,7 @@
  }
  
  void
-@@ -659,7 +708,11 @@
+@@ -659,7 +712,11 @@
                                        | IA64_DCR_DA | IA64_DCR_DD | 
IA64_DCR_LC));
        atomic_inc(&init_mm.mm_count);
        current->active_mm = &init_mm;
diff -Nru a/xen/arch/ia64/xensetup.c b/xen/arch/ia64/xensetup.c
--- a/xen/arch/ia64/xensetup.c  2005-06-04 12:01:46 -04:00
+++ b/xen/arch/ia64/xensetup.c  2005-06-04 12:01:46 -04:00
@@ -19,6 +19,7 @@
 #include <asm/meminit.h>
 #include <asm/page.h>
 #include <asm/setup.h>
+#include <xen/string.h>
 
 unsigned long xenheap_phys_end;
 
@@ -35,39 +36,18 @@
 int find_max_pfn (unsigned long, unsigned long, void *);
 void start_of_day(void);
 
-/* opt_console: comma-separated list of console outputs. */
-#ifdef IA64
-unsigned char opt_console[30] = "com1";
-#else
-unsigned char opt_console[30] = "com1,vga";
-#endif
-/* opt_conswitch: a character pair controlling console switching. */
-/* Char 1: CTRL+<char1> is used to switch console input between Xen and DOM0 */
-/* Char 2: If this character is 'x', then do not auto-switch to DOM0 when it */
-/*         boots. Any other value, or omitting the char, enables auto-switch */
-unsigned char opt_conswitch[5] = "a"; /* NB. '`' would disable switching. */
-/* opt_com[12]: Config serial port with a string <baud>,DPS,<io-base>,<irq>. */
-unsigned char opt_com1[30] = "", opt_com2[30] = "";
-/* opt_dom0_mem: Kilobytes of memory allocated to domain 0. */
-unsigned int opt_dom0_mem = 16000;
 /* opt_noht: If true, Hyperthreading is ignored. */
-int opt_noht=0;
+int opt_noht = 0;
+boolean_param("noht", opt_noht);
+
 /* opt_nosmp: If true, secondary processors are ignored. */
-int opt_nosmp=0;
-/* opt_noreboot: If true, machine will need manual reset on error. */
-int opt_noreboot=0;
-/* opt_watchdog: If true, run a watchdog NMI on each processor. */
-int opt_watchdog=0;
-/* opt_pdb: Name of serial port for Xen pervasive debugger (and enable pdb) */
-unsigned char opt_pdb[10] = "none";
-/* opt_tbuf_size: trace buffer size (in pages) */
-unsigned int opt_tbuf_size = 10;
-/* opt_sched: scheduler - default to Borrowed Virtual Time */
-char opt_sched[10] = "bvt";
-/* opt_leveltrigger, opt_edgetrigger: Force an IO-APIC-routed IRQ to be */
-/*                                    level- or edge-triggered.         */
-/* Example: 'leveltrigger=4,5,6,20 edgetrigger=21'. */
-char opt_leveltrigger[30] = "", opt_edgetrigger[30] = "";
+static int opt_nosmp = 0;
+boolean_param("nosmp", opt_nosmp);
+
+/* maxcpus: maximum number of CPUs to activate. */
+static unsigned int max_cpus = NR_CPUS;
+integer_param("maxcpus", max_cpus); 
+
 /*
  * opt_xenheap_megabytes: Size of Xen heap in megabytes, including:
  *     xen image
@@ -80,23 +60,6 @@
  */
 unsigned int opt_xenheap_megabytes = XENHEAP_DEFAULT_MB;
 unsigned long xenheap_size = XENHEAP_DEFAULT_SIZE;
-/*
- * opt_nmi: one of 'ignore', 'dom0', or 'fatal'.
- *  fatal:  Xen prints diagnostic message and then hangs.
- *  dom0:   The NMI is virtualised to DOM0.
- *  ignore: The NMI error is cleared and ignored.
- */
-#ifdef NDEBUG
-char opt_nmi[10] = "dom0";
-#else
-char opt_nmi[10] = "fatal";
-#endif
-/*
- * Comma-separated list of hexadecimal page numbers containing bad bytes.
- * e.g. 'badpage=0x3f45,0x8a321'.
- */
-char opt_badpage[100] = "";
-
 extern long running_on_sim;
 unsigned long xen_pstart;
 
@@ -133,6 +96,42 @@
         (*call)();
 }
 
+/*
+ * IPF loader only supports one commaind line currently, for
+ * both xen and guest kernel. This function provides pre-parse
+ * to mixed command line, to split it into two parts.
+ *
+ * User should split the parameters by "--", with strings after
+ * spliter for guest kernel. Missing "--" means whole line belongs

_______________________________________________
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®.