Re: ABE/AESS on modern kernel: clocks, hwmods etc.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




> Am 05.09.2023 um 17:48 schrieb H. Nikolaus Schaller <hns@xxxxxxxxxxxxx>:
> 
> 
> 
>> Am 05.09.2023 um 17:09 schrieb H. Nikolaus Schaller <hns@xxxxxxxxxxxxx>:
>> 
>> Hi,
>> 
>>> Am 05.09.2023 um 16:44 schrieb Andreas Kemnade <andreas@xxxxxxxxxxxx>:
>>> 
>>> On Tue, 5 Sep 2023 14:42:03 +0200
>>> "H. Nikolaus Schaller" <hns@xxxxxxxxxxxxx> wrote:
>>> 
>>>> Hi Tony,
>>>> 
>>>>> Am 05.09.2023 um 08:12 schrieb Tony Lindgren <tony@xxxxxxxxxxx>:
>>>>> 
>>>>> The key observation is that the abe_iclk references in the DTS seem to be nowhere referenced  
>>>>>> (which may or may not be an issue):
>>>>>> 
>>>>>> https://github.com/goldelico/letux-kernel/blob/letux/aess-v12/arch/arm/boot/dts/ti/omap/omap44xx-clocks.dtsi#L509
>>>>>> https://github.com/goldelico/letux-kernel/blob/letux/aess-v12/arch/arm/boot/dts/ti/omap/omap54xx-clocks.dtsi#L161  
>>>>> 
>>>>> So I guess the ick is in the dts the ocp_abe_iclk@528 for omap4 and
>>>>> abe_iclk@528 for omap5. Seems like the driver should request them, I recall
>>>>> that the interconnect target module does not need the ick to access sysc
>>>>> and revision registers.  
>>>> 
>>>> Yes, that is what I suspect but I don't know how to request them.
>>>> 
>>> add ,"ick" to the clock-names line in the target-module?
>>> and ,<&ocp_abe_iclk> to the target module?
>> 
>> You mean
>> 
>> diff --git a/arch/arm/boot/dts/ti/omap/omap4-l4-abe.dtsi b/arch/arm/boot/dts/ti/omap/omap4-l4-abe.dtsi
>> index 7ca7b369b4e59..aa140a8bb9f29 100644
>> --- a/arch/arm/boot/dts/ti/omap/omap4-l4-abe.dtsi
>> +++ b/arch/arm/boot/dts/ti/omap/omap4-l4-abe.dtsi
>> @@ -482,8 +482,8 @@ target-module@f1000 {                       /* 0x401f1000, ap 32 20.0 */
>>                                       <SYSC_IDLE_NO>,
>>                                       <SYSC_IDLE_SMART>;
>>                       /* Domains (V, P, C): iva, abe_pwrdm, abe_clkdm */
>> -                       clocks = <&abe_clkctrl OMAP4_AESS_CLKCTRL 0>;
>> -                       clock-names = "fck";
>> +                       clocks = <&abe_clkctrl OMAP4_AESS_CLKCTRL 0>, <&ocp_abe_iclk>;
>> +                       clock-names = "fck", "ick";
>>                       #address-cells = <1>;
>>                       #size-cells = <1>;
>> 
> 
>> Well, certainly worth trying!
> 
> A quick test on PandaES shows that the ick is (or becomes) active (I have not yet compared to without above patch):
> 
> root@letux:~# ls -l /sys/kernel/debug/clk/ocp_abe_iclk
> total 0
> -r--r--r-- 1 root root 0 Jan  1  1970 clk_accuracy
> -r--r--r-- 1 root root 0 Jan  1  1970 clk_duty_cycle
> -r--r--r-- 1 root root 0 Jan  1  1970 clk_enable_count
> -r--r--r-- 1 root root 0 Jan  1  1970 clk_flags
> -r--r--r-- 1 root root 0 Jan  1  1970 clk_max_rate
> -r--r--r-- 1 root root 0 Jan  1  1970 clk_min_rate
> -r--r--r-- 1 root root 0 Jan  1  1970 clk_notifier_count
> -r--r--r-- 1 root root 0 Jan  1  1970 clk_parent
> -r--r--r-- 1 root root 0 Jan  1  1970 clk_phase
> -r--r--r-- 1 root root 0 Jan  1  1970 clk_prepare_count
> -r--r--r-- 1 root root 0 Jan  1  1970 clk_protect_count
> -r--r--r-- 1 root root 0 Jan  1  1970 clk_rate
> root@letux:~# cat /sys/kernel/debug/clk/ocp_abe_iclk/*
> 0
> 1/2
> 1
> 4294967295
> 0
> 0
> abe-clkctrl:0008:24
> 0
> 1
> 0
> 49152000
> root@letux:~# 

There is indeed a difference after removing, recompiling, rebooting:

root@letux:~# cat /sys/kernel/debug/clk/ocp_abe_iclk/*
0
1/2
0	<----
4294967295
0
0
abe-clkctrl:0008:24
0
0	<----
0
49152000
root@letux:~# 

BR,
Nikolaus





[Index of Archives]     [Linux Arm (vger)]     [ARM Kernel]     [ARM MSM]     [Linux Tegra]     [Linux WPAN Networking]     [Linux Wireless Networking]     [Maemo Users]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Trails]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux