summaryrefslogtreecommitdiff
path: root/firmware
diff options
context:
space:
mode:
authorChristian Soffke <christian.soffke@gmail.com>2021-02-21 00:53:01 +0100
committerSolomon Peachy <pizza@shaftnet.org>2021-02-27 14:38:49 +0000
commit7d7850368ede94290ef28c2a4abc684a7f6ab467 (patch)
tree550aee043b5d0f2753c1429f9c07a866c9ddf0ee /firmware
parent317908e8c31ad07d1cfeaf0e97d9e95bc9fcc99d (diff)
downloadrockbox-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
Diffstat (limited to 'firmware')
-rw-r--r--firmware/target/arm/pp/ata-target.h6
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