PROCESSOR-SDK-AM64X: Issue running LwIP ICSSG example with Linux

Part Number: PROCESSOR-SDK-AM64X

Tool/software:

Hello TI E2E forum,

I am attempting to run the LwIP ICSSG example alongside Linux on AM64x.  
I followed the FAQ [FAQ] AM64X: How to combine R5F PRU_ICSSG Ethernet with Linux A53 cores step by step, using the provided example files (including device trees, linker.cmd, and rm-cfg.yaml) to configure and build the ENET LwIP ICSSG example, U-Boot and the Linux kernel device tree. I only modified example.syscfg to enable CCS debug logs.

When running the cat command to check the example's output I get the following output:   

root@am64xx-evm:~# cat /sys/kernel/debug/remoteproc/remoteproc0/trace0
[r5f0-0]     0.003477s : ==========================
[r5f0-0]     0.003789s :       ENET LWIP App
[r5f0-0]     0.005458s : ==========================
[r5f0-0]     0.008095s : Enabling clocks!
[r5f0-0]     0.010373s : EnetAppUtils_reduceCoreMacAllocation: Reduced Mac Address Allocation for CoreId:1 From 4 To 1
[r5f0-0]     0.017674s :
[r5f0-0]     0.020526s : 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 failed51558s :
[r5f0-0]     0.053227s : Assertion @ Line: 328 in syscfg/ti_enet_open_close.c: hEnet != NULL_PTR : failed !!!

The log suggests a resource conflict between the R5 and A53. The ethernet ports are not visible anymore on Linux when running the ifconfig command. U-Boot also fails to probe the ethernet ports as you can see from the logs:

U-Boot 2025.01-gd2a72467939e-dirty (Sep 03 2025 - 14:39:52 +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.


The ICSSG example runs correctly as a standalone R5F application.  

Environment:  
- MCU-PLUS-SDK-AM64X: Version 11.01.00.17  
- PROCESSOR-SDK-LINUX-RT-AM64X: Version 11.01.05.03  
- Image: tisdk-default-image-rt-am64xx-evm-11.01.05.03  

You can find the mentioned files below. Could you please confirm if my setup is correct or point out where the conflict may be?

Best regards
Luca

rm-cfg.yaml:

# SPDX-License-Identifier: GPL-2.0+
# Copyright (C) 2022-2023 Texas Instruments Incorporated - https://www.ti.com/
#
# Resource management configuration for AM64X
#

---

rm-cfg:
        rm_boardcfg:
                rev:
                        boardcfg_abi_maj: 0x0
                        boardcfg_abi_min: 0x1
                host_cfg:
                        subhdr:
                                magic: 0x4C41
                                size: 356
                        host_cfg_entries:
                                -  # 1
                                        host_id: 12
                                        allowed_atype: 0x2A
                                        allowed_qos: 0xAAAA
                                        allowed_orderid: 0xAAAAAAAA
                                        allowed_priority: 0xAAAA
                                        allowed_sched_priority: 0xAA
                                -  # 2
                                        host_id: 30
                                        allowed_atype: 0x2A
                                        allowed_qos: 0xAAAA
                                        allowed_orderid: 0xAAAAAAAA
                                        allowed_priority: 0xAAAA
                                        allowed_sched_priority: 0xAA
                                -  # 3
                                        host_id: 36
                                        allowed_atype: 0x2A
                                        allowed_qos: 0xAAAA
                                        allowed_orderid: 0xAAAAAAAA
                                        allowed_priority: 0xAAAA
                                        allowed_sched_priority: 0xAA
                                -  # 4
                                        host_id: 38
                                        allowed_atype: 0x2A
                                        allowed_qos: 0xAAAA
                                        allowed_orderid: 0xAAAAAAAA
                                        allowed_priority: 0xAAAA
                                        allowed_sched_priority: 0xAA
                                -  # 5
                                        host_id: 41
                                        allowed_atype: 0x2A
                                        allowed_qos: 0xAAAA
                                        allowed_orderid: 0xAAAAAAAA
                                        allowed_priority: 0xAAAA
                                        allowed_sched_priority: 0xAA
                                -  # 6
                                        host_id: 43
                                        allowed_atype: 0x2A
                                        allowed_qos: 0xAAAA
                                        allowed_orderid: 0xAAAAAAAA
                                        allowed_priority: 0xAAAA
                                        allowed_sched_priority: 0xAA
                                -  # 7
                                        host_id: 0
                                        allowed_atype: 0
                                        allowed_qos: 0
                                        allowed_orderid: 0
                                        allowed_priority: 0
                                        allowed_sched_priority: 0
                                -  # 8
                                        host_id: 0
                                        allowed_atype: 0
                                        allowed_qos: 0
                                        allowed_orderid: 0
                                        allowed_priority: 0
                                        allowed_sched_priority: 0
                                -  # 9
                                        host_id: 0
                                        allowed_atype: 0
                                        allowed_qos: 0
                                        allowed_orderid: 0
                                        allowed_priority: 0
                                        allowed_sched_priority: 0
                                -  # 10
                                        host_id: 0
                                        allowed_atype: 0
                                        allowed_qos: 0
                                        allowed_orderid: 0
                                        allowed_priority: 0
                                        allowed_sched_priority: 0
                                -  # 11
                                        host_id: 0
                                        allowed_atype: 0
                                        allowed_qos: 0
                                        allowed_orderid: 0
                                        allowed_priority: 0
                                        allowed_sched_priority: 0
                                -  # 12
                                        host_id: 0
                                        allowed_atype: 0
                                        allowed_qos: 0
                                        allowed_orderid: 0
                                        allowed_priority: 0
                                        allowed_sched_priority: 0
                                -  # 13
                                        host_id: 0
                                        allowed_atype: 0
                                        allowed_qos: 0
                                        allowed_orderid: 0
                                        allowed_priority: 0
                                        allowed_sched_priority: 0
                                -  # 14
                                        host_id: 0
                                        allowed_atype: 0
                                        allowed_qos: 0
                                        allowed_orderid: 0
                                        allowed_priority: 0
                                        allowed_sched_priority: 0
                                -  # 15
                                        host_id: 0
                                        allowed_atype: 0
                                        allowed_qos: 0
                                        allowed_orderid: 0
                                        allowed_priority: 0
                                        allowed_sched_priority: 0
                                -  # 16
                                        host_id: 0
                                        allowed_atype: 0
                                        allowed_qos: 0
                                        allowed_orderid: 0
                                        allowed_priority: 0
                                        allowed_sched_priority: 0
                                -  # 17
                                        host_id: 0
                                        allowed_atype: 0
                                        allowed_qos: 0
                                        allowed_orderid: 0
                                        allowed_priority: 0
                                        allowed_sched_priority: 0
                                -  # 18
                                        host_id: 0
                                        allowed_atype: 0
                                        allowed_qos: 0
                                        allowed_orderid: 0
                                        allowed_priority: 0
                                        allowed_sched_priority: 0
                                -  # 19
                                        host_id: 0
                                        allowed_atype: 0
                                        allowed_qos: 0
                                        allowed_orderid: 0
                                        allowed_priority: 0
                                        allowed_sched_priority: 0
                                -  # 20
                                        host_id: 0
                                        allowed_atype: 0
                                        allowed_qos: 0
                                        allowed_orderid: 0
                                        allowed_priority: 0
                                        allowed_sched_priority: 0
                                -  # 21
                                        host_id: 0
                                        allowed_atype: 0
                                        allowed_qos: 0
                                        allowed_orderid: 0
                                        allowed_priority: 0
                                        allowed_sched_priority: 0
                                -  # 22
                                        host_id: 0
                                        allowed_atype: 0
                                        allowed_qos: 0
                                        allowed_orderid: 0
                                        allowed_priority: 0
                                        allowed_sched_priority: 0
                                -  # 23
                                        host_id: 0
                                        allowed_atype: 0
                                        allowed_qos: 0
                                        allowed_orderid: 0
                                        allowed_priority: 0
                                        allowed_sched_priority: 0
                                -  # 24
                                        host_id: 0
                                        allowed_atype: 0
                                        allowed_qos: 0
                                        allowed_orderid: 0
                                        allowed_priority: 0
                                        allowed_sched_priority: 0
                                -  # 25
                                        host_id: 0
                                        allowed_atype: 0
                                        allowed_qos: 0
                                        allowed_orderid: 0
                                        allowed_priority: 0
                                        allowed_sched_priority: 0
                                -  # 26
                                        host_id: 0
                                        allowed_atype: 0
                                        allowed_qos: 0
                                        allowed_orderid: 0
                                        allowed_priority: 0
                                        allowed_sched_priority: 0
                                -  # 27
                                        host_id: 0
                                        allowed_atype: 0
                                        allowed_qos: 0
                                        allowed_orderid: 0
                                        allowed_priority: 0
                                        allowed_sched_priority: 0
                                -  # 28
                                        host_id: 0
                                        allowed_atype: 0
                                        allowed_qos: 0
                                        allowed_orderid: 0
                                        allowed_priority: 0
                                        allowed_sched_priority: 0
                                -  # 29
                                        host_id: 0
                                        allowed_atype: 0
                                        allowed_qos: 0
                                        allowed_orderid: 0
                                        allowed_priority: 0
                                        allowed_sched_priority: 0
                                -  # 30
                                        host_id: 0
                                        allowed_atype: 0
                                        allowed_qos: 0
                                        allowed_orderid: 0
                                        allowed_priority: 0
                                        allowed_sched_priority: 0
                                -  # 31
                                        host_id: 0
                                        allowed_atype: 0
                                        allowed_qos: 0
                                        allowed_orderid: 0
                                        allowed_priority: 0
                                        allowed_sched_priority: 0
                                -  # 32
                                        host_id: 0
                                        allowed_atype: 0
                                        allowed_qos: 0
                                        allowed_orderid: 0
                                        allowed_priority: 0
                                        allowed_sched_priority: 0
                resasg:
                        subhdr:
                                magic: 0x7B25
                                size: 8
                        resasg_entries_size: 1328
                        reserved: 0
        resasg_entries:
                -
                        start_resource: 0
                        num_resource: 16
                        type: 64
                        host_id: 12
                        reserved: 0
                -
                        start_resource: 16
                        num_resource: 4
                        type: 64
                        host_id: 35
                        reserved: 0
                -
                        start_resource: 16
                        num_resource: 4
                        type: 64
                        host_id: 36
                        reserved: 0
                -
                        start_resource: 20
                        num_resource: 4
                        type: 64
                        host_id: 38
                        reserved: 0
                -
                        start_resource: 24
                        num_resource: 4
                        type: 64
                        host_id: 41
                        reserved: 0
                -
                        start_resource: 28
                        num_resource: 4
                        type: 64
                        host_id: 43
                        reserved: 0
                -
                        start_resource: 32
                        num_resource: 8
                        type: 64
                        host_id: 128
                        reserved: 0
                -
                        start_resource: 0
                        num_resource: 12
                        type: 192
                        host_id: 12
                        reserved: 0
                -
                        start_resource: 12
                        num_resource: 2
                        type: 192
                        host_id: 41
                        reserved: 0
                -
                        start_resource: 14
                        num_resource: 2
                        type: 192
                        host_id: 43
                        reserved: 0
                -
                        start_resource: 0
                        num_resource: 4
                        type: 320
                        host_id: 12
                        reserved: 0
                -
                        start_resource: 4
                        num_resource: 4
                        type: 320
                        host_id: 30
                        reserved: 0
                -
                        start_resource: 0
                        num_resource: 41
                        type: 384
                        host_id: 128
                        reserved: 0
                -
                        start_resource: 50176
                        num_resource: 136
                        type: 1666
                        host_id: 128
                        reserved: 0
                -
                        start_resource: 0
                        num_resource: 1
                        type: 1667
                        host_id: 128
                        reserved: 0
                -
                        start_resource: 0
                        num_resource: 12
                        type: 1677
                        host_id: 12
                        reserved: 0
                -
                        start_resource: 12
                        num_resource: 6
                        type: 1677
                        host_id: 35
                        reserved: 0
                -
                        start_resource: 12
                        num_resource: 6
                        type: 1677
                        host_id: 36
                        reserved: 0
                -
                        start_resource: 18
                        num_resource: 2
                        type: 1677
                        host_id: 38
                        reserved: 0
                -
                        start_resource: 20
                        num_resource: 4
                        type: 1677
                        host_id: 41
                        reserved: 0
                -
                        start_resource: 24
                        num_resource: 2
                        type: 1677
                        host_id: 43
                        reserved: 0
                -
                        start_resource: 26
                        num_resource: 1
                        type: 1677
                        host_id: 30
                        reserved: 0
                -
                        start_resource: 27
                        num_resource: 1
                        type: 1677
                        host_id: 128
                        reserved: 0
                -
                        start_resource: 48
                        num_resource: 6
                        type: 1678
                        host_id: 12
                        reserved: 0
                -
                        start_resource: 54
                        num_resource: 6
                        type: 1678
                        host_id: 35
                        reserved: 0
                -
                        start_resource: 54
                        num_resource: 6
                        type: 1678
                        host_id: 36
                        reserved: 0
                -
                        start_resource: 60
                        num_resource: 2
                        type: 1678
                        host_id: 38
                        reserved: 0
                -
                        start_resource: 62
                        num_resource: 4
                        type: 1678
                        host_id: 41
                        reserved: 0
                -
                        start_resource: 66
                        num_resource: 2
                        type: 1678
                        host_id: 43
                        reserved: 0
                -
                        start_resource: 28
                        num_resource: 6
                        type: 1679
                        host_id: 12
                        reserved: 0
                -
                        start_resource: 34
                        num_resource: 6
                        type: 1679
                        host_id: 35
                        reserved: 0
                -
                        start_resource: 34
                        num_resource: 6
                        type: 1679
                        host_id: 36
                        reserved: 0
                -
                        start_resource: 40
                        num_resource: 2
                        type: 1679
                        host_id: 38
                        reserved: 0
                -
                        start_resource: 42
                        num_resource: 4
                        type: 1679
                        host_id: 41
                        reserved: 0
                -
                        start_resource: 46
                        num_resource: 2
                        type: 1679
                        host_id: 43
                        reserved: 0
                -
                        start_resource: 0
                        num_resource: 12
                        type: 1696
                        host_id: 12
                        reserved: 0
                -
                        start_resource: 12
                        num_resource: 6
                        type: 1696
                        host_id: 35
                        reserved: 0
                -
                        start_resource: 12
                        num_resource: 6
                        type: 1696
                        host_id: 36
                        reserved: 0
                -
                        start_resource: 18
                        num_resource: 2
                        type: 1696
                        host_id: 38
                        reserved: 0
                -
                        start_resource: 20
                        num_resource: 4
                        type: 1696
                        host_id: 41
                        reserved: 0
                -
                        start_resource: 24
                        num_resource: 2
                        type: 1696
                        host_id: 43
                        reserved: 0
                -
                        start_resource: 26
                        num_resource: 1
                        type: 1696
                        host_id: 30
                        reserved: 0
                -
                        start_resource: 27
                        num_resource: 1
                        type: 1696
                        host_id: 128
                        reserved: 0
                -
                        start_resource: 0
                        num_resource: 6
                        type: 1697
                        host_id: 12
                        reserved: 0
                -
                        start_resource: 6
                        num_resource: 6
                        type: 1697
                        host_id: 35
                        reserved: 0
                -
                        start_resource: 6
                        num_resource: 6
                        type: 1697
                        host_id: 36
                        reserved: 0
                -
                        start_resource: 12
                        num_resource: 2
                        type: 1697
                        host_id: 38
                        reserved: 0
                -
                        start_resource: 14
                        num_resource: 4
                        type: 1697
                        host_id: 41
                        reserved: 0
                -
                        start_resource: 18
                        num_resource: 2
                        type: 1697
                        host_id: 43
                        reserved: 0
                -
                        start_resource: 0
                        num_resource: 6
                        type: 1698
                        host_id: 12
                        reserved: 0
                -
                        start_resource: 6
                        num_resource: 6
                        type: 1698
                        host_id: 35
                        reserved: 0
                -
                        start_resource: 6
                        num_resource: 6
                        type: 1698
                        host_id: 36
                        reserved: 0
                -
                        start_resource: 12
                        num_resource: 2
                        type: 1698
                        host_id: 38
                        reserved: 0
                -
                        start_resource: 14
                        num_resource: 4
                        type: 1698
                        host_id: 41
                        reserved: 0
                -
                        start_resource: 18
                        num_resource: 2
                        type: 1698
                        host_id: 43
                        reserved: 0
                -
                        start_resource: 5
                        num_resource: 35
                        type: 1802
                        host_id: 12
                        reserved: 0
                -
                        start_resource: 44
                        num_resource: 14
                        type: 1802
                        host_id: 35
                        reserved: 0
                -
                        start_resource: 44
                        num_resource: 14
                        type: 1802
                        host_id: 36
                        reserved: 0
                -
                        start_resource: 58
                        num_resource: 14
                        type: 1802
                        host_id: 38
                        reserved: 0
                -
                        start_resource: 92
                        num_resource: 14
                        type: 1802
                        host_id: 41
                        reserved: 0
                -
                        start_resource: 106
                        num_resource: 14
                        type: 1802
                        host_id: 43
                        reserved: 0
                -
                        start_resource: 168
                        num_resource: 16
                        type: 1802
                        host_id: 30
                        reserved: 0
                -
                        start_resource: 16
                        num_resource: 512
                        type: 1805
                        host_id: 12
                        reserved: 0
                -
                        start_resource: 528
                        num_resource: 256
                        type: 1805
                        host_id: 35
                        reserved: 0
                -
                        start_resource: 528
                        num_resource: 256
                        type: 1805
                        host_id: 36
                        reserved: 0
                -
                        start_resource: 784
                        num_resource: 192
                        type: 1805
                        host_id: 38
                        reserved: 0
                -
                        start_resource: 976
                        num_resource: 256
                        type: 1805
                        host_id: 41
                        reserved: 0
                -
                        start_resource: 1232
                        num_resource: 192
                        type: 1805
                        host_id: 43
                        reserved: 0
                -
                        start_resource: 1424
                        num_resource: 96
                        type: 1805
                        host_id: 30
                        reserved: 0
                -
                        start_resource: 1520
                        num_resource: 16
                        type: 1805
                        host_id: 128
                        reserved: 0
                -
                        start_resource: 0
                        num_resource: 1024
                        type: 1807
                        host_id: 128
                        reserved: 0
                -
                        start_resource: 4096
                        num_resource: 42
                        type: 1808
                        host_id: 128
                        reserved: 0
                -
                        start_resource: 4608
                        num_resource: 112
                        type: 1809
                        host_id: 128
                        reserved: 0
                -
                        start_resource: 5120
                        num_resource: 29
                        type: 1810
                        host_id: 128
                        reserved: 0
                -
                        start_resource: 5632
                        num_resource: 176
                        type: 1811
                        host_id: 128
                        reserved: 0
                -
                        start_resource: 6144
                        num_resource: 176
                        type: 1812
                        host_id: 128
                        reserved: 0
                -
                        start_resource: 6656
                        num_resource: 176
                        type: 1813
                        host_id: 128
                        reserved: 0
                -
                        start_resource: 8192
                        num_resource: 28
                        type: 1814
                        host_id: 128
                        reserved: 0
                -
                        start_resource: 8704
                        num_resource: 28
                        type: 1815
                        host_id: 128
                        reserved: 0
                -
                        start_resource: 9216
                        num_resource: 28
                        type: 1816
                        host_id: 128
                        reserved: 0
                -
                        start_resource: 9728
                        num_resource: 20
                        type: 1817
                        host_id: 128
                        reserved: 0
                -
                        start_resource: 10240
                        num_resource: 20
                        type: 1818
                        host_id: 128
                        reserved: 0
                -
                        start_resource: 10752
                        num_resource: 20
                        type: 1819
                        host_id: 128
                        reserved: 0
                -
                        start_resource: 11264
                        num_resource: 20
                        type: 1820
                        host_id: 128
                        reserved: 0
                -
                        start_resource: 11776
                        num_resource: 20
                        type: 1821
                        host_id: 128
                        reserved: 0
                -
                        start_resource: 12288
                        num_resource: 20
                        type: 1822
                        host_id: 128
                        reserved: 0
                -
                        start_resource: 0
                        num_resource: 1
                        type: 1923
                        host_id: 128
                        reserved: 0
                -
                        start_resource: 0
                        num_resource: 4
                        type: 1936
                        host_id: 12
                        reserved: 0
                -
                        start_resource: 4
                        num_resource: 3
                        type: 1936
                        host_id: 35
                        reserved: 0
                -
                        start_resource: 4
                        num_resource: 3
                        type: 1936
                        host_id: 36
                        reserved: 0
                -
                        start_resource: 7
                        num_resource: 2
                        type: 1936
                        host_id: 38
                        reserved: 0
                -
                        start_resource: 9
                        num_resource: 4
                        type: 1936
                        host_id: 41
                        reserved: 0
                -
                        start_resource: 13
                        num_resource: 2
                        type: 1936
                        host_id: 43
                        reserved: 0
                -
                        start_resource: 15
                        num_resource: 1
                        type: 1936
                        host_id: 30
                        reserved: 0
                -
                        start_resource: 16
                        num_resource: 64
                        type: 1937
                        host_id: 12
                        reserved: 0
                -
                        start_resource: 16
                        num_resource: 64
                        type: 1937
                        host_id: 35
                        reserved: 0
                -
                        start_resource: 88
                        num_resource: 8
                        type: 1939
                        host_id: 12
                        reserved: 0
                -
                        start_resource: 96
                        num_resource: 8
                        type: 1940
                        host_id: 12
                        reserved: 0
                -
                        start_resource: 104
                        num_resource: 8
                        type: 1941
                        host_id: 35
                        reserved: 0
                -
                        start_resource: 104
                        num_resource: 8
                        type: 1941
                        host_id: 36
                        reserved: 0
                -
                        start_resource: 112
                        num_resource: 4
                        type: 1942
                        host_id: 12
                        reserved: 0
                -
                        start_resource: 116
                        num_resource: 3
                        type: 1942
                        host_id: 35
                        reserved: 0
                -
                        start_resource: 116
                        num_resource: 3
                        type: 1942
                        host_id: 36
                        reserved: 0
                -
                        start_resource: 119
                        num_resource: 2
                        type: 1942
                        host_id: 38
                        reserved: 0
                -
                        start_resource: 121
                        num_resource: 4
                        type: 1942
                        host_id: 41
                        reserved: 0
                -
                        start_resource: 125
                        num_resource: 2
                        type: 1942
                        host_id: 43
                        reserved: 0
                -
                        start_resource: 127
                        num_resource: 1
                        type: 1942
                        host_id: 30
                        reserved: 0
                -
                        start_resource: 128
                        num_resource: 16
                        type: 1943
                        host_id: 12
                        reserved: 0
                -
                        start_resource: 128
                        num_resource: 16
                        type: 1943
                        host_id: 35
                        reserved: 0
                -
                        start_resource: 144
                        num_resource: 8
                        type: 1945
                        host_id: 128
                        reserved: 0
                -
                        start_resource: 152
                        num_resource: 8
                        type: 1946
                        host_id: 12
                        reserved: 0
                -
                        start_resource: 152
                        num_resource: 8
                        type: 1947
                        host_id: 12
                        reserved: 0
                -
                        start_resource: 160
                        num_resource: 64
                        type: 1948
                        host_id: 12
                        reserved: 0
                -
                        start_resource: 224
                        num_resource: 64
                        type: 1949
                        host_id: 35
                        reserved: 0
                -
                        start_resource: 224
                        num_resource: 64
                        type: 1949
                        host_id: 36
                        reserved: 0
                -
                        start_resource: 0
                        num_resource: 4
                        type: 1955
                        host_id: 12
                        reserved: 0
                -
                        start_resource: 4
                        num_resource: 3
                        type: 1955
                        host_id: 35
                        reserved: 0
                -
                        start_resource: 4
                        num_resource: 3
                        type: 1955
                        host_id: 36
                        reserved: 0
                -
                        start_resource: 7
                        num_resource: 2
                        type: 1955
                        host_id: 38
                        reserved: 0
                -
                        start_resource: 9
                        num_resource: 4
                        type: 1955
                        host_id: 41
                        reserved: 0
                -
                        start_resource: 13
                        num_resource: 2
                        type: 1955
                        host_id: 43
                        reserved: 0
                -
                        start_resource: 15
                        num_resource: 1
                        type: 1955
                        host_id: 30
                        reserved: 0
                -
                        start_resource: 16
                        num_resource: 8
                        type: 1956
                        host_id: 12
                        reserved: 0
                -
                        start_resource: 16
                        num_resource: 8
                        type: 1956
                        host_id: 35
                        reserved: 0
                -
                        start_resource: 25
                        num_resource: 1
                        type: 1958
                        host_id: 12
                        reserved: 0
                -
                        start_resource: 26
                        num_resource: 8
                        type: 1959
                        host_id: 12
                        reserved: 0
                -
                        start_resource: 34
                        num_resource: 8
                        type: 1960
                        host_id: 35
                        reserved: 0
                -
                        start_resource: 34
                        num_resource: 8
                        type: 1960
                        host_id: 36
                        reserved: 0
                -
                        start_resource: 0
                        num_resource: 4
                        type: 1961
                        host_id: 12
                        reserved: 0
                -
                        start_resource: 4
                        num_resource: 3
                        type: 1961
                        host_id: 35
                        reserved: 0
                -
                        start_resource: 4
                        num_resource: 3
                        type: 1961
                        host_id: 36
                        reserved: 0
                -
                        start_resource: 7
                        num_resource: 2
                        type: 1961
                        host_id: 38
                        reserved: 0
                -
                        start_resource: 9
                        num_resource: 4
                        type: 1961
                        host_id: 41
                        reserved: 0
                -
                        start_resource: 13
                        num_resource: 2
                        type: 1961
                        host_id: 43
                        reserved: 0
                -
                        start_resource: 15
                        num_resource: 1
                        type: 1961
                        host_id: 30
                        reserved: 0
                -
                        start_resource: 0
                        num_resource: 4
                        type: 1962
                        host_id: 12
                        reserved: 0
                -
                        start_resource: 4
                        num_resource: 3
                        type: 1962
                        host_id: 35
                        reserved: 0
                -
                        start_resource: 4
                        num_resource: 3
                        type: 1962
                        host_id: 36
                        reserved: 0
                -
                        start_resource: 7
                        num_resource: 2
                        type: 1962
                        host_id: 38
                        reserved: 0
                -
                        start_resource: 9
                        num_resource: 4
                        type: 1962
                        host_id: 41
                        reserved: 0
                -
                        start_resource: 13
                        num_resource: 2
                        type: 1962
                        host_id: 43
                        reserved: 0
                -
                        start_resource: 15
                        num_resource: 1
                        type: 1962
                        host_id: 30
                        reserved: 0
                -
                        start_resource: 16
                        num_resource: 1
                        type: 1963
                        host_id: 12
                        reserved: 0
                -
                        start_resource: 16
                        num_resource: 1
                        type: 1963
                        host_id: 35
                        reserved: 0
                -
                        start_resource: 16
                        num_resource: 16
                        type: 1964
                        host_id: 12
                        reserved: 0
                -
                        start_resource: 16
                        num_resource: 16
                        type: 1964
                        host_id: 35
                        reserved: 0
                -
                        start_resource: 32
                        num_resource: 8
                        type: 1966
                        host_id: 128
                        reserved: 0
                -
                        start_resource: 32
                        num_resource: 8
                        type: 1968
                        host_id: 128
                        reserved: 0
                -
                        start_resource: 19
                        num_resource: 1
                        type: 1969
                        host_id: 12
                        reserved: 0
                -
                        start_resource: 40
                        num_resource: 8
                        type: 1970
                        host_id: 12
                        reserved: 0
                -
                        start_resource: 20
                        num_resource: 1
                        type: 1971
                        host_id: 12
                        reserved: 0
                -
                        start_resource: 40
                        num_resource: 8
                        type: 1972
                        host_id: 12
                        reserved: 0
                -
                        start_resource: 21
                        num_resource: 4
                        type: 1973
                        host_id: 12
                        reserved: 0
                -
                        start_resource: 48
                        num_resource: 64
                        type: 1974
                        host_id: 12
                        reserved: 0
                -
                        start_resource: 25
                        num_resource: 4
                        type: 1975
                        host_id: 35
                        reserved: 0
                -
                        start_resource: 25
                        num_resource: 4
                        type: 1975
                        host_id: 36
                        reserved: 0
                -
                        start_resource: 112
                        num_resource: 64
                        type: 1976
                        host_id: 35
                        reserved: 0
                -
                        start_resource: 112
                        num_resource: 64
                        type: 1976
                        host_id: 36
                        reserved: 0
                -
                        start_resource: 0
                        num_resource: 1
                        type: 2112
                        host_id: 128
                        reserved: 0
                -
                        start_resource: 2
                        num_resource: 2
                        type: 2122
                        host_id: 12
                        reserved: 0
                -
                        start_resource: 20
                        num_resource: 2
                        type: 2124
                        host_id: 35
                        reserved: 0
                -
                        start_resource: 20
                        num_resource: 2
                        type: 2124
                        host_id: 36
                        reserved: 0
                -
                        start_resource: 22
                        num_resource: 2
                        type: 2124
                        host_id: 38
                        reserved: 0
                -
                        start_resource: 24
                        num_resource: 2
                        type: 2124
                        host_id: 41
                        reserved: 0
                -
                        start_resource: 26
                        num_resource: 2
                        type: 2124
                        host_id: 43
                        reserved: 0
                -
                        start_resource: 28
                        num_resource: 4
                        type: 2124
                        host_id: 128
                        reserved: 0

k3-am642-evm.dts (u-boot):

// SPDX-License-Identifier: GPL-2.0
/*
 * Copyright (C) 2020-2021 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"

/ {
	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;
	};

	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>;
	};
};

&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 */
		>;
	};
};

&main_uart0 {
	bootph-all;
	status = "okay";
	pinctrl-names = "default";
	pinctrl-0 = <&main_uart0_pins_default>;
	current-speed = <115200>;
};

/* 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 */
		bootph-all;
		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 {
	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>;

	/* Map HW8_TS_PUSH to GENF1 */
	cpts@3d000 {
		ti,pps = <7 1>;
	};
};

&cpsw_port1 {
	bootph-all;
	phy-mode = "rgmii-rxid";
	phy-handle = <&cpsw3g_phy0>;
};

&cpsw_port2 {
	phy-mode = "rgmii-rxid";
	phy-handle = <&cpsw3g_phy3>;
};

&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";
};

&fss {
	bootph-all;
};

&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;
		#address-cells = <1>;
		#size-cells = <1>;
		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";
};

&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>;
};

#define TS_OFFSET(pa, val)     (0x4+(pa)*4) (0x10000 | val)

&timesync_router {
	status = "okay";
	pinctrl-names = "default";
	pinctrl-0 = <&cpsw_cpts_pps>;

	/*
	 * Use Time Sync Router to map GENF1 input to HW8_TS_PUSH output as well
	 * as the PRU ICSSG0 SYNC1 output.
	 */
	cpsw_cpts_pps: cpsw-cpts-pps {
		pinctrl-single,pins = <
			/* pps [cpts genf1] in22 -> out37 [cpts hw8_push] */
			TS_OFFSET(37, 22)
			/* pps [cpts genf1] in22 -> out26 [SYNC1_OUT pin] */
			TS_OFFSET(26, 22)
			>;
	};
};


&cpsw3g {
	status = "disabled";
};

k3-am642-evm.dts (Linux):

// 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"

/ {
	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;
	};

	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>;
	};

};

&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 */
		>;
	};

	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 */
		>;
	};
};

&main_uart0 {
	bootph-all;
	status = "okay";
	pinctrl-names = "default";
	pinctrl-0 = <&main_uart0_pins_default>;
	current-speed = <115200>;
};

/* 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 {
	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>;

	/* Map HW8_TS_PUSH to GENF1 */
	cpts@3d000 {
		ti,pps = <7 1>;
	};
};

&cpsw_port1 {
	bootph-all;
	phy-mode = "rgmii-rxid";
	phy-handle = <&cpsw3g_phy0>;
};

&cpsw_port2 {
	phy-mode = "rgmii-rxid";
	phy-handle = <&cpsw3g_phy3>;
};

&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";
};

&ospi0 {
	status = "okay";
	pinctrl-names = "default";
	pinctrl-0 = <&ospi0_pins_default>;

	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>;

		partitions {
			compatible = "fixed-partitions";
			#address-cells = <1>;
			#size-cells = <1>;

			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>;
			};
		};
	};
};

&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>;
	sram = <&r5f0_0_sram>;			
};

&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>;
};

#define TS_OFFSET(pa, val)     (0x4+(pa)*4) (0x10000 | val)

&timesync_router {
	status = "okay";
	pinctrl-names = "default";
	pinctrl-0 = <&cpsw_cpts_pps>;

	/* Use Time Sync Router to map GENF1 input to HW8_TS_PUSH output. */
	cpsw_cpts_pps: cpsw-cpts-pps {
		pinctrl-single,pins = <
			/* pps [cpts genf1] in22 -> out37 [cpts hw8_push] */
			TS_OFFSET(37, 22)
			>;
	};
};

&cpsw_port2 {
	status = "disabled";
};

&mdio_mux_1 {
	status = "disabled";
};

&icssg0 {
	status = "disabled";
};

&ospi0 {
	status = "disabled";
};

k3-am64-main.dtsi:

// SPDX-License-Identifier: GPL-2.0-only OR MIT
/*
 * Device Tree Source for AM642 SoC Family Main Domain peripherals
 *
 * Copyright (C) 2020-2024 Texas Instruments Incorporated - https://www.ti.com/
 */

#include <dt-bindings/phy/phy-cadence.h>
#include <dt-bindings/phy/phy-ti.h>

/ {
	serdes_refclk: clock-cmnrefclk {
		#clock-cells = <0>;
		compatible = "fixed-clock";
		clock-frequency = <0>;
	};
};

&cbass_main {
	oc_sram: sram@70000000 {
		compatible = "mmio-sram";
		reg = <0x00 0x70000000 0x00 0x200000>;
		#address-cells = <1>;
		#size-cells = <1>;
		ranges = <0x0 0x00 0x70000000 0x200000>;

		r5f0_0_sram: r5f0_0_sram@0 {
			reg = <0x0 0x180000>;
		};

		tfa-sram@1c0000 {
			reg = <0x1c0000 0x20000>;
		};

		dmsc-sram@1e0000 {
			reg = <0x1e0000 0x1c000>;
		};

		sproxy-sram@1fc000 {
			reg = <0x1fc000 0x4000>;
		};
	};

	main_conf: syscon@43000000 {
		bootph-all;
		compatible = "ti,j721e-system-controller", "syscon", "simple-mfd";
		reg = <0x0 0x43000000 0x0 0x20000>;
		#address-cells = <1>;
		#size-cells = <1>;
		ranges = <0x0 0x0 0x43000000 0x20000>;

		chipid@14 {
			bootph-all;
			compatible = "ti,am654-chipid";
			reg = <0x00000014 0x4>;
		};

		serdes_ln_ctrl: mux-controller@4080 {
			compatible = "reg-mux";
			reg = <0x4080 0x4>;
			#mux-control-cells = <1>;
			mux-reg-masks = <0x0 0x3>; /* SERDES0 lane0 select */
		};

		phy_gmii_sel: phy@4044 {
			compatible = "ti,am654-phy-gmii-sel";
			reg = <0x4044 0x8>;
			#phy-cells = <1>;
		};

		epwm_tbclk: clock-controller@4130 {
			compatible = "ti,am64-epwm-tbclk";
			reg = <0x4130 0x4>;
			#clock-cells = <1>;
		};
	};

	gic500: interrupt-controller@1800000 {
		compatible = "arm,gic-v3";
		#address-cells = <2>;
		#size-cells = <2>;
		ranges;
		#interrupt-cells = <3>;
		interrupt-controller;
		reg = <0x00 0x01800000 0x00 0x10000>,	/* GICD */
		      <0x00 0x01840000 0x00 0xC0000>,	/* GICR */
		      <0x01 0x00000000 0x00 0x2000>,	/* GICC */
		      <0x01 0x00010000 0x00 0x1000>,	/* GICH */
		      <0x01 0x00020000 0x00 0x2000>;	/* GICV */
		/*
		 * vcpumntirq:
		 * virtual CPU interface maintenance interrupt
		 */
		interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH>;

		gic_its: msi-controller@1820000 {
			compatible = "arm,gic-v3-its";
			reg = <0x00 0x01820000 0x00 0x10000>;
			socionext,synquacer-pre-its = <0x1000000 0x400000>;
			msi-controller;
			#msi-cells = <1>;
		};
	};

	dmss: bus@48000000 {
		bootph-all;
		compatible = "simple-bus";
		#address-cells = <2>;
		#size-cells = <2>;
		dma-ranges;
		ranges = <0x00 0x48000000 0x00 0x48000000 0x00 0x06400000>;

		ti,sci-dev-id = <25>;

		secure_proxy_main: mailbox@4d000000 {
			bootph-all;
			compatible = "ti,am654-secure-proxy";
			#mbox-cells = <1>;
			reg-names = "target_data", "rt", "scfg";
			reg = <0x00 0x4d000000 0x00 0x80000>,
			      <0x00 0x4a600000 0x00 0x80000>,
			      <0x00 0x4a400000 0x00 0x80000>;
			interrupt-names = "rx_012";
			interrupts = <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>;
		};

		inta_main_dmss: interrupt-controller@48000000 {
			compatible = "ti,sci-inta";
			reg = <0x00 0x48000000 0x00 0x100000>;
			#interrupt-cells = <0>;
			interrupt-controller;
			interrupt-parent = <&gic500>;
			msi-controller;
			ti,sci = <&dmsc>;
			ti,sci-dev-id = <28>;
			ti,interrupt-ranges = <4 68 36>;
			ti,unmapped-event-sources = <&main_bcdma>, <&main_pktdma>;
		};

		main_bcdma: dma-controller@485c0100 {
			compatible = "ti,am64-dmss-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>,
			      <0x00 0x48420000 0x00 0x2000>;
			reg-names = "gcfg", "bchanrt", "rchanrt", "tchanrt", "ringrt",
				    "ring", "tchan", "rchan", "bchan";
			msi-parent = <&inta_main_dmss>;
			#dma-cells = <3>;

			ti,sci = <&dmsc>;
			ti,sci-dev-id = <26>;
			ti,sci-rm-range-bchan = <0x20>; /* BLOCK_COPY_CHAN */
			ti,sci-rm-range-rchan = <0x21>; /* SPLIT_TR_RX_CHAN */
			ti,sci-rm-range-tchan = <0x22>; /* SPLIT_TR_TX_CHAN */
		};

		main_pktdma: dma-controller@485c0000 {
			compatible = "ti,am64-dmss-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",
				    "ring", "tchan", "rchan", "rflow";
			msi-parent = <&inta_main_dmss>;
			#dma-cells = <2>;

			ti,sci = <&dmsc>;
			ti,sci-dev-id = <30>;
			ti,sci-rm-range-tchan = <0x23>, /* UNMAPPED_TX_CHAN */
						<0x24>, /* CPSW_TX_CHAN */
						<0x25>, /* SAUL_TX_0_CHAN */
						<0x26>, /* SAUL_TX_1_CHAN */
						<0x27>, /* ICSSG_0_TX_CHAN */
						<0x28>; /* ICSSG_1_TX_CHAN */
			ti,sci-rm-range-tflow = <0x10>, /* RING_UNMAPPED_TX_CHAN */
						<0x11>, /* RING_CPSW_TX_CHAN */
						<0x12>, /* RING_SAUL_TX_0_CHAN */
						<0x13>, /* RING_SAUL_TX_1_CHAN */
						<0x14>, /* RING_ICSSG_0_TX_CHAN */
						<0x15>; /* RING_ICSSG_1_TX_CHAN */
			ti,sci-rm-range-rchan = <0x29>, /* UNMAPPED_RX_CHAN */
						<0x2b>, /* CPSW_RX_CHAN */
						<0x2d>, /* SAUL_RX_0_CHAN */
						<0x2f>, /* SAUL_RX_1_CHAN */
						<0x31>, /* SAUL_RX_2_CHAN */
						<0x33>, /* SAUL_RX_3_CHAN */
						<0x35>, /* ICSSG_0_RX_CHAN */
						<0x37>; /* ICSSG_1_RX_CHAN */
			ti,sci-rm-range-rflow = <0x2a>, /* FLOW_UNMAPPED_RX_CHAN */
						<0x2c>, /* FLOW_CPSW_RX_CHAN */
						<0x2e>, /* FLOW_SAUL_RX_0/1_CHAN */
						<0x32>, /* FLOW_SAUL_RX_2/3_CHAN */
						<0x36>, /* FLOW_ICSSG_0_RX_CHAN */
						<0x38>; /* FLOW_ICSSG_1_RX_CHAN */
		};
	};

	dmsc: system-controller@44043000 {
		bootph-all;
		compatible = "ti,k2g-sci";
		ti,host-id = <12>;
		mbox-names = "rx", "tx";
		mboxes = <&secure_proxy_main 12>,
			<&secure_proxy_main 13>;
		reg-names = "debug_messages";
		reg = <0x00 0x44043000 0x00 0xfe0>;

		k3_pds: power-controller {
			bootph-all;
			compatible = "ti,sci-pm-domain";
			#power-domain-cells = <2>;
		};

		k3_clks: clock-controller {
			bootph-all;
			compatible = "ti,k2g-sci-clk";
			#clock-cells = <2>;
		};

		k3_reset: reset-controller {
			bootph-all;
			compatible = "ti,sci-reset";
			#reset-cells = <2>;
		};
	};

	main_pmx0: pinctrl@f4000 {
		bootph-all;
		compatible = "pinctrl-single";
		reg = <0x00 0xf4000 0x00 0x2d0>;
		#pinctrl-cells = <1>;
		pinctrl-single,register-width = <32>;
		pinctrl-single,function-mask = <0xffffffff>;
	};

	main_timer0: timer@2400000 {
		bootph-all;
		compatible = "ti,am654-timer";
		reg = <0x00 0x2400000 0x00 0x400>;
		interrupts = <GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>;
		clocks = <&k3_clks 36 1>;
		clock-names = "fck";
		assigned-clocks = <&k3_clks 36 1>;
		assigned-clock-parents = <&k3_clks 36 2>;
		power-domains = <&k3_pds 36 TI_SCI_PD_EXCLUSIVE>;
		ti,timer-pwm;
	};

	main_timer1: timer@2410000 {
		compatible = "ti,am654-timer";
		reg = <0x00 0x2410000 0x00 0x400>;
		interrupts = <GIC_SPI 121 IRQ_TYPE_LEVEL_HIGH>;
		clocks = <&k3_clks 37 1>;
		clock-names = "fck";
		assigned-clocks = <&k3_clks 37 1>;
		assigned-clock-parents = <&k3_clks 37 2>;
		power-domains = <&k3_pds 37 TI_SCI_PD_EXCLUSIVE>;
		ti,timer-pwm;
	};

	main_timer2: timer@2420000 {
		compatible = "ti,am654-timer";
		reg = <0x00 0x2420000 0x00 0x400>;
		interrupts = <GIC_SPI 122 IRQ_TYPE_LEVEL_HIGH>;
		clocks = <&k3_clks 38 1>;
		clock-names = "fck";
		assigned-clocks = <&k3_clks 38 1>;
		assigned-clock-parents = <&k3_clks 38 2>;
		power-domains = <&k3_pds 38 TI_SCI_PD_EXCLUSIVE>;
		ti,timer-pwm;
	};

	main_timer3: timer@2430000 {
		compatible = "ti,am654-timer";
		reg = <0x00 0x2430000 0x00 0x400>;
		interrupts = <GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH>;
		clocks = <&k3_clks 39 1>;
		clock-names = "fck";
		assigned-clocks = <&k3_clks 39 1>;
		assigned-clock-parents = <&k3_clks 39 2>;
		power-domains = <&k3_pds 39 TI_SCI_PD_EXCLUSIVE>;
		ti,timer-pwm;
	};

	main_timer4: timer@2440000 {
		compatible = "ti,am654-timer";
		reg = <0x00 0x2440000 0x00 0x400>;
		interrupts = <GIC_SPI 124 IRQ_TYPE_LEVEL_HIGH>;
		clocks = <&k3_clks 40 1>;
		clock-names = "fck";
		assigned-clocks = <&k3_clks 40 1>;
		assigned-clock-parents = <&k3_clks 40 2>;
		power-domains = <&k3_pds 40 TI_SCI_PD_EXCLUSIVE>;
		ti,timer-pwm;
	};

	main_timer5: timer@2450000 {
		compatible = "ti,am654-timer";
		reg = <0x00 0x2450000 0x00 0x400>;
		interrupts = <GIC_SPI 125 IRQ_TYPE_LEVEL_HIGH>;
		clocks = <&k3_clks 41 1>;
		clock-names = "fck";
		assigned-clocks = <&k3_clks 41 1>;
		assigned-clock-parents = <&k3_clks 41 2>;
		power-domains = <&k3_pds 41 TI_SCI_PD_EXCLUSIVE>;
		ti,timer-pwm;
	};

	main_timer6: timer@2460000 {
		compatible = "ti,am654-timer";
		reg = <0x00 0x2460000 0x00 0x400>;
		interrupts = <GIC_SPI 126 IRQ_TYPE_LEVEL_HIGH>;
		clocks = <&k3_clks 42 1>;
		clock-names = "fck";
		assigned-clocks = <&k3_clks 42 1>;
		assigned-clock-parents = <&k3_clks 42 2>;
		power-domains = <&k3_pds 42 TI_SCI_PD_EXCLUSIVE>;
		ti,timer-pwm;
	};

	main_timer7: timer@2470000 {
		compatible = "ti,am654-timer";
		reg = <0x00 0x2470000 0x00 0x400>;
		interrupts = <GIC_SPI 127 IRQ_TYPE_LEVEL_HIGH>;
		clocks = <&k3_clks 43 1>;
		clock-names = "fck";
		assigned-clocks = <&k3_clks 43 1>;
		assigned-clock-parents = <&k3_clks 43 2>;
		power-domains = <&k3_pds 43 TI_SCI_PD_EXCLUSIVE>;
		ti,timer-pwm;
	};

	main_timer8: timer@2480000 {
		compatible = "ti,am654-timer";
		reg = <0x00 0x2480000 0x00 0x400>;
		interrupts = <GIC_SPI 128 IRQ_TYPE_LEVEL_HIGH>;
		clocks = <&k3_clks 44 1>;
		clock-names = "fck";
		assigned-clocks = <&k3_clks 44 1>;
		assigned-clock-parents = <&k3_clks 44 2>;
		power-domains = <&k3_pds 44 TI_SCI_PD_EXCLUSIVE>;
		ti,timer-pwm;
	};

	main_timer9: timer@2490000 {
		compatible = "ti,am654-timer";
		reg = <0x00 0x2490000 0x00 0x400>;
		interrupts = <GIC_SPI 129 IRQ_TYPE_LEVEL_HIGH>;
		clocks = <&k3_clks 45 1>;
		clock-names = "fck";
		assigned-clocks = <&k3_clks 45 1>;
		assigned-clock-parents = <&k3_clks 45 2>;
		power-domains = <&k3_pds 45 TI_SCI_PD_EXCLUSIVE>;
		ti,timer-pwm;
	};

	main_timer10: timer@24a0000 {
		compatible = "ti,am654-timer";
		reg = <0x00 0x24a0000 0x00 0x400>;
		interrupts = <GIC_SPI 130 IRQ_TYPE_LEVEL_HIGH>;
		clocks = <&k3_clks 46 1>;
		clock-names = "fck";
		assigned-clocks = <&k3_clks 46 1>;
		assigned-clock-parents = <&k3_clks 46 2>;
		power-domains = <&k3_pds 46 TI_SCI_PD_EXCLUSIVE>;
		ti,timer-pwm;
	};

	main_timer11: timer@24b0000 {
		compatible = "ti,am654-timer";
		reg = <0x00 0x24b0000 0x00 0x400>;
		interrupts = <GIC_SPI 131 IRQ_TYPE_LEVEL_HIGH>;
		clocks = <&k3_clks 47 1>;
		clock-names = "fck";
		assigned-clocks = <&k3_clks 47 1>;
		assigned-clock-parents = <&k3_clks 47 2>;
		power-domains = <&k3_pds 47 TI_SCI_PD_EXCLUSIVE>;
		ti,timer-pwm;
	};

	main_esm: esm@420000 {
		bootph-pre-ram;
		compatible = "ti,j721e-esm";
		reg = <0x00 0x420000 0x00 0x1000>;
		/* Interrupt sources: rti0, rti1, rti8, rti9, rti10, rti11 */
		ti,esm-pins = <160>, <161>, <162>, <163>, <164>, <165>;
	};

	main_uart0: serial@2800000 {
		compatible = "ti,am64-uart", "ti,am654-uart";
		reg = <0x00 0x02800000 0x00 0x100>;
		interrupts = <GIC_SPI 178 IRQ_TYPE_LEVEL_HIGH>;
		clock-frequency = <48000000>;
		power-domains = <&k3_pds 146 TI_SCI_PD_EXCLUSIVE>;
		clocks = <&k3_clks 146 0>;
		clock-names = "fclk";
		status = "disabled";
	};

	main_uart1: serial@2810000 {
		compatible = "ti,am64-uart", "ti,am654-uart";
		reg = <0x00 0x02810000 0x00 0x100>;
		interrupts = <GIC_SPI 179 IRQ_TYPE_LEVEL_HIGH>;
		clock-frequency = <48000000>;
		power-domains = <&k3_pds 152 TI_SCI_PD_EXCLUSIVE>;
		clocks = <&k3_clks 152 0>;
		clock-names = "fclk";
		status = "disabled";
	};

	main_uart2: serial@2820000 {
		compatible = "ti,am64-uart", "ti,am654-uart";
		reg = <0x00 0x02820000 0x00 0x100>;
		interrupts = <GIC_SPI 180 IRQ_TYPE_LEVEL_HIGH>;
		clock-frequency = <48000000>;
		power-domains = <&k3_pds 153 TI_SCI_PD_EXCLUSIVE>;
		clocks = <&k3_clks 153 0>;
		clock-names = "fclk";
		status = "disabled";
	};

	main_uart3: serial@2830000 {
		compatible = "ti,am64-uart", "ti,am654-uart";
		reg = <0x00 0x02830000 0x00 0x100>;
		interrupts = <GIC_SPI 181 IRQ_TYPE_LEVEL_HIGH>;
		clock-frequency = <48000000>;
		power-domains = <&k3_pds 154 TI_SCI_PD_EXCLUSIVE>;
		clocks = <&k3_clks 154 0>;
		clock-names = "fclk";
		status = "disabled";
	};

	main_uart4: serial@2840000 {
		compatible = "ti,am64-uart", "ti,am654-uart";
		reg = <0x00 0x02840000 0x00 0x100>;
		interrupts = <GIC_SPI 182 IRQ_TYPE_LEVEL_HIGH>;
		clock-frequency = <48000000>;
		power-domains = <&k3_pds 155 TI_SCI_PD_EXCLUSIVE>;
		clocks = <&k3_clks 155 0>;
		clock-names = "fclk";
		status = "disabled";
	};

	main_uart5: serial@2850000 {
		compatible = "ti,am64-uart", "ti,am654-uart";
		reg = <0x00 0x02850000 0x00 0x100>;
		interrupts = <GIC_SPI 183 IRQ_TYPE_LEVEL_HIGH>;
		clock-frequency = <48000000>;
		power-domains = <&k3_pds 156 TI_SCI_PD_EXCLUSIVE>;
		clocks = <&k3_clks 156 0>;
		clock-names = "fclk";
		status = "disabled";
	};

	main_uart6: serial@2860000 {
		compatible = "ti,am64-uart", "ti,am654-uart";
		reg = <0x00 0x02860000 0x00 0x100>;
		interrupts = <GIC_SPI 184 IRQ_TYPE_LEVEL_HIGH>;
		clock-frequency = <48000000>;
		power-domains = <&k3_pds 158 TI_SCI_PD_EXCLUSIVE>;
		clocks = <&k3_clks 158 0>;
		clock-names = "fclk";
		status = "disabled";
	};

	main_i2c0: i2c@20000000 {
		compatible = "ti,am64-i2c", "ti,omap4-i2c";
		reg = <0x00 0x20000000 0x00 0x100>;
		interrupts = <GIC_SPI 161 IRQ_TYPE_LEVEL_HIGH>;
		#address-cells = <1>;
		#size-cells = <0>;
		power-domains = <&k3_pds 102 TI_SCI_PD_EXCLUSIVE>;
		clocks = <&k3_clks 102 2>;
		clock-names = "fck";
		status = "disabled";
	};

	main_i2c1: i2c@20010000 {
		compatible = "ti,am64-i2c", "ti,omap4-i2c";
		reg = <0x00 0x20010000 0x00 0x100>;
		interrupts = <GIC_SPI 162 IRQ_TYPE_LEVEL_HIGH>;
		#address-cells = <1>;
		#size-cells = <0>;
		power-domains = <&k3_pds 103 TI_SCI_PD_EXCLUSIVE>;
		clocks = <&k3_clks 103 2>;
		clock-names = "fck";
		status = "disabled";
	};

	main_i2c2: i2c@20020000 {
		compatible = "ti,am64-i2c", "ti,omap4-i2c";
		reg = <0x00 0x20020000 0x00 0x100>;
		interrupts = <GIC_SPI 163 IRQ_TYPE_LEVEL_HIGH>;
		#address-cells = <1>;
		#size-cells = <0>;
		power-domains = <&k3_pds 104 TI_SCI_PD_EXCLUSIVE>;
		clocks = <&k3_clks 104 2>;
		clock-names = "fck";
		status = "disabled";
	};

	main_i2c3: i2c@20030000 {
		compatible = "ti,am64-i2c", "ti,omap4-i2c";
		reg = <0x00 0x20030000 0x00 0x100>;
		interrupts = <GIC_SPI 164 IRQ_TYPE_LEVEL_HIGH>;
		#address-cells = <1>;
		#size-cells = <0>;
		power-domains = <&k3_pds 105 TI_SCI_PD_EXCLUSIVE>;
		clocks = <&k3_clks 105 2>;
		clock-names = "fck";
		status = "disabled";
	};

	main_spi0: spi@20100000 {
		compatible = "ti,am654-mcspi", "ti,omap4-mcspi";
		reg = <0x00 0x20100000 0x00 0x400>;
		interrupts = <GIC_SPI 172 IRQ_TYPE_LEVEL_HIGH>;
		#address-cells = <1>;
		#size-cells = <0>;
		power-domains = <&k3_pds 141 TI_SCI_PD_EXCLUSIVE>;
		clocks = <&k3_clks 141 0>;
		dmas = <&main_pktdma 0xc300 0>, <&main_pktdma 0x4300 0>;
		dma-names = "tx0", "rx0";
		status = "disabled";
	};

	main_spi1: spi@20110000 {
		compatible = "ti,am654-mcspi","ti,omap4-mcspi";
		reg = <0x00 0x20110000 0x00 0x400>;
		interrupts = <GIC_SPI 173 IRQ_TYPE_LEVEL_HIGH>;
		#address-cells = <1>;
		#size-cells = <0>;
		power-domains = <&k3_pds 142 TI_SCI_PD_EXCLUSIVE>;
		clocks = <&k3_clks 142 0>;
		status = "disabled";
	};

	main_spi2: spi@20120000 {
		compatible = "ti,am654-mcspi","ti,omap4-mcspi";
		reg = <0x00 0x20120000 0x00 0x400>;
		interrupts = <GIC_SPI 174 IRQ_TYPE_LEVEL_HIGH>;
		#address-cells = <1>;
		#size-cells = <0>;
		power-domains = <&k3_pds 143 TI_SCI_PD_EXCLUSIVE>;
		clocks = <&k3_clks 143 0>;
		status = "disabled";
	};

	main_spi3: spi@20130000 {
		compatible = "ti,am654-mcspi","ti,omap4-mcspi";
		reg = <0x00 0x20130000 0x00 0x400>;
		interrupts = <GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH>;
		#address-cells = <1>;
		#size-cells = <0>;
		power-domains = <&k3_pds 144 TI_SCI_PD_EXCLUSIVE>;
		clocks = <&k3_clks 144 0>;
		status = "disabled";
	};

	main_spi4: spi@20140000 {
		compatible = "ti,am654-mcspi","ti,omap4-mcspi";
		reg = <0x00 0x20140000 0x00 0x400>;
		interrupts = <GIC_SPI 175 IRQ_TYPE_LEVEL_HIGH>;
		#address-cells = <1>;
		#size-cells = <0>;
		power-domains = <&k3_pds 145 TI_SCI_PD_EXCLUSIVE>;
		clocks = <&k3_clks 145 0>;
		status = "disabled";
	};

	main_gpio_intr: interrupt-controller@a00000 {
		compatible = "ti,sci-intr";
		reg = <0x00 0x00a00000 0x00 0x800>;
		ti,intr-trigger-type = <1>;
		interrupt-controller;
		interrupt-parent = <&gic500>;
		#interrupt-cells = <1>;
		ti,sci = <&dmsc>;
		ti,sci-dev-id = <3>;
		ti,interrupt-ranges = <0 32 16>;
	};

	main_gpio0: gpio@600000 {
		compatible = "ti,am64-gpio", "ti,keystone-gpio";
		reg = <0x0 0x00600000 0x0 0x100>;
		gpio-controller;
		#gpio-cells = <2>;
		interrupt-parent = <&main_gpio_intr>;
		interrupts = <190>, <191>, <192>,
			     <193>, <194>, <195>;
		interrupt-controller;
		#interrupt-cells = <2>;
		ti,ngpio = <87>;
		ti,davinci-gpio-unbanked = <0>;
		power-domains = <&k3_pds 77 TI_SCI_PD_EXCLUSIVE>;
		clocks = <&k3_clks 77 0>;
		clock-names = "gpio";
	};

	main_gpio1: gpio@601000 {
		compatible = "ti,am64-gpio", "ti,keystone-gpio";
		reg = <0x0 0x00601000 0x0 0x100>;
		gpio-controller;
		#gpio-cells = <2>;
		interrupt-parent = <&main_gpio_intr>;
		interrupts = <180>, <181>, <182>,
			     <183>, <184>, <185>;
		interrupt-controller;
		#interrupt-cells = <2>;
		ti,ngpio = <88>;
		ti,davinci-gpio-unbanked = <0>;
		power-domains = <&k3_pds 78 TI_SCI_PD_EXCLUSIVE>;
		clocks = <&k3_clks 78 0>;
		clock-names = "gpio";
	};

	sdhci0: mmc@fa10000 {
		compatible = "ti,am64-sdhci-8bit";
		reg = <0x00 0xfa10000 0x00 0x260>, <0x00 0xfa18000 0x00 0x134>;
		interrupts = <GIC_SPI 133 IRQ_TYPE_LEVEL_HIGH>;
		power-domains = <&k3_pds 57 TI_SCI_PD_EXCLUSIVE>;
		clocks = <&k3_clks 57 0>, <&k3_clks 57 1>;
		clock-names = "clk_ahb", "clk_xin";
		bus-width = <8>;
		mmc-ddr-1_8v;
		mmc-hs200-1_8v;
		ti,clkbuf-sel = <0x7>;
		ti,trm-icp = <0x2>;
		ti,otap-del-sel-legacy = <0x0>;
		ti,otap-del-sel-mmc-hs = <0x0>;
		ti,otap-del-sel-ddr52 = <0x6>;
		ti,otap-del-sel-hs200 = <0x7>;
		ti,itap-del-sel-legacy = <0x10>;
		ti,itap-del-sel-mmc-hs = <0xa>;
		ti,itap-del-sel-ddr52 = <0x3>;
		status = "disabled";
	};

	sdhci1: mmc@fa00000 {
		compatible = "ti,am64-sdhci-4bit";
		reg = <0x00 0xfa00000 0x00 0x260>, <0x00 0xfa08000 0x00 0x134>;
		interrupts = <GIC_SPI 134 IRQ_TYPE_LEVEL_HIGH>;
		power-domains = <&k3_pds 58 TI_SCI_PD_EXCLUSIVE>;
		clocks = <&k3_clks 58 3>, <&k3_clks 58 4>;
		clock-names = "clk_ahb", "clk_xin";
		bus-width = <4>;
		ti,clkbuf-sel = <0x7>;
		ti,otap-del-sel-legacy = <0x0>;
		ti,otap-del-sel-sd-hs = <0x0>;
		ti,otap-del-sel-sdr12 = <0xf>;
		ti,otap-del-sel-sdr25 = <0xf>;
		ti,otap-del-sel-sdr50 = <0xc>;
		ti,otap-del-sel-sdr104 = <0x6>;
		ti,otap-del-sel-ddr50 = <0x9>;
		ti,itap-del-sel-legacy = <0x0>;
		ti,itap-del-sel-sd-hs = <0x0>;
		ti,itap-del-sel-sdr12 = <0x0>;
		ti,itap-del-sel-sdr25 = <0x0>;
		status = "disabled";
	};

	cpsw3g: ethernet@8000000 {
		compatible = "ti,am642-cpsw-nuss";
		#address-cells = <2>;
		#size-cells = <2>;
		reg = <0x0 0x8000000 0x0 0x200000>;
		reg-names = "cpsw_nuss";
		ranges = <0x0 0x0 0x0 0x8000000 0x0 0x200000>;
		clocks = <&k3_clks 13 0>;
		assigned-clocks = <&k3_clks 13 1>;
		assigned-clock-parents = <&k3_clks 13 9>;
		clock-names = "fck";
		power-domains = <&k3_pds 13 TI_SCI_PD_EXCLUSIVE>;

		dmas = <&main_pktdma 0xC500 15>,
		       <&main_pktdma 0xC501 15>,
		       <&main_pktdma 0xC502 15>,
		       <&main_pktdma 0xC503 15>,
		       <&main_pktdma 0xC504 15>,
		       <&main_pktdma 0xC505 15>,
		       <&main_pktdma 0xC506 15>,
		       <&main_pktdma 0xC507 15>,
		       <&main_pktdma 0x4500 15>;
		dma-names = "tx0", "tx1", "tx2", "tx3", "tx4", "tx5", "tx6",
			    "tx7", "rx";

		ethernet-ports {
			#address-cells = <1>;
			#size-cells = <0>;

			cpsw_port1: port@1 {
				reg = <1>;
				ti,mac-only;
				label = "port1";
				phys = <&phy_gmii_sel 1>;
				mac-address = [00 00 00 00 00 00];
				ti,syscon-efuse = <&main_conf 0x200>;
			};

			cpsw_port2: port@2 {
				reg = <2>;
				ti,mac-only;
				label = "port2";
				phys = <&phy_gmii_sel 2>;
				mac-address = [00 00 00 00 00 00];
			};
		};

		cpsw3g_mdio: mdio@f00 {
			compatible = "ti,cpsw-mdio","ti,davinci_mdio";
			reg = <0x0 0xf00 0x0 0x100>;
			#address-cells = <1>;
			#size-cells = <0>;
			clocks = <&k3_clks 13 0>;
			clock-names = "fck";
			bus_freq = <1000000>;
			status = "disabled";
		};

		cpts@3d000 {
			compatible = "ti,j721e-cpts";
			reg = <0x0 0x3d000 0x0 0x400>;
			clocks = <&k3_clks 13 1>;
			clock-names = "cpts";
			interrupts-extended = <&gic500 GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>;
			interrupt-names = "cpts";
			ti,cpts-ext-ts-inputs = <4>;
			ti,cpts-periodic-outputs = <2>;
		};
	};

	main_cpts0: cpts@39000000 {
		compatible = "ti,j721e-cpts";
		reg = <0x0 0x39000000 0x0 0x400>;
		reg-names = "cpts";
		power-domains = <&k3_pds 84 TI_SCI_PD_EXCLUSIVE>;
		clocks = <&k3_clks 84 0>;
		clock-names = "cpts";
		assigned-clocks = <&k3_clks 84 0>;
		assigned-clock-parents = <&k3_clks 84 8>;
		interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>;
		interrupt-names = "cpts";
		ti,cpts-periodic-outputs = <6>;
		ti,cpts-ext-ts-inputs = <8>;
	};

	timesync_router: pinctrl@a40000 {
		compatible = "pinctrl-single";
		reg = <0x0 0xa40000 0x0 0x800>;
		#pinctrl-cells = <1>;
		pinctrl-single,register-width = <32>;
		pinctrl-single,function-mask = <0x000107ff>;
	};

	usbss0: cdns-usb@f900000 {
		compatible = "ti,am64-usb";
		reg = <0x00 0xf900000 0x00 0x100>;
		power-domains = <&k3_pds 161 TI_SCI_PD_EXCLUSIVE>;
		clocks = <&k3_clks 161 9>, <&k3_clks 161 1>;
		clock-names = "ref", "lpm";
		assigned-clocks = <&k3_clks 161 9>; /* USB2_REFCLK */
		assigned-clock-parents = <&k3_clks 161 10>; /* HF0SC0 */
		#address-cells = <2>;
		#size-cells = <2>;
		ranges;
		usb0: usb@f400000 {
			compatible = "cdns,usb3";
			reg = <0x00 0xf400000 0x00 0x10000>,
			      <0x00 0xf410000 0x00 0x10000>,
			      <0x00 0xf420000 0x00 0x10000>;
			reg-names = "otg",
				    "xhci",
				    "dev";
			interrupts = <GIC_SPI 188 IRQ_TYPE_LEVEL_HIGH>, /* irq.0 */
				     <GIC_SPI 194 IRQ_TYPE_LEVEL_HIGH>, /* irq.6 */
				     <GIC_SPI 196 IRQ_TYPE_LEVEL_HIGH>; /* otgirq */
			interrupt-names = "host",
					  "peripheral",
					  "otg";
			maximum-speed = "super-speed";
			dr_mode = "otg";
		};
	};

	tscadc0: tscadc@28001000 {
		compatible = "ti,am654-tscadc", "ti,am3359-tscadc";
		reg = <0x00 0x28001000 0x00 0x1000>;
		interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>;
		power-domains = <&k3_pds 0 TI_SCI_PD_EXCLUSIVE>;
		clocks = <&k3_clks 0 0>;
		assigned-clocks = <&k3_clks 0 0>;
		assigned-clock-parents = <&k3_clks 0 3>;
		assigned-clock-rates = <60000000>;
		clock-names = "fck";
		status = "disabled";

		adc {
			#io-channel-cells = <1>;
			compatible = "ti,am654-adc", "ti,am3359-adc";
		};
	};

	fss: bus@fc00000 {
		compatible = "simple-bus";
		reg = <0x00 0x0fc00000 0x00 0x70000>;
		#address-cells = <2>;
		#size-cells = <2>;
		ranges;

		ospi0: spi@fc40000 {
			compatible = "ti,am654-ospi", "cdns,qspi-nor";
			reg = <0x00 0x0fc40000 0x00 0x100>,
			      <0x05 0x00000000 0x01 0x00000000>;
			interrupts = <GIC_SPI 139 IRQ_TYPE_LEVEL_HIGH>;
			cdns,fifo-depth = <256>;
			cdns,fifo-width = <4>;
			cdns,trigger-address = <0x0>;
			cdns,phase-detect-selector = <2>;
			#address-cells = <0x1>;
			#size-cells = <0x0>;
			clocks = <&k3_clks 75 6>;
			assigned-clocks = <&k3_clks 75 6>;
			assigned-clock-parents = <&k3_clks 75 7>;
			assigned-clock-rates = <166666666>;
			power-domains = <&k3_pds 75 TI_SCI_PD_EXCLUSIVE>;
			status = "disabled";
		};
	};

	hwspinlock: spinlock@2a000000 {
		compatible = "ti,am64-hwspinlock";
		reg = <0x00 0x2a000000 0x00 0x1000>;
		#hwlock-cells = <1>;
	};

	mailbox0_cluster2: mailbox@29020000 {
		compatible = "ti,am64-mailbox";
		reg = <0x00 0x29020000 0x00 0x200>;
		interrupts = <GIC_SPI 80 IRQ_TYPE_LEVEL_HIGH>,
			     <GIC_SPI 81 IRQ_TYPE_LEVEL_HIGH>;
		#mbox-cells = <1>;
		ti,mbox-num-users = <4>;
		ti,mbox-num-fifos = <16>;
		status = "disabled";
	};

	mailbox0_cluster3: mailbox@29030000 {
		compatible = "ti,am64-mailbox";
		reg = <0x00 0x29030000 0x00 0x200>;
		interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>,
			     <GIC_SPI 83 IRQ_TYPE_LEVEL_HIGH>;
		#mbox-cells = <1>;
		ti,mbox-num-users = <4>;
		ti,mbox-num-fifos = <16>;
		status = "disabled";
	};

	mailbox0_cluster4: mailbox@29040000 {
		compatible = "ti,am64-mailbox";
		reg = <0x00 0x29040000 0x00 0x200>;
		interrupts = <GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>,
			     <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>;
		#mbox-cells = <1>;
		ti,mbox-num-users = <4>;
		ti,mbox-num-fifos = <16>;
		status = "disabled";
	};

	mailbox0_cluster5: mailbox@29050000 {
		compatible = "ti,am64-mailbox";
		reg = <0x00 0x29050000 0x00 0x200>;
		interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>,
			     <GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>;
		#mbox-cells = <1>;
		ti,mbox-num-users = <4>;
		ti,mbox-num-fifos = <16>;
		status = "disabled";
	};

	mailbox0_cluster6: mailbox@29060000 {
		compatible = "ti,am64-mailbox";
		reg = <0x00 0x29060000 0x00 0x200>;
		interrupts = <GIC_SPI 76 IRQ_TYPE_LEVEL_HIGH>;
		#mbox-cells = <1>;
		ti,mbox-num-users = <4>;
		ti,mbox-num-fifos = <16>;
		status = "disabled";
	};

	mailbox0_cluster7: mailbox@29070000 {
		compatible = "ti,am64-mailbox";
		reg = <0x00 0x29070000 0x00 0x200>;
		interrupts = <GIC_SPI 77 IRQ_TYPE_LEVEL_HIGH>;
		#mbox-cells = <1>;
		ti,mbox-num-users = <4>;
		ti,mbox-num-fifos = <16>;
		status = "disabled";
	};

	main_r5fss0: r5fss@78000000 {
		compatible = "ti,am64-r5fss";
		ti,cluster-mode = <0>;
		#address-cells = <1>;
		#size-cells = <1>;
		ranges = <0x78000000 0x00 0x78000000 0x10000>,
			 <0x78100000 0x00 0x78100000 0x10000>,
			 <0x78200000 0x00 0x78200000 0x08000>,
			 <0x78300000 0x00 0x78300000 0x08000>;
		power-domains = <&k3_pds 119 TI_SCI_PD_EXCLUSIVE>;

		main_r5fss0_core0: r5f@78000000 {
			compatible = "ti,am64-r5f";
			reg = <0x78000000 0x00010000>,
			      <0x78100000 0x00010000>;
			reg-names = "atcm", "btcm";
			ti,sci = <&dmsc>;
			ti,sci-dev-id = <121>;
			ti,sci-proc-ids = <0x01 0xff>;
			resets = <&k3_reset 121 1>;
			firmware-name = "am64-main-r5f0_0-fw";
			ti,atcm-enable = <1>;
			ti,btcm-enable = <1>;
			ti,loczrama = <1>;
		};

		main_r5fss0_core1: r5f@78200000 {
			compatible = "ti,am64-r5f";
			reg = <0x78200000 0x00008000>,
			      <0x78300000 0x00008000>;
			reg-names = "atcm", "btcm";
			ti,sci = <&dmsc>;
			ti,sci-dev-id = <122>;
			ti,sci-proc-ids = <0x02 0xff>;
			resets = <&k3_reset 122 1>;
			firmware-name = "am64-main-r5f0_1-fw";
			ti,atcm-enable = <1>;
			ti,btcm-enable = <1>;
			ti,loczrama = <1>;
		};
	};

	main_r5fss1: r5fss@78400000 {
		compatible = "ti,am64-r5fss";
		ti,cluster-mode = <0>;
		#address-cells = <1>;
		#size-cells = <1>;
		ranges = <0x78400000 0x00 0x78400000 0x10000>,
			 <0x78500000 0x00 0x78500000 0x10000>,
			 <0x78600000 0x00 0x78600000 0x08000>,
			 <0x78700000 0x00 0x78700000 0x08000>;
		power-domains = <&k3_pds 120 TI_SCI_PD_EXCLUSIVE>;

		main_r5fss1_core0: r5f@78400000 {
			compatible = "ti,am64-r5f";
			reg = <0x78400000 0x00010000>,
			      <0x78500000 0x00010000>;
			reg-names = "atcm", "btcm";
			ti,sci = <&dmsc>;
			ti,sci-dev-id = <123>;
			ti,sci-proc-ids = <0x06 0xff>;
			resets = <&k3_reset 123 1>;
			firmware-name = "am64-main-r5f1_0-fw";
			ti,atcm-enable = <1>;
			ti,btcm-enable = <1>;
			ti,loczrama = <1>;
		};

		main_r5fss1_core1: r5f@78600000 {
			compatible = "ti,am64-r5f";
			reg = <0x78600000 0x00008000>,
			      <0x78700000 0x00008000>;
			reg-names = "atcm", "btcm";
			ti,sci = <&dmsc>;
			ti,sci-dev-id = <124>;
			ti,sci-proc-ids = <0x07 0xff>;
			resets = <&k3_reset 124 1>;
			firmware-name = "am64-main-r5f1_1-fw";
			ti,atcm-enable = <1>;
			ti,btcm-enable = <1>;
			ti,loczrama = <1>;
		};
	};

	serdes_wiz0: wiz@f000000 {
		compatible = "ti,am64-wiz-10g";
		#address-cells = <1>;
		#size-cells = <1>;
		power-domains = <&k3_pds 162 TI_SCI_PD_EXCLUSIVE>;
		clocks = <&k3_clks 162 0>, <&k3_clks 162 1>, <&serdes_refclk>;
		clock-names = "fck", "core_ref_clk", "ext_ref_clk";
		num-lanes = <1>;
		#reset-cells = <1>;
		#clock-cells = <1>;
		ranges = <0x0f000000 0x0 0x0f000000 0x00010000>;

		assigned-clocks = <&k3_clks 162 1>;
		assigned-clock-parents = <&k3_clks 162 5>;

		serdes0: serdes@f000000 {
			compatible = "ti,j721e-serdes-10g";
			reg = <0x0f000000 0x00010000>;
			reg-names = "torrent_phy";
			resets = <&serdes_wiz0 0>;
			reset-names = "torrent_reset";
			clocks = <&serdes_wiz0 TI_WIZ_PLL0_REFCLK>,
				 <&serdes_wiz0 TI_WIZ_PHY_EN_REFCLK>;
			clock-names = "refclk", "phy_en_refclk";
			assigned-clocks = <&serdes_wiz0 TI_WIZ_PLL0_REFCLK>,
					  <&serdes_wiz0 TI_WIZ_PLL1_REFCLK>,
					  <&serdes_wiz0 TI_WIZ_REFCLK_DIG>;
			assigned-clock-parents = <&k3_clks 162 1>,
						 <&k3_clks 162 1>,
						 <&k3_clks 162 1>;
			#address-cells = <1>;
			#size-cells = <0>;
			#clock-cells = <1>;
		};
	};

	pcie0_rc: pcie@f102000 {
		compatible = "ti,am64-pcie-host", "ti,j721e-pcie-host";
		reg = <0x00 0x0f102000 0x00 0x1000>,
		      <0x00 0x0f100000 0x00 0x400>,
		      <0x00 0x0d000000 0x00 0x00800000>,
		      <0x00 0x68000000 0x00 0x00001000>;
		reg-names = "intd_cfg", "user_cfg", "reg", "cfg";
		interrupt-names = "link_state";
		interrupts = <GIC_SPI 203 IRQ_TYPE_EDGE_RISING>;
		device_type = "pci";
		ti,syscon-pcie-ctrl = <&main_conf 0x4070>;
		max-link-speed = <2>;
		num-lanes = <1>;
		power-domains = <&k3_pds 114 TI_SCI_PD_EXCLUSIVE>;
		clocks = <&k3_clks 114 0>, <&serdes0 CDNS_TORRENT_REFCLK_DRIVER>;
		clock-names = "fck", "pcie_refclk";
		#address-cells = <3>;
		#size-cells = <2>;
		bus-range = <0x0 0xff>;
		cdns,no-bar-match-nbits = <64>;
		vendor-id = <0x104c>;
		device-id = <0xb010>;
		msi-map = <0x0 &gic_its 0x0 0x10000>;
		ranges = <0x01000000 0x00 0x68001000  0x00 0x68001000  0x00 0x0010000>,
			 <0x02000000 0x00 0x68011000  0x00 0x68011000  0x00 0x7fef000>;
		dma-ranges = <0x02000000 0x0 0x0 0x0 0x0 0x00000010 0x0>;
		status = "disabled";
	};

	epwm0: pwm@23000000 {
		compatible = "ti,am64-epwm", "ti,am3352-ehrpwm";
		#pwm-cells = <3>;
		reg = <0x0 0x23000000 0x0 0x100>;
		power-domains = <&k3_pds 86 TI_SCI_PD_EXCLUSIVE>;
		clocks = <&epwm_tbclk 0>, <&k3_clks 86 0>;
		clock-names = "tbclk", "fck";
		status = "disabled";
	};

	epwm1: pwm@23010000 {
		compatible = "ti,am64-epwm", "ti,am3352-ehrpwm";
		#pwm-cells = <3>;
		reg = <0x0 0x23010000 0x0 0x100>;
		power-domains = <&k3_pds 87 TI_SCI_PD_EXCLUSIVE>;
		clocks = <&epwm_tbclk 1>, <&k3_clks 87 0>;
		clock-names = "tbclk", "fck";
		status = "disabled";
	};

	epwm2: pwm@23020000 {
		compatible = "ti,am64-epwm", "ti,am3352-ehrpwm";
		#pwm-cells = <3>;
		reg = <0x0 0x23020000 0x0 0x100>;
		power-domains = <&k3_pds 88 TI_SCI_PD_EXCLUSIVE>;
		clocks = <&epwm_tbclk 2>, <&k3_clks 88 0>;
		clock-names = "tbclk", "fck";
		status = "disabled";
	};

	epwm3: pwm@23030000 {
		compatible = "ti,am64-epwm", "ti,am3352-ehrpwm";
		#pwm-cells = <3>;
		reg = <0x0 0x23030000 0x0 0x100>;
		power-domains = <&k3_pds 89 TI_SCI_PD_EXCLUSIVE>;
		clocks = <&epwm_tbclk 3>, <&k3_clks 89 0>;
		clock-names = "tbclk", "fck";
		status = "disabled";
	};

	epwm4: pwm@23040000 {
		compatible = "ti,am64-epwm", "ti,am3352-ehrpwm";
		#pwm-cells = <3>;
		reg = <0x0 0x23040000 0x0 0x100>;
		power-domains = <&k3_pds 90 TI_SCI_PD_EXCLUSIVE>;
		clocks = <&epwm_tbclk 4>, <&k3_clks 90 0>;
		clock-names = "tbclk", "fck";
		status = "disabled";
	};

	epwm5: pwm@23050000 {
		compatible = "ti,am64-epwm", "ti,am3352-ehrpwm";
		#pwm-cells = <3>;
		reg = <0x0 0x23050000 0x0 0x100>;
		power-domains = <&k3_pds 91 TI_SCI_PD_EXCLUSIVE>;
		clocks = <&epwm_tbclk 5>, <&k3_clks 91 0>;
		clock-names = "tbclk", "fck";
		status = "disabled";
	};

	epwm6: pwm@23060000 {
		compatible = "ti,am64-epwm", "ti,am3352-ehrpwm";
		#pwm-cells = <3>;
		reg = <0x0 0x23060000 0x0 0x100>;
		power-domains = <&k3_pds 92 TI_SCI_PD_EXCLUSIVE>;
		clocks = <&epwm_tbclk 6>, <&k3_clks 92 0>;
		clock-names = "tbclk", "fck";
		status = "disabled";
	};

	epwm7: pwm@23070000 {
		compatible = "ti,am64-epwm", "ti,am3352-ehrpwm";
		#pwm-cells = <3>;
		reg = <0x0 0x23070000 0x0 0x100>;
		power-domains = <&k3_pds 93 TI_SCI_PD_EXCLUSIVE>;
		clocks = <&epwm_tbclk 7>, <&k3_clks 93 0>;
		clock-names = "tbclk", "fck";
		status = "disabled";
	};

	epwm8: pwm@23080000 {
		compatible = "ti,am64-epwm", "ti,am3352-ehrpwm";
		#pwm-cells = <3>;
		reg = <0x0 0x23080000 0x0 0x100>;
		power-domains = <&k3_pds 94 TI_SCI_PD_EXCLUSIVE>;
		clocks = <&epwm_tbclk 8>, <&k3_clks 94 0>;
		clock-names = "tbclk", "fck";
		status = "disabled";
	};

	ecap0: pwm@23100000 {
		compatible = "ti,am64-ecap", "ti,am3352-ecap";
		#pwm-cells = <3>;
		reg = <0x0 0x23100000 0x0 0x60>;
		power-domains = <&k3_pds 51 TI_SCI_PD_EXCLUSIVE>;
		clocks = <&k3_clks 51 0>;
		clock-names = "fck";
		status = "disabled";
	};

	ecap1: pwm@23110000 {
		compatible = "ti,am64-ecap", "ti,am3352-ecap";
		#pwm-cells = <3>;
		reg = <0x0 0x23110000 0x0 0x60>;
		power-domains = <&k3_pds 52 TI_SCI_PD_EXCLUSIVE>;
		clocks = <&k3_clks 52 0>;
		clock-names = "fck";
		status = "disabled";
	};

	ecap2: pwm@23120000 {
		compatible = "ti,am64-ecap", "ti,am3352-ecap";
		#pwm-cells = <3>;
		reg = <0x0 0x23120000 0x0 0x60>;
		power-domains = <&k3_pds 53 TI_SCI_PD_EXCLUSIVE>;
		clocks = <&k3_clks 53 0>;
		clock-names = "fck";
		status = "disabled";
	};

	eqep0: counter@23200000 {
		compatible = "ti,am62-eqep";
		reg = <0x00 0x23200000 0x00 0x100>;
		power-domains = <&k3_pds 59 TI_SCI_PD_EXCLUSIVE>;
		clocks = <&k3_clks 59 0>;
		interrupts = <GIC_SPI 116 IRQ_TYPE_EDGE_RISING>;
		status = "disabled";
	};

	eqep1: counter@23210000 {
		compatible = "ti,am62-eqep";
		reg = <0x00 0x23210000 0x00 0x100>;
		power-domains = <&k3_pds 60 TI_SCI_PD_EXCLUSIVE>;
		clocks = <&k3_clks 60 0>;
		interrupts = <GIC_SPI 117 IRQ_TYPE_EDGE_RISING>;
		status = "disabled";
	};

	eqep2: counter@23220000 {
		compatible = "ti,am62-eqep";
		reg = <0x00 0x23220000 0x00 0x100>;
		power-domains = <&k3_pds 62 TI_SCI_PD_EXCLUSIVE>;
		clocks = <&k3_clks 62 0>;
		interrupts = <GIC_SPI 118 IRQ_TYPE_EDGE_RISING>;
		status = "disabled";
	};

	main_rti0: watchdog@e000000 {
		compatible = "ti,j7-rti-wdt";
		reg = <0x00 0xe000000 0x00 0x100>;
		clocks = <&k3_clks 125 0>;
		power-domains = <&k3_pds 125 TI_SCI_PD_EXCLUSIVE>;
		assigned-clocks = <&k3_clks 125 0>;
		assigned-clock-parents = <&k3_clks 125 2>;
	};

	main_rti1: watchdog@e010000 {
		compatible = "ti,j7-rti-wdt";
		reg = <0x00 0xe010000 0x00 0x100>;
		clocks = <&k3_clks 126 0>;
		power-domains = <&k3_pds 126 TI_SCI_PD_EXCLUSIVE>;
		assigned-clocks = <&k3_clks 126 0>;
		assigned-clock-parents = <&k3_clks 126 2>;
	};

	icssg0: icssg@30000000 {
		compatible = "ti,am642-icssg";
		reg = <0x00 0x30000000 0x00 0x80000>;
		power-domains = <&k3_pds 81 TI_SCI_PD_EXCLUSIVE>;
		#address-cells = <1>;
		#size-cells = <1>;
		ranges = <0x0 0x00 0x30000000 0x80000>;
		clocks = <&k3_clks 81 0>,  /* icssg0_core_clk */
			 <&k3_clks 81 3>,  /* icssg0_iep_clk */
			 <&k3_clks 81 16>, /* icssg0_rgmii_mhz_250_clk */
			 <&k3_clks 81 17>, /* icssg0_rgmii_mhz_50_clk */
			 <&k3_clks 81 18>, /* icssg0_rgmii_mhz_5_clk */
			 <&k3_clks 81 19>, /* icssg0_uart_clk */
			 <&k3_clks 81 20>; /* icssg0_iclk */
		assigned-clocks = <&k3_clks 81 0>;
		assigned-clock-parents = <&k3_clks 81 2>;

		icssg0_mem: memories@0 {
			reg = <0x0 0x2000>,
			      <0x2000 0x2000>,
			      <0x10000 0x10000>;
			reg-names = "dram0", "dram1", "shrdram2";
		};

		icssg0_cfg: cfg@26000 {
			compatible = "ti,pruss-cfg", "syscon";
			reg = <0x26000 0x200>;
			#address-cells = <1>;
			#size-cells = <1>;
			ranges = <0x0 0x26000 0x2000>;

			clocks {
				#address-cells = <1>;
				#size-cells = <0>;

				icssg0_coreclk_mux: coreclk-mux@3c {
					reg = <0x3c>;
					#clock-cells = <0>;
					clocks = <&k3_clks 81 0>,  /* icssg0_core_clk */
						 <&k3_clks 81 20>; /* icssg0_iclk */
					assigned-clocks = <&icssg0_coreclk_mux>;
					assigned-clock-parents = <&k3_clks 81 0>;
				};

				icssg0_iepclk_mux: iepclk-mux@30 {
					reg = <0x30>;
					#clock-cells = <0>;
					clocks = <&k3_clks 81 3>,	/* icssg0_iep_clk */
						 <&icssg0_coreclk_mux>;	/* icssg0_coreclk_mux */
					assigned-clocks = <&icssg0_iepclk_mux>;
					assigned-clock-parents = <&icssg0_coreclk_mux>;
				};
			};
		};

		icssg0_iep0: iep@2e000 {
			compatible = "ti,am654-icss-iep";
			reg = <0x2e000 0x1000>;
			clocks = <&icssg0_iepclk_mux>;
		};

		icssg0_iep1: iep@2f000 {
			compatible = "ti,am654-icss-iep";
			reg = <0x2f000 0x1000>;
			clocks = <&icssg0_iepclk_mux>;
		};

		icssg0_mii_rt: mii-rt@32000 {
			compatible = "ti,pruss-mii", "syscon";
			reg = <0x32000 0x100>;
		};

		icssg0_mii_g_rt: mii-g-rt@33000 {
			compatible = "ti,pruss-mii-g", "syscon";
			reg = <0x33000 0x1000>;
		};

		icssg0_pa_stats: pa-stats@2c000 {
			compatible = "ti,pruss-pa-st", "syscon";
			reg = <0x2c000 0x1000>;
		};

		icssg0_intc: interrupt-controller@20000 {
			compatible = "ti,icssg-intc";
			reg = <0x20000 0x2000>;
			interrupt-controller;
			#interrupt-cells = <3>;
			interrupts = <GIC_SPI 88 IRQ_TYPE_LEVEL_HIGH>,
				     <GIC_SPI 89 IRQ_TYPE_LEVEL_HIGH>,
				     <GIC_SPI 90 IRQ_TYPE_LEVEL_HIGH>,
				     <GIC_SPI 91 IRQ_TYPE_LEVEL_HIGH>,
				     <GIC_SPI 92 IRQ_TYPE_LEVEL_HIGH>,
				     <GIC_SPI 93 IRQ_TYPE_LEVEL_HIGH>,
				     <GIC_SPI 94 IRQ_TYPE_LEVEL_HIGH>,
				     <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>;
			interrupt-names = "host_intr0", "host_intr1",
					  "host_intr2", "host_intr3",
					  "host_intr4", "host_intr5",
					  "host_intr6", "host_intr7";
		};

		pru0_0: pru@34000 {
			compatible = "ti,am642-pru";
			reg = <0x34000 0x3000>,
			      <0x22000 0x100>,
			      <0x22400 0x100>;
			reg-names = "iram", "control", "debug";
			firmware-name = "am64x-pru0_0-fw";
			interrupt-parent = <&icssg0_intc>;
			interrupts = <16 2 2>;
			interrupt-names = "vring";
		};

		rtu0_0: rtu@4000 {
			compatible = "ti,am642-rtu";
			reg = <0x4000 0x2000>,
			      <0x23000 0x100>,
			      <0x23400 0x100>;
			reg-names = "iram", "control", "debug";
			firmware-name = "am64x-rtu0_0-fw";
			interrupt-parent = <&icssg0_intc>;
			interrupts = <20 4 4>;
			interrupt-names = "vring";
		};

		tx_pru0_0: txpru@a000 {
			compatible = "ti,am642-tx-pru";
			reg = <0xa000 0x1800>,
			      <0x25000 0x100>,
			      <0x25400 0x100>;
			reg-names = "iram", "control", "debug";
			firmware-name = "am64x-txpru0_0-fw";
		};

		pru0_1: pru@38000 {
			compatible = "ti,am642-pru";
			reg = <0x38000 0x3000>,
			      <0x24000 0x100>,
			      <0x24400 0x100>;
			reg-names = "iram", "control", "debug";
			firmware-name = "am64x-pru0_1-fw";
			interrupt-parent = <&icssg0_intc>;
			interrupts = <18 3 3>;
			interrupt-names = "vring";
		};

		rtu0_1: rtu@6000 {
			compatible = "ti,am642-rtu";
			reg = <0x6000 0x2000>,
			      <0x23800 0x100>,
			      <0x23c00 0x100>;
			reg-names = "iram", "control", "debug";
			firmware-name = "am64x-rtu0_1-fw";
			interrupt-parent = <&icssg0_intc>;
			interrupts = <22 5 5>;
			interrupt-names = "vring";
		};

		tx_pru0_1: txpru@c000 {
			compatible = "ti,am642-tx-pru";
			reg = <0xc000 0x1800>,
			      <0x25800 0x100>,
			      <0x25c00 0x100>;
			reg-names = "iram", "control", "debug";
			firmware-name = "am64x-txpru0_1-fw";
		};

		icssg0_mdio: mdio@32400 {
			compatible = "ti,davinci_mdio";
			reg = <0x32400 0x100>;
			clocks = <&k3_clks 62 3>;
			clock-names = "fck";
			#address-cells = <1>;
			#size-cells = <0>;
			bus_freq = <1000000>;
			status = "disabled";
		};
	};

	main_mcan0: can@20701000 {
		compatible = "bosch,m_can";
		reg = <0x00 0x20701000 0x00 0x200>,
		      <0x00 0x20708000 0x00 0x8000>;
		reg-names = "m_can", "message_ram";
		power-domains = <&k3_pds 98 TI_SCI_PD_EXCLUSIVE>;
		clocks = <&k3_clks 98 5>, <&k3_clks 98 0>;
		clock-names = "hclk", "cclk";
		interrupts = <GIC_SPI 155 IRQ_TYPE_LEVEL_HIGH>,
			     <GIC_SPI 156 IRQ_TYPE_LEVEL_HIGH>;
		interrupt-names = "int0", "int1";
		bosch,mram-cfg = <0x0 128 64 64 64 64 32 32>;
		status = "disabled";
	};

	main_mcan1: can@20711000 {
		compatible = "bosch,m_can";
		reg = <0x00 0x20711000 0x00 0x200>,
		      <0x00 0x20718000 0x00 0x8000>;
		reg-names = "m_can", "message_ram";
		power-domains = <&k3_pds 99 TI_SCI_PD_EXCLUSIVE>;
		clocks = <&k3_clks 99 5>, <&k3_clks 99 0>;
		clock-names = "hclk", "cclk";
		interrupts = <GIC_SPI 158 IRQ_TYPE_LEVEL_HIGH>,
			     <GIC_SPI 159 IRQ_TYPE_LEVEL_HIGH>;
		interrupt-names = "int0", "int1";
		bosch,mram-cfg = <0x0 128 64 64 64 64 32 32>;
		status = "disabled";
	};

	crypto: crypto@40900000 {
		compatible = "ti,am64-sa2ul";
		reg = <0x00 0x40900000 0x00 0x1200>;
		power-domains = <&k3_pds 133 TI_SCI_PD_SHARED>;
		#address-cells = <2>;
		#size-cells = <2>;
		ranges = <0x00 0x40900000 0x00 0x40900000 0x00 0x30000>;
		dmas = <&main_pktdma 0xc001 0>, <&main_pktdma 0x4002 0>,
		       <&main_pktdma 0x4003 0>;
		dma-names = "tx", "rx1", "rx2";

		rng: rng@40910000 {
			compatible = "inside-secure,safexcel-eip76";
			reg = <0x00 0x40910000 0x00 0x7d>;
			interrupts = <GIC_SPI 168 IRQ_TYPE_LEVEL_HIGH>;
			status = "disabled"; /* Used by OP-TEE */
		};
	};

	gpmc0: memory-controller@3b000000 {
		compatible = "ti,am64-gpmc";
		power-domains = <&k3_pds 80 TI_SCI_PD_EXCLUSIVE>;
		clocks = <&k3_clks 80 0>;
		clock-names = "fck";
		reg = <0x00 0x3b000000 0x00 0x400>,
		      <0x00 0x50000000 0x00 0x8000000>;
		reg-names = "cfg", "data";
		interrupts = <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH>;
		gpmc,num-cs = <3>;
		gpmc,num-waitpins = <2>;
		#address-cells = <2>;
		#size-cells = <1>;
		interrupt-controller;
		#interrupt-cells = <2>;
		gpio-controller;
		#gpio-cells = <2>;
		status = "disabled";
	};

	elm0: ecc@25010000 {
		compatible = "ti,am64-elm";
		reg = <0x00 0x25010000 0x00 0x2000>;
		interrupts = <GIC_SPI 132 IRQ_TYPE_LEVEL_HIGH>;
		power-domains = <&k3_pds 54 TI_SCI_PD_EXCLUSIVE>;
		clocks = <&k3_clks 54 0>;
		clock-names = "fck";
		status = "disabled";
	};

	main_vtm0: temperature-sensor@b00000 {
		compatible = "ti,j7200-vtm";
		reg = <0x00 0xb00000 0x00 0x400>,
		      <0x00 0xb01000 0x00 0x400>;
		power-domains = <&k3_pds 95 TI_SCI_PD_EXCLUSIVE>;
		#thermal-sensor-cells = <1>;
	};
};

example.syscfg:

/**
 * These arguments were used when this file was generated. They will be automatically applied on subsequent loads
 * via the GUI or CLI. Run CLI with '--help' for additional information on how to override these arguments.
 * @cliArgs --device "AM64x" --part "Default" --package "ALV" --context "r5fss0-0" --product "MCU_PLUS_SDK_AM64x@11.01.00"
 * @v2CliArgs --device "AM6442" --package "FCBGA (ALV)" --variant "AM6442-D" --context "r5fss0-0" --product "MCU_PLUS_SDK_AM64x@11.01.00"
 * @versions {"tool":"1.23.0+4000"}
 */

/**
 * Import the modules used in this configuration.
 */
const eeprom     = scripting.addModule("/board/eeprom/eeprom", {}, false);
const eeprom1    = eeprom.addInstance();
const gpio       = scripting.addModule("/drivers/gpio/gpio", {}, false);
const gpio1      = gpio.addInstance();
const i2c        = scripting.addModule("/drivers/i2c/i2c", {}, false);
const i2c1       = i2c.addInstance();
const ipc        = scripting.addModule("/drivers/ipc/ipc");
const pruicss    = scripting.addModule("/drivers/pruicss/pruicss", {}, false);
const pruicss1   = pruicss.addInstance();
const debug_log  = scripting.addModule("/kernel/dpl/debug_log");
const dpl_cfg    = scripting.addModule("/kernel/dpl/dpl_cfg");
const mpu_armv7  = scripting.addModule("/kernel/dpl/mpu_armv7", {}, false);
const mpu_armv71 = mpu_armv7.addInstance();
const mpu_armv72 = mpu_armv7.addInstance();
const mpu_armv73 = mpu_armv7.addInstance();
const mpu_armv74 = mpu_armv7.addInstance();
const mpu_armv75 = mpu_armv7.addInstance();
const mpu_armv76 = mpu_armv7.addInstance();
const mpu_armv77 = mpu_armv7.addInstance();
const enet_icss  = scripting.addModule("/networking/enet_icss/enet_icss", {}, false);
const enet_icss1 = enet_icss.addInstance();

/**
 * Write custom configuration values to the imported modules.
 */
eeprom1.$name = "CONFIG_EEPROM0";

gpio1.$name                    = "CONFIG_GPIO0";
gpio1.pinDir                   = "OUTPUT";
gpio1.useMcuDomainPeripherals  = true;
gpio1.MCU_GPIO.$assign         = "MCU_GPIO0";
gpio1.MCU_GPIO.gpioPin.$assign = "MCU_SPI1_CS0";

i2c1.$name               = "CONFIG_I2C0";
eeprom1.peripheralDriver = i2c1;
i2c1.I2C.$assign         = "I2C0";
i2c1.I2C.SCL.$assign     = "I2C0_SCL";
i2c1.I2C.SDA.$assign     = "I2C0_SDA";
i2c1.I2C_child.$name     = "drivers_i2c_v0_i2c_v0_template1";

ipc.enableLinuxIpc = true;
ipc.m4fss0_0       = "NONE";
ipc.r5fss1_1       = "NONE";
ipc.r5fss1_0       = "NONE";
ipc.r5fss0_1       = "NONE";

debug_log.enableMemLog         = true;
debug_log.enableUartLog        = true;
debug_log.uartLog.$name        = "CONFIG_UART0";
debug_log.uartLog.UART.$assign = "USART1";

const uart_v0_template  = scripting.addModule("/drivers/uart/v0/uart_v0_template", {}, false);
const uart_v0_template1 = uart_v0_template.addInstance({}, false);
uart_v0_template1.$name = "drivers_uart_v0_uart_v0_template0";
debug_log.uartLog.child = uart_v0_template1;

mpu_armv71.$name             = "CONFIG_MPU_REGION0";
mpu_armv71.size              = 31;
mpu_armv71.attributes        = "Device";
mpu_armv71.accessPermissions = "Supervisor RD+WR, User RD";
mpu_armv71.allowExecute      = false;

mpu_armv72.$name             = "CONFIG_MPU_REGION1";
mpu_armv72.size              = 15;
mpu_armv72.accessPermissions = "Supervisor RD+WR, User RD";

mpu_armv73.$name             = "CONFIG_MPU_REGION2";
mpu_armv73.baseAddr          = 0x41010000;
mpu_armv73.size              = 15;
mpu_armv73.accessPermissions = "Supervisor RD+WR, User RD";

mpu_armv74.$name             = "CONFIG_MPU_REGION3";
mpu_armv74.accessPermissions = "Supervisor RD+WR, User RD";
mpu_armv74.baseAddr          = 0x70000000;
mpu_armv74.size              = 23;

mpu_armv75.$name             = "CONFIG_MPU_REGION4";
mpu_armv75.accessPermissions = "Supervisor RD+WR, User RD";
mpu_armv75.baseAddr          = 0x80000000;
mpu_armv75.size              = 31;

mpu_armv76.$name             = "CONFIG_MPU_REGION5";
mpu_armv76.accessPermissions = "Supervisor RD+WR, User RD";
mpu_armv76.baseAddr          = 0xA5000000;
mpu_armv76.size              = 23;
mpu_armv76.attributes        = "NonCached";

mpu_armv77.$name    = "CONFIG_MPU_REGION6";
mpu_armv77.size     = 27;
mpu_armv77.baseAddr = 0x60000000;

enet_icss1.$name                        = "CONFIG_ENET_ICSS0";
enet_icss1.phyToMacInterfaceMode        = "RGMII";
enet_icss1.mdioMode                     = "MDIO_MODE_MANUAL";
enet_icss1.PktInfoOnlyEnable            = true;
enet_icss1.LargePoolPktCount            = 32;
enet_icss1.QoS                          = 3;
enet_icss1.txDmaChannel[0].$name        = "ENET_DMA_TX_CH0";
enet_icss1.rxDmaChannel[0].$name        = "ENET_DMA_RX_CH0";
enet_icss1.rxDmaChannel[0].PacketsCount = 16;
enet_icss1.rxDmaChannel[1].$name        = "ENET_DMA_RX_CH1";
enet_icss1.rxDmaChannel[1].PacketsCount = 16;
enet_icss1.rxDmaChannel[1].chIdx        = 1;
enet_icss1.rxDmaChannel[1].macAddrCount = 0;
enet_icss1.netifInstance.create(1);
enet_icss1.netifInstance[0].$name       = "NETIF_INST_ID0";
enet_icss1.netifInstance[0].rxDmaChNum  = ["0","1"];
enet_icss1.PRU_ICSSG1_RGMII1.$assign    = "PRU_ICSSG1_RGMII1";

const ethphy_cpsw_icssg  = scripting.addModule("/board/ethphy_cpsw_icssg/ethphy_cpsw_icssg", {}, false);
const ethphy_cpsw_icssg1 = ethphy_cpsw_icssg.addInstance({}, false);
ethphy_cpsw_icssg1.$name = "CONFIG_ENET_ETHPHY0";
enet_icss1.ethphy2       = ethphy_cpsw_icssg1;

const ethphy_cpsw_icssg2 = ethphy_cpsw_icssg.addInstance({}, false);
ethphy_cpsw_icssg2.$name = "CONFIG_ENET_ETHPHY1";
enet_icss1.ethphy3       = ethphy_cpsw_icssg2;

enet_icss1.icss                          = pruicss1;
pruicss1.$name                           = "CONFIG_PRU_ICSS1";
pruicss1.AdditionalICSSSettings[0].$name = "CONFIG_PRU_ICSS_IO0";
pruicss1.intcMapping.create(2);
pruicss1.intcMapping[0].$name            = "CONFIG_ICSS1_INTC_MAPPING0";
pruicss1.intcMapping[0].event            = "41";
pruicss1.intcMapping[0].channel          = "7";
pruicss1.intcMapping[0].host             = "8";
pruicss1.intcMapping[1].$name            = "CONFIG_ICSS1_INTC_MAPPING1";
pruicss1.intcMapping[1].channel          = "7";
pruicss1.intcMapping[1].host             = "8";
pruicss1.intcMapping[1].event            = "53";

const udma         = scripting.addModule("/drivers/udma/udma", {}, false);
const udma1        = udma.addInstance({}, false);
enet_icss1.udmaDrv = udma1;

/**
 * Pinmux solution for unlocked pins/peripherals. This ensures that minor changes to the automatic solver in a future
 * version of the tool will not impact the pinmux you originally saw.  These lines can be completely deleted in order to
 * re-solve from scratch.
 */
debug_log.uartLog.UART.RXD.$suggestSolution              = "UART1_RXD";
debug_log.uartLog.UART.TXD.$suggestSolution              = "UART1_TXD";
enet_icss1.PRU_ICSSG1_MDIO.$suggestSolution              = "PRU_ICSSG1_MDIO0";
enet_icss1.PRU_ICSSG1_MDIO.MDC.$suggestSolution          = "PRG1_MDIO0_MDC";
enet_icss1.PRU_ICSSG1_MDIO.MDIO.$suggestSolution         = "PRG1_MDIO0_MDIO";
enet_icss1.PRU_ICSSG1_IEP.$suggestSolution               = "PRU_ICSSG1_IEP0";
enet_icss1.PRU_ICSSG1_IEP.EDC_LATCH_IN0.$suggestSolution = "PRG1_PRU0_GPO18";
enet_icss1.PRU_ICSSG1_IEP.EDC_SYNC_OUT0.$suggestSolution = "PRG1_PRU0_GPO19";
enet_icss1.PRU_ICSSG1_RGMII1.RD0.$suggestSolution        = "PRG1_PRU0_GPO0";
enet_icss1.PRU_ICSSG1_RGMII1.RD1.$suggestSolution        = "PRG1_PRU0_GPO1";
enet_icss1.PRU_ICSSG1_RGMII1.RD2.$suggestSolution        = "PRG1_PRU0_GPO2";
enet_icss1.PRU_ICSSG1_RGMII1.RD3.$suggestSolution        = "PRG1_PRU0_GPO3";
enet_icss1.PRU_ICSSG1_RGMII1.RXC.$suggestSolution        = "PRG1_PRU0_GPO6";
enet_icss1.PRU_ICSSG1_RGMII1.RX_CTL.$suggestSolution     = "PRG1_PRU0_GPO4";
enet_icss1.PRU_ICSSG1_RGMII1.TD0.$suggestSolution        = "PRG1_PRU0_GPO11";
enet_icss1.PRU_ICSSG1_RGMII1.TD1.$suggestSolution        = "PRG1_PRU0_GPO12";
enet_icss1.PRU_ICSSG1_RGMII1.TD2.$suggestSolution        = "PRG1_PRU0_GPO13";
enet_icss1.PRU_ICSSG1_RGMII1.TD3.$suggestSolution        = "PRG1_PRU0_GPO14";
enet_icss1.PRU_ICSSG1_RGMII1.TXC.$suggestSolution        = "PRG1_PRU0_GPO16";
enet_icss1.PRU_ICSSG1_RGMII1.TX_CTL.$suggestSolution     = "PRG1_PRU0_GPO15";
enet_icss1.PRU_ICSSG1_RGMII2.$suggestSolution            = "PRU_ICSSG1_RGMII2";
enet_icss1.PRU_ICSSG1_RGMII2.RD0.$suggestSolution        = "PRG1_PRU1_GPO0";
enet_icss1.PRU_ICSSG1_RGMII2.RD1.$suggestSolution        = "PRG1_PRU1_GPO1";
enet_icss1.PRU_ICSSG1_RGMII2.RD2.$suggestSolution        = "PRG1_PRU1_GPO2";
enet_icss1.PRU_ICSSG1_RGMII2.RD3.$suggestSolution        = "PRG1_PRU1_GPO3";
enet_icss1.PRU_ICSSG1_RGMII2.RXC.$suggestSolution        = "PRG1_PRU1_GPO6";
enet_icss1.PRU_ICSSG1_RGMII2.RX_CTL.$suggestSolution     = "PRG1_PRU1_GPO4";
enet_icss1.PRU_ICSSG1_RGMII2.TD0.$suggestSolution        = "PRG1_PRU1_GPO11";
enet_icss1.PRU_ICSSG1_RGMII2.TD1.$suggestSolution        = "PRG1_PRU1_GPO12";
enet_icss1.PRU_ICSSG1_RGMII2.TD2.$suggestSolution        = "PRG1_PRU1_GPO13";
enet_icss1.PRU_ICSSG1_RGMII2.TD3.$suggestSolution        = "PRG1_PRU1_GPO14";
enet_icss1.PRU_ICSSG1_RGMII2.TXC.$suggestSolution        = "PRG1_PRU1_GPO16";
enet_icss1.PRU_ICSSG1_RGMII2.TX_CTL.$suggestSolution     = "PRG1_PRU1_GPO15";


linker.cmd:

#include "ti_enet_config.h"

/* This is the stack that is used by code running within main()
 * In case of NORTOS,
 * - This means all the code outside of ISR uses this stack
 * In case of FreeRTOS
 * - This means all the code until vTaskStartScheduler() is called in main()
 *   uses this stack.
 * - After vTaskStartScheduler() each task created in FreeRTOS has its own stack
 */
--stack_size=8192
/* This is the heap size for malloc() API in NORTOS and FreeRTOS
 * This is also the heap used by pvPortMalloc in FreeRTOS
 */
--heap_size=34816
-e_vectors  /* This is the entry of the application, _vector MUST be plabed starting address 0x0 */

/* This is the size of stack when R5 is in IRQ mode
 * In NORTOS,
 * - Here interrupt nesting is disabled as of now
 * - This is the stack used by ISRs registered as type IRQ
 * In FreeRTOS,
 * - Here interrupt nesting is enabled
 * - This is stack that is used initally when a IRQ is received
 * - But then the mode is switched to SVC mode and SVC stack is used for all user ISR callbacks
 * - Hence in FreeRTOS, IRQ stack size is less and SVC stack size is more
 */
__IRQ_STACK_SIZE = 256;
/* This is the size of stack when R5 is in IRQ mode
 * - In both NORTOS and FreeRTOS nesting is disabled for FIQ
 */
__FIQ_STACK_SIZE = 256;
__SVC_STACK_SIZE = 4096; /* This is the size of stack when R5 is in SVC mode */
__ABORT_STACK_SIZE = 256;  /* This is the size of stack when R5 is in ABORT mode */
__UNDEFINED_STACK_SIZE = 256;  /* This is the size of stack when R5 is in UNDEF mode */

SECTIONS
{
    /* This has the R5F entry point and vector table, this MUST be at 0x0 */
    .vectors:{} palign(8) > R5F_VECS

    /* This has the R5F boot code until MPU is enabled,  this MUST be at a address < 0x80000000
     * i.e this cannot be placed in DDR
     */
    GROUP {
        .text.hwi: palign(8)
        .text.cache: palign(8)
        .text.mpu: palign(8)
        .text.boot: palign(8)
        .text:abort: palign(8) /* this helps in loading symbols when using XIP mode */
    } > MSRAM

    UNION:
    {
        .icssfw: palign(128)
        .icss_mem: type = NOLOAD {
#if (ENET_SYSCFG_ICSSG0_ENABLED == 1)
    #if(ENET_SYSCFG_DUAL_MAC == 1)
        #if(ENET_SYSCFG_DUALMAC_PORT1_ENABLED == 1)
            *(*gEnetSoc_icssg0HostPoolMem_0)
            *(*gEnetSoc_icssg0HostQueueMem_0)
            *(*gEnetSoc_icssg0ScratchMem_0)
            #if (ENET_SYSCFG_PREMPTION_ENABLE == 1)
                *(*gEnetSoc_icssg0HostPreQueueMem_0)
            #endif
        #else
            *(*gEnetSoc_icssg0HostPoolMem_1)
            *(*gEnetSoc_icssg0HostQueueMem_1)
            *(*gEnetSoc_icssg0ScratchMem_1)
            #if (ENET_SYSCFG_PREMPTION_ENABLE == 1)
                    *(*gEnetSoc_icssg0HostPreQueueMem_1)
            #endif
        #endif
    #endif
#endif
#if (ENET_SYSCFG_ICSSG1_ENABLED == 1)
    #if(ENET_SYSCFG_DUAL_MAC == 1)
        #if(ENET_SYSCFG_DUALMAC_PORT1_ENABLED == 1)
                *(*gEnetSoc_icssg1HostPoolMem_0)
                *(*gEnetSoc_icssg1HostQueueMem_0)
                *(*gEnetSoc_icssg1ScratchMem_0)
            #if (ENET_SYSCFG_PREMPTION_ENABLE == 1)
                *(*gEnetSoc_icssg1HostPreQueueMem_0)
            #endif
        #else
                *(*gEnetSoc_icssg1HostPoolMem_1)
                *(*gEnetSoc_icssg1HostQueueMem_1)
                *(*gEnetSoc_icssg1ScratchMem_1)
            #if (ENET_SYSCFG_PREMPTION_ENABLE == 1)
                *(*gEnetSoc_icssg1HostPreQueueMem_1)
            #endif
        #endif
    #endif
#endif
#if (ENET_SYSCFG_ICSSG0_ENABLED == 1)
    #if(ENET_SYSCFG_DUAL_MAC == 0)
        *(*gEnetSoc_icssg0PortPoolMem_0)
        *(*gEnetSoc_icssg0PortPoolMem_1)
        *(*gEnetSoc_icssg0HostPoolMem_0)
        *(*gEnetSoc_icssg0HostPoolMem_1)
        *(*gEnetSoc_icssg0HostQueueMem_0)
        *(*gEnetSoc_icssg0HostQueueMem_1)
        *(*gEnetSoc_icssg0ScratchMem_0)
        *(*gEnetSoc_icssg0ScratchMem_1)
        #if (ENET_SYSCFG_PREMPTION_ENABLE == 1)
            *(*gEnetSoc_icssg0HostPreQueueMem_0)
            *(*gEnetSoc_icssg0HostPreQueueMem_1)
        #endif
    #endif
#endif
#if (ENET_SYSCFG_ICSSG1_ENABLED == 1)
    #if(ENET_SYSCFG_DUAL_MAC == 0)
        *(*gEnetSoc_icssg1PortPoolMem_0)
        *(*gEnetSoc_icssg1PortPoolMem_1)
        *(*gEnetSoc_icssg1HostPoolMem_0)
        *(*gEnetSoc_icssg1HostPoolMem_1)
        *(*gEnetSoc_icssg1HostQueueMem_0)
        *(*gEnetSoc_icssg1HostQueueMem_1)
        *(*gEnetSoc_icssg1ScratchMem_0)
        *(*gEnetSoc_icssg1ScratchMem_1)
        #if (ENET_SYSCFG_PREMPTION_ENABLE == 1)
            *(*gEnetSoc_icssg1HostPreQueueMem_0)
            *(*gEnetSoc_icssg1HostPreQueueMem_1)
        #endif
    #endif
#endif
        }
    } > MSRAM


    /* This is rest of code. This can be placed in DDR if DDR is available and needed */
    GROUP {
        .text:   {} palign(8)   /* This is where code resides */
        .rodata: {} palign(8)   /* This is where const's go */
    } > DDR

    /* This is rest of initialized data. This can be placed in DDR if DDR is available and needed */
    GROUP {
        .data:   {} palign(8)   /* This is where initialized globals and static go */
    } > DDR


    /* This is rest of uninitialized data. This can be placed in DDR if DDR is available and needed */
    GROUP {
        .sysmem: {} palign(8)   /* This is where the malloc heap goes */
        .stack:  {} palign(8)   /* This is where the main() stack goes */
    } > DDR

    .enet_dma_mem {
        *(*ENET_DMA_DESC_MEMPOOL)
        *(*ENET_DMA_RING_MEMPOOL)
#if (ENET_SYSCFG_PKT_POOL_ENABLE == 1)
        *(*ENET_DMA_PKT_MEMPOOL)
#endif
    } (NOLOAD) > MSRAM
    GROUP {
        .bss:    {} palign(8)   /* This is where uninitialized globals go */
        RUN_START(__BSS_START)
        RUN_END(__BSS_END)
    } > DDR

    /* This is where the stacks for different R5F modes go */
    GROUP {
        .irqstack: {. = . + __IRQ_STACK_SIZE;} align(8)
        RUN_START(__IRQ_STACK_START)
        RUN_END(__IRQ_STACK_END)
        .fiqstack: {. = . + __FIQ_STACK_SIZE;} align(8)
        RUN_START(__FIQ_STACK_START)
        RUN_END(__FIQ_STACK_END)
        .svcstack: {. = . + __SVC_STACK_SIZE;} align(8)
        RUN_START(__SVC_STACK_START)
        RUN_END(__SVC_STACK_END)
        .abortstack: {. = . + __ABORT_STACK_SIZE;} align(8)
        RUN_START(__ABORT_STACK_START)
        RUN_END(__ABORT_STACK_END)
        .undefinedstack: {. = . + __UNDEFINED_STACK_SIZE;} align(8)
        RUN_START(__UNDEFINED_STACK_START)
        RUN_END(__UNDEFINED_STACK_END)
    } > DDR

    GROUP  :   {
    .resource_table : {
    } palign(4096)
    } > DDR_0
}

/*
NOTE: Below memory is reserved for DMSC usage
 - During Boot till security handoff is complete
   0x701E0000 - 0x701FFFFF (128KB)
 - After "Security Handoff" is complete (i.e at run time)
   0x701FC000 - 0x701FFFFF (16KB)

 Security handoff is complete when this message is sent to the DMSC,
   TISCI_MSG_SEC_HANDOVER

 This should be sent once all cores are loaded and all application
 specific firewall calls are setup.
*/

MEMORY
{
    R5F_VECS  : ORIGIN = 0x00000000 , LENGTH = 0x00000040
    R5F_TCMA  : ORIGIN = 0x00000040 , LENGTH = 0x00007FC0
    R5F_TCMB0 : ORIGIN = 0x41010000 , LENGTH = 0x00008000

    /* when using multi-core application's i.e more than one R5F/M4F active, make sure
     * this memory does not overlap with other R5F's
     */
    MSRAM     : ORIGIN = 0x70082F00 , LENGTH = 0xB9700


    /* This section can be used to put XIP section of the application in flash, make sure this does not overlap with
     * other CPUs. Also make sure to add a MPU entry for this section and mark it as cached and code executable
     */
    FLASH     : ORIGIN = 0x60200000 , LENGTH = 0x100000

    /* when using multi-core application's i.e more than one R5F/M4F active, make sure
     * this memory does not overlap with other R5F's
     */
    DDR_0     : ORIGIN = 0xA0100000 , LENGTH = 0x10000
    DDR       : ORIGIN = 0xA0200000 , LENGTH = 0x1F0000

}

  • Hello,

    Questions

    1) Boot flow
    Can you confirm for us which boot flow you are using? SPL, or SBL boot?

    2) Hardware
    Are you running tests on AM64x EVM? Or something else?

    Please disable the icssg instances in the Linux devicetree 

    I do not see you explicitly disabling the icssg instances in the Linux devicetree. If a devicetree node is defined, then it is assumed to be status = okay. So it is possible that Linux is grabbing these peripherals before the R5F cores can get to them. You should be able to search your boot logs like this:

    dmesg | grep -e pru -e remoteproc

    take a look at FAQ response "Allocate peripherals - Fix peripheral allocation conflicts"  RE: [FAQ] PROCESSOR-SDK-AM64X: How to enable PRU-ICSS Ethernet example with IPC remoteproc 

    Regards,

    Nick

  • Hello Nick,

    Thank you for your response.

    Regarding your questions:

    1) I'm using SPL boot flow.

    2) I'm using the AM64x EVM board without any modifications.

    The reason you do not see the disabling in the device trees is because the icssg instances have been removed completely from the device tree. That means they are not defined. Is it still assumed that status=okay?  

    Based on your suggestion I've added the instances back into the device tree and disabled them like in the FAQ:

    &icssg1_iep0 {
    
    pinctrl-names = "disabled";
    pinctrl-0 = <&icssg1_iep0_pins_default>;
    
    };
    
    &icssg0 {
    
    status = "disabled";
    
    };
    
    &icssg1 {
    
    status = "disabled";
    
    };
    
    &icssg1_eth {
    
    status = "disabled";
    
    };

    Unfortunately this leads to the same result. as shown in my first post.

    This is the output of dmesg | grep -e pru -e remoteproc:

    root@am64xx-evm:~# dmesg | grep -e pru -e remoteproc
    [    9.013810] k3-m4-rproc 5000000.m4fss: configured M4F for remoteproc mode
    [    9.029672] remoteproc remoteproc0: 5000000.m4fss is available
    [    9.050771] remoteproc remoteproc0: powering up 5000000.m4fss
    [    9.050808] remoteproc remoteproc0: Booting fw image am64-mcu-m4f0_0-fw, size 88248
    [    9.075061] remoteproc remoteproc0: remote processor 5000000.m4fss is now up
    [    9.169804] platform 78000000.r5f: configured R5F for remoteproc mode
    [    9.183723] remoteproc remoteproc1: 78000000.r5f is available
    [    9.196677] platform 78200000.r5f: configured R5F for remoteproc mode
    [    9.200185] remoteproc remoteproc2: 78200000.r5f is available
    [    9.215416] remoteproc remoteproc2: powering up 78200000.r5f
    [    9.215445] remoteproc remoteproc2: Booting fw image am64-main-r5f0_1-fw, size 141772
    [    9.255144] platform 78400000.r5f: configured R5F for remoteproc mode
    [    9.270172] remoteproc remoteproc3: 78400000.r5f is available
    [    9.277075] platform 78600000.r5f: configured R5F for remoteproc mode
    [    9.286324] remoteproc remoteproc4: 78600000.r5f is available
    [    9.300012] remoteproc remoteproc3: powering up 78400000.r5f
    [    9.300049] remoteproc remoteproc3: Booting fw image am64-main-r5f1_0-fw, size 93260
    [    9.300337] remoteproc remoteproc1: powering up 78000000.r5f
    [    9.300365] remoteproc remoteproc1: Booting fw image am64-main-r5f0_0-fw, size 3230748
    [    9.301909] remoteproc remoteproc4: powering up 78600000.r5f
    [    9.301946] remoteproc remoteproc4: Booting fw image am64-main-r5f1_1-fw, size 91520
    [    9.666732] remoteproc remoteproc1: remote processor 78000000.r5f is now up
    [    9.668773] remoteproc remoteproc3: remote processor 78400000.r5f is now up
    [    9.668880] remoteproc remoteproc4: remote processor 78600000.r5f is now up
    [    9.668963] remoteproc remoteproc2: remote processor 78200000.r5f is now up

    The R5F application is running on remoteproc1/r5f0_0 as shown in line 20 and below. 

     I appreciate your insights and further suggestions.

    Best regards
    Luca

  • Update:

    I’ve got the R5F ICSSG example working with Linux on my setup. The issue turned out to be U-Boot probing the Ethernet.

    The FAQ instructs you to patch the device tree at /board-support/ti-u-boot-xxxxx/arch/arm/dts/k3-am642-evm.dts.
    That’s correct for U-Boot 2024.04 and earlier, but not for 2025.01.

    For U-Boot 2025.01, patch the device tree at /board-support/ti-u-boot-xxxxx/dts/upstream/src/arm64/ti/k3-am642-evm.dts instead.

    All other steps in the FAQ still work with MCU-PLUS-SDK-AM64X v11.01.00.17 and PROCESSOR-SDK-LINUX-RT-AM64X v11.01.05.03.

    Best regards
    Luca