VirtualBox

Changeset 77392 in vbox for trunk/src/VBox/Devices/Storage


Ignore:
Timestamp:
Feb 20, 2019 4:05:10 PM (6 years ago)
Author:
vboxsync
Message:

DevATA: Return bit 7 clear when reading registers on IDE channel with no drives. Avoids 2x35s delay with EFI IDE device detection. See bugref:5869

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Devices/Storage/DevATA.cpp

    r77349 r77392  
    44934493        else                    /* Device 0 selected (but not present). */
    44944494        {
    4495             Log2(("%s: addr=%#x: LUN#%d not attached\n", __FUNCTION__, addr, s->iLUN));
    4496             return VERR_IOM_IOPORT_UNUSED;
     4495            /* ATA-3 and later specifies that the host must have a pull-down resistor on DD7; ATA-5 explains
     4496             * that this causes the BSY bit to always be read as clear when there is no device on a given
     4497             * channel. Software then does not need to wait a long time for non-existent drives; note that
     4498             * EFI (TianoCore) relies on this behavior.
     4499             */
     4500            *pu32 = 0x7F;
     4501            Log2(("%s: addr=%#x: LUN#%d not attached, val=%#02x\n", __FUNCTION__, addr, s->iLUN, *pu32));
     4502            return VINF_SUCCESS;
    44974503        }
    44984504    }
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