Clocks used by another OS/CPU

Dirk Behme dirk.behme at de.bosch.com
Thu Jun 29 05:55:14 PDT 2017


On 29.06.2017 14:45, Geert Uytterhoeven wrote:
> Hi Dirk,
> 
> On Thu, Jun 29, 2017 at 2:07 PM, Dirk Behme <dirk.behme at de.bosch.com> wrote:
>> On 29.06.2017 13:56, Geert Uytterhoeven wrote:
>>> On Thu, Jun 29, 2017 at 11:27 AM, Geert Uytterhoeven
>>> <geert at linux-m68k.org> wrote:
>>>> CC clock, ARM, DT, PM people
>>>>
>>>> TL;DR: Clocks may be in use by another CPU not running Linux, while Linux
>>>> disables them as being unused.
>>>
>>>> Of course this is not limited to clocks, but also to e.g. PM domains.
>>>
>>> BTW, how do you prevent Linux from powering down the CR7 PM domain,
>>> which contains the Cortex R7?
>>
>> The idea is
>>
>> --- a/drivers/soc/renesas/r8a7795-sysc.c
>> +++ b/drivers/soc/renesas/r8a7795-sysc.c
>> @@ -38,7 +38,8 @@ static const struct rcar_sysc_area r8a7795_areas[]
>> __initconst = {
>>          { "ca53-cpu3",  0x200, 3, R8A7795_PD_CA53_CPU3, R8A7795_PD_CA53_SCU,
>>            PD_CPU_NOCR },
>>          { "a3vp",       0x340, 0, R8A7795_PD_A3VP,      R8A7795_PD_ALWAYS_ON
>> },
>> -       { "cr7",        0x240, 0, R8A7795_PD_CR7,       R8A7795_PD_ALWAYS_ON
>> },
>> +       { "cr7",        0x240, 0, R8A7795_PD_CR7,
>> R8A7795_PD_ALWAYS_ON,
>> +         PD_CPU_NOCR },
>>          { "a3vc",       0x380, 0, R8A7795_PD_A3VC,      R8A7795_PD_ALWAYS_ON
>> },
>>          { "a2vc0",      0x3c0, 0, R8A7795_PD_A2VC0,     R8A7795_PD_A3VC },
>>          { "a2vc1",      0x3c0, 1, R8A7795_PD_A2VC1,     R8A7795_PD_A3VC },
>>
>>
>> Not finally tested, though.
> 
> Pretending the CR7 PM Domain can only be controlled through WFI/APMU only should
> work.
> But IMHO it is a hack, just like your solution for the CANFD clock.


Well, it seems to be the best solution recent mainline gives us and 
seems to work ;)

And for me it looks at least better than the other solution I've seen so 
far: Remove the 'cr7', 'canfd' etc lines completely from the kernel.

Best regards

Dirk



More information about the linux-arm-kernel mailing list