Re: [PATCH v5 0/2] Add Loongson-2K0300 processor support
From: wjjsn
Date: Tue Mar 24 2026 - 11:17:05 EST
On 3/23/26 10:42, Yao Zi wrote:
On Mon, Mar 23, 2026 at 12:33:31AM +0800, wjjsn wrote:
On 3/22/26 21:15, Huacai Chen wrote:
1. The current clock driver in mainline has some problems.
The pll_ddr is lower than the user_manual,
I'm not sure what do you mean. Do you observe lower clock frequency of
pll_ddr than the frequency specified in TRM (1GHz)? And if so, how?
clk-loongson2 doesn't have the ability to reclock hardware, but only
read out the frequency. PLL frequencies are all up to the bootloader.
So as long as you could confirm the values returned by recalc_rate()
match the register settings, there's nothing wrong in the clock driver.
Reclocking functionality could be introduced later. But even with
reclocking code, I doubt whether the DDR clock could be reclocked
at runtime since it supplies the memory controller.
I observed that 'clk_ddr_div' operates at 800MHz instead of the 1GHz specified in the manual, and 'clk_dev_div' operates at 100MHz instead of the 200MHz specified in the manual. However, you mentioned that these settings are determined by the bootloader, so everything now makes sense
the clk_apb_gate will
turn off by kernel while booting,though 16100000.serial is using
This is unlikely an issue in the clock driver, but rather the consumer
is doing something wrong, though I haven't seen similar issues when
working on the clock driver.
Please try booting the kernel with clk_ignore_unused, and check
/sys/kernel/debug/clk/clk_summary to see whether the serial correctly
acquires the apb gate clock. If not, one (and the most possible) reason
is both clock-frequency and clocks properties are specified in its
devicetree node, where 8250 driver would ignore the latter.
When I use 'clocks = <&clk LS2K0300_CLK_DEV_DIV>;', the system log gets stuck at the message about closing unused clocks, and there are no further logs. It seems like the clock for the serial port is being closed. However, if I set the parameter to not close unused clocks as a startup parameter, the serial port can continue to be used. If I use 'clocks = <&clk LS2K0300_CLK_APB_GATE>;', then the clock for the serial port is not closed and can start normally. I have not specified the clock frequency in the device tree
2. eiointc support for 2k0300 is missing.
This is expected. IOCSRs found on 2K0300 have a quite different layout
than previous generations of Loongson SoCs, and EIOINTC is in fact a
device located in IOCSR addressing space. We need to come up with a
better way to model the IOCSRs in devicetree, and it hasn't been done
yet.
Is there any WIP (Work In Progress) tree I can follow?
I'm happy to help with the development or testing.
Sorry there isn't one for now. I'm currently out of my lab, and could
only get things updated this weekend. Sorry for the inconvenience.
Okay, if you have a public repository, please let me know. If I have time, I would be happy to help with testing
Regards,
wjjsn