[RTEMS Project] #2003: Instruction cache problem in gen5200 bsps

RTEMS trac trac at rtems.org
Fri Dec 12 07:27:50 UTC 2014


#2003: Instruction cache problem in gen5200 bsps
---------------------+------------------------------
 Reporter:  ktaylan  |       Owner:  sebastian.huber
     Type:  defect   |      Status:  closed
 Priority:  normal   |   Milestone:  4.10
Component:  bsps     |     Version:  4.10
 Severity:  major    |  Resolution:  worksforme
 Keywords:           |
---------------------+------------------------------
Changes (by sebastian.huber):

 * status:  new => closed
 * resolution:   => worksforme
 * milestone:  4.11 => 4.10


Old description:

> There is a function called "cpu_init" in gen5200 bsp. In that function
> there is a code segment that enables instruction cache. However without
> settings BATs for instruction cache and settings some bits in HID0
> register, instruction cache cannot be enabled. The only code that enables
> instruction cache in current function is;
>
> msr = ppc_machine_state_register();
>
> msr |= MSR_IR;
>
> ppc_set_machine_state_register(msr);
>
> But additionally the below code should be added and BATs for instruction
> cache should be set. In the attachment there is a code for updated
> cpuinit.c file. This is done for Phytec MPC5200B I/O CPU module (which is
> not defined in current bsp list. I hope i will propose to add this bsp
> codes to upcoming releases)
>
> PPC_SET_SPECIAL_PURPOSE_REGISTER_BITS(HID0, HID0_ICE | HID0_ICFI);
> PPC_CLEAR_SPECIAL_PURPOSE_REGISTER_BITS(HID0, HID0_ICFI);
>
> NOTE: Without enabling instruction cache performance drops 4-5 times.

New description:

 There is a function called "cpu_init" in gen5200 bsp. In that function
 there is a code segment that enables instruction cache. However without
 settings BATs for instruction cache and settings some bits in HID0
 register, instruction cache cannot be enabled. The only code that enables
 instruction cache in current function is;

 msr = ppc_machine_state_register();

 msr |= MSR_IR;

 ppc_set_machine_state_register(msr);

 But additionally the below code should be added and BATs for instruction
 cache should be set. In the attachment there is a code for updated
 cpuinit.c file. This is done for Phytec MPC5200B I/O CPU module (which is
 not defined in current bsp list. I hope i will propose to add this bsp
 codes to upcoming releases)

 PPC_SET_SPECIAL_PURPOSE_REGISTER_BITS(HID0, HID0_ICE | HID0_ICFI);
 PPC_CLEAR_SPECIAL_PURPOSE_REGISTER_BITS(HID0, HID0_ICFI);

 NOTE: Without enabling instruction cache performance drops 4-5 times.

--

--
Ticket URL: <http://devel.rtems.org/ticket/2003#comment:6>
RTEMS Project <http://www.rtems.org/>
RTEMS Project


More information about the bugs mailing list