We are having trouble with the OMAP-L138 execution speed.
We are using the eXperimenters Kit with CCS4, and are programming the ARM9 side.
We are using a GEL file provided with the kit to set 300MHz on PLL0 and 132 MHz on PLL1.
We added code in the GEL file to set the OBSSEL to present SYSCLK6 to the OBSCLK pin with
a divide of 30 (OBSDIV), and we see a 10MHz clock on OBSCLK (TP6). This indicates that PLL0 is outputting
a 300MHz clock.
To verify the execution speed, we have written a small loop that outputs a square wave on a GPIO pin.
We used the TI ARM926EJ-S Device Cycle Accurate Simulator to count the cycles in this loop, and
according to the simulator, the loop takes 220,034 cycles to execute. When we run the code on the
experimenter board the loop takes 10.1 ms. This implies a ~22 MHz clock.
We feel that we are setting up the PLLs correctly, but the CPU seems to be running at
~22Mhz instead of 300MHz.
We have also tried to enable the Instruction and Data caches using:
.align 4
$C$CON3: .field 0000307Ch,32 ;SBO set and Vector is 0xFFFF0000 I & D Cache enabled
LDR r0, $C$CON3 ; disable MMU, enable caches, write buffer
MCR p15, #0, r0, c1, c0, #0
What are we missing?
Marc