]> git.proxmox.com Git - qemu.git/commitdiff
-no-fd-bootchk option (Lonnie Mendez)
authorbellard <bellard@c046a42c-6fe2-441c-8c8c-71466251a162>
Wed, 14 Jun 2006 16:03:05 +0000 (16:03 +0000)
committerbellard <bellard@c046a42c-6fe2-441c-8c8c-71466251a162>
Wed, 14 Jun 2006 16:03:05 +0000 (16:03 +0000)
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@1976 c046a42c-6fe2-441c-8c8c-71466251a162

hw/pc.c
qemu-doc.texi
vl.c
vl.h

diff --git a/hw/pc.c b/hw/pc.c
index b72219027728ba096504c1d46dc94aacff38ed1c..361f4bb934d5e2a5b00bce60a8f53de3e37c1a0b 100644 (file)
--- a/hw/pc.c
+++ b/hw/pc.c
@@ -193,6 +193,8 @@ static void cmos_init(int ram_size, int boot_device, BlockDriverState **hd_table
     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':
@@ -264,10 +266,6 @@ static void cmos_init(int ram_size, int boot_device, BlockDriverState **hd_table
         }
     }
     rtc_set_memory(s, 0x39, val);
-
-    /* Disable check of 0x55AA signature on the last two bytes of
-       first sector of disk. XXX: make it the default ? */
-    //    rtc_set_memory(s, 0x38, 1);
 }
 
 void ioport_set_a20(int enable)
index 23bf68008b2f27f9fb543c51f4be8baec3362a31..5a3f8f4d4f77480c910efe8f838215c271dcdd40 100644 (file)
@@ -228,6 +228,10 @@ Write to temporary files instead of disk image files. In this case,
 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}). 
 
+@item -no-fd-bootchk
+Disable boot signature checking for floppy disks in Bochs BIOS. It may
+be needed to boot from old floppy disks.
+
 @item -m megs
 Set virtual RAM size to @var{megs} megabytes. Default is 128 MB.
 
diff --git a/vl.c b/vl.c
index 5cbd1644a493b26b1bd4a47916621658f6a64453..3d80ec82da068b48a47fd583044fa251d3772bc9 100644 (file)
--- a/vl.c
+++ b/vl.c
@@ -159,6 +159,7 @@ int vnc_display = -1;
 #define MAX_CPUS 1
 #endif
 int acpi_enabled = 1;
+int fd_bootchk = 1;
 
 /***********************************************************/
 /* x86 ISA bus support */
@@ -4634,6 +4635,9 @@ void help(void)
            "-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"
@@ -4765,6 +4769,9 @@ enum {
     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
@@ -4828,6 +4835,9 @@ const QEMUOption qemu_options[] = {
     { "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 },
@@ -5286,6 +5296,11 @@ int main(int argc, char **argv)
             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;
diff --git a/vl.h b/vl.h
index ba99d4647181827d523af5c3ff025f2159a4b1c3..d2010f1ee3abf59bf5894deea40fa43c4c0c7f1b 100644 (file)
--- a/vl.h
+++ b/vl.h
@@ -889,6 +889,7 @@ void acpi_bios_init(void);
 /* 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);