summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--sys/boot/i386/libi386/biosdisk.c4
-rw-r--r--sys/boot/i386/zfsboot/zfsboot.c9
2 files changed, 10 insertions, 3 deletions
diff --git a/sys/boot/i386/libi386/biosdisk.c b/sys/boot/i386/libi386/biosdisk.c
index cf0b033..a67a7ef 100644
--- a/sys/boot/i386/libi386/biosdisk.c
+++ b/sys/boot/i386/libi386/biosdisk.c
@@ -214,10 +214,12 @@ bd_init(void)
/* sequence 0, 0x80 */
for (base = 0; base <= 0x80; base += 0x80) {
for (unit = base; (nbdinfo < MAXBDDEV); unit++) {
+#ifndef VIRTUALBOX
/* check the BIOS equipment list for number of fixed disks */
if((base == 0x80) &&
(nfd >= *(unsigned char *)PTOV(BIOS_NUMDRIVES)))
- break;
+ break;
+#endif
bdinfo[nbdinfo].bd_unit = unit;
bdinfo[nbdinfo].bd_flags = (unit < 0x80) ? BD_FLOPPY : 0;
diff --git a/sys/boot/i386/zfsboot/zfsboot.c b/sys/boot/i386/zfsboot/zfsboot.c
index b6e5f0c..c6ef699 100644
--- a/sys/boot/i386/zfsboot/zfsboot.c
+++ b/sys/boot/i386/zfsboot/zfsboot.c
@@ -94,7 +94,7 @@ __FBSDID("$FreeBSD$");
#define V86_CY(x) ((x) & 1)
#define V86_ZR(x) ((x) & 0x40)
-#define BIOS_NUMDRIVES 0x475
+#define BIOS_NUMDRIVES 0x475
#define DRV_HARD 0x80
#define DRV_MASK 0x7f
@@ -667,7 +667,12 @@ main(void)
* will find any other available pools and it may fill in missing
* vdevs for the boot pool.
*/
- for (i = 0; i < *(unsigned char *)PTOV(BIOS_NUMDRIVES); i++) {
+#ifndef VIRTUALBOX
+ for (i = 0; i < *(unsigned char *)PTOV(BIOS_NUMDRIVES); i++)
+#else
+ for (i = 0; i < MAXBDDEV; i++)
+#endif
+ {
if ((i | DRV_HARD) == *(uint8_t *)PTOV(ARGS))
continue;
OpenPOWER on IntegriCloud