Skip to content
Snippets Groups Projects
Commit 00a16a4e authored by John Hodge's avatar John Hodge
Browse files

Modules/ATA - Soft reset devices during startup

parent 13e47e2c
Branches
Tags
No related merge requests found
......@@ -203,6 +203,14 @@ int ATA_SetupIO(void)
outb(IDE_SEC_BASE+1, 1);
outb(IDE_PRI_CTRL, 0);
outb(IDE_SEC_CTRL, 0);
// Soft reset all drives
outb(IDE_PRI_CTRL, 4);
outb(IDE_SEC_CTRL, 4);
IO_DELAY();
outb(IDE_PRI_CTRL, 0);
outb(IDE_SEC_CTRL, 0);
// Make sure interrupts are ACKed
ATA_int_BusMasterWriteByte(2, 0x4);
......@@ -363,21 +371,6 @@ int ATA_DoDMA(Uint8 Disk, Uint64 Address, Uint Count, int bWrite, void *Buffer)
// Reset IRQ Flag
gaATA_IRQs[cont] = 0;
// TODO: What the ____ does this do?
#if 1
if( cont == 0 ) {
outb(IDE_PRI_CTRL, 4);
IO_DELAY();
outb(IDE_PRI_CTRL, 0);
}
else {
outb(IDE_SEC_CTRL, 4);
IO_DELAY();
outb(IDE_SEC_CTRL, 0);
}
#endif
// Set up transfer
if( Address > 0x0FFFFFFF ) // Use LBA48
{
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment