question: interconnect: changes in 5.10 / imx8mq ?

Georgi Djakov georgi.djakov at linaro.org
Tue Dec 1 07:35:34 EST 2020


On 1.12.20 13:35, Martin Kepplinger wrote:
> On 01.12.20 10:10, Georgi Djakov wrote:
>> On 12/1/20 02:36, Martin Kepplinger wrote:
>>> On 30.11.20 23:10, Martin Kepplinger wrote:
>>>> On 30.11.20 22:18, Georgi Djakov wrote:
>>>>> On 30.11.20 22:34, Martin Kepplinger wrote:
[..]
>>>
>>> but there follows the next problem. it looks imx8m specific:
>>>
>>> On the librem5-devkit where I initially tested, switching works. FYI 
>>> we have the 2 frequencies:
>>> https://source.puri.sm/martin.kepplinger/linux-next/-/blob/5.10-rc5/librem5__integration/arch/arm64/boot/dts/freescale/imx8mq-librem5-devkit.dts#L283 
>>>
>>> (the opp table also to be submitted to mainline soon)
>>>
>>> On the Librem5 itself (different SoC revision, different frequencies 
>>> available) it fails:
>>> https://source.puri.sm/martin.kepplinger/linux-next/-/blob/5.10-rc5/librem5__integration/arch/arm64/boot/dts/freescale/imx8mq-librem5.dtsi#L387 
>>>
>>>
>>> When I "request 0" (or disable the icc path) in order to switch to 
>>> 25Mhz I now get:
>>>
>>> [  129.391755] imx8m-ddrc-devfreq 3d400000.memory-controller: failed 
>>> to set dram_apb parent: -16
>>> [  129.391959] imx8m-ddrc-devfreq 3d400000.memory-controller: ddrc 
>>> failed freq switch to 25000000 from 800000000: error -16. now at 
>>> 25000000
>>> [  129.406133] imx8m-ddrc-devfreq 3d400000.memory-controller: failed 
>>> to update frequency from PM QoS (-16)
>>
>> I am not familiar with the clock tree of this platform, but it looks 
>> like -EBUSY is returned when the we are trying to change the parent of 
>> the clock.
>>
>>> and the system hangs at this point.
>>>
>>> I'm not aware of any changes we do in our tree in that area to mainline.
>>>
>>> Only removing all but one frequency in the opp node, leaving only 
>>> opp-800M, "works around" (not really) the error (just mentioning as a 
>>> data point if that helps). I hope that's not misleading - no idea 
>>> where exactly the problem lies.
>>
>> When there is only a single frequency, then probably we do not try to 
>> change the
>> mux settings and that's why it does not hang. Maybe check the clock 
>> tree and if
>> all needed clocks and branches are enabled.
>>
> 
> thanks for taking the time here. I don't see notable changes to the 
> clock tree compared to 5.9. Specifically, "dram_apb" where reparenting 
> fails, is running on 5.10 too.

It could be a DT change or something else.. Maybe try running git bisect
and see if it gives any clue.

Thanks,
Georgi

> It's strange that I see this error on imx8mq-librem5 but not on 
> imx8mq-librem5-devkit.



More information about the linux-arm-kernel mailing list