Обрати внимание на следующее:
cplbtab.c - здесь определяются страницы, без этого КЕШ НЕ ЗАРАБОТАЕТ
*.ldf - что-то типа этого - указание стартапу включить соответствующий кеш
L1_code_cache
{
INPUT_SECTION_ALIGN(4)
___l1_code_cache = 1;
} > MEM_L1_CODE_CACHE L1_data_a_cache
{
INPUT_SECTION_ALIGN(4)
___l1_data_cache_a = 1;
} > MEM_L1_DATA_A_CACHE
L1_data_b_cache
{
INPUT_SECTION_ALIGN(4)
___l1_data_cache_b = 1;
} > MEM_L1_DATA_B_CACHE
*crt.s - стартап, здесь обработчик
/////////////////////////////////////////////////////////////////
// cplb-init
// initialise the CPLBs if they're needed. couldn't do
// this before we set up the stacks.
R0 = 63; // cplb_ctrl = 63
CALL.X _cplb_init;
.extern _cplb_init;
.type _cplb_init,STT_FUNC;
.section/DOUBLEANY data1;
___cplb_ctrl:
.align 4;
.byte4=63;
.global ___cplb_ctrl;
.type ___cplb_ctrl,STT_OBJECT;
.section/DOUBLEANY program;
.align 2;
Может что-то ещё забыл...