Relation between I-Cache and ITIM

Dear SiFive Community,

According to my understanding, the HiFive1 Rev B board comes with a 16Kb instruction cache (I-cache), but it is not clear to me how it is related to the ITIM.

By having a look at the file, it seems that the default configuration reserve 8Kb for the ITIM:

itim (airwx) : ORIGIN = 0x8000000, LENGTH = 0x2000
 PROVIDE( metal_itim_0_memory_start = 0x8000000 );
 PROVIDE( metal_itim_0_memory_end = 0x8000000 + 0x2000 );

Does it mean that using this configuration, I will have an 8Kb I-cache and an 8Kb ITIM?
If so, is it possible to trade the ITIM space to get a 16Kb I-cache?

I simply tried to following modifications to

itim (airwx) : ORIGIN = 0x8000000, LENGTH = 0x0000
 PROVIDE( metal_itim_0_memory_start = 0x8000000 + 0x2000);
 PROVIDE( metal_itim_0_memory_end = 0x8000000 + 0x2000 );

but I’m not sure this is the right way to do.

See page 16 of

1 Like