Hello !
I'm also trying to bump the A5 core speed to max, my board - PhyTek PhyCore Vybrid, referred to as pcm052 in sys code. Also using TimeSys kit (desktop factory), with latest supplied kernel and u-boot by them.
The above changes are not enough to bump the speed. Both, u-boot and kernel file(s) need extra changes.
The CONFIG_SYS_CLKCTRL_CCSR 0x0003FF24 change bumps the core clock, but keeping dividers same - register CACRR, defined just below CCSR - that means bus and ipg clocks also get bumped to max. One thing ipg feeds UART, so your baud rate gets screwed as we observe.
The Vybrid adaption in u-boot provided seems very 'disabled' (as we see mostly commend out and hardcoded values in vybrid/clock.c), and when you do change these clocks speed in lowlevel system init, you also need to statically change them higher up. The idea is those should get obtained dynamically (I think ... as I'm new to u-boot).
To fix the baud rate, you need to enable serial_init, by adding to board/phytec/pcm052/pcm052.c contains board_init. You also need to change cardcoded clocks.
From default startup, A5,DDR,BUS,IPG = 396,396,132,66 (which it actually boots with without the u-boot default), if we change PLL1->PFD3 to PFD1 we have 500,396,166,83 frequencies now.
vybrid/clocks.c :
return 83000000; //66000000;
vybird-common/speed.c:
gd->bus_clk = 166000000; //66000000;
gd->ipg_clk = 83000000; //66000000;
That should give you bootable u-boot, with higher a5 rate and working serial baudrate at 115200.
But once you start booting kernel it will get screwed again, because ipg rate is hardcoded in more than one place there too. As well as the busrate. While you can login remotely and check that pll1_sw clock is 500 as suggested above, you should also check BogoMips : and that for me was identical to before doing any changes.
Thus at 396 A5 speed i get 262.96 Bogo, which i also get exactly same with above changes only. Bummer. But bogo may be bogus, so I run CoreMark before and after change, and the same statistic resulted on both cases ~ 830 (you can google coremark).
In same clock file, you need to go and fix all the same arm core and bus and ipg hardcoded values, to correct for the change. After doing that, I use both the kernel tracing and CoreMark to very that (firstly serial now works at same rate as u-boot), and the A5 core (and whole system) is running faster now.
for tracing:
board-pcm052.c:
vyclk = clk_get(NULL, "pll1_sw_clk");
printk(KERN_NOTICE "~vybrid~: pll1_sw_clk = %u\n", clk_get_rate(vyclk));
vyclk = clk_get(NULL, "cpu_clk");
printk(KERN_NOTICE "~vybrid~: arm_core_clk = %u\n", clk_get_rate(vyclk));
vyclk = clk_get(NULL, "ipg_clk");
printk(KERN_NOTICE "~vybrid~: ipg_clk = %u\n", clk_get_rate(vyclk));
vyclk = clk_get(NULL, "periph_clk");
printk(KERN_NOTICE "~vybrid~: platform_bus_clk = %u\n", clk_get_rate(vyclk));
trace
~vybrid~: pll1_sw_clk = 500000000
~vybrid~: arm_core_clk = 500000000
~vybrid~: ipg_clk = 83000000
~vybrid~: platform_bus_clk = 166000000
BogoMips: Calibrating delay loop... 331.77 BogoMIPS (lpj=1658880).
And, CoreMark result is ~1048.
So this is real speed bump to me!
Hopefully TimeSys will fix or implement that dynamic frequencing soon. But fixed way may be useful too, and both u-boot and kernel board startup should be fixed I think to allow easy one place change and recompile.