Last minute changes for the IDE hdd (September 12th, 2025)
When a secondary slave is shadowed by an ATAPI secondary master, make sure the signature (and on reset too) doesn't make it "recognized" (0xeb14) in the cylinder register (as in, 0x0000'ing it)
This commit is contained in:
@@ -812,7 +812,7 @@ ide_set_signature(ide_t *ide)
|
|||||||
ide->tf->sector = 1;
|
ide->tf->sector = 1;
|
||||||
ide->tf->head = 0;
|
ide->tf->head = 0;
|
||||||
ide->tf->secount = 1;
|
ide->tf->secount = 1;
|
||||||
ide->tf->cylinder = ide_signatures[ide->type & ~IDE_SHADOW];
|
ide->tf->cylinder = (ide->type == IDE_ATAPI_SHADOW) ? 0x0000 : ide_signatures[ide->type & ~IDE_SHADOW];
|
||||||
|
|
||||||
if (ide->type == IDE_HDD)
|
if (ide->type == IDE_HDD)
|
||||||
ide->drive = 0;
|
ide->drive = 0;
|
||||||
@@ -1581,7 +1581,7 @@ ide_reset_registers(ide_t *ide)
|
|||||||
ide->tf->atastat = DRDY_STAT | DSC_STAT;
|
ide->tf->atastat = DRDY_STAT | DSC_STAT;
|
||||||
ide->tf->error = 1;
|
ide->tf->error = 1;
|
||||||
ide->tf->secount = 1;
|
ide->tf->secount = 1;
|
||||||
ide->tf->cylinder = ide_signatures[ide->type & ~IDE_SHADOW];
|
ide->tf->cylinder = (ide->type == IDE_ATAPI_SHADOW) ? 0x0000 : ide_signatures[ide->type & ~IDE_SHADOW];
|
||||||
ide->tf->sector = 1;
|
ide->tf->sector = 1;
|
||||||
ide->tf->head = 0;
|
ide->tf->head = 0;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user