SPR_L3CR
cache_reg = mfspr(SPR_L3CR);
mtspr(SPR_L3CR, cache_reg);
mtspr(SPR_L3CR, cache_reg | L3CR_L3HWF);
while (mfspr(SPR_L3CR) & L3CR_L3HWF)
mtspr(SPR_L3CR, cache_reg);
mtspr(SPR_L3CR, cache_reg | L3CR_L3I);
while (mfspr(SPR_L3CR) & L3CR_L3I)
ccr = mfspr(SPR_L3CR);
mtspr(SPR_L3CR, ccr);
mtspr(SPR_L3CR, ccr);
mtspr(SPR_L3CR, ccr);
mtspr(SPR_L3CR, ccr | L3CR_L3I);
while (mfspr(SPR_L3CR) & L3CR_L3I)
mtspr(SPR_L3CR, ccr & ~L3CR_L3CLKEN);
mtspr(SPR_L3CR, ccr);
mtspr(SPR_L3CR, ccr);
bsp_state[3] = mfspr(SPR_L3CR);
if (mfspr(SPR_L3CR) & L3CR_L3E)
mfspr(SPR_L3CR) & L3CR_L3SIZ ? '2' : '1');