qemu-devel
[Top][All Lists]
Advanced

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

[Qemu-devel] [patch] disable boot signature checking for floppy disks


From: Lonnie Mendez
Subject: [Qemu-devel] [patch] disable boot signature checking for floppy disks
Date: Tue, 23 May 2006 11:58:32 -0500
User-agent: Mozilla Thunderbird 1.0.7 (X11/20050923)

lo list. There was someone having problems with booting a floppy that had an invalid boot signature (!0xaa55) in the irc channel earlier today. They were however able to boot it in bochs using the option floppy_bootsig_check: disabled=1.

This is something that can easily be enabled in the bios through qemu. The attached patch allows for this by passing the argument -no-fd-bootchk to qemu.
--- qemu/qemu-doc.texi  2006-05-13 11:55:46.000000000 -0500
+++ qemu/qemu-doc.texi  2006-05-23 11:09:18.000000000 -0500
@@ -228,6 +228,9 @@
 the raw disk image you use is not written back. You can however force
 the write back by pressing @key{C-a s} (@pxref{disk_images}). 
 
address@hidden -no-fd-bootchk
+Disable boot signature checking for floppy disks in Bochs bios.
+
 @item -m megs
 Set virtual RAM size to @var{megs} megabytes. Default is 128 MB.
 
--- qemu/vl.h   2006-05-21 11:30:15.000000000 -0500
+++ qemu/vl.h   2006-05-23 10:46:14.000000000 -0500
@@ -880,6 +880,7 @@
 /* pc.c */
 extern QEMUMachine pc_machine;
 extern QEMUMachine isapc_machine;
+extern int fd_bootchk;
 
 void ioport_set_a20(int enable);
 int ioport_get_a20(void);
--- qemu/vl.c   2006-05-21 11:30:15.000000000 -0500
+++ qemu/vl.c   2006-05-23 11:34:43.000000000 -0500
@@ -159,6 +159,7 @@
 #define MAX_CPUS 1
 #endif
 int acpi_enabled = 1;
+int fd_bootchk = 1;
 
 /***********************************************************/
 /* x86 ISA bus support */
@@ -4632,6 +4668,9 @@
            "-cdrom file     use 'file' as IDE cdrom image (cdrom is ide1 
master)\n"
            "-boot [a|c|d]   boot on floppy (a), hard disk (c) or CD-ROM (d)\n"
           "-snapshot       write to temporary files instead of disk image 
files\n"
+#ifdef TARGET_I386
+           "-no-fd-bootchk  disable boot signature checking for floppy disks\n"
+#endif
            "-m megs         set virtual RAM size to megs MB [default=%d]\n"
            "-smp n          set the number of CPUs to 'n' [default=1]\n"
            "-nographic      disable graphical output and redirect serial I/Os 
to console\n"
@@ -4763,6 +4802,9 @@
     QEMU_OPTION_cdrom,
     QEMU_OPTION_boot,
     QEMU_OPTION_snapshot,
+#ifdef TARGET_I386
+    QEMU_OPTION_no_fd_bootchk,
+#endif
     QEMU_OPTION_m,
     QEMU_OPTION_nographic,
 #ifdef HAS_AUDIO
@@ -4826,6 +4868,9 @@
     { "cdrom", HAS_ARG, QEMU_OPTION_cdrom },
     { "boot", HAS_ARG, QEMU_OPTION_boot },
     { "snapshot", 0, QEMU_OPTION_snapshot },
+#ifdef TARGET_I386
+    { "no-fd-bootchk", 0, QEMU_OPTION_no_fd_bootchk },
+#endif
     { "m", HAS_ARG, QEMU_OPTION_m },
     { "nographic", 0, QEMU_OPTION_nographic },
     { "k", HAS_ARG, QEMU_OPTION_k },
@@ -5284,6 +5329,11 @@
             case QEMU_OPTION_fdb:
                 fd_filename[1] = optarg;
                 break;
+#ifdef TARGET_I386
+            case QEMU_OPTION_no_fd_bootchk:
+                fd_bootchk = 0;
+                break;
+#endif
             case QEMU_OPTION_no_code_copy:
                 code_copy_enabled = 0;
                 break;
--- qemu/hw/pc.c        2006-05-21 11:30:15.000000000 -0500
+++ qemu/hw/pc.c        2006-05-23 09:03:29.000000000 -0500
@@ -193,6 +193,8 @@
     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':

reply via email to

[Prev in Thread] Current Thread [Next in Thread]