Set BUSY_STAT in ATAPI code. Fixes 'Device failed to request command' error when installing Windows ME.
This commit is contained in:
parent
6a27983f17
commit
2b6b14f175
1 changed files with 3 additions and 0 deletions
|
|
@ -36,6 +36,7 @@ void atapi_data_write(atapi_device_t *atapi_dev, uint16_t val)
|
||||||
{
|
{
|
||||||
atapi_dev->state = ATAPI_STATE_GOT_COMMAND;
|
atapi_dev->state = ATAPI_STATE_GOT_COMMAND;
|
||||||
timer_set_delay_u64(&ide_timer[atapi_dev->board], 6 * IDE_TIME);
|
timer_set_delay_u64(&ide_timer[atapi_dev->board], 6 * IDE_TIME);
|
||||||
|
*atapi_dev->atastat = BUSY_STAT | (*atapi_dev->atastat & ERR_STAT);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
|
@ -48,6 +49,7 @@ void atapi_data_write(atapi_device_t *atapi_dev, uint16_t val)
|
||||||
atapi_dev->bus_state = 0;
|
atapi_dev->bus_state = 0;
|
||||||
atapi_dev->state = ATAPI_STATE_WRITE_DATA;
|
atapi_dev->state = ATAPI_STATE_WRITE_DATA;
|
||||||
timer_set_delay_u64(&ide_timer[atapi_dev->board], 6 * IDE_TIME);
|
timer_set_delay_u64(&ide_timer[atapi_dev->board], 6 * IDE_TIME);
|
||||||
|
*atapi_dev->atastat = BUSY_STAT | (*atapi_dev->atastat & ERR_STAT);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
@ -74,6 +76,7 @@ uint16_t atapi_data_read(atapi_device_t *atapi_dev)
|
||||||
{
|
{
|
||||||
atapi_dev->state = ATAPI_STATE_NEXT_PHASE;
|
atapi_dev->state = ATAPI_STATE_NEXT_PHASE;
|
||||||
timer_set_delay_u64(&ide_timer[atapi_dev->board], 6*IDE_TIME);
|
timer_set_delay_u64(&ide_timer[atapi_dev->board], 6*IDE_TIME);
|
||||||
|
*atapi_dev->atastat = BUSY_STAT | (*atapi_dev->atastat & ERR_STAT);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue