diff options
Diffstat (limited to 'firmware')
-rw-r--r-- | firmware/target/arm/as3525/sd-as3525v2.c | 25 |
1 files changed, 18 insertions, 7 deletions
diff --git a/firmware/target/arm/as3525/sd-as3525v2.c b/firmware/target/arm/as3525/sd-as3525v2.c index 4e550a96d4..b696908157 100644 --- a/firmware/target/arm/as3525/sd-as3525v2.c +++ b/firmware/target/arm/as3525/sd-as3525v2.c | |||
@@ -184,9 +184,20 @@ | |||
184 | * & 0x418 = MCI_INT_DTO | MCI_INT_TXDR | MCI_INT_HTO | 184 | * & 0x418 = MCI_INT_DTO | MCI_INT_TXDR | MCI_INT_HTO |
185 | */ | 185 | */ |
186 | 186 | ||
187 | #define MCI_ERROR (MCI_INT_RE | MCI_INT_RCRC | MCI_INT_DCRC /*| MCI_INT_RTO*/ \ | 187 | #define MCI_CMD_ERROR \ |
188 | | MCI_INT_DRTO | MCI_INT_HTO | MCI_INT_FRUN | MCI_INT_HLE \ | 188 | (MCI_INT_RE | \ |
189 | | MCI_INT_SBE | MCI_INT_EBE) | 189 | MCI_INT_RCRC | \ |
190 | MCI_INT_RTO | \ | ||
191 | MCI_INT_HLE) | ||
192 | |||
193 | #define MCI_DATA_ERROR \ | ||
194 | ( MCI_INT_DCRC | \ | ||
195 | MCI_INT_DRTO | \ | ||
196 | MCI_INT_HTO | \ | ||
197 | MCI_INT_FRUN | \ | ||
198 | MCI_INT_HLE | \ | ||
199 | MCI_INT_SBE | \ | ||
200 | MCI_INT_EBE) | ||
190 | 201 | ||
191 | #define MCI_STATUS SD_REG(0x48) | 202 | #define MCI_STATUS SD_REG(0x48) |
192 | 203 | ||
@@ -340,10 +351,10 @@ void INT_NAND(void) | |||
340 | 351 | ||
341 | MCI_RAW_STATUS = status; /* clear status */ | 352 | MCI_RAW_STATUS = status; /* clear status */ |
342 | 353 | ||
343 | if(status & MCI_ERROR) | 354 | if(status & MCI_DATA_ERROR) |
344 | retry = true; | 355 | retry = true; |
345 | 356 | ||
346 | if(data_transfer && status & (MCI_INT_DTO|MCI_ERROR)) | 357 | if(data_transfer && status & (MCI_INT_DTO|MCI_DATA_ERROR)) |
347 | wakeup_signal(&transfer_completion_signal); | 358 | wakeup_signal(&transfer_completion_signal); |
348 | 359 | ||
349 | MCI_CTRL |= INT_ENABLE; | 360 | MCI_CTRL |= INT_ENABLE; |
@@ -782,9 +793,9 @@ static int sd_transfer_sectors(IF_MD2(int drive,) unsigned long start, | |||
782 | goto sd_transfer_error; | 793 | goto sd_transfer_error; |
783 | } | 794 | } |
784 | 795 | ||
796 | |||
797 | MCI_MASK = MCI_DATA_ERROR | MCI_INT_DTO; | ||
785 | MCI_CTRL |= DMA_ENABLE; | 798 | MCI_CTRL |= DMA_ENABLE; |
786 | MCI_MASK = MCI_INT_CD|MCI_INT_DTO|MCI_INT_DCRC|MCI_INT_DRTO| \ | ||
787 | MCI_INT_HTO|MCI_INT_FRUN|MCI_INT_HLE|MCI_INT_SBE|MCI_INT_EBE; | ||
788 | 799 | ||
789 | MCI_FIFOTH &= MCI_FIFOTH_MASK; | 800 | MCI_FIFOTH &= MCI_FIFOTH_MASK; |
790 | MCI_FIFOTH |= 0x503f0080; | 801 | MCI_FIFOTH |= 0x503f0080; |