55 lines
1.5 KiB
C
55 lines
1.5 KiB
C
#include "app_config.h"
|
|
#include "generic/typedef.h"
|
|
#include "asm/sdram.h"
|
|
|
|
#ifdef CONFIG_MP3_DEC_CODE_MOVABLE
|
|
|
|
static const struct sdram_cfg_info_t sdram_cfg = {
|
|
.sdram_size = 2 * 1024 * 1024,
|
|
.sdram_test_size = 4 * 1024,
|
|
.sdram_config_val = -1,
|
|
.sdram_mode = 0,
|
|
.sdram_pll3_en = 0,
|
|
.sdram_pll3_nousb_en = 0,
|
|
.sdram_cl = 2,
|
|
.sdram_rlcnt = 1,
|
|
.sdram_d_dly = 1,
|
|
.sdram_q_dly = 1,
|
|
.sdram_phase = 3,
|
|
.sdram_dq_dly_trm = 4,
|
|
};
|
|
|
|
static u32 *start_of_region = NULL;
|
|
|
|
extern u32 __mp3_dec_movable_slot_start[];
|
|
extern u32 __mp3_dec_movable_slot_end[];
|
|
extern u8 __mp3_dec_movable_region_start[];
|
|
extern u8 __mp3_dec_movable_region_end[];
|
|
|
|
static void enter_mp3_dec_movable_region(u32 **start_of_region, u8 *code_load_addr)
|
|
{
|
|
u32 code_size = __mp3_dec_movable_region_end - __mp3_dec_movable_region_start;
|
|
code_movable_load(__mp3_dec_movable_region_start, code_size, code_load_addr, __mp3_dec_movable_slot_start, __mp3_dec_movable_slot_end, start_of_region);
|
|
}
|
|
|
|
static void exit_mp3_dec_movable_region(u32 **start_of_region, u8 *code_load_addr)
|
|
{
|
|
code_movable_unload(__mp3_dec_movable_region_start, __mp3_dec_movable_slot_start, __mp3_dec_movable_slot_end, start_of_region);
|
|
}
|
|
|
|
void mp3_dec_movable_test_start(void)
|
|
{
|
|
sdram_init(&sdram_cfg);
|
|
|
|
enter_mp3_dec_movable_region(&start_of_region, __NONCPU_ADDR__);
|
|
}
|
|
|
|
void mp3_dec_movable_test_stop(void)
|
|
{
|
|
exit_mp3_dec_movable_region(&start_of_region, __NONCPU_ADDR__);
|
|
|
|
sdram_uninit();
|
|
}
|
|
|
|
#endif
|