summaryrefslogtreecommitdiff
path: root/firmware/target/arm/rk27xx
diff options
context:
space:
mode:
Diffstat (limited to 'firmware/target/arm/rk27xx')
-rw-r--r--firmware/target/arm/rk27xx/system-rk27xx.c16
-rw-r--r--firmware/target/arm/rk27xx/system-target.h4
2 files changed, 20 insertions, 0 deletions
diff --git a/firmware/target/arm/rk27xx/system-rk27xx.c b/firmware/target/arm/rk27xx/system-rk27xx.c
index 724273b61a..1459770b94 100644
--- a/firmware/target/arm/rk27xx/system-rk27xx.c
+++ b/firmware/target/arm/rk27xx/system-rk27xx.c
@@ -163,3 +163,19 @@ void udelay(unsigned usecs)
163 ); 163 );
164} 164}
165 165
166void cpucache_commit_discard(void)
167{
168 /* invalidate cache way 0 */
169 CACHEOP = 0x02;
170
171 /* wait for invalidate process to complete */
172 while (CACHEOP & 0x01);
173
174 /* invalidate cache way 1 */
175 CACHEOP = 0x80000002;
176
177 /* wait for invalidate process to complete */
178 while (CACHEOP & 0x01);
179}
180
181void cpucache_invalidate(void) __attribute__((alias("cpucache_commit_discard")));
diff --git a/firmware/target/arm/rk27xx/system-target.h b/firmware/target/arm/rk27xx/system-target.h
index fb904091b1..7fcf470ced 100644
--- a/firmware/target/arm/rk27xx/system-target.h
+++ b/firmware/target/arm/rk27xx/system-target.h
@@ -38,6 +38,10 @@ static inline void core_sleep(void)
38 SCU_CPUPD = 0xdeedbabe; 38 SCU_CPUPD = 0xdeedbabe;
39} 39}
40 40
41#define HAVE_CPUCACHE_COMMIT_DISCARD
42/* deprecated alias */
43#define HAVE_CPUCACHE_INVALIDATE
44
41#define CPUFREQ_NORMAL 200000000 45#define CPUFREQ_NORMAL 200000000
42#define CPUFREQ_MAX 200000000 46#define CPUFREQ_MAX 200000000
43 47