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

[Xen-changelog] [xen-unstable] [qemu patches] Update patches for changeset 11206:fc3e7e65b953.



# HG changeset patch
# User Christian Limpach <Christian.Limpach@xxxxxxxxxxxxx>
# Node ID 639c5eff0f5abef143ff7239dc0c5c6728da7615
# Parent  fc3e7e65b9530bf1c0fe7a7f12320edd8a656185
[qemu patches] Update patches for changeset 11206:fc3e7e65b953.

Signed-off-by: Christian Limpach <Christian.Limpach@xxxxxxxxxxxxx>
---
 tools/ioemu/patches/qemu-bootorder |  124 +++++++++++++++++++++++++++++++++++++
 tools/ioemu/patches/series         |    1 
 2 files changed, 125 insertions(+)

diff -r fc3e7e65b953 -r 639c5eff0f5a tools/ioemu/patches/series
--- a/tools/ioemu/patches/series        Sun Aug 20 23:33:28 2006 +0100
+++ b/tools/ioemu/patches/series        Sun Aug 20 23:34:17 2006 +0100
@@ -43,3 +43,4 @@ xen-support-buffered-ioreqs
 xen-support-buffered-ioreqs
 qemu-daemonize
 xen-platform-device
+qemu-bootorder
diff -r fc3e7e65b953 -r 639c5eff0f5a tools/ioemu/patches/qemu-bootorder
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/tools/ioemu/patches/qemu-bootorder        Sun Aug 20 23:34:17 2006 +0100
@@ -0,0 +1,166 @@
+Index: ioemu/vl.c
+===================================================================
+--- ioemu.orig/vl.c    2006-08-20 22:22:36.000000000 +0100
++++ ioemu/vl.c 2006-08-20 23:22:25.000000000 +0100
+@@ -124,7 +124,7 @@
+ int vncunused;
+ const char* keyboard_layout = NULL;
+ int64_t ticks_per_sec;
+-int boot_device = 'c';
++char *boot_device = NULL;
+ uint64_t ram_size;
+ int pit_min_timer_count = 0;
+ int nb_nics;
+@@ -6057,14 +6057,14 @@
+                 break;
+ #endif /* !CONFIG_DM */
+             case QEMU_OPTION_boot:
+-                boot_device = optarg[0];
+-                if (boot_device != 'a' && 
++                boot_device = strdup(optarg);
++                if (strspn(boot_device, "acd"
+ #ifdef TARGET_SPARC
+-                  // Network boot
+-                  boot_device != 'n' &&
++                           "n"
+ #endif
+-                    boot_device != 'c' && boot_device != 'd') {
+-                    fprintf(stderr, "qemu: invalid boot device '%c'\n", 
boot_device);
++                        ) != strlen(boot_device)) {
++                    fprintf(stderr, "qemu: invalid boot device in '%s'\n",
++                            boot_device);
+                     exit(1);
+                 }
+                 break;
+@@ -6328,6 +6328,7 @@
+         fd_filename[0] == '\0')
+         help();
+     
++#if 0
+     /* boot to cd by default if no hard disk */
+     if (hd_filename[0] == '\0' && boot_device == 'c') {
+         if (fd_filename[0] != '\0')
+@@ -6335,6 +6336,7 @@
+         else
+             boot_device = 'd';
+     }
++#endif
+ #endif /* !CONFIG_DM */
+ 
+     setvbuf(stdout, NULL, _IOLBF, 0);
+@@ -6593,6 +6595,7 @@
+                   ds, fd_filename, snapshot,
+                   kernel_filename, kernel_cmdline, initrd_filename,
+                   timeoffset);
++    free(boot_device);
+ 
+     /* init USB devices */
+     if (usb_enabled) {
+Index: ioemu/vl.h
+===================================================================
+--- ioemu.orig/vl.h    2006-08-20 22:22:36.000000000 +0100
++++ ioemu/vl.h 2006-08-20 23:22:25.000000000 +0100
+@@ -575,7 +575,7 @@
+ #ifndef QEMU_TOOL
+ 
+ typedef void QEMUMachineInitFunc(uint64_t ram_size, int vga_ram_size, 
+-                                 int boot_device,
++                                 char *boot_device,
+              DisplayState *ds, const char **fd_filename, int snapshot,
+              const char *kernel_filename, const char *kernel_cmdline,
+              const char *initrd_filename, time_t timeoffset);
+@@ -1020,7 +1020,7 @@
+                     uint32_t start, uint32_t count);
+ int PPC_NVRAM_set_params (m48t59_t *nvram, uint16_t NVRAM_size,
+                           const unsigned char *arch,
+-                          uint32_t RAM_size, int boot_device,
++                          uint32_t RAM_size, char *boot_device,
+                           uint32_t kernel_image, uint32_t kernel_size,
+                           const char *cmdline,
+                           uint32_t initrd_image, uint32_t initrd_size,
+Index: ioemu/hw/pc.c
+===================================================================
+--- ioemu.orig/hw/pc.c 2006-08-20 22:22:36.000000000 +0100
++++ ioemu/hw/pc.c      2006-08-20 23:22:25.000000000 +0100
+@@ -158,8 +158,23 @@
+     rtc_set_memory(s, info_ofs + 8, sectors);
+ }
+ 
++static int get_bios_disk(char *boot_device, int index) {
++
++    if (index < strlen(boot_device)) {
++        switch (boot_device[index]) {
++        case 'a':
++            return 0x01;            /* floppy */
++        case 'c':
++            return 0x02;            /* hard drive */
++        case 'd':
++            return 0x03;            /* cdrom */
++        }
++    }
++    return 0x00;                /* no device */
++}
++
+ /* hd_table must contain 4 block drivers */
+-static void cmos_init(uint64_t ram_size, int boot_device, BlockDriverState 
**hd_table, time_t timeoffset)
++static void cmos_init(uint64_t ram_size, char *boot_device, BlockDriverState 
**hd_table, time_t timeoffset)
+ {
+     RTCState *s = rtc_state;
+     int val;
+@@ -205,21 +220,14 @@
+     rtc_set_memory(s, 0x34, val);
+     rtc_set_memory(s, 0x35, val >> 8);
+     
+-    switch(boot_device) {
+-    case 'a':
+-    case 'b':
+-        rtc_set_memory(s, 0x3d, 0x01); /* floppy boot */
+-        if (!fd_bootchk)
+-            rtc_set_memory(s, 0x38, 0x01); /* disable signature check */
+-        break;
+-    default:
+-    case 'c':
+-        rtc_set_memory(s, 0x3d, 0x02); /* hard drive boot */
+-        break;
+-    case 'd':
+-        rtc_set_memory(s, 0x3d, 0x03); /* CD-ROM boot */
+-        break;
+-    }
++    if (boot_device == NULL) {
++        /* default to hd, then cd, then floppy. */
++        boot_device = "cda";
++    }
++    rtc_set_memory(s, 0x3d, get_bios_disk(boot_device, 0) |
++                   (get_bios_disk(boot_device, 1) << 4));
++    rtc_set_memory(s, 0x38, (get_bios_disk(boot_device, 2) << 4) |
++                   (!fd_bootchk ? 0x00 : 0x01));
+ 
+     /* floppy type */
+ 
+@@ -617,7 +625,7 @@
+ #define NOBIOS 1
+ 
+ /* PC hardware initialisation */
+-static void pc_init1(uint64_t ram_size, int vga_ram_size, int boot_device,
++static void pc_init1(uint64_t ram_size, int vga_ram_size, char *boot_device,
+                      DisplayState *ds, const char **fd_filename, int snapshot,
+                      const char *kernel_filename, const char *kernel_cmdline,
+                      const char *initrd_filename, time_t timeoffset,
+@@ -919,7 +927,7 @@
+     }
+ }
+ 
+-static void pc_init_pci(uint64_t ram_size, int vga_ram_size, int boot_device,
++static void pc_init_pci(uint64_t ram_size, int vga_ram_size, char 
*boot_device,
+                         DisplayState *ds, const char **fd_filename, 
+                         int snapshot, 
+                         const char *kernel_filename, 
+@@ -933,7 +941,7 @@
+              initrd_filename, timeoffset, 1);
+ }
+ 
+-static void pc_init_isa(uint64_t ram_size, int vga_ram_size, int boot_device,
++static void pc_init_isa(uint64_t ram_size, int vga_ram_size, char 
*boot_device,
+                         DisplayState *ds, const char **fd_filename, 
+                         int snapshot, 
+                         const char *kernel_filename, 

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