Subject: kernel panic when booting on exynos 5440

From: [email-masked] (Pankaj Dubey)
Date: Thu, 25 Dec 2014 16:23:46 +0530

On Thursday 25 December 2014 04:13 PM, Ming Lei wrote:
> On Thu, Dec 25, 2014 at 6:32 PM, Pankaj Dubey <[email-masked]> wrote:
>> +CC: Thomas Abraham
>>
>> Hi Ming,
>>
>> On Thursday 25 December 2014 02:18 PM, Ming Lei wrote:
>>>
>>> Hi Pankaj,
>>>
>>> In your commit fce9e5bb2(ARM: EXYNOS: Add support for
>>> mapping PMU base address via DT), 'pmu_base_addr' is
>>> only parsed for very limited machines from the table of
>>> 'exynos_dt_pmu_match'.  For other boards, 'pmu_base_addr'
>>> will keep its default value of null, then panic() is triggered.
>>>
>>
>> Yes, it will.
>> As exynos5440 DT does not have PMU device node, neither above mentioned
>> patch added corresponding matching device_id.
>> If I remember correctly, I might have missed this because exynos5440 DT was
>> not having PMU node.
>>
>>> What do you think about the problem?
>>
>>
>> I missed this part, and I should have taken care of this in original patch
>> itself. Well as of now I can think of only one solution that if we really
>> want to keep support for exynos5440 in mainline kernel, to avoid above issue
>> we should skip pmu mapping for exynos5440. In this case following patch will
>> do this work.
>>
>> Also I will like to know from Kukjin that what best can be done now.
>> If he is OK with below solution I can post the same.
>>
>> ---------------------------------------------------------------
>>
>> Subject: [PATCH] ARM: EXYNOS: do not try to map PMU for exynos5440
>>
>> Commit id: 2e94ac42898f84d76e3c21dd91bc is not taking care
>> of mapping of exynos5440 PMU register which will result in kernel panic.
>> As of now let's avoid mapping of exynos5440 PMU.
>>
>> Signed-off-by: Pankaj Dubey <[email-masked]>
>> ---
>>   arch/arm/mach-exynos/exynos.c | 3 ++-
>>   1 file changed, 2 insertions(+), 1 deletion(-)
>>
>> diff --git a/arch/arm/mach-exynos/exynos.c b/arch/arm/mach-exynos/exynos.c
>> index c13d083..1891b8c 100644
>> --- a/arch/arm/mach-exynos/exynos.c
>> +++ b/arch/arm/mach-exynos/exynos.c
>> @@ -208,7 +208,8 @@ static void __init exynos_init_irq(void)
>>           * DT is not unflatten so we can't use DT APIs before
>>           * init_irq
>>           */
>> -       exynos_map_pmu();
>> +       if (!of_machine_is_compatible("samsung,exynos5440"))
>> +               exynos_map_pmu();
>>   }
>
> If I remember correctly, there are other SoCs which have not been
> included in the pmu mapping list, and looks these SoCs need
> to be handled too.
>

As far as I can see in today's linux-next and kgene/for-next tree, only 
exynos5440 PMU mapping is missing. If I am missing anything please 
specify exact SoC name, which you think need to be handled.

Thanks,
Pankaj Dubey

> Thanks,
> Ming Lei