[PATCH 5/5] arm: kirkwood: Do not overwrite CONFIG_SYS_TCLK
Michael Walle
michael at walle.cc
Tue Aug 16 22:05:13 CEST 2022
Am 2022-08-16 20:17, schrieb Pali Rohár:
>> > > If I understand correctly
>> > > the defines in kw88f6281.h/kw88f6192.h were sensible defaults but
>> > > boards were able to override it to reflect the hardware configuration.
>> >
>> > Anyway, I think that this patch should not cause issue as it is changing
>> > only two board config files and removing redefinition of CONFIG_SYS_TCLK
>> > macro which is set to the same value as in kw88f61**.h files.
>>
>> At least for the lsxl and the NET2BIG_V2 this is not correct. Both
>> have
>> the 88F6281 and both use have a 166MHz TCLK clock.
>
> Interesting... because this contradicts publicly available
> documentation. Maybe in NDA doc is some more details?
No, the board support was entirely done by reverse engineering the
original bootloader, back in 2012..
>> Anyway, I'm reverting this patch. The only open question is, should I
>> convert the TCLK to a Kconfig option?
>
> In this case it would be better to detect TCLK from some SAR register,
> like it is already implemented for other Armada SoCs.
Maybe a bit of a background: The LS-XHL and the LS-CHLv2 share the same
PCB, labeled LSXL (thus the board name). the LS-CHLv2 being the
low-budget
version, i.e. only 64MiB of memory and a slower CPU clock. The LS-XHL
has 256MiB memory.
I have both boards and I've dumped the SAR:
On the LS-XHL (TCLK 200MHz):
# busybox devmem 0xf1010030 32
0x0093CE96
On the LS-CHLv2 (TCLK 166MHz):
# busybox devmem 0xf1010030 32
0x00B2CA4C
> md f1040000 1
f1040000: 628111ab
> Just by a chance, do you have some "better" 88F6281 documentation? If
> there is some TCLK information or SAR register description. In publicly
> available FS_88F6180_9x_6281_OpenSource.pdf there is 0x10030 Sample at
> Reset Register, but nothing TCLK related.
This made me look closer, and linux is reporting:
[ 0.000017] sched_clock: 32 bits at 200MHz, resolution 5ns, wraps
every 21474836475ns
and on the other board:
[ 0.000015] sched_clock: 32 bits at 166MHz, resolution 6ns, wraps
every 12884901885ns
I've digged into it and the kirkwood-core-clock has more information:
https://elixir.bootlin.com/linux/v5.19.1/source/drivers/clk/mvebu/kirkwood.c#L59
I'll take a look at how this could then be determined at runtime.
> At least BootROM has to detect TCLK because UART clock is derived from
> TCLK and BootROM supports UART booting via 115200 baudrate. In case you
> can provide me 88F6281 BootROM dump from your board, I can try to find
> code which configures UART and detect TCLK. I have already did it for
> 88F6820 (A385) to verify that U-Boot code detects TCLK in the same way
> as BootROM.
If you still need the bootrom and it is readable in u-boot, I can
provide
you the dump.
-michael
More information about the U-Boot
mailing list