summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Sevakis <jethead71@rockbox.org>2007-08-04 00:11:41 +0000
committerMichael Sevakis <jethead71@rockbox.org>2007-08-04 00:11:41 +0000
commit8edfff979b9bd65145f5b6d5a83bb86f64d84dde (patch)
treecd7247bcacb2e3490fac538dace13736b9298b73
parent7f85b5b907d8f9a5545e3bfec80c19c3083cd303 (diff)
downloadrockbox-8edfff979b9bd65145f5b6d5a83bb86f64d84dde.zip
rockbox-8edfff979b9bd65145f5b6d5a83bb86f64d84dde.tar.gz
rockbox-8edfff979b9bd65145f5b6d5a83bb86f64d84dde.tar.bz2
rockbox-8edfff979b9bd65145f5b6d5a83bb86f64d84dde.tar.xz
Flush-out cleared sections on dual core targets when loading plugins and codecs.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14172 a1c6a512-1295-4272-9138-f99709370657
-rw-r--r--apps/codecs/codec_crt0.c4
-rw-r--r--apps/plugin.c4
2 files changed, 8 insertions, 0 deletions
diff --git a/apps/codecs/codec_crt0.c b/apps/codecs/codec_crt0.c
index 96dc862..c9c2cba 100644
--- a/apps/codecs/codec_crt0.c
+++ b/apps/codecs/codec_crt0.c
@@ -42,5 +42,9 @@ enum codec_status codec_start(struct codec_api *api)
api->memset(plugin_bss_start, 0, plugin_end_addr - plugin_bss_start);
#endif
ci = api;
+#if NUM_CORES > 1
+ /* writeback cleared iedata and bss areas */
+ flush_icache();
+#endif
return codec_main();
}
diff --git a/apps/plugin.c b/apps/plugin.c
index fee3a51..5028bfd 100644
--- a/apps/plugin.c
+++ b/apps/plugin.c
@@ -718,6 +718,10 @@ void plugin_iram_init(char *iramstart, char *iramcopy, size_t iram_size,
memcpy(iramstart, iramcopy, iram_size);
memset(iedata, 0, iedata_size);
memset(iramcopy, 0, iram_size);
+#if NUM_CORES > 1
+ /* writeback cleared iedata and iramcopy areas */
+ flush_icache();
+#endif
}
#endif /* IRAM_STEAL */