VirtualBox

Changeset 55136 in vbox for trunk/src/VBox/Devices/PC/BIOS


Ignore:
Timestamp:
Apr 8, 2015 2:25:23 PM (10 years ago)
Author:
vboxsync
Message:

BIOS: Corrected off-by-one sector count for SCSI/SAS devices.

Location:
trunk/src/VBox/Devices/PC/BIOS
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Devices/PC/BIOS/boot.c

    r54451 r55136  
    255255#endif // BX_ELTORITO_BOOT
    256256
     257// Sanity check on the LAN boot seg macro
     258//#if VBOX_LANBOOT_SEG == 0
     259//#error Invalid VBOX_LANBOOT_SEG definition!
     260//#endif
     261
    257262    // Check for boot from LAN first
    258263    if (bootlan == 1) {
  • trunk/src/VBox/Devices/PC/BIOS/floppy.c

    r54563 r55136  
    8282uint8_t floppy_wait_for_interrupt(void)
    8383{
     84    uint32_t    retries = 18;
     85
    8486    int_disable();
    85     for (;;)
     87    for (;retries;--retries)
    8688    {
    8789        uint8_t val8 = read_byte(0x0040, 0x003e);
     
    9092        int_enable_hlt_disable();
    9193    }
     94    return 0;
    9295}
    9396
     
    175178        // wait on 40:3e bit 7 to become 1
    176179        do {
     180            val8 = inb(0x80);
    177181            val8 = read_byte(0x0040, 0x003e);
    178         } while ( (val8 & 0x80) == 0 );
     182        } while ( (val8 & 0x80) == 0 && --retries);
    179183        val8 &= 0x7f;
    180184        int_disable();
  • trunk/src/VBox/Devices/PC/BIOS/orgs.asm

    r51061 r55136  
    18201820include smidmi.inc
    18211821
     1822                BIOSORG 0FFE8h
     1823                dw      3330h
     1824
    18221825;; --------------------------------------------------------
    18231826;; Processor reset entry point
  • trunk/src/VBox/Devices/PC/BIOS/post.c

    r50160 r55136  
    100100        }
    101101    }
     102    outb_cmos(0x12, 0x20);
    102103}
  • trunk/src/VBox/Devices/PC/BIOS/scsi.c

    r55132 r55136  
    429429                          | ((uint32_t)buffer[2] << 8)
    430430                          | ((uint32_t)buffer[3]);
     431                ++sectors;  /* Returned value is the last LBA, zero-based. */
    431432
    432433                sector_size =   ((uint32_t)buffer[4] << 24)
Note: See TracChangeset for help on using the changeset viewer.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette