AM6442: Help with Ethernet LwIP ICSSG Example: Failing to Open UDMA RX Channel (AM64x-EVM, SDK 11.00.00.15)

Part Number: AM6442
Other Parts Discussed in Thread: SYSCONFIG

Tool/software:

Hello Team,

I'm currently attempting to run the ENET LWIP ICSSG example inside "source/networking/enet/core/examples/lwip/enet_lwip_icssg" from the MCU+ SDK 11.00.00.15 for AM64x on the TMDS64 evaluation module (am64x-evm). However, when I launch the application via Code Composer Studio (v20.2.0) debugger, it fails during initialization with the following console output:

MAIN_Cortex_R5_0_0: ==========================
MAIN_Cortex_R5_0_0: ENET LWIP App
MAIN_Cortex_R5_0_0: ==========================
MAIN_Cortex_R5_0_0: Enabling clocks!
MAIN_Cortex_R5_0_0: EnetAppUtils_reduceCoreMacAllocation: Reduced Mac Address Allocation for CoreId:1 From 4 To 1
MAIN_Cortex_R5_0_0: EnetUdma_openRxCh: [Enet UDMA] UDMA RX Channel open failed: 0xfffffffb
EnetUdma_openRxCh: [Enet UDMA] UDMA RX Channel open failed: 0xfffffffb
EnetHostPortDma_open: Failed to open Enet DMA RX channel: -1
Icssg_openDma: icssg1: failed to open ICSSG Host Port RX
Icssg_open: icssg1: failed to open DMA: -1
EnetPer_open: icssg1: Failed to open: -1
Enet_open: icssg1: Failed to open: -1
Enet_open failed_0:
MAIN_Cortex_R5_0_0: Assertion @ Line: 324 in syscfg/ti_enet_open_close.c: hEnet != NULL_PTR : failed !!!

It appears that the failure originates from the EnetApp_driverOpen() function inside ti_enet_open_close.c, which is called by enet_lwip_example() in test_enet.c.

According to the documentation (https://software-dl.ti.com/mcu-plus-sdk/esd/AM64X/11_00_00_15/exports/docs/api_guide_am64x/EXAMPLES_ENET_LWIP_ICSSG.html), the expected output should be:


==========================
ENET LWIP App
==========================
Enabling clocks!
PHY 3 is alive
Starting lwIP, local interface IP is dhcp-enabled
Host MAC address: 70:ff:76:1d:92:c1
[LWIPIF_LWIP] Enet has been started successfully
[LWIPIF_LWIP] NETIF INIT SUCCESS
status_callback==UP, local interface IP is 0.0.0.0
UDP server listening on port 5001
link_callback==UP
status_callback==UP, local interface IP is 192.168.0.172
5.136s : CPU load = 1.67 %

You can observe the following differences:

  • The line "EnetAppUtils_reduceCoreMacAllocation: Reduced Mac Address Allocation for CoreId:1 From 4 To 1" appears in my logs but not in the example output. This results from the EnetAppUtils_initResourceConfig() call inside EnetApp_driverOpen().
  • The UDMA RX channel fails to open (EnetUdma_openRxCh returns 0xfffffffb), leading to a cascade of failures and assertion at line 324:
    hEnet != NULL_PTR : failed !!!

I tested the example using the default SysConfig settings and a modified SysConfig based on the settings shown in the ICSSG SWITCH section of the documentation.

Default SysConfig:

Modified SysConfig:

Other modification:

  • Disabled UART debug logs and enabled CCS debug logs

  • In ti_power_clock_config.c, I commented out the line: DebugP_assertNoLog(status == SystemP_SUCCESS); in Module_clockSetFrequency() because SOC_moduleSetClockFrequencyWithParent() was returning SystemP_FAILURE. This workaround worked fine for other examples like ipc_rpmsg_echo_linux.

Questions:

  1. Is the SystemP_FAILURE in Module_clockSetFrequency related to the failure in EnetApp_driverOpen? Could the incorrect clock frequency setup cause the UDMA channel to fail?

  2. Are there any known SysConfig settings or board-level configurations required to get the ICSSG ENET LWIP example running successfully on AM64x-EVM?

  3. Is the reduced MAC allocation (from 4 to 1) expected behavior, or does it indicate a resource conflict?

Additional Information:

  • Code Composer Studio: v20.2.0
  • MCU+ SDK (AM64x): v11.00.00.15
  • Target Image: tisdk-default-image-rt-am64xx-evm-11.01.05.03

Any insights, suggestions, or troubleshooting steps would be greatly appreciated!

Thank you and best regards

Luca

  • Hi Luca,

    The enet_lwip_icssg example is working as expected in MCU+ SDK v11.00.00.15. I have verified that the modifications that you have made also doesn't have any impact for functionality. But the logs look similar to the case when the board is not set through a system reset between the runs. The UDMA module on board needs a system reset between runs to revert back to reset state. So, please do a system reset between the runs and test again.

    Following up on your questions:

    1. DebugP_assertNoLog(status == SystemP_SUCCESS) is a valid check, and is essential to avoid issues in later stages of development. Commenting out a valid check is not recommended by TI.
    2. As mentioned, the sysconfig is in working state. Please do a system reset between the runs to set UDMA module into reset state as well.
    3. This is expected behavior for 11.00.00.15 release. This doesn't indicate resource conflicts. 

    Please let us know if you need any further support, or if you have any queries.

    Regards,
    Teja.

  • Hello Teja,

    thank you for your response and for testing the behavior.

    Following your suggestion, I attempted the system reset as outlined below. First, I powered off and on the board and then started a debug session using F5. Unfortunately, the result remains unchanged from earlier tests.

    I also tried a different approach: after powering on the board, I started the debug session and then manually performed a system reset on the R5 core running the enet_lwip_icssg example using CCS.

    After clicking on System Reset, the MAIN_Cortex_R5_0_0 thread transitions from HALTED RUNNING HELDINRESET RUNNING. However, no debug logs are printed after the reset and all breakpoints are ignored. The board is unresponsive to the ping command, as outlined in the documentation. This suggests that the reset didn't resolve the issue.

    While debugging, I also noticed several threads labeled ICSS. I attempted to start these manually but this did not have any impact either.

      

    When I switched to the Release build configuration, the logs changed slightly. The system successfully initializes most components, including EnetUdma, Icssg, and EnetPer. However, the final step, Enet_open(), still fails, triggering the same assertion as in the Debug mode:

    MAIN_Cortex_R5_0_0: ==========================

    MAIN_Cortex_R5_0_0:       ENET LWIP App      

    MAIN_Cortex_R5_0_0: ==========================

    MAIN_Cortex_R5_0_0: Enabling clocks!

    MAIN_Cortex_R5_0_0: EnetAppUtils_reduceCoreMacAllocation: Reduced Mac Address Allocation for CoreId:1 From 4 To 1

    MAIN_Cortex_R5_0_0: EnetUdma_openRxCh:2328

    MAIN_Cortex_R5_0_0: EnetUdma_openRxCh:2328

    MAIN_Cortex_R5_0_0: EnetHostPortDma_open:121

    MAIN_Cortex_R5_0_0: Icssg_openDma:747

    MAIN_Cortex_R5_0_0: Icssg_open:1090

    MAIN_Cortex_R5_0_0: EnetPer_open:1231

    MAIN_Cortex_R5_0_0: Enet_open:933

    MAIN_Cortex_R5_0_0: Enet_open failed

    MAIN_Cortex_R5_0_0: Assertion @ Line: 324 in syscfg/ti_enet_open_close.c:   : failed !!!

    This indicates that although most ENET stack components are initializing correctly, Enet_open() still fails, which brings us back to the same issue.

    With that in mind, I have a few questions:

    1. Are there alternative methods to perform a system reset that would preserve debug log visibility and allow breakpoints to function correctly?
    2. Does the behavior observed in Release mode indicate any progress or suggest a different underlying issue?
    3. Are there any additional diagnostic tools or logging mechanisms that could provide more insights into why Enet_open() is failing?

    I appreciate any further guidance you can provide, and I'm happy to provide additional details or logs if necessary.

    Best regards

    Luca

  • Hi Luca,

    1. The correct way to issue a system reset is to disconnect the core first, and then do a system reset. If the system reset is issued while the core is still connected, it will throw off the system leading to improper behavior
    2. The logs above also refer to the example failing, but the error messages are replaced with the line numbers in the code. The init is still failing.
    3. Did you make any changes to the SDK? Are you facing any issues to run Out of Box examples? Can you try running the example without any modifications to the SDK?

    Can you please also check the SBL version that you are using in the setup? The error looks to be an issue with resource allocation. SBL version being different than expected can also lead to similar problems. Please let us know the results after testing with out of box example.

    Regards,
    Teja.

  • Hello Teja,

    I followed your guidance regarding the system reset, disconnecting the core first, but the result remains unchanged.

    In addition, I performed a complete reinstallation of both the SDK and Code Composer Studio to restore a full out-of-the-box setup, without any modifications. However, running the example without any changes still leads to the same issue. As part of my troubleshooting, I removed the Ethernet ports from the Linux device tree, suspecting a potential resource conflict between the A53 and the R5 cores. Unfortunately, this did not resolve the problem. I then reinstalled the default Yocto SD card image from the Linux-RT SDK Version 11.01.05.03 to ensure the setup was returned to the out-of-the-box configuration.

    For further testing, I ran both the hello_world and ipc_rpmsg_echo examples (both FreeRTOS-based), and they worked as expected. However, I am still encountering issues specifically with the LwIP ICSSG examples (enet_lwip_icssg and eneth_icssg_tcpserver).

    Regarding your mention of the SBL version, do you mean the U-Boot version? If so, I am currently using version 2025.01-00527-gd2a72467939e. If you were referring to a different SBL version, could you please advise on how to check it?

    You mentioned that this issue might be related to resource allocation. If the root cause is indeed a resource conflict between the A53 and R5 cores, is it necessary to manually assign specific Ethernet ports to individual CPUs? At present, the A53 has access to all three Ethernet ports. If manual assignment is required how do you perform the assignment. If not, could you clarify how the R5 and A53 cores are intended to share or split the Ethernet ports?

    I look forward to your further insights.

    Best regards,
    Luca

  • Hi Luca,

    I was in an impression that you are running R5 examples stand-alone. Are you using the application along with linux? If yes, then you have to completely prevent Linux to not probe the ICSSG drivers during boot up. In the current ICSSG and CPSW resources are shared between both A53 and R5 cores, but only one core can own it at given time. In your case, it looks like ICSSG resources are not completely relinquished, and the driver is still getting probed, which is leading to Linux owning the peripherals, and then R5 core not getting successful allocation. 

    You would have to disable both the ports and the driver, and corresponding modules in the device tree, and rebuild the device tree. I am attaching a reference to do the same.

    Add k3-am642-evm-icssg1-disable.dtso overlay file that disables
    icssg1-eth from Linux so that icssg peripherals can be used by
    RTOS or some other OS running on R5 core.
    
    Signed-off-by: MD Danish Anwar <danishanwar@ti.com>
    ---
     arch/arm64/boot/dts/ti/Makefile               |  7 +--
     .../dts/ti/k3-am642-evm-icssg1-disable.dtso   | 49 +++++++++++++++++++
     2 files changed, 53 insertions(+), 3 deletions(-)
     create mode 100644 arch/arm64/boot/dts/ti/k3-am642-evm-icssg1-disable.dtso
    
    diff --git a/arch/arm64/boot/dts/ti/Makefile b/arch/arm64/boot/dts/ti/Makefile
    index 6bd06bd76b68..0fd95b7df5a8 100644
    --- a/arch/arm64/boot/dts/ti/Makefile
    +++ b/arch/arm64/boot/dts/ti/Makefile
    @@ -76,6 +76,7 @@ dtb-$(CONFIG_ARCH_K3) += k3-am642-evm.dtb
     dtb-$(CONFIG_ARCH_K3) += k3-am642-evm-nand.dtbo
     dtb-$(CONFIG_ARCH_K3) += k3-am642-evm-icssg1-dualemac.dtbo
     dtb-$(CONFIG_ARCH_K3) += k3-am642-evm-icssg1-dualemac-mii.dtbo
    +dtb-$(CONFIG_ARCH_K3) += k3-am642-evm-icssg1-disable.dtbo
     dtb-$(CONFIG_ARCH_K3) += k3-am642-evm-pcie0-ep.dtbo
     dtb-$(CONFIG_ARCH_K3) += k3-am642-phyboard-electra-rdk.dtb
     dtb-$(CONFIG_ARCH_K3) += k3-am642-sk.dtb
    @@ -235,8 +236,8 @@ k3-am62p5-sk-microtips-mf103hie-lcd2-dtbs := k3-am62p5-sk.dtb \
         k3-am62p5-sk-microtips-mf103hie-lcd2.dtbo
     k3-am642-evm-icssg1-dualemac-dtbs := \
         k3-am642-evm.dtb k3-am642-evm-icssg1-dualemac.dtbo
    -k3-am642-evm-icssg1-dualemac-mii-dtbs := \
    -    k3-am642-evm.dtb k3-am642-evm-icssg1-dualemac-mii.dtbo
    +k3-am642-evm-icssg1-disable-dtbs := \
    +    k3-am642-evm.dtb k3-am642-evm-icssg1-disable.dtbo
     k3-am642-evm-pcie0-ep-dtbs := \
         k3-am642-evm.dtb k3-am642-evm-pcie0-ep.dtbo
     k3-am642-tqma64xxl-mbax4xxl-sdcard-dtbs := \
    @@ -323,7 +324,7 @@ dtb- += k3-am625-beagleplay-csi2-ov5640.dtb \
         k3-am62p5-sk-microtips-mf101hie-panel.dtb \
         k3-am62p5-sk-microtips-mf103hie-lcd2.dtb \
         k3-am642-evm-icssg1-dualemac.dtb \
    -    k3-am642-evm-icssg1-dualemac-mii.dtb \
    +    k3-am642-evm-icssg1-disable.dtb \
         k3-am642-evm-pcie0-ep.dtb \
         k3-am642-tqma64xxl-mbax4xxl-sdcard.dtb \
         k3-am642-tqma64xxl-mbax4xxl-wlan.dtb \
    diff --git a/arch/arm64/boot/dts/ti/k3-am642-evm-icssg1-disable.dtso b/arch/arm64/boot/dts/ti/k3-am642-evm-icssg1-disable.dtso
    new file mode 100644
    index 000000000000..dc04e2999e97
    --- /dev/null
    +++ b/arch/arm64/boot/dts/ti/k3-am642-evm-icssg1-disable.dtso
    @@ -0,0 +1,49 @@
    +// SPDX-License-Identifier: GPL-2.0-only OR MIT
    +/**
    + * DT overlay for enabling 2nd ICSSG1 port on AM642 EVM
    + *
    + * Copyright (C) 2020-2024 Texas Instruments Incorporated - https://www.ti.com/
    + */
    +
    +/dts-v1/;
    +/plugin/;
    +
    +#include <dt-bindings/gpio/gpio.h>
    +#include "k3-pinctrl.h"
    +
    +&oc_sram {
    +    #address-cells = <1>;
    +    #size-cells = <1>;
    +
    +    r5f0_0_sram: r5f0_0_sram@0 {
    +        reg = <0x0 0x180000>;
    +    };
    +};
    +
    +&main_r5fss0_core0 {
    +    sram = <&r5f0_0_sram>;
    +};
    +
    +&cpsw_port2 {
    +    status = "disabled";
    +};
    +
    +&icssg0 {
    +    status = "disabled";
    +};
    +
    +&icssg1 {
    +    status = "disabled";
    +};
    +
    +&ospi0 {
    +    status = "disabled";
    +};
    +
    +&mdio_mux_1 {
    +    status = "disabled";
    +};
    +
    +&icssg1_eth {
    +    status = "disabled";
    +};
    -- 
    2.34.1
    

    Please let us know if you face any further issues. 

    Regards,
    Teja.

  • Hi Teja,

    Thanks for your response and the reference device tree overlay. I applied the overlay as suggested, and it appears to have taken effect as ifconfig no longer shows the two Ethernet ports, which suggests the patch was applied successfully.

    However, the issue still persists. Upon further inspection, it seems that U-Boot is probing the ICSSG1 Ethernet port (eth2) during boot. Here’s the relevant snippet from the boot log:

    U-Boot 2025.01-gd2a72467939e (Jul 18 2025 - 17:37:52 +0200)
    SoC: AM64X SR2.0 HS-FS
    Model: Texas Instruments AM642 EVM
    Board: AM64-EVM rev D
    [...]
    Net: eth0: ethernet@8000000port@1, eth2: icssg1-eth-port@0


    Could this U-Boot probing be causing the ICSSG resources to remain occupied, thus preventing the R5 core from successfully acquiring them? If so, do you have any recommendations for preventing U-Boot from initializing or probing eth2?

    Also, based on your suggestion, I tested the R5 example in a Linux-free environment, and it works as expected without any issues. So the issue definitely seems to stem from a conflict over shared peripheral ownership. 

    Appreciate your continued support!

    Best regards,
    Luca

  • Hi Luca,

    Can you add the following lines to the k3-am64x-evm.dts file and check again?

    &icssgX_eth {
        status = "reserved";
    };
    &cpswXg {
        status = "reserved";
    };

    This should completely disable the ICSSG from being probed. To verify the effectiveness of the other changes, i.e, CPSW, you may run CPSW example instead of icssg example on R5 along with Linux. This should let us understand if we actually stopped the peripherals being probed.

    Regards,
    Teja.

  • Hi Teja,

    I added the two lines to the k3-am64x-evm.dts file, recompiled the device tree, and loaded it onto the board. Unfortunately, this did not resolve the issue. The only noticeable difference is that the CPSW Ethernet port no longer appears in ifconfig.

    When running the CPSW example, the output is very similar to the ICSSG example:

    MAIN_Cortex_R5_0_0: ==========================
    
    MAIN_Cortex_R5_0_0: ENET LWIP App
    
    MAIN_Cortex_R5_0_0: ==========================
    
    MAIN_Cortex_R5_0_0: Enabling clocks!
    
    MAIN_Cortex_R5_0_0: Mdio_open: MDIO Manual_Mode enabled
    
    EnetUdma_openRxCh: [Enet UDMA] UDMA RX Channel open failed: 0xfffffffb
    
    EnetHostPortDma_open: Failed to open Enet DMA RX channel: -1
    
    Cpsw_openInternal: CPSW: Failed to open CPSW DMA
    
    Assertion @ Line: 1033 in /nightlybuilds/mcupsdk_internal/jenkins/mcu_plus_sdk_am64x_11_00_00_15/source/networking/enet/core/src/per/V1/cpsw.c: hCpsw->hRxRsvdFlow != NULL

    This suggests that the peripherals are still being probed despite the device tree modifications.

    Additionally, during further testing, I observed that Linux crashes during the startup of the debug session but only when running the CPSW or ICSSG examples. Below is the output from the terminal when the crash occurs:

    [  138.212610] Unable to handle kernel paging request at virtual address ffff800080d6da00
    [  138.212633] Mem abort info:
    [  138.212636]   ESR = 0x0000000096000047
    [  138.212639]   EC = 0x25: DABT (current EL), IL = 32 bits
    [  138.212646]   SET = 0, FnV = 0
    [  138.212649]   EA = 0, S1PTW = 0
    [  138.212652]   FSC = 0x07: level 3 translation fault
    [  138.212656] Data abort info:
    [  138.212658]   ISV = 0, ISS = 0x00000047, ISS2 = 0x00000000
    [  138.212663]   CM = 0, WnR = 1, TnD = 0, TagAccess = 0
    [  138.212667]   GCS = 0, Overlay = 0, DirtyBit = 0, Xs = 0
    [  138.212672] swapper pgtable: 4k pages, 48-bit VAs, pgdp=0000000082cdf000
    [  138.212678] [ffff800080d6da00] pgd=0000000000000000, p4d=10000000830bd003, pud=10000000830be003, pmd=10000000830c1003, pte=0000000000000000
    [  138.212701] Internal error: Oops: 0000000096000047 [#1] PREEMPT_RT SMP
    [  138.212707] Modules linked in: overlay cfg80211 bluetooth rpmsg_ctrl ecdh_generic ecc rpmsg_char rfkill cdns3 cdns_usb_common crct10dif_ce mux_gpio pci_endpoint_test phy_can_transceiver cdns3_ti ti_k3_m4_remoteproc ti_k3_common rti_wdt ti_k3_r5_remoteproc omap_hwspinlock k3_j72xx_bandgap sa2ul authenc omap_mailbox at24 m_can_platform m_can can_dev spi_omap2_mcspi pwm_tiecap cryptodev(O) fuse drm drm_panel_orientation_quirks backlight ipv6
    [  138.212813] CPU: 0 UID: 0 PID: 58 Comm: kworker/u8:3 Tainted: G           O       6.12.35-ti-rt-00915-ge3e551586dfa #1
    [  138.212826] Tainted: [O]=OOT_MODULE
    [  138.212830] Hardware name: Texas Instruments AM642 EVM (DT)
    [  138.212836] Workqueue: kvfree_rcu_reclaim 0xffff8000800a6c0c
    [  138.212844] pstate: a00000c5 (NzCv daIF -PAN -UAO -TCO -DIT -SSBS BTYPE=--)
    [  138.212853] pc : 0xffff800080a29700
    [  138.212856] lr : 0xffff800080a292c8
    [  138.212859] sp : ffff000001febd00
    [  138.212862] x29: ffff000001febd00 x28: 0000000000000000 x27: 0000000000000000
    [  138.212872] x26: 0000000000000000 x25: ffff000000d7f100 x24: ffff000000016205
    [  138.212882] x23: ffff00000009b1f0 x22: ffff000000010000 x21: 0000000000000000
    [  138.212892] x20: 0000000000000003 x19: 00000000000000c0 x18: 000000202caed516
    [  138.212902] x17: 0000000000000000 x16: 0000000000000000 x15: 0000000000000001
    [  138.212912] x14: 0000000000000000 x13: ffff000001d99d00 x12: ffff00007ff90e40
    [  138.212922] x11: 000000202e1c9389 x10: 00000000000008f0 x9 : ffff800080f1be68
    [  138.212932] x8 : 0000000000000000 x7 : 0000000000000000 x6 : ffff00007ff7aa00
    [  138.212941] x5 : ffff800080d6da00 x4 : 0000000000040000 x3 : ffff00007ff7aa00
    [  138.212951] x2 : ffff800080d6da00 x1 : ffff00007ff7aa08 x0 : ffff00000009b1f0
    [  138.212963] Call trace:
    [  138.212967]  0xffff800080a29700
    [  138.212971]  0xffff800080068c8c
    [  138.212974]  0xffff800080069024
    [  138.212977]  0xffff800080051108
    [  138.212980]  0xffff800080053b0c
    [  138.212983]  0xffff8000800543f0
    [  138.212985]  0xffff80008005c640
    [  138.212989]  0xffff800080014858
    [  138.212996] Code: d37c0425 910020c1 8b050045 f868d928 (f82868a6)
    [  138.213003] ---[ end trace 0000000000000000 ]---
    [  138.213008] note: kworker/u8:3[58] exited with irqs disabled
    [  138.213012] note: kworker/u8:3[58] exited with preempt_count 3
    [  138.213040] Unable to handle kernel paging request at virtual address 000b60089903998d
    [  138.213044] Mem abort info:
    [  138.213046]   ESR = 0x0000000096000004
    [  138.213049]   EC = 0x25: DABT (current EL), IL = 32 bits
    [  138.213053]   SET = 0, FnV = 0
    [  138.213056]   EA = 0, S1PTW = 0
    [  138.213059]   FSC = 0x04: level 0 translation fault
    [  138.213063] Data abort info:
    [  138.213065]   ISV = 0, ISS = 0x00000004, ISS2 = 0x00000000
    [  138.213068]   CM = 0, WnR = 0, TnD = 0, TagAccess = 0
    [  138.213072]   GCS = 0, Overlay = 0, DirtyBit = 0, Xs = 0
    [  138.213077] [000b60089903998d] address between user and kernel address ranges
    [  138.213081] Internal error: Oops: 0000000096000004 [#2] PREEMPT_RT SMP
    [  138.213085] Modules linked in: overlay cfg80211 bluetooth rpmsg_ctrl ecdh_generic ecc rpmsg_char rfkill cdns3 cdns_usb_common crct10dif_ce mux_gpio pci_endpoint_test phy_can_transceiver cdns3_ti ti_k3_m4_remoteproc ti_k3_common rti_wdt ti_k3_r5_remoteproc omap_hwspinlock k3_j72xx_bandgap sa2ul authenc omap_mailbox at24 m_can_platform m_can can_dev spi_omap2_mcspi pwm_tiecap cryptodev(O) fuse drm drm_panel_orientation_quirks backlight ipv6
    [  138.213165] CPU: 0 UID: 0 PID: 58 Comm: kworker/u8:3 Tainted: G      D    O       6.12.35-ti-rt-00915-ge3e551586dfa #1
    [  138.213176] Tainted: [D]=DIE, [O]=OOT_MODULE
    [  138.213179] Hardware name: Texas Instruments AM642 EVM (DT)
    [  138.213183] Workqueue: kvfree_rcu_reclaim 0xffff8000800a6c0c
    [  138.213188] pstate: 60000005 (nZCv daif -PAN -UAO -TCO -DIT -SSBS BTYPE=--)
    [  138.213196] pc : 0xffff80008003aef4
    [  138.213199] lr : 0xffff80008003c580
    [  138.213202] sp : ffff000001feb930
    [  138.213205] x29: ffff000001feb930 x28: ffffffffffffffff x27: ffff000000088000
    [  138.213216] x26: ffff800080b999b8 x25: ffff000001d9a0c0 x24: 0000000000000000
    [  138.213226] x23: ffff000001d9a080 x22: ffff800080f15080 x21: ffff000001feb9b0
    [  138.213236] x20: ffff000001d99c80 x19: ffff800080f2c1d8 x18: ffffffffffffffff
    [  138.213246] x17: 3038666666662073 x16: 736572646461206c x15: ffff000001feb628
    [  138.213257] x14: 0000000000000000 x13: ffff800080f2d070 x12: 0000000000000591
    [  138.213267] x11: 00000000000001db x10: ffff800080f85070 x9 : ffff800080f2d070
    [  138.213277] x8 : 00000000000001dc x7 : ffff800080f85070 x6 : 80000000fffff000
    [  138.213287] x5 : 0000000000000000 x4 : 0000000000000001 x3 : ffff0000012f7300
    [  138.213297] x2 : 0000000000000001 x1 : e00b600899039805 x0 : ffff000001d99c80
    [  138.213307] Call trace:
    [  138.213309]  0xffff80008003aef4
    [  138.213312]  0xffff80008003c580
    [  138.213315]  0xffff80008003c77c
    [  138.213318]  0xffff800080018df8
    [  138.213321]  0xffff8000800238a0
    [  138.213324]  0xffff800080023d5c
    [  138.213327]  0xffff800080024450
    [  138.213330]  0xffff800080024530
    [  138.213333]  0xffff800080a1b960
    [  138.213336]  0xffff800080a1cff0
    [  138.213339]  0xffff800080011204
    [  138.213343]  0xffff800080a29700
    [  138.213346]  0xffff800080068c8c
    [  138.213348]  0xffff800080069024
    [  138.213351]  0xffff800080051108
    [  138.213354]  0xffff800080053b0c
    [  138.213357]  0xffff8000800543f0
    [  138.213360]  0xffff80008005c640
    [  138.213363]  0xffff800080014858
    [  138.213369] Code: f940c473 b40001a1 d2800000 f9434821 (f940c422)
    [  138.213373] ---[ end trace 0000000000000000 ]---
    [  138.213376] Fixing recursive fault but reboot is needed!
    [  138.213381] ------------[ cut here ]------------
    [  138.213383] Voluntary context switch within RCU read-side critical section!
    [  138.213400] WARNING: CPU: 0 PID: 58 at /kernel/rcu/tree_plugin.h:331 0xffff8000800a8be8
    [  138.213407] Modules linked in: overlay cfg80211 bluetooth rpmsg_ctrl ecdh_generic ecc rpmsg_char rfkill cdns3 cdns_usb_common crct10dif_ce mux_gpio pci_endpoint_test phy_can_transceiver cdns3_ti ti_k3_m4_remoteproc ti_k3_common rti_wdt ti_k3_r5_remoteproc omap_hwspinlock k3_j72xx_bandgap sa2ul authenc omap_mailbox at24 m_can_platform m_can can_dev spi_omap2_mcspi pwm_tiecap cryptodev(O) fuse drm drm_panel_orientation_quirks backlight ipv6
    [  138.213484] CPU: 0 UID: 0 PID: 58 Comm: kworker/u8:3 Tainted: G      D    O       6.12.35-ti-rt-00915-ge3e551586dfa #1
    [  138.213494] Tainted: [D]=DIE, [O]=OOT_MODULE
    [  138.213497] Hardware name: Texas Instruments AM642 EVM (DT)
    [  138.213501] Workqueue: kvfree_rcu_reclaim 0xffff8000800a6c0c
    [  138.213506] pstate: 800000c5 (Nzcv daIF -PAN -UAO -TCO -DIT -SSBS BTYPE=--)
    [  138.213514] pc : 0xffff8000800a8be8
    [  138.213517] lr : 0xffff8000800a8be8
    [  138.213519] sp : ffff000001feb530
    [  138.213522] x29: ffff000001feb530 x28: ffff000001d99c80 x27: ffff000000088000
    [  138.213533] x26: ffff800080b999b8 x25: 0000000000000000 x24: 0000000000000000
    [  138.213543] x23: ffff800080f1be68 x22: ffff000001d99c80 x21: ffff00007ff79dc0
    [  138.213553] x20: ffff800080d6da40 x19: ffff00007ff7aa40 x18: fffffffffffe90d8
    [  138.213563] x17: 65676e6172207373 x16: 6572646461206c65 x15: fffffffffffe9120
    [  138.213574] x14: ffff800080f2cfe8 x13: 216e6f6974636573 x12: 206c616369746972
    [  138.213584] x11: 6320656469732d64 x10: 6165722055435220 x9 : ffff800080f2cfe8
    [  138.213594] x8 : ffff000001feb370 x7 : ffff800080f88238 x6 : 0000000000000000
    [  138.213604] x5 : ffff00007ff6e6d0 x4 : 0000000000000000 x3 : 0000000000000027
    [  138.213614] x2 : 0000000000000027 x1 : ffff000001d99c80 x0 : 0000000100000001
    [  138.213624] Call trace:
    [  138.213626]  0xffff8000800a8be8
    [  138.213630]  0xffff800080a1f69c
    [  138.213633]  0xffff800080067808
    [  138.213636]  0xffff80008003c824
    [  138.213639]  0xffff800080018df8
    [  138.213642]  0xffff8000800238a0
    [  138.213645]  0xffff800080023d5c
    [  138.213648]  0xffff800080024450
    [  138.213651]  0xffff800080024530
    [  138.213654]  0xffff800080a1b960
    [  138.213657]  0xffff800080a1cff0
    [  138.213659]  0xffff800080011204
    [  138.213662]  0xffff80008003aef4
    [  138.213666]  0xffff80008003c580
    [  138.213669]  0xffff80008003c77c
    [  138.213672]  0xffff800080018df8
    [  138.213675]  0xffff8000800238a0
    [  138.213677]  0xffff800080023d5c
    [  138.213680]  0xffff800080024450
    [  138.213683]  0xffff800080024530
    [  138.213686]  0xffff800080a1b960
    [  138.213689]  0xffff800080a1cff0
    [  138.213692]  0xffff800080011204
    [  138.213695]  0xffff800080a29700
    [  138.213698]  0xffff800080068c8c
    [  138.213701]  0xffff800080069024
    [  138.213704]  0xffff800080051108
    [  138.213707]  0xffff800080053b0c
    [  138.213710]  0xffff8000800543f0
    [  138.213713]  0xffff80008005c640
    [  138.213716]  0xffff800080014858
    [  138.213720] ---[ end trace 0000000000000000 ]---
    [  138.213760] Unable to handle kernel paging request at virtual address ffff800080d6da30
    [  138.213766] Mem abort info:
    [  138.213768]   ESR = 0x0000000096000047
    [  138.213771]   EC = 0x25: DABT (current EL), IL = 32 bits
    [  138.213775]   SET = 0, FnV = 0
    [  138.213778]   EA = 0, S1PTW = 0
    [  138.213781]   FSC = 0x07: level 3 translation fault
    [  138.213785] Data abort info:
    [  138.213787]   ISV = 0, ISS = 0x00000047, ISS2 = 0x00000000
    [  138.213790]   CM = 0, WnR = 1, TnD = 0, TagAccess = 0
    [  138.213794]   GCS = 0, Overlay = 0, DirtyBit = 0, Xs = 0
    [  138.213799] swapper pgtable: 4k pages, 48-bit VAs, pgdp=0000000082cdf000
    [  138.213804] [ffff800080d6da30] pgd=0000000000000000, p4d=10000000830bd003, pud=10000000830be003, pmd=10000000830c1003, pte=0000000000000000
    [  138.213818] Internal error: Oops: 0000000096000047 [#3] PREEMPT_RT SMP
    [  138.213823] Modules linked in: overlay cfg80211 bluetooth rpmsg_ctrl ecdh_generic ecc rpmsg_char rfkill cdns3 cdns_usb_common crct10dif_ce mux_gpio pci_endpoint_test phy_can_transceiver cdns3_ti ti_k3_m4_remoteproc ti_k3_common rti_wdt ti_k3_r5_remoteproc omap_hwspinlock k3_j72xx_bandgap sa2ul authenc omap_mailbox at24 m_can_platform m_can can_dev spi_omap2_mcspi pwm_tiecap cryptodev(O) fuse drm drm_panel_orientation_quirks backlight ipv6
    [  138.213899] CPU: 0 UID: 0 PID: 0 Comm: swapper/0 Tainted: G      D W  O       6.12.35-ti-rt-00915-ge3e551586dfa #1
    [  138.213910] Tainted: [D]=DIE, [W]=WARN, [O]=OOT_MODULE
    [  138.213913] Hardware name: Texas Instruments AM642 EVM (DT)
    [  138.213916] pstate: a00000c5 (NzCv daIF -PAN -UAO -TCO -DIT -SSBS BTYPE=--)
    [  138.213924] pc : 0xffff800080a29700
    [  138.213927] lr : 0xffff800080a292c8
    [  138.213930] sp : ffff800080f13ab0
    [  138.213932] x29: ffff800080f13ab0 x28: ffff800080f22a00 x27: 0000000000000000
    [  138.213943] x26: 0000000000000071 x25: ffff800080d48028 x24: ffff800080f22f70
    [  138.213953] x23: ffff00000009ce70 x22: ffff800080065568 x21: 0000000000000000
    [  138.213963] x20: 0000000000000003 x19: 00000000000000c0 x18: fffffffffffe90d8
    [  138.213973] x17: ffff7fffff20d000 x16: ffff00007ff75040 x15: 00000f4240000000
    [  138.213983] x14: 0000000000030d40 x13: 0000000000000008 x12: 0000000000000000
    [  138.213992] x11: 0000000000000000 x10: 0000000000000000 x9 : ffff800080f1be68
    [  138.214002] x8 : 0000000000000000 x7 : 0000000000000010 x6 : ffff00007ff7aa10
    [  138.214011] x5 : ffff800080d6da30 x4 : 0000000000050000 x3 : ffff00007ff7aa00
    [  138.214022] x2 : ffff800080d6da00 x1 : ffff00007ff7aa18 x0 : ffff00000009ce70
    [  138.214032] Call trace:
    [  138.214034]  0xffff800080a29700
    [  138.214037]  0xffff800080068c8c
    [  138.214040]  0xffff800080069024
    [  138.214043]  0xffff80008003d920
    [  138.214046]  0xffff80008003e0e8
    [  138.214049]  0xffff80008003e43c
    [  138.214052]  0xffff800080a1b9b4
    [  138.214055]  0xffff800080a1d038
    [  138.214058]  0xffff80008001126c
    [  138.214061]  0xffff800080065568
    [  138.214064]  0xffff800080a1f86c
    [  138.214066]  0xffff800080a1ff54
    [  138.214070]  0xffff8000800769a0
    [  138.214073]  0xffff800080076b7c
    [  138.214076]  0xffff800080a1e7b0
    [  138.214079]  0xffff800080ce0bcc
    [  138.214082]  0xffff800080ce7d1c
    [  138.214088] Code: d37c0425 910020c1 8b050045 f868d928 (f82868a6)
    [  138.214092] ---[ end trace 0000000000000000 ]---
    [  138.214097] Kernel panic - not syncing: Attempted to kill the idle task!
    [  138.214102] SMP: stopping secondary CPUs
    [  138.214114] Kernel Offset: disabled
    [  138.214116] CPU features: 0x00,00000080,00000000,4200400b
    [  138.214122] Memory Limit: none
    [  139.373469] ---[ end Kernel panic - not syncing: Attempted to kill the idle task! ]---

    Are you aware of this behavior? Any insights would be appreciated.

    Best regards,
    Luca

  • Hi Luca,

    These are the suggestions I got from our linux expert. Please test this once, and let me know the findings. Meanwhile, I will ask our Linux team to go through the crash logs. 

    1. Remove all earlier changes suggested in this thread, and start with clean dts, without any overlays
    2. Add the exact lines in the dts file:
      &icssg0_eth {
          status = "reserved";
      };
      &icssg1_eth {
          status = "reserved";
      };
      &cpsw3g {
          status = "reserved";
      };

      The 'X' notation in the earlier post refers to the instance present in the system.

    Thanks and regards,
    Teja.

  • Hi Teja,

    Thanks for the suggestions and the support so far.

    I’ve reverted all previous changes and added the recommended lines to the k3-am642-evm.dts file, except for the icssg0_eth entry. Including that line results in a compiler error: "Label or path icssg0_eth not found."

    With these changes (minus the icssg0_eth line), I’m still observing the same issues as before in both examples.

    Best regards
    Luca

  • Hi Luca,

    I have sent the details of this issue to our linux experts. Kindly expect a response in 2 days. 

    Regards,
    Teja.

  • Hi Luca,

    Upon review with our linux experts, it is understood that u-boot also has to be updated not to probe the peripherals. it can be updated in the file "arch/arm/dts/k3-am642-evm-u-boot.dtsi" and u-boot has to be built again. 

    &icssg1_eth {
        status = "reserved";
    };
    &cpsw3g {
        status = "reserved";
    };

    Regards,
    Teja.

  • Hi Teja,

    I’ve made the updates to the file as suggested. However, the behavior of the example remains unchanged, and I’m encountering a similar crash on the Linux side. Below is the crash report for your reference:

    [  138.212610] Unable to handle kernel paging request at virtual address ffff800080d6da00
    [  138.212633] Mem abort info:
    [  138.212636]   ESR = 0x0000000096000047
    [  138.212639]   EC = 0x25: DABT (current EL), IL = 32 bits
    [  138.212646]   SET = 0, FnV = 0
    [  138.212649]   EA = 0, S1PTW = 0
    [  138.212652]   FSC = 0x07: level 3 translation fault
    [  138.212656] Data abort info:
    [  138.212658]   ISV = 0, ISS = 0x00000047, ISS2 = 0x00000000
    [  138.212663]   CM = 0, WnR = 1, TnD = 0, TagAccess = 0
    [  138.212667]   GCS = 0, Overlay = 0, DirtyBit = 0, Xs = 0
    [  138.212672] swapper pgtable: 4k pages, 48-bit VAs, pgdp=0000000082cdf000
    [  138.212678] [ffff800080d6da00] pgd=0000000000000000, p4d=10000000830bd003, pud=10000000830be003, pmd=10000000830c1003, pte=0000000000000000
    [  138.212701] Internal error: Oops: 0000000096000047 [#1] PREEMPT_RT SMP
    [  138.212707] Modules linked in: overlay cfg80211 bluetooth rpmsg_ctrl ecdh_generic ecc rpmsg_char rfkill cdns3 cdns_usb_common crct10dif_ce mux_gpio pci_endpoint_test phy_can_transceiver cdns3_ti ti_k3_m4_remoteproc ti_k3_common rti_wdt ti_k3_r5_remoteproc omap_hwspinlock k3_j72xx_bandgap sa2ul authenc omap_mailbox at24 m_can_platform m_can can_dev spi_omap2_mcspi pwm_tiecap cryptodev(O) fuse drm drm_panel_orientation_quirks backlight ipv6
    [  138.212813] CPU: 0 UID: 0 PID: 58 Comm: kworker/u8:3 Tainted: G           O       6.12.35-ti-rt-00915-ge3e551586dfa #1
    [  138.212826] Tainted: [O]=OOT_MODULE
    [  138.212830] Hardware name: Texas Instruments AM642 EVM (DT)
    [  138.212836] Workqueue: kvfree_rcu_reclaim 0xffff8000800a6c0c
    [  138.212844] pstate: a00000c5 (NzCv daIF -PAN -UAO -TCO -DIT -SSBS BTYPE=--)
    [  138.212853] pc : 0xffff800080a29700
    [  138.212856] lr : 0xffff800080a292c8
    [  138.212859] sp : ffff000001febd00
    [  138.212862] x29: ffff000001febd00 x28: 0000000000000000 x27: 0000000000000000
    [  138.212872] x26: 0000000000000000 x25: ffff000000d7f100 x24: ffff000000016205
    [  138.212882] x23: ffff00000009b1f0 x22: ffff000000010000 x21: 0000000000000000
    [  138.212892] x20: 0000000000000003 x19: 00000000000000c0 x18: 000000202caed516
    [  138.212902] x17: 0000000000000000 x16: 0000000000000000 x15: 0000000000000001
    [  138.212912] x14: 0000000000000000 x13: ffff000001d99d00 x12: ffff00007ff90e40
    [  138.212922] x11: 000000202e1c9389 x10: 00000000000008f0 x9 : ffff800080f1be68
    [  138.212932] x8 : 0000000000000000 x7 : 0000000000000000 x6 : ffff00007ff7aa00
    [  138.212941] x5 : ffff800080d6da00 x4 : 0000000000040000 x3 : ffff00007ff7aa00
    [  138.212951] x2 : ffff800080d6da00 x1 : ffff00007ff7aa08 x0 : ffff00000009b1f0
    [  138.212963] Call trace:
    [  138.212967]  0xffff800080a29700
    [  138.212971]  0xffff800080068c8c
    [  138.212974]  0xffff800080069024
    [  138.212977]  0xffff800080051108
    [  138.212980]  0xffff800080053b0c
    [  138.212983]  0xffff8000800543f0
    [  138.212985]  0xffff80008005c640
    [  138.212989]  0xffff800080014858
    [  138.212996] Code: d37c0425 910020c1 8b050045 f868d928 (f82868a6)
    [  138.213003] ---[ end trace 0000000000000000 ]---
    [  138.213008] note: kworker/u8:3[58] exited with irqs disabled
    [  138.213012] note: kworker/u8:3[58] exited with preempt_count 3
    [  138.213040] Unable to handle kernel paging request at virtual address 000b60089903998d
    [  138.213044] Mem abort info:
    [  138.213046]   ESR = 0x0000000096000004
    [  138.213049]   EC = 0x25: DABT (current EL), IL = 32 bits
    [  138.213053]   SET = 0, FnV = 0
    [  138.213056]   EA = 0, S1PTW = 0
    [  138.213059]   FSC = 0x04: level 0 translation fault
    [  138.213063] Data abort info:
    [  138.213065]   ISV = 0, ISS = 0x00000004, ISS2 = 0x00000000
    [  138.213068]   CM = 0, WnR = 0, TnD = 0, TagAccess = 0
    [  138.213072]   GCS = 0, Overlay = 0, DirtyBit = 0, Xs = 0
    [  138.213077] [000b60089903998d] address between user and kernel address ranges
    [  138.213081] Internal error: Oops: 0000000096000004 [#2] PREEMPT_RT SMP
    [  138.213085] Modules linked in: overlay cfg80211 bluetooth rpmsg_ctrl ecdh_generic ecc rpmsg_char rfkill cdns3 cdns_usb_common crct10dif_ce mux_gpio pci_endpoint_test phy_can_transceiver cdns3_ti ti_k3_m4_remoteproc ti_k3_common rti_wdt ti_k3_r5_remoteproc omap_hwspinlock k3_j72xx_bandgap sa2ul authenc omap_mailbox at24 m_can_platform m_can can_dev spi_omap2_mcspi pwm_tiecap cryptodev(O) fuse drm drm_panel_orientation_quirks backlight ipv6
    [  138.213165] CPU: 0 UID: 0 PID: 58 Comm: kworker/u8:3 Tainted: G      D    O       6.12.35-ti-rt-00915-ge3e551586dfa #1
    [  138.213176] Tainted: [D]=DIE, [O]=OOT_MODULE
    [  138.213179] Hardware name: Texas Instruments AM642 EVM (DT)
    [  138.213183] Workqueue: kvfree_rcu_reclaim 0xffff8000800a6c0c
    [  138.213188] pstate: 60000005 (nZCv daif -PAN -UAO -TCO -DIT -SSBS BTYPE=--)
    [  138.213196] pc : 0xffff80008003aef4
    [  138.213199] lr : 0xffff80008003c580
    [  138.213202] sp : ffff000001feb930
    [  138.213205] x29: ffff000001feb930 x28: ffffffffffffffff x27: ffff000000088000
    [  138.213216] x26: ffff800080b999b8 x25: ffff000001d9a0c0 x24: 0000000000000000
    [  138.213226] x23: ffff000001d9a080 x22: ffff800080f15080 x21: ffff000001feb9b0
    [  138.213236] x20: ffff000001d99c80 x19: ffff800080f2c1d8 x18: ffffffffffffffff
    [  138.213246] x17: 3038666666662073 x16: 736572646461206c x15: ffff000001feb628
    [  138.213257] x14: 0000000000000000 x13: ffff800080f2d070 x12: 0000000000000591
    [  138.213267] x11: 00000000000001db x10: ffff800080f85070 x9 : ffff800080f2d070
    [  138.213277] x8 : 00000000000001dc x7 : ffff800080f85070 x6 : 80000000fffff000
    [  138.213287] x5 : 0000000000000000 x4 : 0000000000000001 x3 : ffff0000012f7300
    [  138.213297] x2 : 0000000000000001 x1 : e00b600899039805 x0 : ffff000001d99c80
    [  138.213307] Call trace:
    [  138.213309]  0xffff80008003aef4
    [  138.213312]  0xffff80008003c580
    [  138.213315]  0xffff80008003c77c
    [  138.213318]  0xffff800080018df8
    [  138.213321]  0xffff8000800238a0
    [  138.213324]  0xffff800080023d5c
    [  138.213327]  0xffff800080024450
    [  138.213330]  0xffff800080024530
    [  138.213333]  0xffff800080a1b960
    [  138.213336]  0xffff800080a1cff0
    [  138.213339]  0xffff800080011204
    [  138.213343]  0xffff800080a29700
    [  138.213346]  0xffff800080068c8c
    [  138.213348]  0xffff800080069024
    [  138.213351]  0xffff800080051108
    [  138.213354]  0xffff800080053b0c
    [  138.213357]  0xffff8000800543f0
    [  138.213360]  0xffff80008005c640
    [  138.213363]  0xffff800080014858
    [  138.213369] Code: f940c473 b40001a1 d2800000 f9434821 (f940c422)
    [  138.213373] ---[ end trace 0000000000000000 ]---
    [  138.213376] Fixing recursive fault but reboot is needed!
    [  138.213381] ------------[ cut here ]------------
    [  138.213383] Voluntary context switch within RCU read-side critical section!
    [  138.213400] WARNING: CPU: 0 PID: 58 at /kernel/rcu/tree_plugin.h:331 0xffff8000800a8be8
    [  138.213407] Modules linked in: overlay cfg80211 bluetooth rpmsg_ctrl ecdh_generic ecc rpmsg_char rfkill cdns3 cdns_usb_common crct10dif_ce mux_gpio pci_endpoint_test phy_can_transceiver cdns3_ti ti_k3_m4_remoteproc ti_k3_common rti_wdt ti_k3_r5_remoteproc omap_hwspinlock k3_j72xx_bandgap sa2ul authenc omap_mailbox at24 m_can_platform m_can can_dev spi_omap2_mcspi pwm_tiecap cryptodev(O) fuse drm drm_panel_orientation_quirks backlight ipv6
    [  138.213484] CPU: 0 UID: 0 PID: 58 Comm: kworker/u8:3 Tainted: G      D    O       6.12.35-ti-rt-00915-ge3e551586dfa #1
    [  138.213494] Tainted: [D]=DIE, [O]=OOT_MODULE
    [  138.213497] Hardware name: Texas Instruments AM642 EVM (DT)
    [  138.213501] Workqueue: kvfree_rcu_reclaim 0xffff8000800a6c0c
    [  138.213506] pstate: 800000c5 (Nzcv daIF -PAN -UAO -TCO -DIT -SSBS BTYPE=--)
    [  138.213514] pc : 0xffff8000800a8be8
    [  138.213517] lr : 0xffff8000800a8be8
    [  138.213519] sp : ffff000001feb530
    [  138.213522] x29: ffff000001feb530 x28: ffff000001d99c80 x27: ffff000000088000
    [  138.213533] x26: ffff800080b999b8 x25: 0000000000000000 x24: 0000000000000000
    [  138.213543] x23: ffff800080f1be68 x22: ffff000001d99c80 x21: ffff00007ff79dc0
    [  138.213553] x20: ffff800080d6da40 x19: ffff00007ff7aa40 x18: fffffffffffe90d8
    [  138.213563] x17: 65676e6172207373 x16: 6572646461206c65 x15: fffffffffffe9120
    [  138.213574] x14: ffff800080f2cfe8 x13: 216e6f6974636573 x12: 206c616369746972
    [  138.213584] x11: 6320656469732d64 x10: 6165722055435220 x9 : ffff800080f2cfe8
    [  138.213594] x8 : ffff000001feb370 x7 : ffff800080f88238 x6 : 0000000000000000
    [  138.213604] x5 : ffff00007ff6e6d0 x4 : 0000000000000000 x3 : 0000000000000027
    [  138.213614] x2 : 0000000000000027 x1 : ffff000001d99c80 x0 : 0000000100000001
    [  138.213624] Call trace:
    [  138.213626]  0xffff8000800a8be8
    [  138.213630]  0xffff800080a1f69c
    [  138.213633]  0xffff800080067808
    [  138.213636]  0xffff80008003c824
    [  138.213639]  0xffff800080018df8
    [  138.213642]  0xffff8000800238a0
    [  138.213645]  0xffff800080023d5c
    [  138.213648]  0xffff800080024450
    [  138.213651]  0xffff800080024530
    [  138.213654]  0xffff800080a1b960
    [  138.213657]  0xffff800080a1cff0
    [  138.213659]  0xffff800080011204
    [  138.213662]  0xffff80008003aef4
    [  138.213666]  0xffff80008003c580
    [  138.213669]  0xffff80008003c77c
    [  138.213672]  0xffff800080018df8
    [  138.213675]  0xffff8000800238a0
    [  138.213677]  0xffff800080023d5c
    [  138.213680]  0xffff800080024450
    [  138.213683]  0xffff800080024530
    [  138.213686]  0xffff800080a1b960
    [  138.213689]  0xffff800080a1cff0
    [  138.213692]  0xffff800080011204
    [  138.213695]  0xffff800080a29700
    [  138.213698]  0xffff800080068c8c
    [  138.213701]  0xffff800080069024
    [  138.213704]  0xffff800080051108
    [  138.213707]  0xffff800080053b0c
    [  138.213710]  0xffff8000800543f0
    [  138.213713]  0xffff80008005c640
    [  138.213716]  0xffff800080014858
    [  138.213720] ---[ end trace 0000000000000000 ]---
    [  138.213760] Unable to handle kernel paging request at virtual address ffff800080d6da30
    [  138.213766] Mem abort info:
    [  138.213768]   ESR = 0x0000000096000047
    [  138.213771]   EC = 0x25: DABT (current EL), IL = 32 bits
    [  138.213775]   SET = 0, FnV = 0
    [  138.213778]   EA = 0, S1PTW = 0
    [  138.213781]   FSC = 0x07: level 3 translation fault
    [  138.213785] Data abort info:
    [  138.213787]   ISV = 0, ISS = 0x00000047, ISS2 = 0x00000000
    [  138.213790]   CM = 0, WnR = 1, TnD = 0, TagAccess = 0
    [  138.213794]   GCS = 0, Overlay = 0, DirtyBit = 0, Xs = 0
    [  138.213799] swapper pgtable: 4k pages, 48-bit VAs, pgdp=0000000082cdf000
    [  138.213804] [ffff800080d6da30] pgd=0000000000000000, p4d=10000000830bd003, pud=10000000830be003, pmd=10000000830c1003, pte=0000000000000000
    [  138.213818] Internal error: Oops: 0000000096000047 [#3] PREEMPT_RT SMP
    [  138.213823] Modules linked in: overlay cfg80211 bluetooth rpmsg_ctrl ecdh_generic ecc rpmsg_char rfkill cdns3 cdns_usb_common crct10dif_ce mux_gpio pci_endpoint_test phy_can_transceiver cdns3_ti ti_k3_m4_remoteproc ti_k3_common rti_wdt ti_k3_r5_remoteproc omap_hwspinlock k3_j72xx_bandgap sa2ul authenc omap_mailbox at24 m_can_platform m_can can_dev spi_omap2_mcspi pwm_tiecap cryptodev(O) fuse drm drm_panel_orientation_quirks backlight ipv6
    [  138.213899] CPU: 0 UID: 0 PID: 0 Comm: swapper/0 Tainted: G      D W  O       6.12.35-ti-rt-00915-ge3e551586dfa #1
    [  138.213910] Tainted: [D]=DIE, [W]=WARN, [O]=OOT_MODULE
    [  138.213913] Hardware name: Texas Instruments AM642 EVM (DT)
    [  138.213916] pstate: a00000c5 (NzCv daIF -PAN -UAO -TCO -DIT -SSBS BTYPE=--)
    [  138.213924] pc : 0xffff800080a29700
    [  138.213927] lr : 0xffff800080a292c8
    [  138.213930] sp : ffff800080f13ab0
    [  138.213932] x29: ffff800080f13ab0 x28: ffff800080f22a00 x27: 0000000000000000
    [  138.213943] x26: 0000000000000071 x25: ffff800080d48028 x24: ffff800080f22f70
    [  138.213953] x23: ffff00000009ce70 x22: ffff800080065568 x21: 0000000000000000
    [  138.213963] x20: 0000000000000003 x19: 00000000000000c0 x18: fffffffffffe90d8
    [  138.213973] x17: ffff7fffff20d000 x16: ffff00007ff75040 x15: 00000f4240000000
    [  138.213983] x14: 0000000000030d40 x13: 0000000000000008 x12: 0000000000000000
    [  138.213992] x11: 0000000000000000 x10: 0000000000000000 x9 : ffff800080f1be68
    [  138.214002] x8 : 0000000000000000 x7 : 0000000000000010 x6 : ffff00007ff7aa10
    [  138.214011] x5 : ffff800080d6da30 x4 : 0000000000050000 x3 : ffff00007ff7aa00
    [  138.214022] x2 : ffff800080d6da00 x1 : ffff00007ff7aa18 x0 : ffff00000009ce70
    [  138.214032] Call trace:
    [  138.214034]  0xffff800080a29700
    [  138.214037]  0xffff800080068c8c
    [  138.214040]  0xffff800080069024
    [  138.214043]  0xffff80008003d920
    [  138.214046]  0xffff80008003e0e8
    [  138.214049]  0xffff80008003e43c
    [  138.214052]  0xffff800080a1b9b4
    [  138.214055]  0xffff800080a1d038
    [  138.214058]  0xffff80008001126c
    [  138.214061]  0xffff800080065568
    [  138.214064]  0xffff800080a1f86c
    [  138.214066]  0xffff800080a1ff54
    [  138.214070]  0xffff8000800769a0
    [  138.214073]  0xffff800080076b7c
    [  138.214076]  0xffff800080a1e7b0
    [  138.214079]  0xffff800080ce0bcc
    [  138.214082]  0xffff800080ce7d1c
    [  138.214088] Code: d37c0425 910020c1 8b050045 f868d928 (f82868a6)
    [  138.214092] ---[ end trace 0000000000000000 ]---
    [  138.214097] Kernel panic - not syncing: Attempted to kill the idle task!
    [  138.214102] SMP: stopping secondary CPUs
    [  138.214114] Kernel Offset: disabled
    [  138.214116] CPU features: 0x00,00000080,00000000,4200400b
    [  138.214122] Memory Limit: none
    [  139.373469] ---[ end Kernel panic - not syncing: Attempted to kill the idle task! ]---

    The only noticeable difference is the following message from U-Boot:

    Failed to probe am65_cpsw_nuss driver
    Failed to probe prueth driver
    Net: No ethernet found.

    This indicates that the changes have had the expected effect on U-Boot.

    For reference, here are my current versions of k3-am642-evm.dts and k3-am642-evm-u-boot.dtsi:

    k3-am642-evm.dts:

    // SPDX-License-Identifier: GPL-2.0-only OR MIT
    /*
     * Copyright (C) 2020-2024 Texas Instruments Incorporated - https://www.ti.com/
     */
    
    /dts-v1/;
    
    #include <dt-bindings/phy/phy.h>
    #include <dt-bindings/leds/common.h>
    #include <dt-bindings/gpio/gpio.h>
    #include <dt-bindings/net/ti-dp83867.h>
    #include "k3-am642.dtsi"
    
    #include "k3-serdes.h"
    #include "k3-timesync-router.h"
    
    / {
    	compatible = "ti,am642-evm", "ti,am642";
    	model = "Texas Instruments AM642 EVM";
    
    	chosen {
    		stdout-path = &main_uart0;
    	};
    
    	aliases {
    		serial0 = &mcu_uart0;
    		serial1 = &main_uart1;
    		serial2 = &main_uart0;
    		serial3 = &main_uart3;
    		i2c0 = &main_i2c0;
    		i2c1 = &main_i2c1;
    		mmc0 = &sdhci0;
    		mmc1 = &sdhci1;
    		ethernet0 = &cpsw_port1;
    		ethernet1 = &cpsw_port2;
    		ethernet2 = &icssg1_emac0;
    	};
    
    	memory@80000000 {
    		bootph-all;
    		device_type = "memory";
    		/* 2G RAM */
    		reg = <0x00000000 0x80000000 0x00000000 0x80000000>;
    	};
    
    	reserved-memory {
    		#address-cells = <2>;
    		#size-cells = <2>;
    		ranges;
    
    		secure_ddr: optee@9e800000 {
    			reg = <0x00 0x9e800000 0x00 0x01800000>; /* for OP-TEE */
    			alignment = <0x1000>;
    			no-map;
    		};
    
    		main_r5fss0_core0_dma_memory_region: r5f-dma-memory@a0000000 {
    			compatible = "shared-dma-pool";
    			reg = <0x00 0xa0000000 0x00 0x100000>;
    			no-map;
    		};
    
    		main_r5fss0_core0_memory_region: r5f-memory@a0100000 {
    			compatible = "shared-dma-pool";
    			reg = <0x00 0xa0100000 0x00 0xf00000>;
    			no-map;
    		};
    
    		main_r5fss0_core1_dma_memory_region: r5f-dma-memory@a1000000 {
    			compatible = "shared-dma-pool";
    			reg = <0x00 0xa1000000 0x00 0x100000>;
    			no-map;
    		};
    
    		main_r5fss0_core1_memory_region: r5f-memory@a1100000 {
    			compatible = "shared-dma-pool";
    			reg = <0x00 0xa1100000 0x00 0xf00000>;
    			no-map;
    		};
    
    		main_r5fss1_core0_dma_memory_region: r5f-dma-memory@a2000000 {
    			compatible = "shared-dma-pool";
    			reg = <0x00 0xa2000000 0x00 0x100000>;
    			no-map;
    		};
    
    		main_r5fss1_core0_memory_region: r5f-memory@a2100000 {
    			compatible = "shared-dma-pool";
    			reg = <0x00 0xa2100000 0x00 0xf00000>;
    			no-map;
    		};
    
    		main_r5fss1_core1_dma_memory_region: r5f-dma-memory@a3000000 {
    			compatible = "shared-dma-pool";
    			reg = <0x00 0xa3000000 0x00 0x100000>;
    			no-map;
    		};
    
    		main_r5fss1_core1_memory_region: r5f-memory@a3100000 {
    			compatible = "shared-dma-pool";
    			reg = <0x00 0xa3100000 0x00 0xf00000>;
    			no-map;
    		};
    
    		mcu_m4fss_dma_memory_region: m4f-dma-memory@a4000000 {
    			compatible = "shared-dma-pool";
    			reg = <0x00 0xa4000000 0x00 0x100000>;
    			no-map;
    		};
    
    		mcu_m4fss_memory_region: m4f-memory@a4100000 {
    			compatible = "shared-dma-pool";
    			reg = <0x00 0xa4100000 0x00 0xf00000>;
    			no-map;
    		};
    
    		rtos_ipc_memory_region: ipc-memories@a5000000 {
    			reg = <0x00 0xa5000000 0x00 0x00800000>;
    			alignment = <0x1000>;
    			no-map;
    		};
    	};
    
    	evm_12v0: regulator-0 {
    		/* main DC jack */
    		bootph-all;
    		compatible = "regulator-fixed";
    		regulator-name = "evm_12v0";
    		regulator-min-microvolt = <12000000>;
    		regulator-max-microvolt = <12000000>;
    		regulator-always-on;
    		regulator-boot-on;
    	};
    
    	vsys_5v0: regulator-1 {
    		/* output of LM5140 */
    		compatible = "regulator-fixed";
    		regulator-name = "vsys_5v0";
    		regulator-min-microvolt = <5000000>;
    		regulator-max-microvolt = <5000000>;
    		vin-supply = <&evm_12v0>;
    		regulator-always-on;
    		regulator-boot-on;
    	};
    
    	vsys_3v3: regulator-2 {
    		/* output of LM5140 */
    		bootph-all;
    		compatible = "regulator-fixed";
    		regulator-name = "vsys_3v3";
    		regulator-min-microvolt = <3300000>;
    		regulator-max-microvolt = <3300000>;
    		vin-supply = <&evm_12v0>;
    		regulator-always-on;
    		regulator-boot-on;
    	};
    
    	vdd_mmc1: regulator-3 {
    		/* TPS2051BD */
    		bootph-all;
    		compatible = "regulator-fixed";
    		regulator-name = "vdd_mmc1";
    		regulator-min-microvolt = <3300000>;
    		regulator-max-microvolt = <3300000>;
    		regulator-boot-on;
    		enable-active-high;
    		vin-supply = <&vsys_3v3>;
    		gpio = <&exp1 6 GPIO_ACTIVE_HIGH>;
    	};
    
    	vddb: regulator-4 {
    		compatible = "regulator-fixed";
    		regulator-name = "vddb_3v3_display";
    		regulator-min-microvolt = <3300000>;
    		regulator-max-microvolt = <3300000>;
    		vin-supply = <&vsys_3v3>;
    		regulator-always-on;
    		regulator-boot-on;
    	};
    
    	vtt_supply: regulator-5 {
    		bootph-all;
    		compatible = "regulator-fixed";
    		regulator-name = "vtt";
    		pinctrl-names = "default";
    		pinctrl-0 = <&ddr_vtt_pins_default>;
    		regulator-min-microvolt = <3300000>;
    		regulator-max-microvolt = <3300000>;
    		gpio = <&main_gpio0 12 GPIO_ACTIVE_HIGH>;
    		vin-supply = <&vsys_3v3>;
    		enable-active-high;
    		regulator-always-on;
    		regulator-boot-on;
    	};
    
    	leds {
    		compatible = "gpio-leds";
    
    		led-0 {
    			label = "am64-evm:red:heartbeat";
    			gpios = <&exp1 16 GPIO_ACTIVE_HIGH>;
    			linux,default-trigger = "heartbeat";
    			function = LED_FUNCTION_HEARTBEAT;
    			default-state = "off";
    		};
    	};
    
    	mdio_mux: mux-controller {
    		compatible = "gpio-mux";
    		#mux-control-cells = <0>;
    
    		mux-gpios = <&exp1 12 GPIO_ACTIVE_HIGH>;
    	};
    
    	mdio_mux_1: mdio-mux-1 {
    		compatible = "mdio-mux-multiplexer";
    		mux-controls = <&mdio_mux>;
    		mdio-parent-bus = <&cpsw3g_mdio>;
    		#address-cells = <1>;
    		#size-cells = <0>;
    
    		mdio@1 {
    			reg = <0x1>;
    			#address-cells = <1>;
    			#size-cells = <0>;
    
    			cpsw3g_phy3: ethernet-phy@3 {
    				reg = <3>;
    			};
    		};
    	};
    
    	transceiver1: can-phy0 {
    		compatible = "ti,tcan1042";
    		#phy-cells = <0>;
    		max-bitrate = <5000000>;
    		standby-gpios = <&exp1 8 GPIO_ACTIVE_HIGH>;
    	};
    
    	transceiver2: can-phy1 {
    		compatible = "ti,tcan1042";
    		#phy-cells = <0>;
    		max-bitrate = <5000000>;
    		standby-gpios = <&exp1 9 GPIO_ACTIVE_HIGH>;
    	};
    
    	icssg1_eth: icssg1-eth {
    		compatible = "ti,am642-icssg-prueth";
    		pinctrl-names = "default";
    		pinctrl-0 = <&icssg1_rgmii1_pins_default>;
    		sram = <&oc_sram>;
    		ti,prus = <&pru1_0>, <&rtu1_0>, <&tx_pru1_0>, <&pru1_1>, <&rtu1_1>, <&tx_pru1_1>;
    		firmware-name = "ti-pruss/am64x-sr2-pru0-prueth-fw.elf",
    				"ti-pruss/am64x-sr2-rtu0-prueth-fw.elf",
    				"ti-pruss/am64x-sr2-txpru0-prueth-fw.elf",
    				"ti-pruss/am64x-sr2-pru1-prueth-fw.elf",
    				"ti-pruss/am64x-sr2-rtu1-prueth-fw.elf",
    				"ti-pruss/am64x-sr2-txpru1-prueth-fw.elf";
    
    		ti,pruss-gp-mux-sel = <2>,	/* MII mode */
    				      <2>,
    				      <2>,
    				      <2>,	/* MII mode */
    				      <2>,
    				      <2>;
    		ti,mii-g-rt = <&icssg1_mii_g_rt>;
    		ti,mii-rt = <&icssg1_mii_rt>;
    		ti,iep = <&icssg1_iep0>,  <&icssg1_iep1>;
    		ti,pa-stats = <&icssg1_pa_stats>;
    		interrupt-parent = <&icssg1_intc>;
    		interrupts = <24 0 2>, <25 1 3>;
    		interrupt-names = "tx_ts0", "tx_ts1";
    		dmas = <&main_pktdma 0xc200 15>, /* egress slice 0 */
    		       <&main_pktdma 0xc201 15>, /* egress slice 0 */
    		       <&main_pktdma 0xc202 15>, /* egress slice 0 */
    		       <&main_pktdma 0xc203 15>, /* egress slice 0 */
    		       <&main_pktdma 0xc204 15>, /* egress slice 1 */
    		       <&main_pktdma 0xc205 15>, /* egress slice 1 */
    		       <&main_pktdma 0xc206 15>, /* egress slice 1 */
    		       <&main_pktdma 0xc207 15>, /* egress slice 1 */
    		       <&main_pktdma 0x4200 15>, /* ingress slice 0 */
    		       <&main_pktdma 0x4201 15>; /* ingress slice 1 */
    		dma-names = "tx0-0", "tx0-1", "tx0-2", "tx0-3",
    			    "tx1-0", "tx1-1", "tx1-2", "tx1-3",
    			    "rx0", "rx1";
    
    		ethernet-ports {
    			#address-cells = <1>;
    			#size-cells = <0>;
    			icssg1_emac0: port@0 {
    				reg = <0>;
    				phy-handle = <&icssg1_phy1>;
    				phy-mode = "rgmii-id";
    				/* Filled in by bootloader */
    				local-mac-address = [00 00 00 00 00 00];
    			};
    			icssg1_emac1: port@1 {
    				reg = <1>;
    				/* Filled in by bootloader */
    				local-mac-address = [00 00 00 00 00 00];
    				status = "disabled";
    			};
    		};
    	};
    };
    
    &main_pmx0 {
    	main_mmc1_pins_default: main-mmc1-default-pins {
    		pinctrl-single,pins = <
    			AM64X_IOPAD(0x0294, PIN_INPUT_PULLUP, 0) /* (J19) MMC1_CMD */
    			AM64X_IOPAD(0x028c, PIN_INPUT_PULLDOWN, 0) /* (L20) MMC1_CLK */
    			AM64X_IOPAD(0x0288, PIN_INPUT_PULLUP, 0) /* (K21) MMC1_DAT0 */
    			AM64X_IOPAD(0x0284, PIN_INPUT_PULLUP, 0) /* (L21) MMC1_DAT1 */
    			AM64X_IOPAD(0x0280, PIN_INPUT_PULLUP, 0) /* (K19) MMC1_DAT2 */
    			AM64X_IOPAD(0x027c, PIN_INPUT_PULLUP, 0) /* (K18) MMC1_DAT3 */
    			AM64X_IOPAD(0x0298, PIN_INPUT_PULLUP, 0) /* (D19) MMC1_SDCD */
    			AM64X_IOPAD(0x029c, PIN_INPUT, 0) /* (C20) MMC1_SDWP */
    			AM64X_IOPAD(0x0290, PIN_INPUT, 0) /* MMC1_CLKLB */
    		>;
    	};
    
    	main_uart1_pins_default: main-uart1-default-pins {
    		pinctrl-single,pins = <
    			AM64X_IOPAD(0x0248, PIN_INPUT, 0)		/* (D16) UART1_CTSn */
    			AM64X_IOPAD(0x024c, PIN_OUTPUT, 0)		/* (E16) UART1_RTSn */
    			AM64X_IOPAD(0x0240, PIN_INPUT, 0)		/* (E15) UART1_RXD */
    			AM64X_IOPAD(0x0244, PIN_OUTPUT, 0)		/* (E14) UART1_TXD */
    		>;
    	};
    
    	main_uart0_pins_default: main-uart0-default-pins {
    		bootph-all;
    		pinctrl-single,pins = <
    			AM64X_IOPAD(0x0238, PIN_INPUT, 0) /* (B16) UART0_CTSn */
    			AM64X_IOPAD(0x023c, PIN_OUTPUT, 0) /* (A16) UART0_RTSn */
    			AM64X_IOPAD(0x0230, PIN_INPUT, 0) /* (D15) UART0_RXD */
    			AM64X_IOPAD(0x0234, PIN_OUTPUT, 0) /* (C16) UART0_TXD */
    		>;
    	};
    
    	main_spi0_pins_default: main-spi0-default-pins {
    		pinctrl-single,pins = <
    			AM64X_IOPAD(0x0210, PIN_INPUT, 0) /* (D13) SPI0_CLK */
    			AM64X_IOPAD(0x0208, PIN_OUTPUT, 0) /* (D12) SPI0_CS0 */
    			AM64X_IOPAD(0x0214, PIN_OUTPUT, 0) /* (A13) SPI0_D0 */
    			AM64X_IOPAD(0x0218, PIN_INPUT, 0) /* (A14) SPI0_D1 */
    		>;
    	};
    
    	main_i2c0_pins_default: main-i2c0-default-pins {
    		bootph-all;
    		pinctrl-single,pins = <
    			AM64X_IOPAD(0x0260, PIN_INPUT_PULLUP, 0) /* (A18) I2C0_SCL */
    			AM64X_IOPAD(0x0264, PIN_INPUT_PULLUP, 0) /* (B18) I2C0_SDA */
    		>;
    	};
    
    	main_i2c1_pins_default: main-i2c1-default-pins {
    		bootph-all;
    		pinctrl-single,pins = <
    			AM64X_IOPAD(0x0268, PIN_INPUT_PULLUP, 0) /* (C18) I2C1_SCL */
    			AM64X_IOPAD(0x026c, PIN_INPUT_PULLUP, 0) /* (B19) I2C1_SDA */
    		>;
    	};
    
    	mdio1_pins_default: mdio1-default-pins {
    		bootph-all;
    		pinctrl-single,pins = <
    			AM64X_IOPAD(0x01fc, PIN_OUTPUT, 4) /* (R2) PRG0_PRU1_GPO19.MDIO0_MDC */
    			AM64X_IOPAD(0x01f8, PIN_INPUT, 4) /* (P5) PRG0_PRU1_GPO18.MDIO0_MDIO */
    		>;
    	};
    
    	rgmii1_pins_default: rgmii1-default-pins {
    		bootph-all;
    		pinctrl-single,pins = <
    			AM64X_IOPAD(0x01cc, PIN_INPUT, 4) /* (W5) PRG0_PRU1_GPO7.RGMII1_RD0 */
    			AM64X_IOPAD(0x01d4, PIN_INPUT, 4) /* (Y5) PRG0_PRU1_GPO9.RGMII1_RD1 */
    			AM64X_IOPAD(0x01d8, PIN_INPUT, 4) /* (V6) PRG0_PRU1_GPO10.RGMII1_RD2 */
    			AM64X_IOPAD(0x01f4, PIN_INPUT, 4) /* (V5) PRG0_PRU1_GPO17.RGMII1_RD3 */
    			AM64X_IOPAD(0x0188, PIN_INPUT, 4) /* (AA5) PRG0_PRU0_GPO10.RGMII1_RXC */
    			AM64X_IOPAD(0x0184, PIN_INPUT, 4) /* (W6) PRG0_PRU0_GPO9.RGMII1_RX_CTL */
    			AM64X_IOPAD(0x0124, PIN_OUTPUT, 4) /* (V15) PRG1_PRU1_GPO7.RGMII1_TD0 */
    			AM64X_IOPAD(0x012c, PIN_OUTPUT, 4) /* (V14) PRG1_PRU1_GPO9.RGMII1_TD1 */
    			AM64X_IOPAD(0x0130, PIN_OUTPUT, 4) /* (W14) PRG1_PRU1_GPO10.RGMII1_TD2 */
    			AM64X_IOPAD(0x014c, PIN_OUTPUT, 4) /* (AA14) PRG1_PRU1_GPO17.RGMII1_TD3 */
    			AM64X_IOPAD(0x00e0, PIN_OUTPUT, 4) /* (U14) PRG1_PRU0_GPO10.RGMII1_TXC */
    			AM64X_IOPAD(0x00dc, PIN_OUTPUT, 4) /* (U15) PRG1_PRU0_GPO9.RGMII1_TX_CTL */
    		>;
    	};
    
           rgmii2_pins_default: rgmii2-default-pins {
    		bootph-all;
    		pinctrl-single,pins = <
    			AM64X_IOPAD(0x0108, PIN_INPUT, 4) /* (W11) PRG1_PRU1_GPO0.RGMII2_RD0 */
    			AM64X_IOPAD(0x010c, PIN_INPUT, 4) /* (V11) PRG1_PRU1_GPO1.RGMII2_RD1 */
    			AM64X_IOPAD(0x0110, PIN_INPUT, 4) /* (AA12) PRG1_PRU1_GPO2.RGMII2_RD2 */
    			AM64X_IOPAD(0x0114, PIN_INPUT, 4) /* (Y12) PRG1_PRU1_GPO3.RGMII2_RD3 */
    			AM64X_IOPAD(0x0120, PIN_INPUT, 4) /* (U11) PRG1_PRU1_GPO6.RGMII2_RXC */
    			AM64X_IOPAD(0x0118, PIN_INPUT, 4) /* (W12) PRG1_PRU1_GPO4.RGMII2_RX_CTL */
    			AM64X_IOPAD(0x0134, PIN_OUTPUT, 4) /* (AA10) PRG1_PRU1_GPO11.RGMII2_TD0 */
    			AM64X_IOPAD(0x0138, PIN_OUTPUT, 4) /* (V10) PRG1_PRU1_GPO12.RGMII2_TD1 */
    			AM64X_IOPAD(0x013c, PIN_OUTPUT, 4) /* (U10) PRG1_PRU1_GPO13.RGMII2_TD2 */
    			AM64X_IOPAD(0x0140, PIN_OUTPUT, 4) /* (AA11) PRG1_PRU1_GPO14.RGMII2_TD3 */
    			AM64X_IOPAD(0x0148, PIN_OUTPUT, 4) /* (Y10) PRG1_PRU1_GPO16.RGMII2_TXC */
    			AM64X_IOPAD(0x0144, PIN_OUTPUT, 4) /* (Y11) PRG1_PRU1_GPO15.RGMII2_TX_CTL */
    		>;
    	};
    
    	main_usb0_pins_default: main-usb0-default-pins {
    		bootph-all;
    		pinctrl-single,pins = <
    			AM64X_IOPAD(0x02a8, PIN_OUTPUT, 0) /* (E19) USB0_DRVVBUS */
    		>;
    	};
    
    	ospi0_pins_default: ospi0-default-pins {
    		pinctrl-single,pins = <
    			AM64X_IOPAD(0x0000, PIN_OUTPUT, 0) /* (N20) OSPI0_CLK */
    			AM64X_IOPAD(0x002c, PIN_OUTPUT, 0) /* (L19) OSPI0_CSn0 */
    			AM64X_IOPAD(0x000c, PIN_INPUT, 0) /* (M19) OSPI0_D0 */
    			AM64X_IOPAD(0x0010, PIN_INPUT, 0) /* (M18) OSPI0_D1 */
    			AM64X_IOPAD(0x0014, PIN_INPUT, 0) /* (M20) OSPI0_D2 */
    			AM64X_IOPAD(0x0018, PIN_INPUT, 0) /* (M21) OSPI0_D3 */
    			AM64X_IOPAD(0x001c, PIN_INPUT, 0) /* (P21) OSPI0_D4 */
    			AM64X_IOPAD(0x0020, PIN_INPUT, 0) /* (P20) OSPI0_D5 */
    			AM64X_IOPAD(0x0024, PIN_INPUT, 0) /* (N18) OSPI0_D6 */
    			AM64X_IOPAD(0x0028, PIN_INPUT, 0) /* (M17) OSPI0_D7 */
    			AM64X_IOPAD(0x0008, PIN_INPUT, 0) /* (N19) OSPI0_DQS */
    		>;
    		bootph-all;
    	};
    
    	main_ecap0_pins_default: main-ecap0-default-pins {
    		pinctrl-single,pins = <
    			AM64X_IOPAD(0x0270, PIN_INPUT, 0) /* (D18) ECAP0_IN_APWM_OUT */
    		>;
    	};
    
    	main_mcan0_pins_default: main-mcan0-default-pins {
    		pinctrl-single,pins = <
    			AM64X_IOPAD(0x0254, PIN_INPUT, 0) /* (B17) MCAN0_RX */
    			AM64X_IOPAD(0x0250, PIN_OUTPUT, 0) /* (A17) MCAN0_TX */
    		>;
    	};
    
    	main_mcan1_pins_default: main-mcan1-default-pins {
    		pinctrl-single,pins = <
    			AM64X_IOPAD(0x025c, PIN_INPUT, 0) /* (D17) MCAN1_RX */
    			AM64X_IOPAD(0x0258, PIN_OUTPUT, 0) /* (C17) MCAN1_TX */
    		>;
    	};
    
    	ddr_vtt_pins_default: ddr-vtt-default-pins {
    		bootph-all;
    		pinctrl-single,pins = <
    			AM64X_IOPAD(0x0030, PIN_OUTPUT_PULLUP, 7) /* (L18) OSPI0_CSN1.GPIO0_12 */
    		>;
    	};
    
    	icssg1_mdio1_pins_default: icssg1-mdio1-default-pins {
    		pinctrl-single,pins = <
    			AM64X_IOPAD(0x015c, PIN_OUTPUT, 0) /* (Y6) PRG1_MDIO0_MDC */
    			AM64X_IOPAD(0x0158, PIN_INPUT, 0) /* (AA6) PRG1_MDIO0_MDIO */
    		>;
    	};
    
    	icssg1_rgmii1_pins_default: icssg1-rgmii1-default-pins {
    		pinctrl-single,pins = <
    			AM64X_IOPAD(0x00b8, PIN_INPUT, 2) /* (Y7) PRG1_PRU0_GPO0.PRG1_RGMII1_RD0 */
    			AM64X_IOPAD(0x00bc, PIN_INPUT, 2) /* (U8) PRG1_PRU0_GPO1.PRG1_RGMII1_RD1 */
    			AM64X_IOPAD(0x00c0, PIN_INPUT, 2) /* (W8) PRG1_PRU0_GPO2.PRG1_RGMII1_RD2 */
    			AM64X_IOPAD(0x00c4, PIN_INPUT, 2) /* (V8) PRG1_PRU0_GPO3.PRG1_RGMII1_RD3 */
    			AM64X_IOPAD(0x00d0, PIN_INPUT, 2) /* (AA7) PRG1_PRU0_GPO6.PRG1_RGMII1_RXC */
    			AM64X_IOPAD(0x00c8, PIN_INPUT, 2) /* (Y8) PRG1_PRU0_GPO4.PRG1_RGMII1_RX_CTL */
    			AM64X_IOPAD(0x00e4, PIN_INPUT, 2) /* (AA8) PRG1_PRU0_GPO11.PRG1_RGMII1_TD0 */
    			AM64X_IOPAD(0x00e8, PIN_INPUT, 2) /* (U9) PRG1_PRU0_GPO12.PRG1_RGMII1_TD1 */
    			AM64X_IOPAD(0x00ec, PIN_INPUT, 2) /* (W9) PRG1_PRU0_GPO13.PRG1_RGMII1_TD2 */
    			AM64X_IOPAD(0x00f0, PIN_INPUT, 2) /* (AA9) PRG1_PRU0_GPO14.PRG1_RGMII1_TD3 */
    			AM64X_IOPAD(0x00f8, PIN_INPUT, 2) /* (V9) PRG1_PRU0_GPO16.PRG1_RGMII1_TXC */
    			AM64X_IOPAD(0x00f4, PIN_INPUT, 2) /* (Y9) PRG1_PRU0_GPO15.PRG1_RGMII1_TX_CTL */
    		>;
    	};
    
    	icssg1_iep0_pins_default: icssg1-iep0-default-pins {
    		pinctrl-single,pins = <
    			AM64X_IOPAD(0x0104, PIN_OUTPUT, 2) /* (W7) PRG1_PRU0_GPO19.PRG1_IEP0_EDC_SYNC_OUT0 */
    		>;
    	};
    };
    
    &fss {
    	bootph-all;
    };
    
    &main_uart0 {
    	bootph-all;
    	status = "okay";
    	pinctrl-names = "default";
    	pinctrl-0 = <&main_uart0_pins_default>;
    };
    
    /* main_uart1 is reserved for firmware usage */
    &main_uart1 {
    	status = "reserved";
    	pinctrl-names = "default";
    	pinctrl-0 = <&main_uart1_pins_default>;
    };
    
    &main_i2c0 {
    	bootph-all;
    	status = "okay";
    	pinctrl-names = "default";
    	pinctrl-0 = <&main_i2c0_pins_default>;
    	clock-frequency = <400000>;
    
    	gpio@38 {
    		/* TCA9554 */
    		compatible = "nxp,pca9554";
    		reg = <0x38>;
    		gpio-controller;
    		#gpio-cells = <2>;
    		gpio-line-names = "HSE_DETECT";
    	};
    
    	eeprom@50 {
    		/* AT24CM01 */
    		compatible = "atmel,24c1024";
    		reg = <0x50>;
    	};
    };
    
    &main_i2c1 {
    	bootph-all;
    	status = "okay";
    	pinctrl-names = "default";
    	pinctrl-0 = <&main_i2c1_pins_default>;
    	clock-frequency = <400000>;
    
    	exp1: gpio@22 {
    		bootph-all;
    		compatible = "ti,tca6424";
    		reg = <0x22>;
    		gpio-controller;
    		#gpio-cells = <2>;
    		gpio-line-names = "GPIO_eMMC_RSTn", "CAN_MUX_SEL",
    				  "GPIO_CPSW1_RST", "GPIO_RGMII1_RST",
    				  "GPIO_RGMII2_RST", "GPIO_PCIe_RST_OUT",
    				  "MMC1_SD_EN", "FSI_FET_SEL",
    				  "MCAN0_STB_3V3", "MCAN1_STB_3V3",
    				  "CPSW_FET_SEL", "CPSW_FET2_SEL",
    				  "PRG1_RGMII2_FET_SEL", "TEST_GPIO2",
    				  "GPIO_OLED_RESETn", "VPP_LDO_EN",
    				  "TEST_LED1", "TP92", "TP90", "TP88",
    				  "TP87", "TP86", "TP89", "TP91";
    	};
    
    	/* osd9616p0899-10 */
    	display@3c {
    		compatible = "solomon,ssd1306fb-i2c";
    		reg = <0x3c>;
    		reset-gpios = <&exp1 14 GPIO_ACTIVE_LOW>;
    		vbat-supply = <&vddb>;
    		solomon,height = <16>;
    		solomon,width = <96>;
    		solomon,com-seq;
    		solomon,com-invdir;
    		solomon,page-offset = <0>;
    		solomon,prechargep1 = <2>;
    		solomon,prechargep2 = <13>;
    	};
    };
    
    &main_gpio0 {
    	bootph-all;
    };
    
    /* mcu_gpio0 and mcu_gpio_intr are reserved for mcu firmware usage */
    &mcu_gpio0 {
    	status = "reserved";
    };
    
    &mcu_gpio_intr {
    	status = "reserved";
    };
    
    &main_spi0 {
    	status = "okay";
    	pinctrl-names = "default";
    	pinctrl-0 = <&main_spi0_pins_default>;
    	ti,pindir-d0-out-d1-in;
    	eeprom@0 {
    		compatible = "microchip,93lc46b";
    		reg = <0>;
    		spi-max-frequency = <1000000>;
    		spi-cs-high;
    		data-size = <16>;
    	};
    };
    
    /* eMMC */
    &sdhci0 {
    	bootph-all;
    	status = "okay";
    	non-removable;
    	ti,driver-strength-ohm = <50>;
    	disable-wp;
    	bootph-all;
    };
    
    /* SD/MMC */
    &sdhci1 {
    	bootph-all;
    	status = "okay";
    	vmmc-supply = <&vdd_mmc1>;
    	pinctrl-names = "default";
    	pinctrl-0 = <&main_mmc1_pins_default>;
    	disable-wp;
    };
    
    &usbss0 {
    	bootph-all;
    	ti,vbus-divider;
    	ti,usb2-only;
    };
    
    &usb0 {
    	bootph-all;
    	dr_mode = "otg";
    	maximum-speed = "high-speed";
    	pinctrl-names = "default";
    	pinctrl-0 = <&main_usb0_pins_default>;
    };
    
    &cpsw3g {
    	bootph-all;
    	pinctrl-names = "default";
    	pinctrl-0 = <&rgmii1_pins_default>, <&rgmii2_pins_default>;
    	status = "okay";
    
    	/* Map HW8_TS_PUSH to GENF1 */
    	cpts@3d000 {
    		ti,pps = <7 1>;
    	};
    };
    
    &cpsw_port1 {
    	bootph-all;
    	phy-mode = "rgmii-rxid";
    	phy-handle = <&cpsw3g_phy0>;
    	status = "okay";
    };
    
    &cpsw_port2 {
    	phy-mode = "rgmii-rxid";
    	phy-handle = <&cpsw3g_phy3>;
    	status = "okay";
    };
    
    &cpsw3g_mdio {
    	bootph-all;
    	status = "okay";
    	pinctrl-names = "default";
    	pinctrl-0 = <&mdio1_pins_default>;
    
    	cpsw3g_phy0: ethernet-phy@0 {
    		bootph-all;
    		reg = <0>;
    		ti,rx-internal-delay = <DP83867_RGMIIDCTL_2_00_NS>;
    		ti,fifo-depth = <DP83867_PHYCR_FIFO_DEPTH_4_B_NIB>;
    	};
    };
    
    &tscadc0 {
    	/* ADC is reserved for R5 usage */
    	status = "reserved";
    
    	adc {
    		ti,adc-channels = <0 1 2 3 4 5 6 7>;
    	};
    };
    
    &ospi0 {
    	status = "okay";
    	pinctrl-names = "default";
    	pinctrl-0 = <&ospi0_pins_default>;
    	bootph-all;
    
    	flash@0 {
    		compatible = "jedec,spi-nor";
    		reg = <0x0>;
    		spi-tx-bus-width = <8>;
    		spi-rx-bus-width = <8>;
    		spi-max-frequency = <25000000>;
    		cdns,tshsl-ns = <60>;
    		cdns,tsd2d-ns = <60>;
    		cdns,tchsh-ns = <60>;
    		cdns,tslch-ns = <60>;
    		cdns,read-delay = <4>;
    		cdns,phy-mode;
    		bootph-all;
    
    		partitions {
    			compatible = "fixed-partitions";
    			#address-cells = <1>;
    			#size-cells = <1>;
    			bootph-all;
    
    			partition@0 {
    				label = "ospi.tiboot3";
    				reg = <0x0 0x100000>;
    			};
    
    			partition@100000 {
    				label = "ospi.tispl";
    				reg = <0x100000 0x200000>;
    			};
    
    			partition@300000 {
    				label = "ospi.u-boot";
    				reg = <0x300000 0x400000>;
    			};
    
    			partition@700000 {
    				label = "ospi.env";
    				reg = <0x700000 0x40000>;
    			};
    
    			partition@740000 {
    				label = "ospi.env.backup";
    				reg = <0x740000 0x40000>;
    			};
    
    			partition@800000 {
    				label = "ospi.rootfs";
    				reg = <0x800000 0x37c0000>;
    			};
    
    			partition@3fc0000 {
    				label = "ospi.phypattern";
    				reg = <0x3fc0000 0x40000>;
    				bootph-all;
    			};
    		};
    	};
    };
    
    &mailbox0_cluster2 {
    	status = "okay";
    
    	mbox_main_r5fss0_core0: mbox-main-r5fss0-core0 {
    		ti,mbox-rx = <0 0 2>;
    		ti,mbox-tx = <1 0 2>;
    	};
    
    	mbox_main_r5fss0_core1: mbox-main-r5fss0-core1 {
    		ti,mbox-rx = <2 0 2>;
    		ti,mbox-tx = <3 0 2>;
    	};
    };
    
    &mailbox0_cluster4 {
    	status = "okay";
    
    	mbox_main_r5fss1_core0: mbox-main-r5fss1-core0 {
    		ti,mbox-rx = <0 0 2>;
    		ti,mbox-tx = <1 0 2>;
    	};
    
    	mbox_main_r5fss1_core1: mbox-main-r5fss1-core1 {
    		ti,mbox-rx = <2 0 2>;
    		ti,mbox-tx = <3 0 2>;
    	};
    };
    
    &mailbox0_cluster6 {
    	status = "okay";
    
    	mbox_m4_0: mbox-m4-0 {
    		ti,mbox-rx = <0 0 2>;
    		ti,mbox-tx = <1 0 2>;
    	};
    };
    
    &main_r5fss0_core0 {
    	mboxes = <&mailbox0_cluster2 &mbox_main_r5fss0_core0>;
    	memory-region = <&main_r5fss0_core0_dma_memory_region>,
    			<&main_r5fss0_core0_memory_region>;
    };
    
    &main_r5fss0_core1 {
    	mboxes = <&mailbox0_cluster2 &mbox_main_r5fss0_core1>;
    	memory-region = <&main_r5fss0_core1_dma_memory_region>,
    			<&main_r5fss0_core1_memory_region>;
    };
    
    &main_r5fss1_core0 {
    	mboxes = <&mailbox0_cluster4 &mbox_main_r5fss1_core0>;
    	memory-region = <&main_r5fss1_core0_dma_memory_region>,
    			<&main_r5fss1_core0_memory_region>;
    };
    
    &main_r5fss1_core1 {
    	mboxes = <&mailbox0_cluster4 &mbox_main_r5fss1_core1>;
    	memory-region = <&main_r5fss1_core1_dma_memory_region>,
    			<&main_r5fss1_core1_memory_region>;
    };
    
    &mcu_m4fss {
    	mboxes = <&mailbox0_cluster6 &mbox_m4_0>;
    	memory-region = <&mcu_m4fss_dma_memory_region>,
    			<&mcu_m4fss_memory_region>;
    	status = "okay";
    };
    
    /* main domain timers 8 to 11 are used by TI MCU FW */
    &main_timer8 {
    	status = "reserved";
    };
    
    &main_timer9 {
    	status = "reserved";
    };
    
    &main_timer10 {
    	status = "reserved";
    };
    
    &main_timer11 {
    	status = "reserved";
    };
    
    &serdes_ln_ctrl {
    	idle-states = <AM64_SERDES0_LANE0_PCIE0>;
    };
    
    &serdes0 {
    	serdes0_pcie_link: phy@0 {
    		reg = <0>;
    		cdns,num-lanes = <1>;
    		#phy-cells = <0>;
    		cdns,phy-type = <PHY_TYPE_PCIE>;
    		resets = <&serdes_wiz0 1>;
    	};
    };
    
    &pcie0_rc {
    	status = "okay";
    	reset-gpios = <&exp1 5 GPIO_ACTIVE_HIGH>;
    	phys = <&serdes0_pcie_link>;
    	phy-names = "pcie-phy";
    	num-lanes = <1>;
    };
    
    &ecap0 {
    	status = "okay";
    	/* PWM is available on Pin 1 of header J12 */
    	pinctrl-names = "default";
    	pinctrl-0 = <&main_ecap0_pins_default>;
    };
    
    &main_mcan0 {
    	status = "okay";
    	pinctrl-names = "default";
    	pinctrl-0 = <&main_mcan0_pins_default>;
    	phys = <&transceiver1>;
    };
    
    &main_mcan1 {
    	status = "okay";
    	pinctrl-names = "default";
    	pinctrl-0 = <&main_mcan1_pins_default>;
    	phys = <&transceiver2>;
    };
    
    &icssg1_mdio {
    	status = "okay";
    	pinctrl-names = "default";
    	pinctrl-0 = <&icssg1_mdio1_pins_default>;
    
    	icssg1_phy1: ethernet-phy@f {
    		reg = <0xf>;
    		tx-internal-delay-ps = <250>;
    		rx-internal-delay-ps = <2000>;
    	};
    };
    
    &gpmc0 {
    	ranges = <0 0 0x00 0x51000000 0x01000000>; /* CS0 space. Min partition = 16MB */
    };
    
    &icssg1_iep0 {
    	pinctrl-names = "default";
    	pinctrl-0 = <&icssg1_iep0_pins_default>;
    };
    
    &timesync_router {
    	/* Use Time Sync Router to map GENF1 input to HW8_TS_PUSH output. */
    	mux-reg-masks-state = <
    		/* pps [cpts genf1] in22 -> out37 [cpts hw8_push] */
    		K3_TS_OFFSET(37, 0x0001ffff, 22)
    		/* iep-pps [iep sync_out0] in29 -> out23 [navss cpts hw8_push] */
    		K3_TS_OFFSET(23, 0x0001ffff, 29)
    		>;
    	status = "okay";
    };
    
    &main_cpts0 {
    	/*
    	 * Use HW8_TS_PUSH of NAVSS CPTS to generate events for IEP PPS
    	 * signal (PRGx_IEP0_EDC_SYNC_OUT0)
    	 */
    	ti,pps = <7 1>;
    };
    
    &icssg1_eth {
    	status = "reserved";
    };
    &cpsw3g {
    	status = "reserved";
    };
    

    k3-am642-evm-u-boot.dtsi:

    // SPDX-License-Identifier: GPL-2.0
    /*
     * Copyright (C) 2020-2021 Texas Instruments Incorporated - https://www.ti.com/
     */
    
    #include "k3-am64x-binman.dtsi"
    
    / {
    	chosen {
    		tick-timer = &main_timer0;
    	};
    };
    
    &main_timer0 {
    	clock-frequency = <200000000>;
    };
    
    &usb0 {
    	dr_mode="peripheral";
    };
    
    &main_mmc1_pins_default {
    	bootph-all;
    };
    
    &sdhci0 {
    	bootph-all;
    };
    
    &main_mmc1_pins_default {
    	bootph-all;
    };
    
    &inta_main_dmss {
    	bootph-all;
    };
    
    &main_bcdma {
    	reg = <0x00 0x485c0100 0x00 0x100>,
    	      <0x00 0x4c000000 0x00 0x20000>,
    	      <0x00 0x4a820000 0x00 0x20000>,
    	      <0x00 0x4aa40000 0x00 0x20000>,
    	      <0x00 0x4bc00000 0x00 0x100000>,
    	      <0x00 0x48600000 0x00 0x8000>,
    	      <0x00 0x484a4000 0x00 0x2000>,
    	      <0x00 0x484c2000 0x00 0x2000>;
    	reg-names = "gcfg", "bchanrt", "rchanrt", "tchanrt", "ringrt",
    		    "cfg", "tchan", "rchan";
    	bootph-all;
    };
    
    &main_pktdma {
    	reg = <0x00 0x485c0000 0x00 0x100>,
    	      <0x00 0x4a800000 0x00 0x20000>,
    	      <0x00 0x4aa00000 0x00 0x40000>,
    	      <0x00 0x4b800000 0x00 0x400000>,
    	      <0x00 0x485e0000 0x00 0x20000>,
    	      <0x00 0x484a0000 0x00 0x4000>,
    	      <0x00 0x484c0000 0x00 0x2000>,
    	      <0x00 0x48430000 0x00 0x4000>;
    	reg-names = "gcfg", "rchanrt", "tchanrt", "ringrt", "cfg",
    		    "tchan", "rchan", "rflow";
    	bootph-all;
    };
    
    &cpsw_port2 {
    	status = "disabled";
    };
    
    &ospi0_pins_default {
    	bootph-all;
    };
    
    &fss {
    	bootph-all;
    };
    
    &ospi0 {
    	bootph-all;
    
    	flash@0 {
    		bootph-all;
    	};
    };
    
    &icssg1_eth {
      status = "reserved";
    };
    
    &cpsw3g {
      status = "reserved";
    };

    In your first response to this thread you mentioned you verified the example is working as expected as a standalone R5 example. Have you had the chance to test the example with these changes along with Linux? If so were you able to get it working?

    Best regards

    Luca

  • Hi Luca,

    Our Linux experts are looking into this issue. Please give us 2 days to respond back on this issue.

    Regards,
    Teja.

  • Hi Teja,

    Regarding the kernel crashes, I noticed that the DDR memory region start address used in the LwIP examples is set to 0x80000000, which overlaps with Linux memory space and leads to a crash on the Linux side. Changing the address to 0xA0100000 resolved the crash. However, this change did not address the original issue.

    Upon further investigation, I came across the “Modifying Resource Allocation” section in the SDK Developer Guide: AM64x MCU+ SDK: Modifying resource allocation

    I saw in the Resource Partitioning Tool that the R5 cores share several resources, including the Ethernet ports, with the A53 cores. I suspect this resource sharing might be contributing to the issue. Following the guide, I was able to disable the default resource sharing with the A53 core. After completing the steps, two files were generated: boardcfg_blob.bin and boardcfg_blob_linux.bin.

    I’ve figured out how to apply boardcfg_blob.bin to the SBL used for the standalone R5 application and have successfully flashed the updated SBL to the target. However, I’m unsure how to apply these files on the Linux side.

    Could you please advise on how to proceed?

    Best regards,
    Luca

  • Hi Luca,

    If you are using SPL to boot flow, then updating the SBL image for resource config wouldn't help as the resource config will be part of the linux images being flashed. But in your, since Linux is still probing the ethernet peripherals, we have to find a method to disable them from uboot level itself. 

    Can you please make a slight modification to the earlier patch, and make the "reserved" status to "disabled"? Though the runtime behaviour is same for both of these, I learned that keeping them disabled is preferable for completely disabling the peripheral.

    Regards,
    Teja.

  • Hi Teja,

    thank you for the clarification! I’ve updated the patch to replace the "reserved" status with "disabled" but unfortunately the issue persists.

    Would you be able to suggest any further steps or adjustments?

    edit: From the logs it says "Failed to probe prueth driver" and "Failed to probe am65_cpsw_nuss driver". It seems u-boot tried to probe the driver but failed because they are disabled in the device tree. Might this probing attempt causing the issue? 

    Here are the logs for context:

    U-Boot 2025.01-gd2a72467939e-dirty (Aug 20 2025 - 17:45:07 +0200)
    
    SoC:   AM64X SR2.0 HS-FS
    Model: Texas Instruments AM642 EVM
    Board: AM64-EVM rev D
    DRAM:  2 GiB
    Core:  102 devices, 33 uclasses, devicetree: separate
    MMC:   mmc@fa10000: 0, mmc@fa00000: 1
    Loading Environment from nowhere... OK
    In:    serial@2800000
    Out:   serial@2800000
    Err:   serial@2800000
    Failed to probe am65_cpsw_nuss driver
    Failed to probe prueth driver
    Net:   No ethernet found.
    Hit any key to stop autoboot:  0

    Best regards
    Luca