From 8edfff979b9bd65145f5b6d5a83bb86f64d84dde Mon Sep 17 00:00:00 2001 From: Michael Sevakis Date: Sat, 4 Aug 2007 00:11:41 +0000 Subject: 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 --- apps/codecs/codec_crt0.c | 4 ++++ apps/plugin.c | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/apps/codecs/codec_crt0.c b/apps/codecs/codec_crt0.c index 96dc862fb5..c9c2cba370 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 fee3a51851..5028bfdd3c 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 */ -- cgit v1.2.3