diff mbox

[RFT,2/2] arm: dts: disable CCI on exynos420 based arndale-octa

Message ID 1417186209-5256-2-git-send-email-a.kesavan@samsung.com (mailing list archive)
State New, archived
Headers show

Commit Message

Abhilash Kesavan Nov. 28, 2014, 2:50 p.m. UTC
The arndale-octa board was giving "imprecise external aborts" during
boot-up with MCPM enabled. CCI enablement of the boot cluster was found
to be the cause of these aborts (possibly because the secure f/w was not
allowing it). Hence, disable CCI for the arndale-octa board.

Signed-off-by: Abhilash Kesavan <a.kesavan@samsung.com>
---
 arch/arm/boot/dts/exynos5420-arndale-octa.dts |    4 ++++
 arch/arm/boot/dts/exynos5420.dtsi             |    2 +-
 2 files changed, 5 insertions(+), 1 deletion(-)

Comments

Krzysztof Kozlowski Nov. 28, 2014, 3:19 p.m. UTC | #1
On pi?, 2014-11-28 at 20:20 +0530, Abhilash Kesavan wrote:
> The arndale-octa board was giving "imprecise external aborts" during
> boot-up with MCPM enabled. CCI enablement of the boot cluster was found
> to be the cause of these aborts (possibly because the secure f/w was not
> allowing it). Hence, disable CCI for the arndale-octa board.
> 
> Signed-off-by: Abhilash Kesavan <a.kesavan@samsung.com>
> ---
>  arch/arm/boot/dts/exynos5420-arndale-octa.dts |    4 ++++
>  arch/arm/boot/dts/exynos5420.dtsi             |    2 +-
>  2 files changed, 5 insertions(+), 1 deletion(-)

I tested these 2 patches on Arndale Octa but there are no improvements.
I still got imprecise aborts (some not fatal and sometimes killing init
with full backtrace).

Tested on next-20141128. System booted from microSD (bootloader from
Linaro Ubuntu Saucy server image):

==================================
U-Boot 2012.07 (Feb 15 2014 - 17:29:55) for ARNDALE OCTA

CPU: Exynos5420 Rev2.0 [Samsung SOC on SMP Platform Base on ARM CortexA15]
APLL = 800MHz, KPLL = 600MHz
MPLL = 532MHz, BPLL = 800MHz

Board: ARNDALE OCTA
DRAM:  2 GiB
WARNING: Caches not enabled

TrustZone Enabled BSP
BL1 version:

Checking Boot Mode ... SDMMC
MMC:   S5P_MSHC2: 0, S5P_MSHC0: 1
MMC Device 0: 29.3 GiB
MMC Device 1: 7.3 GiB
MMC Device 2: MMC Device 2 not found
there are pending interrupts 0x00000001
In:    serial
Out:   serial
Err:   serial
Net:   No ethernet found.
(Re)start USB...
USB:   Register 1313 NbrPorts 3
USB EHCI 1.00
scanning bus for devices... The request port(2) is not configured
The request port(2) is not configured
3 USB Device(s) found
       scanning bus for storage devices... 0 Storage Device(s) found
       scanning usb for ethernet devices... 1 Ethernet Device(s) found
Hit any key to stop autoboot:  0
ARNDALE # uTTY
Unknown command 'uTTY' - try 'help'
ARNDALE # run nn
reading uImage

3674704 bytes read
reading uInitrd

2330480 bytes read
reading board.dtb

33680 bytes read
## Booting kernel from Legacy Image at 20007000 ...
   Image Name:   Linux-exynos5420-arndale-octa
   Image Type:   ARM Linux Kernel Image (uncompressed)
   Data Size:    3674640 Bytes = 3.5 MiB
   Load Address: 41008000
   Entry Point:  41008000
   Verifying Checksum ... OK
## Loading init Ramdisk from Legacy Image at 22000000 ...
   Image Name:   initramfs
   Image Type:   ARM Linux RAMDisk Image (uncompressed)
   Data Size:    2330416 Bytes = 2.2 MiB
   Load Address: 00000000
   Entry Point:  00000000
   Verifying Checksum ... OK
## Flattened Device Tree blob at 21f00000
   Booting using the fdt blob at 0x21f00000
   Loading Kernel Image ... OK
OK
   Using Device Tree in place at 21f00000, end 21f0b38f

Starting kernel ...

[    0.000000] Booting Linux on physical CPU 0x0
[    0.000000] Linux version 3.18.0-rc6-next-20141128-00007-g33b7bf7da133 (k.kozlowski@AMDC1943) (gcc version 4.7.3 (Ubuntu/Linaro 4.7.3-12ubuntu1) ) #24 SMP PREEMPT Fri Nov 28 16:13:43 CET 2014
[    0.000000] CPU: ARMv7 Processor [412fc0f3] revision 3 (ARMv7), cr=10c5387d

...
[   12.874514] VFS: Mounted root (ext4 filesystem) readonly on device 179:67.
[   12.887392] devtmpfs: mounted
[   12.889321] Freeing unused kernel memory: 324K (c0669000 - c06ba000)
[   12.951241] Unhandled fault: imprecise external abort (0x406) at 0x00000000
[   12.966312] Kernel panic - not syncing: Attempted to kill init! exitcode=0x00000007
[   12.966312]
[   12.973980] CPU: 0 PID: 1 Comm: bash Tainted: G        W      3.18.0-rc6-next-20141128-00007-g33b7bf7da133 #24
[   12.983938] Hardware name: SAMSUNG EXYNOS (Flattened Device Tree)
[   12.990014] [<c0014d44>] (unwind_backtrace) from [<c0011c88>] (show_stack+0x10/0x14)
[   12.997723] [<c0011c88>] (show_stack) from [<c048e82c>] (dump_stack+0x70/0xbc)
[   13.004911] [<c048e82c>] (dump_stack) from [<c048a8c0>] (panic+0x94/0x20c)
[   13.011753] [<c048a8c0>] (panic) from [<c0026500>] (do_exit+0x944/0x988)
[   13.018424] [<c0026500>] (do_exit) from [<c00265f4>] (do_group_exit+0x3c/0xbc)
[   13.025621] [<c00265f4>] (do_group_exit) from [<c0030d60>] (get_signal+0x218/0x8c4)
[   13.033247] [<c0030d60>] (get_signal) from [<c048a39c>] (do_signal+0x84/0x350)
[   13.040438] [<c048a39c>] (do_signal) from [<c00115ec>] (do_work_pending+0xbc/0xcc)
[   13.047979] [<c00115ec>] (do_work_pending) from [<c000f1f8>] (work_pending+0xc/0x20)
[   13.055693] CPU1: stopping
[   13.058385] CPU: 1 PID: 0 Comm: swapper/1 Tainted: G        W      3.18.0-rc6-next-20141128-00007-g33b7bf7da133 #24
[   13.068790] Hardware name: SAMSUNG EXYNOS (Flattened Device Tree)
[   13.074858] [<c0014d44>] (unwind_backtrace) from [<c0011c88>] (show_stack+0x10/0x14)
[   13.082573] [<c0011c88>] (show_stack) from [<c048e82c>] (dump_stack+0x70/0xbc)
[   13.089762] [<c048e82c>] (dump_stack) from [<c0013e14>] (handle_IPI+0x158/0x18c)
[   13.097128] [<c0013e14>] (handle_IPI) from [<c00086f4>] (gic_handle_irq+0x60/0x68)
[   13.104669] [<c00086f4>] (gic_handle_irq) from [<c00127c4>] (__irq_svc+0x44/0x7c)
[   13.112112] Exception stack(0xee4c3fa0 to 0xee4c3fe8)
[   13.117135] 3fa0: c000fd7c ee4c3fe8 ee4c3ff0 00000000 c06c24e8 c04997e0 c06fa60a c06fa60a
[   13.125287] 3fc0: 00000001 412fc0f3 00000000 00000000 00000001 ee4c3fe8 c000fd7c c000fd80
[   13.133429] 3fe0: 60000013 ffffffff
[   13.136895] [<c00127c4>] (__irq_svc) from [<c000fd80>] (arch_cpu_idle+0x20/0x3c)
[   13.144272] [<c000fd80>] (arch_cpu_idle) from [<c0059d0c>] (cpu_startup_entry+0x11c/0x1a0)
[   13.152499] [<c0059d0c>] (cpu_startup_entry) from [<40008784>] (0x40008784)
[   13.159424] CPU2: stopping
[   13.162102] CPU: 2 PID: 0 Comm: swapper/2 Tainted: G        W      3.18.0-rc6-next-20141128-00007-g33b7bf7da133 #24
[   13.172508] Hardware name: SAMSUNG EXYNOS (Flattened Device Tree)
[   13.178577] [<c0014d44>] (unwind_backtrace) from [<c0011c88>] (show_stack+0x10/0x14)
[   13.186291] [<c0011c88>] (show_stack) from [<c048e82c>] (dump_stack+0x70/0xbc)
[   13.193479] [<c048e82c>] (dump_stack) from [<c0013e14>] (handle_IPI+0x158/0x18c)
[   13.200845] [<c0013e14>] (handle_IPI) from [<c00086f4>] (gic_handle_irq+0x60/0x68)
[   13.208386] [<c00086f4>] (gic_handle_irq) from [<c00127c4>] (__irq_svc+0x44/0x7c)
[   13.215833] Exception stack(0xee4c5fa0 to 0xee4c5fe8)
[   13.220854] 5fa0: c000fd7c ee4c5fe8 ee4c5ff0 00000000 c06c24e8 c04997e0 c06fa60a c06fa60a
[   13.229006] 5fc0: 00000001 412fc0f3 00000000 00000000 00000001 ee4c5fe8 c000fd7c c000fd80
[   13.237149] 5fe0: 60000113 ffffffff
[   13.240612] [<c00127c4>] (__irq_svc) from [<c000fd80>] (arch_cpu_idle+0x20/0x3c)
[   13.247986] [<c000fd80>] (arch_cpu_idle) from [<c0059d0c>] (cpu_startup_entry+0x11c/0x1a0)
[   13.256218] [<c0059d0c>] (cpu_startup_entry) from [<40008784>] (0x40008784)
[   13.263144] CPU3: stopping
[   13.265823] CPU: 3 PID: 0 Comm: swapper/3 Tainted: G        W      3.18.0-rc6-next-20141128-00007-g33b7bf7da133 #24
[   13.276230] Hardware name: SAMSUNG EXYNOS (Flattened Device Tree)
[   13.282300] [<c0014d44>] (unwind_backtrace) from [<c0011c88>] (show_stack+0x10/0x14)
[   13.290012] [<c0011c88>] (show_stack) from [<c048e82c>] (dump_stack+0x70/0xbc)
[   13.297200] [<c048e82c>] (dump_stack) from [<c0013e14>] (handle_IPI+0x158/0x18c)
[   13.304565] [<c0013e14>] (handle_IPI) from [<c00086f4>] (gic_handle_irq+0x60/0x68)
[   13.312108] [<c00086f4>] (gic_handle_irq) from [<c00127c4>] (__irq_svc+0x44/0x7c)
[   13.319553] Exception stack(0xee4c7fa0 to 0xee4c7fe8)
[   13.324576] 7fa0: c000fd7c ee4c7fe8 ee4c7ff0 00000000 c06c24e8 c04997e0 c06fa60a c06fa60a
[   13.332727] 7fc0: 00000001 412fc0f3 00000000 00000000 00000001 ee4c7fe8 c000fd7c c000fd80
[   13.340870] 7fe0: 60000113 ffffffff
[   13.344335] [<c00127c4>] (__irq_svc) from [<c000fd80>] (arch_cpu_idle+0x20/0x3c)
[   13.351710] [<c000fd80>] (arch_cpu_idle) from [<c0059d0c>] (cpu_startup_entry+0x11c/0x1a0)
[   13.359939] [<c0059d0c>] (cpu_startup_entry) from [<40008784>] (0x40008784)
[   13.366878] ---[ end Kernel panic - not syncing: Attempted to kill init! exitcode=0x00000007
[   13.366878]

==================================

Best regards,
Krzysztof


> diff --git a/arch/arm/boot/dts/exynos5420-arndale-octa.dts b/arch/arm/boot/dts/exynos5420-arndale-octa.dts
> index aa7a7d7..db2c1c4 100644
> --- a/arch/arm/boot/dts/exynos5420-arndale-octa.dts
> +++ b/arch/arm/boot/dts/exynos5420-arndale-octa.dts
> @@ -372,3 +372,7 @@
>  &usbdrd_dwc3_1 {
>  	dr_mode = "host";
>  };
> +
> +&cci {
> +	status = "disabled";
> +};
> diff --git a/arch/arm/boot/dts/exynos5420.dtsi b/arch/arm/boot/dts/exynos5420.dtsi
> index 517e50f..0a82ae7 100644
> --- a/arch/arm/boot/dts/exynos5420.dtsi
> +++ b/arch/arm/boot/dts/exynos5420.dtsi
> @@ -120,7 +120,7 @@
>  		};
>  	};
>  
> -	cci@10d20000 {
> +	cci: cci@10d20000 {
>  		compatible = "arm,cci-400";
>  		#address-cells = <1>;
>  		#size-cells = <1>;
Abhilash Kesavan Nov. 28, 2014, 3:39 p.m. UTC | #2
Hello Krzysztof,

On Fri, Nov 28, 2014 at 8:49 PM, Krzysztof Kozlowski
<k.kozlowski@samsung.com> wrote:
> On pi?, 2014-11-28 at 20:20 +0530, Abhilash Kesavan wrote:
>> The arndale-octa board was giving "imprecise external aborts" during
>> boot-up with MCPM enabled. CCI enablement of the boot cluster was found
>> to be the cause of these aborts (possibly because the secure f/w was not
>> allowing it). Hence, disable CCI for the arndale-octa board.
>>
>> Signed-off-by: Abhilash Kesavan <a.kesavan@samsung.com>
>> ---
>>  arch/arm/boot/dts/exynos5420-arndale-octa.dts |    4 ++++
>>  arch/arm/boot/dts/exynos5420.dtsi             |    2 +-
>>  2 files changed, 5 insertions(+), 1 deletion(-)
>
> I tested these 2 patches on Arndale Octa but there are no improvements.
> I still got imprecise aborts (some not fatal and sometimes killing init
> with full backtrace).

Thanks for testing. Are you testing this with exynos_defconfig with no
other changes ? Can you please confirm from the bootlog that MCPM and
CCI are not being initialized.

Can you remove these 2 patches and on linux-next check if you are
getting aborts even with 5420_MCPM disabled.

Regards,
Abhilash
>
> Tested on next-20141128. System booted from microSD (bootloader from
> Linaro Ubuntu Saucy server image):
>
> ==================================
> U-Boot 2012.07 (Feb 15 2014 - 17:29:55) for ARNDALE OCTA
>
> CPU: Exynos5420 Rev2.0 [Samsung SOC on SMP Platform Base on ARM CortexA15]
> APLL = 800MHz, KPLL = 600MHz
> MPLL = 532MHz, BPLL = 800MHz
>
> Board: ARNDALE OCTA
> DRAM:  2 GiB
> WARNING: Caches not enabled
>
> TrustZone Enabled BSP
> BL1 version:
>
> Checking Boot Mode ... SDMMC
> MMC:   S5P_MSHC2: 0, S5P_MSHC0: 1
> MMC Device 0: 29.3 GiB
> MMC Device 1: 7.3 GiB
> MMC Device 2: MMC Device 2 not found
> there are pending interrupts 0x00000001
> In:    serial
> Out:   serial
> Err:   serial
> Net:   No ethernet found.
> (Re)start USB...
> USB:   Register 1313 NbrPorts 3
> USB EHCI 1.00
> scanning bus for devices... The request port(2) is not configured
> The request port(2) is not configured
> 3 USB Device(s) found
>        scanning bus for storage devices... 0 Storage Device(s) found
>        scanning usb for ethernet devices... 1 Ethernet Device(s) found
> Hit any key to stop autoboot:  0
> ARNDALE # uTTY
> Unknown command 'uTTY' - try 'help'
> ARNDALE # run nn
> reading uImage
>
> 3674704 bytes read
> reading uInitrd
>
> 2330480 bytes read
> reading board.dtb
>
> 33680 bytes read
> ## Booting kernel from Legacy Image at 20007000 ...
>    Image Name:   Linux-exynos5420-arndale-octa
>    Image Type:   ARM Linux Kernel Image (uncompressed)
>    Data Size:    3674640 Bytes = 3.5 MiB
>    Load Address: 41008000
>    Entry Point:  41008000
>    Verifying Checksum ... OK
> ## Loading init Ramdisk from Legacy Image at 22000000 ...
>    Image Name:   initramfs
>    Image Type:   ARM Linux RAMDisk Image (uncompressed)
>    Data Size:    2330416 Bytes = 2.2 MiB
>    Load Address: 00000000
>    Entry Point:  00000000
>    Verifying Checksum ... OK
> ## Flattened Device Tree blob at 21f00000
>    Booting using the fdt blob at 0x21f00000
>    Loading Kernel Image ... OK
> OK
>    Using Device Tree in place at 21f00000, end 21f0b38f
>
> Starting kernel ...
>
> [    0.000000] Booting Linux on physical CPU 0x0
> [    0.000000] Linux version 3.18.0-rc6-next-20141128-00007-g33b7bf7da133 (k.kozlowski@AMDC1943) (gcc version 4.7.3 (Ubuntu/Linaro 4.7.3-12ubuntu1) ) #24 SMP PREEMPT Fri Nov 28 16:13:43 CET 2014
> [    0.000000] CPU: ARMv7 Processor [412fc0f3] revision 3 (ARMv7), cr=10c5387d
>
> ...
> [   12.874514] VFS: Mounted root (ext4 filesystem) readonly on device 179:67.
> [   12.887392] devtmpfs: mounted
> [   12.889321] Freeing unused kernel memory: 324K (c0669000 - c06ba000)
> [   12.951241] Unhandled fault: imprecise external abort (0x406) at 0x00000000
> [   12.966312] Kernel panic - not syncing: Attempted to kill init! exitcode=0x00000007
> [   12.966312]
> [   12.973980] CPU: 0 PID: 1 Comm: bash Tainted: G        W      3.18.0-rc6-next-20141128-00007-g33b7bf7da133 #24
> [   12.983938] Hardware name: SAMSUNG EXYNOS (Flattened Device Tree)
> [   12.990014] [<c0014d44>] (unwind_backtrace) from [<c0011c88>] (show_stack+0x10/0x14)
> [   12.997723] [<c0011c88>] (show_stack) from [<c048e82c>] (dump_stack+0x70/0xbc)
> [   13.004911] [<c048e82c>] (dump_stack) from [<c048a8c0>] (panic+0x94/0x20c)
> [   13.011753] [<c048a8c0>] (panic) from [<c0026500>] (do_exit+0x944/0x988)
> [   13.018424] [<c0026500>] (do_exit) from [<c00265f4>] (do_group_exit+0x3c/0xbc)
> [   13.025621] [<c00265f4>] (do_group_exit) from [<c0030d60>] (get_signal+0x218/0x8c4)
> [   13.033247] [<c0030d60>] (get_signal) from [<c048a39c>] (do_signal+0x84/0x350)
> [   13.040438] [<c048a39c>] (do_signal) from [<c00115ec>] (do_work_pending+0xbc/0xcc)
> [   13.047979] [<c00115ec>] (do_work_pending) from [<c000f1f8>] (work_pending+0xc/0x20)
> [   13.055693] CPU1: stopping
> [   13.058385] CPU: 1 PID: 0 Comm: swapper/1 Tainted: G        W      3.18.0-rc6-next-20141128-00007-g33b7bf7da133 #24
> [   13.068790] Hardware name: SAMSUNG EXYNOS (Flattened Device Tree)
> [   13.074858] [<c0014d44>] (unwind_backtrace) from [<c0011c88>] (show_stack+0x10/0x14)
> [   13.082573] [<c0011c88>] (show_stack) from [<c048e82c>] (dump_stack+0x70/0xbc)
> [   13.089762] [<c048e82c>] (dump_stack) from [<c0013e14>] (handle_IPI+0x158/0x18c)
> [   13.097128] [<c0013e14>] (handle_IPI) from [<c00086f4>] (gic_handle_irq+0x60/0x68)
> [   13.104669] [<c00086f4>] (gic_handle_irq) from [<c00127c4>] (__irq_svc+0x44/0x7c)
> [   13.112112] Exception stack(0xee4c3fa0 to 0xee4c3fe8)
> [   13.117135] 3fa0: c000fd7c ee4c3fe8 ee4c3ff0 00000000 c06c24e8 c04997e0 c06fa60a c06fa60a
> [   13.125287] 3fc0: 00000001 412fc0f3 00000000 00000000 00000001 ee4c3fe8 c000fd7c c000fd80
> [   13.133429] 3fe0: 60000013 ffffffff
> [   13.136895] [<c00127c4>] (__irq_svc) from [<c000fd80>] (arch_cpu_idle+0x20/0x3c)
> [   13.144272] [<c000fd80>] (arch_cpu_idle) from [<c0059d0c>] (cpu_startup_entry+0x11c/0x1a0)
> [   13.152499] [<c0059d0c>] (cpu_startup_entry) from [<40008784>] (0x40008784)
> [   13.159424] CPU2: stopping
> [   13.162102] CPU: 2 PID: 0 Comm: swapper/2 Tainted: G        W      3.18.0-rc6-next-20141128-00007-g33b7bf7da133 #24
> [   13.172508] Hardware name: SAMSUNG EXYNOS (Flattened Device Tree)
> [   13.178577] [<c0014d44>] (unwind_backtrace) from [<c0011c88>] (show_stack+0x10/0x14)
> [   13.186291] [<c0011c88>] (show_stack) from [<c048e82c>] (dump_stack+0x70/0xbc)
> [   13.193479] [<c048e82c>] (dump_stack) from [<c0013e14>] (handle_IPI+0x158/0x18c)
> [   13.200845] [<c0013e14>] (handle_IPI) from [<c00086f4>] (gic_handle_irq+0x60/0x68)
> [   13.208386] [<c00086f4>] (gic_handle_irq) from [<c00127c4>] (__irq_svc+0x44/0x7c)
> [   13.215833] Exception stack(0xee4c5fa0 to 0xee4c5fe8)
> [   13.220854] 5fa0: c000fd7c ee4c5fe8 ee4c5ff0 00000000 c06c24e8 c04997e0 c06fa60a c06fa60a
> [   13.229006] 5fc0: 00000001 412fc0f3 00000000 00000000 00000001 ee4c5fe8 c000fd7c c000fd80
> [   13.237149] 5fe0: 60000113 ffffffff
> [   13.240612] [<c00127c4>] (__irq_svc) from [<c000fd80>] (arch_cpu_idle+0x20/0x3c)
> [   13.247986] [<c000fd80>] (arch_cpu_idle) from [<c0059d0c>] (cpu_startup_entry+0x11c/0x1a0)
> [   13.256218] [<c0059d0c>] (cpu_startup_entry) from [<40008784>] (0x40008784)
> [   13.263144] CPU3: stopping
> [   13.265823] CPU: 3 PID: 0 Comm: swapper/3 Tainted: G        W      3.18.0-rc6-next-20141128-00007-g33b7bf7da133 #24
> [   13.276230] Hardware name: SAMSUNG EXYNOS (Flattened Device Tree)
> [   13.282300] [<c0014d44>] (unwind_backtrace) from [<c0011c88>] (show_stack+0x10/0x14)
> [   13.290012] [<c0011c88>] (show_stack) from [<c048e82c>] (dump_stack+0x70/0xbc)
> [   13.297200] [<c048e82c>] (dump_stack) from [<c0013e14>] (handle_IPI+0x158/0x18c)
> [   13.304565] [<c0013e14>] (handle_IPI) from [<c00086f4>] (gic_handle_irq+0x60/0x68)
> [   13.312108] [<c00086f4>] (gic_handle_irq) from [<c00127c4>] (__irq_svc+0x44/0x7c)
> [   13.319553] Exception stack(0xee4c7fa0 to 0xee4c7fe8)
> [   13.324576] 7fa0: c000fd7c ee4c7fe8 ee4c7ff0 00000000 c06c24e8 c04997e0 c06fa60a c06fa60a
> [   13.332727] 7fc0: 00000001 412fc0f3 00000000 00000000 00000001 ee4c7fe8 c000fd7c c000fd80
> [   13.340870] 7fe0: 60000113 ffffffff
> [   13.344335] [<c00127c4>] (__irq_svc) from [<c000fd80>] (arch_cpu_idle+0x20/0x3c)
> [   13.351710] [<c000fd80>] (arch_cpu_idle) from [<c0059d0c>] (cpu_startup_entry+0x11c/0x1a0)
> [   13.359939] [<c0059d0c>] (cpu_startup_entry) from [<40008784>] (0x40008784)
> [   13.366878] ---[ end Kernel panic - not syncing: Attempted to kill init! exitcode=0x00000007
> [   13.366878]
>
> ==================================
>
> Best regards,
> Krzysztof
>
>
>> diff --git a/arch/arm/boot/dts/exynos5420-arndale-octa.dts b/arch/arm/boot/dts/exynos5420-arndale-octa.dts
>> index aa7a7d7..db2c1c4 100644
>> --- a/arch/arm/boot/dts/exynos5420-arndale-octa.dts
>> +++ b/arch/arm/boot/dts/exynos5420-arndale-octa.dts
>> @@ -372,3 +372,7 @@
>>  &usbdrd_dwc3_1 {
>>       dr_mode = "host";
>>  };
>> +
>> +&cci {
>> +     status = "disabled";
>> +};
>> diff --git a/arch/arm/boot/dts/exynos5420.dtsi b/arch/arm/boot/dts/exynos5420.dtsi
>> index 517e50f..0a82ae7 100644
>> --- a/arch/arm/boot/dts/exynos5420.dtsi
>> +++ b/arch/arm/boot/dts/exynos5420.dtsi
>> @@ -120,7 +120,7 @@
>>               };
>>       };
>>
>> -     cci@10d20000 {
>> +     cci: cci@10d20000 {
>>               compatible = "arm,cci-400";
>>               #address-cells = <1>;
>>               #size-cells = <1>;
>
Krzysztof Kozlowski Dec. 1, 2014, 9:03 a.m. UTC | #3
On pi?, 2014-11-28 at 21:09 +0530, Abhilash Kesavan wrote:
> Hello Krzysztof,
> 
> On Fri, Nov 28, 2014 at 8:49 PM, Krzysztof Kozlowski
> <k.kozlowski@samsung.com> wrote:
> > On pi?, 2014-11-28 at 20:20 +0530, Abhilash Kesavan wrote:
> >> The arndale-octa board was giving "imprecise external aborts" during
> >> boot-up with MCPM enabled. CCI enablement of the boot cluster was found
> >> to be the cause of these aborts (possibly because the secure f/w was not
> >> allowing it). Hence, disable CCI for the arndale-octa board.
> >>
> >> Signed-off-by: Abhilash Kesavan <a.kesavan@samsung.com>
> >> ---
> >>  arch/arm/boot/dts/exynos5420-arndale-octa.dts |    4 ++++
> >>  arch/arm/boot/dts/exynos5420.dtsi             |    2 +-
> >>  2 files changed, 5 insertions(+), 1 deletion(-)
> >
> > I tested these 2 patches on Arndale Octa but there are no improvements.
> > I still got imprecise aborts (some not fatal and sometimes killing init
> > with full backtrace).
> 
> Thanks for testing. Are you testing this with exynos_defconfig with no
> other changes ? Can you please confirm from the bootlog that MCPM and
> CCI are not being initialized.
> 
That was exynos_defconfig with disabled DRM and enabled some debug,
next-20141128.

When I tried only exynos_defconfig (with disabled DRM) it worked fine...
So the imprecise aborts were caused by one of following debug options:

DEBUG_SECTION_MISMATCH
DYNAMIC_DEBUG
DEBUG_ATOMIC_SLEEP
DEBUG_PREEMPT
PROVE_LOCKING
LOCKUP_DETECTOR
DEBUG_LOCK_ALLOC
PROVE_RCU
DEBUG_RT_MUTEXES
DEBUG_MUTEXES
DEBUG_SPINLOCK
DEBUG_LIST
DEBUG_PAGEALLOC
SPARSE_RCU_POINTER
DEBUG_FS
PM_DEBUG
PM_ADVANCED_DEBUG
GPIO_SYSFS                                                                                                               

> Can you remove these 2 patches and on linux-next check if you are
> getting aborts even with 5420_MCPM disabled.

I tried this already and imprecise aborts shown, however with my
debugging options above.

Overall the patches seems to work properly (although the debugging issue
needs to be resolved still), so:

On Arndale Octa (Exynos 5420):
Tested-by: Krzysztof Kozlowski <k.kozlowski@samsung.com>

Best regards,
Krzysztof
Russell King - ARM Linux Dec. 1, 2014, 11:09 a.m. UTC | #4
On Mon, Dec 01, 2014 at 10:03:28AM +0100, Krzysztof Kozlowski wrote:
> On pi?, 2014-11-28 at 21:09 +0530, Abhilash Kesavan wrote:
> > Hello Krzysztof,
> > 
> > On Fri, Nov 28, 2014 at 8:49 PM, Krzysztof Kozlowski
> > <k.kozlowski@samsung.com> wrote:
> > > On pi?, 2014-11-28 at 20:20 +0530, Abhilash Kesavan wrote:
> > >> The arndale-octa board was giving "imprecise external aborts" during
> > >> boot-up with MCPM enabled. CCI enablement of the boot cluster was found
> > >> to be the cause of these aborts (possibly because the secure f/w was not
> > >> allowing it). Hence, disable CCI for the arndale-octa board.
> > >>
> > >> Signed-off-by: Abhilash Kesavan <a.kesavan@samsung.com>
> > >> ---
> > >>  arch/arm/boot/dts/exynos5420-arndale-octa.dts |    4 ++++
> > >>  arch/arm/boot/dts/exynos5420.dtsi             |    2 +-
> > >>  2 files changed, 5 insertions(+), 1 deletion(-)
> > >
> > > I tested these 2 patches on Arndale Octa but there are no improvements.
> > > I still got imprecise aborts (some not fatal and sometimes killing init
> > > with full backtrace).
> > 
> > Thanks for testing. Are you testing this with exynos_defconfig with no
> > other changes ? Can you please confirm from the bootlog that MCPM and
> > CCI are not being initialized.
> > 
> That was exynos_defconfig with disabled DRM and enabled some debug,
> next-20141128.
> 
> When I tried only exynos_defconfig (with disabled DRM) it worked fine...
> So the imprecise aborts were caused by one of following debug options:
> 
> DEBUG_SECTION_MISMATCH
> DYNAMIC_DEBUG
> DEBUG_ATOMIC_SLEEP
> DEBUG_PREEMPT
> PROVE_LOCKING
> LOCKUP_DETECTOR
> DEBUG_LOCK_ALLOC
> PROVE_RCU
> DEBUG_RT_MUTEXES
> DEBUG_MUTEXES
> DEBUG_SPINLOCK
> DEBUG_LIST
> DEBUG_PAGEALLOC
> SPARSE_RCU_POINTER
> DEBUG_FS
> PM_DEBUG
> PM_ADVANCED_DEBUG
> GPIO_SYSFS
> 
> > Can you remove these 2 patches and on linux-next check if you are
> > getting aborts even with 5420_MCPM disabled.
> 
> I tried this already and imprecise aborts shown, however with my
> debugging options above.
> 
> Overall the patches seems to work properly (although the debugging issue
> needs to be resolved still), so:
> 
> On Arndale Octa (Exynos 5420):
> Tested-by: Krzysztof Kozlowski <k.kozlowski@samsung.com>

Reading this message, it seems that this should *not* be given a tested-by,
because it seems from what you've reported above, they don't work correctly.

If you have to turn debugging options off in order to get the kernel to
apparently run correctly after applying some patches, it means those
patches themselves are probably buggy, rather than the debug itself
being buggy.

I'd suggest that you have some further work to do (a manual bisect of the
config options you've disabled) to discover which is the cause of the
problem.

It could be that the code introduces something like a use-after-free bug.
Krzysztof Kozlowski Dec. 1, 2014, 11:19 a.m. UTC | #5
On pon, 2014-12-01 at 11:09 +0000, Russell King - ARM Linux wrote:
> On Mon, Dec 01, 2014 at 10:03:28AM +0100, Krzysztof Kozlowski wrote:
> > On pi?, 2014-11-28 at 21:09 +0530, Abhilash Kesavan wrote:
> > > Hello Krzysztof,
> > > 
> > > On Fri, Nov 28, 2014 at 8:49 PM, Krzysztof Kozlowski
> > > <k.kozlowski@samsung.com> wrote:
> > > > On pi?, 2014-11-28 at 20:20 +0530, Abhilash Kesavan wrote:
> > > >> The arndale-octa board was giving "imprecise external aborts" during
> > > >> boot-up with MCPM enabled. CCI enablement of the boot cluster was found
> > > >> to be the cause of these aborts (possibly because the secure f/w was not
> > > >> allowing it). Hence, disable CCI for the arndale-octa board.
> > > >>
> > > >> Signed-off-by: Abhilash Kesavan <a.kesavan@samsung.com>
> > > >> ---
> > > >>  arch/arm/boot/dts/exynos5420-arndale-octa.dts |    4 ++++
> > > >>  arch/arm/boot/dts/exynos5420.dtsi             |    2 +-
> > > >>  2 files changed, 5 insertions(+), 1 deletion(-)
> > > >
> > > > I tested these 2 patches on Arndale Octa but there are no improvements.
> > > > I still got imprecise aborts (some not fatal and sometimes killing init
> > > > with full backtrace).
> > > 
> > > Thanks for testing. Are you testing this with exynos_defconfig with no
> > > other changes ? Can you please confirm from the bootlog that MCPM and
> > > CCI are not being initialized.
> > > 
> > That was exynos_defconfig with disabled DRM and enabled some debug,
> > next-20141128.
> > 
> > When I tried only exynos_defconfig (with disabled DRM) it worked fine...
> > So the imprecise aborts were caused by one of following debug options:
> > 
> > DEBUG_SECTION_MISMATCH
> > DYNAMIC_DEBUG
> > DEBUG_ATOMIC_SLEEP
> > DEBUG_PREEMPT
> > PROVE_LOCKING
> > LOCKUP_DETECTOR
> > DEBUG_LOCK_ALLOC
> > PROVE_RCU
> > DEBUG_RT_MUTEXES
> > DEBUG_MUTEXES
> > DEBUG_SPINLOCK
> > DEBUG_LIST
> > DEBUG_PAGEALLOC
> > SPARSE_RCU_POINTER
> > DEBUG_FS
> > PM_DEBUG
> > PM_ADVANCED_DEBUG
> > GPIO_SYSFS
> > 
> > > Can you remove these 2 patches and on linux-next check if you are
> > > getting aborts even with 5420_MCPM disabled.
> > 
> > I tried this already and imprecise aborts shown, however with my
> > debugging options above.
> > 
> > Overall the patches seems to work properly (although the debugging issue
> > needs to be resolved still), so:
> > 
> > On Arndale Octa (Exynos 5420):
> > Tested-by: Krzysztof Kozlowski <k.kozlowski@samsung.com>
> 
> Reading this message, it seems that this should *not* be given a tested-by,
> because it seems from what you've reported above, they don't work correctly.
> 
> If you have to turn debugging options off in order to get the kernel to
> apparently run correctly after applying some patches, it means those
> patches themselves are probably buggy, rather than the debug itself
> being buggy.
> 
> I'd suggest that you have some further work to do (a manual bisect of the
> config options you've disabled) to discover which is the cause of the
> problem.
> 
> It could be that the code introduces something like a use-after-free bug.

Maybe I was to eager to add Tested-by but (without debugging options)
one imprecise-abort disappears with the patchset. Other issues seem not
to be fixed.

Best regards,
Krzysztof
Kevin Hilman Dec. 1, 2014, 6:50 p.m. UTC | #6
Abhilash Kesavan <a.kesavan@samsung.com> writes:

> The arndale-octa board was giving "imprecise external aborts" during
> boot-up with MCPM enabled. CCI enablement of the boot cluster was found
> to be the cause of these aborts (possibly because the secure f/w was not
> allowing it). Hence, disable CCI for the arndale-octa board.
>
> Signed-off-by: Abhilash Kesavan <a.kesavan@samsung.com>

Tested-by: Kevin Hilman <khilman@linaro.org>

Tested on top of next-20141128 with exynos_defconfig on my Octa board
and I'm not seeing the imprecise aborts anymore.  

Thanks,

Kevin
Tyler Baker Dec. 1, 2014, 7:52 p.m. UTC | #7
On 1 December 2014 at 10:50, Kevin Hilman <khilman@kernel.org> wrote:
> Abhilash Kesavan <a.kesavan@samsung.com> writes:
>
>> The arndale-octa board was giving "imprecise external aborts" during
>> boot-up with MCPM enabled. CCI enablement of the boot cluster was found
>> to be the cause of these aborts (possibly because the secure f/w was not
>> allowing it). Hence, disable CCI for the arndale-octa board.
>>
>> Signed-off-by: Abhilash Kesavan <a.kesavan@samsung.com>
>
> Tested-by: Kevin Hilman <khilman@linaro.org>
>
> Tested on top of next-20141128 with exynos_defconfig on my Octa board
> and I'm not seeing the imprecise aborts anymore.
>
> Thanks,
>
> Kevin
> --
> 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

Tested-by: Tyler Baker <tyler.baker@linaro.org>

Tested on top of mainline/master with exynos_defconfig on my
arndale-octa board.
One hundred boots attempted with no imprecise aborts.

Cheers,
diff mbox

Patch

diff --git a/arch/arm/boot/dts/exynos5420-arndale-octa.dts b/arch/arm/boot/dts/exynos5420-arndale-octa.dts
index aa7a7d7..db2c1c4 100644
--- a/arch/arm/boot/dts/exynos5420-arndale-octa.dts
+++ b/arch/arm/boot/dts/exynos5420-arndale-octa.dts
@@ -372,3 +372,7 @@ 
 &usbdrd_dwc3_1 {
 	dr_mode = "host";
 };
+
+&cci {
+	status = "disabled";
+};
diff --git a/arch/arm/boot/dts/exynos5420.dtsi b/arch/arm/boot/dts/exynos5420.dtsi
index 517e50f..0a82ae7 100644
--- a/arch/arm/boot/dts/exynos5420.dtsi
+++ b/arch/arm/boot/dts/exynos5420.dtsi
@@ -120,7 +120,7 @@ 
 		};
 	};
 
-	cci@10d20000 {
+	cci: cci@10d20000 {
 		compatible = "arm,cci-400";
 		#address-cells = <1>;
 		#size-cells = <1>;