Re: [PATCH] riscv: dts: starfive: replace underscores in node names

From: Krzysztof Kozlowski
Date: Tue Mar 05 2024 - 10:55:20 EST


On 05/03/2024 15:44, Geert Uytterhoeven wrote:
> Hi Krzysztof
>
> On Tue, Feb 13, 2024 at 3:48 PM Krzysztof Kozlowski
> <krzysztof.kozlowski@xxxxxxxxxx> wrote:
>> Underscores should not be used in node names (dtc with W=2 warns about
>> them), so replace them with hyphens.
>>
>> Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@xxxxxxxxxx>
>
> Thanks for your patch, which is now commit f03606470886e781 ("riscv:
> dts: starfive: replace underscores in node names") in v6.8-rc6.
>
> This causes e.g. BeagleV Starlight to hang during boot without any
> output. Booting with "earlycon" reveals:
>
> dw-apb-uart 12440000.serial: error -EINVAL: clock rate not defined
> dw-apb-uart: probe of 12440000.serial failed with error -22
>
> and indeed, p->uartclk = 0.
>
>> --- a/arch/riscv/boot/dts/starfive/jh7100.dtsi
>> +++ b/arch/riscv/boot/dts/starfive/jh7100.dtsi
>> @@ -113,28 +113,28 @@ cpu_crit {
>> };
>> };
>>
>> - osc_sys: osc_sys {
>> + osc_sys: osc-sys {
>> compatible = "fixed-clock";
>> #clock-cells = <0>;
>> /* This value must be overridden by the board */
>> clock-frequency = <0>;
>> };
>>
>> - osc_aud: osc_aud {
>> + osc_aud: osc-aud {
>> compatible = "fixed-clock";
>> #clock-cells = <0>;
>> /* This value must be overridden by the board */
>> clock-frequency = <0>;
>> };
>>
>> - gmac_rmii_ref: gmac_rmii_ref {
>> + gmac_rmii_ref: gmac-rmii-ref {
>> compatible = "fixed-clock";
>> #clock-cells = <0>;
>> /* Should be overridden by the board when needed */
>> clock-frequency = <0>;
>> };
>>
>> - gmac_gr_mii_rxclk: gmac_gr_mii_rxclk {
>> + gmac_gr_mii_rxclk: gmac-gr-mii-rxclk {
>> compatible = "fixed-clock";
>> #clock-cells = <0>;
>> /* Should be overridden by the board when needed */
>
> The clock driver relies on the clock names, which are (in the absence
> of clock-output-names properties) identical to the actual node names:
>
> drivers/clk/starfive/clk-starfive-jh7100.c: parents[i].fw_name = "osc_sys";
> drivers/clk/starfive/clk-starfive-jh7100.c: parents[i].fw_name = "osc_aud";
> drivers/clk/starfive/clk-starfive-jh7100.c: parents[i].fw_name =
> "gmac_rmii_ref";
> drivers/clk/starfive/clk-starfive-jh7100.c: parents[i].fw_name =
> "gmac_gr_mii_rxclk";
>
> Hence these clocks can no longer be found, and all children have a
> zero clock rate, causing the breakage.

Uh, sorry :( and thanks for the report. I'll add clock-output-names.

Best regards,
Krzysztof