diff options
| -rw-r--r-- | firmware/drivers/ata.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/firmware/drivers/ata.c b/firmware/drivers/ata.c index d547692..8e9ec94 100644 --- a/firmware/drivers/ata.c +++ b/firmware/drivers/ata.c @@ -62,6 +62,7 @@ #define STATUS_BSY 0x80 #define STATUS_RDY 0x40 +#define STATUS_DF 0x20 #define STATUS_DRQ 0x08 #define STATUS_ERR 0x01 @@ -223,6 +224,9 @@ int ata_read_sectors(unsigned long start, continue; } + if ( ATA_ALT_STATUS & (STATUS_ERR | STATUS_DF) ) + continue; + /* if destination address is odd, use byte copying, otherwise use word copying */ |