diff mbox

[REGRESSION] Arndale Octa panics when booting 3.14-rc1

Message ID CAHbNUh2kbYUa1OegRrOXMAEmKRjsf4PifT6tZnKdBx7NoDkq6A@mail.gmail.com
State New
Headers show

Commit Message

Tushar Behera March 4, 2014, 12:01 p.m. UTC
On 4 March 2014 16:09, Javi Merino <javi.merino@arm.com> wrote:
> On Tue, Mar 04, 2014 at 10:30:19AM +0000, Sylwester Nawrocki wrote:
>> On 04/03/14 11:16, Javi Merino wrote:
>> > Yes, with [1] applied I don't get a kernel panic but the kernel fails
>> > to boot later on with an Imprecise external abort.  Removing the mdma
>> > nodes from the dts gets rid of that.  I guess what's missing is what
>> > you said: clocks for the mdma devices.
>>
>> Is removing mdm0 node enough to fix the boot failure, or both have to be
>> removed ?
>
> Actually, you it's only mdma1.  Just removing the mdma1 node from the
> dt fixes the imprecise external abort.
>

MDMA1 can support both secure and non-secure AXI transactions, the
actual behaviour is controlled by trustzone software. It may be the
case that MDMA1 is configured to be used in secure mode only, hence
accessing it in non-secure mode is causing the oops.

Right now, the only solution looks like disabling this node in
Arndale-Octa dts file.

If it works, I will submit this patch.

>> Unfortunately I don't access to exynos5420 datasheet at the moment, I've
>> added guys from Samsung Linaro Landing Team at cc, hopefully they can
>> provide a patch for the clocks driver to fix this.
>
> Thanks,
> Javi
>
>> > 8<---
>> > [    8.060000] mmc_host mmc0: Bus speed (slot 0) = 50000000Hz (slot req 52000000Hz, actual 50000000HZ d)
>> > [    8.070000] Registering SWP/SWPB emulation handler
>> > [    8.075000] s3c-rtc 101e0000.rtc: setting system clock to 2000-01-01 00:00:00 UTC (946684800)
>> > [    8.080000] mmc_host mmc0: Bus speed (slot 0) = 100000000Hz (slot req 52000000Hz, actual 50000000HZ )
>> > [    8.090000] Freeing unused kernel memory: 220K (c04c1000 - c04f8000)
>> > [    8.100000] Unhandled fault: imprecise external abort (0x1406) at 0x00000000
>> > [    8.105000] mmc0: new high speed DDR MMC card at address 0001
>> > [    8.110000] mmcblk0: mmc0:0001 M4G1FB 3.64 GiB
>> > [    8.115000] mmcblk0boot0: mmc0:0001 M4G1FB partition 1 1.00 MiB
>> > [    8.120000] mmcblk0boot1: mmc0:0001 M4G1FB partition 2 1.00 MiB
>> > [    8.125000] mmcblk0rpmb: mmc0:0001 M4G1FB partition 3 128 KiB
>> > [    8.135000]  mmcblk0: p1 p2 p3 p4
>> > [    8.140000] Kernel panic - not syncing: Attempted to kill init! exitcode=0x00000007
>> > [    8.140000]
>> > [    8.140000] CPU: 0 PID: 1 Comm: init Not tainted 3.14.0-rc5-00002-g691b10f #189
>> > [    8.140000] [<c0013e24>] (unwind_backtrace) from [<c0011238>] (show_stack+0x10/0x14)
>> > [    8.140000] [<c0011238>] (show_stack) from [<c038218c>] (dump_stack+0x64/0xb4)
>> > [    8.140000] [<c038218c>] (dump_stack) from [<c037f6f4>] (panic+0x8c/0x1dc)
>> > [    8.140000] [<c037f6f4>] (panic) from [<c001f178>] (do_exit+0x80c/0x8b8)
>> > [    8.140000] [<c001f178>] (do_exit) from [<c001f310>] (do_group_exit+0x3c/0xb0)
>> > [    8.140000] [<c001f310>] (do_group_exit) from [<c00298a0>] (get_signal_to_deliver+0x278/0x500)
>> > [    8.140000] [<c00298a0>] (get_signal_to_deliver) from [<c001076c>] (do_signal+0x78/0x398)
>> > [    8.140000] [<c001076c>] (do_signal) from [<c0010db4>] (do_work_pending+0x64/0xac)
>> > [    8.140000] [<c0010db4>] (do_work_pending) from [<c000e460>] (work_pending+0xc/0x20)
>> > 8<---
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-samsung-soc" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html

Comments

Tomasz Figa March 4, 2014, 12:03 p.m. UTC | #1
On 04.03.2014 13:01, Tushar Behera wrote:
> On 4 March 2014 16:09, Javi Merino <javi.merino@arm.com> wrote:
>> On Tue, Mar 04, 2014 at 10:30:19AM +0000, Sylwester Nawrocki wrote:
>>> On 04/03/14 11:16, Javi Merino wrote:
>>>> Yes, with [1] applied I don't get a kernel panic but the kernel fails
>>>> to boot later on with an Imprecise external abort.  Removing the mdma
>>>> nodes from the dts gets rid of that.  I guess what's missing is what
>>>> you said: clocks for the mdma devices.
>>>
>>> Is removing mdm0 node enough to fix the boot failure, or both have to be
>>> removed ?
>>
>> Actually, you it's only mdma1.  Just removing the mdma1 node from the
>> dt fixes the imprecise external abort.
>>
>
> MDMA1 can support both secure and non-secure AXI transactions, the
> actual behaviour is controlled by trustzone software. It may be the
> case that MDMA1 is configured to be used in secure mode only, hence
> accessing it in non-secure mode is causing the oops.
>
> Right now, the only solution looks like disabling this node in
> Arndale-Octa dts file.
>
> --- a/arch/arm/boot/dts/exynos5420-arndale-octa.dts
> +++ b/arch/arm/boot/dts/exynos5420-arndale-octa.dts
> @@ -354,4 +354,16 @@
>                  samsung,i2s-controller = <&i2s0>;
>                  samsung,audio-codec = <&i2s_stub>;
>          };
> +
> +       amba {
> +               mdma1: mdma@11C10000 {
> +                       /*
> +                        * MDMA1 can support both secure and non-secure
> +                        * AXI transactions. When this is enabled in the kernel
> +                        * for boards that run in secure mode, we are getting
> +                        * imprecise external aborts causing the kernel to oops.
> +                        */
> +                       status = "disabled";
> +               };
> +       };
>
> If it works, I will submit this patch.

On Exynos 4 SoCs there were two instances of MDMA1, one secure and one 
non-secure. Isn't it the case for Exynos5420 as well? If yes, the common 
DTSI could be changed to always use the non-secure one.

Best regards,
Tomasz
--
To unsubscribe from this list: send the line "unsubscribe linux-samsung-soc" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Tushar Behera March 4, 2014, 12:09 p.m. UTC | #2
On 4 March 2014 17:33, Tomasz Figa <tomasz.figa@gmail.com> wrote:
> On 04.03.2014 13:01, Tushar Behera wrote:
>>
>> On 4 March 2014 16:09, Javi Merino <javi.merino@arm.com> wrote:
>>>
>>> On Tue, Mar 04, 2014 at 10:30:19AM +0000, Sylwester Nawrocki wrote:
>>>>
>>>> On 04/03/14 11:16, Javi Merino wrote:
>>>>>
>>>>> Yes, with [1] applied I don't get a kernel panic but the kernel fails
>>>>> to boot later on with an Imprecise external abort.  Removing the mdma
>>>>> nodes from the dts gets rid of that.  I guess what's missing is what
>>>>> you said: clocks for the mdma devices.
>>>>
>>>>
>>>> Is removing mdm0 node enough to fix the boot failure, or both have to be
>>>> removed ?
>>>
>>>
>>> Actually, you it's only mdma1.  Just removing the mdma1 node from the
>>> dt fixes the imprecise external abort.
>>>
>>
>> MDMA1 can support both secure and non-secure AXI transactions, the
>> actual behaviour is controlled by trustzone software. It may be the
>> case that MDMA1 is configured to be used in secure mode only, hence
>> accessing it in non-secure mode is causing the oops.
>>
>> Right now, the only solution looks like disabling this node in
>> Arndale-Octa dts file.
>>
>> --- a/arch/arm/boot/dts/exynos5420-arndale-octa.dts
>> +++ b/arch/arm/boot/dts/exynos5420-arndale-octa.dts
>> @@ -354,4 +354,16 @@
>>                  samsung,i2s-controller = <&i2s0>;
>>                  samsung,audio-codec = <&i2s_stub>;
>>          };
>> +
>> +       amba {
>> +               mdma1: mdma@11C10000 {
>> +                       /*
>> +                        * MDMA1 can support both secure and non-secure
>> +                        * AXI transactions. When this is enabled in the
>> kernel
>> +                        * for boards that run in secure mode, we are
>> getting
>> +                        * imprecise external aborts causing the kernel to
>> oops.
>> +                        */
>> +                       status = "disabled";
>> +               };
>> +       };
>>
>> If it works, I will submit this patch.
>
>
> On Exynos 4 SoCs there were two instances of MDMA1, one secure and one
> non-secure. Isn't it the case for Exynos5420 as well? If yes, the common
> DTSI could be changed to always use the non-secure one.
>

AFAICS, there is only one MDMA1 controller in Exynos5420.

> Best regards,
> Tomasz
Javi Merino March 4, 2014, 2:24 p.m. UTC | #3
Hi Tushar,

On Tue, Mar 04, 2014 at 12:01:26PM +0000, Tushar Behera wrote:
> On 4 March 2014 16:09, Javi Merino <javi.merino@arm.com> wrote:
> > On Tue, Mar 04, 2014 at 10:30:19AM +0000, Sylwester Nawrocki wrote:
> >> On 04/03/14 11:16, Javi Merino wrote:
> >> > Yes, with [1] applied I don't get a kernel panic but the kernel fails
> >> > to boot later on with an Imprecise external abort.  Removing the mdma
> >> > nodes from the dts gets rid of that.  I guess what's missing is what
> >> > you said: clocks for the mdma devices.
> >>
> >> Is removing mdm0 node enough to fix the boot failure, or both have to be
> >> removed ?
> >
> > Actually, you it's only mdma1.  Just removing the mdma1 node from the
> > dt fixes the imprecise external abort.
> >
> 
> MDMA1 can support both secure and non-secure AXI transactions, the
> actual behaviour is controlled by trustzone software. It may be the
> case that MDMA1 is configured to be used in secure mode only, hence
> accessing it in non-secure mode is causing the oops.
> 
> Right now, the only solution looks like disabling this node in
> Arndale-Octa dts file.
> 
> --- a/arch/arm/boot/dts/exynos5420-arndale-octa.dts
> +++ b/arch/arm/boot/dts/exynos5420-arndale-octa.dts
> @@ -354,4 +354,16 @@
>                 samsung,i2s-controller = <&i2s0>;
>                 samsung,audio-codec = <&i2s_stub>;
>         };
> +
> +       amba {
> +               mdma1: mdma@11C10000 {
> +                       /*
> +                        * MDMA1 can support both secure and non-secure
> +                        * AXI transactions. When this is enabled in the kernel
> +                        * for boards that run in secure mode, we are getting
> +                        * imprecise external aborts causing the kernel to oops.
> +                        */
> +                       status = "disabled";
> +               };
> +       };
> 
> If it works, I will submit this patch.

It works.  Please submit it.  Cheers,
Javi

--
To unsubscribe from this list: send the line "unsubscribe linux-samsung-soc" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

--- a/arch/arm/boot/dts/exynos5420-arndale-octa.dts
+++ b/arch/arm/boot/dts/exynos5420-arndale-octa.dts
@@ -354,4 +354,16 @@ 
                samsung,i2s-controller = <&i2s0>;
                samsung,audio-codec = <&i2s_stub>;
        };
+
+       amba {
+               mdma1: mdma@11C10000 {
+                       /*
+                        * MDMA1 can support both secure and non-secure
+                        * AXI transactions. When this is enabled in the kernel
+                        * for boards that run in secure mode, we are getting
+                        * imprecise external aborts causing the kernel to oops.
+                        */
+                       status = "disabled";
+               };
+       };