summaryrefslogtreecommitdiff
path: root/firmware
diff options
context:
space:
mode:
Diffstat (limited to 'firmware')
-rw-r--r--firmware/drivers/ata.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/firmware/drivers/ata.c b/firmware/drivers/ata.c
index d547692b56..8e9ec942cd 100644
--- a/firmware/drivers/ata.c
+++ b/firmware/drivers/ata.c
@@ -62,6 +62,7 @@
62 62
63#define STATUS_BSY 0x80 63#define STATUS_BSY 0x80
64#define STATUS_RDY 0x40 64#define STATUS_RDY 0x40
65#define STATUS_DF 0x20
65#define STATUS_DRQ 0x08 66#define STATUS_DRQ 0x08
66#define STATUS_ERR 0x01 67#define STATUS_ERR 0x01
67 68
@@ -223,6 +224,9 @@ int ata_read_sectors(unsigned long start,
223 continue; 224 continue;
224 } 225 }
225 226
227 if ( ATA_ALT_STATUS & (STATUS_ERR | STATUS_DF) )
228 continue;
229
226 /* if destination address is odd, use byte copying, 230 /* if destination address is odd, use byte copying,
227 otherwise use word copying */ 231 otherwise use word copying */
228 232