diff options
author | Christian Soffke <christian.soffke@gmail.com> | 2021-02-21 00:53:01 +0100 |
---|---|---|
committer | Solomon Peachy <pizza@shaftnet.org> | 2021-02-27 14:38:49 +0000 |
commit | 7d7850368ede94290ef28c2a4abc684a7f6ab467 (patch) | |
tree | 550aee043b5d0f2753c1429f9c07a866c9ddf0ee | |
parent | 317908e8c31ad07d1cfeaf0e97d9e95bc9fcc99d (diff) | |
download | rockbox-7d7850368ede94290ef28c2a4abc684a7f6ab467.tar.gz rockbox-7d7850368ede94290ef28c2a4abc684a7f6ab467.zip |
Disable UDMA 2 on iPod4G target
ATA DMA was enabled for all PP502x targets in d118f47 after previously reported instabilities were thought to have been fixed. The iPod 4G target remains unstable when UDMA 2 is enabled. File system corruption will eventually occur even using stock hardware in normal usage, according to both my own experience and that of several other forum users. UDMA 1 appears to be stable.
Change-Id: I8526bad9e879f5dad5174cfe07cd8828d8b72406
-rw-r--r-- | firmware/target/arm/pp/ata-target.h | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/firmware/target/arm/pp/ata-target.h b/firmware/target/arm/pp/ata-target.h index 75570bf3cd..ddf4056db9 100644 --- a/firmware/target/arm/pp/ata-target.h +++ b/firmware/target/arm/pp/ata-target.h | |||
@@ -63,13 +63,15 @@ | |||
63 | /* Maximum multi-word DMA mode supported by the controller */ | 63 | /* Maximum multi-word DMA mode supported by the controller */ |
64 | #define ATA_MAX_MWDMA 2 | 64 | #define ATA_MAX_MWDMA 2 |
65 | 65 | ||
66 | #ifndef BOOTLOADER | 66 | #ifndef BOOTLOADER |
67 | /* The PP5020 supports UDMA 4, but it needs cpu boosting and only | 67 | /* The PP5020 supports UDMA 4, but it needs cpu boosting and only |
68 | * improves performance by ~10% with a stock disk. | 68 | * improves performance by ~10% with a stock disk. |
69 | * UDMA 2 is stable at 30 Mhz. | 69 | * UDMA 2 is stable at 30 Mhz. |
70 | * UDMA 1 is stable at 24 Mhz. | 70 | * UDMA 1 is stable at 24 Mhz. |
71 | * | ||
72 | * A slower mode is used on iPod 4Gs due to reported instabilities. | ||
71 | */ | 73 | */ |
72 | #if CPUFREQ_NORMAL >= 30000000 | 74 | #if CPUFREQ_NORMAL >= 30000000 && !defined(IPOD_4G) |
73 | #define ATA_MAX_UDMA 2 | 75 | #define ATA_MAX_UDMA 2 |
74 | #elif CPUFREQ_NORMAL >= 24000000 | 76 | #elif CPUFREQ_NORMAL >= 24000000 |
75 | #define ATA_MAX_UDMA 1 | 77 | #define ATA_MAX_UDMA 1 |