This thread has been locked.

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

66AK2L06: CPU1: failed to come online on 66AK2L06.

Part Number: 66AK2L06

Hi all,

I have worked on booting up secondary ARM core(aka CPU1) on 66AK2L06 almost two weeks with failure all the time.

I am using ti-processor-sdk-linux-k2l-evm-03.03.00.04(and also try ti-processor-sdk-linux-k2l-evm-03.02.00.05).

I also try prebuilt-images but still got failure.

I trace the secondary core startup flow.

Firstly, the CPU0 will call psci function in boot-monitor to power on CPU1.
Secondary, the CPU1 will first executes some code in boot-monitor  and then executes function secondary_startup in arch/arm/kernel/head.S
It seems that secondary_startup wouldn't be executed on CPU1.
I add "b __error_p" to this function as the first instruction but there isn't any error information on UART0 and the kernel will boot up.
If I add "b __error_p" to entry stext as the first instruction, it will display error information as expected(which is executed by CPU0) and kernel will stop booting up.
I have checked the boot-monitor has power on CPU1 with success.
I don't know why the  secondary_startup doesn't be executed by CPU1.

Maybe the CPU1 was hang all the time, so it doesn't execute any code both in boot-monitor or kernel.

I have checked power supply and its sequencing. There isn't any problem.

I upload my u-boot setting, kernel boot log, dts file(recovery from dtb) and kernel config for checking.

5857.uboot-env.txt
=> printenv
addr_mon=0x87000000
addr_secdb_key=0xc000000
addr_ubi=0x82000000
arch=arm
args_all=setenv bootargs console=ttyS0,115200n8 rootwait=1
args_net=setenv bootargs ${bootargs} rootfstype=nfs root=/dev/nfs rw nfsroot=${serverip}:${nfs_root},${nfs_options} ip=${ipaddr}:${serverip}:${gatewayip}:${netmask}:${hostname}:eth0:off
args_ramfs=setenv bootargs ${bootargs} rdinit=/sbin/init rw root=/dev/ram0 initrd=0x808080000,80M
args_ubi=setenv bootargs ${bootargs} earlyprintk rootfstype=ubifs root=ubi0:rootfs rootflags=sync rw ubi.mtd=ubifs,4096
baudrate=115200
board=ks2_evm
board_name=ks2_evm
boot=net
boot_fdt=try
bootcmd=run init_${boot} get_mon_${boot} run_mon init_fw_rd_${boot} get_fdt_${boot} get_kern_${boot} run_kern
bootdir=/boot
bootm_size=0x10000000
burn_ubi=nand erase.part ubifs; nand write ${addr_ubi} ubifs ${filesize}
burn_uboot_nand=nand erase 0 0x100000; nand write ${loadaddr} 0 ${filesize}
burn_uboot_spi=sf probe; sf erase 0 0x90000; sf write ${loadaddr} 0 ${filesize}
cpu=armv7
ethaddr=74:da:ea:1f:be:23
fdt_addr_r=0x88000000
fdtaddr=0x88000000
fdtcontroladdr=feee4fe0
gatewayip=172.16.2.1
get_fdt_net=tftp ${fdtaddr} ${name_fdt}
get_fdt_nfs=nfs ${fdtaddr} ${nfs_root}/boot/${name_fdt}
get_fdt_ramfs=dhcp ${fdtaddr} ${tftp_root}/${name_fdt}
get_fdt_ubi=ubifsload ${fdtaddr} ${bootdir}/${name_fdt}
get_fs_ramfs=dhcp ${rdaddr} ${tftp_root}/${name_fs}
get_kern_net=tftp ${loadaddr} ${name_kern}
get_kern_nfs=nfs ${loadaddr} ${nfs_root}/boot/${name_kern}
get_kern_ramfs=dhcp ${loadaddr} ${tftp_root}/${name_kern}
get_kern_ubi=ubifsload ${loadaddr} ${bootdir}/${name_kern}
get_mon_net=tftp ${addr_mon} ${name_mon}
get_mon_nfs=nfs ${addr_mon} ${nfs_root}/boot/${name_mon}
get_mon_ramfs=dhcp ${addr_mon} ${tftp_root}/${name_mon}
get_mon_ubi=ubifsload ${addr_mon} ${bootdir}/${name_mon}
get_ubi_net=dhcp ${addr_ubi} ${tftp_root}/${name_ubi}
get_ubi_nfs=nfs ${addr_ubi} ${nfs_root}/boot/${name_ubi}
get_uboot_net=dhcp ${loadaddr} ${tftp_root}/${name_uboot}
get_uboot_nfs=nfs ${loadaddr} ${nfs_root}/boot/${name_uboot}
init_fw_rd_net=tftp ${rdaddr} ${name_fw_rd}; run set_rd_spec
init_fw_rd_nfs=nfs ${rdaddr} ${nfs_root}/boot/${name_fw_rd}; run set_rd_spec
init_fw_rd_ramfs=setenv rd_spec -
init_fw_rd_ubi=ubifsload ${rdaddr} ${bootdir}/${name_fw_rd}; run set_rd_spec
init_net=run args_all args_net
init_nfs=setenv autoload no; dhcp; run args_all args_net
init_ramfs=run args_all args_ramfs get_fs_ramfs
init_ubi=run args_all args_ubi; ubi part ubifs; ubifsmount ubi:rootfs;
ipaddr=172.16.2.96
kernel_addr_r=0x82000000
loadaddr=0x82000000
mem_lpae=1
mtdparts=mtdparts=davinci_nand.0:1024k(bootloader)ro,512k(params)ro,-(ubifs)
name_fdt=keystone-k2l-evm.dtb
name_fs=arago-console-image-k2l-evm.cpio.gz
name_fw_rd=k2-fw-initrd.cpio.gz
name_kern=zImage
name_mon=skern-k2l.bin
name_ubi=k2l-evm-ubifs.ubi
name_uboot=u-boot-spi-k2l-evm.gph
netmask=255.255.255.0
nfs_options=v3,tcp,rsize=4096,wsize=4096
nfs_root=/home/jason/ti-processor-sdk-linux-k2l-evm-03.03.00.04/targetNFS
no_post=1
pxefile_addr_r=0x80100000
ramdisk_addr_r=0x88080000
rdaddr=0x88080000
run_kern=bootz ${loadaddr} ${rd_spec} ${fdtaddr}
run_mon=mon_install ${addr_mon}
scriptaddr=0x80000000
serverip=172.16.2.94
set_rd_spec=setenv rd_spec ${rdaddr}:${filesize}
soc=keystone
stderr=serial@02530c00
stdin=serial@02530c00
stdout=serial@02530c00
tftp_root=/
vendor=ti
ver=U-Boot 2016.05-00319-gf6861f0-dirty (Jun 15 2017 - 19:57:34 +0800)

Environment size: 3566/262140 bytes

5857.kernel-boot-log.txt
=> boot

netcp@26000000 Waiting for SGMII auto negotiation to complete. done
Using netcp@26000000 device
TFTP from server 172.16.2.94; our IP address is 172.16.2.96
Filename 'skern-k2l.bin'.
Load address: 0x87000000
Loading: ###
         1.5 MiB/s
done
Bytes transferred = 32832 (8040 hex)
K2_BM_15. 07-nogit SoC:k2l built:20:22:16, Jun 15 2017

## installed monitor @ 0xc1f8000, freq [166765698], status 203423743

netcp@26000000 Waiting for SGMII auto negotiation to complete. done
Using netcp@26000000 device
TFTP from server 172.16.2.94; our IP address is 172.16.2.96
Filename 'k2-fw-initrd.cpio.gz'.
Load address: 0x88080000
Loading: #####
         1.5 MiB/s
done
Bytes transferred = 64928 (fda0 hex)

netcp@26000000 Waiting for SGMII auto negotiation to complete. done
Using netcp@26000000 device
TFTP from server 172.16.2.94; our IP address is 172.16.2.96
Filename 'keystone-k2l-evm.dtb'.
Load address: 0x88000000
Loading: ####
         1.5 MiB/s
done
Bytes transferred = 45029 (afe5 hex)

netcp@26000000 Waiting for SGMII auto negotiation to complete. done
Using netcp@26000000 device
TFTP from server 172.16.2.94; our IP address is 172.16.2.96
Filename 'zImage'.
Load address: 0x82000000
Loading: #################################################################
         #################################################################
         #################################################################
         ###########################################
         1.5 MiB/s
done
Bytes transferred = 3485896 (3530c8 hex)
Kernel image @ 0x82000000 [ 0x000000 - 0x3530c8 ]
## Flattened Device Tree blob at 88000000
   Booting using the fdt blob at 0x88000000
   Loading Ramdisk to 8fff0000, end 8ffffda0 ... OK
   Loading Device Tree to 8ffe2000, end 8ffeffe4 ... OK

Starting kernel ...

Uncompressing Linux... done, booting the kernel.
[    0.000000] Booting Linux on physical CPU 0x0
[    0.000000] Initializing cgroup subsys cpuset
[    0.000000] Initializing cgroup subsys cpu
[    0.000000] Initializing cgroup subsys cpuacct
[    0.000000] Linux version 4.4.41-gf9f6f0db2d (jason@Vostro270) (gcc version 5.3.1 20160113 (Linaro GCC 5.3-2016.02) ) #28 SMP PREEMPT Thu Jun 15 19:21:48 CST 2017
[    0.000000] CPU: ARMv7 Processor [412fc0f4] revision 4 (ARMv7), cr=30c5387d
[    0.000000] CPU: PIPT / VIPT nonaliasing data cache, PIPT instruction cache
[    0.000000] Machine model: Texas Instruments Keystone 2 Lamarr EVM
[    0.000000] Switching physical address space to 0x800000000
[    0.000000] Reserved memory: created CMA memory pool at 0x000000081f800000, size 8 MiB
[    0.000000] Reserved memory: initialized node dsp_common_cma_pool, compatible id shared-dma-pool
[    0.000000] Reserved memory: created DMA memory pool at 0x0000000820000000, size 256 MiB
[    0.000000] Reserved memory: initialized node dsp_reserved_mpm_area, compatible id shared-dma-pool
[    0.000000] cma: Reserved 24 MiB at 0x000000087e400000
[    0.000000] Forcing write-allocate cache policy for SMP
[    0.000000] Memory policy: Data cache writealloc
[    0.000000] psci: probing for conduit method from DT.
[    0.000000] psci: Using PSCI v0.1 Function IDs from DT
[    0.000000] PERCPU: Embedded 11 pages/cpu @de5b0000 s14848 r8192 d22016 u45056
[    0.000000] Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 358720
[    0.000000] Kernel command line: console=ttyS0,115200n8 rootwait=1 rootfstype=nfs root=/dev/nfs rw nfsroot=172.16.2.94:/home/jason/ti-processor-sdk-linux-k2l-evm-03.03.00.04/targetNFS,v3,tcp,rsize=4096,wsize=4096 ip=172.16.2.96:172.16.2.94:172.16.2.1:255.255.255.0::eth0:off
[    0.000000] PID hash table entries: 2048 (order: 1, 8192 bytes)
[    0.000000] Dentry cache hash table entries: 65536 (order: 6, 262144 bytes)
[    0.000000] Inode-cache hash table entries: 32768 (order: 5, 131072 bytes)
[    0.000000] Memory: 1385796K/1441792K available (6587K kernel code, 259K rwdata, 2272K rodata, 288K init, 296K bss, 23228K reserved, 32768K cma-reserved, 892928K highmem)
[    0.000000] Virtual kernel memory layout:
[    0.000000]     vector  : 0xffff0000 - 0xffff1000   (   4 kB)
[    0.000000]     fixmap  : 0xffc00000 - 0xfff00000   (3072 kB)
[    0.000000]     vmalloc : 0xf0800000 - 0xff800000   ( 240 MB)
[    0.000000]     lowmem  : 0xc0000000 - 0xf0000000   ( 768 MB)
[    0.000000]     pkmap   : 0xbfe00000 - 0xc0000000   (   2 MB)
[    0.000000]     modules : 0xbf000000 - 0xbfe00000   (  14 MB)
[    0.000000]       .text : 0xc0008000 - 0xc08af044   (8861 kB)
[    0.000000]       .init : 0xc08b0000 - 0xc08f8000   ( 288 kB)
[    0.000000]       .data : 0xc08f8000 - 0xc0938dd0   ( 260 kB)
[    0.000000]        .bss : 0xc093a000 - 0xc09840c4   ( 297 kB)
[    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=2, Nodes=1
[    0.000000] Preemptible hierarchical RCU implementation.
[    0.000000]  Build-time adjustment of leaf fanout to 32.
[    0.000000]  RCU restricting CPUs from NR_CPUS=8 to nr_cpu_ids=2.
[    0.000000] RCU: Adjusting geometry for rcu_fanout_leaf=32, nr_cpu_ids=2
[    0.000000] NR_IRQS:16 nr_irqs:16 16
[    0.000000] GIC: Using split EOI/Deactivate mode
[    0.000000] of_psc_clk_init: error registering clk clkpcie1
[    0.000000] Architected cp15 timer(s) running at 166.76MHz (phys).
[    0.000000] clocksource: arch_sys_counter: mask: 0xffffffffffffff max_cycles: 0x2676165034, max_idle_ns: 440795202922 ns
[    0.000004] sched_clock: 56 bits at 166MHz, resolution 5ns, wraps every 4398046511103ns
[    0.000015] Switching to timer-based delay loop, resolution 5ns
[    0.000207] keystone timer clock @166765707 Hz
[    0.000483] Console: colour dummy device 80x30
[    0.000504] Calibrating delay loop (skipped), value calculated using timer frequency.. 333.53 BogoMIPS (lpj=1667656)
[    0.000518] pid_max: default: 32768 minimum: 301
[    0.000617] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes)
[    0.000627] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes)
[    0.001162] Initializing cgroup subsys io
[    0.001179] Initializing cgroup subsys memory
[    0.001205] Initializing cgroup subsys devices
[    0.001217] Initializing cgroup subsys freezer
[    0.001232] Initializing cgroup subsys perf_event
[    0.001245] Initializing cgroup subsys pids
[    0.001271] CPU: Testing write buffer coherency: ok
[    0.001506] /cpus/cpu@0 missing clock-frequency property
[    0.001538] /cpus/cpu@1 missing clock-frequency property
[    0.001548] CPU0: thread -1, cpu 0, socket 0, mpidr 80000000
[    0.001589] Setting up static identity map for 0x80008300 - 0x80008438
[    1.081705] CPU1: failed to come online
[    1.081745] Brought up 1 CPUs
[    1.081756] SMP: Total of 1 processors activated (333.53 BogoMIPS).
[    1.081764] CPU: All CPU(s) started in HYP mode.
[    1.081769] CPU: Virtualization extensions available.
[    1.082147] devtmpfs: initialized
[    1.101914] VFP support v0.3: implementor 41 architecture 4 part 30 variant f rev 0
[    1.102259] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
[    1.112562] pinctrl core: initialized pinctrl subsystem
[    1.113392] NET: Registered protocol family 16
[    1.114468] DMA: preallocated 256 KiB pool for atomic coherent allocations
[    1.161950] cpuidle: using governor ladder
[    1.222078] cpuidle: using governor menu
[    1.231920] irq: no irq domain found for /soc/keystone_irq@26202a0 !
[    1.232268] irq: no irq domain found for /soc/keystone_irq@26202a0 !
[    1.232545] irq: no irq domain found for /soc/keystone_irq@26202a0 !
[    1.232847] irq: no irq domain found for /soc/keystone_irq@26202a0 !
[    1.241375] No ATAGs?
[    1.241401] hw-breakpoint: found 5 (+1 reserved) breakpoint and 4 watchpoint registers.
[    1.241410] hw-breakpoint: maximum watchpoint size is 8 bytes.
[    1.337340] media: Linux media interface: v0.10
[    1.337399] Linux video capture interface: v2.00
[    1.337450] pps_core: LinuxPPS API ver. 1 registered
[    1.337458] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
[    1.337484] PTP clock support registered
[    1.337538] EDAC MC: Ver: 3.0.0
[    1.343184] Advanced Linux Sound Architecture Driver Initialized.
[    1.344035] clocksource: Switched to clocksource arch_sys_counter
[    1.354299] NET: Registered protocol family 2
[    1.354849] TCP established hash table entries: 4096 (order: 2, 16384 bytes)
[    1.354889] TCP bind hash table entries: 4096 (order: 3, 32768 bytes)
[    1.354957] TCP: Hash tables configured (established 4096 bind 4096)
[    1.355003] UDP hash table entries: 256 (order: 1, 8192 bytes)
[    1.355025] UDP-Lite hash table entries: 256 (order: 1, 8192 bytes)
[    1.355169] NET: Registered protocol family 1
[    1.365595] RPC: Registered named UNIX socket transport module.
[    1.365608] RPC: Registered udp transport module.
[    1.365615] RPC: Registered tcp transport module.
[    1.365622] RPC: Registered tcp NFSv4.1 backchannel transport module.
[    1.365861] Unpacking initramfs...
[    1.370992] Freeing initrd memory: 64K (cfff0000 - d0000000)
[    1.371224] hw perfevents: enabled with armv7_cortex_a15 PMU driver, 7 counters available
[    1.372120] platform alarmtimer: set dma_pfn_offset00780000
[    1.372517] futex hash table entries: 512 (order: 3, 32768 bytes)
[    1.391041] squashfs: version 4.0 (2009/01/31) Phillip Lougher
[    1.401871] NFS: Registering the id_resolver key type
[    1.401900] Key type id_resolver registered
[    1.401908] Key type id_legacy registered
[    1.401970] ntfs: driver 2.1.32 [Flags: R/O].
[    1.403682] bounce: pool size: 64 pages
[    1.403865] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 247)
[    1.403882] io scheduler noop registered
[    1.403895] io scheduler deadline registered
[    1.403930] io scheduler cfq registered (default)
[    1.404192] keystone_irq soc:keystone_irq@26202a0: irqchip registered, nr_irqs 28
[    1.405019] ti,keystone-serdes 232a000.phy: init fw ks2_gbe_serdes.bin: version 3.3.0.2c
[    1.419660] keystone-navigator-qmss soc:qmss@2a40000: qmgr start queue 0, number of queues 8192
[    1.419858] keystone-navigator-qmss soc:qmss@2a40000: added qmgr start queue 0, num of queues 8192, reg_peek f0940000, reg_status f0932000, reg_config f0934000, reg_region f0936000, reg_push f0bc0000, reg_pop f0c00000
[    1.420331] keystone-navigator-qmss soc:qmss@2a40000: firmware file ks2_qmss_pdsp_acc48.bin downloaded for pdsp0
[    1.420437] keystone-navigator-qmss soc:qmss@2a40000: firmware file ks2_qmss_pdsp_qos.bin downloaded for pdsp3
[    1.420531] keystone-navigator-qmss soc:qmss@2a40000: firmware file ks2_qmss_pdsp_qos.bin downloaded for pdsp7
[    1.421835] keystone-navigator-qmss soc:qmss@2a40000: qos: sched port @8096, drop sched @8000
[    1.423986] keystone-navigator-qmss soc:qmss@2a40000: qos: sched port @6496, drop sched @6400
[    1.426620] keystone-navigator-qmss soc:qmss@2a40000: qos version 0x200010b, magic valid
[    1.427212] keystone-navigator-qmss soc:qmss@2a40000: qos version 0x200010b, magic valid
[    1.428680] keystone-navigator-dma soc:knav_dmas@0: DMA dma_gbe registered 149 logical channels, flows 128, tx chans: 21, rx chans: 91
[    1.488691] Serial: 8250/16550 driver, 10 ports, IRQ sharing disabled
[    1.488790] platform serial8250: set dma_pfn_offset00780000
[    1.492118] console [ttyS0] disabled
[    1.492181] 2530c00.serial: ttyS0 at MMIO 0x2530c00 (irq = 26, base_baud = 10422856) is a 16550A
[    2.354199] console [ttyS0] enabled
[    2.358743] 2531000.serial: ttyS1 at MMIO 0x2531000 (irq = 27, base_baud = 10422856) is a 16550A
[    2.368651] 2348400.serial: ttyS2 at MMIO 0x2348400 (irq = 68, base_baud = 10422856) is a 16550A
[    2.378486] 2348800.serial: ttyS3 at MMIO 0x2348800 (irq = 69, base_baud = 10422856) is a 16550A
[    2.387999] [drm] Initialized drm 1.1.0 20060810
[    2.481198] loop: module loaded
[    2.484794] at24 0-0050: 131072 byte 24c1024 EEPROM, writable, 1 bytes/write
[    2.493785] spi_davinci 21000400.spi: DMA is not supported (-19)
[    2.500588] m25p80 spi32766.0: unrecognized JEDEC id bytes: c2, 25, f8
[    2.507181] spi_davinci 21000400.spi: Controller at 0xf0b94400
[    2.513335] spi_davinci 21000600.spi: DMA is not supported (-19)
[    2.519796] spi_davinci 21000600.spi: Controller at 0xf0b96600
[    2.527220] platform Fixed MDIO bus.0: set dma_pfn_offset00780000
[    2.533499] libphy: Fixed MDIO Bus: probed
[    2.584086] davinci_mdio 26200f00.mdio: davinci mdio revision 1.7
[    2.590154] libphy: 26200f00.mdio: probed
[    2.605299] davinci_mdio 26200f00.mdio: phy[0]: device 26200f00.mdio:00, driver Broadcom BCM54616S
[    2.614307] davinci_mdio 26200f00.mdio: phy[1]: device 26200f00.mdio:01, driver Broadcom BCM54616S
[    4.656093] serdes PLL not locked
[    7.216261] serdes PLL not locked
[    7.742407] netcp-1.0 2620110.netcp: cpts: overflow check period 400
[    7.748777] netcp-1.0 2620110.netcp: CPTS: ref_clk_freq:500297122 calc_mult:4292416553 calc_shift:31 error:-1 nsec/sec
[    7.759456] netcp-1.0 2620110.netcp: initialized cpsw ale version 1.4
[    7.765901] netcp-1.0 2620110.netcp: ALE Table size 1024
[    7.773115] netcp-1.0 2620110.netcp: module(netcp-xgbe) not used for device
[    7.780115] netcp-1.0 2620110.netcp: module(netcp-pa) not used for device
[    7.789263] netcp-1.0 2620110.netcp: Using PA fw version 03.00.02.01:0x03000201 for pdsp 0
[    7.797617] netcp-1.0 2620110.netcp: Using PA fw version 03.00.02.01:0x03000201 for pdsp 1
[    7.805919] netcp-1.0 2620110.netcp: Using PA fw version 03.00.02.01:0x03000201 for pdsp 2
[    7.814215] netcp-1.0 2620110.netcp: Using PA fw version 03.00.02.01:0x03000201 for pdsp 3
[    7.822440] netcp-1.0 2620110.netcp: Using PA fw version 03.00.02.01:0x03000201 for pdsp 4
[    7.830741] netcp-1.0 2620110.netcp: Using PA fw version 03.00.02.01:0x03000201 for pdsp 5
[    7.839123] netcp-1.0 2620110.netcp: Using PA fw version 03.00.02.01:0x03000201 for pdsp 6
[    7.847417] netcp-1.0 2620110.netcp: Using PA fw version 03.00.02.01:0x03000201 for pdsp 7
[    7.855717] netcp-1.0 2620110.netcp: Using PA fw version 03.00.02.01:0x03000201 for pdsp 8
[    7.863942] netcp-1.0 2620110.netcp: Using PA fw version 03.00.02.01:0x03000201 for pdsp 9
[    7.872262] netcp-1.0 2620110.netcp: Using PA fw version 03.00.02.01:0x03000201 for pdsp 10
[    7.880639] netcp-1.0 2620110.netcp: Using PA fw version 03.00.02.01:0x03000201 for pdsp 11
[    7.889018] netcp-1.0 2620110.netcp: Using PA fw version 03.00.02.01:0x03000201 for pdsp 12
[    7.897365] netcp-1.0 2620110.netcp: Using PA fw version 03.00.02.01:0x03000201 for pdsp 13
[    7.905712] netcp-1.0 2620110.netcp: Using PA fw version 03.00.02.01:0x03000201 for pdsp 14
[    7.914697] netcp-1.0 2620110.netcp: rx_chan_name netrx0-pa for port 1
[    7.921246] netcp-1.0 2620110.netcp: rx_chan_name netrx1-pa for port 2
[    7.928887] 2620738.usb_phy supply vcc not found, using dummy regulator
[    7.936121] mousedev: PS/2 mouse device common for all mice
[    7.952267] i2c /dev entries driver
[    7.958528] ledtrig-cpu: registered to indicate activity on CPUs
[    7.966939] nand: device found, Manufacturer ID: 0x2c, Chip ID: 0xa5
[    7.973264] nand: Micron MT29F16G08ADBCAH4
[    7.977426] nand: 2048 MiB, SLC, erase size: 256 KiB, page size: 4096, OOB size: 224
[    7.985213] nand: WARNING: 30000000.nand: the ECC used on your system is too weak compared to the one required by the NAND chip
[    7.999115] Bad block table not found for chip 0
[    8.006119] Bad block table not found for chip 0
[    8.010713] Scanning device for bad blocks
[    8.264052] (NULL net_device): Link is Down
[    8.268221] (NULL net_device): Link is Down
[    8.410189] nand_bbt: error while writing bad block table -5
[    8.416455] davinci_nand: probe of 30000000.nand failed with error -5
[    8.423943] platform snd-soc-dummy: set dma_pfn_offset00780000
[    8.431588] NET: Registered protocol family 10
[    8.447097] sit: IPv6 over IPv4 tunneling driver
[    8.452327] NET: Registered protocol family 17
[    8.457108] Key type dns_resolver registered
[    8.461535] Registering SWP/SWPB emulation handler
[    8.478622] hctosys: unable to open rtc device (rtc0)
[    8.574664] netcp-1.0 2620110.netcp eth0: Link is Down
[    8.580212] pps pps0: new PPS source ptp0
[    8.589415] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready
[   12.574444] netcp-1.0 2620110.netcp eth0: Link is Up - 1Gbps/Full - flow control rx/tx
[   12.582384] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
[   12.604378] IP-Config: Complete:
[   12.607601]      device=eth0, hwaddr=74:da:ea:1f:be:23, ipaddr=172.16.2.96, mask=255.255.255.0, gw=172.16.2.1
[   12.617621]      host=172.16.2.96, domain=, nis-domain=(none)
[   12.623341]      bootserver=172.16.2.94, rootserver=172.16.2.94, rootpath=
[   12.646516] ALSA device list:
[   12.649470]   No soundcards found.
[   12.675504] VFS: Mounted root (nfs filesystem) on device 0:14.
[   12.681954] devtmpfs: mounted
[   12.685198] Freeing unused kernel memory: 288K (c08b0000 - c08f8000)
[   12.691520] This architecture does not have kernel memory protection.
[   13.141632] systemd[1]: System time before build time, advancing clock.
[   13.231218] random: systemd: uninitialized urandom read (16 bytes read, 66 bits of entropy available)
[   13.257979] random: systemd: uninitialized urandom read (16 bytes read, 67 bits of entropy available)
[   13.270203] systemd[1]: systemd 229 running in system mode. (+PAM -AUDIT -SELINUX +IMA -APPARMOR +SMACK +SYSVINIT +UTMP -LIBCRYPTSETUP -GCRYPT -GNUTLS +ACL +XZ -LZ4 -SECCOMP +BLKID -ELFUTILS +KMOD -IDN)
[   13.288735] systemd[1]: Detected architecture arm.

Welcome to Arago 2016.12!

[   13.323160] systemd[1]: Set hostname to <k2l-evm>.
[   13.462594] random: systemd-sysv-ge: uninitialized urandom read (16 bytes read, 82 bits of entropy available)
[   13.502510] random: systemd-sysv-ge: uninitialized urandom read (16 bytes read, 83 bits of entropy available)
[   13.550014] random: systemd-sysv-ge: uninitialized urandom read (16 bytes read, 85 bits of entropy available)
[   13.672719] random: systemd: uninitialized urandom read (16 bytes read, 89 bits of entropy available)
[   13.682299] random: systemd: uninitialized urandom read (16 bytes read, 89 bits of entropy available)
[   13.706348] random: systemd: uninitialized urandom read (16 bytes read, 90 bits of entropy available)
[   13.716229] random: systemd: uninitialized urandom read (16 bytes read, 90 bits of entropy available)
[   13.767946] random: systemd: uninitialized urandom read (16 bytes read, 95 bits of entropy available)
[   14.152548] systemd[1]: sysinit.target: Found ordering cycle on sysinit.target/start
[   14.160361] systemd[1]: sysinit.target: Found dependency on alignment.service/start
[   14.168087] systemd[1]: sysinit.target: Found dependency on basic.target/start
[   14.175414] systemd[1]: sysinit.target: Found dependency on sockets.target/start
[   14.182792] systemd[1]: sysinit.target: Found dependency on rpcbind.socket/start
[   14.190439] systemd[1]: sysinit.target: Found dependency on sysinit.target/start
[   14.197903] systemd[1]: sysinit.target: Breaking ordering cycle by deleting job alignment.service/start
[   14.207387] systemd[1]: alignment.service: Job alignment.service/start deleted to break ordering cycle starting with sysinit.target/start
[ SKIP ] Ordering cycle found, skipping alignment.service
[   14.247060] systemd[1]: Reached target Swap.
[  OK  ] Reached target Swap.
[   14.274622] systemd[1]: Started Forward Password Requests to Wall Directory Watch.
[  OK  ] Started Forward Password Requests to Wall Directory Watch.
[   14.306066] systemd[1]: Created slice User and Session Slice.
[  OK  ] Created slice User and Session Slice.
[   14.336718] systemd[1]: Listening on udev Kernel Socket.
[  OK  ] Listening on udev Kernel Socket.
[   14.397707] systemd[1]: Listening on Network Service Netlink Socket.
[  OK  ] Listening on Network Service Netlink Socket.
[   14.424274] systemd[1]: Reached target Remote File Systems.
[  OK  ] Reached target Remote File Systems.
[   14.455069] systemd[1]: Listening on Journal Socket (/dev/log).
[  OK  ] Listening on Journal Socket (/dev/log).
[   14.484475] systemd[1]: Listening on Journal Socket.
[  OK  ] Listening on Journal Socket.
[   14.515199] systemd[1]: Created slice System Slice.
[  OK  ] Created slice System Slice.
[   14.538058] systemd[1]: Starting Create list of required static device nodes for the current kernel...
         Starting Create list of required st... nodes for the current kernel...
[   14.593254] systemd[1]: Mounting POSIX Message Queue File System...
         Mounting POSIX Message Queue File System...
[   14.627848] systemd[1]: Starting Remount Root and Kernel File Systems...
         Starting Remount Root and Kernel File Systems...
[   14.665286] systemd[1]: Created slice system-getty.slice.
[  OK  ] Created slice system-getty.slice.
[   14.705894] systemd[1]: Starting Load Kernel Modules...
         Starting Load Kernel Modules...
[   14.726554] systemd[1]: Created slice system-serial\x2dgetty.slice.
[  OK  ] Created slice system-serial\x2dgetty.slice.
[   14.764972] systemd[1]: Reached target Slices.
[  OK     14.770991] CMEMK module: reference Linux version 4.4.41
m] Reached targe[   14.776809] random: nonblocking pool is initialized
t Slices.
[   14.783609] allocated heap buffer 0xc080000 of size 0xc0000
[   14.789613] cmemk initialized
[   14.797533] systemd[1]: Mounting Debug File System...
         Mounting Debug File System...
[   14.818732] systemd[1]: Mounting Temporary Directory...
[   14.824262] cryptodev: driver 1.8 loaded.
         Mounting Temporary Directory...
[   14.869993] systemd[1]: Starting Setup Virtual Console...
         Starting Setup Virtual Console...
[   14.925645] systemd[1]: Listening on /dev/initctl Compatibility Named Pipe.
[  OK  ] Listening on /dev/initctl Compatibility Named Pipe.
[   14.954546] systemd[1]: Listening on Syslog Socket.
[  OK  ] Listening on Syslog Socket.
[   14.964753] NET: Registered protocol family 41
[   14.974727] systemd[1]: Started Dispatch Password Requests to Console Directory Watch.
[  OK  ] Started Dispatch Password Requests to Console Directory Watch.
[   14.991994] uio_module_drv soc:mpax: registered misc device mpax
[   14.998417] uio_module_drv soc:edma3: registered misc device edma3
[   15.004863] systemd[1]: Reached target Paths.
[  OK     15.010252] uio_module_drv soc:secmgr: registered misc device secmgr
m] Reached targe[   15.018065] uio_module_drv soc:qmss: registered misc device qmss
t Paths.
[   15.033850] uio_module_drv soc:srss: registered misc device srss
[   15.045040] systemd[1]: Listening on udev Control Socket.
[  OK  ] Listening on udev Control Socket.
[   15.077162] systemd[1]: Starting Journal Service...
         Starting Journal Service...
[   15.109865] systemd[1]: Mounted Debug File System.
[  OK  ] Mounted Debug File System.
[   15.123421] systemd[1]: Mounted POSIX Message Queue File System.
[  OK  ] Mounted POSIX Message Queue File System.
[   15.151826] systemd[1]: Mounted Temporary Directory.
[  OK  ] Mounted Temporary Directory.
[   15.185851] systemd[1]: Started Create list of required static device nodes for the current kernel.
[  OK  ] Started Create list of required sta...ce nodes for the current kernel.
[   15.215992] systemd[1]: Started Remount Root and Kernel File Systems.
[  OK  ] Started Remount Root and Kernel File Systems.
[   15.235794] systemd[1]: Started Load Kernel Modules.
[  OK  ] Started Load Kernel Modules.
[   15.257011] systemd[1]: Started Setup Virtual Console.
[  OK  ] Started Setup Virtual Console.
[   15.310139] systemd[1]: Started Journal Service.
[  OK  ] Started Journal Service.
         Starting Apply Kernel Variables...
         Starting Flush Journal to Persistent Storage...
         Starting udev Coldplug all Devices...
         Starting Create Static Device Nodes in /dev...
[  OK  ] Started Apply Kernel Variables.
[  OK  ] Started Create Static Device Nodes in /dev.
[   16.082791] systemd-journald[104]: Received request to flush runtime journal from PID 1
[  OK  ] Started Flush Journal to Persistent Storage.
[  OK  ] Reached target Local File Systems (Pre).
         Mounting /var/volatile...
         Mounting /media/ram...
         Starting udev Kernel Device Manager...
[  OK  ] Mounted /var/volatile.
[  OK  ] Mounted /media/ram.
[  OK  ] Started udev Kernel Device Manager.
         Starting Load/Save Random Seed...
[  OK  ] Reached target Local File Systems.
         Starting Create Volatile Files and Directories...
[  OK  ] Started Load/Save Random Seed.
[  OK  ] Started Create Volatile Files and Directories.
         Starting Update UTMP about System Boot/Shutdown...
         Starting Network Time Synchronization...
[   17.843184] keystone-rproc 10800000.dsp0: assigned reserved memory node dsp_common_cma_pool
[   17.958899]  remoteproc0: 10800000.dsp0 is available
[   17.995117]  remoteproc0: Note: remoteproc is still under development and considered experimental.
[   18.106672]  remoteproc0: THE BINARY FORMAT IS NOT YET FINALIZED, and backward compatibility isn't yet guaranteed.
[  OK  ] Started udev Coldplug all Devices.
[  OK  ] Started Network Time Synchronization.
[   18.189433] davinci-wdt 22f0080.wdt: heartbeat 60 sec
[   18.221706] keystone-rproc 11800000.dsp1: assigned reserved memory node dsp_common_cma_pool
[   18.325806]  remoteproc1: 11800000.dsp1 is available
[   18.330754]  remoteproc1: Note: remoteproc is still under development and considered experimental.
[   18.465359]  remoteproc1: THE BINARY FORMAT IS NOT YET FINALIZED, and backward compatibility isn't yet guaranteed.
[   18.586397] keystone-rproc 12800000.dsp2: assigned reserved memory node dsp_common_cma_pool
[   18.647594]  remoteproc2: 12800000.dsp2 is available
[   18.674836]  remoteproc2: Note: remoteproc is still under development and considered experimental.
[   18.790705]  remoteproc2: THE BINARY FORMAT IS NOT YET FINALIZED, and backward compatibility isn't yet guaranteed.
[  OK  ] Started Update UTMP about System Boot/Shutdown.
[   18.901438] keystone-dsp-mem a0000000.dspmem: registered misc device dspmem
[   18.953285] keystone-rproc 13800000.dsp3: assigned reserved memory node dsp_common_cma_pool
[   19.034361]  remoteproc3: 13800000.dsp3 is available
[   19.075573]  remoteproc3: Note: remoteproc is still under development and considered experimental.
[   19.167045]  remoteproc3: THE BINARY FORMAT IS NOT YET FINALIZED, and backward compatibility isn't yet guaranteed.
[  OK  ] Found device /dev/ttyS0.
[  OK  ] Reached target System Time Synchronized.
         Starting Synchronize System and HW clocks...
[FAILED] Failed to start Synchronize System and HW clocks.
See 'systemctl status sync-clocks.service' for details.
[   19.989751] keystone-crypto soc:subsys@26080000:crypto@0: crypto accelerator enabled
[  OK  ] Reached target System Initialization.
[  OK  ] Listening on dropbear.socket.
[  OK  ] Listening on D-Bus System Message Bus Socket.
[  OK  ] Listening on RPCbind Server Activation Socket.
[  OK  ] Reached target Sockets.
[  OK  ] Reached target Basic System.
[  OK  ] Started System Logging Service.
[  OK  ] Started System Logger Daemon.
         Starting Permit User Sessions...
         Starting Ethernet Bridge Filtering Tables...
         Starting telnetd.service...
         Starting Login Service...
[  OK  ] Started strongSwan IPsec IKEv1/IKEv2 daemon using ipsec.conf.
         Starting Print notice about GPLv3 packages...
         Starting TI Multiproc Manager...
[  OK  ] Started Kernel Logging Service.
[  OK  ] Started D-Bus System Message Bus.
         Starting softhsm-daemon.service...
         Starting Network Service...
[  OK  ] Started Daily Cleanup of Temporary Directories.
[  OK  ] Reached target Timers.
         Starting run_srss_tc.service...
         Starting tiipclad-daemon.service...
[  OK  ] Started Permit User Sessions.
[   21.809280] NET: Registered protocol family 15
[  OK  ] Started Ethernet Bridge Filtering Tables.
[  OK  ] Started telnetd.service.
[  OK  ] Started run_srss_tc.service.
[  OK  ] Started tiipclad-daemon.service.
[  OK  ] Started Network Service.
[   22.505825] IPsec: esp4_init: can't add xfrm type
[  OK  ] Started softhsm-daemon.service.
[  OK  ] Started TI Multiproc Manager.
[   23.095942] Initializing XFRM netlink socket
[   24.607408] platform xhci-hcd.0.auto: set dma_pfn_offset00780000
[   24.785359] usbcore: registered new interface driver usbfs
[   24.821010] usbcore: registered new interface driver hub
[   24.858809] usbcore: registered new device driver usb
[   24.933411] xhci-hcd xhci-hcd.0.auto: xHCI Host Controller
[   24.965492] xhci-hcd xhci-hcd.0.auto: new USB bus registered, assigned bus number 1
[   25.003151] xhci-hcd xhci-hcd.0.auto: hcc params 0x0298f06d hci version 0x100 quirks 0x00210010
[   25.073384] xhci-hcd xhci-hcd.0.auto: irq 33, io mem 0x02690000
[   25.122763] hub 1-0:1.0: USB hub found
[   25.142178] hub 1-0:1.0: 1 port detected
[   25.183390] xhci-hcd xhci-hcd.0.auto: xHCI Host Controller
[   25.211401] xhci-hcd xhci-hcd.0.auto: new USB bus registered, assigned bus number 2
[   25.247510] usb usb2: We don't know the algorithms for LPM for this host, disabling LPM.
[   25.319045] hub 2-0:1.0: USB hub found
[   25.344932] hub 2-0:1.0: 1 port detected
***************************************************************
***************************************************************
NOTICE: This file system contains the following GPLv3 packages:
        autoconf
        binutils-dev
        binutils
        bison-dev
        bison
        cpp-symlinks
        cpp
        dosfstools
        g++-symlinks
        g++
        gawk-dev
        gawk
        gcc-symlinks
        gcc
        gdb
        gdbc6x
        gdbserver
        gstreamer1.0-libav
        hidapi
        libcairo-perf-utils
        libgmp10
        libidn11
        libmpc3
        libmpfr4
        m4-dev
        m4
        make
        nettle
        swig-dev
        swig

If you do not wish to distribute GPLv3 components please remove
the above packages prior to distribution.  This can be done using
the opkg remove command.  i.e.:
    opkg remove <package>
Where <package> is the name printed in the list above

NOTE: If the package is a dependency of another package you
      will be notified of the dependent packages.  You should
      use the --force-removal-of-dependent-packages option to
      also remove the dependent packages as well
***************************************************************
***************************************************************
[  OK  ] Started Print notice about GPLv3 packages.
[  OK  ] Started Login Service.
[  OK  ] Listening on Load/Save RF Kill Switch Status /dev/rfkill Watch.
         Starting TI MultiCore Tools Daemon...
[  OK  ] Reached target Network.
         Starting Lightning Fast Webserver With Light System Requirements...
         Starting Network Name Resolution...
[  OK  ] Started Vsftpd ftp daemon.
         Starting thttpd.service...
[  OK  ] Started Getty on tty1.
[  OK  ] Started Serial Getty on ttyS0.
[  OK  ] Started Lightning Fast Webserver With Light System Requirements.
[  OK  ] Started Network Name Resolution.
[  OK  ] Started thttpd.service.
         Starting rng-tools.service...
[   31.357295]  remoteproc0: powering up 10800000.dsp0
[   31.379266]  remoteproc0: Booting unspecified pre-loaded fw image
[   31.405408]  remoteproc0: remote processor 10800000.dsp0 is now up
[   31.432259] virtio_rpmsg_bus virtio0: creating channel rpmsg-proto addr 0x3d
[   31.441110] virtio_rpmsg_bus virtio0: rpmsg host is online
[   31.455886]  remoteproc0: registered virtio0 (type 7)
[  OK  ] Started rng-tools.service.
         Starting gdbserverproxy.service...
[   31.524250]  remoteproc1: powering up 11800000.dsp1
[   31.529112]  remoteproc1: Booting unspecified pre-loaded fw image
[   31.548942]  remoteproc1: remote processor 11800000.dsp1 is now up
[   31.585830] virtio_rpmsg_bus virtio1: rpmsg host is online
[   31.591538] virtio_rpmsg_bus virtio1: creating channel rpmsg-proto addr 0x3d
[   31.620936]  remoteproc1: registered virtio1 (type 7)
[   31.687539]  remoteproc2: powering up 12800000.dsp2
[   31.692420]  remoteproc2: Booting unspecified pre-loaded fw image
[   31.716343]  remoteproc2: remote processor 12800000.dsp2 is now up
[   31.730574] virtio_rpmsg_bus virtio2: rpmsg host is online
[   31.736295] virtio_rpmsg_bus virtio2: creating channel rpmsg-proto addr 0x3d
[   31.768170]  remoteproc2: registered virtio2 (type 7)
[   31.825429]  remoteproc3: powering up 13800000.dsp3
[   31.830316]  remoteproc3: Booting unspecified pre-loaded fw image
[   31.863643]  remoteproc3: remote processor 13800000.dsp3 is now up
[   31.878973] virtio_rpmsg_bus virtio3: rpmsg host is online
[   31.884732] virtio_rpmsg_bus virtio3: creating channel rpmsg-proto addr 0x3d
[   31.917983]  remoteproc3: registered virtio3 (type 7)
[  OK  ] Started gdbserverproxy.service.
         Starting matrix-gui-2.0.service...
[  OK  ] Started TI MultiCore Tools Daemon.
[  OK  ] Started matrix-gui-2.0.service.
         Starting parse-ip.service...
         Starting thermal-zone-init.service...
[  OK  ] Started thermal-zone-init.service.
 
 
#>>>>> LCD 12
IP Address:
172.16.2.96
[  OK  ] Started parse-ip.service.

 _____                    _____           _         _   
|  _  |___ ___ ___ ___   |  _  |___ ___  |_|___ ___| |_ 
|     |  _| .'| . | . |  |   __|  _| . | | | -_|  _|  _|
|__|__|_| |__,|_  |___|  |__|  |_| |___|_| |___|___|_|  
              |___|                    |___|            

Arago Project http://arago-project.org k2l-evm ttyS0

Arago 2016.12 k2l-evm ttyS0

k2l-evm login: root
root@k2l-evm:~# ls  /sys/devices/system/cpu
cpu0        cpu1        cpufreq     cpuidle     isolated    kernel_max  offline     online      possible    power       present     uevent
root@k2l-evm:~# echo 1 > /sys/devices/system/cpu/cpu1/online 
[   81.960882] CPU1: failed to boot: -22
-sh: echo: write error: Invalid argument
root@k2l-evm:~#
'
4300.keystone-k2l-evm.dts.txt
/dts-v1/;

/ {
	#address-cells = <0x2>;
	#size-cells = <0x2>;
	compatible = "ti,k2l-evm", "ti,k2l", "ti,keystone";
	model = "Texas Instruments Keystone 2 Lamarr EVM";
	interrupt-parent = <0x1>;

	chosen {
	};

	aliases {
		serial0 = "/soc/serial@02530c00";
		rproc0 = "/soc/dsp0";
		rproc1 = "/soc/dsp1";
		rproc2 = "/soc/dsp2";
		rproc3 = "/soc/dsp3";
	};

	memory {
		device_type = "memory";
		reg = <0x0 0x80000000 0x0 0x40000000>;
	};

	interrupt-controller {
		compatible = "arm,cortex-a15-gic";
		#interrupt-cells = <0x3>;
		interrupt-controller;
		reg = <0x0 0x2561000 0x0 0x1000 0x0 0x2562000 0x0 0x2000 0x0 0x2564000 0x0 0x1000 0x0 0x2566000 0x0 0x2000>;
		interrupts = <0x1 0x9 0xf04>;
		linux,phandle = <0x1>;
		phandle = <0x1>;
	};

	timer {
		compatible = "arm,armv7-timer";
		interrupts = <0x1 0xd 0xf08 0x1 0xe 0xf08 0x1 0xb 0xf08 0x1 0xa 0xf08>;
	};

	pmu {
		compatible = "arm,cortex-a15-pmu";
		interrupts = <0x0 0x14 0x1 0x0 0x15 0x1 0x0 0x16 0x1 0x0 0x17 0x1>;
	};

	psci {
		compatible = "arm,psci";
		method = "smc";
		cpu_suspend = <0x84000001>;
		cpu_off = <0x84000002>;
		cpu_on = <0x84000003>;
	};

	soc {
		#address-cells = <0x1>;
		#size-cells = <0x1>;
		compatible = "ti,keystone", "simple-bus";
		interrupt-parent = <0x1>;
		ranges = <0x0 0x0 0x0 0xc0000000>;
		dma-ranges = <0x80000000 0x8 0x0 0x80000000>;

		pll-controller@02310000 {
			compatible = "ti,keystone-pllctrl", "syscon";
			reg = <0x2310000 0x200>;
			linux,phandle = <0x2>;
			phandle = <0x2>;
		};

		power-sleep-controller@02350000 {
			compatible = "syscon", "simple-mfd";
			reg = <0x2350000 0x1000>;

			psc-reset {
				compatible = "syscon-reset";
				#reset-cells = <0x1>;
				#address-cells = <0x1>;
				#size-cells = <0x0>;
				linux,phandle = <0x24>;
				phandle = <0x24>;

				dsp@0 {
					reg = <0x0>;
					reset-control = <0xa3c 0x8 0x0>;
					reset-status = <0x83c 0x8 0x0>;
				};

				dsp@1 {
					reg = <0x1>;
					reset-control = <0xa40 0x8 0x0>;
					reset-status = <0x840 0x8 0x0>;
				};

				dsp@2 {
					reg = <0x2>;
					reset-control = <0xa44 0x8 0x0>;
					reset-status = <0x844 0x8 0x0>;
				};

				dsp@3 {
					reg = <0x3>;
					reset-control = <0xa48 0x8 0x0>;
					reset-status = <0x848 0x8 0x0>;
				};
			};
		};

		device-state-control@02620000 {
			compatible = "ti,keystone-devctrl", "syscon";
			reg = <0x2620000 0x1000>;
			linux,phandle = <0x3>;
			phandle = <0x3>;
		};

		reset-controller {
			compatible = "ti,keystone-reset";
			ti,syscon-pll = <0x2 0xe4>;
			ti,syscon-dev = <0x3 0x328>;
			ti,wdt-list = <0x0>;
		};

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

			mainmuxclk@2310108 {
				#clock-cells = <0x0>;
				compatible = "ti,keystone,pll-mux-clock";
				clocks = <0x4 0x5>;
				reg = <0x2310108 0x4>;
				bit-shift = <0x17>;
				bit-mask = <0x1>;
				clock-output-names = "mainmuxclk";
				linux,phandle = <0x6>;
				phandle = <0x6>;
			};

			chipclk1 {
				#clock-cells = <0x0>;
				compatible = "fixed-factor-clock";
				clocks = <0x6>;
				clock-div = <0x1>;
				clock-mult = <0x1>;
				clock-output-names = "chipclk1";
				linux,phandle = <0x7>;
				phandle = <0x7>;
			};

			chipclk1rstiso {
				#clock-cells = <0x0>;
				compatible = "fixed-factor-clock";
				clocks = <0x6>;
				clock-div = <0x1>;
				clock-mult = <0x1>;
				clock-output-names = "chipclk1rstiso";
				linux,phandle = <0x9>;
				phandle = <0x9>;
			};

			gemtraceclk@2310120 {
				#clock-cells = <0x0>;
				compatible = "ti,keystone,pll-divider-clock";
				clocks = <0x6>;
				reg = <0x2310120 0x4>;
				bit-shift = <0x0>;
				bit-mask = <0x8>;
				clock-output-names = "gemtraceclk";
				linux,phandle = <0x30>;
				phandle = <0x30>;
			};

			chipstmxptclk {
				#clock-cells = <0x0>;
				compatible = "ti,keystone,pll-divider-clock";
				clocks = <0x6>;
				reg = <0x2310164 0x4>;
				bit-shift = <0x0>;
				bit-mask = <0x8>;
				clock-output-names = "chipstmxptclk";
			};

			chipclk12 {
				#clock-cells = <0x0>;
				compatible = "fixed-factor-clock";
				clocks = <0x7>;
				clock-div = <0x2>;
				clock-mult = <0x1>;
				clock-output-names = "chipclk12";
				linux,phandle = <0xe>;
				phandle = <0xe>;
			};

			chipclk13 {
				#clock-cells = <0x0>;
				compatible = "fixed-factor-clock";
				clocks = <0x7>;
				clock-div = <0x3>;
				clock-mult = <0x1>;
				clock-output-names = "chipclk13";
				linux,phandle = <0xb>;
				phandle = <0xb>;
			};

			paclk13 {
				#clock-cells = <0x0>;
				compatible = "fixed-factor-clock";
				clocks = <0x8>;
				clock-div = <0x3>;
				clock-mult = <0x1>;
				clock-output-names = "paclk13";
				linux,phandle = <0xc>;
				phandle = <0xc>;
			};

			chipclk14 {
				#clock-cells = <0x0>;
				compatible = "fixed-factor-clock";
				clocks = <0x7>;
				clock-div = <0x4>;
				clock-mult = <0x1>;
				clock-output-names = "chipclk14";
			};

			chipclk16 {
				#clock-cells = <0x0>;
				compatible = "fixed-factor-clock";
				clocks = <0x7>;
				clock-div = <0x6>;
				clock-mult = <0x1>;
				clock-output-names = "chipclk16";
				linux,phandle = <0xa>;
				phandle = <0xa>;
			};

			chipclk112 {
				#clock-cells = <0x0>;
				compatible = "fixed-factor-clock";
				clocks = <0x7>;
				clock-div = <0xc>;
				clock-mult = <0x1>;
				clock-output-names = "chipclk112";
			};

			chipclk124 {
				#clock-cells = <0x0>;
				compatible = "fixed-factor-clock";
				clocks = <0x7>;
				clock-div = <0x18>;
				clock-mult = <0x1>;
				clock-output-names = "chipclk114";
			};

			chipclk1rstiso13 {
				#clock-cells = <0x0>;
				compatible = "fixed-factor-clock";
				clocks = <0x9>;
				clock-div = <0x3>;
				clock-mult = <0x1>;
				clock-output-names = "chipclk1rstiso13";
				linux,phandle = <0xf>;
				phandle = <0xf>;
			};

			chipclk1rstiso14 {
				#clock-cells = <0x0>;
				compatible = "fixed-factor-clock";
				clocks = <0x9>;
				clock-div = <0x4>;
				clock-mult = <0x1>;
				clock-output-names = "chipclk1rstiso14";
			};

			chipclk1rstiso16 {
				#clock-cells = <0x0>;
				compatible = "fixed-factor-clock";
				clocks = <0x9>;
				clock-div = <0x6>;
				clock-mult = <0x1>;
				clock-output-names = "chipclk1rstiso16";
			};

			chipclk1rstiso112 {
				#clock-cells = <0x0>;
				compatible = "fixed-factor-clock";
				clocks = <0x9>;
				clock-div = <0xc>;
				clock-mult = <0x1>;
				clock-output-names = "chipclk1rstiso112";
				linux,phandle = <0x10>;
				phandle = <0x10>;
			};

			clkmodrst0 {
				#clock-cells = <0x0>;
				compatible = "ti,keystone,psc-clock";
				clocks = <0xa>;
				clock-output-names = "modrst0";
				reg = <0x2350000 0xb00 0x2350000 0x400>;
				reg-names = "control", "domain";
				domain-id = <0x0>;
				linux,phandle = <0x11>;
				phandle = <0x11>;
			};

			clkusb {
				#clock-cells = <0x0>;
				compatible = "ti,keystone,psc-clock";
				clocks = <0xa>;
				clock-output-names = "usb";
				reg = <0x2350008 0xb00 0x2350000 0x400>;
				reg-names = "control", "domain";
				domain-id = <0x0>;
				linux,phandle = <0x17>;
				phandle = <0x17>;
			};

			clkaemifspi {
				#clock-cells = <0x0>;
				compatible = "ti,keystone,psc-clock";
				clocks = <0xa>;
				clock-output-names = "aemif-spi";
				reg = <0x235000c 0xb00 0x2350000 0x400>;
				reg-names = "control", "domain";
				domain-id = <0x0>;
				linux,phandle = <0x12>;
				phandle = <0x12>;
			};

			clkdebugsstrc {
				#clock-cells = <0x0>;
				compatible = "ti,keystone,psc-clock";
				clocks = <0xb>;
				clock-output-names = "debugss-trc";
				reg = <0x2350014 0xb00 0x2350000 0x400>;
				reg-names = "control", "domain";
				domain-id = <0x1>;
				linux,phandle = <0x2f>;
				phandle = <0x2f>;
			};

			clktetbtrc {
				#clock-cells = <0x0>;
				compatible = "ti,keystone,psc-clock";
				clocks = <0xb>;
				clock-output-names = "tetb-trc";
				reg = <0x2350018 0xb00 0x2350004 0x400>;
				reg-names = "control", "domain";
				domain-id = <0x1>;
				linux,phandle = <0x31>;
				phandle = <0x31>;
			};

			clkpa {
				#clock-cells = <0x0>;
				compatible = "ti,keystone,psc-clock";
				clocks = <0xc>;
				clock-output-names = "pa";
				reg = <0x235001c 0xb00 0x2350008 0x400>;
				reg-names = "control", "domain";
				domain-id = <0x2>;
				linux,phandle = <0xd>;
				phandle = <0xd>;
			};

			clkcpgmac {
				#clock-cells = <0x0>;
				compatible = "ti,keystone,psc-clock";
				clocks = <0xd>;
				clock-output-names = "cpgmac";
				reg = <0x2350020 0xb00 0x2350008 0x400>;
				reg-names = "control", "domain";
				domain-id = <0x2>;
				linux,phandle = <0x1d>;
				phandle = <0x1d>;
			};

			clksa {
				#clock-cells = <0x0>;
				compatible = "ti,keystone,psc-clock";
				clocks = <0xd>;
				clock-output-names = "sa";
				reg = <0x2350024 0xb00 0x2350008 0x400>;
				reg-names = "control", "domain";
				domain-id = <0x2>;
				linux,phandle = <0x46>;
				phandle = <0x46>;
			};

			clkpcie {
				#clock-cells = <0x0>;
				compatible = "ti,keystone,psc-clock";
				clocks = <0xe>;
				clock-output-names = "pcie";
				reg = <0x2350028 0xb00 0x235000c 0x400>;
				reg-names = "control", "domain";
				domain-id = <0x3>;
				linux,phandle = <0x1e>;
				phandle = <0x1e>;
			};

			clksrio {
				#clock-cells = <0x0>;
				compatible = "ti,keystone,psc-clock";
				clocks = <0xf>;
				clock-output-names = "srio";
				reg = <0x235002c 0xb00 0x2350010 0x400>;
				reg-names = "control", "domain";
				domain-id = <0x4>;
			};

			clksr {
				#clock-cells = <0x0>;
				compatible = "ti,keystone,psc-clock";
				clocks = <0x10>;
				clock-output-names = "sr";
				reg = <0x2350034 0xb00 0x2350018 0x400>;
				reg-names = "control", "domain";
				domain-id = <0x6>;
				linux,phandle = <0x20>;
				phandle = <0x20>;
			};

			clkgem0 {
				#clock-cells = <0x0>;
				compatible = "ti,keystone,psc-clock";
				clocks = <0x7>;
				clock-output-names = "gem0";
				reg = <0x235003c 0xb00 0x2350020 0x400>;
				reg-names = "control", "domain";
				domain-id = <0x8>;
				linux,phandle = <0x23>;
				phandle = <0x23>;
			};

			clkddr30 {
				#clock-cells = <0x0>;
				compatible = "ti,keystone,psc-clock";
				clocks = <0xe>;
				clock-output-names = "ddr3-0";
				reg = <0x235005c 0xb00 0x2350040 0x400>;
				reg-names = "control", "domain";
				domain-id = <0x10>;
			};

			clkwdtimer0 {
				#clock-cells = <0x0>;
				compatible = "ti,keystone,psc-clock";
				clocks = <0x11>;
				clock-output-names = "timer0";
				reg = <0x2350000 0xb00 0x2350000 0x400>;
				reg-names = "control", "domain";
				domain-id = <0x0>;
				linux,phandle = <0x19>;
				phandle = <0x19>;
			};

			clkwdtimer1 {
				#clock-cells = <0x0>;
				compatible = "ti,keystone,psc-clock";
				clocks = <0x11>;
				clock-output-names = "timer1";
				reg = <0x2350000 0xb00 0x2350000 0x400>;
				reg-names = "control", "domain";
				domain-id = <0x0>;
			};

			clkwdtimer2 {
				#clock-cells = <0x0>;
				compatible = "ti,keystone,psc-clock";
				clocks = <0x11>;
				clock-output-names = "timer2";
				reg = <0x2350000 0xb00 0x2350000 0x400>;
				reg-names = "control", "domain";
				domain-id = <0x0>;
			};

			clkwdtimer3 {
				#clock-cells = <0x0>;
				compatible = "ti,keystone,psc-clock";
				clocks = <0x11>;
				clock-output-names = "timer3";
				reg = <0x2350000 0xb00 0x2350000 0x400>;
				reg-names = "control", "domain";
				domain-id = <0x0>;
			};

			clktimer15 {
				#clock-cells = <0x0>;
				compatible = "ti,keystone,psc-clock";
				clocks = <0x11>;
				clock-output-names = "timer15";
				reg = <0x2350000 0xb00 0x2350000 0x400>;
				reg-names = "control", "domain";
				domain-id = <0x0>;
				linux,phandle = <0x1a>;
				phandle = <0x1a>;
			};

			clkuart0 {
				#clock-cells = <0x0>;
				compatible = "ti,keystone,psc-clock";
				clocks = <0x11>;
				clock-output-names = "uart0";
				reg = <0x2350000 0xb00 0x2350000 0x400>;
				reg-names = "control", "domain";
				domain-id = <0x0>;
				linux,phandle = <0x13>;
				phandle = <0x13>;
			};

			clkuart1 {
				#clock-cells = <0x0>;
				compatible = "ti,keystone,psc-clock";
				clocks = <0x11>;
				clock-output-names = "uart1";
				reg = <0x2350000 0xb00 0x2350000 0x400>;
				reg-names = "control", "domain";
				domain-id = <0x0>;
				linux,phandle = <0x14>;
				phandle = <0x14>;
			};

			clkaemif {
				#clock-cells = <0x0>;
				compatible = "ti,keystone,psc-clock";
				clocks = <0x12>;
				clock-output-names = "aemif";
				reg = <0x2350000 0xb00 0x2350000 0x400>;
				reg-names = "control", "domain";
				domain-id = <0x0>;
				linux,phandle = <0x1c>;
				phandle = <0x1c>;
			};

			clkusim {
				#clock-cells = <0x0>;
				compatible = "ti,keystone,psc-clock";
				clocks = <0x11>;
				clock-output-names = "usim";
				reg = <0x2350000 0xb00 0x2350000 0x400>;
				reg-names = "control", "domain";
				domain-id = <0x0>;
			};

			clki2c {
				#clock-cells = <0x0>;
				compatible = "ti,keystone,psc-clock";
				clocks = <0x11>;
				clock-output-names = "i2c";
				reg = <0x2350000 0xb00 0x2350000 0x400>;
				reg-names = "control", "domain";
				domain-id = <0x0>;
				linux,phandle = <0x15>;
				phandle = <0x15>;
			};

			clkspi {
				#clock-cells = <0x0>;
				compatible = "ti,keystone,psc-clock";
				clocks = <0x12>;
				clock-output-names = "spi";
				reg = <0x2350000 0xb00 0x2350000 0x400>;
				reg-names = "control", "domain";
				domain-id = <0x0>;
				linux,phandle = <0x16>;
				phandle = <0x16>;
			};

			clkgpio {
				#clock-cells = <0x0>;
				compatible = "ti,keystone,psc-clock";
				clocks = <0x11>;
				clock-output-names = "gpio";
				reg = <0x2350000 0xb00 0x2350000 0x400>;
				reg-names = "control", "domain";
				domain-id = <0x0>;
				linux,phandle = <0x1b>;
				phandle = <0x1b>;
			};

			clkkeymgr {
				#clock-cells = <0x0>;
				compatible = "ti,keystone,psc-clock";
				clocks = <0x11>;
				clock-output-names = "keymgr";
				reg = <0x2350000 0xb00 0x2350000 0x400>;
				reg-names = "control", "domain";
				domain-id = <0x0>;
			};

			armpllclk@2620370 {
				#clock-cells = <0x0>;
				compatible = "ti,keystone,pll-clock";
				clocks = <0x5>;
				clock-output-names = "arm-pll-clk";
				reg = <0x2620370 0x4>;
				reg-names = "control";
				linux,phandle = <0x2e>;
				phandle = <0x2e>;
			};

			mainpllclk@2310110 {
				#clock-cells = <0x0>;
				compatible = "ti,keystone,main-pll-clock";
				clocks = <0x5>;
				reg = <0x2620350 0x4 0x2310110 0x4 0x2310108 0x4>;
				reg-names = "control", "multiplier", "post-divider";
				linux,phandle = <0x4>;
				phandle = <0x4>;
			};

			papllclk@2620358 {
				#clock-cells = <0x0>;
				compatible = "ti,keystone,pll-clock";
				clocks = <0x5>;
				clock-output-names = "papllclk";
				reg = <0x2620358 0x4>;
				reg-names = "control";
				linux,phandle = <0x8>;
				phandle = <0x8>;
			};

			ddr3apllclk@2620360 {
				#clock-cells = <0x0>;
				compatible = "ti,keystone,pll-clock";
				clocks = <0x5>;
				clock-output-names = "ddr-3a-pll-clk";
				reg = <0x2620360 0x4>;
				reg-names = "control";
			};

			clkdfeiqnsys {
				#clock-cells = <0x0>;
				compatible = "ti,keystone,psc-clock";
				clocks = <0xe>;
				clock-output-names = "dfe";
				reg-names = "control", "domain";
				reg = <0x2350004 0xb00 0x2350000 0x400>;
				domain-id = <0x0>;
			};

			clkpcie1 {
				#clock-cells = <0x0>;
				compatible = "ti,keystone,psc-clock";
				clocks = <0xe>;
				clock-output-names = "pcie";
				reg = <0x235002c 0xb00 0x2350000 0x400>;
				reg-names = "control", "domain";
				domain-id = <0x4>;
			};

			clkgem1 {
				#clock-cells = <0x0>;
				compatible = "ti,keystone,psc-clock";
				clocks = <0x7>;
				clock-output-names = "gem1";
				reg = <0x2350040 0xb00 0x2350024 0x400>;
				reg-names = "control", "domain";
				domain-id = <0x9>;
				linux,phandle = <0x28>;
				phandle = <0x28>;
			};

			clkgem2 {
				#clock-cells = <0x0>;
				compatible = "ti,keystone,psc-clock";
				clocks = <0x7>;
				clock-output-names = "gem2";
				reg = <0x2350044 0xb00 0x2350028 0x400>;
				reg-names = "control", "domain";
				domain-id = <0xa>;
				linux,phandle = <0x2a>;
				phandle = <0x2a>;
			};

			clkgem3 {
				#clock-cells = <0x0>;
				compatible = "ti,keystone,psc-clock";
				clocks = <0x7>;
				clock-output-names = "gem3";
				reg = <0x2350048 0xb00 0x235002c 0x400>;
				reg-names = "control", "domain";
				domain-id = <0xb>;
				linux,phandle = <0x2c>;
				phandle = <0x2c>;
			};

			clktac {
				#clock-cells = <0x0>;
				compatible = "ti,keystone,psc-clock";
				clocks = <0xb>;
				clock-output-names = "tac";
				reg = <0x2350064 0xb00 0x2350044 0x400>;
				reg-names = "control", "domain";
				domain-id = <0x11>;
			};

			clkrac {
				#clock-cells = <0x0>;
				compatible = "ti,keystone,psc-clock";
				clocks = <0xb>;
				clock-output-names = "rac";
				reg = <0x2350068 0xb00 0x2350044 0x400>;
				reg-names = "control", "domain";
				domain-id = <0x11>;
			};

			clkdfepd0 {
				#clock-cells = <0x0>;
				compatible = "ti,keystone,psc-clock";
				clocks = <0xb>;
				clock-output-names = "dfe-pd0";
				reg = <0x235006c 0xb00 0x2350044 0x400>;
				reg-names = "control", "domain";
				domain-id = <0x12>;
			};

			clkfftc0 {
				#clock-cells = <0x0>;
				compatible = "ti,keystone,psc-clock";
				clocks = <0xb>;
				clock-output-names = "fftc-0";
				reg = <0x2350070 0xb00 0x235004c 0x400>;
				reg-names = "control", "domain";
				domain-id = <0x13>;
			};

			clkosr {
				#clock-cells = <0x0>;
				compatible = "ti,keystone,psc-clock";
				clocks = <0xb>;
				clock-output-names = "osr";
				reg = <0x2350088 0xb00 0x235004c 0x400>;
				reg-names = "control", "domain";
				domain-id = <0x15>;
				linux,phandle = <0x36>;
				phandle = <0x36>;
			};

			clktcp3d0 {
				#clock-cells = <0x0>;
				compatible = "ti,keystone,psc-clock";
				clocks = <0xb>;
				clock-output-names = "tcp3d-0";
				reg = <0x235008c 0xb00 0x2350058 0x400>;
				reg-names = "control", "domain";
				domain-id = <0x16>;
			};

			clktcp3d1 {
				#clock-cells = <0x0>;
				compatible = "ti,keystone,psc-clock";
				clocks = <0xb>;
				clock-output-names = "tcp3d-1";
				reg = <0x2350094 0xb00 0x2350058 0x400>;
				reg-names = "control", "domain";
				domain-id = <0x17>;
			};

			clkvcp0 {
				#clock-cells = <0x0>;
				compatible = "ti,keystone,psc-clock";
				clocks = <0xb>;
				clock-output-names = "vcp-0";
				reg = <0x235009c 0xb00 0x2350060 0x400>;
				reg-names = "control", "domain";
				domain-id = <0x18>;
			};

			clkvcp1 {
				#clock-cells = <0x0>;
				compatible = "ti,keystone,psc-clock";
				clocks = <0xb>;
				clock-output-names = "vcp-1";
				reg = <0x23500a0 0xb00 0x2350060 0x400>;
				reg-names = "control", "domain";
				domain-id = <0x18>;
			};

			clkvcp2 {
				#clock-cells = <0x0>;
				compatible = "ti,keystone,psc-clock";
				clocks = <0xb>;
				clock-output-names = "vcp-2";
				reg = <0x23500a4 0xb00 0x2350060 0x400>;
				reg-names = "control", "domain";
				domain-id = <0x18>;
			};

			clkvcp3 {
				#clock-cells = <0x0>;
				compatible = "ti,keystone,psc-clock";
				clocks = <0xb>;
				clock-output-names = "vcp-3";
				reg = <0x23500a8 0xb00 0x2350060 0x400>;
				reg-names = "control", "domain";
				domain-id = <0x18>;
			};

			clkbcp {
				#clock-cells = <0x0>;
				compatible = "ti,keystone,psc-clock";
				clocks = <0xb>;
				clock-output-names = "bcp";
				reg = <0x23500bc 0xb00 0x2350068 0x400>;
				reg-names = "control", "domain";
				domain-id = <0x1a>;
			};

			clkdfepd1 {
				#clock-cells = <0x0>;
				compatible = "ti,keystone,psc-clock";
				clocks = <0xb>;
				clock-output-names = "dfe-pd1";
				reg = <0x23500c0 0xb00 0x2350044 0x400>;
				reg-names = "control", "domain";
				domain-id = <0x1b>;
			};

			clkfftc1 {
				#clock-cells = <0x0>;
				compatible = "ti,keystone,psc-clock";
				clocks = <0xb>;
				clock-output-names = "fftc-1";
				reg = <0x23500c4 0xb00 0x23504c0 0x400>;
				reg-names = "control", "domain";
				domain-id = <0x1c>;
			};

			clkiqnail {
				#clock-cells = <0x0>;
				compatible = "ti,keystone,psc-clock";
				clocks = <0xb>;
				clock-output-names = "iqn-ail";
				reg = <0x23500c8 0xb00 0x235004c 0x400>;
				reg-names = "control", "domain";
				domain-id = <0x1d>;
			};

			clkuart2 {
				#clock-cells = <0x0>;
				compatible = "ti,keystone,psc-clock";
				clocks = <0x11>;
				clock-output-names = "uart2";
				reg = <0x2350000 0xb00 0x2350000 0x400>;
				reg-names = "control", "domain";
				domain-id = <0x0>;
				linux,phandle = <0x21>;
				phandle = <0x21>;
			};

			clkuart3 {
				#clock-cells = <0x0>;
				compatible = "ti,keystone,psc-clock";
				clocks = <0x11>;
				clock-output-names = "uart3";
				reg = <0x2350000 0xb00 0x2350000 0x400>;
				reg-names = "control", "domain";
				domain-id = <0x0>;
				linux,phandle = <0x22>;
				phandle = <0x22>;
			};

			refclksys {
				#clock-cells = <0x0>;
				compatible = "fixed-clock";
				clock-frequency = <0x7530000>;
				clock-output-names = "refclk-sys";
				linux,phandle = <0x5>;
				phandle = <0x5>;
			};
		};

		serial@02530c00 {
			compatible = "ti,keystone-uart", "ns16550a";
			current-speed = <0x1c200>;
			reg-shift = <0x2>;
			reg-io-width = <0x4>;
			reg = <0x2530c00 0x100>;
			clocks = <0x13>;
			interrupts = <0x0 0x115 0x1>;
		};

		serial@02531000 {
			compatible = "ti,keystone-uart", "ns16550a";
			current-speed = <0x1c200>;
			reg-shift = <0x2>;
			reg-io-width = <0x4>;
			reg = <0x2531000 0x100>;
			clocks = <0x14>;
			interrupts = <0x0 0x118 0x1>;
		};

		i2c@2530000 {
			compatible = "ti,davinci-i2c";
			reg = <0x2530000 0x400>;
			clock-frequency = <0x186a0>;
			clocks = <0x15>;
			interrupts = <0x0 0x11b 0x1>;
			#address-cells = <0x1>;
			#size-cells = <0x0>;

			dtt@50 {
				compatible = "at,24c1024";
				reg = <0x50>;
			};
		};

		i2c@2530400 {
			compatible = "ti,davinci-i2c";
			reg = <0x2530400 0x400>;
			clock-frequency = <0x186a0>;
			clocks = <0x15>;
			interrupts = <0x0 0x11e 0x1>;
			#address-cells = <0x1>;
			#size-cells = <0x0>;
		};

		i2c@2530800 {
			compatible = "ti,davinci-i2c";
			reg = <0x2530800 0x400>;
			clock-frequency = <0x186a0>;
			clocks = <0x15>;
			interrupts = <0x0 0x121 0x1>;
			#address-cells = <0x1>;
			#size-cells = <0x0>;
		};

		spi@21000400 {
			compatible = "ti,keystone-spi", "ti,dm6441-spi";
			reg = <0x21000400 0x200>;
			num-cs = <0x4>;
			ti,davinci-spi-intr-line = <0x0>;
			interrupts = <0x0 0x124 0x1>;
			clocks = <0x16>;
			#address-cells = <0x1>;
			#size-cells = <0x0>;
			ti,davinci-spi-num-cs = <0x5>;

			n25q128a11@0 {
				#address-cells = <0x1>;
				#size-cells = <0x1>;
				compatible = "Micron,n25q128a11";
				spi-max-frequency = <0x337f980>;
				m25p,fast-read;
				reg = <0x0>;

				partition@0 {
					label = "u-boot-spl";
					reg = <0x0 0x100000>;
					read-only;
				};

				partition@1 {
					label = "misc";
					reg = <0x100000 0xf00000>;
				};
			};
		};

		spi@21000600 {
			compatible = "ti,keystone-spi", "ti,dm6441-spi";
			reg = <0x21000600 0x200>;
			num-cs = <0x4>;
			ti,davinci-spi-intr-line = <0x0>;
			interrupts = <0x0 0x128 0x1>;
			clocks = <0x16>;
			#address-cells = <0x1>;
			#size-cells = <0x0>;
			ti,davinci-spi-num-cs = <0x3>;
		};

		spi@21000800 {
			compatible = "ti,keystone-spi", "ti,dm6441-spi";
			reg = <0x21000800 0x200>;
			num-cs = <0x4>;
			ti,davinci-spi-intr-line = <0x0>;
			interrupts = <0x0 0x12c 0x1>;
			clocks = <0x16>;
			#address-cells = <0x1>;
			#size-cells = <0x0>;
			ti,davinci-spi-num-cs = <0x5>;
			status = "disabled";
		};

		usb_phy@2620738 {
			compatible = "ti,keystone-usbphy";
			#address-cells = <0x1>;
			#size-cells = <0x1>;
			reg = <0x2620738 0x18>;
			status = "okay";
			linux,phandle = <0x18>;
			phandle = <0x18>;
		};

		usb@2680000 {
			compatible = "ti,keystone-dwc3";
			#address-cells = <0x1>;
			#size-cells = <0x1>;
			reg = <0x2680000 0x10000>;
			clocks = <0x17>;
			clock-names = "usb";
			interrupts = <0x0 0x189 0x1>;
			ranges;
			dma-coherent;
			dma-ranges;
			status = "okay";

			dwc3@2690000 {
				compatible = "synopsys,dwc3";
				reg = <0x2690000 0x70000>;
				interrupts = <0x0 0x189 0x1>;
				usb-phy = <0x18 0x18>;
				dr_mode = "host";
			};
		};

		wdt@022f0080 {
			compatible = "ti,keystone-wdt", "ti,davinci-wdt";
			reg = <0x22f0080 0x80>;
			clocks = <0x19>;
		};

		timer@22f0000 {
			compatible = "ti,keystone-timer";
			reg = <0x22f0000 0x80>;
			interrupts = <0x0 0x6e 0x1>;
			clocks = <0x1a>;
		};

		gpio@260bf00 {
			compatible = "ti,keystone-gpio";
			reg = <0x260bf00 0x100>;
			gpio-controller;
			#gpio-cells = <0x2>;
			interrupts = <0x0 0x78 0x1 0x0 0x79 0x1 0x0 0x7a 0x1 0x0 0x7b 0x1 0x0 0x7c 0x1 0x0 0x7d 0x1 0x0 0x7e 0x1 0x0 0x7f 0x1 0x0 0x80 0x1 0x0 0x81 0x1 0x0 0x82 0x1 0x0 0x83 0x1 0x0 0x84 0x1 0x0 0x85 0x1 0x0 0x86 0x1 0x0 0x87 0x1 0x0 0x88 0x1 0x0 0x89 0x1 0x0 0x8a 0x1 0x0 0x8b 0x1 0x0 0x8c 0x1 0x0 0x8d 0x1 0x0 0x8e 0x1 0x0 0x8f 0x1 0x0 0x90 0x1 0x0 0x91 0x1 0x0 0x92 0x1 0x0 0x93 0x1 0x0 0x94 0x1 0x0 0x95 0x1 0x0 0x96 0x1 0x0 0x97 0x1>;
			clocks = <0x1b>;
			clock-names = "gpio";
			ti,ngpio = <0x20>;
			ti,davinci-gpio-unbanked = <0x20>;
		};

		aemif@21000A00 {
			compatible = "ti,keystone-aemif", "ti,davinci-aemif";
			#address-cells = <0x2>;
			#size-cells = <0x1>;
			clocks = <0x1c>;
			clock-names = "aemif";
			clock-ranges;
			reg = <0x21000a00 0x100>;
			ranges = <0x0 0x0 0x30000000 0x10000000 0x1 0x0 0x21000a00 0x100>;

			cs0 {
				#address-cells = <0x2>;
				#size-cells = <0x1>;
				clock-ranges;
				ranges;
				ti,cs-chipselect = <0x0>;
				ti,cs-min-turnaround-ns = <0xc>;
				ti,cs-read-hold-ns = <0x6>;
				ti,cs-read-strobe-ns = <0x17>;
				ti,cs-read-setup-ns = <0x9>;
				ti,cs-write-hold-ns = <0x8>;
				ti,cs-write-strobe-ns = <0x17>;
				ti,cs-write-setup-ns = <0x8>;

				nand@0,0 {
					compatible = "ti,keystone-nand", "ti,davinci-nand";
					#address-cells = <0x1>;
					#size-cells = <0x1>;
					reg = <0x0 0x0 0x4000000 0x1 0x0 0x100>;
					ti,davinci-chipselect = <0x0>;
					ti,davinci-mask-ale = <0x2000>;
					ti,davinci-mask-cle = <0x4000>;
					ti,davinci-mask-chipsel = <0x0>;
					nand-ecc-mode = "hw";
					ti,davinci-ecc-bits = <0x4>;
					nand-on-flash-bbt;

					partition@0 {
						label = "u-boot";
						reg = <0x0 0x100000>;
						read-only;
					};

					partition@100000 {
						label = "params";
						reg = <0x100000 0x80000>;
						read-only;
					};

					partition@180000 {
						label = "ubifs";
						reg = <0x180000 0x7fe80000>;
					};
				};
			};
		};

		keystone_irq@26202a0 {
			compatible = "ti,keystone-irq";
			interrupts = <0x0 0x4 0x1>;
			interrupt-controller;
			#interrupt-cells = <0x1>;
			ti,syscon-dev = <0x3 0x2a0>;
			linux,phandle = <0x25>;
			phandle = <0x25>;
		};

		phy@2320000 {
			#phy-cells = <0x0>;
			compatible = "ti,keystone-serdes-gbe";
			reg = <0x2320000 0x2000>;
			link-rate-kbps = <0x1312d0>;
			num-lanes = <0x2>;
			status = "disabled";
			clocks = <0x1d>;
			clock-names = "fck";
			#address-cells = <0x1>;
			#size-cells = <0x0>;

			lane@0 {
				status = "disabled";
				#phy-cells = <0x0>;
				reg = <0x0>;
				control-rate = <0x2>;
				rx-start = <0x7 0x5>;
				rx-force = <0x1 0x1>;
				tx-coeff = <0x0 0x0 0x0 0xc 0x4>;
				linux,phandle = <0x3d>;
				phandle = <0x3d>;
			};

			lane@1 {
				status = "disabled";
				reg = <0x1>;
				#phy-cells = <0x0>;
				control-rate = <0x2>;
				rx-start = <0x7 0x5>;
				rx-force = <0x1 0x1>;
				tx-coeff = <0x0 0x0 0x0 0xc 0x4>;
				linux,phandle = <0x3e>;
				phandle = <0x3e>;
			};
		};

		pcie@21800000 {
			compatible = "ti,keystone-pcie", "snps,dw-pcie";
			clocks = <0x1e>;
			clock-names = "pcie";
			#address-cells = <0x3>;
			#size-cells = <0x2>;
			reg = <0x21801000 0x2000 0x21800000 0x1000 0x2620128 0x4>;
			ranges = <0x82000000 0x0 0x50000000 0x50000000 0x0 0x10000000>;
			status = "disabled";
			device_type = "pci";
			num-lanes = <0x2>;
			interrupts = <0x0 0x26 0x1>;
			#interrupt-cells = <0x1>;
			interrupt-map-mask = <0x0 0x0 0x0 0x7>;
			interrupt-map = <0x0 0x0 0x0 0x1 0x1f 0x0 0x0 0x0 0x0 0x2 0x1f 0x1 0x0 0x0 0x0 0x3 0x1f 0x2 0x0 0x0 0x0 0x4 0x1f 0x3>;

			msi-interrupt-controller {
				interrupt-controller;
				#interrupt-cells = <0x1>;
				interrupt-parent = <0x1>;
				interrupts = <0x0 0x1e 0x1 0x0 0x1f 0x1 0x0 0x20 0x1 0x0 0x21 0x1 0x0 0x22 0x1 0x0 0x23 0x1 0x0 0x24 0x1 0x0 0x25 0x1>;
			};

			legacy-interrupt-controller {
				interrupt-controller;
				#interrupt-cells = <0x1>;
				interrupt-parent = <0x1>;
				interrupts = <0x0 0x1a 0x1 0x0 0x1b 0x1 0x0 0x1c 0x1 0x0 0x1d 0x1>;
				linux,phandle = <0x1f>;
				phandle = <0x1f>;
			};
		};

		edac@21010000 {
			compatible = "ti,keystone-ddr3-mc-edac";
			reg = <0x21010000 0x200>;
			interrupts = <0x0 0x1c0 0x1>;
			interrupt-parent = <0x1>;
			status = "ok";
		};

		srss@2330000 {
			compatible = "ti,keystone-srss";
			reg = <0x2330000 0x800>;
			clocks = <0x20>;
			clock-names = "srssclock";
		};

		serial@02348400 {
			compatible = "ti,keystone-uart", "ns16550a";
			current-speed = <0x1c200>;
			reg-shift = <0x2>;
			reg-io-width = <0x4>;
			reg = <0x2348400 0x100>;
			clocks = <0x21>;
			interrupts = <0x0 0x1b0 0x1>;
		};

		serial@02348800 {
			compatible = "ti,keystone-uart", "ns16550a";
			current-speed = <0x1c200>;
			reg-shift = <0x2>;
			reg-io-width = <0x4>;
			reg = <0x2348800 0x100>;
			clocks = <0x22>;
			interrupts = <0x0 0x1b3 0x1>;
		};

		gpio@2348000 {
			compatible = "ti,keystone-gpio";
			reg = <0x2348000 0x100>;
			gpio-controller;
			#gpio-cells = <0x2>;
			interrupts = <0x0 0x98 0x1 0x0 0x99 0x1 0x0 0x9a 0x1 0x0 0x9b 0x1 0x0 0x9c 0x1 0x0 0x9d 0x1 0x0 0x9e 0x1 0x0 0x9f 0x1 0x0 0xa0 0x1 0x0 0xa1 0x1 0x0 0xa2 0x1 0x0 0xa3 0x1 0x0 0xa4 0x1 0x0 0xa5 0x1 0x0 0xa6 0x1 0x0 0xa7 0x1 0x0 0xa8 0x1 0x0 0xa9 0x1 0x0 0xaa 0x1 0x0 0xab 0x1 0x0 0xac 0x1 0x0 0xad 0x1 0x0 0xae 0x1 0x0 0xaf 0x1 0x0 0xb0 0x1 0x0 0x191 0x1 0x0 0x192 0x1 0x0 0x193 0x1 0x0 0x194 0x1 0x0 0x195 0x1 0x0 0x196 0x1 0x0 0x197 0x1>;
			clocks = <0x1b>;
			clock-names = "gpio";
			ti,ngpio = <0x20>;
			ti,davinci-gpio-unbanked = <0x20>;
		};

		pinmux@02620690 {
			compatible = "pinctrl-single";
			reg = <0x2620690 0xc>;
			#address-cells = <0x1>;
			#size-cells = <0x0>;
			pinctrl-single,bit-per-mux;
			pinctrl-single,register-width = <0x20>;
			pinctrl-single,function-mask = <0x1>;
			status = "disabled";

			pinmux_uart3_emifa_pins {
				pinctrl-single,bits = <0x0 0x0 0xc0>;
			};

			pinmux_uart2_emifa_pins {
				pinctrl-single,bits = <0x0 0x0 0x30>;
			};

			pinmux_uart01_spi2_pins {
				pinctrl-single,bits = <0x0 0x0 0x4>;
			};

			pinmux_dfesync_rp1_pins {
				pinctrl-single,bits = <0x0 0x0 0x2>;
			};

			pinmux_avsif_pins {
				pinctrl-single,bits = <0x0 0x0 0x1>;
			};

			pinmux_gpio_emu_pins {
				pinctrl-single,bits = <0x4 0x0 0xfffe0000>;
			};

			pinmux_gpio_timio_pins {
				pinctrl-single,bits = <0x4 0x0 0xfff0>;
			};

			pinmux_gpio_spi2cs_pins {
				pinctrl-single,bits = <0x4 0x0 0xf>;
			};

			pinmux_gpio_dfeio_pins {
				pinctrl-single,bits = <0x8 0x0 0xffff0000>;
			};

			pinmux_gpio_emifa_pins {
				pinctrl-single,bits = <0x8 0x0 0xffff>;
			};
		};

		msmram@0c000000 {
			compatible = "mmio-sram";
			reg = <0xc000000 0x200000>;
			ranges = <0x0 0xc000000 0x200000>;
			#address-cells = <0x1>;
			#size-cells = <0x1>;

			sram-mpm@0 {
				compatible = "ti,keystone-dsp-msm-ram";
				reg = <0x0 0x80000>;
			};

			sram-bm@1f8000 {
				reg = <0x1f8000 0x8000>;
			};

			sram-cmem@80000 {
				reg = <0x80000 0xc0000>;
				linux,phandle = <0x48>;
				phandle = <0x48>;
			};
		};

		keystone_dsp_gpio@02620240 {
			compatible = "ti,keystone-dsp-gpio";
			gpio-controller;
			#gpio-cells = <0x2>;
			gpio,syscon-dev = <0x3 0x240>;
			linux,phandle = <0x26>;
			phandle = <0x26>;
		};

		keystone_dsp_gpio@2620244 {
			compatible = "ti,keystone-dsp-gpio";
			gpio-controller;
			#gpio-cells = <0x2>;
			gpio,syscon-dev = <0x3 0x244>;
			linux,phandle = <0x29>;
			phandle = <0x29>;
		};

		keystone_dsp_gpio@2620248 {
			compatible = "ti,keystone-dsp-gpio";
			gpio-controller;
			#gpio-cells = <0x2>;
			gpio,syscon-dev = <0x3 0x248>;
			linux,phandle = <0x2b>;
			phandle = <0x2b>;
		};

		keystone_dsp_gpio@262024c {
			compatible = "ti,keystone-dsp-gpio";
			gpio-controller;
			#gpio-cells = <0x2>;
			gpio,syscon-dev = <0x3 0x24c>;
			linux,phandle = <0x2d>;
			phandle = <0x2d>;
		};

		dsp0 {
			compatible = "ti,k2l-dsp";
			reg = <0x10800000 0x100000 0x10e00000 0x8000 0x10f00000 0x8000>;
			reg-names = "l2sram", "l1pram", "l1dram";
			clocks = <0x23>;
			ti,syscon-dev = <0x3 0x844>;
			resets = <0x24 0x0>;
			interrupt-parent = <0x25>;
			interrupts = <0x0 0x8>;
			interrupt-names = "vring", "exception";
			kick-gpio = <0x26 0x1b 0x0>;
			memory-region = <0x27>;
		};

		dsp1 {
			compatible = "ti,k2l-dsp";
			reg = <0x11800000 0x100000 0x11e00000 0x8000 0x11f00000 0x8000>;
			reg-names = "l2sram", "l1pram", "l1dram";
			clocks = <0x28>;
			ti,syscon-dev = <0x3 0x848>;
			resets = <0x24 0x1>;
			interrupt-parent = <0x25>;
			interrupts = <0x1 0x9>;
			interrupt-names = "vring", "exception";
			kick-gpio = <0x29 0x1b 0x0>;
			memory-region = <0x27>;
		};

		dsp2 {
			compatible = "ti,k2l-dsp";
			reg = <0x12800000 0x100000 0x12e00000 0x8000 0x12f00000 0x8000>;
			reg-names = "l2sram", "l1pram", "l1dram";
			clocks = <0x2a>;
			ti,syscon-dev = <0x3 0x84c>;
			resets = <0x24 0x2>;
			interrupt-parent = <0x25>;
			interrupts = <0x2 0xa>;
			interrupt-names = "vring", "exception";
			kick-gpio = <0x2b 0x1b 0x0>;
			memory-region = <0x27>;
		};

		dsp3 {
			compatible = "ti,k2l-dsp";
			reg = <0x13800000 0x100000 0x13e00000 0x8000 0x13f00000 0x8000>;
			reg-names = "l2sram", "l1pram", "l1dram";
			clocks = <0x2c>;
			ti,syscon-dev = <0x3 0x850>;
			resets = <0x24 0x3>;
			interrupt-parent = <0x25>;
			interrupts = <0x3 0xb>;
			interrupt-names = "vring", "exception";
			kick-gpio = <0x2d 0x1b 0x0>;
			memory-region = <0x27>;
		};

		mdio@26200f00 {
			compatible = "ti,keystone_mdio", "ti,davinci_mdio";
			#address-cells = <0x1>;
			#size-cells = <0x0>;
			reg = <0x26200f00 0x100>;
			status = "ok";
			clocks = <0x1d>;
			clock-names = "fck";
			bus_freq = <0x2625a0>;

			ethernet-phy@0 {
				compatible = "marvell,88E1514", "marvell,88E1510", "ethernet-phy-ieee802.3-c22";
				reg = <0x0>;
				linux,phandle = <0x3a>;
				phandle = <0x3a>;
			};

			ethernet-phy@1 {
				compatible = "marvell,88E1514", "marvell,88E1510", "ethernet-phy-ieee802.3-c22";
				reg = <0x1>;
				linux,phandle = <0x3c>;
				phandle = <0x3c>;
			};
		};

		debugss {
			compatible = "ti,keystone-debugss";
			clocks = <0x4 0x2e 0x2f 0x30 0x31>;
			clock-names = "mainpllclock", "armpllclock", "debugssclock", "gemtraceclock", "tetbclock";
		};

		qos-tree-0 {
			output-queue = <0x38e>;
			strict-priority;
			byte-units;
			output-rate = <0x1dcd650 0x61a8>;
			overhead-bytes = <0x18>;
			linux,phandle = <0x33>;
			phandle = <0x33>;

			high-priority {
				byte-units;
				priority = <0x0>;

				signaling {
					input-queues = <0x1f6e 0x1f87>;
					stats-class = "fastpath-hp";
					drop-policy = "no-drop";
				};

				linux-signaling {
					input-queues = <0x1f8d>;
					stats-class = "linux-hp";
					drop-policy = "no-drop";
				};
			};

			wrr-aggregator {
				weighted-round-robin;
				priority = <0x1>;
				byte-units;
				output-rate = <0x17d7840 0x61a8>;
				overhead-bytes = <0x18>;

				wrr-cos0 {
					weighted-round-robin;
					byte-units;
					weight = <0x14>;
					overhead-bytes = <0x18>;

					4g-cos0 {
						drop-policy = "tail-drop-32kb";
						weight = <0x5>;
						input-queues = <0x1f4a 0x1f81>;
						stats-class = "cos0";
					};

					3g-cos0 {
						drop-policy = "tail-drop-32kb";
						weight = <0x5>;
						input-queues = <0x1f4c>;
						stats-class = "cos0";
					};

					wifi-cos0 {
						drop-policy = "tail-drop-32kb";
						weight = <0x5>;
						input-queues = <0x1f4e>;
						stats-class = "cos0";
					};

					linux-cos0 {
						drop-policy = "tail-drop-32kb";
						weight = <0x5>;
						input-queues = <0x1f89>;
						stats-class = "linux-cos0";
					};
				};

				wrr-cos1 {
					weighted-round-robin;
					byte-units;
					weight = <0x28>;
					overhead-bytes = <0x18>;

					4g-cos1 {
						drop-policy = "red-32kb-128kb";
						weight = <0xa>;
						input-queues = <0x1f52 0x1f82>;
						stats-class = "cos1";
					};

					3g-cos1 {
						drop-policy = "red-32kb-128kb";
						weight = <0xa>;
						input-queues = <0x1f54>;
						stats-class = "cos1";
					};

					wifi-cos1 {
						drop-policy = "red-32kb-128kb";
						weight = <0xa>;
						input-queues = <0x1f56>;
						stats-class = "cos1";
					};

					linux-cos1 {
						drop-policy = "red-32kb-128kb";
						weight = <0xa>;
						input-queues = <0x1f8a>;
						stats-class = "linux-cos1";
					};
				};

				wrr-cos2 {
					weighted-round-robin;
					byte-units;
					weight = <0x3c>;
					overhead-bytes = <0x18>;

					4g-cos2 {
						drop-policy = "red-32kb-64kb";
						weight = <0xf>;
						input-queues = <0x1f5a 0x1f83>;
						stats-class = "cos2";
					};

					3g-cos2 {
						drop-policy = "red-32kb-64kb";
						weight = <0xf>;
						input-queues = <0x1f5c>;
						stats-class = "cos2";
					};

					wifi-cos2 {
						drop-policy = "red-32kb-64kb";
						weight = <0xf>;
						input-queues = <0x1f5e>;
						stats-class = "cos2";
					};

					linux-cos2 {
						drop-policy = "red-32kb-64kb";
						weight = <0xf>;
						input-queues = <0x1f8b>;
						stats-class = "linux-cos2";
					};
				};

				wrr-cos3 {
					weighted-round-robin;
					byte-units;
					weight = <0x50>;
					overhead-bytes = <0x18>;

					4g-cos3 {
						drop-policy = "tail-drop-64kb";
						weight = <0x14>;
						input-queues = <0x1f62 0x1f84>;
						stats-class = "cos3";
					};

					3g-cos3 {
						drop-policy = "tail-drop-64kb";
						weight = <0x14>;
						input-queues = <0x1f64>;
						stats-class = "cos3";
					};

					wifi-cos3 {
						drop-policy = "tail-drop-64kb";
						weight = <0x14>;
						input-queues = <0x1f66>;
						stats-class = "cos3";
					};

					linux-cos3 {
						drop-policy = "tail-drop-64kb";
						weight = <0x14>;
						input-queues = <0x1f8c>;
						stats-class = "linux-cos3";
					};
				};
			};

			best-effort {
				byte-units;
				priority = <0x2>;
				drop-policy = "tail-drop-64kb";

				fastpath-best-effort {
					input-queues = <0x1f40 0x1f41 0x1f42 0x1f43 0x1f44 0x1f45 0x1f46 0x1f47 0x1f48 0x1f49 0x1f4b 0x1f4d 0x1f4f 0x1f50 0x1f51 0x1f53 0x1f55 0x1f57 0x1f58 0x1f59 0x1f5b 0x1f5d 0x1f5f 0x1f60 0x1f61 0x1f63 0x1f65 0x1f67 0x1f68 0x1f69 0x1f6a 0x1f6b 0x1f6c 0x1f6d 0x1f6f 0x1f70 0x1f71 0x1f72 0x1f73 0x1f74 0x1f75 0x1f76 0x1f77 0x1f78 0x1f79 0x1f7a 0x1f7b 0x1f7c 0x1f7d 0x1f7e 0x1f7f 0x1f80 0x1f85 0x1f86>;
					stats-class = "fastpath-be";
				};

				linux-best-effort {
					input-queues = <0x1f88>;
					stats-class = "linux-be";
				};
			};
		};

		qos-tree-1 {
			output-queue = <0x38e>;
			strict-priority;
			byte-units;
			output-rate = <0x1dcd650 0x61a8>;
			overhead-bytes = <0x18>;
			linux,phandle = <0x34>;
			phandle = <0x34>;

			high-priority {
				byte-units;
				priority = <0x0>;

				signaling {
					input-queues = <0x192e 0x1947>;
					stats-class = "fastpath-hp";
					drop-policy = "no-drop";
				};

				linux-signaling {
					input-queues = <0x194d>;
					stats-class = "linux-hp";
					drop-policy = "no-drop";
				};
			};

			wrr-aggregator {
				weighted-round-robin;
				priority = <0x1>;
				byte-units;
				output-rate = <0x17d7840 0x61a8>;
				overhead-bytes = <0x18>;

				wrr-cos0 {
					weighted-round-robin;
					byte-units;
					weight = <0x14>;
					overhead-bytes = <0x18>;

					4g-cos0 {
						drop-policy = "tail-drop-32kb";
						weight = <0x5>;
						input-queues = <0x190a 0x1941>;
						stats-class = "cos0";
					};

					3g-cos0 {
						drop-policy = "tail-drop-32kb";
						weight = <0x5>;
						input-queues = <0x190c>;
						stats-class = "cos0";
					};

					wifi-cos0 {
						drop-policy = "tail-drop-32kb";
						weight = <0x5>;
						input-queues = <0x190e>;
						stats-class = "cos0";
					};

					linux-cos0 {
						drop-policy = "tail-drop-32kb";
						weight = <0x5>;
						input-queues = <0x1949>;
						stats-class = "linux-cos0";
					};
				};

				wrr-cos1 {
					weighted-round-robin;
					byte-units;
					weight = <0x28>;
					overhead-bytes = <0x18>;

					4g-cos1 {
						drop-policy = "red-32kb-128kb";
						weight = <0xa>;
						input-queues = <0x1912 0x1942>;
						stats-class = "cos1";
					};

					3g-cos1 {
						drop-policy = "red-32kb-128kb";
						weight = <0xa>;
						input-queues = <0x1914>;
						stats-class = "cos1";
					};

					wifi-cos1 {
						drop-policy = "red-32kb-128kb";
						weight = <0xa>;
						input-queues = <0x1916>;
						stats-class = "cos1";
					};

					linux-cos1 {
						drop-policy = "red-32kb-128kb";
						weight = <0xa>;
						input-queues = <0x194a>;
						stats-class = "linux-cos1";
					};
				};

				wrr-cos2 {
					weighted-round-robin;
					byte-units;
					weight = <0x3c>;
					overhead-bytes = <0x18>;

					4g-cos2 {
						drop-policy = "red-32kb-64kb";
						weight = <0xf>;
						input-queues = <0x191a 0x1943>;
						stats-class = "cos2";
					};

					3g-cos2 {
						drop-policy = "red-32kb-64kb";
						weight = <0xf>;
						input-queues = <0x191c>;
						stats-class = "cos2";
					};

					wifi-cos2 {
						drop-policy = "red-32kb-64kb";
						weight = <0xf>;
						input-queues = <0x191e>;
						stats-class = "cos2";
					};

					linux-cos2 {
						drop-policy = "red-32kb-64kb";
						weight = <0xf>;
						input-queues = <0x194b>;
						stats-class = "linux-cos2";
					};
				};

				wrr-cos3 {
					weighted-round-robin;
					byte-units;
					weight = <0x50>;
					overhead-bytes = <0x18>;

					4g-cos3 {
						drop-policy = "tail-drop-64kb";
						weight = <0x14>;
						input-queues = <0x1922 0x1944>;
						stats-class = "cos3";
					};

					3g-cos3 {
						drop-policy = "tail-drop-64kb";
						weight = <0x14>;
						input-queues = <0x1924>;
						stats-class = "cos3";
					};

					wifi-cos3 {
						drop-policy = "tail-drop-64kb";
						weight = <0x14>;
						input-queues = <0x1926>;
						stats-class = "cos3";
					};

					linux-cos3 {
						drop-policy = "tail-drop-64kb";
						weight = <0x14>;
						input-queues = <0x194c>;
						stats-class = "linux-cos3";
					};
				};
			};

			best-effort {
				byte-units;
				priority = <0x2>;
				drop-policy = "tail-drop-64kb";

				fastpath-best-effort {
					input-queues = <0x1900 0x1901 0x1902 0x1903 0x1904 0x1905 0x1906 0x1907 0x1908 0x1909 0x190b 0x190d 0x190f 0x1910 0x1911 0x1913 0x1915 0x1917 0x1918 0x1919 0x191b 0x191d 0x191f 0x1920 0x1921 0x1923 0x1925 0x1927 0x1928 0x1929 0x192a 0x192b 0x192c 0x192d 0x192f 0x1930 0x1931 0x1932 0x1933 0x1934 0x1935 0x1936 0x1937 0x1938 0x1939 0x193a 0x193b 0x193c 0x193d 0x193e 0x193f 0x1940 0x1945 0x1946>;
					stats-class = "fastpath-be";
				};

				linux-best-effort {
					input-queues = <0x1948>;
					stats-class = "linux-be";
				};
			};
		};

		default-drop-policies {
			linux,phandle = <0x32>;
			phandle = <0x32>;

			no-drop {
				default;
				packet-units;
				limit = <0x0>;
			};

			tail-drop-64pkts {
				packet-units;
				limit = <0x40>;
			};

			tail-drop-100pkts {
				packet-units;
				limit = <0x64>;
			};

			tail-drop-32kb {
				byte-units;
				limit = <0x8000>;
			};

			tail-drop-64kb {
				byte-units;
				limit = <0x10000>;
			};

			red-32kb-128kb {
				byte-units;
				limit = <0x30000>;
				random-early-drop = <0x8000 0x20000 0x2 0x7d0>;
			};

			red-32kb-64kb {
				byte-units;
				limit = <0x20000>;
				random-early-drop = <0x8000 0x10000 0x2 0x7d0>;
			};

			all-drop {
				byte-units;
				limit = <0x0>;
			};
		};

		intd@2a0c000 {
			compatible = "syscon";
			reg = <0x2a0c000 0x3c8>;
			linux,phandle = <0x35>;
			phandle = <0x35>;
		};

		qmss@2a40000 {
			compatible = "ti,keystone-navigator-qmss";
			dma-coherent;
			#address-cells = <0x1>;
			#size-cells = <0x1>;
			clocks = <0xb>;
			clock-names = "qmss_clk";
			ranges;
			queue-range = <0x0 0x2000>;
			linkram0 = <0x100000 0x4000>;
			linkram1 = <0x70000000 0x10000>;

			qmgrs {
				#address-cells = <0x1>;
				#size-cells = <0x1>;
				ranges;

				qmgr0 {
					managed-queues = <0x0 0x2000>;
					reg = <0x2a40000 0x20000 0x2a06000 0x400 0x2a02000 0x1000 0x2a03000 0x1000 0x23a80000 0x20000 0x2a80000 0x20000>;
					reg-names = "peek", "status", "config", "region", "push", "pop";
				};
			};

			queue-pools {

				qpend {

					qpend-0 {
						qrange = <0x292 0x8>;
						interrupts = <0x0 0x28 0xf04 0x0 0x29 0xf04 0x0 0x2a 0xf04 0x0 0x2b 0xf04 0x0 0x2c 0xf04 0x0 0x2d 0xf04 0x0 0x2e 0xf04 0x0 0x2f 0xf04>;
					};

					qpend-1 {
						qrange = <0x210 0x10>;
						interrupts = <0x0 0x30 0xf04 0x0 0x31 0xf04 0x0 0x32 0xf04 0x0 0x33 0xf04 0x0 0x34 0xf04 0x0 0x35 0xf04 0x0 0x36 0xf04 0x0 0x37 0xf04 0x0 0x38 0xf04 0x0 0x39 0xf04 0x0 0x3a 0xf04 0x0 0x3b 0xf04 0x0 0x3c 0xf04 0x0 0x3d 0xf04 0x0 0x3e 0xf04 0x0 0x3f 0xf04>;
						qalloc-by-id;
					};

					qpend-2 {
						qrange = <0x220 0x10>;
						interrupts = <0x0 0x40 0xf04 0x0 0x41 0xf04 0x0 0x42 0xf04 0x0 0x3b 0xf04 0x0 0x44 0xf04 0x0 0x45 0xf04 0x0 0x46 0xf04 0x0 0x47 0xf04 0x0 0x48 0xf04 0x0 0x49 0xf04 0x0 0x4a 0xf04 0x0 0x4b 0xf04 0x0 0x4c 0xf04 0x0 0x4d 0xf04 0x0 0x4e 0xf04 0x0 0x4f 0xf04>;
					};
				};

				general-purpose {

					gp-0 {
						qrange = <0xfa0 0x40>;
					};

					netcp-tx {
						qrange = <0x380 0x80>;
						qalloc-by-id;
					};
				};

				qos {

					qos-inputs-0 {
						qrange = <0x1f40 0xc0>;
						pdsp-id = <0x3>;
						ticks-per-sec = <0x2710>;
						qos-cfg = <0x4 0x32 0x1 0x1 0xf00 0x0 0x0>;
						sched-port-configs = <0x0 0x14 0x1c8>;
						drop-out-profiles = <0x0 0x24 0xc>;
						drop-cfg-profiles = <0x0 0x8 0x14>;
						drop-queue-configs = <0x0 0x50 0x4>;
						drop-policies = <0x32>;
						qos-tree = <0x33>;
						statistics-profiles = <0x0 0x30>;
						qalloc-by-id;
					};

					qos-inputs-1 {
						qrange = <0x1900 0xc0>;
						pdsp-id = <0x7>;
						ticks-per-sec = <0x2710>;
						qos-cfg = <0x4 0x32 0x1 0x1 0xf00 0x0 0x0>;
						sched-port-configs = <0x0 0x14 0x1c8>;
						drop-out-profiles = <0x0 0x24 0xc>;
						drop-cfg-profiles = <0x0 0x8 0x14>;
						drop-queue-configs = <0x0 0x50 0x4>;
						drop-policies = <0x32>;
						qos-tree = <0x34>;
						statistics-profiles = <0x0 0x30>;
						qalloc-by-id;
					};
				};

				accumulator {

					acc-low-0 {
						qrange = <0x1e0 0x20>;
						accumulator = <0x0 0x2f 0x10 0x2 0x32>;
						interrupts = <0x0 0xe2 0xf01>;
						multi-queue;
					};
				};
			};

			descriptor-regions {
				#address-cells = <0x1>;
				#size-cells = <0x1>;
				ranges;

				region-12 {
					id = <0xc>;
					region-spec = <0x2800 0x80>;
					link-index = <0x4000>;
				};
			};

			pdsps {
				#address-cells = <0x1>;
				#size-cells = <0x1>;
				ranges;

				pdsp0@0x2a10000 {
					syscon-intd = <0x35>;
					reg = <0x2a10000 0x1000 0x2a0f000 0x100 0x2a20000 0x4000>;
					id = <0x0>;
				};

				pdsp3@0x2a13000 {
					firmware_type = "qos";
					syscon-intd = <0x35>;
					reg = <0x2a13000 0x1000 0x2a0f300 0x100 0x2a2c000 0x4000>;
					reg-names = "iram", "regs", "command";
					id = <0x3>;
				};

				pdsp7@0x2a17000 {
					firmware_type = "qos";
					syscon-intd = <0x35>;
					reg = <0x2a17000 0x1000 0x2a0f700 0x100 0x2a3c000 0x4000>;
					reg-names = "iram", "regs", "command";
					id = <0x7>;
				};
			};
		};

		knav_dmas@0 {
			compatible = "ti,keystone-navigator-dma";
			clocks = <0x8>;
			#address-cells = <0x1>;
			#size-cells = <0x1>;
			ranges;
			ti,navigator-cloud-address = <0x23a80000 0x23a90000>;

			dma_gbe@0 {
				reg = <0x26186000 0x100 0x26187000 0x2a0 0x26188000 0xb60 0x26186100 0x80 0x26189000 0x1000>;
				reg-names = "global", "txchan", "rxchan", "txsched", "rxflow";
				ti,enable-all;
				linux,phandle = <0x37>;
				phandle = <0x37>;
			};
		};

		subsys@26200000 {
			compatible = "syscon";
			reg = <0x26200000 0x100>;
			linux,phandle = <0x38>;
			phandle = <0x38>;
		};

		phy@232a000 {
			status = "okay";
			compatible = "ti,keystone-serdes-gbe";
			reg = <0x232a000 0x2000>;
			link-rate-kbps = <0x1312d0>;
			num-lanes = <0x2>;
			#address-cells = <0x1>;
			#size-cells = <0x0>;
			clocks = <0x1d>;
			clock-names = "fck";

			lane@0 {
				status = "ok";
				reg = <0x0>;
				#phy-cells = <0x0>;
				control-rate = <0x2>;
				rx-start = <0x7 0x5>;
				rx-force = <0x1 0x1>;
				tx-coeff = <0x0 0x0 0x0 0xc 0x4>;
				linux,phandle = <0x39>;
				phandle = <0x39>;
			};

			lane@1 {
				status = "ok";
				reg = <0x1>;
				#phy-cells = <0x0>;
				control-rate = <0x2>;
				rx-start = <0x7 0x5>;
				rx-force = <0x1 0x1>;
				tx-coeff = <0x0 0x0 0x0 0xc 0x4>;
				linux,phandle = <0x3b>;
				phandle = <0x3b>;
			};
		};

		netcp@26000000 {
			reg = <0x2620110 0x8>;
			reg-names = "efuse";
			compatible = "ti,netcp-1.0";
			#address-cells = <0x1>;
			#size-cells = <0x1>;
			ranges = <0x0 0x26000000 0x1000000>;
			clocks = <0xd 0x1d 0xe 0x36>;
			clock-names = "pa_clk", "ethss_clk", "cpts", "osr_clk";
			dma-coherent;
			ti,navigator-dmas = <0x37 0x0 0x37 0x8 0x37 0x0 0x37 0x16 0x37 0x17 0x37 0x18 0x37 0x19 0x37 0x1b 0x37 0x1c 0x37 0x1d 0x37 0x1e 0x37 0x8 0x37 0x9 0x37 0xa 0x37 0xb 0x37 0xc 0x37 0xd 0x37 0xe 0x37 0x1f 0x37 0x12>;
			ti,navigator-dma-names = "netrx0", "netrx1", "nettx", "netrx0-pa", "netrx1-pa", "netrx2-pa", "netrx3-pa", "netrx4-pa", "netrx5-pa", "netrx6-pa", "netrx7-pa", "pa-cl0", "pa-cl1", "pa-cl2", "pa-cl3", "pa-cl4", "pa-cl5", "pa-cl6", "pa-cmd-rsp", "sa-tx0";

			netcp-devices {
				#address-cells = <0x1>;
				#size-cells = <0x1>;
				ranges;

				gbe@200000 {
					label = "netcp-gbe";
					compatible = "ti,netcp-gbe-5";
					syscon-subsys = <0x38>;
					reg = <0x200100 0x400 0x220000 0x20000>;
					tx-queue = <0x380>;
					tx-channel = "nettx";
					cpts-rftclk-sel = <0x0>;
					cpts-ts-comp-length;

					interfaces {

						interface-0 {
							phys = <0x39>;
							slave-port = <0x0>;
							link-interface = <0x1>;
							phy-handle = <0x3a>;
							linux,phandle = <0x3f>;
							phandle = <0x3f>;
						};

						interface-1 {
							phys = <0x3b>;
							slave-port = <0x1>;
							link-interface = <0x1>;
							phy-handle = <0x3c>;
							linux,phandle = <0x42>;
							phandle = <0x42>;
						};
					};

					secondary-slave-ports {

						port-2 {
							phys = <0x3d>;
							slave-port = <0x2>;
							link-interface = <0x2>;
						};

						port-3 {
							phys = <0x3e>;
							slave-port = <0x3>;
							link-interface = <0x2>;
						};
					};
				};

				pa@0 {
					#address-cells = <0x1>;
					#size-cells = <0x1>;
					label = "netcp-pa2";
					compatible = "ti,netcp-pa2";
					reg = <0x0 0x100 0x400 0x40 0x500 0x80 0x800 0x1000 0x6000 0x100 0x8000 0x100 0x400000 0x900000>;
					mac-lut-ranges = <0x0 0x2b 0x38 0x3f>;
					ip-lut-ranges = <0x3d 0x3f>;
					rx-route = <0x210 0x16>;
					tx-cmd-pool = <0x100 0xc>;
					rx-cmd-rsp-pool = <0x100 0xc>;
					rx-cmd-rsp-chan = "pa-cmd-rsp";
					rx-cmd-rsp-queue-depth = <0x80 0x20 0x0 0x0>;
					rx-cmd-rsp-buffer-size = <0x80 0x200 0x0 0x0>;

					interfaces {

						interface-0 {
							slave-port = <0x0>;
							rx-channel = "netrx0-pa";
							linux,phandle = <0x40>;
							phandle = <0x40>;
						};

						interface-1 {
							slave-port = <0x1>;
							rx-channel = "netrx1-pa";
							linux,phandle = <0x43>;
							phandle = <0x43>;
						};
					};

					clusters {
						#address-cells = <0x1>;
						#size-cells = <0x0>;

						cluster@0 {
							reg = <0x0>;
							tx-queue = <0x388>;
							tx-channel = "pa-cl0";
						};

						cluster@1 {
							reg = <0x1>;
							tx-queue = <0x389>;
							tx-channel = "pa-cl1";
						};

						cluster@5 {
							reg = <0x5>;
							tx-queue = <0x38d>;
							tx-channel = "pa-cl5";
						};

						cluster@6 {
							reg = <0x6>;
							tx-queue = <0x38e>;
							tx-channel = "pa-cl6";
						};
					};
				};

				qos@0 {
					label = "netcp-qos";
					compatible = "ti,netcp-qos";
					tx-channel = "pa-cl6";

					interfaces {

						interface-0 {
							tx-queues = <0x38e 0x1f88 0x1f89 0x1f8a 0x1f8b 0x1f8c 0x1f8d>;
							linux,phandle = <0x41>;
							phandle = <0x41>;
						};

						interface-1 {
							tx-queues = <0x38e 0x1948 0x1949 0x194a 0x194b 0x194c 0x194d>;
							linux,phandle = <0x44>;
							phandle = <0x44>;
						};
					};
				};

				sa@80000 {
					label = "netcp-sa";
					multi-interface;
					natt-port = <0x0>;
					tx-submit-queue = <0x392>;

					interfaces {

						interface-0 {
							slave-port = <0x0>;
							ti,tx-channel = "sa-tx0";
						};

						interface-1 {
							slave-port = <0x1>;
							ti,tx-channel = "sa-tx0";
						};
					};
				};
			};

			netcp-interfaces {

				interface-0 {
					rx-channel = "netrx0";
					rx-pool = <0x400 0xc>;
					rx-queue-depth = <0x80 0x80 0x0 0x0>;
					rx-buffer-size = <0x5ee 0x1000 0x0 0x0>;
					rx-queue = <0x210>;
					tx-pools = <0x400 0xc 0x11 0x11 0x40 0xc 0x11 0x11 0x40 0xc 0x11 0x11 0x40 0xc 0x11 0x11 0x40 0xc 0x11 0x11 0x40 0xc 0x11 0x11 0x40 0xc 0x11 0x11>;
					tx-completion-queue = <0x212>;
					efuse-mac = <0x1>;
					netcp-gbe = <0x3f>;
					netcp-pa2 = <0x40>;
					netcp-qos = <0x41>;
				};

				interface-1 {
					rx-channel = "netrx1";
					rx-pool = <0x400 0xc>;
					rx-queue-depth = <0x80 0x80 0x0 0x0>;
					rx-buffer-size = <0x5ee 0x1000 0x0 0x0>;
					rx-queue = <0x211>;
					tx-pools = <0x400 0xc 0x11 0x11 0x40 0xc 0x11 0x11 0x40 0xc 0x11 0x11 0x40 0xc 0x11 0x11 0x40 0xc 0x11 0x11 0x40 0xc 0x11 0x11 0x40 0xc 0x11 0x11>;
					tx-completion-queue = <0x213>;
					efuse-mac = <0x0>;
					local-mac-address = [02 18 31 7e 3e 7f];
					netcp-gbe = <0x42>;
					netcp-pa2 = <0x43>;
					netcp-qos = <0x44>;
				};
			};
		};

		subsys@26080000 {
			#address-cells = <0x1>;
			#size-cells = <0x1>;
			ranges = <0x0 0x26080000 0x40000>;
			compatible = "simple-bus";
			dma-coherent;
			dma-ranges;

			subsys@0 {
				compatible = "syscon";
				reg = <0x0 0x100>;
				linux,phandle = <0x45>;
				phandle = <0x45>;
			};

			hwrng@24000 {
				compatible = "ti,keystone-rng";
				ti,syscon-sa-cfg = <0x45>;
				clocks = <0x46>;
				clock-names = "fck";
				reg = <0x24000 0x1000>;
			};

			crypto@0 {
				compatible = "ti,netcp-sa-crypto";
				syscon-subsys = <0x45>;
				clocks = <0x46>;
				clock-names = "fck";
				ti,navigator-dmas = <0x37 0x1a 0x37 0x12>;
				ti,navigator-dma-names = "crypto-rx", "crypto-tx";
				ti,rx-channel = "crypto-rx";
				ti,rx-queue-depth = <0x100 0x40 0x0 0x0>;
				ti,rx-compl-queue = <0x218>;
				ti,rx-pool = <0x200 0xc>;
				ti,tx-channel = "crypto-tx";
				ti,tx-queue-depth = <0x100>;
				ti,tx-completion-queue = <0x219>;
				ti,tx-pool = <0x200 0xc>;
				ti,tx-submit-queue = <0x392>;
				ti,sc-id = <0x7000 0x71ff>;
			};
		};

		dspmem@a0000000 {
			compatible = "ti,keystone-dsp-mem";
			reg = <0xa0000000 0x10000000>;
		};

		mpax {
			compatible = "ti,uio-module-drv";
			mem = <0xbc00000 0xa00>;
		};

		edma3 {
			compatible = "ti,uio-module-drv";
			mem = <0x2700000 0xc0000>;
		};

		secmgr {
			compatible = "ti,uio-module-drv";
			mem = <0x2500100 0x4>;
		};

		qmss {
			compatible = "ti,uio-module-drv";
			mem = <0x2a00000 0x100000 0x23a00000 0x200000>;
		};

		qpend0 {
			compatible = "ti,uio-module-drv";
			interrupts = <0x0 0x2c 0xf04>;
			interrupt-mode = <0x1>;

			cfg-params {
				ti,qm-queue = <0x296>;
			};
		};

		qpend1 {
			compatible = "ti,uio-module-drv";
			interrupts = <0x0 0x2d 0xf04>;
			interrupt-mode = <0x1>;

			cfg-params {
				ti,qm-queue = <0x297>;
			};
		};

		qpend2 {
			compatible = "ti,uio-module-drv";
			interrupts = <0x0 0x2e 0xf04>;
			interrupt-mode = <0x1>;

			cfg-params {
				ti,qm-queue = <0x298>;
			};
		};

		qpend3 {
			compatible = "ti,uio-module-drv";
			interrupts = <0x0 0x2f 0xf04>;
			interrupt-mode = <0x1>;

			cfg-params {
				ti,qm-queue = <0x299>;
			};
		};

		cic2_out32 {
			compatible = "ti,uio-module-drv";
			interrupts = <0x0 0x1c3 0xf01>;
		};

		cic2_out33 {
			compatible = "ti,uio-module-drv";
			interrupts = <0x0 0x1c4 0xf01>;
		};

		cic2_out34 {
			compatible = "ti,uio-module-drv";
			interrupts = <0x0 0x1c5 0xf01>;
		};

		cic2_out35 {
			compatible = "ti,uio-module-drv";
			interrupts = <0x0 0x1c6 0xf01>;
		};

		cic2_out36 {
			compatible = "ti,uio-module-drv";
			interrupts = <0x0 0x1c7 0xf01>;
		};

		cic2_out37 {
			compatible = "ti,uio-module-drv";
			interrupts = <0x0 0x1c8 0xf01>;
		};

		cic2_out38 {
			compatible = "ti,uio-module-drv";
			interrupts = <0x0 0x1c9 0xf01>;
		};

		cic2_out39 {
			compatible = "ti,uio-module-drv";
			interrupts = <0x0 0x1ca 0xf01>;
		};

		cic2_out40 {
			compatible = "ti,uio-module-drv";
			interrupts = <0x0 0x1cb 0xf01>;
		};

		cic2_out41 {
			compatible = "ti,uio-module-drv";
			interrupts = <0x0 0x1cc 0xf01>;
		};

		cic2_out42 {
			compatible = "ti,uio-module-drv";
			interrupts = <0x0 0x1cd 0xf01>;
		};

		cic2_out43 {
			compatible = "ti,uio-module-drv";
			interrupts = <0x0 0x1ce 0xf01>;
		};

		cic2_out44 {
			compatible = "ti,uio-module-drv";
			interrupts = <0x0 0x1cf 0xf01>;
		};

		cic2_out45 {
			compatible = "ti,uio-module-drv";
			interrupts = <0x0 0x1d0 0xf01>;
		};

		cic2_out46 {
			compatible = "ti,uio-module-drv";
			interrupts = <0x0 0x1d1 0xf01>;
		};

		cic2_out47 {
			compatible = "ti,uio-module-drv";
			interrupts = <0x0 0x1d2 0xf01>;
		};

		cic2_out18 {
			compatible = "ti,uio-module-drv";
			interrupts = <0x0 0x1d3 0xf01>;
		};

		cic2_out19 {
			compatible = "ti,uio-module-drv";
			interrupts = <0x0 0x1d4 0xf01>;
		};

		cic2_out22 {
			compatible = "ti,uio-module-drv";
			interrupts = <0x0 0x1d5 0xf01>;
		};

		cic2_out23 {
			compatible = "ti,uio-module-drv";
			interrupts = <0x0 0x1d6 0xf01>;
		};

		cic2_out50 {
			compatible = "ti,uio-module-drv";
			interrupts = <0x0 0x1d7 0xf01>;
		};

		cic2_out51 {
			compatible = "ti,uio-module-drv";
			interrupts = <0x0 0x1d8 0xf01>;
		};

		cic2_out66 {
			compatible = "ti,uio-module-drv";
			interrupts = <0x0 0x1d9 0xf01>;
		};

		cic2_out67 {
			compatible = "ti,uio-module-drv";
			interrupts = <0x0 0x1da 0xf01>;
		};

		srss {
			compatible = "ti,uio-module-drv";
			mem = <0x2330000 0x400>;
			clocks = <0x20>;
			interrupts = <0x0 0x173 0xf01>;
		};
	};

	cpus {
		#address-cells = <0x1>;
		#size-cells = <0x0>;
		interrupt-parent = <0x1>;

		cpu@0 {
			compatible = "arm,cortex-a15";
			device_type = "cpu";
			reg = <0x0>;
		};

		cpu@1 {
			compatible = "arm,cortex-a15";
			device_type = "cpu";
			reg = <0x1>;
		};
	};

	reserved-memory {
		#address-cells = <0x2>;
		#size-cells = <0x2>;
		ranges;

		dsp_common_cma_pool {
			compatible = "shared-dma-pool";
			reg = <0x8 0x1f800000 0x0 0x800000>;
			reusable;
			linux,phandle = <0x27>;
			phandle = <0x27>;
		};

		dsp_reserved_mpm_area {
			compatible = "shared-dma-pool";
			reg = <0x8 0x20000000 0x0 0x10000000>;
			no-map;
			status = "okay";
		};

		cmem_block_mem@830000000 {
			reg = <0x8 0x30000000 0x0 0x18000000>;
			no-map;
			status = "okay";
			linux,phandle = <0x47>;
			phandle = <0x47>;
		};
	};

	cmem {
		compatible = "ti,cmem";
		#address-cells = <0x1>;
		#size-cells = <0x0>;
		#pool-size-cells = <0x2>;
		status = "okay";

		cmem_block@0 {
			reg = <0x0>;
			memory-region = <0x47>;
			cmem-buf-pools = <0x1 0x0 0x18000000>;
		};

		cmem_block@1 {
			reg = <0x1>;
			sram = <0x48>;
		};
	};
};

tisdk_k2l-evm_defconfig.txt
Any help will be appreciated.

Best Regards,
Jason

  • Hi Jason,

    I've forwarded this to the experts. Their feedback should be posted here.

    BR
    Tsvetolin Shulev
  • Hi all,

    I update some information about this issue I meet.

    I can confirm that the CPU1 hangs all the time.

    From this link

    wiki.tiprocessors.com/.../Linux_Core_Boot_Monitor_User's_Guide

    When do mon_install in u-boot, CPU0 will execute _skern_init.

    When Linux kernel boot up, CPU0 do power on CPU1 and make CPU1 to execute _skern_123_init in boot-monitor.

    I add debug function in assembly language to print some characters on UART0.

    If I add jump the debug function in _skern_init as first instruction, I will get the debug characters on UART0 when I do mon_install in u-boot.

    If I add jump the debug function in _skern_123_init as first instruction,

    there isn't any debug characters when CPU0 tryes to bring up CPU1 in Linux kernel booting up flow.

    Any help will be appreciated.
    Best Regards,
    Jason

  • There is a duplicated post in e2e.ti.com/.../2237252
    We'll use this thread. Not to lose the info, the link to the other post is shown above.
  • Hi, Jason,

    Are you using TI EVM? Are you able to bring up Kernel on TI EVM? Once the kernel boots up, all secondary cores should be running. I had the K2E/L EVM up running using prebuilt images from ProcSDK 3.2. From the top display, you can see the cpu utilization of all its 4 cores when running a multicore benchmark.

  • Hi Rex,

    There are only 2 ARM cores in K2L while 4 ARM cores in K2E. So do you using K2L EVM?

    I don't have TI EVM. I use our board, which is almost the same with TI EVM except the power supply and some GPIO for controling some other chips.

    I have tested prebuilt images from ProcSDK 3.02 and 3.03 with the same result.

    I also have checked the Core-Before-IO Power Sequencing and make sure it meets the requirements with datasheet.

    I am quite double about the ARM boot magic address as another thread shows.

    Currently the arm boot magic address and entry setting in boot-monitor is show as follow:

        #define CORE_N_BASE_ADDR_ARM0	0x02501040
        unsigned int *addr = (unsigned int *)CORE_N_BASE_ADDR_ARM0;
        for (i = 1; i < ARM_CLUSTER_NUM_CPUS; i++) {
                addr[i * 2] = (unsigned int )_skern_123_init;
        }

    But the secondary arm core doesn't execute instruction at all on my board.

    I have added debug function in skernel.S to check if secondary arm core could execute instruction by putting debug info on UART0 with assembly code.

    It's like this:

    .global	_skern_123_init
    _skern_123_init:
    @
    @ we came here after RBL fast boot
    @ we don't need to save SP and other registers
    @ we just install monitor vectors and stack for us
    @
        b __debug_test

    If I revert the arm boot magic address to old one as follows:

        #define CORE_N_BASE_ADDR_ARM0 0x0c1d2500
        unsigned int *addr = (unsigned int *)CORE_N_BASE_ADDR_ARM0;
       for (i = 1; i < ARM_CLUSTER_NUM_CPUS; i++) {
     addr[i] = (unsigned int )_skern_123_init;
       }
    The secondary arm core can execute my debug code and put debug information on UART0.
    But it hangs up after executing mcr instruction as follows:
    .global _skern_123_init
    _skern_123_init:
    @
    @ we came here after RBL fast boot
    @ we don't need to save SP and other registers
    @ we just install monitor vectors and stack for us
    @
           @b __debug_test
           mrs r8, cpsr
    bic r8, r8, #0x1f
    orr r8, r8, #0x16
    msr cpsr_c, r8
            @b __debug_test
     
    ldr r1, =monitor_vectors
            @b __debug_test
    mcr p15, #0, r1, c12, c0, #1   @secondary arm hangs when execute this instruction
            b __debug_test @no reach here
    mrc p15, #0, r0, c0, c0, #5
     
    and r0,  r0, #3
            @b __debug_test @no reach here
    It's so fuzzy. There isn't any document which illustrate the arm boot magic address on66AK2L06.
  • Hi, Jason,

    K2L and K2E are the same family. The only difference is K2L has the wireless interface. They use the same software. Here is the top screenshot of K2L showing 2 cores up and running.

  • Hi, Rex,

    I have got an EVM from TI.

    It can boot up both ARM core with the prebuilt images and my self modified version images.

    I find out that the chip on EVM is TCI6630K2L while ours are 66ak2l06.

    I have checked the two chip spec and datasheet.

    It seems that there isn't different about ARM CorePac and DSP CorePac except CPU frequency.

    There are some different peripherals but I think they are nothing to do with my issue.

    The power supply are the same.

    From the u-boot inforamation, I also confirm there are the same chip series.

    Is there any suggestion?

     

    Best Regards,

    Jason

  • Hi, Jason,

    The part number only indicates the SoC being used by which business unit. The TCIxx indicates for Communication Infrastructure BU while 66AK2 for Catalog BU.  Because of it being used in different BUs, probably some of the peripherals/coprocessors are different. In Catalog BU, I ususally deal with 66AK2E which is the same family as K2L, but without the wireless. In terms of Linux, they are the same except the dts file. I can't think of any reason that your board is not coming up except the hardware is different.

    Rex

  • Hi, Rex,

    Thank you for your information!

    I have worked with our hardware engineer to check power supply/resetting circuit and clock supply.

    They meets the requirement with datasheet and almost the same with the EVM I have got.

    What would affect the ARM CorePac's behavior which cause the secondary core failed to come online?

    Best Regards,

    Jason

  • Rex,

    As the first ARM run up already, Do you still think it is related to hardware design? I suppose it may related to software, maybe somewhere check the device type then software run to different switch, just guess, as I don't touch this device before, but this is my customer, Just hope to help them out.

    Customer double checked their hardware design with EVM, did not found different, and also measured power sequence, it meet the device's requirement.

    Beside this, would you please give us more clue to check?

  • Rex,

    We also find some post with same question, but don't know whether and how they resolved the issue:

  • Tony,

    Thanks for the info.

    Jason,

    Just curious what's your SoC PG version, and what the bit 31-28 value for JTAGID (0x02620018)? From Tony's link it seems to me that the issue should happen to pre-pg2 hardware, but my EVM is rev 1.0.3.0 and according to eInfochips webpage, the K2E EVM 1.0.3.0 has silicon revision 1.0. it should fail, but I am not seeing it. Let me spend some time to look into it, and also to see if I can get a PG2.0 EVM.

    Rex 

  • Hi, Rex,

    The issue from Tony's link only affect K2HK series pre-pg2 hardware, but not K2L series hardware.

    I have confirmed the JTAGID(0x02620018) is the same to EVM.

    It is showed as follows,

    => md 0x2620018
    02620018: 0b9a702f 00000000 12408087 00000000    /p........@.....
    02620028: 00000000 00000000 00000000 00000000    ................
    

    And the value from EVM is showed as follows,

    => md 0x2620018 
    02620018: 0b9a702f 00000000 02008087 00000000    /p..............
    02620028: 00000000 00000000 00000000 00000000    ................

    But I notice there is some different about DEVSTAT(0x02620020).

    DEVSTAT on our board is 0x12408087 while it is 0x02008087 on EVM.

    The different bits are reserved bits. I am not sure what exactly means.

    Could you please check if this different value may cause secondary arm core failed to come online?

    Best Regards,

    Jason

  • I upload the chip image for checking SoC version and part number.

  • Hi, Jason,

    It seems that your SoC is rev 1.0. I don't think DEVSTAT bits matter. In Tony's first link, it seems only related to K2HK EVM. In thre pre-built image folder, there is only K2hk birnary file provide. That says it doesn't apply to K2E/L. In the second link, customer didn't provide more feedback, but just verified the answer. That give me the impression that customer didn't reset the u-boot environment variables after u-boot upgrade. I can't find a pg2.0 EVM, but don't think it matters either. The TI EVM has the same rev as yours. I can't explain why we don't see the issue on TI EVM, but yours. Without reproducing the issue at TI, I can't narrow down the cause.

    Rex
  • Hi, Rex,

    It seems the secondary core may execute instructions in some case which I have posted my debug information in this thread before.

    The boot-monitor which historically has two boot entry addresses.

    With the latest boot method, the secondary core doesn't execute any instruction.

    With the old one, the secondary core can execute some instruction but hang with 'mcr' instrcution when it does configuration to CP15.

    From these different behavior, should we get more analysis on it?

    Best Regards,

    Jason

  • Hi, Jason,

    Without reproducing the issue, it is hard for us to debug it. Are you able to follow the way to back out of the change as described in the other thread?

    Rex
  • Hi, Rex,

    I remove 66AK2L06 from our board and replace TCI6630K2 with 66AK2L06 to EVM.

    The secondary arm can boot up.

    I think there are some signal quality should cause the secondary arm failed to boot up.

    I am checking what different there are with our hardware engineer.

    It seems that all the GPIOs and power supply are controled by a FPGA on the EVM.

    Do you have the source code of the FPGA?

    Currently we are just measuring with guess.

    Best Regards,

    Jason

  • Hi, Jason,

    Just want to mention that the issue is not seen on a TI K2L EVM, correct? May be some signal integrity on your hardware? Sorry, I am not familiar with hardware and can only guess. TI EVM is built by eInfochips. I checked the schematics and it is a xilinx fpga. I am not sure if xilinx provided the code or eInfochips programmed the fpga.

    Rex
  • I confirm the issue isn't seen on a TI K2L EVM with TCI6630K2 or 66AK2L06.

    I will try our best to find out what's the root cause.

    If I get it, I will post it here.

  • Hi, Jason,

    It doesn't seem to be a TI issue. If you don't mind, I'll close this thread for now. Though the thread is closed, but it is not locked. Please do post your finding here. If there is other issue, please open a new thread. Thanks!

    Rex

  • Hi, Rex,

    I think my guessing is right with DEVSTAT value which I mentioned before.

    I mentioned it that DEVSTAT value on EVM(TCI6630K2) is 0x02008087 while our board(66AK2L06) gets 0x12048087.

    Now I check DEVSTAT value on EVM(replaced with 66AK2L06)  is 0x02008087 as TCI6630K2.

    These reserved bits in DEVSTAT with different values should reflect what unmet conditions to 66AK2L06 on our board.

    Could you get any information from IC team what exactly the reserved bits in DEVSTAT mean?

    Best Regards,

    Jason

  • Hi, Jason,

    Your question is out of my BU's knowledge and I will need the other BU to answer your question.

    Rex