This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Trying to debug crash on Linux 4.1.6

Other Parts Discussed in Thread: AM4372

Hello all,

I have a custom board AM437x board and had it working on kernel 3.12.10 (tag was ti2013.12.01) because that was what the initial BSP used.

I've recently tried to update to a kernel 4.1.6 (tag ti2015.01) and am now getting the following error:

 

[    0.219181] cpuidle: using governor ladder
[    0.239071] cpuidle: using governor menu
[    0.241680] omap_l3_noc 44000000.ocp: L3 debug error: target 13 mod:1 (unclearable)
[    0.241780] ------------[ cut here ]------------
[    0.241810] WARNING: CPU: 0 PID: 1 at drivers/bus/omap_l3_noc.c:149 l3_interrupt_handler+0x344/0x38c()
[    0.241824] 44000000.ocp:L3 Custom Error: MASTER M2 (64-bit) TARGET L4_WKUP (Read): Data Access in User mode during Functional access
[    0.241832] Modules linked in:
[    0.241851] CPU: 0 PID: 1 Comm: swapper Not tainted 4.1.6 #7
[    0.241860] Hardware name: Generic AM43 (Flattened Device Tree)
[    0.241867] Backtrace: 
[    0.241903] [<c0012b50>] (dump_backtrace) from [<c0012d74>] (show_stack+0x18/0x1c)
[    0.241911]  r7:c01fc19c r6:00000095 r5:00000009 r4:00000000
[    0.241952] [<c0012d5c>] (show_stack) from [<c045b0e8>] (dump_stack+0x24/0x28)
[    0.241970] [<c045b0c4>] (dump_stack) from [<c0038d10>] (warn_slowpath_common+0x88/0xb4)
[    0.241984] [<c0038c88>] (warn_slowpath_common) from [<c0038d74>] (warn_slowpath_fmt+0x38/0x40)
[    0.241992]  r8:f2800e00 r7:ee0e0e90 r6:c047c728 r5:c0555f74 r4:c0556078
[    0.242022] [<c0038d40>] (warn_slowpath_fmt) from [<c01fc19c>] (l3_interrupt_handler+0x344/0x38c)
[    0.242030]  r3:ee0c4140 r2:c0556078
[    0.242040]  r4:c0556130
[    0.242063] [<c01fbe58>] (l3_interrupt_handler) from [<c0064f2c>] (handle_irq_event_percpu+0x80/0x148)
[    0.242071]  r10:c063b84f r9:ee0cf7c0 r8:00000013 r7:00000000 r6:00000000 r5:ee0e0b00
[    0.242093]  r4:ee0e0b00
[    0.242109] [<c0064eac>] (handle_irq_event_percpu) from [<c006505c>] (handle_irq_event+0x68/0x90)
[    0.242116]  r10:ee0cf7c0 r9:00000013 r8:ee004000 r7:00000000 r6:00000000 r5:ee0e0b00
[    0.242137]  r4:ee0cf7c0
[    0.242156] [<c0064ff4>] (handle_irq_event) from [<c0067994>] (handle_fasteoi_irq+0xb8/0x1f8)
[    0.242163]  r5:c05f9648 r4:ee0cf7c0
[    0.242183] [<c00678dc>] (handle_fasteoi_irq) from [<c0064634>] (generic_handle_irq+0x34/0x44)
[    0.242190]  r5:00000013 r4:00000013
[    0.242209] [<c0064600>] (generic_handle_irq) from [<c0064898>] (__handle_domain_irq+0x5c/0xb0)
[    0.242216]  r5:00000013 r4:c06175cc
[    0.242234] [<c006483c>] (__handle_domain_irq) from [<c00094c0>] (gic_handle_irq+0x2c/0x5c)
[    0.242242]  r9:00000013 r8:60000113 r7:fa240100 r6:ee04bbb8 r5:c05f4384 r4:fa24010c
[    0.242275] [<c0009494>] (gic_handle_irq) from [<c0013880>] (__irq_svc+0x40/0x74)
[    0.242284] Exception stack(0xee04bbb8 to 0xee04bc00)
[    0.242295] bba0:                                                       00000000 00000013
[    0.242309] bbc0: 00000104 00000000 ee0cf7c0 ee0e0b00 00000013 ee0e0e90 60000113 00000013
[    0.242323] bbe0: ee0cf7c0 ee04bc2c ee04bbe0 ee04bc00 c0067f78 c006635c 40000113 ffffffff
[    0.242330]  r7:ee04bbec r6:ffffffff r5:40000113 r4:c006635c
[    0.242357] [<c00660d0>] (__setup_irq) from [<c00667b4>] (request_threaded_irq+0xcc/0x14c)
[    0.242364]  r8:00000000 r7:ee0e0e90 r6:c01fbe58 r5:00000000 r4:ee0e0b00
[    0.242395] [<c00666e8>] (request_threaded_irq) from [<c00689f4>] (devm_request_threaded_irq+0x60/0xa4)
[    0.242403]  r10:00000002 r9:ee0dee10 r8:00000000 r7:00000013 r6:ee0e0e90 r5:ee0e0b50
[    0.242424]  r4:c01fbe58 r3:00000000
[    0.242444] [<c0068994>] (devm_request_threaded_irq) from [<c01fbe04>] (omap_l3_probe+0x2b0/0x304)
[    0.242451]  r9:c065aca8 r8:00000004 r7:ee0e0e90 r6:ee0dee00 r5:c065aca8 r4:00000000
[    0.242488] [<c01fbb54>] (omap_l3_probe) from [<c02546ec>] (platform_drv_probe+0x4c/0xac)
[    0.242496]  r10:00000000 r9:00000000 r8:00000000 r7:fffffdfb r6:c0617a14 r5:ee0dee10
[    0.242516]  r4:c065eab0
[    0.242533] [<c02546a0>] (platform_drv_probe) from [<c0252fe8>] (driver_probe_device+0x184/0x2c4)
[    0.242540]  r7:c0617a14 r6:00000000 r5:ee0dee10 r4:c065eab0
[    0.242564] [<c0252e64>] (driver_probe_device) from [<c0253170>] (__device_attach+0x48/0x4c)
[    0.242571]  r9:00000000 r8:c065ea8c r7:00000000 r6:c0253128 r5:ee0dee10 r4:c0617a14
[    0.242599] [<c0253128>] (__device_attach) from [<c02513f0>] (bus_for_each_drv+0x68/0x9c)
[    0.242606]  r5:ee0dee10 r4:00000000
[    0.242623] [<c0251388>] (bus_for_each_drv) from [<c0252e28>] (device_attach+0x7c/0x90)
[    0.242630]  r6:ee0dee44 r5:c061ce68 r4:ee0dee10
[    0.242651] [<c0252dac>] (device_attach) from [<c025247c>] (bus_probe_device+0x8c/0xb0)
[    0.242658]  r7:00000000 r6:ee0dee10 r5:c061ce68 r4:ee0dee18
[    0.242693] [<c02523f0>] (bus_probe_device) from [<c02505c4>] (device_add+0x3e8/0x564)
[    0.242701]  r7:00000000 r6:ee0dee10 r5:c061cd28 r4:ee0dee18
[    0.242741] [<c02501dc>] (device_add) from [<c0348b84>] (of_device_add+0x38/0x40)
[    0.242748]  r10:00000000 r9:00000000 r8:c05eb884 r7:ee0dee10 r6:00000000 r5:eefd83e0
[    0.242769]  r4:ee0dee00
[    0.242788] [<c0348b4c>] (of_device_add) from [<c03493e0>] (of_platform_device_create_pdata+0x88/0xc8)
[    0.242807] [<c0349358>] (of_platform_device_create_pdata) from [<c034952c>] (of_platform_bus_create+0xf0/0x194)
[    0.242815]  r7:00000001 r6:c05e79d4 r5:eefd83e0 r4:00000000
[    0.242841] [<c034943c>] (of_platform_bus_create) from [<c034970c>] (of_platform_populate+0x64/0xc0)
[    0.242849]  r10:00000000 r9:00000001 r8:00000000 r7:c05e79d4 r6:c05eb884 r5:eefd72cc
[    0.242869]  r4:eefd83e0
[    0.242893] [<c03496a8>] (of_platform_populate) from [<c05c1e78>] (pdata_quirks_init+0x40/0x4c)
[    0.242900]  r9:c05b25ec r8:00000072 r7:ee0c4640 r6:c05f73e8 r5:c05eb884 r4:c05e79ac
[    0.242930] [<c05c1e38>] (pdata_quirks_init) from [<c05c1b7c>] (omap_generic_init+0x1c/0x24)
[    0.242937]  r5:c05b4238 r4:c05f73e8
[    0.242959] [<c05c1b60>] (omap_generic_init) from [<c05b4264>] (customize_machine+0x2c/0x4c)
[    0.242974] [<c05b4238>] (customize_machine) from [<c0009784>] (do_one_initcall+0x94/0x1dc)
[    0.242990] [<c00096f0>] (do_one_initcall) from [<c05b2db0>] (kernel_init_freeable+0x128/0x1cc)
[    0.242997]  r10:c05e3a04 r9:c05b25ec r8:00000072 r7:c063e000 r6:c063e000 r5:00000003
[    0.243018]  r4:c05efd18
[    0.243037] [<c05b2c88>] (kernel_init_freeable) from [<c04573cc>] (kernel_init+0x18/0xf0)
[    0.243044]  r10:00000000 r9:00000000 r8:00000000 r7:00000000 r6:00000000 r5:c04573b4
[    0.243064]  r4:c063e000
[    0.243082] [<c04573b4>] (kernel_init) from [<c000fa28>] (ret_from_fork+0x14/0x2c)
[    0.243089]  r5:c04573b4 r4:00000000
[    0.243124] ---[ end trace 116c968bdac91a12 ]---
[    0.243165] omap_l3_noc 44000000.ocp: L3 application error: target 13 mod:1 (unclearable)

It looks like, as soon as the interrupt is registered from omap_l3_probe, it goes off, reporting the error. It seems to me that the cause is almost certainly something related to some clock in the L4_WKUP domain which I'm not setting up correctly in my .dts, and which used to not be necessary, but now is. I've been trying to debug this, but am having issues due to the lack of documentation surrounding the L3/L4 infrastructure (because, presumably, it's a big secret). Adding some debug tracing, I find that the target base is 0xf2800e00, if that helps anyone with access to any internal documentation.

I've attached my .dts file for reference.

Thanks in advance.

sxni-am43xx_cpu9.dts.txt
/*
 * Copyright (C) 2014 Red Lion controls - http://www.redlion.net
 *
 * Based on am437x-gp-evm.dts.
 * 
 * Copyright (C) 2013 Texas Instruments Incorporated - http://www.ti.com/
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License version 2 as
 * published by the Free Software Foundation.
 */

/* AM437x CPU9 module */

/dts-v1/;

#include "am4372.dtsi"
#include <dt-bindings/pinctrl/am43xx.h>
#include <dt-bindings/pwm/pwm.h>

/ {
	model = "RedLion AM437x CPU9";
	compatible = "redlion,sxni-am43xx_cpu9","ti,am4372","ti,am43";

	vmmcsd_fixed: fixedregulator-sd {
		compatible = "regulator-fixed";
		regulator-name = "vmmcsd_fixed";
		regulator-min-microvolt = <3300000>;
		regulator-max-microvolt = <3300000>;
		enable-active-high;
	};

	/* These override any aliases in included files */
	aliases {
		i2c0 = &i2c0;
		serial0 = &uart1;
		serial1 = &uart2;
		serial2 = &uart3;
		serial3 = &uart4;
		serial4 = &uart5;
		ethernet0 = &cpsw_emac1;
		ethernet1 = &cpsw_emac0;
	};

};

&am43xx_pinmux {
	pinctrl-names = "default";
	pinctrl-0 = <&ddr3_vtt_toggle_default>;

	cpsw_default: cpsw_default {
		pinctrl-single,pins = <
			/* my_rmii_1_pins_default */
			0x10c ( PIN_INPUT | MUX_MODE1 ) /* (B14) mii1_crs.rmii1_crs_dv */
			0x110 ( PIN_INPUT | MUX_MODE1 ) /* (B13) mii1_rx_er.rmii1_rxer */
			0x114 ( PIN_OUTPUT | MUX_MODE1 ) /* (A13) mii1_tx_en.rmii1_txen */
			0x128 ( PIN_OUTPUT | MUX_MODE1 ) /* (B15) mii1_txd0.rmii1_txd0 */
			0x124 ( PIN_OUTPUT | MUX_MODE1 ) /* (A14) mii1_txd1.rmii1_txd1 */
			0x140 ( PIN_INPUT | MUX_MODE1 ) /* (F17) mii1_rxd0.rmii1_rxd0 */
			0x13c ( PIN_INPUT | MUX_MODE1 ) /* (B16) mii1_rxd1.rmii1_rxd1 */
			0x144 ( PIN_INPUT | MUX_MODE0 ) /* (A16) rmii1_ref_clk.rmii1_refclk */

                        /* my_mii_1_pins_default */
			0x78 ( PIN_INPUT | MUX_MODE1 ) /* (A3) gpmc_be1n.gmii2_col */
			0x84 ( PIN_INPUT | MUX_MODE8 ) /* (F10) gpmc_csn2.gmii2_crs */
			0x40 ( PIN_OUTPUT | MUX_MODE1 ) /* (C3) gpmc_a0.gmii2_txen */
			0x44 ( PIN_INPUT | MUX_MODE1 ) /* (C5) gpmc_a1.gmii2_rxdv */
			0x58 ( PIN_INPUT | MUX_MODE1 ) /* (E8) gpmc_a6.gmii2_txclk */
			0x5c ( PIN_INPUT | MUX_MODE1 ) /* (F6) gpmc_a7.gmii2_rxclk */
			0x54 ( PIN_OUTPUT | MUX_MODE1 ) /* (E7) gpmc_a5.gmii2_txd0 */
			0x50 ( PIN_OUTPUT | MUX_MODE1 ) /* (D7) gpmc_a4.gmii2_txd1 */
			0x4c ( PIN_OUTPUT | MUX_MODE1 ) /* (A4) gpmc_a3.gmii2_txd2 */
			0x48 ( PIN_OUTPUT | MUX_MODE1 ) /* (C6) gpmc_a2.gmii2_txd3 */
			0x6c ( PIN_INPUT | MUX_MODE1 ) /* (D8) gpmc_a11.gmii2_rxd0 */
			0x68 ( PIN_INPUT | MUX_MODE1 ) /* (G8) gpmc_a10.gmii2_rxd1 */
			0x64 ( PIN_INPUT | MUX_MODE1 ) /* (B4) gpmc_a9.gmii2_rxd2 */
			0x60 ( PIN_INPUT | MUX_MODE1 ) /* (F7) gpmc_a8.gmii2_rxd3 */
		>;
	};

	cpsw_sleep: cpsw_sleep {
		pinctrl-single,pins = <
			/* my_rmii_1_pins_sleep */
			0x10c ( PIN_INPUT_PULLDOWN | MUX_MODE7 ) /* (B14) mii1_crs.rmii1_crs_dv */
			0x110 ( PIN_INPUT_PULLDOWN | MUX_MODE7 ) /* (B13) mii1_rx_er.rmii1_rxer */
			0x114 ( PIN_INPUT_PULLDOWN | MUX_MODE7 ) /* (A13) mii1_tx_en.rmii1_txen */
			0x128 ( PIN_INPUT_PULLDOWN | MUX_MODE7 ) /* (B15) mii1_txd0.rmii1_txd0 */
			0x124 ( PIN_INPUT_PULLDOWN | MUX_MODE7 ) /* (A14) mii1_txd1.rmii1_txd1 */
			0x140 ( PIN_INPUT_PULLDOWN | MUX_MODE7 ) /* (F17) mii1_rxd0.rmii1_rxd0 */
			0x13c ( PIN_INPUT_PULLDOWN | MUX_MODE7 ) /* (B16) mii1_rxd1.rmii1_rxd1 */
			0x144 ( PIN_INPUT_PULLDOWN | MUX_MODE7 ) /* (A16) rmii1_ref_clk.rmii1_refclk */

                        /* Slave 2 */
			0x78 ( PIN_INPUT_PULLDOWN | MUX_MODE7 ) /* (A3) gpmc_be1n.gmii2_col */
			0x84 ( PIN_INPUT_PULLDOWN | MUX_MODE7 ) /* (F10) gpmc_csn2.gmii2_crs */
			0x40 ( PIN_INPUT_PULLDOWN | MUX_MODE7 ) /* (C3) gpmc_a0.gmii2_txen */
			0x44 ( PIN_INPUT_PULLDOWN | MUX_MODE7 ) /* (C5) gpmc_a1.gmii2_rxdv */
			0x58 ( PIN_INPUT_PULLDOWN | MUX_MODE7 ) /* (E8) gpmc_a6.gmii2_txclk */
			0x5c ( PIN_INPUT_PULLDOWN | MUX_MODE7 ) /* (F6) gpmc_a7.gmii2_rxclk */
			0x54 ( PIN_INPUT_PULLDOWN | MUX_MODE7 ) /* (E7) gpmc_a5.gmii2_txd0 */
			0x50 ( PIN_INPUT_PULLDOWN | MUX_MODE7 ) /* (D7) gpmc_a4.gmii2_txd1 */
			0x4c ( PIN_INPUT_PULLDOWN | MUX_MODE7 ) /* (A4) gpmc_a3.gmii2_txd2 */
			0x48 ( PIN_INPUT_PULLDOWN | MUX_MODE7 ) /* (C6) gpmc_a2.gmii2_txd3 */
			0x6c ( PIN_INPUT_PULLDOWN | MUX_MODE7 ) /* (D8) gpmc_a11.gmii2_rxd0 */
			0x68 ( PIN_INPUT_PULLDOWN | MUX_MODE7 ) /* (G8) gpmc_a10.gmii2_rxd1 */
			0x64 ( PIN_INPUT_PULLDOWN | MUX_MODE7 ) /* (B4) gpmc_a9.gmii2_rxd2 */
			0x60 ( PIN_INPUT_PULLDOWN | MUX_MODE7 ) /* (F7) gpmc_a8.gmii2_rxd3 */
		>;
	};

	mdio_1_pins_default: mdio_1_pins_default {
		pinctrl-single,pins = <
			0x14c ( PIN_OUTPUT | MUX_MODE0 ) /* (B17) mdio_clk.mdio_clk */
			0x148 ( PIN_INPUT | MUX_MODE0 ) /* (A17) mdio_data.mdio_data */
		>;
	};

	mdio_1_pins_sleep: mdio_1_pins_sleep {
		pinctrl-single,pins = <
			0x14c ( PIN_INPUT_PULLDOWN | MUX_MODE7 ) /* (B17) mdio_clk.mdio_clk */
			0x148 ( PIN_INPUT_PULLDOWN | MUX_MODE7 ) /* (A17) mdio_data.mdio_data */
		>;
	};

	memory_card_pins_default: memory_card_pins_default {
		pinctrl-single,pins = <
			0x100 ( PIN_INPUT | MUX_MODE0 ) /* (D1) mmc0_clk.mmc0_clk */
			0x104 ( PIN_INPUT | MUX_MODE0 ) /* (D2) mmc0_cmd.mmc0_cmd */
			0xfc ( PIN_INPUT | MUX_MODE0 ) /* (C1) mmc0_dat0.mmc0_dat0 */
			0xf8 ( PIN_INPUT | MUX_MODE0 ) /* (C2) mmc0_dat1.mmc0_dat1 */
			0xf4 ( PIN_INPUT | MUX_MODE0 ) /* (B2) mmc0_dat2.mmc0_dat2 */
			0xf0 ( PIN_INPUT | MUX_MODE0 ) /* (B1) mmc0_dat3.mmc0_dat3 */
			0x160 ( PIN_INPUT | MUX_MODE5 ) /* (R25) spi0_cs1.mmc0_sdcd */
			0x1a0 ( PIN_OUTPUT | MUX_MODE4 ) /* (L23) mcasp0_aclkr.mmc0_sdwp */
		>;
	};

	memory_card_pins_sleep: memory_card_pins_sleep {
		pinctrl-single,pins = <
			0x100 ( PIN_INPUT | MUX_MODE0 ) /* (D1) mmc0_clk.mmc0_clk */
			0x104 ( PIN_INPUT | MUX_MODE0 ) /* (D2) mmc0_cmd.mmc0_cmd */
			0xfc ( PIN_INPUT | MUX_MODE0 ) /* (C1) mmc0_dat0.mmc0_dat0 */
			0xf8 ( PIN_INPUT | MUX_MODE0 ) /* (C2) mmc0_dat1.mmc0_dat1 */
			0xf4 ( PIN_INPUT | MUX_MODE0 ) /* (B2) mmc0_dat2.mmc0_dat2 */
			0xf0 ( PIN_INPUT | MUX_MODE0 ) /* (B1) mmc0_dat3.mmc0_dat3 */
			/* 
			 * The presence and write protect pins are not slept 
			 * here so we can detect a card insert.
 			 */
		>;
	};

	ddr3_vtt_toggle_default: ddr_vtt_toggle_default {
		pinctrl-single,pins = <
			0x1c0 ( PIN_INPUT | MUX_MODE7 ) /* (AC20) cam0_pclk.gpio4[4] */
		>;
	};


	my_glue_2_pins_default: my_glue_2_pins_default {
		pinctrl-single,pins = <
			0x27c ( PIN_INPUT | MUX_MODE0 ) /* (G22) WARMRSTn.nRESETIN_OUT */
			0x280 ( PIN_INPUT | MUX_MODE0 ) /* (Y23) PWRONRSTn.porz */
		>;
	};

	mdio_pruss1_eth0_pins_default: mdio_pruss1_eth0_pins_default {
		pinctrl-single,pins = <
			0x8c ( PIN_OUTPUT | MUX_MODE5 ) /* (A12) gpmc_clk.pr1_mdio_mdclk */
			0x88 ( PIN_INPUT | MUX_MODE5 ) /* (B12) gpmc_csn3.pr1_mdio_data */
		>;
	};

	my_i2c_1_pins_default: my_i2c_1_pins_default {
		pinctrl-single,pins = <
			0x18c ( PIN_INPUT | MUX_MODE0 ) /* (Y22) I2C0_SCL.I2C0_SCL */
			0x188 ( PIN_INPUT | MUX_MODE0 ) /* (AB24) I2C0_SDA.I2C0_SDA */
		>;
	};

	my_debugss_1_pins_default: my_debugss_1_pins_default {
		pinctrl-single,pins = <
			0x290 ( PIN_INPUT | MUX_MODE0 ) /* (Y24) TMS.TMS */
			0x294 ( PIN_INPUT | MUX_MODE0 ) /* (Y20) TDI.TDI */
			0x298 ( PIN_OUTPUT | MUX_MODE0 ) /* (AA24) TDO.TDO */
			0x29c ( PIN_INPUT | MUX_MODE0 ) /* (AA25) TCK.TCK */
			0x2a0 ( PIN_INPUT | MUX_MODE0 ) /* (Y25) nTRST.nTRST */
		>;
	};

	nand_interface_pins_default: nand_interface_pins_default {
		pinctrl-single,pins = <
			0x1c ( PIN_INPUT | MUX_MODE0 ) /* (B8) gpmc_ad7.gpmc_ad7 */
			0x18 ( PIN_INPUT | MUX_MODE0 ) /* (C8) gpmc_ad6.gpmc_ad6 */
			0x14 ( PIN_INPUT | MUX_MODE0 ) /* (A7) gpmc_ad5.gpmc_ad5 */
			0x10 ( PIN_INPUT | MUX_MODE0 ) /* (B7) gpmc_ad4.gpmc_ad4 */
			0xc ( PIN_INPUT | MUX_MODE0 ) /* (A6) gpmc_ad3.gpmc_ad3 */
			0x8 ( PIN_INPUT | MUX_MODE0 ) /* (B6) gpmc_ad2.gpmc_ad2 */
			0x4 ( PIN_INPUT | MUX_MODE0 ) /* (A5) gpmc_ad1.gpmc_ad1 */
			0x0 ( PIN_INPUT | MUX_MODE0 ) /* (B5) gpmc_ad0.gpmc_ad0 */
			0x70 ( PIN_INPUT | MUX_MODE0 ) /* (A2) gpmc_wait0.gpmc_wait0 */
			0x74 ( PIN_OUTPUT | MUX_MODE0 ) /* (B3) gpmc_wpn.gpmc_wpn */
			0x7c ( PIN_OUTPUT | MUX_MODE0 ) /* (A8) gpmc_csn0.gpmc_csn0 */
			0x90 ( PIN_OUTPUT | MUX_MODE0 ) /* (A9) gpmc_advn_ale.gpmc_advn_ale */
			0x94 ( PIN_OUTPUT | MUX_MODE0 ) /* (E10) gpmc_oen_ren.gpmc_oen_ren */
			0x98 ( PIN_OUTPUT | MUX_MODE0 ) /* (D10) gpmc_wen.gpmc_wen */
			0x9c ( PIN_OUTPUT | MUX_MODE0 ) /* (C10) gpmc_be0n_cle.gpmc_be0n_cle */
		>;
	};

	main_rs232_pins_default: main_rs232_pins_default {
		pinctrl-single,pins = <
			0x1e8 ( PIN_INPUT | MUX_MODE1 ) /* (AB20) cam1_data0.uart1_rxd */
			0x1ec ( PIN_OUTPUT | MUX_MODE1 ) /* (AC21) cam1_data1.uart1_txd */
			0x1f0 ( PIN_INPUT | MUX_MODE1 ) /* (AD21) cam1_data2.uart1_ctsn */
			0x1f4 ( PIN_INPUT | MUX_MODE1 ) /* (AE22) cam1_data3.uart1_rtsn */
			0x200 ( PIN_INPUT | MUX_MODE1 ) /* (AD23) cam1_data6.uart1_dcdn */
			0x1fc ( PIN_INPUT | MUX_MODE1 ) /* (AE23) cam1_data5.uart1_dsrn */
			0x204 ( PIN_INPUT | MUX_MODE1 ) /* (AE24) cam1_data7.uart1_dtrn */
			0x1f8 ( PIN_INPUT | MUX_MODE1 ) /* (AD22) cam1_data4.uart1_rin */
		>;
	};

	rs485_pins_default: rs485_pins_default {
		pinctrl-single,pins = <
			0x12c ( PIN_INPUT | MUX_MODE1 ) /* (D14) mii1_tx_clk.uart2_rxd */
			0x130 ( PIN_OUTPUT | MUX_MODE1 ) /* (D13) mii1_rx_clk.uart2_txd */
		>;
	};

	expansion_pins_default: expansion_pins_default {
		pinctrl-single,pins = <
			0x11c ( PIN_INPUT | MUX_MODE3 ) /* (C16) mii1_txd3.uart4_rxd */
			0x120 ( PIN_OUTPUT | MUX_MODE3 ) /* (C13) mii1_txd2.uart4_txd */
		>;
	};


	gps_pins_default: gps_pins_default {
		pinctrl-single,pins = <
			0x108 ( PIN_INPUT | MUX_MODE3 ) /* (D16) mii1_col.uart5_rxd */
			0x118 ( PIN_OUTPUT | MUX_MODE3 ) /* (A15) mii1_rx_dv.uart5_txd */
		>;
	};

	my_spi_1_pins_default: my_spi_1_pins_default {
		pinctrl-single,pins = <
			0x250 ( PIN_INPUT | MUX_MODE0 ) /* (P25) spi4_sclk.spi4_sclk */
			0x254 ( PIN_INPUT | MUX_MODE0 ) /* (R24) spi4_d0.spi4_d0 */
			0x258 ( PIN_INPUT | MUX_MODE0 ) /* (P24) spi4_d1.spi4_d1 */
			0x25c ( PIN_OUTPUT | MUX_MODE0 ) /* (N25) spi4_cs0.spi4_cs0 */
		>;
	};

	my_spi_1_pins_sleep: my_spi_1_pins_sleep {
		pinctrl-single,pins = <
			0x250 ( PIN_INPUT_PULLUP | MUX_MODE0 ) /* (P25) spi4_sclk.spi4_sclk */
			0x254 ( PIN_INPUT_PULLUP | MUX_MODE0 ) /* (R24) spi4_d0.spi4_d0 */
			0x258 ( PIN_OUTPUT | MUX_MODE0 ) /* (P24) spi4_d1.spi4_d1 */
			0x25c ( PIN_OUTPUT | MUX_MODE0 ) /* (N25) spi4_cs0.spi4_cs0 */
		>;
	};

	my_gpio_2_pins_default: my_gpio_2_pins_default {
		pinctrl-single,pins = <
			0x150 ( PIN_INPUT | MUX_MODE7 ) /* (P23) spi0_sclk.gpio0[2] */
			0x154 ( PIN_INPUT | MUX_MODE7 ) /* (T22) spi0_d0.gpio0[3] */
			0x158 ( PIN_INPUT | MUX_MODE7 ) /* (T21) spi0_d1.gpio0[4] */
			0x15c ( PIN_INPUT | MUX_MODE7 ) /* (T20) spi0_cs0.gpio0[5] */
			0x164 ( PIN_INPUT | MUX_MODE7 ) /* (G24) eCAP0_in_PWM0_out.gpio0[7] */
			0x134 ( PIN_INPUT | MUX_MODE9 ) /* (C14) mii1_rxd3.gpio0[10] */
			0x138 ( PIN_INPUT | MUX_MODE9 ) /* (E16) mii1_rxd2.gpio0[11] */
			0x178 ( PIN_INPUT | MUX_MODE7 ) /* (K22) uart1_ctsn.gpio0[12] */
			0x17c ( PIN_INPUT | MUX_MODE7 ) /* (L22) uart1_rtsn.gpio0[13] */
			0x180 ( PIN_INPUT | MUX_MODE7 ) /* (K21) uart1_rxd.gpio0[14] */
			0x184 ( PIN_INPUT | MUX_MODE7 ) /* (L21) uart1_txd.gpio0[15] */
			0x2c0 ( PIN_INPUT | MUX_MODE7 ) /* (G21) USB0_DRVVBUS.gpio0[18] */
			0x1a4 ( PIN_INPUT | MUX_MODE9 ) /* (K23) mcasp0_fsr.gpio0[19] */
			0x274 ( PIN_INPUT | MUX_MODE7 ) /* (C24) xdma_event_intr1.gpio0[20] */
			0x268 ( PIN_INPUT | MUX_MODE9 ) /* (P20) spi2_d1.gpio0[21] */
			0x260 ( PIN_INPUT | MUX_MODE9 ) /* (N20) spi2_sclk.gpio0[22] */
			0x26c ( PIN_INPUT | MUX_MODE9 ) /* (T23) spi2_cs0.gpio0[23] */
			0x278 ( PIN_INPUT | MUX_MODE7 ) /* (H20) clkreq.gpio0[24] */
			0x2c4 ( PIN_INPUT | MUX_MODE9 ) /* (F25) USB1_DRVVBUS.gpio0[25] */
			0x28 ( PIN_INPUT | MUX_MODE7 ) /* (F11) gpmc_ad10.gpio0[26] */
			0x2c ( PIN_INPUT | MUX_MODE7 ) /* (D11) gpmc_ad11.gpio0[27] */
		>;
	};

	my_gpio_3_pins_default: my_gpio_3_pins_default {
		pinctrl-single,pins = <
			0x1b0 ( PIN_INPUT | MUX_MODE7 ) /* (AE17) cam0_hd.gpio4[0] */
			0x1b4 ( PIN_INPUT | MUX_MODE7 ) /* (AD18) cam0_vd.gpio4[1] */
			0x1b8 ( PIN_INPUT | MUX_MODE7 ) /* (AC18) cam0_field.gpio4[2] */
			0x1bc ( PIN_INPUT | MUX_MODE7 ) /* (AD17) cam0_wen.gpio4[3] */

			/* gpio4_4 (0x1c0) is in the vtt_toggle_default section, above, because that is what it drives */

			0x1c4 ( PIN_INPUT | MUX_MODE7 ) /* (AB19) cam0_data8.gpio4[5] */
			0x1c8 ( PIN_INPUT | MUX_MODE7 ) /* (AA19) cam0_data9.gpio4[6] */
			0x1cc ( PIN_INPUT | MUX_MODE7 ) /* (AC24) cam1_data9.gpio4[7] */
			0x1d0 ( PIN_INPUT | MUX_MODE7 ) /* (AD24) cam1_data8.gpio4[8] */
			0x1d4 ( PIN_INPUT | MUX_MODE7 ) /* (AD25) cam1_hd.gpio4[9] */
			0x1d8 ( PIN_INPUT | MUX_MODE7 ) /* (AC23) cam1_vd.gpio4[10] */
			0x1dc ( PIN_INPUT | MUX_MODE7 ) /* (AE21) cam1_pclk.gpio4[11] */
			0x1e0 ( PIN_INPUT | MUX_MODE7 ) /* (AC25) cam1_field.gpio4[12] */
			0x1e4 ( PIN_INPUT | MUX_MODE7 ) /* (AB25) cam1_wen.gpio4[13] */
			0x210 ( PIN_INPUT | MUX_MODE7 ) /* (Y18) cam0_data2.gpio4[24] */
			0x214 ( PIN_INPUT | MUX_MODE7 ) /* (AA18) cam0_data3.gpio4[25] */
			0x218 ( PIN_INPUT | MUX_MODE7 ) /* (AE19) cam0_data4.gpio4[26] */
			0x21c ( PIN_INPUT | MUX_MODE7 ) /* (AD19) cam0_data5.gpio4[27] */
			0x220 ( PIN_INPUT | MUX_MODE7 ) /* (AE20) cam0_data6.gpio4[28] */
			0x224 ( PIN_INPUT | MUX_MODE7 ) /* (AD20) cam0_data7.gpio4[29] */
		>;
	};

	my_osc_1_pins_default: my_osc_1_pins_default {
		pinctrl-single,pins = <
			0x288 ( PIN_OUTPUT | MUX_MODE0 ) /* (C25) XTALIN.OSC0_IN */
			0x28c ( PIN_OUTPUT | MUX_MODE0 ) /* (B25) XTALOUT.OSC0_OUT */
		>;
	};

	analog_ins_pins_default: analog_ins_pins_default {
		pinctrl-single,pins = <
			0x270 ( PIN_INPUT | MUX_MODE1 ) /* (D24) xdma_event_intr0.ext_hw_trigger */
		>;
	};
};

&i2c0 {
        status = "okay";
        pinctrl-names = "default";
        pinctrl-0 = <&my_i2c_1_pins_default>;
	clock-frequency = <400000>;

	tca6424a: tca6424a@22 {
		compatible = "ti,tca6424";
		reg = <0x22>;
		gpio-controller;
		#gpio-cells = <2>;
	};
};

&gpio0 {
	status = "okay";
        pinctrl-names = "default";
        pinctrl-0 = <&my_gpio_2_pins_default>;
};

&gpio4 {
	status = "okay";
        pinctrl-names = "default";
        pinctrl-0 = <&my_gpio_3_pins_default>;
};

&mac {
	pinctrl-names = "default", "sleep";
	pinctrl-0 = <&cpsw_default>;
	pinctrl-1 = <&cpsw_sleep>;
	status = "okay";
};

&davinci_mdio {
	pinctrl-names = "default", "sleep";
	pinctrl-0 = <&mdio_1_pins_default>;
	pinctrl-1 = <&mdio_1_pins_sleep>;
	status = "okay";
};

&cpsw_emac0 {
	phy_id = <&davinci_mdio>, <1>;
	phy-mode = "rmii";
};

&cpsw_emac1 {
	phy_id = <&davinci_mdio>, <0>;
	phy-mode = "mii";
};

&phy_sel {
	rmii-clock-ext;
};

&mmc1 {
	status = "okay";
	vmmc-supply = <&vmmcsd_fixed>;
	bus-width = <4>;
	pinctrl-names = "default", "sleep";
	pinctrl-0 = <&memory_card_pins_default>;
	pinctrl-1 = <&memory_card_pins_sleep>;
	cd-gpios = <&gpio0 6 GPIO_ACTIVE_HIGH>;
};

&elm {
	status = "okay";
};

&gpmc {
	status = "okay";
	pinctrl-names = "default";
	pinctrl-0 = <&nand_interface_pins_default>;
	ranges = <0 0 0x08000000 0x10000000>;	/* CS0: NAND */
	nand@0,0 {
		compatible = "ti,omap2-nand";
		reg = <0 0 4>;		/* CS0, offset 0, IO size 4 */
		interrupt-parent = <&gic>;
		interrupts = <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>;
		ready-gpio = <&gpmc 0 GPIO_ACTIVE_HIGH>;	/* gpmc_wait0 */
		ti,nand-ecc-opt = "bch8";
		ti,elm-id = <&elm>;
		nand-bus-width = <8>;
		gpmc,device-width = <1>;
		gpmc,sync-clk-ps = <0>;
		gpmc,cs-on-ns = <0>;
		gpmc,cs-rd-off-ns = <40>;
		gpmc,cs-wr-off-ns = <40>;
		gpmc,adv-on-ns = <0>;
		gpmc,adv-rd-off-ns = <25>;
		gpmc,adv-wr-off-ns = <25>;
		gpmc,we-on-ns = <0>;
		gpmc,we-off-ns = <20>;
		gpmc,oe-on-ns = <3>;
		gpmc,oe-off-ns = <30>;
		gpmc,access-ns = <30>;
		gpmc,rd-cycle-ns = <40>;
		gpmc,wr-cycle-ns = <40>;
		gpmc,bus-turnaround-ns = <0>;
		gpmc,cycle2cycle-delay-ns = <0>;
		gpmc,clk-activation-ns = <0>;
		gpmc,wr-access-ns = <40>;
		gpmc,wr-data-mux-bus-ns = <0>;
		#address-cells = <1>;
		#size-cells = <1>;
	};
};

/*
 * uart0 does exist in the included files, and is NOT disabled by default.
 * Disable it here, as we do not use it.
 */
&uart0 {
	status = "disabled";
};

&uart1 {
	status = "okay";
	pinctrl-names = "default";
	pinctrl-0 = <&main_rs232_pins_default>;
};

&uart2 {
	status = "okay";
	pinctrl-names = "default";
	pinctrl-0 = <&rs485_pins_default>;
};

&uart4 {
	status = "okay";
	pinctrl-names = "default";
	pinctrl-0 = <&expansion_pins_default>;
};

&uart5 {
	status = "okay";
	pinctrl-names = "default";
	pinctrl-0 = <&gps_pins_default>;
};

&wkup_m3_ipc {
	ti,set-io-isolation;
	ti,scale-data-fw = "am43x-evm-scale-data.bin";
};

// Enabling this causes a crash. Need to debug.
#if 0
&rtc {
	status = "okay";
	ext-clk-src;
};
#endif

  • Hi,

    Please post the entire log file.
  • Attached. Sorry.

    linux_boot_console.txt
    U-Boot SPL 2015.07-00253-g7da94d6 (Jan 27 2016 - 16:03:42)
    reading u-boot.prodS.img
    reading u-boot.prodS.img
    
    
    U-Boot 2015.07-00253-g7da94d6 (Jan 27 2016 - 16:03:42 -0500)
    
    I2C:   ready
    DRAM:  1 GiB
    NAND:  1024 MiB
    MMC:   OMAP SD/MMC: 0, OMAP SD/MMC: 1
    Net:   cpsw
    autoboot in 5 seconds
    UBI: detaching mtd1 from ubi0
    UBI: mtd1 is detached from ubi0
    UBI: attaching mtd1 to ubi0
    UBI: scanning is finished
    UBI: attached mtd1 (name "mtd=8", size 64 MiB) to ubi0
    UBI: PEB size: 131072 bytes (128 KiB), LEB size: 129024 bytes
    UBI: min./max. I/O unit sizes: 2048/2048, sub-page size 512
    UBI: VID header offset: 512 (aligned 512), data offset: 2048
    UBI: good PEBs: 512, bad PEBs: 0, corrupted PEBs: 0
    UBI: user volume: 1, internal volumes: 1, max. volumes count: 128
    UBI: max/mean erase counter: 19/11, WL threshold: 4096, image sequence number: 0
    UBI: available PEBs: 0, total reserved PEBs: 512, PEBs reserved for bad PEB handling: 160
    Loading file 'sxni-am43xx_cpu9.dtb' to addr 0x85000000 with size 39592 (0x00009aa8)...
    Done
    Loading file 'uImage' to addr 0x90000000 with size 3126736 (0x002fb5d0)...
    Done
    ## Booting kernel from Legacy Image at 90000000 ...
       Image Name:   Linux-4.1.6
       Image Type:   ARM Linux Kernel Image (uncompressed)
       Data Size:    3126672 Bytes = 3 MiB
       Load Address: 80000000
       Entry Point:  80000000
       Verifying Checksum ... OK
    ## Flattened Device Tree blob at 85000000
       Booting using the fdt blob at 0x85000000
       Loading Kernel Image ... OK
       Loading Device Tree to 9fff3000, end 9ffffaa7 ... OK
    
    Starting kernel ...
    
    [    0.000000] Booting Linux on physical CPU 0x0
    [    0.000000] Linux version 4.1.6 (mattc@E2-06L) (gcc version 4.9.2 20140904 (prerelease) (crosstool-NG linaro-1.13.1-4.9-2014.09 - Linaro GCC 4.9-2014.09) ) #7 PREEMPT Wed Feb 3 10:24:19 EST 2016
    [    0.000000] CPU: ARMv7 Processor [412fc09a] revision 10 (ARMv7), cr=10c53c7d
    [    0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
    [    0.000000] Machine model: RedLion AM437x CPU9
    [    0.000000] Memory policy: Data cache writeback
    [    0.000000] On node 0 totalpages: 262144
    [    0.000000] free_area_init_node: node 0, pgdat c063ae24, node_mem_map eeff9000
    [    0.000000]   Normal zone: 1520 pages used for memmap
    [    0.000000]   Normal zone: 0 pages reserved
    [    0.000000]   Normal zone: 194560 pages, LIFO batch:31
    [    0.000000]   HighMem zone: 67584 pages, LIFO batch:15
    [    0.000000] CPU: All CPU(s) started in SVC mode.
    [    0.000000] AM437x ES1.2 (sgx neon )
    [    0.000000] pcpu-alloc: s0 r0 d32768 u32768 alloc=1*32768
    [    0.000000] pcpu-alloc: [0] 0 
    [    0.000000] Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 260624
    [    0.000000] Kernel command line: console=ttyO0,9600 sxid= sxserno= panic=5 ubi.mtd=8 ubi.mtd=9 ubi.mtd=10 root=ubi0_0 mtdparts=8000000.nand:128k(spl0),128k(spl1),128k(spl2),128k(spl3),1m(uboot),256k(env1),256k(env2),64M(buffer),64M(root1),64M(root2),8M(config),-(user) rootfstype=ubifs 4 debug
    [    0.000000] PID hash table entries: 4096 (order: 2, 16384 bytes)
    [    0.000000] Dentry cache hash table entries: 131072 (order: 7, 524288 bytes)
    [    0.000000] Inode-cache hash table entries: 65536 (order: 6, 262144 bytes)
    [    0.000000] Memory: 1032824K/1048576K available (4451K kernel code, 295K rwdata, 1348K rodata, 256K init, 159K bss, 15752K reserved, 0K cma-reserved, 270336K highmem)
    [    0.000000] Virtual kernel memory layout:
    [    0.000000]     vector  : 0xffff0000 - 0xffff1000   (   4 kB)
    [    0.000000]     fixmap  : 0xffc00000 - 0xfff00000   (3072 kB)
    [    0.000000]     vmalloc : 0xf0000000 - 0xff000000   ( 240 MB)
    [    0.000000]     lowmem  : 0xc0000000 - 0xef800000   ( 760 MB)
    [    0.000000]     pkmap   : 0xbfe00000 - 0xc0000000   (   2 MB)
    [    0.000000]     modules : 0xbf000000 - 0xbfe00000   (  14 MB)
    [    0.000000]       .text : 0xc0008000 - 0xc05b1f9c   (5800 kB)
    [    0.000000]       .init : 0xc05b2000 - 0xc05f2000   ( 256 kB)
    [    0.000000]       .data : 0xc05f2000 - 0xc063bd50   ( 296 kB)
    [    0.000000]        .bss : 0xc063e000 - 0xc0665d14   ( 160 kB)
    [    0.000000] Preemptible hierarchical RCU implementation.
    [    0.000000] NR_IRQS:16 nr_irqs:16 16
    [    0.000000] L2C: platform modifies aux control register: 0x0e030000 -> 0x3e430000
    [    0.000000] L2C: DT/platform modifies aux control register: 0x0e030000 -> 0x3e430000
    [    0.000000] L2C-310 erratum 769419 enabled
    [    0.000000] L2C-310 enabling early BRESP for Cortex-A9
    [    0.000000] OMAP L2C310: ROM does not support power control setting
    [    0.000000] L2C-310 ID prefetch enabled, offset 1 lines
    [    0.000000] L2C-310 dynamic clock gating disabled, standby mode disabled
    [    0.000000] L2C-310 cache controller enabled, 16 ways, 256 kB
    [    0.000000] L2C-310: CACHE_ID 0x410000c9, AUX_CTRL 0x7e430000
    [    0.000000] OMAP clockevent source: timer2 at 24000000 Hz
    [    0.000016] sched_clock: 32 bits at 24MHz, resolution 41ns, wraps every 89478484971ns
    [    0.000039] clocksource timer1: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 79635851949 ns
    [    0.000050] OMAP clocksource: timer1 at 24000000 Hz
    [    0.000298] Console: colour dummy device 80x30
    [    0.000328] Calibrating delay loop... 1196.85 BogoMIPS (lpj=5984256)
    [    0.089069] pid_max: default: 32768 minimum: 301
    [    0.089222] Mount-cache hash table entries: 2048 (order: 1, 8192 bytes)
    [    0.089239] Mountpoint-cache hash table entries: 2048 (order: 1, 8192 bytes)
    [    0.089834] CPU: Testing write buffer coherency: ok
    [    0.090169] Setting up static identity map for 0x800082c0 - 0x80008318
    [    0.102002] VFP support v0.3: implementor 41 architecture 3 part 30 variant 9 rev 4
    [    0.118035] omap_hwmod: tptc0 using broken dt data from edma
    [    0.118195] omap_hwmod: tptc1 using broken dt data from edma
    [    0.118334] omap_hwmod: tptc2 using broken dt data from edma
    [    0.189372] omap_hwmod: rtc: _wait_target_disable failed
    [    0.189902] clocksource jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
    [    0.190178] pinctrl core: initialized pinctrl subsystem
    [    0.191339] NET: Registered protocol family 16
    [    0.192335] DMA: preallocated 256 KiB pool for atomic coherent allocations
    [    0.219184] cpuidle: using governor ladder
    [    0.239074] cpuidle: using governor menu
    [    0.241670] omap_l3_noc 44000000.ocp: L3 debug error: target 13 mod:1 (unclearable)
    [    0.241771] ------------[ cut here ]------------
    [    0.241802] WARNING: CPU: 0 PID: 1 at drivers/bus/omap_l3_noc.c:149 l3_interrupt_handler+0x344/0x38c()
    [    0.241815] 44000000.ocp:L3 Custom Error: MASTER M2 (64-bit) TARGET L4_WKUP (Read): Data Access in User mode during Functional access
    [    0.241823] Modules linked in:
    [    0.241842] CPU: 0 PID: 1 Comm: swapper Not tainted 4.1.6 #7
    [    0.241851] Hardware name: Generic AM43 (Flattened Device Tree)
    [    0.241859] Backtrace: 
    [    0.241894] [<c0012b50>] (dump_backtrace) from [<c0012d74>] (show_stack+0x18/0x1c)
    [    0.241903]  r7:c01fc19c r6:00000095 r5:00000009 r4:00000000
    [    0.241945] [<c0012d5c>] (show_stack) from [<c045b0e8>] (dump_stack+0x24/0x28)
    [    0.241964] [<c045b0c4>] (dump_stack) from [<c0038d10>] (warn_slowpath_common+0x88/0xb4)
    [    0.241979] [<c0038c88>] (warn_slowpath_common) from [<c0038d74>] (warn_slowpath_fmt+0x38/0x40)
    [    0.241986]  r8:f2800e00 r7:ee0cc150 r6:c047c728 r5:c0555f74 r4:c0556078
    [    0.242016] [<c0038d40>] (warn_slowpath_fmt) from [<c01fc19c>] (l3_interrupt_handler+0x344/0x38c)
    [    0.242024]  r3:ee0cc3c0 r2:c0556078
    [    0.242035]  r4:c0556130
    [    0.242057] [<c01fbe58>] (l3_interrupt_handler) from [<c0064f2c>] (handle_irq_event_percpu+0x80/0x148)
    [    0.242065]  r10:c063b84f r9:ee0cf7c0 r8:00000013 r7:00000000 r6:00000000 r5:ee0dfd80
    [    0.242086]  r4:ee0dfd80
    [    0.242102] [<c0064eac>] (handle_irq_event_percpu) from [<c006505c>] (handle_irq_event+0x68/0x90)
    [    0.242109]  r10:ee0cf7c0 r9:00000013 r8:ee004000 r7:00000000 r6:00000000 r5:ee0dfd80
    [    0.242131]  r4:ee0cf7c0
    [    0.242150] [<c0064ff4>] (handle_irq_event) from [<c0067994>] (handle_fasteoi_irq+0xb8/0x1f8)
    [    0.242157]  r5:c05f9648 r4:ee0cf7c0
    [    0.242177] [<c00678dc>] (handle_fasteoi_irq) from [<c0064634>] (generic_handle_irq+0x34/0x44)
    [    0.242184]  r5:00000013 r4:00000013
    [    0.242203] [<c0064600>] (generic_handle_irq) from [<c0064898>] (__handle_domain_irq+0x5c/0xb0)
    [    0.242210]  r5:00000013 r4:c06175cc
    [    0.242228] [<c006483c>] (__handle_domain_irq) from [<c00094c0>] (gic_handle_irq+0x2c/0x5c)
    [    0.242236]  r9:00000013 r8:60000113 r7:fa240100 r6:ee04bbb8 r5:c05f4384 r4:fa24010c
    [    0.242269] [<c0009494>] (gic_handle_irq) from [<c0013880>] (__irq_svc+0x40/0x74)
    [    0.242279] Exception stack(0xee04bbb8 to 0xee04bc00)
    [    0.242289] bba0:                                                       00000000 00000013
    [    0.242304] bbc0: 00000104 00000000 ee0cf7c0 ee0dfd80 00000013 ee0cc150 60000113 00000013
    [    0.242318] bbe0: ee0cf7c0 ee04bc2c ee04bbe0 ee04bc00 c0067f78 c006635c 40000113 ffffffff
    [    0.242325]  r7:ee04bbec r6:ffffffff r5:40000113 r4:c006635c
    [    0.242351] [<c00660d0>] (__setup_irq) from [<c00667b4>] (request_threaded_irq+0xcc/0x14c)
    [    0.242358]  r8:00000000 r7:ee0cc150 r6:c01fbe58 r5:00000000 r4:ee0dfd80
    [    0.242390] [<c00666e8>] (request_threaded_irq) from [<c00689f4>] (devm_request_threaded_irq+0x60/0xa4)
    [    0.242397]  r10:00000002 r9:ee0dee10 r8:00000000 r7:00000013 r6:ee0cc150 r5:ee0dfdd0
    [    0.242418]  r4:c01fbe58 r3:00000000
    [    0.242438] [<c0068994>] (devm_request_threaded_irq) from [<c01fbe04>] (omap_l3_probe+0x2b0/0x304)
    [    0.242446]  r9:c065aca8 r8:00000004 r7:ee0cc150 r6:ee0dee00 r5:c065aca8 r4:00000000
    [    0.242482] [<c01fbb54>] (omap_l3_probe) from [<c02546ec>] (platform_drv_probe+0x4c/0xac)
    [    0.242489]  r10:00000000 r9:00000000 r8:00000000 r7:fffffdfb r6:c0617a14 r5:ee0dee10
    [    0.242510]  r4:c065eab0
    [    0.242527] [<c02546a0>] (platform_drv_probe) from [<c0252fe8>] (driver_probe_device+0x184/0x2c4)
    [    0.242535]  r7:c0617a14 r6:00000000 r5:ee0dee10 r4:c065eab0
    [    0.242559] [<c0252e64>] (driver_probe_device) from [<c0253170>] (__device_attach+0x48/0x4c)
    [    0.242566]  r9:00000000 r8:c065ea8c r7:00000000 r6:c0253128 r5:ee0dee10 r4:c0617a14
    [    0.242594] [<c0253128>] (__device_attach) from [<c02513f0>] (bus_for_each_drv+0x68/0x9c)
    [    0.242602]  r5:ee0dee10 r4:00000000
    [    0.242619] [<c0251388>] (bus_for_each_drv) from [<c0252e28>] (device_attach+0x7c/0x90)
    [    0.242626]  r6:ee0dee44 r5:c061ce68 r4:ee0dee10
    [    0.242647] [<c0252dac>] (device_attach) from [<c025247c>] (bus_probe_device+0x8c/0xb0)
    [    0.242654]  r7:00000000 r6:ee0dee10 r5:c061ce68 r4:ee0dee18
    [    0.242690] [<c02523f0>] (bus_probe_device) from [<c02505c4>] (device_add+0x3e8/0x564)
    [    0.242697]  r7:00000000 r6:ee0dee10 r5:c061cd28 r4:ee0dee18
    [    0.242739] [<c02501dc>] (device_add) from [<c0348b84>] (of_device_add+0x38/0x40)
    [    0.242746]  r10:00000000 r9:00000000 r8:c05eb884 r7:ee0dee10 r6:00000000 r5:eefd8648
    [    0.242768]  r4:ee0dee00
    [    0.242788] [<c0348b4c>] (of_device_add) from [<c03493e0>] (of_platform_device_create_pdata+0x88/0xc8)
    [    0.242807] [<c0349358>] (of_platform_device_create_pdata) from [<c034952c>] (of_platform_bus_create+0xf0/0x194)
    [    0.242815]  r7:00000001 r6:c05e79d4 r5:eefd8648 r4:00000000
    [    0.242842] [<c034943c>] (of_platform_bus_create) from [<c034970c>] (of_platform_populate+0x64/0xc0)
    [    0.242849]  r10:00000000 r9:00000001 r8:00000000 r7:c05e79d4 r6:c05eb884 r5:eefd7534
    [    0.242870]  r4:eefd8648
    [    0.242895] [<c03496a8>] (of_platform_populate) from [<c05c1e78>] (pdata_quirks_init+0x40/0x4c)
    [    0.242902]  r9:c05b25ec r8:00000072 r7:ee0cc8c0 r6:c05f73e8 r5:c05eb884 r4:c05e79ac
    [    0.242931] [<c05c1e38>] (pdata_quirks_init) from [<c05c1b7c>] (omap_generic_init+0x1c/0x24)
    [    0.242939]  r5:c05b4238 r4:c05f73e8
    [    0.242961] [<c05c1b60>] (omap_generic_init) from [<c05b4264>] (customize_machine+0x2c/0x4c)
    [    0.242977] [<c05b4238>] (customize_machine) from [<c0009784>] (do_one_initcall+0x94/0x1dc)
    [    0.242993] [<c00096f0>] (do_one_initcall) from [<c05b2db0>] (kernel_init_freeable+0x128/0x1cc)
    [    0.243000]  r10:c05e3a04 r9:c05b25ec r8:00000072 r7:c063e000 r6:c063e000 r5:00000003
    [    0.243021]  r4:c05efd18
    [    0.243039] [<c05b2c88>] (kernel_init_freeable) from [<c04573cc>] (kernel_init+0x18/0xf0)
    [    0.243047]  r10:00000000 r9:00000000 r8:00000000 r7:00000000 r6:00000000 r5:c04573b4
    [    0.243067]  r4:c063e000
    [    0.243086] [<c04573b4>] (kernel_init) from [<c000fa28>] (ret_from_fork+0x14/0x2c)
    [    0.243093]  r5:c04573b4 r4:00000000
    [    0.243128] ---[ end trace 116c968bdac91a12 ]---
    [    0.243168] omap_l3_noc 44000000.ocp: L3 application error: target 13 mod:1 (unclearable)
    [    0.250436] omap_gpio 44e07000.gpio: could not find pctldev for node /ocp/l4_wkup@44c00000/scm@210000/pinmux@800/my_gpio_2_pins_default, deferring probe
    [    0.250971] omap_gpio 48320000.gpio: could not find pctldev for node /ocp/l4_wkup@44c00000/scm@210000/pinmux@800/my_gpio_3_pins_default, deferring probe
    [    0.256450] omap-gpmc 50000000.gpmc: could not find pctldev for node /ocp/l4_wkup@44c00000/scm@210000/pinmux@800/nand_interface_pins_default, deferring probe
    [    0.260056] hw-breakpoint: found 5 (+1 reserved) breakpoint and 1 watchpoint registers.
    [    0.260076] hw-breakpoint: maximum watchpoint size is 4 bytes.
    [    0.262478] omap4_sram_init:Unable to get sram pool needed to handle errata I688
    [    0.288667] edma-dma-engine edma-dma-engine.0: TI EDMA DMA engine driver
    [    0.295645] of_get_named_gpiod_flags: can't parse 'gpio' property of node '/fixedregulator-sd[0]'
    [    0.297821] SCSI subsystem initialized
    [    0.298685] usbcore: registered new interface driver usbfs
    [    0.298835] usbcore: registered new interface driver hub
    [    0.298984] usbcore: registered new device driver usb
    [    0.299873] omap_i2c 44e0b000.i2c: could not find pctldev for node /ocp/l4_wkup@44c00000/scm@210000/pinmux@800/my_i2c_1_pins_default, deferring probe
    [    0.300183] pps_core: LinuxPPS API ver. 1 registered
    [    0.300195] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
    [    0.300289] PTP clock support registered
    [    0.303082] omap-mailbox 480c8000.mailbox: omap mailbox rev 0x400
    [    0.305165] Switched to clocksource timer1
    [    0.323802] NET: Registered protocol family 2
    [    0.325091] TCP established hash table entries: 8192 (order: 3, 32768 bytes)
    [    0.325329] TCP bind hash table entries: 8192 (order: 3, 32768 bytes)
    [    0.325457] TCP: Hash tables configured (established 8192 bind 8192)
    [    0.325612] UDP hash table entries: 512 (order: 1, 8192 bytes)
    [    0.325647] UDP-Lite hash table entries: 512 (order: 1, 8192 bytes)
    [    0.325879] NET: Registered protocol family 1
    [    0.328250] futex hash table entries: 256 (order: -1, 3072 bytes)
    [    0.330495] jffs2: version 2.2. (NAND) (SUMMARY)  © 2001-2006 Red Hat, Inc.
    [    0.332626] NET: Registered protocol family 38
    [    0.332744] bounce: pool size: 64 pages
    [    0.332767] io scheduler noop registered
    [    0.332783] io scheduler deadline registered
    [    0.332821] io scheduler cfq registered (default)
    [    0.334359] pinctrl-single 44e10800.pinmux: 199 pins at pa f9e10800 size 796
    [    0.336866] Serial: 8250/16550 driver, 4 ports, IRQ sharing enabled
    [    0.338637] omap_uart 48022000.serial: no wakeirq for uart0
    [    0.338662] of_get_named_gpiod_flags: can't parse 'rts-gpio' property of node '/ocp/serial@48022000[0]'
    [    0.338682] omap_uart 48022000.serial: No clock speed specified: using default: 48000000
    [    0.338869] 48022000.serial: ttyO0 at MMIO 0x48022000 (irq = 25, base_baud = 3000000) is a OMAP UART0
    [   16.245085] console [ttyO0] enabled
    [   16.288113] omap_uart 48024000.serial: no wakeirq for uart1
    [   16.356160] of_get_named_gpiod_flags: can't parse 'rts-gpio' property of node '/ocp/serial@48024000[0]'
    [   16.470675] omap_uart 48024000.serial: No clock speed specified: using default: 48000000
    [   16.569343] 48024000.serial: ttyO1 at MMIO 0x48024000 (irq = 26, base_baud = 3000000) is a OMAP UART1
    [   16.682218] omap_uart 481a8000.serial: no wakeirq for uart3
    [   16.750228] of_get_named_gpiod_flags: can't parse 'rts-gpio' property of node '/ocp/serial@481a8000[0]'
    [   16.864743] omap_uart 481a8000.serial: No clock speed specified: using default: 48000000
    [   16.963395] 481a8000.serial: ttyO3 at MMIO 0x481a8000 (irq = 27, base_baud = 3000000) is a OMAP UART3
    [   17.076241] omap_uart 481aa000.serial: no wakeirq for uart4
    [   17.144242] of_get_named_gpiod_flags: can't parse 'rts-gpio' property of node '/ocp/serial@481aa000[0]'
    [   17.258751] omap_uart 481aa000.serial: No clock speed specified: using default: 48000000
    [   17.357406] 481aa000.serial: ttyO4 at MMIO 0x481aa000 (irq = 28, base_baud = 3000000) is a OMAP UART4
    [   17.471049] omap_rng 48310000.rng: OMAP Random Number Generator ver. 20
    [   17.565469] brd: module loaded
    [   17.610954] loop: module loaded
    [   17.650552] mtdoops: mtd device (mtddev=name/number) must be supplied
    [   17.732777] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
    [   17.813420] ehci-omap: OMAP-EHCI Host Controller driver
    [   17.877719] usbcore: registered new interface driver cdc_acm
    [   17.946828] cdc_acm: USB Abstract Control Model driver for USB modems and ISDN adapters
    [   18.044749] usbcore: registered new interface driver cdc_wdm
    [   18.114051] usbcore: registered new interface driver usb-storage
    [   18.187710] i2c /dev entries driver
    [   18.231450] omap_wdt: OMAP Watchdog Timer Rev 0x01: initial timeout 60 sec
    [   18.316812] omap_hsmmc 48060000.mmc: GPIO lookup for consumer cd
    [   18.390370] omap_hsmmc 48060000.mmc: using device tree for GPIO lookup
    [   18.470003] of_get_named_gpiod_flags: parsed 'cd-gpios' property of node '/ocp/mmc@48060000[0]' - status (-517)
    [   18.593062] omap_hsmmc 48060000.mmc: lookup for GPIO cd failed
    [   18.664728] ledtrig-cpu: registered to indicate activity on CPUs
    [   18.738409] omap-aes 53501000.aes: OMAP AES hw accel rev: 0.1
    [   18.809699] omap-des 53701000.des: OMAP DES hw accel rev: 0.33
    [   18.882073] omap-sham 53100000.sham: hw accel on OMAP rev 0.0
    [   18.954097] Initializing XFRM netlink socket
    [   19.006574] NET: Registered protocol family 10
    [   19.061698] sit: IPv6 over IPv4 tunneling driver
    [   19.118967] NET: Registered protocol family 17
    [   19.173402] NET: Registered protocol family 15
    [   19.227537] 8021q: 802.1Q VLAN Support v1.8
    [   19.278533] Key type dns_resolver registered
    [   19.330798] omap_voltage_late_init: Voltage driver support not added
    [   19.408950] ThumbEE CPU extension supported.
    [   19.947501] gpiochip_add: registered GPIOs 0 to 31 on device: gpio
    [   20.086949] OMAP GPIO hardware version 0.1
    [   20.620954] gpiochip_add: registered GPIOs 32 to 63 on device: gpio
    [   20.761592] omap-gpmc 50000000.gpmc: GPMC revision 6.0
    [   20.824209] gpmc_mem_init: disabling cs 0 mapped at 0x0-0x1000000
    [   20.898461] gpiochip_find_base: found new base at 510
    [   20.960207] gpiochip_add: registered GPIOs 510 to 511 on device: omap-gpmc
    [   21.044911] omap2-nand 8000000.nand: GPIO lookup for consumer ready
    [   21.121430] omap2-nand 8000000.nand: using device tree for GPIO lookup
    [   21.200985] of_get_named_gpiod_flags: can't parse 'ready-gpios' property of node '/ocp/gpmc@50000000/nand@0,0[0]'
    [   21.326134] of_get_named_gpiod_flags: parsed 'ready-gpio' property of node '/ocp/gpmc@50000000/nand@0,0[0]' - status (0)
    [   21.458807] nand: device found, Manufacturer ID: 0x2c, Chip ID: 0xd3
    [   21.536210] nand: Micron MT29F8G08ADADAH4
    [   21.584995] nand: 1024 MiB, SLC, erase size: 128 KiB, page size: 2048, OOB size: 64
    [   21.678292] nand: using OMAP_ECC_BCH8_CODE_HW ECC scheme
    [   21.743000] 12 cmdlinepart partitions found on MTD device 8000000.nand
    [   21.822497] Creating 12 MTD partitions on "8000000.nand":
    [   21.888230] 0x000000000000-0x000000020000 : "spl0"
    [   21.947811] 0x000000020000-0x000000040000 : "spl1"
    [   22.007642] 0x000000040000-0x000000060000 : "spl2"
    [   22.067581] 0x000000060000-0x000000080000 : "spl3"
    [   22.127324] 0x000000080000-0x000000180000 : "uboot"
    [   22.188532] 0x000000180000-0x0000001c0000 : "env1"
    [   22.248337] 0x0000001c0000-0x000000200000 : "env2"
    [   22.308219] 0x000000200000-0x000004200000 : "buffer"
    [   22.393279] 0x000004200000-0x000008200000 : "root1"
    [   22.477298] 0x000008200000-0x00000c200000 : "root2"
    [   22.561195] 0x00000c200000-0x00000ca00000 : "config"
    [   22.626077] 0x00000ca00000-0x000040000000 : "user"
    [   22.995809] gpiochip_find_base: found new base at 486
    [   23.057651] gpiochip_add: registered GPIOs 486 to 509 on device: tca6424
    [   23.139415] pca953x 0-0022: interrupt support not compiled in
    [   23.209449] omap_i2c 44e0b000.i2c: bus 0 rev0.12 at 400 kHz
    [   23.277804] omap_hsmmc 48060000.mmc: GPIO lookup for consumer cd
    [   23.351040] omap_hsmmc 48060000.mmc: using device tree for GPIO lookup
    [   23.430613] of_get_named_gpiod_flags: parsed 'cd-gpios' property of node '/ocp/mmc@48060000[0]' - status (0)
    [   23.550455] omap_hsmmc 48060000.mmc: Got CD GPIO
    [   23.606656] omap_hsmmc 48060000.mmc: GPIO lookup for consumer wp
    [   23.679802] omap_hsmmc 48060000.mmc: using device tree for GPIO lookup
    [   23.759300] of_get_named_gpiod_flags: can't parse 'wp-gpios' property of node '/ocp/mmc@48060000[0]'
    [   23.870582] of_get_named_gpiod_flags: can't parse 'wp-gpio' property of node '/ocp/mmc@48060000[0]'
    [   23.980800] omap_hsmmc 48060000.mmc: using lookup tables for GPIO lookup
    [   24.062521] omap_hsmmc 48060000.mmc: lookup for GPIO wp failed
    [   24.165718] ubi0: attaching mtd8
    [   24.252313] mmc0: host does not support reading read-only switch, assuming write-enable
    [   24.395424] ubi0: scanning is finished
    [   24.445838] ubi0: attached mtd8 (name "root1", size 64 MiB)
    [   24.513848] mmc0: new high speed SDHC card at address 59b4
    [   24.581390] mmcblk0: mmc0:59b4 SD    14.7 GiB 
    [   24.635699] ubi0: PEB size: 131072 bytes (128 KiB), LEB size: 129024 bytes
    [   24.720553] ubi0: min./max. I/O unit sizes: 2048/2048, sub-page size 512
    [   24.802306] ubi0: VID header offset: 512 (aligned 512), data offset: 2048
    [   24.885046] ubi0: good PEBs: 512, bad PEBs: 0, corrupted PEBs: 0
    [   24.958243] ubi0: user volume: 1, internal volumes: 1, max. volumes count: 128
    [   25.046242] ubi0: max/mean erase counter: 19/11, WL threshold: 4096, image sequence number: 0
    [   25.150123] ubi0: available PEBs: 0, total reserved PEBs: 512, PEBs reserved for bad PEB handling: 160
    [   25.263547] ubi0: background thread "ubi_bgt0d" started, PID 630
    [   25.336717] ubi1: attaching mtd9
    [   25.461332] ubi1: scanning is finished
    [   25.511334] ubi1: attached mtd9 (name "root2", size 64 MiB)
    [   25.579360] ubi1: PEB size: 131072 bytes (128 KiB), LEB size: 129024 bytes
    [   25.663144] ubi1: min./max. I/O unit sizes: 2048/2048, sub-page size 512
    [   25.744781] ubi1: VID header offset: 512 (aligned 512), data offset: 2048
    [   25.827491] ubi1: good PEBs: 512, bad PEBs: 0, corrupted PEBs: 0
    [   25.900644] ubi1: user volume: 0, internal volumes: 1, max. volumes count: 128
    [   25.988633] ubi1: max/mean erase counter: 1/1, WL threshold: 4096, image sequence number: 164190550
    [   26.098963] ubi1: available PEBs: 348, total reserved PEBs: 164, PEBs reserved for bad PEB handling: 160
    [   26.214506] ubi1: background thread "ubi_bgt1d" started, PID 636
    [   26.287676] ubi2: attaching mtd10
    [   26.338782] ubi2: scanning is finished
    [   26.387794] ubi2 warning: print_rsvd_warning: cannot reserve enough PEBs for bad PEB handling, reserved 60, need 160
    [   26.516564] ubi2: attached mtd10 (name "config", size 8 MiB)
    [   26.585627] ubi2: PEB size: 131072 bytes (128 KiB), LEB size: 129024 bytes
    [   26.669405] ubi2: min./max. I/O unit sizes: 2048/2048, sub-page size 512
    [   26.751045] ubi2: VID header offset: 512 (aligned 512), data offset: 2048
    [   26.833753] ubi2: good PEBs: 64, bad PEBs: 0, corrupted PEBs: 0
    [   26.905848] ubi2: user volume: 0, internal volumes: 1, max. volumes count: 128
    [   26.993832] ubi2: max/mean erase counter: 1/1, WL threshold: 4096, image sequence number: 481166810
    [   27.104054] ubi2: available PEBs: 0, total reserved PEBs: 64, PEBs reserved for bad PEB handling: 60
    [   27.215342] ubi2: background thread "ubi_bgt2d" started, PID 638
    [   27.345196] davinci_mdio 4a101000.mdio: davinci mdio revision 1.6
    [   27.419434] davinci_mdio 4a101000.mdio: detected phy mask fffffffe
    [   27.495395] libphy: 4a101000.mdio: probed
    [   27.544360] davinci_mdio 4a101000.mdio: phy[0]: device 4a101000.mdio:00, driver unknown
    [   27.642642] cpsw 4a100000.ethernet: Random MACID = 7e:ca:f8:e6:26:1a
    [   27.721694] hctosys: unable to open rtc device (rtc0)
    [   27.814132] UBIFS (ubi0:0): UBIFS: mounted UBI device 0, volume 0, name "rootfs", R/O mode
    [   27.914926] UBIFS (ubi0:0): LEB size: 129024 bytes (126 KiB), min./max. I/O unit sizes: 2048 bytes/2048 bytes
    [   28.035807] UBIFS (ubi0:0): FS size: 43481088 bytes (41 MiB, 337 LEBs), journal size 8773632 bytes (8 MiB, 68 LEBs)
    [   28.163110] UBIFS (ubi0:0): reserved for root: 0 bytes (0 KiB)
    [   28.234170] UBIFS (ubi0:0): media format: w4/r0 (latest is w4/r0), UUID BDEAA5BF-AB17-40A9-829B-8A33C45625FF, small LPT model
    [   28.372848] VFS: Mounted root (ubifs filesystem) readonly on device 0:13.
    [   28.456011] Freeing unused kernel memory: 256K (c05b2000 - c05f2000)
    [   28.539298] Unhandled fault: imprecise external abort (0x1406) at 0xb6fc3880
    [   28.625143] pgd = ee448000
    [   28.657998] [b6fc3880] *pgd=ae44c831, *pte=805ef34f, *ppte=805ef83f
    [   28.734638] Kernel panic - not syncing: Attempted to kill init! exitcode=0x00000007
    [   28.734638] 
    [   28.845914] Rebooting in 5 seconds..
    

  • Hi,

    Sorry for the delayed response.

    Can you share is this error persistent (does it happens every time you boot your system)?

    Regarding some debug information about it:
    [ 0.241680] omap_l3_noc 44000000.ocp: L3 debug error: target 13 mod:1 (unclearable)
    [ 0.241780] ------------[ cut here ]------------
    [ 0.241810] WARNING: CPU: 0 PID: 1 at drivers/bus/omap_l3_noc.c:149 l3_interrupt_handler+0x344/0x38c()
    [ 0.241824] 44000000.ocp:L3 Custom Error: MASTER M2 (64-bit) TARGET L4_WKUP (Read): Data Access in User mode during Functional access

    By default, all slaves (on the NOC) are configured with standard and custom error levels set to FAULT. The errors are reported on the two flag muxes depending on the access type, application or debug. From the log, you can see that you are getting a debug error reported.
    You can see how L3 NOC errors are logged in Section 13.2.3.8.2 Slave NIU Error Logging in this TRM: www.ti.com/.../swpu231ap.pdf

    The source, which prints the above error is: drivers/bus/omap_l3_noc.c.

    Check the IRQ mapping for L3 noc in kernel 3.12 & 4.1 (compare the two dts nodes for ocp { in am4372.dtsi).

    Best Regards,
    Yordan

  • Hi Yordan,

    Yes, this error is persistent. It happens every time I boot the system, whether cold or warm boot.

    Unfortunately, the rest of your advice is not really helpful. Perhaps I am misunderstanding or missing something. From my perspective:

    1. The TRM section you cite is interesting from an academic sense, but not really from a practical one. This error logging is working, hence why I get the error. It doesn't really help me narrow down the error source any more that I can tell.
    2. Thank you for the source code reference, but I had found it already. The issue I'm having is that an ISR can tell me the information about the error, but I'm at a loss to translate that to "this is the offending module which is triggering it".
    3. I've already spent several days comparing the am4372.dtsi "before" and "after" versions, and have:
      1. Examined every module contained within that section to see what the am437x-gp-evm.dts does with them and makes sure that my dts takes similar (or appropriate) action with them as well - setting status="disabled" for things which we do not use and are already enabled, etc.
      2. Have attempted to comment out various subnodes in order to eliminate them from being the source of the error.
      3. Have instrumented l3_interrupt_handler in omap_l3_not.c to print the irq number it is handling. Right before the big error, it received interrupt 19, which if the TRM is to be believed (Table 8-2, Timer and eCAP event Capture), comes from GPIO1. However, GPIO1 is not used in my design and is left in the default "disabled" state. I've tried to enable it, just for a lark, and there was no change.

    None of these approaches have caused any change in the behavior of the system, excepting when I disabled something that seemed absolutely necessary (timer2, for example) for the system to function.

    At this point, what I'm trying to do is narrow it down to a smaller scope than "one of the child nodes of ocp".

     

    Thanks in advance.

  • Hi,

    Matthew Caron said:
    I've already spent several days comparing the am4372.dtsi "before" and "after" versions, and have:
    1. Examined every module contained within that section to see what the am437x-gp-evm.dts does with them and makes sure that my dts takes similar (or appropriate) action with them as well - setting status="disabled" for things which we do not use and are already enabled, etc.
    2. Have attempted to comment out various subnodes in order to eliminate them from being the source of the error.

     

    I'd recommend removing the fragments from the dts & dtsi files (or commenting), in my experience, just changing the status to disabled is not enough. 

    Another suggestion, can you try to dump the values logged in the following memory addresses (from within omap_l3_noc.c):

     0x44000048

     0x4400004C

     0x44000050

     0x44000054

     0x44000058

     0x44000064

     0x44000068

     0x4400006C

    And share the result, to see if we can get some more information out of the l3 noc?

    Best Regards,

    Yordan

  • Hi Yordan,

    I've tried commenting out most of them as well, no luck.

    Regarding dumping out those registers, I'm working on it, but trying to do so crashes the kernel even worse:

    I'm using this code:

            pr_info("======= begin TI requested register dump ======\n");
            for (reg = (int *)0x44000048; reg <= (int *)0x4400006C; ++reg) {
                pr_info("%p, 0x%X\n", reg, *reg);
            }
            pr_info("======= end TI requested register dump ======\n");

    Which should work (if anyone sees an issue there, please do tell me I messed something up), but it crashes when it dereferences the pointer. If I remove the second variable and the *reg, it prints out all the memory locations addresses, so the loop and pointer increment work. However, if I run it as listed above, I get no console output and the machine then reboots. So, it crashes before it even brings up the console. If I do an earlyprintk, it hangs just before it gets to that spot, which is not unusual - earlyprintk is known to cause booting errors even on reference hardware (see  where I describe the problem).

    I've tried it both in the ISR and the module setup code, but the same result happens both places. Since I have no console output, I can't see any errors, but I'm speculating that it may have something to do with protecting that region of memory - though I don't see how that would be the case because I'm in the driver that needs to set up and talk to those registers.

    But, I'm not ignoring your help, I'm just trying to get you what you've asked for.

  • So, trying a bunch of things, and  even changing the above to more closely resemble the read and write operations in that file:

           pr_info("======= begin TI requested register dump ======\n");
            for (reg = (void *)0x44000048; reg <= (void *)0x4400006C; 
                 reg += sizeof(u32)) {
                if (reg != 0x4400005C && reg != 0x44000060) {
                    tmp = readl_relaxed(reg);
                    pr_info("%p = 0x%X\n", reg, tmp);
                }
            }
            pr_info("======= end TI requested register dump ======\n");

    (reg is now void __iomem *reg; and tmp is u32)

    shows no change in behavior.

    Attempting to catch the failure and dump the registers over JTAG (via OpenOCD) doesn't work either:

    > halt                   
    DSCR_DTR_RX_FULL, dscr 0x4b0f6003
    am437x.mpuss: target state: halted
    target halted in ARM state due to debug-request, current mode: Supervisor
    cpsr: 0x20000193 pc: 0xc01d3b30
    MMU: enabled, D-Cache: enabled, I-Cache: enabled
    > mdw 0x44000048
    data abort at 0x44000048, dfsr = 0x00000005


    Are those registers protected in some fashion? Is this perhaps part of the problem?

  • Hi Mathew,

    Use the following code:
    void *reg;
    u32 tmp;
    static void __iomem *reg_addr;
    pr_info("======= begin TI requested register dump ======\n");
    for (reg = (void *)0x44000048; reg <= (void *)0x4400006C;
          reg += sizeof(u32)) {
              if (reg != 0x4400005C && reg != 0x44000060) {
                   reg_addr = ioremap(reg, 32);
                   tmp = __raw_readl(reg_addr);
                   pr_info("%p = 0x%X\n", reg, tmp);
              }
    }
    pr_info("======= end TI requested register dump ======\n");

    I placed it in the probe function, but it should work in the IRQ handler as well. Place it right before the error logging in the handler.

    It worked on my AM57xx EVM, running kernel 4.1.13 (in my case it dumps all zeros, because I don't have l3 error generated). This setup is the closest I have to your am437x device (l3_noc IPs are very similar in both SoCs).

    Best Regards,
    Yordan

  • Results:

    1. It does not work in the ISR (l3_handle_target). Machine just reboots with nothing coming out the console.
    2. I added dumps to omap_l3_probe both before and after the loop where it registers the ISRs (comment is "setup interrupt handlers"). Both report the following:
    [ 0.243301] ======= begin TI requested register dump ======
    [    0.243317] 44000048 = 0x0
    [    0.243327] 4400004c = 0x0
    [    0.243336] 44000050 = 0x0
    [    0.243345] 44000054 = 0x0
    [    0.243354] 44000058 = 0x0
    [    0.243362] 44000064 = 0x0
    [    0.243371] 44000068 = 0x0
    [    0.243380] 4400006c = 0x0
    [    0.243386] ======= end TI requested register dump ======


    Does that help?

    Also, I can go to 4.1.13. Basically, here's the story. The initial BSP I used was released with 3.12.10, and found that Linux repo on your git server and used that to get my board brought up. Then there was a later revision to that repo which moved it to 4.1.6, which had this crashing problem. I was having issues fixing it, so I actually did grab the latest BSP which uses 4.1.13, pulled from a different repository, and I've merged that in as well - and it's even worse. With that one, I get no console output unless I enable earlyprintk, which means it emits some stuff then locks up as I described above. I backed off to 4.1.6, figuring that the same issue is manifesting in both, and at least with 4.1.6, I get *some* output that I can debug, rather than nothing.

    So, if it would be easier for you if I was on 4.1.13, I can move to that and we can continue this testing there, but be advised that I may not get any console output at all, because whatever causes the crash on 4.1.13 causes the board to reboot with no console output at all. But, 4.1.13 is my end goal, this is just a stepping stone to there.

  • Hi,

    Sorry for the delayed response.

    Unfortunately, the register dump is not of any use.

    Here is what comes to mind for debugging :
    1. Cut down suspected modules from both dts & defconfig file one by one. I suggest to start with RTC, then the runtime PM & usb (I've seen these cause some problems with custom kernels & boards).
    2. Try to use another log level.

    Also I've seen that such panics come from rtc node for some reason. I see you don't use it in the dts, you've attached, but can you confirm that you don't enable it somewhere else?

    Best Regards,
    Yordan
  • Hi, Yordan

    I am having the same problem.

    I removed RTC, USB from my DTS file,
    The problem remains.

    Best Regards,
    John Kim