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.

Linux/AM4376: Kernel errors

Part Number: AM4376
Other Parts Discussed in Thread: AM4372,

Tool/software: Linux

Hi

I encounter some errors in the kernel boot log that do not cause panic or anything but it's annoying and I don't know the meaning or the cause of this problem.

I also have deleted rtc form am4372.dtsi as others suggested in this forum.

omap_l3_noc 44000000.ocp: L3 debug error: target 8 mod:0 (unclearable)
omap_l3_noc 44000000.ocp: L3 application error: target 8 mod:0 (unclearable)

What is target 8 (there isn't any mention of this in the TRM Interconnects), and what could cause this error?

Regards,

Robert

  • The software team have been notified. They will respond here.
  • Hi Robert,

    Do you use AM4376 TI board or custom board? Do you use the latest version of the AM4376 TI PSDK (v4.01)?

    Please share the full boot log.

    See the below pointers, they discuss this kind of errors:

    training.ti.com/.../Kernel-Debug-Series-Part6-understand-kernel-oops.pdf - page 20

    e2e.ti.com/.../437761
    e2e.ti.com/.../475372

    Regards,
    Pavel
  • Hi Pavel

    It's a custom board with "Simplified Power Sequencing With RTC Feature Disabled".

    I read those articles you mentioned.

    Here is the full log: 

    4786.Boot Log.txt
    Starting kernel ...
    
    [    0.000000] Booting Linux on physical CPU 0x0
    [    0.000000] Linux version 4.9.41 (****@****) (gcc version 6.3.1 20170404 (Linaro GCC 6.3-2017.05) ) #1 PREEMPT RT ************
    [    0.000000] CPU: ARMv7 Processor [412fc09a] revision 10 (ARMv7), cr=10c5387d
    [    0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
    [    0.000000] OF: fdt:Machine model: ****
    [    0.000000] cma: Reserved 64 MiB at 0x9c000000
    [    0.000000] Memory policy: Data cache writeback
    [    0.000000] CPU: All CPU(s) started in SVC mode.
    [    0.000000] AM437x ES1.2 (neon)
    [    0.000000] Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 129920
    [    0.000000] Kernel command line: console=ttyS0,115200n8
    [    0.000000] PID hash table entries: 2048 (order: 1, 8192 bytes)
    [    0.000000] Dentry cache hash table entries: 65536 (order: 6, 262144 bytes)
    [    0.000000] Inode-cache hash table entries: 32768 (order: 5, 131072 bytes)
    [    0.000000] Memory: 442584K/524288K available (5120K kernel code, 231K rwdata, 1064K rodata, 3072K init, 284K bss, 16168K reserved, 65536K cma-reserved, 0K highmem)
    [    0.000000] Virtual kernel memory layout:
    [    0.000000]     vector  : 0xffff0000 - 0xffff1000   (   4 kB)
    [    0.000000]     fixmap  : 0xffc00000 - 0xfff00000   (3072 kB)
    [    0.000000]     vmalloc : 0xe0800000 - 0xff800000   ( 496 MB)
    [    0.000000]     lowmem  : 0xc0000000 - 0xe0000000   ( 512 MB)
    [    0.000000]     pkmap   : 0xbfe00000 - 0xc0000000   (   2 MB)
    [    0.000000]       .text : 0xc0008000 - 0xc0600000   (6112 kB)
    [    0.000000]       .init : 0xc0800000 - 0xc0b00000   (3072 kB)
    [    0.000000]       .data : 0xc0b00000 - 0xc0b39e60   ( 232 kB)
    [    0.000000]        .bss : 0xc0b3b000 - 0xc0b82160   ( 285 kB)
    [    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
    [    0.000000] Preemptible hierarchical RCU implementation.
    [    0.000000]  Build-time adjustment of leaf fanout to 32.
    [    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 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 0x4e430000
    [    0.000000] OMAP clockevent source: timer2 at 24000000 Hz
    [    0.000010] sched_clock: 32 bits at 24MHz, resolution 41ns, wraps every 89478484971ns
    [    0.000020] clocksource: timer1: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 79635851949 ns
    [    0.000025] OMAP clocksource: timer1 at 24000000 Hz
    [    0.000151] sched_clock: 64 bits at 500MHz, resolution 2ns, wraps every 4398046511103ns
    [    0.000160] clocksource: arm_global_timer: mask: 0xffffffffffffffff max_cycles: 0xe6a171a037, max_idle_ns: 881590485102 ns
    [    0.000175] Switching to timer-based delay loop, resolution 2ns
    [    0.000610] clocksource: 32k_counter: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 58327039986419 ns
    [    0.000614] OMAP clocksource: 32k_counter at 32768 Hz
    [    0.001002] Console: colour dummy device 80x30
    [    0.001134] Calibrating delay loop (skipped), value calculated using timer frequency.. 1000.00 BogoMIPS (lpj=5000000)
    [    0.001138] pid_max: default: 32768 minimum: 301
    [    0.001252] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes)
    [    0.001258] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes)
    [    0.001978] CPU: Testing write buffer coherency: ok
    [    0.002248] Setting up static identity map for 0x80100000 - 0x80100060
    [    0.003596] devtmpfs: initialized
    [    0.014222] VFP support v0.3: implementor 41 architecture 3 part 30 variant 9 rev 4
    [    0.014508] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
    [    0.014535] futex hash table entries: 256 (order: 1, 8192 bytes)
    [    0.022498] pinctrl core: initialized pinctrl subsystem
    [    0.023499] NET: Registered protocol family 16
    [    0.039158] DMA: preallocated 256 KiB pool for atomic coherent allocations
    [    0.126407] omap_l3_noc 44000000.ocp: L3 debug error: target 8 mod:0 (unclearable)
    [    0.126573] omap_l3_noc 44000000.ocp: L3 application error: target 8 mod:0 (unclearable)
    [    0.130702] omap_gpio 44e07000.gpio: could not find pctldev for node /ocp@44000000/l4_wkup@44c00000/scm@210000/pinmux@800/gpio0_pins_default, deferring probe
    [    0.131003] omap_gpio 4804c000.gpio: could not find pctldev for node /ocp@44000000/l4_wkup@44c00000/scm@210000/pinmux@800/gpio1_pins_default, deferring probe
    [    0.132838] OMAP GPIO hardware version 0.1
    [    0.133347] omap_gpio 481ae000.gpio: could not find pctldev for node /ocp@44000000/l4_wkup@44c00000/scm@210000/pinmux@800/gpio3_pins_default, deferring probe
    [    0.133656] omap_gpio 48320000.gpio: could not find pctldev for node /ocp@44000000/l4_wkup@44c00000/scm@210000/pinmux@800/gpio4_pins_default, deferring probe
    [    0.133936] omap_gpio 48322000.gpio: could not find pctldev for node /ocp@44000000/l4_wkup@44c00000/scm@210000/pinmux@800/gpio5_pins_default, deferring probe
    [    0.136769] omap-gpmc 50000000.gpmc: could not find pctldev for node /ocp@44000000/l4_wkup@44c00000/scm@210000/pinmux@800/gpmc_pins_default, deferring probe
    [    0.138790] hw-breakpoint: found 5 (+1 reserved) breakpoint and 1 watchpoint registers.
    [    0.138804] hw-breakpoint: maximum watchpoint size is 4 bytes.
    [    0.149079] edma 49000000.edma: TI EDMA DMA engine driver
    [    0.150810] pps_core: LinuxPPS API ver. 1 registered
    [    0.150823] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
    [    0.150843] PTP clock support registered
    [    0.150849] EDAC MC: Ver: 3.0.0
    [    0.151658] omap-mailbox 480c8000.mailbox: omap mailbox rev 0x400
    [    0.152387] clocksource: Switched to clocksource arm_global_timer
    [    0.159824] NET: Registered protocol family 2
    [    0.160553] TCP established hash table entries: 4096 (order: 2, 16384 bytes)
    [    0.160606] TCP bind hash table entries: 4096 (order: 4, 98304 bytes)
    [    0.160846] TCP: Hash tables configured (established 4096 bind 4096)
    [    0.160933] UDP hash table entries: 256 (order: 2, 16384 bytes)
    [    0.160983] UDP-Lite hash table entries: 256 (order: 2, 16384 bytes)
    [    0.161260] NET: Registered protocol family 1
    [    0.342145] workingset: timestamp_bits=14 max_order=17 bucket_order=3
    [    0.351691] NET: Registered protocol family 38
    [    0.351916] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 251)
    [    0.351930] io scheduler noop registered
    [    0.351936] io scheduler deadline registered
    [    0.352052] io scheduler cfq registered (default)
    [    0.353394] pinctrl-single 44e10800.pinmux: 199 pins at pa f9e10800 size 796
    [    0.400126] Serial: 8250/16550 driver, 10 ports, IRQ sharing disabled
    [    0.402125] omap8250 44e09000.serial: No clock speed specified: using default: 48000000
    [    0.403019] console [ttyS0] disabled
    [    0.403116] 44e09000.serial: ttyS0 at MMIO 0x44e09000 (irq = 30, base_baud = 3000000) is a 8250
    [    1.050740] console [ttyS0] enabled
    [    1.054663] omap8250 48022000.serial: No clock speed specified: using default: 48000000
    [    1.063456] 48022000.serial: ttyS1 at MMIO 0x48022000 (irq = 31, base_baud = 3000000) is a 8250
    [    1.072680] omap8250 48024000.serial: No clock speed specified: using default: 48000000
    [    1.081419] 48024000.serial: ttyS2 at MMIO 0x48024000 (irq = 32, base_baud = 3000000) is a 8250
    [    1.090520] omap8250 481a6000.serial: No clock speed specified: using default: 48000000
    [    1.099257] 481a6000.serial: ttyS3 at MMIO 0x481a6000 (irq = 33, base_baud = 3000000) is a 8250
    [    1.108337] omap8250 481a8000.serial: No clock speed specified: using default: 48000000
    [    1.117060] 481a8000.serial: ttyS4 at MMIO 0x481a8000 (irq = 34, base_baud = 3000000) is a 8250
    [    1.127256] omap_rng 48310000.rng: OMAP Random Number Generator ver. 20
    [    1.135540] m25p80 spi1.0: mr25h40-nonjedec (512 Kbytes)
    [    1.140898] 1 ofpart partitions found on MTD device spi1.0
    [    1.146418] Creating 1 MTD partitions on "spi1.0":
    [    1.151236] 0x000000000000-0x000000080000 : "bootloader"
    [    1.159038] libphy: Fixed MDIO Bus: probed
    [    1.163479] CAN device driver interface
    [    1.168678] c_can_platform 481cc000.can: c_can_platform device registered (regs=fa1cc000, irq=91)
    [    1.178472] c_can_platform 481d0000.can: c_can_platform device registered (regs=fa1d0000, irq=92)
    [    1.252451] davinci_mdio 4a101000.mdio: davinci mdio revision 1.6
    [    1.258584] davinci_mdio 4a101000.mdio: detected phy mask fffffffe
    [    1.265163] libphy: 4a101000.mdio: probed
    [    1.269195] davinci_mdio 4a101000.mdio: phy[0]: device 4a101000.mdio:00, driver Micrel KSZ9031 Gigabit PHY
    [    1.279410] cpsw 4a100000.ethernet: Detected MACID = 60:64:05:64:8e:be
    [    1.286083] cpsw 4a100000.ethernet: cpts: overflow check period 500 (jiffies)
    [    1.294412] i2c /dev entries driver
    [    1.356719] omap-aes 53501000.aes: OMAP AES hw accel rev: 0.1
    [    1.362675] omap-aes 53501000.aes: will run requests pump with realtime priority
    [    1.373899] omap-des 53701000.des: OMAP DES hw accel rev: 0.33
    [    1.379997] omap-des 53701000.des: will run requests pump with realtime priority
    [    1.388489] omap-sham 53100000.sham: hw accel on OMAP rev 0.0
    [    1.395824] GACT probability on
    [    1.399002] Mirror/redirect action on
    [    1.402753] Simple TC action Loaded
    [    1.406947] netem: version 1.3
    [    1.410036] u32 classifier
    [    1.410198] mmc0: new high speed MMC card at address 0001
    [    1.418537]     input device check on
    [    1.422212]     Actions configured
    [    1.422639] mmcblk0: mmc0:0001 MMC04G 3.60 GiB
    [    1.422850] mmcblk0boot0: mmc0:0001 MMC04G partition 1 16.0 MiB
    [    1.423037] mmcblk0boot1: mmc0:0001 MMC04G partition 2 16.0 MiB
    [    1.444748] nf_conntrack version 0.5.0 (8192 buckets, 32768 max)
    [    1.451408] ip_tables: (C) 2000-2006 Netfilter Core Team
    [    1.456838] arp_tables: arp_tables: (C) 2002 David S. Miller
    [    1.462560] Initializing XFRM netlink socket
    [    1.466905] NET: Registered protocol family 17
    [    1.471390] NET: Registered protocol family 15
    [    1.475913] Bridge firewalling registered
    [    1.479943] Ebtables v2.0 registered
    [    1.483586] can: controller area network core (rev 20120528 abi 9)
    [    1.489851] NET: Registered protocol family 29
    [    1.494341] can: raw protocol (rev 20120528)
    [    1.498628] can: broadcast manager protocol (rev 20161123 t)
    [    1.504324] can: netlink gateway (rev 20130117) max_hops=1
    [    1.509978] 8021q: 802.1Q VLAN Support v1.8
    [    1.514257] sctp: Hash tables configured (bind 128/170)
    [    1.519745] Key type dns_resolver registered
    [    1.524409] ThumbEE CPU extension supported.
    [    1.528713] Registering SWP/SWPB emulation handler
    [    1.548370] omap-gpmc 50000000.gpmc: GPMC revision 6.0
    [    1.553561] gpmc_mem_init: disabling cs 0 mapped at 0x0-0x1000000
    [    1.561348] nand: device found, Manufacturer ID: 0x01, Chip ID: 0xda
    [    1.567741] nand: AMD/Spansion S34ML02G1
    [    1.571683] nand: 256 MiB, SLC, erase size: 128 KiB, page size: 2048, OOB size: 64
    [    1.579320] nand: using OMAP_ECC_BCH8_CODE_HW ECC scheme
    [    1.584716] 8 ofpart partitions found on MTD device omap2-nand.0
    [    1.590746] Creating 8 MTD partitions on "omap2-nand.0":
    [    1.596086] 0x000000000000-0x000000800000 : "nand1.os1"
    [    1.608257] 0x000000800000-0x000001000000 : "nand1.os2"
    [    1.620328] 0x000001000000-0x000001800000 : "nand1.os3"
    [    1.632410] 0x000001800000-0x000002000000 : "nand1.os4"
    [    1.644462] 0x000002000000-0x000005800000 : "nand1.fs1"
    [    1.695746] 0x000005800000-0x000009000000 : "nand1.fs2"
    [    1.747008] 0x000009000000-0x00000c800000 : "nand1.fs3"
    [    1.798273] 0x00000c800000-0x000010000000 : "nand1.fs4"
    [    1.850596] nand: device found, Manufacturer ID: 0x01, Chip ID: 0xda
    [    1.856987] nand: AMD/Spansion S34ML02G1
    [    1.860929] nand: 256 MiB, SLC, erase size: 128 KiB, page size: 2048, OOB size: 64
    [    1.868562] nand: using OMAP_ECC_BCH8_CODE_HW ECC scheme
    [    1.873957] 8 ofpart partitions found on MTD device omap2-nand.1
    [    1.879987] Creating 8 MTD partitions on "omap2-nand.1":
    [    1.885325] 0x000000000000-0x000000800000 : "nand2.os1"
    [    1.897460] 0x000000800000-0x000001000000 : "nand2.os2"
    [    1.909548] 0x000001000000-0x000001800000 : "nand2.os3"
    [    1.921581] 0x000001800000-0x000002000000 : "nand2.os4"
    [    1.933606] 0x000002000000-0x000005800000 : "nand2.fs1"
    [    1.984862] 0x000005800000-0x000009000000 : "nand2.fs2"
    [    2.036129] 0x000009000000-0x00000c800000 : "nand2.fs3"
    [    2.087400] 0x00000c800000-0x000010000000 : "nand2.fs4"
    [    2.151001] mcp251x spi2.0 can2: MCP2515 successfully initialized.
    [    2.161202] Freeing unused kernel memory: 3072K (c0800000 - c0b00000)
    

  • Robert Noe said:
    It's a custom board with "Simplified Power Sequencing With RTC Feature Disabled".

    I would suggest you to run the prebuilt kernel of the PSDK 4.01 on AM437x TI EVM and check if there will be the same warning or not.

    Regards,
    Pavel

  • Hi

    I can't run the prebuilt image because the board does not have I2C EEPROM and PMIC and other things that is different from EVM (as you can see form the log). So it simply won't work.
    I just want to know what is causing the error.

  • Robert Noe said:
    I can't run the prebuilt image because the board does not have I2C EEPROM and PMIC and other things that is different from EVM (as you can see form the log). So it simply won't work.

    Check again my previous post. My suggestion is to run the prebuilt image on the TI EVM, not on your custom board. If the same warning occur there also, then this warning is not specific for your custom board.

    Regards,
    Pavel

  • Robert,

    I tested the latest AM437x PSDK v4.01 (kernel 4.9.41) prebuilt image on AM437x-GP rev1.1 EVM. I can not see this issue there. Please find attach the full boot up log.

    am437x_PSDK4_1_log

    Could you please check your custom board with the latest AM437x PSDK4.01 (kernel 4.9.41) (Linaro GCC 6.2-2016.11)?

    Also I have cpuidle messages, instead of the L3 error messages you have:

    DMA: preallocated 256 KiB pool for atomic coherent allocations
    cpuidle: using governor ladder
    cpuidle: using governor menu
    omap_gpio 44e07000.gpio: could not find pctldev for node /ocp@44000000/l4_wkup@44c00000/scm@210000/pinmux@800/gpio0_pins, deferring probe

    You stated that you have different power management than AM437x TI EVM. Does your custom board support CPUIdle? You can test disabling CPUIdle from your linux kernel:

    http://processors.wiki.ti.com/index.php/Linux_Core_Power_Management_User's_Guide_(v4.4)#CPUIdle

    Regards,
    Pavel

  • Hi Pavel

    I think it's specific for my board or kernel configuration.
  • Pavel,

    I disabled the CPUIdle in the kernel.
    I'm using latest RT Kernel v04.01, Kernel 4.9.41 (it's in the log).
    I think it's maybe because of 'RTC feature disabled' in the board.

    And sorry I didn't read your previous post correctly.

    Regards,
    Robert
  • Robert Noe said:
    I disabled the CPUIdle in the kernel.

    What was the result? Can you provide your boot up log in this case (CPUIdle disabled)?

    Robert Noe said:
    I'm using latest RT Kernel v04.01, Kernel 4.9.41 (it's in the log).

    Do you use ti-processor-sdk-linux-am437x-evm-04.01.00.06-Linux/board-support/linux-4.9.41 ?

    Or ti-processor-sdk-linux-rt-am437x-evm-04.01.00.06-Linux/board-support/linux-rt-4.9.41?

    In both cases Linaro GCC 6.2.1 2016.11 hard-float toolchain should be used, while in your boot log I see Linaro GCC 6.3-2017.05.

    Robert Noe said:
    I think it's maybe because of 'RTC feature disabled' in the board.

    Could you please share the exact steps you are doing when disable RTC?

  • Hi

    I checked the CPUIdle was disabled in the log that I uploaded before.

    I'm using Linux-RT version. Is GCC version, a minor version, that important?

    As for RTC, The internal LDO is disabled by connecting RTC_KALDO_ENn to VDDS_RTC (a 1.8V Supply). CAP_VDD_RTC is connected to VDD_CORE (1.1V). RTC_PWRONRSTn and RTC_WAKEUP are grounded.

    In software I removed rtc from AM4372.dtsi.

    I checked with datasheet and AM437x Schematic Checklist

  • Robert,

    Robert Noe said:
    I checked the CPUIdle was disabled in the log that I uploaded before.

    Yes, I confirm CPUIdle is disabled by default for Linux-RT version.

    Robert Noe said:
    I'm using Linux-RT version. Is GCC version, a minor version, that important?

    I have some doubts you are using the linux-rt kernel that comes with PSDK Linux-RT 4.01. From the log you shared, seems like you pull that kernel from some unknown and undefined GIT repository:

    Linux version 4.9.41 (****@****) (gcc version 6.3.1 20170404 (Linaro GCC 6.3-2017.05) ) #1 PREEMPT RT ************

    While booting linux-rt kernel that comes with PSDK Linux-RT 4.01, I have the below:

    Linux version 4.9.41-rt23-gc038d21a22 (gtbldadm@ubuntu-16) (gcc version 6.2.1 20161016 (Linaro GCC 6.2-2016.11) ) #1 PREEMPT RT

    Could you please double check that you are using the linux-rt kernel that comes with PSDK Linux-RT 4.01?

    ti-processor-sdk-linux-rt-am437x-evm-04.01.00.06/board-support/linux-rt-4.9.41+gitAUTOINC+c038d21a22-gc038d21a22

    Below I am attaching the full boot up log with linux-rt kernel:

    am437x_PSDK_4_1_RT_log

     

    Robert Noe said:
    In software I removed rtc from AM4372.dtsi.

    What about your main DTS file? How you handle RTC there?

    On AM437x GP EVM, RTC is described but disable by default in am4372.dtsi file, and enabled in am437x-gp-evm.dts file.

    Please attach your am4372.dtsi file and your main DTS file (i.e. am437x-gp-evm.dts for TI EVM), I will check how exactly you remove RTC.

    Regards,
    Pavel

  • Robert Noe said:
    I just want to know what is causing the error.

    This info is provided in the presentation I have provided in my first post. That error might be caused by:

    Due to access clock-gated module:
    –Improper dts change
    – Driver bug, mainly in runtime PM

    Or due to wrong access  address:
    – Incorrect  hardware design. For example, DDR size, RTC, etc.
    – Driver bug

    You can have a look at the sources: drivers/bus/omap_l3_noc.c. The driver has detailed comments that explain how errors in L3_noc are detected.

    RTC hardware failure might cause L3 interconnect error report, double check your HW regarding RTC.

    Regards,
    Pavel

  • - I just removed RTC from am4372.dtsi because if I didn't kernel would panic.
    - The RTC hardware design is like the datasheet and schematic checklist so it shouldn't have problem.
    - ompa_l3_noc doesn't have info about what is target 8.

    Why isn't there anything about L3 Interconnect registers in TRM? the driver works with some registers that aren't mentioned in the TRM.

    I think there are consequences with disabling the RTC that TI don't tell us.
    You should check your kernels with RTC disabled.

  • Robert Noe said:
    - I just removed RTC from am4372.dtsi because if I didn't kernel would panic.

    In one of my previous posts I already explained that removing RTC only from am4372.dtsi file is NOT enough. You should also remove the RTC node and clock from the main DTS file (i.e. am437x-gp-evm.dts).

    linux-rt-4.9.41/arch/arm/boot/dts/am4372.dtsi

    linux-rt-4.9.41/arch/arm/boot/dts/am437x-gp-evm.dts

    Make sure also RTC drivers/modules (i.e. rtc-omap.c) are removed from the .config file you are using to build your rt kernel. When you use as a base tisdk_am437x-evm-rt_defconfig, remove the RTC kernel support through menuconfig. If you use "config fragments", remove also RTC support from the ti_config_fragments/baseport.cfg file.

    Make sure also RTC L4 hwmod is NOT registered in the below files:

    linux-rt-4.9.41/arch/arm/mach-omap2/omap_hwmod_43xx_data.c

    linux-rt-4.9.41/arch/arm/mach-omap2/omap_hwmod_33xx_43xx_interconnect_data.c

    Robert Noe said:

    - ompa_l3_noc doesn't have info about what is target 8.

    Why isn't there anything about L3 Interconnect registers in TRM? the driver works with some registers that aren't mentioned in the TRM.

    L3/L4 interconnect registers and full documentation are not publicly available as these are 3rd party IP.

    Robert Noe said:
    You should check your kernels with RTC disabled.

    You mean AM437x RTC is fully disabled, correct? I will check this (RTC fully disabled on TI EVM), but first I need from you to provide me your modifications of the below files:

    - am437x-gp-evm.dts (main DTS file, where you include am4372.dtsi)

    - omap_hwmod_43xx_data.c

    Provide me also your  .config (the config file you are using to build your rt kernel) and the exact steps you are doing to build your rt kernel

    Regards,
    Pavel

  • Hi Pavel

    - the rtc driver is removed from .config file and it's not compiled.

    - the rtc is removed form these files:

    omap_hwmod_33xx_43xx_ipblock_data.c
    omap_hwmod_33xx_43xx_interconnect_data.c
    omap_hwmod_43xx_data.c

    All files you mentioned are attached in a rar file.

    Regards,
    Robert

    am4376.rar

  • Robert,

    Do you fully disable the AM437x RTC module?

    Provide me also your .config (the config file you are using to build your rt kernel) and the exact steps you are doing to build your rt kernel.

    Please provide me also the full boot up console log, after you made the last modifications. Please also put some printk() statements in the below file, thus we can trace if this error is somehow related to hwmods:

    linux-rt-4.9.41/arch/arm/mach-omap2/io.c

    void __init am43xx_init_early(void)
    {
    omap2_set_globals_tap(AM335X_CLASS, AM33XX_L4_WK_IO_ADDRESS(AM33XX_TAP_BASE));
    omap2_control_base_init();
    omap3xxx_check_revision();
    am33xx_check_features();
    omap2_prcm_base_init();
    am43xx_powerdomains_init();
    am43xx_clockdomains_init();
    printk("start of am43xx_hwmod_init\n");
    am43xx_hwmod_init();
    printk("end of of am43xx_hwmod_init\n");
    printk("start of omap_hwmod_init_postsetup\n");
    omap_hwmod_init_postsetup();
    printk("end of omap_hwmod_init_postsetup\n");
    omap_l2_cache_init();
    omap_clk_soc_init = am43xx_dt_clk_init;
    }

    Regards,
    Pavel
  • Hi Pavel

    - Yes, I fully disabled the RTC module.

    - I did what you asked. the printks are printting way before the error message.

    [ 0.000000] AM437x ES1.2 (neon)
    [ 0.000000] Start of am43xx_hwmod_init
    [ 0.000000] End of am43xx_hwmod_init
    [ 0.000000] Start of omap_hwmod_init_postsetup
    [ 0.000000] End of omap_hwmod_init_postsetup
    [ 0.000000] Built 1 zonelists in Zone order, mobility grouping on. Total pages: 129920
    [ 0.000000] Kernel command line: console=ttyS0,115200n8
    [ 0.000000] PID hash table entries: 2048 (order: 1, 8192 bytes)
    [ 0.000000] Dentry cache hash table entries: 65536 (order: 6, 262144 bytes)
    [ 0.000000] Inode-cache hash table entries: 32768 (order: 5, 131072 bytes)
    [ 0.000000] Memory: 442580K/524288K available (5120K kernel code, 231K rwdata, 1064K rodata, 3072K init, 284K bss, 16172K reserved, 65536K cma-reserved, 0K highmem)

    - I compile Kernel and create uImage with these commands:

    make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- am437x-gp-evm.dtb
    make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- zImage
    cat arch/arm/boot/dts/am437x-gp-evm.dtb >> arch/arm/boot/zImage
    mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -n Linux-4.9.41 -d arch/arm/boot/zImage arch/arm/boot/uImage

    - I also attached .config file

    Regards,
    Robert

    3782..config.zip

  • Robert Noe said:

    make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- am437x-gp-evm.dtb
    make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- zImage
    cat arch/arm/boot/dts/am437x-gp-evm.dtb >> arch/arm/boot/zImage
    mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -n Linux-4.9.41 -d arch/arm/boot/zImage arch/arm/boot/uImage

    This is not aligned with the official guidelines, available at the below wiki:

    To isolate some configuration issue, please try the below flow:

    - use Linaro GCC 6.2-2016.11

    - use linux-rt-4.9.41 from the AM437x PSDK-RT v4.01

    - use tisdk_am437x-evm-rt_defconfig, then customize the kernel configuration with menuconfig (or xconfig) to remove RTC support

    - build individual DTB file, do NOT make it embedded into the kernel image

    Please try with these steps and report back with console log of these steps and console log of the boot process.

    Regards,
    Pavel

  • - I'll try GCC 6.2-2016.11
    - As I'm told before I'm using TI SDK, Why are you saying I'm using a different version?! Maybe because I changed the extra versions.
    - I did that and I don't think it will change anything.
    - The DTB should be embedded into kernel because I want one image not a kernel and a DTB. So it's out of the question.

  • Robert,

    This is what we have so far:

    - this issue might be caused by HW malfunction of your custom board. You claim that your custom board is absolutely correct in its HW side (RTC, DDR, etc)

    - this issue might be caused by improper DTS change or driver bug - you have change your DTS file, but what about drivers? Have you made any changes in the drivers?

    Also in your .config file I see you have "CONFIG_RTC_LIB=y", please remove that also.

    Regards,
    Pavel

  • Hi
    And many thanks for your support.

    - I tested everything (DDR, NAND, eMMC, ...), I encountered no problem so far.
    - I didn't change any driver in the log that I've attached. But after that I changed CAN drivers.
    - I'll remove CONFIG_RTC_LIB.

    Regards,
    Robert
  • Robert,

    Try with CONFIG_RTC_LIB removed and report back the status. If the issue still occur, please provide the full boot up log (not just part of it), there might be some more error/warning messages that can lead as to the root cause.

    Additionally, I see you have removed from DTS also PRU and SGX. Do you remove anything else (in addition to RTC, SGX, PRU) in DTS files? Can you also test with adding back SGX and PRU in DTS files, thus we can isolate if the issue is related to RTC or not.

    Regards,
    Pavel
  • I removed that config but nothing changed.
    I provided full kernel log. U-Boot is not in there because I didn't think it was important. I boot with tftp for developing.
    I removed PRU and SGX because I thought the L3 error caused by one of them. So the error existed before removing those.

    Regards,
    Robert
  • Robert,

    To sum up, this is what we have so far:
    - you are using AM437x custom board, the only HW change compared with AM437x GP EVM is in RTC. On AM437x custom board, RTC is disabled
    - you verified that your AM437x custom board is fully functional, no HW issue, no problem in RTC, DDR3, etc
    - you are using AM437x TI PSDK RT v4.01 (toochain and kernel)
    - you only modify AM437x DTS files and kernel to remove RTC support, nothing more

    I will check this with the PSDK team, hope they will provide more some hints regarding these L3 warnings.

    Regards,
    Pavel

  • Hi Pavel

    Any news from the team?

    Regards,
    Robert
  • Robert,

    Since it has been a while, I just wanted to check to see if you are still having this issue or if you have any new information on it? Thanks.
  • Hi RonB,

    I'm still seeing the L3 error, but all peripherals and kernel modules that I'm using are working without a problem. So I decided to ignore this error for now.

    Regards,
    Robert