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.

AM62A7: Title: AM62A McSPI0 - D0 has no data, D1 works. Does pindir property actually work?

Part Number: AM62A7

I'm using AM62A7 (custom board) with McSPI0 (spi@20100000) connected to an SPI panel.

Problem: My panel's data line is wired to SPI0_D0. Logic analyzer shows CLK and CS toggling fine, but D0 stays at 0 — no data at all. When I move the same wire to SPI0_D1 instead, correct SPI data shows up immediately.

What I tried: Added ti,pindir-d0-out-d1-in; to the SPI0 node, hoping it would make D0 carry the data. After this:

  • D0 still has no data
  • D1 (which was working before) also stopped working

I removed the property and D1 went back to working.

Questions:

  1. On AM62A, is D0/D1 direction for McSPI actually fixed in hardware (D0 = input only, D1 = output only), with no way to change it from software?
  2. If yes, why did adding ti,pindir-d0-out-d1-in break D1 too, even though it's supposed to be a no-op?
  3. Is moving the wire to D1 (or doing a PCB rework) the only real fix here?

Thanks for any help.



spi@20100000 {
                        compatible = "ti,am654-mcspi\0ti,omap4-mcspi";
                        reg = <0x00 0x20100000 0x00 0x400>;
                        interrupts = <0x00 0xac 0x04>;
                        #address-cells = <0x01>;
                        #size-cells = <0x00>;
                        power-domains = <0x03 0x8d 0x01>;
                        clocks = <0x02 0x8d 0x00>;
                        status = "okay";
                        pinctrl-names = "default";
                        pinctrl-0 = <0x27 0x56>;
                        ti,pindir-d0-out-d1-in;

                        panel@0 {
                                compatible = "inanbo,t28cp45tn89-v17";
                                reg = <0x00>;
                                power-supply = <0x28>;
                                backlight = <0x29>;
                                dc-gpios = <0x23 0x06 0x00>;
                                reset-gpios = <0x23 0x07 0x01>;
                                rotation = <0x00>;
                                spi-max-frequency = <0xf4240>;
                                spi-rx-bus-width = <0x01>;

                                port {

  • Hi Sajid,
    Can you check you pinctrl settings? Are they correct?
    You may try using something along the following lines:

    pinctrl_spi0: main-spi0-default-pins {
    	pinctrl-single,pins = <
    		AM62PX_IOPAD(0x01bc, PIN_OUTPUT, 0) /* (B21) SPI0_CLK */
    		AM62PX_IOPAD(0x01b4, PIN_OUTPUT, 0) /* (D20) SPI0_CS0 */
    		AM62PX_IOPAD(0x01c0, PIN_OUTPUT, 0) /* (B20) SPI0_D0 */
    		AM62PX_IOPAD(0x01c4, PIN_INPUT, 0) /* (C21) SPI0_D1 */
    	>;
    };
    
    &main_spi0 {
    	pinctrl-names = "default";
    	pinctrl-0 = <&pinctrl_spi0>;
    	ti,pindir-d0-out-d1-in;
    	status = "okay";
    };

    The pin addresses may wrong, check with AM62A datasheet, and use AM62AX_IOPAD instead.

  • Hi,

    Thanks for the suggestion. Here's what I found after testing.

    My current pinctrl already matches what you suggested:

    main-spi0-default-pins {
            pinctrl-single,pins = <0x1b4 0x10000 0x1bc 0x54000 0x1c0 0x10000 0x1c4 0x54000>;
            phandle = <0x27>;
    };
    
    • 0x1b4 (SPI0_CS0) = 0x10000 → output, no RXACTIVE
    • 0x1bc (SPI0_CLK) = 0x54000 → RXACTIVE set
    • 0x1c0 (SPI0_D0) = 0x10000 → output, no RXACTIVE (same as PIN_OUTPUT)
    • 0x1c4 (SPI0_D1) = 0x54000 → RXACTIVE set (same as PIN_INPUT)

    So D0 is already pad-configured as output-only and D1 as input-capable, matching your snippet's intent.

    Offsets also confirmed against the AM62A datasheet pad config table:

    Pad   Ball   Signal     PADCONFIG reg          Offset
    B15   B15    SPI0_D0    PADCONFIG112  0x000F41C0   -> 0x1c0
    E15   E15    SPI0_D1    PADCONFIG113  0x000F41C4   -> 0x1c4
    

    Both list mux mode 0 as SPI0_D0/SPI0_D1 respectively, matching what we're using in main-spi0-default-pins (offsets 0x1c0 and 0x1c4, mux mode 0). So the pad offsets and mux selection in our pinctrl entry are correct per the datasheet — this isn't a wrong-offset or wrong-mux-mode issue.

    My SPI0 node:

    spi@20100000 {
            compatible = "ti,am654-mcspi\0ti,omap4-mcspi";
            reg = <0x00 0x20100000 0x00 0x400>;
            interrupts = <0x00 0xac 0x04>;
            #address-cells = <0x01>;
            #size-cells = <0x00>;
            power-domains = <0x03 0x8d 0x01>;
            clocks = <0x02 0x8d 0x00>;
            status = "okay";
            pinctrl-names = "default";
            pinctrl-0 = <0x27 0x56>;
            ti,pindir-d0-out-d1-in;
            panel@0 {
                    compatible = "inanbo,t28cp45tn89-v17";
                    reg = <0x00>;
                    power-supply = <0x28>;
                    backlight = <0x29>;
                    dc-gpios = <0x23 0x06 0x00>;
                    reset-gpios = <0x23 0x07 0x01>;
                    rotation = <0x00>;
                    spi-max-frequency = <0xf4240>;
                    spi-rx-bus-width = <0x01>;
                    port {
                            endpoint {
                                    remote-endpoint = <0x2a>;
                                    phandle = <0x3e>;
                            };
                    };
            };
    };
    

    Test results with ti,pindir-d0-out-d1-in; added:

    • No data on D0
    • No data on D1 either (this line was working correctly before)

    With ti,pindir-d0-out-d1-in; removed:

    • D0: no data
    • D1: correct SPI data, matches expected command sequence from working reference board

    So adding the property doesn't move the data to D0 — it just breaks the D1 path that was previously working, without fixing D0 at all.

    This matches what was reported in this other thread, where it was found that DPE0/DPE1 has no actual effect on AM62x/AM62A hardware: e2e.ti.com/.../faq-am62x-mcspi-d0-and-d1-direction-in-spi-bootmode

    Can you confirm whether D0=MISO / D1=MOSI is simply fixed in hardware on AM62A's McSPI and not changeable from software/devicetree? If there is a way to get MOSI on D0, could you point me to the correct property or register sequence, since ti,pindir-d0-out-d1-in does not appear to do that here?

    Thanks for your help.

  • HI,
    What is the value of this register with and without the ti,pindir-d0-out-d1-in flag for you?

  • this is without ti,pindir-d0-out-d1-in;
    devmem2 0x2010012C w /dev/mem opened. Memory mapped at address 0xffffb8bf8000. Read at address 0x2010012C (0xffffb8bf812c): 0x20012444

    this is with ti,pindir-d0-out-d1-in;
    devmem2 0x2010012C w /dev/mem opened. Memory mapped at address 0xffffaa7eb000. Read at address 0x2010012C (0xffffaa7eb12c): 0x20062444

  • Hi Sajid,
    Thanks. The registers look correct, let me try replicating the issue at my end. Will respond by end of this week.

  • Hi Sajid,
    I tried the same at my end and it works atleast with the 4-wire configuration. Are you trying to use the 3-wire configuration?

    Below are the details of my experiment:

    DTSO without ti,pindir-d0-out-d1-in: (Output seen on D1) (Register value of 0x2010012C = 0x200103C8)

    // SPDX-License-Identifier: GPL-2.0
    /*
     * DT overlay for AM62A
     * Copyright (C) 2023-2025 Texas Instruments Incorporated - https://www.ti.com/
     */
    
    /dts-v1/;
    /plugin/;
    
    #include "k3-pinctrl.h"
    
    &main_pmx0 {
    	main_spi0_pins_default: main-spi0-pins-default {
    		pinctrl-single,pins = <
    				AM62AX_IOPAD(0x01bc, PIN_INPUT, 0) /* (A17) SPI0_CLK */
    				AM62AX_IOPAD(0x01c0, PIN_INPUT, 0) /* (B15) SPI0_D0 */
    				AM62AX_IOPAD(0x01c4, PIN_INPUT, 0) /* (E15) SPI0_D1 */
    				AM62AX_IOPAD(0x01b4, PIN_INPUT, 0) /* (D16) SPI0_CS0 */
    		>;
    	};
    };
    
    &main_spi0 {
           status = "okay";
           pinctrl-names = "default";
           pinctrl-0 = <&main_spi0_pins_default>;
           spidev@0 {
                   spi-max-frequency = <24000000>;
                   reg = <0>;
                   compatible = "rohm,dh2228fv";
           };
    }; 

    DTSO with ti,pindir-d0-out-d1-in:  (Output seen on D0) (Register value of 0x2010012C = 0x200603C8)

    // SPDX-License-Identifier: GPL-2.0
    /*
     * DT overlay for AM62A
     * Copyright (C) 2023-2025 Texas Instruments Incorporated - https://www.ti.com/
     */
    
    /dts-v1/;
    /plugin/;
    
    #include "k3-pinctrl.h"
    
    &main_pmx0 {
    	main_spi0_pins_default: main-spi0-pins-default {
    		pinctrl-single,pins = <
                            AM62AX_IOPAD(0x01bc, PIN_INPUT, 0) /* (A17) SPI0_CLK */
                            AM62AX_IOPAD(0x01c0, PIN_INPUT, 0) /* (B15) SPI0_D0 */
                            AM62AX_IOPAD(0x01c4, PIN_INPUT, 0) /* (E15) SPI0_D1 */
                            AM62AX_IOPAD(0x01b4, PIN_INPUT, 0) /* (D16) SPI0_CS0 */
    		>;
    	};
    };
    
    &main_spi0 {
           status = "okay";
           pinctrl-names = "default";
           pinctrl-0 = <&main_spi0_pins_default>;
           ti,pindir-d0-out-d1-in;
           spidev@0 {
                   spi-max-frequency = <24000000>;
                   reg = <0>;
                   compatible = "rohm,dh2228fv";
           };
    }; 

    Used example application compiled with gcc on target:
    ti-processor-sdk-linux-edgeai-am62a-evm-11.01.07.05/board-support/ti-linux-kernel-6.12.35+git-ti/tools/spi/spidev_test.c

    Running the example:

    root@am62axx-evm:~# ./a.out -D /dev/spidev1.0 -s 12000000 -v
    spi mode: 0x0
    bits per word: 8
    max speed: 12000000 Hz (12000 kHz)
    TX | FF FF FF FF FF FF 40 00 00 00 00 95 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF F0 0D  |......@.........................|
    RX | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  |................................|

    Register value at address 0x20100128 = 0x00000001 (Can you share this register value as well?)

  • Hi,

    Yes, I am using the 3-wire (9-bit SPI) configuration.

    My LCD is E24RG12432LWIM800-C, which uses the ST7789V controller. The Linux driver for this panel is: https://github.com/torvalds/linux/blob/master/drivers/gpu/drm/panel/panel-sitronix-st7789v.c

    value of register address 0x20100128 with or without  ti,pindir-d0-out-d1-in;
    is same.

    devmem2 0x20100128 w
    /dev/mem opened.
    Memory mapped at address 0xffffb539b000.
    Read at address 0x20100128 (0xffffb539b128): 0x00000001

  • Okay, let me check internally on 3 wire usage, but is there feasibility of using the 4-wire mode but only connecting 3 wires?

  • yes please check this . i am waiting for your response . thank you 

  • HI Sajid, 
    Trying to replicate your setup at my end. Can you confirm that the panel does not need to transmit any information back to the processor (i.e., it is a write only panel)? Trying to evaluate that bidirectional communication is not needed on the same data lines.

  • Hey,
    Is  this issue not resolved yet? I checked the driver and your dts, it seems it is not in 3 wire mode, rather in 4-wire SPI mode (since dc-gpios have been defined). Its just that you don't need to connect one SPI wire, but the mode still is 4-wire.

    I am trying to use your dts nodes, can you share the original DTS file instead of the final decompiled one to avoid the <0x23 0x06 0x00>; kind of syntax?

  • The issue is still not resolved. Yes, I am using 3-wire mode because my driver currently supports only that mode.

    I have another question regarding the UART5_RTSN pin, which is multiplexed with OSPI0_LBCLKO. Whenever I configure this pin in the Device Tree (DTS) and reboot the system, the board hangs during boot and does not boot successfully. However, if I remove this pin configuration from the DTS, the system boots normally.

    I have attached my decompiled DTS and the boot log (log.txt) for your reference. Could you please help identify what might be causing this issue?current_dts.txt

    U-Boot SPL 2025.01-00547-g3bcfad6cee95 (Jul 23 2025 - 16:49:22 +0000)
    SYSFW ABI: 4.0 (firmware rev 0x000b '11.1.5--v11.01.05 (Fancy Rat)')
    SPL initial stack usage: 13568 bytes
    Trying to boot from MMC2
    Authentication passed
    Authentication passed
    Authentication passed
    Authentication passed
    Authentication passed
    Starting ATF on ARM64 core...
    
    NOTICE:  BL31: v2.13.0(release):v2.13.0-259-ge0c4d3903b-dirty
    NOTICE:  BL31: Built : 07:01:36, Jul  1 2025
    
    U-Boot SPL 2025.01-00547-g3bcfad6cee95 (Jul 23 2025 - 16:49:22 +0000)
    SYSFW ABI: 4.0 (firmware rev 0x000b '11.1.5--v11.01.05 (Fancy Rat)')
    DM ABI: 3.0 (firmware ver 0x000b 'MSDK.11.01.00.16-dirty--v11.01.02' patch_ver: 2)
    Trying to boot from MMC2
    __omap24_i2c_xfer_msg: error waiting for ACK (status=0x116)
    omap_i2c_xfer: errored out at msg 0: -121
    pca953x gpio@22: Error reading output register
    Authentication passed
    Authentication passed
    
    
    U-Boot 2025.01-00547-g3bcfad6cee95 (Jul 23 2025 - 16:49:22 +0000)
    
    SoC:   AM62AX SR1.0 HS-FS
    Model: Texas Instruments AM62A7 SK
    DRAM:  2 GiB (total 4 GiB)
    Core:  88 devices, 30 uclasses, devicetree: separate
    MMC:   mmc@fa10000: 0, mmc@fa00000: 1
    Loading Environment from nowhere... OK
    In:    serial@2800000
    Out:   serial@2800000
    Err:   serial@2800000
    Net:   Could not get PHY for mdio@f00: addr 0
    am65_cpsw_nuss_port ethernet@8000000port@1: phy_connect() failed
    No ethernet found.
    
    Hit any key to stop autoboot:  0
    __omap24_i2c_xfer_msg: error waiting for ACK (status=0x116)
    omap_i2c_xfer: errored out at msg 0: -121
    pca953x gpio@22: Error reading output register
    switch to partitions #0, OK
    mmc1 is current device
    __omap24_i2c_xfer_msg: error waiting for ACK (status=0x116)
    omap_i2c_xfer: errored out at msg 0: -121
    pca953x gpio@22: Error reading output register
    SD/MMC found on device 1
    604 bytes read in 1 ms (589.8 KiB/s)
    Loaded env from uEnv.txt
    Importing environment from mmc1 ...
    22110720 bytes read in 910 ms (23.2 MiB/s)
    46711 bytes read in 4 ms (11.1 MiB/s)
    Working FDT set to 88000000
    896 bytes read in 2 ms (437.5 KiB/s)
    ## Flattened Device Tree blob at 88000000
       Booting using the fdt blob at 0x88000000
    Working FDT set to 88000000
       Loading Device Tree to 000000008fef1000, end 000000008fffffff ... OK
    Working FDT set to 8fef1000
    
    Starting kernel ...
    
    [    0.000000] Booting Linux on physical CPU 0x0000000000 [0x410fd034]
    [    0.000000] Linux version 6.12.35 (root@04d2158e265a) (aarch64-oe-linux-gcc (GCC) 13.4.0, GNU ld (GNU Binutils) 2.42.0.20240723) #1 SMP PREEMPT Thu Jun  4 09:22:39 UTC 2026
    [    0.000000] KASLR disabled due to lack of seed
    [    0.000000] Machine model: BWC AM62A32A Custom Board sajid
    [    0.000000] earlycon: ns16550a0 at MMIO32 0x0000000002800000 (options '')
    [    0.000000] printk: legacy bootconsole [ns16550a0] enabled
    [    0.000000] efi: UEFI not found.
    [    0.000000] Reserved memory: created CMA memory pool at 0x00000000c0000000, size 576 MiB
    [    0.000000] OF: reserved mem: initialized node linux,cma, compatible id shared-dma-pool
    [    0.000000] OF: reserved mem: 0x00000000c0000000..0x00000000e3ffffff (589824 KiB) map reusable linux,cma
    [    0.000000] OF: reserved mem: 0x000000009e800000..0x000000009fffffff (24576 KiB) nomap non-reusable optee@9e800000
    [    0.000000] OF: reserved mem: 0x0000000080000000..0x000000008007ffff (512 KiB) nomap non-reusable tfa@80000000
    [    0.000000] Reserved memory: created DMA memory pool at 0x00000000adc00000, size 292 MiB
    [    0.000000] OF: reserved mem: initialized node edgeai-core-heap-memory@adc00000, compatible id shared-dma-pool
    [    0.000000] OF: reserved mem: 0x00000000adc00000..0x00000000bfffffff (299008 KiB) nomap non-reusable edgeai-core-heap-memory@adc00000
    [    0.000000] OF: reserved mem: initialized node edgeai_shared-memories, compatible id dma-heap-carveout
    [    0.000000] OF: reserved mem: 0x00000000a3000000..0x00000000adbfffff (176128 KiB) map non-reusable edgeai_shared-memories
    [    0.000000] Reserved memory: created DMA memory pool at 0x00000000a1000000, size 32 MiB
    [    0.000000] OF: reserved mem: initialized node edgeai-dma-memory@a1000000, compatible id shared-dma-pool
    [    0.000000] OF: reserved mem: 0x00000000a1000000..0x00000000a2ffffff (32768 KiB) nomap non-reusable edgeai-dma-memory@a1000000
    [    0.000000] Reserved memory: created DMA memory pool at 0x0000000099800000, size 1 MiB
    [    0.000000] OF: reserved mem: initialized node c7x-dma-memory@99800000, compatible id shared-dma-pool
    [    0.000000] OF: reserved mem: 0x0000000099800000..0x00000000998fffff (1024 KiB) nomap non-reusable c7x-dma-memory@99800000
    [    0.000000] Reserved memory: created DMA memory pool at 0x0000000099900000, size 15 MiB
    [    0.000000] OF: reserved mem: initialized node c7x-memory@99900000, compatible id shared-dma-pool
    [    0.000000] OF: reserved mem: 0x0000000099900000..0x000000009a7fffff (15360 KiB) nomap non-reusable c7x-memory@99900000
    [    0.000000] Reserved memory: created DMA memory pool at 0x000000009b800000, size 1 MiB
    [    0.000000] OF: reserved mem: initialized node r5f-dma-memory@9b800000, compatible id shared-dma-pool
    [    0.000000] OF: reserved mem: 0x000000009b800000..0x000000009b8fffff (1024 KiB) nomap non-reusable r5f-dma-memory@9b800000
    [    0.000000] Reserved memory: created DMA memory pool at 0x000000009b900000, size 15 MiB
    [    0.000000] OF: reserved mem: initialized node r5f-dma-memory@9b900000, compatible id shared-dma-pool
    [    0.000000] OF: reserved mem: 0x000000009b900000..0x000000009c7fffff (15360 KiB) nomap non-reusable r5f-dma-memory@9b900000
    [    0.000000] Reserved memory: created DMA memory pool at 0x000000009c800000, size 1 MiB
    [    0.000000] OF: reserved mem: initialized node r5f-dma-memory@9c800000, compatible id shared-dma-pool
    [    0.000000] OF: reserved mem: 0x000000009c800000..0x000000009c8fffff (1024 KiB) nomap non-reusable r5f-dma-memory@9c800000
    [    0.000000] Reserved memory: created DMA memory pool at 0x000000009c900000, size 30 MiB
    [    0.000000] OF: reserved mem: initialized node r5f-dma-memory@9c900000, compatible id shared-dma-pool
    [    0.000000] OF: reserved mem: 0x000000009c900000..0x000000009e6fffff (30720 KiB) nomap non-reusable r5f-dma-memory@9c900000
    [    0.000000] Reserved memory: created DMA memory pool at 0x00000000a0000000, size 16 MiB
    [    0.000000] OF: reserved mem: initialized node ipc-memories@a0000000, compatible id shared-dma-pool
    [    0.000000] OF: reserved mem: 0x00000000a0000000..0x00000000a0ffffff (16384 KiB) nomap non-reusable ipc-memories@a0000000
    [    0.000000] Zone ranges:
    [    0.000000]   DMA      [mem 0x0000000080000000-0x00000000ffffffff]
    [    0.000000]   DMA32    empty
    [    0.000000]   Normal   [mem 0x0000000100000000-0x00000008ffffffff]
    [    0.000000] Movable zone start for each node
    [    0.000000] Early memory node ranges
    [    0.000000]   node   0: [mem 0x0000000080000000-0x000000008007ffff]
    [    0.000000]   node   0: [mem 0x0000000080080000-0x00000000997fffff]
    [    0.000000]   node   0: [mem 0x0000000099800000-0x000000009a7fffff]
    [    0.000000]   node   0: [mem 0x000000009a800000-0x000000009b7fffff]
    [    0.000000]   node   0: [mem 0x000000009b800000-0x000000009e6fffff]
    [    0.000000]   node   0: [mem 0x000000009e700000-0x000000009e7fffff]
    [    0.000000]   node   0: [mem 0x000000009e800000-0x00000000a2ffffff]
    [    0.000000]   node   0: [mem 0x00000000a3000000-0x00000000adbfffff]
    [    0.000000]   node   0: [mem 0x00000000adc00000-0x00000000bfffffff]
    [    0.000000]   node   0: [mem 0x00000000c0000000-0x00000000ffffffff]
    [    0.000000]   node   0: [mem 0x0000000880000000-0x00000008ffffffff]
    [    0.000000] Initmem setup node 0 [mem 0x0000000080000000-0x00000008ffffffff]
    [    0.000000] psci: probing for conduit method from DT.
    [    0.000000] psci: PSCIv1.1 detected in firmware.
    [    0.000000] psci: Using standard PSCI v0.2 function IDs
    [    0.000000] psci: Trusted OS migration not required
    [    0.000000] psci: SMC Calling Convention v1.5
    [    0.000000] percpu: Embedded 22 pages/cpu s51672 r8192 d30248 u90112
    [    0.000000] Detected VIPT I-cache on CPU0
    [    0.000000] CPU features: detected: GIC system register CPU interface
    [    0.000000] CPU features: detected: ARM erratum 845719
    [    0.000000] alternatives: applying boot alternatives
    [    0.000000] Kernel command line: console=ttyS2,115200n8 earlycon=ns16550a,mmio32,0x02800000 mtdparts=spi-nand0:512k(ospi_nand.tiboot3),2m(ospi_nand.tispl),4m(ospi_nand.u-boot),256k(ospi_nand.env),256k(ospi_nand.env.backup),98048k@32m(ospi_nand.rootfs),256k@130816k(ospi_nand.phypattern) root=PARTUUID=89c1ba77-02 rw rootfstype=ext4 rootwait
    [    0.000000] Unknown kernel command line parameters "mtdparts=spi-nand0:512k(ospi_nand.tiboot3),2m(ospi_nand.tispl),4m(ospi_nand.u-boot),256k(ospi_nand.env),256k(ospi_nand.env.backup),98048k@32m(ospi_nand.rootfs),256k@130816k(ospi_nand.phypattern)", will be passed to user space.
    [    0.000000] Dentry cache hash table entries: 524288 (order: 10, 4194304 bytes, linear)
    [    0.000000] Inode-cache hash table entries: 262144 (order: 9, 2097152 bytes, linear)
    [    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 1048576
    [    0.000000] mem auto-init: stack:all(zero), heap alloc:off, heap free:off
    [    0.000000] software IO TLB: area num 4.
    [    0.000000] software IO TLB: mapped [mem 0x00000000fbfff000-0x00000000fffff000] (64MB)
    [    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=4, Nodes=1
    [    0.000000] rcu: Preemptible hierarchical RCU implementation.
    [    0.000000] rcu:     RCU event tracing is enabled.
    [    0.000000] rcu:     RCU restricting CPUs from NR_CPUS=512 to nr_cpu_ids=4.
    [    0.000000]  Trampoline variant of Tasks RCU enabled.
    [    0.000000]  Tracing variant of Tasks RCU enabled.
    [    0.000000] rcu: RCU calculated value of scheduler-enlistment delay is 25 jiffies.
    [    0.000000] rcu: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=4
    [    0.000000] RCU Tasks: Setting shift to 2 and lim to 1 rcu_task_cb_adjust=1 rcu_task_cpu_ids=4.
    [    0.000000] RCU Tasks Trace: Setting shift to 2 and lim to 1 rcu_task_cb_adjust=1 rcu_task_cpu_ids=4.
    [    0.000000] NR_IRQS: 64, nr_irqs: 64, preallocated irqs: 0
    [    0.000000] GICv3: GIC: Using split EOI/Deactivate mode
    [    0.000000] GICv3: 256 SPIs implemented
    [    0.000000] GICv3: 0 Extended SPIs implemented
    [    0.000000] Root IRQ handler: gic_handle_irq
    [    0.000000] GICv3: GICv3 features: 16 PPIs
    [    0.000000] GICv3: GICD_CTRL.DS=0, SCR_EL3.FIQ=1
    [    0.000000] GICv3: CPU0: found redistributor 0 region 0:0x0000000001880000
    [    0.000000] ITS [mem 0x01820000-0x0182ffff]
    [    0.000000] GIC: enabling workaround for ITS: Socionext Synquacer pre-ITS
    [    0.000000] ITS@0x0000000001820000: Devices Table too large, reduce ids 20->19
    [    0.000000] ITS@0x0000000001820000: allocated 524288 Devices @880800000 (flat, esz 8, psz 64K, shr 0)
    [    0.000000] ITS: using cache flushing for cmd queue
    [    0.000000] GICv3: using LPI property table @0x0000000880050000
    [    0.000000] GIC: using cache flushing for LPI property table
    [    0.000000] GICv3: CPU0: using allocated LPI pending table @0x0000000880060000
    [    0.000000] rcu: srcu_init: Setting srcu_struct sizes based on contention.
    [    0.000000] arch_timer: cp15 timer(s) running at 200.00MHz (phys).
    [    0.000000] clocksource: arch_sys_counter: mask: 0x3ffffffffffffff max_cycles: 0x2e2049d3e8, max_idle_ns: 440795210634 ns
    [    0.000000] sched_clock: 58 bits at 200MHz, resolution 5ns, wraps every 4398046511102ns
    [    0.008630] Console: colour dummy device 80x25
    [    0.013227] Calibrating delay loop (skipped), value calculated using timer frequency.. 400.00 BogoMIPS (lpj=800000)
    [    0.023910] pid_max: default: 32768 minimum: 301
    [    0.028719] LSM: initializing lsm=capability,selinux
    [    0.033850] SELinux:  Initializing.
    [    0.037849] Mount-cache hash table entries: 8192 (order: 4, 65536 bytes, linear)
    [    0.045429] Mountpoint-cache hash table entries: 8192 (order: 4, 65536 bytes, linear)
    [    0.055607] rcu: Hierarchical SRCU implementation.
    [    0.060556] rcu:     Max phase no-delay instances is 1000.
    [    0.066088] Timer migration: 1 hierarchy levels; 8 children per group; 1 crossnode level
    [    0.074773] EFI services will not be available.
    [    0.079639] smp: Bringing up secondary CPUs ...
    ERROR:   Failed to get response (-19)
    ERROR:   Transfer send failed (-19)
    ERROR:   Request to start core failed: -19
    [    0.084863] Detected VIPT I-cache on CPU1
    [    0.084937] GICv3: CPU1: found redistributor 1 region 0:0x00000000018a0000
    [    0.084955] GICv3: CPU1: using allocated LPI pending table @0x0000000880070000
    [    0.084999] CPU1: Booted secondary processor 0x0000000001 [0x410fd034]
    [    0.096280] psci: failed to boot CPU2 (-22)
    [    0.125792] CPU2: failed to boot: -22
    ERROR:   Failed to get response (-19)
    ERROR:   Transfer send failed (-19)
    ERROR:   Request to start core failed: -19
    [    0.140700] psci: failed to boot CPU3 (-22)
    [    0.145034] CPU3: failed to boot: -22
    [    0.148827] smp: Brought up 1 node, 2 CPUs
    [    0.153035] SMP: Total of 2 processors activated.
    [    0.157852] CPU: All CPU(s) started at EL2
    [    0.162053] CPU features: detected: 32-bit EL0 Support
    [    0.167312] CPU features: detected: CRC32 instructions
    [    0.172606] alternatives: applying system-wide alternatives
    [    0.178868] Memory: 2813776K/4194304K available (12928K kernel code, 1240K rwdata, 4624K rodata, 2688K init, 642K bss, 782220K reserved, 589824K cma-reserved)
    [    0.194347] devtmpfs: initialized
    [    0.206223] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 7645041785100000 ns
    [    0.216227] futex hash table entries: 1024 (order: 4, 65536 bytes, linear)
    [    0.237196] 27184 pages in range for non-PLT usage
    [    0.237218] 518704 pages in range for PLT usage
    [    0.242396] pinctrl core: initialized pinctrl subsystem
    [    0.252943] DMI not present or invalid.
    [    0.259152] NET: Registered PF_NETLINK/PF_ROUTE protocol family
    [    0.266013] DMA: preallocated 512 KiB GFP_KERNEL pool for atomic allocations
    [    0.273362] DMA: preallocated 512 KiB GFP_KERNEL|GFP_DMA pool for atomic allocations
    [    0.281451] DMA: preallocated 512 KiB GFP_KERNEL|GFP_DMA32 pool for atomic allocations
    [    0.289609] audit: initializing netlink subsys (disabled)
    [    0.295376] audit: type=2000 audit(0.184:1): state=initialized audit_enabled=0 res=1
    [    0.295843] thermal_sys: Registered thermal governor 'step_wise'
    [    0.303318] thermal_sys: Registered thermal governor 'power_allocator'
    [    0.309510] cpuidle: using governor menu
    [    0.320379] hw-breakpoint: found 6 breakpoint and 4 watchpoint registers.
    [    0.327383] ASID allocator initialised with 65536 entries
    [    0.338459] /bus@f0000/interrupt-controller@1800000: Fixed dependency cycle(s) with /bus@f0000/interrupt-controller@1800000
    [    0.349972] /bus@f0000/i2c@20000000/usb-power-controller@3f/connector: Fixed dependency cycle(s) with /bus@f0000/dwc3-usb@f900000/usb@31000000
    [    0.363107] /bus@f0000/i2c@20020000/camera@36: Fixed dependency cycle(s) with /bus@f0000/ticsi2rx@30102000/csi-bridge@30101000
    [    0.374784] /bus@f0000/spi@20100000/panel@0: Fixed dependency cycle(s) with /bus@f0000/dss@30200000
    [    0.384094] /bus@f0000/dwc3-usb@f900000/usb@31000000: Fixed dependency cycle(s) with /bus@f0000/i2c@20000000/usb-power-controller@3f/connector
    [    0.397224] /bus@f0000/ticsi2rx@30102000/csi-bridge@30101000: Fixed dependency cycle(s) with /bus@f0000/i2c@20020000/camera@36
    [    0.408899] /bus@f0000/dss@30200000: Fixed dependency cycle(s) with /bus@f0000/spi@20100000/panel@0
    [    0.423860] /bus@f0000/i2c@20000000/usb-power-controller@3f/connector: Fixed dependency cycle(s) with /bus@f0000/dwc3-usb@f900000/usb@31000000
    [    0.437291] /bus@f0000/i2c@20020000/camera@36: Fixed dependency cycle(s) with /bus@f0000/ticsi2rx@30102000/csi-bridge@30101000
    [    0.449074] /bus@f0000/spi@20100000/panel@0: Fixed dependency cycle(s) with /bus@f0000/dss@30200000
    [    0.459386] /bus@f0000/dwc3-usb@f900000/usb@31000000: Fixed dependency cycle(s) with /bus@f0000/i2c@20000000/usb-power-controller@3f/connector
    [    0.473611] /bus@f0000/ticsi2rx@30102000/csi-bridge@30101000: Fixed dependency cycle(s) with /bus@f0000/i2c@20020000/camera@36
    [    0.485633] /bus@f0000/spi@20100000/panel@0: Fixed dependency cycle(s) with /bus@f0000/dss@30200000
    [    0.494958] /bus@f0000/dss@30200000: Fixed dependency cycle(s) with /bus@f0000/spi@20100000/panel@0
    [    0.507045] HugeTLB: registered 1.00 GiB page size, pre-allocated 0 pages
    [    0.514014] HugeTLB: 0 KiB vmemmap can be freed for a 1.00 GiB page
    [    0.520429] HugeTLB: registered 32.0 MiB page size, pre-allocated 0 pages
    [    0.527371] HugeTLB: 0 KiB vmemmap can be freed for a 32.0 MiB page
    [    0.533782] HugeTLB: registered 2.00 MiB page size, pre-allocated 0 pages
    [    0.540723] HugeTLB: 0 KiB vmemmap can be freed for a 2.00 MiB page
    [    0.547134] HugeTLB: registered 64.0 KiB page size, pre-allocated 0 pages
    [    0.554075] HugeTLB: 0 KiB vmemmap can be freed for a 64.0 KiB page
    [    0.562182] k3-chipinfo 43000014.chipid: Family:AM62AX rev:SR1.0 JTAGID[0x0bb8d02f] Detected
    [    0.571461] iommu: Default domain type: Translated
    [    0.576386] iommu: DMA domain TLB invalidation policy: strict mode
    [    0.583027] SCSI subsystem initialized
    [    0.587246] usbcore: registered new interface driver usbfs
    [    0.592904] usbcore: registered new interface driver hub
    [    0.598371] usbcore: registered new device driver usb
    [    0.604041] pps_core: LinuxPPS API ver. 1 registered
    [    0.609127] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
    [    0.618479] PTP clock support registered
    [    0.622527] EDAC MC: Ver: 3.0.0
    [    0.626057] scmi_core: SCMI protocol bus registered
    [    0.631350] FPGA manager framework
    [    0.634922] Advanced Linux Sound Architecture Driver Initialized.
    [    0.642075] vgaarb: loaded
    [    0.645200] clocksource: Switched to clocksource arch_sys_counter
    [    0.651684] VFS: Disk quotas dquot_6.6.0
    [    0.655719] VFS: Dquot-cache hash table entries: 512 (order 0, 4096 bytes)
    [    0.670109] Carveout Heap: Exported 172 MiB at 0x00000000a3000000
    [    0.676454] NET: Registered PF_INET protocol family
    [    0.681639] IP idents hash table entries: 65536 (order: 7, 524288 bytes, linear)
    [    0.692112] tcp_listen_portaddr_hash hash table entries: 2048 (order: 3, 32768 bytes, linear)
    [    0.700924] Table-perturb hash table entries: 65536 (order: 6, 262144 bytes, linear)
    [    0.708864] TCP established hash table entries: 32768 (order: 6, 262144 bytes, linear)
    [    0.717171] TCP bind hash table entries: 32768 (order: 8, 1048576 bytes, linear)
    [    0.725570] TCP: Hash tables configured (established 32768 bind 32768)
    [    0.732419] UDP hash table entries: 2048 (order: 4, 65536 bytes, linear)
    [    0.739375] UDP-Lite hash table entries: 2048 (order: 4, 65536 bytes, linear)
    [    0.746890] NET: Registered PF_UNIX/PF_LOCAL protocol family
    [    0.753177] RPC: Registered named UNIX socket transport module.
    [    0.759281] RPC: Registered udp transport module.
    [    0.764093] RPC: Registered tcp transport module.
    [    0.768904] RPC: Registered tcp-with-tls transport module.
    [    0.774515] RPC: Registered tcp NFSv4.1 backchannel transport module.
    [    0.781108] NET: Registered PF_XDP protocol family
    [    0.786026] PCI: CLS 0 bytes, default 64
    [    0.791355] Initialise system trusted keyrings
    [    0.796156] workingset: timestamp_bits=46 max_order=20 bucket_order=0
    [    0.803099] squashfs: version 4.0 (2009/01/31) Phillip Lougher
    [    0.809363] NFS: Registering the id_resolver key type
    [    0.814561] Key type id_resolver registered
    [    0.818842] Key type id_legacy registered
    [    0.822963] nfs4filelayout_init: NFSv4 File Layout Driver Registering...
    [    0.829821] nfs4flexfilelayout_init: NFSv4 Flexfile Layout Driver Registering...
    [    0.892636] Key type asymmetric registered
    [    0.896842] Asymmetric key parser 'x509' registered
    [    0.901909] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 244)
    [    0.909654] io scheduler mq-deadline registered
    [    0.914316] io scheduler kyber registered
    [    0.918449] io scheduler bfq registered
    [    0.924771] pinctrl-single 4084000.pinctrl: 34 pins, size 136
    [    0.931379] pinctrl-single f4000.pinctrl: 151 pins, size 604
    [    0.938738] ledtrig-cpu: registered to indicate activity on CPUs
    [    0.951020] Serial: 8250/16550 driver, 4 ports, IRQ sharing enabled
    [    0.965887] loop: module loaded
    [    0.970155] megasas: 07.727.03.00-rc1
    [    0.977454] tun: Universal TUN/TAP device driver, 1.6
    [    0.983469] VFIO - User Level meta-driver version: 0.3
    [    0.990081] usbcore: registered new interface driver usb-storage
    [    0.996921] i2c_dev: i2c /dev entries driver
    [    1.002927] sdhci: Secure Digital Host Controller Interface driver
    [    1.009312] sdhci: Copyright(c) Pierre Ossman
    [    1.014017] sdhci-pltfm: SDHCI platform and OF driver helper
    [    1.020525] SMCCC: SOC_ID: ARCH_SOC_ID not implemented, skipping ....
    [    1.028037] usbcore: registered new interface driver usbhid
    [    1.033766] usbhid: USB HID core driver
    [    1.038988] hw perfevents: enabled with armv8_cortex_a53 PMU driver, 7 (0,8000003f) counters available
    [    1.049250] optee: probing for conduit method.
    [    1.053844] optee: revision 4.6 (71785645fa6ce42d)
    [    1.054218] optee: dynamic shared memory is enabled
    [    1.064821] optee: initialized driver
    [    1.068573] random: crng init done
    [    1.073679] Initializing XFRM netlink socket
    [    1.078089] NET: Registered PF_PACKET protocol family
    [    1.083325] Key type dns_resolver registered
    [    1.096442] registered taskstats version 1
    [    1.100794] Loading compiled-in X.509 certificates
    [    1.117247] ti-sci 44043000.system-controller: ABI: 4.0 (firmware rev 0x000b '11.1.5--v11.01.05 (Fancy Rat)')
    [    1.170658] /bus@f0000/i2c@20000000/usb-power-controller@3f/connector: Fixed dependency cycle(s) with /bus@f0000/dwc3-usb@f900000/usb@31000000
    [    1.184024] /bus@f0000/i2c@20000000/pmic@48: Fixed dependency cycle(s) with /bus@f0000/i2c@20000000/pmic@48/regulators/buck5
    [    1.195919] omap_i2c 20000000.i2c: bus 0 rev0.12 at 400 kHz
    [    1.203552] omap_i2c 20010000.i2c: bus 1 rev0.12 at 400 kHz
    [    1.210686] /bus@f0000/ticsi2rx@30102000/csi-bridge@30101000: Fixed dependency cycle(s) with /bus@f0000/i2c@20020000/camera@36
    [    1.222503] /bus@f0000/i2c@20020000/camera@36: Fixed dependency cycle(s) with /bus@f0000/ticsi2rx@30102000/csi-bridge@30101000
    [    1.234294] omap_i2c 20020000.i2c: bus 2 rev0.12 at 400 kHz
    [    1.240272] ti-sci-intr 4210000.interrupt-controller: Interrupt Router 5 domain created
    [    1.248603] ti-sci-intr bus@f0000:interrupt-controller@a00000: Interrupt Router 3 domain created
    [    1.257829] ti-sci-inta 48000000.interrupt-controller: Interrupt Aggregator domain 28 created
    [    1.266828] ti-sci-inta 4e0a0000.interrupt-controller: Interrupt Aggregator domain 200 created
    [    1.276906] ti-udma 485c0100.dma-controller: Number of rings: 82
    [    1.285619] ti-udma 485c0100.dma-controller: Channels: 48 (bchan: 18, tchan: 12, rchan: 18)
    [    1.296675] ti-udma 485c0000.dma-controller: Number of rings: 150
    [    1.307668] ti-udma 485c0000.dma-controller: Channels: 35 (tchan: 20, rchan: 15)
    [    1.317246] ti-udma 4e230000.dma-controller: Number of rings: 6
    [    1.323838] ti-udma 4e230000.dma-controller: Channels: 6 (bchan: 0, tchan: 0, rchan: 6)
    [    1.333424] printk: legacy console [ttyS2] disabled
    [    1.338779] 2800000.serial: ttyS2 at MMIO 0x2800000 (irq = 249, base_baud = 3000000) is a 8250
    [    1.347668] printk: legacy console [ttyS2] enabled
    [    1.347668] printk: legacy console [ttyS2] enabled
    [    1.357375] printk: legacy bootconsole [ns16550a0] disabled
    [    1.357375] printk: legacy bootconsole [ns16550a0] disabled
    [    1.370654] 2850000.serial: ttyS0 at MMIO 0x2850000 (irq = 251, base_baud = 3000000) is a 8250
    [    1.379512] serial serial0: tty port ttyS0 registered
    [    1.385472] /bus@f0000/i2c@20000000/usb-power-controller@3f/connector: Fixed dependency cycle(s) with /bus@f0000/dwc3-usb@f900000/usb@31000000
    [    1.398376] /bus@f0000/dwc3-usb@f900000/usb@31000000: Fixed dependency cycle(s) with /bus@f0000/i2c@20000000/usb-power-controller@3f/connector
    [    1.415244] xhci-hcd xhci-hcd.0.auto: xHCI Host Controller
    [    1.420803] xhci-hcd xhci-hcd.0.auto: new USB bus registered, assigned bus number 1
    [    1.428576] xhci-hcd xhci-hcd.0.auto: USB3 root hub has no ports
    [    1.434580] xhci-hcd xhci-hcd.0.auto: hcc params 0x0258fe6d hci version 0x110 quirks 0x0000808020000010
    [    1.444018] xhci-hcd xhci-hcd.0.auto: irq 253, io mem 0x31100000
    [    1.450782] hub 1-0:1.0: USB hub found
    [    1.454568] hub 1-0:1.0: 1 port detected
    [    1.460070] cpufreq: cpufreq_online: CPU0: Running at unlisted initial frequency: 1200000 KHz, changing to: 1000000 KHz
    [    1.472751] mmc0: CQHCI version 5.10

  • Hi Sajid,

    I have another question regarding the UART5_RTSN pin, which is multiplexed with OSPI0_LBCLKO. Whenever I configure this pin in the Device Tree (DTS) and reboot the system, the board hangs during boot and does not boot successfully. However, if I remove this pin configuration from the DTS, the system boots normally.

    Please create a separate ticket for this.

    I have attached my decompiled DTS

    As mentioned earlier, the decompiled dts is not useful for me. Can you please share the dts you used to build the dtb/dtbo?