Can you provide a little bit more information?
- What OS are you running?
- What tests are performing badly according to you?
- Your comment suggests you might be running bare-metal code directly out of OCRAM. If it is so, can you share clock initialization sequence you're using?
i.MX28 can run up to 454MHz, but I believe default speed at power-on is 24MHz, which may explain results you're seeing. I suggest checking OBDS can for examples of clock tree setup. Below is code example:
//****************************
// CLOCK set up
//****************************
// Power up PLL0 HW_CLKCTRL_PLL0CTRL0
//setmem /32 0x80040000=0x00020000
ldr r0,=0x80040000
ldr r1,=0x00020000
str r1,[r0]
// Set up fractional dividers for CPU and EMI - HW_CLKCTRL_FRAC0
// EMI - first set DIV_EMI to div-by-2 before programming frac divider
//setmem /32 0x800400F0 = 0x80000002
ldr r1,=0x80000002
str r1,[r0,#0xF0]
// CPU: CPUFRAC=19 480*18/29=454.7MHz, EMI: EMIFRAC=22, (480/2)*18/22=196.4MHz
//setmem /32 0x800401B0=0x92921613
ldr r1,=0x92921613
str r1,[r0,#0x1B0]
// Clear the bypass bits for CPU and EMI clocks in HW_CLKCTRL_CLKSEQ_CLR
//setmem /32 0x800401D8=0x00040080
ldr r1,=0x00040080
str r1,[r0,#0x1D8]
// HCLK = 227MHz,HW_CLKCTRL_HBUS DIV =0x2
//setmem /32 0x80040060=0x00000002
ldr r1,=0x00000002
str r1,[r0,#0x60]