aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorbellard <bellard@c046a42c-6fe2-441c-8c8c-71466251a162>2006-06-14 16:03:05 +0000
committerbellard <bellard@c046a42c-6fe2-441c-8c8c-71466251a162>2006-06-14 16:03:05 +0000
commit52ca8d6af01d140b1a022958bb5953f00bb7c714 (patch)
treefcc145155a5b690358da9071820c2356b92d3b82
parent5cbfcd00b0822d9a1a69a65a2d6927f6c4142787 (diff)
-no-fd-bootchk option (Lonnie Mendez)
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@1976 c046a42c-6fe2-441c-8c8c-71466251a162
-rw-r--r--hw/pc.c6
-rw-r--r--qemu-doc.texi4
-rw-r--r--vl.c15
-rw-r--r--vl.h1
4 files changed, 22 insertions, 4 deletions
diff --git a/hw/pc.c b/hw/pc.c
index b722190277..361f4bb934 100644
--- 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)
diff --git a/qemu-doc.texi b/qemu-doc.texi
index 23bf68008b..5a3f8f4d4f 100644
--- a/qemu-doc.texi
+++ b/qemu-doc.texi
@@ -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 5cbd1644a4..3d80ec82da 100644
--- 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 ba99d46471..d2010f1ee3 100644
--- 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);