summaryrefslogtreecommitdiff
path: root/firmware
diff options
context:
space:
mode:
authorAmaury Pouly <amaury.pouly@gmail.com>2013-09-25 14:12:48 +0200
committerAmaury Pouly <amaury.pouly@gmail.com>2013-09-25 14:31:39 +0200
commit2f5f2ba91dfe5a41551d54b7af33be42e7a27c5d (patch)
treee6ff3ecd8153242a4f3dee3ada570b38a5863e4b /firmware
parent7e03dbbf941a7f18f7dc32980e406adfb0a1f288 (diff)
downloadrockbox-2f5f2ba91dfe5a41551d54b7af33be42e7a27c5d.zip
rockbox-2f5f2ba91dfe5a41551d54b7af33be42e7a27c5d.tar.gz
rockbox-2f5f2ba91dfe5a41551d54b7af33be42e7a27c5d.tar.bz2
rockbox-2f5f2ba91dfe5a41551d54b7af33be42e7a27c5d.tar.xz
imx233: always boost in bootloader
Many imx233 targets boot in a very low performance mode, typically cpu and dram at 24MHz. This results in very slow boots and very unstable USB bootloader mode. Since cpu frequency scaling is disabled in bootloader in rockbox, always make the frequency scaling code available and boost at boot time. Change-Id: Ie96623c00f7c4cd9a377b84dcb14b772558cfa4d
Diffstat (limited to 'firmware')
-rw-r--r--firmware/target/arm/imx233/system-imx233.c9
-rw-r--r--firmware/target/arm/imx233/system-target.h2
2 files changed, 9 insertions, 2 deletions
diff --git a/firmware/target/arm/imx233/system-imx233.c b/firmware/target/arm/imx233/system-imx233.c
index 3f751a8..44d6f0e 100644
--- a/firmware/target/arm/imx233/system-imx233.c
+++ b/firmware/target/arm/imx233/system-imx233.c
@@ -192,7 +192,6 @@ void imx233_digctl_set_arm_cache_timings(unsigned timings)
#endif
}
-#ifdef HAVE_ADJUSTABLE_CPU_FREQ
struct cpufreq_profile_t
{
/* key */
@@ -219,7 +218,7 @@ static struct cpufreq_profile_t cpu_profiles[] =
#define NR_CPU_PROFILES ((int)(sizeof(cpu_profiles)/sizeof(cpu_profiles[0])))
-void set_cpu_frequency(long frequency)
+void imx233_set_cpu_frequency(long frequency)
{
/* don't change the frequency if it is useless (changes are expensive) */
if(cpu_frequency == frequency)
@@ -277,6 +276,12 @@ void set_cpu_frequency(long frequency)
/* update frequency */
cpu_frequency = frequency;
}
+
+#ifdef HAVE_ADJUSTABLE_CPU_FREQ
+void set_cpu_frequency(long frequency)
+{
+ return imx233_set_cpu_frequency(frequency);
+}
#endif
void imx233_enable_usb_controller(bool enable)
diff --git a/firmware/target/arm/imx233/system-target.h b/firmware/target/arm/imx233/system-target.h
index 407369a..33e8f12 100644
--- a/firmware/target/arm/imx233/system-target.h
+++ b/firmware/target/arm/imx233/system-target.h
@@ -53,6 +53,8 @@ void imx233_reset_block(volatile uint32_t *block_reg);
void power_off(void);
void imx233_enable_usb_controller(bool enable);
void imx233_enable_usb_phy(bool enable);
+// NOTE: this is available even if HAVE_ADJUSTABLE_CPU_FREQ is undef
+void imx233_set_cpu_frequency(long frequency);
void udelay(unsigned usecs);