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-changelog

[Xen-changelog] [IA64] use of max_addr= & command line

To: xen-changelog@xxxxxxxxxxxxxxxxxxx
Subject: [Xen-changelog] [IA64] use of max_addr= & command line
From: Xen patchbot -unstable <patchbot-unstable@xxxxxxxxxxxxxxxxxxx>
Date: Sat, 18 Mar 2006 11:18:28 +0000
Delivery-date: Sat, 18 Mar 2006 11:22:41 +0000
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
List-help: <mailto:xen-changelog-request@lists.xensource.com?subject=help>
List-id: BK change log <xen-changelog.lists.xensource.com>
List-post: <mailto:xen-changelog@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-changelog>, <mailto:xen-changelog-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-changelog>, <mailto:xen-changelog-request@lists.xensource.com?subject=unsubscribe>
Reply-to: xen-devel@xxxxxxxxxxxxxxxxxxx
Sender: xen-changelog-bounces@xxxxxxxxxxxxxxxxxxx
# HG changeset patch
# User awilliam@xxxxxxxxxxx
# Node ID 9c0123c8a1b4de9414001876a262428ca61dc34c
# Parent  edbfa36f2451db0778133285bb427ec355d941bb
[IA64] use of max_addr= & command line

Use 'max_addr' option to limit the amount of physical memory.  The
default is 4G (the same as the previous hard limit).  The hard-coded
limit is removed.  dom0_command_line now contains the cmdline for
dom0 linux.  saved_command_line now contains the cmdline for Xen (it
is used in Xen).

Signed-off-by: Tristan Gingold <tristan.gingold@xxxxxxxx>

diff -r edbfa36f2451 -r 9c0123c8a1b4 xen/arch/ia64/linux-xen/efi.c
--- a/xen/arch/ia64/linux-xen/efi.c     Thu Mar 16 19:02:39 2006
+++ b/xen/arch/ia64/linux-xen/efi.c     Thu Mar 16 19:06:48 2006
@@ -42,7 +42,12 @@
 struct efi efi;
 EXPORT_SYMBOL(efi);
 static efi_runtime_services_t *runtime;
+#ifdef XEN
+// this is a temporary hack to avoid CONFIG_VIRTUAL_MEM_MAP
+static unsigned long mem_limit = ~0UL, max_addr = 0x100000000;
+#else
 static unsigned long mem_limit = ~0UL, max_addr = ~0UL;
+#endif
 
 #define efi_call_virt(f, args...)      (*(f))(args)
 
@@ -329,8 +334,6 @@
                if (running_on_sim && md->type != EFI_CONVENTIONAL_MEMORY)
                        continue;
 }
-// this is a temporary hack to avoid CONFIG_VIRTUAL_MEM_MAP
-               if (md->phys_addr >= 0x100000000) continue;
 #endif
                /*
                 * granule_addr is the base of md's first granule.
diff -r edbfa36f2451 -r 9c0123c8a1b4 xen/arch/ia64/linux-xen/setup.c
--- a/xen/arch/ia64/linux-xen/setup.c   Thu Mar 16 19:02:39 2006
+++ b/xen/arch/ia64/linux-xen/setup.c   Thu Mar 16 19:06:48 2006
@@ -384,6 +384,9 @@
        *cmdline_p = __va(ia64_boot_param->command_line);
 #ifndef XEN
        strlcpy(saved_command_line, *cmdline_p, COMMAND_LINE_SIZE);
+#else
+       early_cmdline_parse(cmdline_p);
+       cmdline_parse(*cmdline_p);
 #endif
 
        efi_init();
@@ -414,10 +417,6 @@
        }
 #endif
 
-#ifdef XEN
-       early_cmdline_parse(cmdline_p);
-       cmdline_parse(*cmdline_p);
-#endif
        if (early_console_setup(*cmdline_p) == 0)
                mark_bsp_online();
 
diff -r edbfa36f2451 -r 9c0123c8a1b4 xen/arch/ia64/xen/domain.c
--- a/xen/arch/ia64/xen/domain.c        Thu Mar 16 19:02:39 2006
+++ b/xen/arch/ia64/xen/domain.c        Thu Mar 16 19:06:48 2006
@@ -26,6 +26,7 @@
 #include <asm/processor.h>
 #include <asm/desc.h>
 #include <asm/hw_irq.h>
+#include <asm/setup.h>
 //#include <asm/mpspec.h>
 #include <xen/irq.h>
 #include <xen/event.h>
@@ -36,7 +37,6 @@
 #include <xen/elf.h>
 //#include <asm/page.h>
 #include <asm/pgalloc.h>
-#include <asm/dma.h>   /* for MAX_DMA_ADDRESS */
 
 #include <asm/asm-offsets.h>  /* for IA64_THREAD_INFO_SIZE */
 
@@ -49,6 +49,7 @@
 #include <asm/pal.h>
 #include <asm/vhpt.h>
 #include <public/hvm/ioreq.h>
+#include <public/arch-ia64.h>
 #include <asm/tlbflush.h>
 #include <asm/regionreg.h>
 
@@ -415,7 +416,7 @@
 {
        struct domain *d = v->domain;
        struct pt_regs *regs;
-       extern char saved_command_line[];
+       extern char dom0_command_line[];
 
 #ifdef CONFIG_DOMAIN0_CONTIGUOUS
        if (d == dom0) start_pc += dom0_start;
@@ -439,24 +440,27 @@
        if (VMX_DOMAIN(v)) {
                vmx_init_all_rr(v);
                if (d == dom0)
-//                 VCPU(v,vgr[12]) = dom_fw_setup(d,saved_command_line,256L);
-                   regs->r28 = dom_fw_setup(d,saved_command_line,256L);
+                   regs->r28 = dom_fw_setup(d,dom0_command_line,
+                                            COMMAND_LINE_SIZE);
                /* Virtual processor context setup */
                VCPU(v, vpsr) = IA64_PSR_BN;
                VCPU(v, dcr) = 0;
        } else {
                init_all_rr(v);
                if (d == dom0) 
-                   regs->r28 = dom_fw_setup(d,saved_command_line,256L);
+                   regs->r28 = dom_fw_setup(d,dom0_command_line,
+                                            COMMAND_LINE_SIZE);
                else {
                    regs->ar_rsc |= (2 << 2); /* force PL2/3 */
                    if (*d->arch.cmdline == '\0') {
 #define DEFAULT_CMDLINE "nomca nosmp xencons=tty0 console=tty0 root=/dev/hda1"
-                       regs->r28 = dom_fw_setup(d,DEFAULT_CMDLINE,256L);
+                       regs->r28 = dom_fw_setup(d,DEFAULT_CMDLINE,
+                                                sizeof (DEFAULT_CMDLINE));
                        printf("domU command line defaulted to"
                                DEFAULT_CMDLINE "\n");
                    }
-                   else regs->r28 = dom_fw_setup(d,d->arch.cmdline,256L);
+                   else regs->r28 = dom_fw_setup(d,d->arch.cmdline, 
+                                                 IA64_COMMAND_LINE_SIZE);
                }
                VCPU(v, banknum) = 1;
                VCPU(v, metaphysical_mode) = 1;
@@ -645,12 +649,13 @@
 
 #ifdef CONFIG_DOMAIN0_CONTIGUOUS
        if (d == dom0) {
+               pte_t pteval;
                if (mpaddr < dom0_start || mpaddr >= dom0_start + dom0_size) {
                        //printk("lookup_domain_mpa: bad dom0 mpaddr 
0x%lx!\n",mpaddr);
                        //printk("lookup_domain_mpa: 
start=0x%lx,end=0x%lx!\n",dom0_start,dom0_start+dom0_size);
                        mpafoo(mpaddr);
                }
-               pte_t pteval = pfn_pte(mpaddr >> PAGE_SHIFT,
+               pteval = pfn_pte(mpaddr >> PAGE_SHIFT,
                        __pgprot(__DIRTY_BITS | _PAGE_PL_2 | _PAGE_AR_RWX));
                pte = &pteval;
                return *(unsigned long *)pte;
diff -r edbfa36f2451 -r 9c0123c8a1b4 xen/arch/ia64/xen/xensetup.c
--- a/xen/arch/ia64/xen/xensetup.c      Thu Mar 16 19:02:39 2006
+++ b/xen/arch/ia64/xen/xensetup.c      Thu Mar 16 19:06:48 2006
@@ -27,6 +27,7 @@
 unsigned long xenheap_phys_end;
 
 char saved_command_line[COMMAND_LINE_SIZE];
+char dom0_command_line[COMMAND_LINE_SIZE];
 
 struct vcpu *idle_vcpu[NR_CPUS];
 
@@ -119,11 +120,12 @@
 void early_cmdline_parse(char **cmdline_p)
 {
     char *guest_cmd;
-    char *split = "--";
+    static const char * const split = "--";
 
     if (*cmdline_p == NULL) {
        *cmdline_p = &null[0];
        saved_command_line[0] = '\0';
+       dom0_command_line[0] = '\0';
        return;
     }
 
@@ -138,7 +140,8 @@
        while (*guest_cmd == ' ') guest_cmd++;
     }
 
-    strlcpy(saved_command_line, guest_cmd, COMMAND_LINE_SIZE);
+    strlcpy(saved_command_line, *cmdline_p, COMMAND_LINE_SIZE);
+    strlcpy(dom0_command_line, guest_cmd, COMMAND_LINE_SIZE);
     return;
 }
 

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

<Prev in Thread] Current Thread [Next in Thread>
  • [Xen-changelog] [IA64] use of max_addr= & command line, Xen patchbot -unstable <=