Tool/software: Linux
Hi,
We have recently purchased 60 new EVMK2H REV40 boards and set them up by running the Processor SDK Linux for K2H/K2K v04.03.00.05 setup script.
Our problem is that the Ethernet connection (eth0/eth1) appears to drop intermittently.
[ 5241.445648] netcp-1.0 2620110.netcp eth0: Link is Down
[ 5242.245965] netcp-1.0 2620110.netcp eth0: Link is Up - 1Gbps/Full - flow control off
[ 5242.245965] netcp-1.0 2620110.netcp eth0: Link is Up - 1Gbps/Full - flow control off
[ 5888.244394] netcp-1.0 2620110.netcp eth0: Link is Down
When follow these doc:
https://e2e.ti.com/support/dsp/c6000_multi-core_dsps/f/639/p/574040/2106374
However, I'm not success, after update Device Tree linux boot fail .
boot output :
Starting kernel ... [ 0.000000] Booting Linux on physical CPU 0x0 [ 0.000000] Linux version 4.9.69-g9ce43c71ae (gtbldadm@ubuntu-16) (gcc version 6.2.1 20161016 (Linaro GCC 6.2-2016.11) ) #1 SMP PREEMPT Mo8 [ 0.000000] CPU: ARMv7 Processor [412fc0f4] revision 4 (ARMv7), cr=30c5387d [ 0.000000] CPU: div instructions available: patching division code [ 0.000000] CPU: PIPT / VIPT nonaliasing data cache, PIPT instruction cache [ 0.000000] OF: fdt:Machine model: Texas Instruments Keystone 2 Kepler/Hawking EVM [ 0.000000] Switching physical address space to 0x800000000 [ 0.000000] efi: Getting EFI parameters from FDT: [ 0.000000] efi: UEFI not found. [ 0.000000] Reserved memory: created CMA memory pool at 0x000000081f800000, size 8 MiB [ 0.000000] OF: reserved mem: initialized node dsp_common_cma_pool@81f800000, compatible id shared-dma-pool [ 0.000000] Reserved memory: created DMA memory pool at 0x0000000820000000, size 256 MiB [ 0.000000] OF: reserved mem: initialized node dsp_common_mpm_pool@820000000, compatible id shared-dma-pool [ 0.000000] cma: Reserved 64 MiB at 0x000000087bc00000 [ 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 13 pages/cpu @de59e000 s22028 r8192 d23028 u53248 [ 0.000000] Built 1 zonelists in Zone order, mobility grouping on. Total pages: 359296 [ 0.000000] Kernel command line: console=ttyS0,115200n8 rootwait=1 rootfstype=nfs root=/dev/nfs rw nfsroot=:/home/xiaobo/ti-processor-sdk-p [ 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: 1339612K/1441792K available (8192K kernel code, 250K rwdata, 2256K rodata, 2048K init, 288K bss, 28452K reserved, 7372) [ 0.000000] Virtual kernel memory layout: [ 0.000000] vector : 0xffff0000 - 0xffff1000 ( 4 kB) [ 0.000000] fixmap : 0xffc00000 - 0xfff00000 (3072 kB) [ 0.000000] vmalloc : 0xe0800000 - 0xff800000 ( 496 MB) [ 0.000000] lowmem : 0xc0000000 - 0xe0000000 ( 512 MB) [ 0.000000] pkmap : 0xbfe00000 - 0xc0000000 ( 2 MB) [ 0.000000] modules : 0xbf000000 - 0xbfe00000 ( 14 MB) [ 0.000000] .text : 0xc0008000 - 0xc0a00000 (10208 kB) [ 0.000000] .init : 0xc0e00000 - 0xc1000000 (2048 kB) [ 0.000000] .data : 0xc1000000 - 0xc103eb08 ( 251 kB) [ 0.000000] .bss : 0xc1040000 - 0xc1088130 ( 289 kB) [ 0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=4, 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=4. [ 0.000000] RCU: Adjusting geometry for rcu_fanout_leaf=32, nr_cpu_ids=4 [ 0.000000] NR_IRQS:16 nr_irqs:16 16 [ 0.000000] GIC: Using split EOI/Deactivate mode [ 0.000000] arm_arch_timer: Architected cp15 timer(s) running at 200.00MHz (phys). [ 0.000000] clocksource: arch_sys_counter: mask: 0xffffffffffffff max_cycles: 0x2e2049d3e8, max_idle_ns: 440795210634 ns [ 0.000003] sched_clock: 56 bits at 200MHz, resolution 5ns, wraps every 4398046511102ns [ 0.000011] Switching to timer-based delay loop, resolution 5ns [ 0.000170] keystone timer clock @200000000 Hz [ 0.000351] Console: colour dummy device 80x30 [ 0.000374] Calibrating delay loop (skipped), value calculated using timer frequency.. 400.00 BogoMIPS (lpj=2000000) [ 0.000384] pid_max: default: 32768 minimum: 301 [ 0.000462] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes) [ 0.000469] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes) [ 0.000969] CPU: Testing write buffer coherency: ok [ 0.001164] /cpus/cpu@0 missing clock-frequency property [ 0.001186] /cpus/cpu@1 missing clock-frequency property [ 0.001207] /cpus/cpu@2 missing clock-frequency property [ 0.001230] /cpus/cpu@3 missing clock-frequency property [ 0.001238] CPU0: thread -1, cpu 0, socket 0, mpidr 80000000 [ 0.001251] Setting up static identity map for 0x80200000 - 0x80200138 [ 0.080116] EFI services will not be available. [ 0.174553] CPU1: thread -1, cpu 1, socket 0, mpidr 80000001 [ 0.244636] CPU2: thread -1, cpu 2, socket 0, mpidr 80000002 [ 0.314718] CPU3: thread -1, cpu 3, socket 0, mpidr 80000003 [ 0.314821] Brought up 4 CPUs [ 0.314837] SMP: Total of 4 processors activated (1600.00 BogoMIPS). [ 0.314843] CPU: All CPU(s) started in HYP mode. [ 0.314847] CPU: Virtualization extensions available. [ 0.315260] devtmpfs: initialized [ 0.323903] VFP support v0.3: implementor 41 architecture 4 part 30 variant f rev 0 [ 0.324087] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns [ 0.324099] futex hash table entries: 1024 (order: 4, 65536 bytes) [ 0.325084] pinctrl core: initialized pinctrl subsystem [ 0.325642] NET: Registered protocol family 16 [ 0.326274] DMA: preallocated 256 KiB pool for atomic coherent allocations [ 0.350312] cpuidle: using governor ladder [ 0.380332] cpuidle: using governor menu [ 0.380417] No ATAGs? [ 0.380433] hw-breakpoint: found 5 (+1 reserved) breakpoint and 4 watchpoint registers. [ 0.380440] hw-breakpoint: maximum watchpoint size is 8 bytes. [ 0.386615] irq: no irq domain found for /soc/keystone_irq@26202a0 ! [ 0.386790] irq: no irq domain found for /soc/keystone_irq@26202a0 ! [ 0.386961] irq: no irq domain found for /soc/keystone_irq@26202a0 ! [ 0.387136] irq: no irq domain found for /soc/keystone_irq@26202a0 ! [ 0.387304] irq: no irq domain found for /soc/keystone_irq@26202a0 ! [ 0.387474] irq: no irq domain found for /soc/keystone_irq@26202a0 ! [ 0.387646] irq: no irq domain found for /soc/keystone_irq@26202a0 ! [ 0.387819] irq: no irq domain found for /soc/keystone_irq@26202a0 ! [ 0.422515] vgaarb: loaded [ 0.423653] pps_core: LinuxPPS API ver. 1 registered [ 0.423660] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it> [ 0.423675] PTP clock support registered [ 0.423698] EDAC MC: Ver: 3.0.0 [ 0.424815] clocksource: Switched to clocksource arch_sys_counter [ 0.431644] NET: Registered protocol family 2 [ 0.432014] TCP established hash table entries: 4096 (order: 2, 16384 bytes) [ 0.432042] TCP bind hash table entries: 4096 (order: 3, 32768 bytes) [ 0.432090] TCP: Hash tables configured (established 4096 bind 4096) [ 0.432122] UDP hash table entries: 256 (order: 1, 8192 bytes) [ 0.432137] UDP-Lite hash table entries: 256 (order: 1, 8192 bytes) [ 0.432231] NET: Registered protocol family 1 [ 0.432449] RPC: Registered named UNIX socket transport module. [ 0.432456] RPC: Registered udp transport module. [ 0.432461] RPC: Registered tcp transport module. [ 0.432466] RPC: Registered tcp NFSv4.1 backchannel transport module. [ 0.432605] Trying to unpack rootfs image as initramfs... [ 0.435210] Freeing initrd memory: 52K [ 0.435366] hw perfevents: enabled with armv7_cortex_a15 PMU driver, 7 counters available [ 0.435893] platform alarmtimer: set dma_pfn_offset00780000 [ 0.436696] workingset: timestamp_bits=14 max_order=19 bucket_order=5 [ 0.442219] squashfs: version 4.0 (2009/01/31) Phillip Lougher [ 0.442745] NFS: Registering the id_resolver key type [ 0.442760] Key type id_resolver registered [ 0.442765] Key type id_legacy registered [ 0.442795] ntfs: driver 2.1.32 [Flags: R/O]. [ 0.443709] bounce: pool size: 64 pages [ 0.443813] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 247) [ 0.443820] io scheduler noop registered [ 0.443826] io scheduler deadline registered [ 0.443927] io scheduler cfq registered (default) [ 0.444066] keystone_irq soc:keystone_irq@26202a0: irqchip registered, nr_irqs 28 [ 0.444536] ti,keystone-serdes 232a000.phy: init fw ks2_gbe_serdes.bin: version 3.3.0.2c [ 0.449049] keystone-navigator-qmss soc:qmss@2a40000: qmgr start queue 0, number of queues 8192 [ 0.449161] keystone-navigator-qmss soc:qmss@2a40000: added qmgr start queue 0, num of queues 8192, reg_peek e0fa0000, reg_status e096d0000 [ 0.449171] keystone-navigator-qmss soc:qmss@2a40000: qmgr start queue 8192, number of queues 8192 [ 0.449265] keystone-navigator-qmss soc:qmss@2a40000: added qmgr start queue 8192, num of queues 8192, reg_peek e1060000, reg_status e09730 [ 0.449390] keystone-navigator-qmss soc:qmss@2a40000: firmware file ks2_qmss_pdsp_acc48.bin downloaded for PDSP [ 0.451666] keystone-navigator-dma soc:knav_dmas@0: DMA dma_gbe registered 41 logical channels, flows 32, tx chans: 9, rx chans: 24 [ 0.451766] keystone-navigator-dma soc:knav_dmas@0: DMA dma_xgbe registered 48 logical channels, flows 32, tx chans: 16, rx chans: 16 [ 0.495050] Serial: 8250/16550 driver, 10 ports, IRQ sharing disabled [ 0.495118] platform serial8250: set dma_pfn_offset00780000 [ 0.497383] console [ttyS0] disabled [ 0.497422] 2530c00.serial: ttyS0 at MMIO 0x2530c00 (irq = 26, base_baud = 12500000) is a TI DA8xx/66AK2x [ 1.352602] console [ttyS0] enabled [ 1.356739] 2531000.serial: ttyS1 at MMIO 0x2531000 (irq = 27, base_baud = 12500000) is a TI DA8xx/66AK2x [ 1.378732] [drm] Initialized [ 1.389972] brd: module loaded [ 1.397369] loop: module loaded [ 1.401388] at24 0-0050: 131072 byte 24c1024 EEPROM, writable, 1 bytes/write [ 1.409997] spi_davinci 21000400.spi: DMA is not supported (-19) [ 1.416612] m25p80 spi0.0: n25q128a11 (16384 Kbytes) [ 1.421610] 2 ofpart partitions found on MTD device spi0.0 [ 1.427128] Creating 2 MTD partitions on "spi0.0": [ 1.431936] 0x000000000000-0x000000100000 : "u-boot-spl" [ 1.438052] 0x000000100000-0x000001000000 : "misc" [ 1.443620] spi_davinci 21000400.spi: Controller at 0xe0fdb400 [ 1.449653] spi_davinci 21000600.spi: DMA is not supported (-19) [ 1.456012] spi_davinci 21000600.spi: Controller at 0xe0fdd600 [ 1.462023] spi_davinci 21000800.spi: DMA is not supported (-19) [ 1.468366] spi_davinci 21000800.spi: Controller at 0xe101c800 [ 1.474573] platform Fixed MDIO bus.0: set dma_pfn_offset00780000 [ 1.480823] libphy: Fixed MDIO Bus: probed [ 1.486353] ti,keystone-serdes 232a000.phy: Requested PHY is disabled [ 2.005516] ti,keystone-serdes 232a000.phy: Requested PHY is disabled [ 2.524532] netcp-1.0 2620110.netcp: device node lookup for pps timer failed [ 2.531635] netcp-1.0 2620110.netcp: cpts: overflow check period 350 (jiffies) [ 2.538898] netcp-1.0 2620110.netcp: CPTS: ref_clk_freq:600000000 calc_mult:3579139413 calc_shift:31 error:-1 nsec/sec [ 2.549644] netcp-1.0 2620110.netcp: initialized cpsw ale version 1.3 [ 2.556118] netcp-1.0 2620110.netcp: ALE Table size 1024 [ 2.562263] netcp-1.0 2620110.netcp: module(netcp-xgbe) not used for device [ 2.569429] netcp-1.0 2620110.netcp: pa_clk_rate(163840000 HZ),mult(25000),shift(12) [ 2.578727] netcp-1.0 2620110.netcp: Using PA fw version 03.00.02.03:0x03000203 on pdsp 0 [ 2.586956] netcp-1.0 2620110.netcp: Using PA fw version 03.00.02.03:0x03000203 on pdsp 1 [ 2.595197] netcp-1.0 2620110.netcp: Using PA fw version 03.00.02.03:0x03000203 on pdsp 2 [ 2.603404] netcp-1.0 2620110.netcp: Using PA fw version 03.00.02.03:0x03000203 on pdsp 3 [ 2.611624] netcp-1.0 2620110.netcp: Using PA fw version 03.00.02.03:0x03000203 on pdsp 4 [ 2.619859] netcp-1.0 2620110.netcp: Using PA fw version 03.00.02.03:0x03000203 on pdsp 5 [ 2.628507] netcp-1.0 2620110.netcp: module(netcp-pa2) not used for device [ 2.635680] mousedev: PS/2 mouse device common for all mice [ 2.641507] i2c /dev entries driver [ 2.647400] ledtrig-cpu: registered to indicate activity on CPUs [ 2.654605] nand: device found, Manufacturer ID: 0x2c, Chip ID: 0xac [ 2.660996] nand: Micron MT29F4G08ABBDAHC [ 2.665030] nand: 512 MiB, SLC, erase size: 128 KiB, page size: 2048, OOB size: 64 [ 2.672918] Bad block table found at page 262080, version 0x01 [ 2.679302] Bad block table found at page 262016, version 0x01 [ 2.685479] 3 ofpart partitions found on MTD device 30000000.nand [ 2.691592] Creating 3 MTD partitions on "30000000.nand": [ 2.697022] 0x000000000000-0x000000100000 : "u-boot" [ 2.702796] 0x000000100000-0x000000180000 : "params" [ 2.708553] 0x000000180000-0x000020000000 : "ubifs" [ 2.717259] davinci_nand 30000000.nand: controller rev. 2.5 [ 2.723495] NET: Registered protocol family 10 [ 2.728693] sit: IPv6, IPv4 and MPLS over IPv4 tunneling driver [ 2.735073] NET: Registered protocol family 17 [ 2.739649] Key type dns_resolver registered [ 2.744024] Registering SWP/SWPB emulation handler [ 2.752605] hctosys: unable to open rtc device (rtc0) [ 2.766845] netcp-1.0 2620110.netcp eth0: Link is Up [ 2.772043] cpts ptp bc clkid 0 [ 2.785151] netcp-1.0 2620110.netcp eth1: Link is Up [ 2.814922] Sending DHCP requests ., OK [ 2.894830] IP-Config: Got DHCP answer from 192.168.1.99, my address is 192.168.1.9 [ 2.902513] IP-Config: Complete: [ 2.905766] device=eth0, hwaddr=50:f1:4a:c0:12:f9, ipaddr=192.168.1.9, mask=255.255.255.0, gw=192.168.1.1 [ 2.915816] host=192.168.1.9, domain=internal.example.org, nis-domain=(none) [ 2.923325] bootserver=192.168.1.99, rootserver=192.168.1.99, rootpath= nameserver0=192.168.1.99 [ 3.064817] (NULL net_device): Link is Down [ 3.069015] (NULL net_device): Link is Down [ 3.574821] netcp-1.0 2620110.netcp eth0: Link is Down [ 6.324893] cpts: unable to obtain a time stamp [ 9.844830] cpts: unable to obtain a time stamp [ 13.364831] cpts: unable to obtain a time stamp [ 16.884830] cpts: unable to obtain a time stamp
keystone-k2hk-evm.dts
/*
* Copyright 2013-2014 Texas Instruments, Inc.
*
* Keystone 2 Kepler/Hawking EVM device tree
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*/
/dts-v1/;
#include "keystone.dtsi"
#include "keystone-k2hk.dtsi"
/ {
compatible = "ti,k2hk-evm", "ti,k2hk", "ti,keystone";
model = "Texas Instruments Keystone 2 Kepler/Hawking EVM";
reserved-memory {
#address-cells = <2>;
#size-cells = <2>;
ranges;
dsp_common_cma_pool: dsp_common_cma_pool@81f800000 {
compatible = "shared-dma-pool";
reg = <0x00000008 0x1f800000 0x00000000 0x800000>;
reusable;
status = "okay";
};
dsp_common_mpm_pool: dsp_common_mpm_pool@820000000 {
compatible = "shared-dma-pool";
reg = <0x00000008 0x20000000 0x00000000 0x10000000>;
no-map;
status = "okay";
};
};
soc {
clocks {
refclksys: refclksys {
#clock-cells = <0>;
compatible = "fixed-clock";
clock-frequency = <122880000>;
clock-output-names = "refclk-sys";
};
refclkpass: refclkpass {
#clock-cells = <0>;
compatible = "fixed-clock";
clock-frequency = <122880000>;
clock-output-names = "refclk-pass";
};
refclkarm: refclkarm {
#clock-cells = <0>;
compatible = "fixed-clock";
clock-frequency = <125000000>;
clock-output-names = "refclk-arm";
};
refclkddr3a: refclkddr3a {
#clock-cells = <0>;
compatible = "fixed-clock";
clock-frequency = <100000000>;
clock-output-names = "refclk-ddr3a";
};
refclkddr3b: refclkddr3b {
#clock-cells = <0>;
compatible = "fixed-clock";
clock-frequency = <100000000>;
clock-output-names = "refclk-ddr3b";
};
};
ddr3edac: edac@21010000 {
status = "ok";
};
mpm_mem: dspmem@a0000000 {
compatible = "ti,keystone-dsp-mem";
reg = <0xa0000000 0x10000000>;
};
};
leds {
compatible = "gpio-leds";
debug1_1 {
label = "keystone:green:debug1";
gpios = <&gpio0 12 GPIO_ACTIVE_HIGH>; /* 12 */
};
debug1_2 {
label = "keystone:red:debug1";
gpios = <&gpio0 13 GPIO_ACTIVE_HIGH>; /* 13 */
};
debug2 {
label = "keystone:blue:debug2";
gpios = <&gpio0 14 GPIO_ACTIVE_HIGH>; /* 14 */
};
debug3 {
label = "keystone:blue:debug3";
gpios = <&gpio0 15 GPIO_ACTIVE_HIGH>; /* 15 */
};
};
};
&usb_phy {
status = "okay";
};
&keystone_usb0 {
status = "okay";
};
&usb0 {
dr_mode = "host";
};
&aemif {
cs0 {
#address-cells = <2>;
#size-cells = <1>;
clock-ranges;
ranges;
ti,cs-chipselect = <0>;
/* all timings in nanoseconds */
ti,cs-min-turnaround-ns = <12>;
ti,cs-read-hold-ns = <6>;
ti,cs-read-strobe-ns = <23>;
ti,cs-read-setup-ns = <9>;
ti,cs-write-hold-ns = <8>;
ti,cs-write-strobe-ns = <23>;
ti,cs-write-setup-ns = <8>;
nand@0,0 {
compatible = "ti,keystone-nand","ti,davinci-nand";
#address-cells = <1>;
#size-cells = <1>;
reg = <0 0 0x4000000
1 0 0x0000100>;
ti,davinci-chipselect = <0>;
ti,davinci-mask-ale = <0x2000>;
ti,davinci-mask-cle = <0x4000>;
ti,davinci-mask-chipsel = <0>;
nand-ecc-mode = "hw";
ti,davinci-ecc-bits = <4>;
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 0x1fe80000>;
};
};
};
};
&i2c0 {
dtt@50 {
compatible = "at,24c1024";
reg = <0x50>;
};
};
&spi0 {
nor_flash: n25q128a11@0 {
#address-cells = <1>;
#size-cells = <1>;
compatible = "Micron,n25q128a11";
spi-max-frequency = <54000000>;
m25p,fast-read;
reg = <0>;
partition@0 {
label = "u-boot-spl";
reg = <0x0 0x100000>;
read-only;
};
partition@1 {
label = "misc";
reg = <0x100000 0xf00000>;
};
};
};
&mdio {
status = "ok";
ethphy0: ethernet-phy@0 {
compatible = "marvell,88E1111", "ethernet-phy-ieee802.3-c22";
reg = <0>;
};
ethphy1: ethernet-phy@1 {
compatible = "marvell,88E1111", "ethernet-phy-ieee802.3-c22";
reg = <1>;
};
};
&gbe_serdes {
status = "okay";
};
&dsp0 {
memory-region = <&dsp_common_cma_pool>;
};
&dsp1 {
memory-region = <&dsp_common_cma_pool>;
};
&dsp2 {
memory-region = <&dsp_common_cma_pool>;
};
&dsp3 {
memory-region = <&dsp_common_cma_pool>;
};
&dsp4 {
memory-region = <&dsp_common_cma_pool>;
};
&dsp5 {
memory-region = <&dsp_common_cma_pool>;
};
&dsp6 {
memory-region = <&dsp_common_cma_pool>;
};
&dsp7 {
memory-region = <&dsp_common_cma_pool>;
};
keystone-k2hk-netcp.dtsi
/*
* Device Tree Source for Keystone 2 Hawking Netcp driver
*
* Copyright 2015 Texas Instruments, Inc.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*/
qmss: qmss@2a40000 {
compatible = "ti,keystone-navigator-qmss";
dma-coherent;
#address-cells = <1>;
#size-cells = <1>;
clocks = <&chipclk13>;
ranges;
queue-range = <0 0x4000>;
linkram0 = <0x100000 0x8000>;
linkram1 = <0x0 0x10000>;
qmgrs {
#address-cells = <1>;
#size-cells = <1>;
ranges;
qmgr0 {
managed-queues = <0 0x2000>;
reg = <0x2a40000 0x20000>,
<0x2a06000 0x400>,
<0x2a02000 0x1000>,
<0x2a03000 0x1000>,
<0x23a80000 0x20000>,
<0x2a80000 0x20000>;
reg-names = "peek", "status", "config",
"region", "push", "pop";
};
qmgr1 {
managed-queues = <0x2000 0x2000>;
reg = <0x2a60000 0x20000>,
<0x2a06400 0x400>,
<0x2a04000 0x1000>,
<0x2a05000 0x1000>,
<0x23aa0000 0x20000>,
<0x2aa0000 0x20000>;
reg-names = "peek", "status", "config",
"region", "push", "pop";
};
};
queue-pools {
qpend {
qpend-0 {
qrange = <658 8>;
interrupts =<0 40 0xf04 0 41 0xf04 0 42 0xf04
0 43 0xf04 0 44 0xf04 0 45 0xf04
0 46 0xf04 0 47 0xf04>;
};
qpend-1 {
qrange = <8704 16>;
interrupts = <0 48 0xf04 0 49 0xf04 0 50 0xf04
0 51 0xf04 0 52 0x104 0 53 0x204
0 54 0xf04 0 55 0xf04 0 56 0xf04
0 57 0xf04 0 58 0xf04 0 59 0xf04
0 60 0xf04 0 61 0xf04 0 62 0xf04
0 63 0xf04>;
qalloc-by-id;
};
qpend-2 {
qrange = <8720 16>;
interrupts = <0 64 0xf04 0 65 0xf04 0 66 0xf04
0 59 0xf04 0 68 0xf04 0 69 0xf04
0 70 0xf04 0 71 0xf04 0 72 0xf04
0 73 0xf04 0 74 0xf04 0 75 0xf04
0 76 0xf04 0 77 0xf04 0 78 0xf04
0 79 0xf04>;
};
};
general-purpose {
gp-0 {
qrange = <4000 64>;
};
netcp-tx {
qrange = <640 9>;
qalloc-by-id;
};
netcpx-tx {
qrange = <8752 8>;
qalloc-by-id;
};
};
accumulator {
acc-low-0 {
qrange = <480 32>;
accumulator = <0 47 16 2 50>;
interrupts = <0 226 0xf01>;
multi-queue;
qalloc-by-id;
};
};
};
descriptor-regions {
#address-cells = <1>;
#size-cells = <1>;
ranges;
region-12 {
id = <12>;
region-spec = <11264 128>;
link-index = <0x4000>;
};
};
pdsps {
#address-cells = <1>;
#size-cells = <1>;
ranges;
pdsp0@0x2a10000 {
reg = <0x2a10000 0x1000 /*iram */
0x2a0f000 0x100 /*reg*/
0x2a0c000 0x3c8 /*intd */
0x2a20000 0x4000>; /*cmd*/
id = <0>;
};
};
}; /* qmss */
knav_dmas: knav_dmas@0 {
compatible = "ti,keystone-navigator-dma";
clocks = <&papllclk>;
#address-cells = <1>;
#size-cells = <1>;
ranges;
ti,navigator-cloud-address = <0x23a80000 0x23a90000
0x23aa0000 0x23ab0000>;
dma_gbe: dma_gbe@0 {
reg = <0x2004000 0x100>,
<0x2004400 0x120>,
<0x2004800 0x300>,
<0x2004c00 0x120>,
<0x2005000 0x400>;
reg-names = "global", "txchan", "rxchan",
"txsched", "rxflow";
ti,enable-all;
};
dma_xgbe: dma_xgbe@0 {
reg = <0x2fa1000 0x100>,
<0x2fa1400 0x200>,
<0x2fa1800 0x200>,
<0x2fa1c00 0x200>,
<0x2fa2000 0x400>;
reg-names = "global", "txchan", "rxchan",
"txsched", "rxflow";
};
};
gbe_subsys: subsys@2090000 {
compatible = "syscon";
reg = <0x02090000 0x100>;
};
gbe_serdes: phy@232a000 {
compatible = "ti,keystone-serdes-gbe";
reg = <0x0232a000 0x2000>;
status = "disabled";
link-rate-kbps = <1250000>;
num-lanes = <4>;
#address-cells = <1>;
#size-cells = <0>;
serdes_lane0: lane@0 {
#phy-cells = <0>;
reg = <0>;
status = "ok";
control-rate = <2>;
rx-start = <7 5>;
rx-force = <1 1>;
tx-coeff = <0 0 0 12 4>;
};
serdes_lane1: lane@1 {
#phy-cells = <0>;
reg = <1>;
status = "ok";
control-rate = <2>;
rx-start = <7 5>;
rx-force = <1 1>;
tx-coeff = <0 0 0 12 4>;
};
serdes_lane2: lane@2 {
#phy-cells = <0>;
reg = <2>;
status = "disabled";
control-rate = <2>;
rx-start = <7 5>;
rx-force = <1 1>;
tx-coeff = <0 0 0 12 4>;
};
serdes_lane3: lane@3 {
#phy-cells = <0>;
reg = <3>;
status = "disabled";
control-rate = <2>;
rx-start = <7 5>;
rx-force = <1 1>;
tx-coeff = <0 0 0 12 4>;
};
};
netcp: netcp@2000000 {
reg = <0x2620110 0x8>;
reg-names = "efuse";
compatible = "ti,netcp-1.0";
#address-cells = <1>;
#size-cells = <1>;
/* NetCP address range */
ranges = <0 0x2000000 0x100000>;
clocks = <&clkpa>, <&clkcpgmac>, <&chipclk12>;
clock-names = "pa_clk", "ethss_clk", "cpts";
dma-coherent;
ti,navigator-dmas = <&dma_gbe 22>, /* rx flow for CPSW port 0 */
<&dma_gbe 23>, /* rx flow for CPSW port 1 */
<&dma_gbe 8>, /* CPSW tx channel */
<&dma_gbe 24>, /* rx flow for CPSW port 2 */
<&dma_gbe 25>, /* rx flow for CPSW port 3 */
<&dma_gbe 0>, /* PA cluster 0 channel */
<&dma_gbe 1>, /* PA cluster 1 channel */
<&dma_gbe 2>, /* PA cluster 2 channel */
<&dma_gbe 3>, /* PA cluster 3 channel */
<&dma_gbe 4>, /* PA cluster 4 channel */
<&dma_gbe 5>, /* PA cluster 5 channel */
<&dma_gbe 31>, /* PA rx flow for cmd rsp */
<&dma_gbe 6>; /* SA tx channel */
ti,navigator-dma-names = "netrx0",
"netrx1",
"nettx",
"netrx2",
"netrx3",
"pa-cl0",
"pa-cl1",
"pa-cl2",
"pa-cl3",
"pa-cl4",
"pa-cl5",
"pa-cmd-rsp",
"sa-tx0";
netcp-devices {
#address-cells = <1>;
#size-cells = <1>;
ranges;
gbe@90000 { /* ETHSS */
label = "netcp-gbe";
compatible = "ti,netcp-gbe";
syscon-subsys = <&gbe_subsys>;
reg = <0x90100 0x200>, <0x90400 0x200>, <0x90800 0x700>;
tx-queue = <648>;
tx-channel = "nettx";
interfaces {
gbe0: interface-0 {
phys = <&serdes_lane0>;
slave-port = <0>;
link-interface = <1>;
phy-handle = <ðphy0>;
};
gbe1: interface-1 {
phys = <&serdes_lane1>;
slave-port = <1>;
link-interface = <1>;
phy-handle = <ðphy1>;
};
};
secondary-slave-ports {
port-2 {
phys = <&serdes_lane2>;
slave-port = <2>;
link-interface = <2>;
};
port-3 {
phys = <&serdes_lane3>;
slave-port = <3>;
link-interface = <2>;
};
};
};
pa@0 {
#address-cells = <1>;
#size-cells = <1>;
label = "netcp-pa";
compatible = "ti,netcp-pa";
reg = <0 0x60>,
<0x400 0x10>,
<0x500 0x40>,
<0x604 0x4>,
<0x1000 0x600>,
<0x3000 0x600>,
<0x6000 0x100>,
<0x10000 0x30000>,
<0x40000 0x8000>;
mac-lut-ranges = <0 43 56 63>;
ip-lut-ranges = <61 63>;
rx-route = <8704 22>;
tx-cmd-pool = <256 12>;
rx-cmd-rsp-pool = <256 12>;
rx-cmd-rsp-chan = "pa-cmd-rsp";
rx-cmd-rsp-queue-depth = <128 32 0 0>;
rx-cmd-rsp-buffer-size = <128 512 0 0>;
interfaces {
pa0: interface-0 {
slave-port = <0>;
};
pa1: interface-1 {
slave-port = <1>;
};
};
clusters {
#address-cells = <1>;
#size-cells = <0>;
cluster@0 {
reg = <0>;
tx-queue = <640>;
tx-channel = "pa-cl0";
};
cluster@1 {
reg = <1>;
tx-queue = <641>;
tx-channel = "pa-cl1";
};
cluster@5 {
reg = <5>;
tx-queue = <645>;
tx-channel = "pa-cl5";
};
};
};
sa@c0000 {
label = "netcp-sa";
multi-interface;
/* Optional: Specify NATT port for fragmentation detection */
natt-port = <0>;
tx-submit-queue = <646>;
interfaces {
sa0: interface-0 {
slave-port = <0>;
ti,tx-channel = "sa-tx0";
};
sa1: interface-1 {
slave-port = <1>;
ti,tx-channel = "sa-tx0";
};
};
};
};
netcp-interfaces {
interface-0 {
rx-channel = "netrx0";
rx-pool = <1024 12>;
tx-pool = <1024 12>;
rx-queue-depth = <128 128 0 0>;
rx-buffer-size = <1518 4096 0 0>;
rx-queue = <8704>;
tx-completion-queue = <8706>;
efuse-mac = <1>;
netcp-gbe = <&gbe0>;
netcp-pa = <&pa0>;
netcp-sa = <&sa0>;
};
interface-1 {
rx-channel = "netrx1";
rx-pool = <1024 12>;
tx-pool = <1024 12>;
rx-queue-depth = <128 128 0 0>;
rx-buffer-size = <1518 4096 0 0>;
rx-queue = <8705>;
tx-completion-queue = <8707>;
efuse-mac = <0>;
local-mac-address = [02 18 31 7e 3e 6f];
netcp-gbe = <&gbe1>;
netcp-pa = <&pa1>;
netcp-sa = <&sa1>;
};
};
};
xgbe_subsys: subsys@2f00000 {
status = "disabled";
compatible = "syscon";
reg = <0x02f00000 0x100>;
};
xgbe_pcsr: pcsr@2f00600 {
status = "disabled";
compatible = "syscon";
reg = <0x02f00600 0x100>;
};
xgbe_serdes: phy@231e000 {
compatible = "ti,keystone-serdes-xgbe";
reg = <0x0231e000 0x2000>;
status = "disabled";
link-rate-kbps = <10312500>;
num-lanes = <2>;
syscon-peripheral = <&xgbe_subsys>;
syscon-link = <&xgbe_pcsr>;
#address-cells = <1>;
#size-cells = <0>;
xserdes_lane0: lane@0 {
#phy-cells = <0>;
reg = <0>;
status = "ok";
control-rate = <0>;
rx-start = <7 5>;
rx-force = <1 1>;
tx-coeff = <2 0 0 12 4>;
};
xserdes_lane1: lane@1 {
#phy-cells = <0>;
reg = <1>;
status = "ok";
control-rate = <0>;
rx-start = <7 5>;
rx-force = <1 1>;
tx-coeff = <2 0 0 12 4>;
};
};
netcpx: netcp@2f00000 {
status = "disabled";
compatible = "ti,netcp-1.0";
#address-cells = <1>;
#size-cells = <1>;
ranges;
clocks = <&clkxge>, <&chipclk12>;
clock-names = "xge_clk", "cpts";
dma-coherent;
ti,navigator-dmas = <&dma_xgbe 0>,
<&dma_xgbe 8>,
<&dma_xgbe 0>;
ti,navigator-dma-names = "xnetrx0", "xnetrx1", "xnettx";
netcp-devices {
#address-cells = <1>;
#size-cells = <1>;
ranges;
xgbe@0x2f00000 {
label = "netcp-xgbe";
compatible = "ti,netcp-xgbe";
syscon-subsys = <&xgbe_subsys>;
syscon-pcsr = <&xgbe_pcsr>;
reg = <0x02f00100 0x200>, <0x02f01000 0xb00>;
tx-queue = <8752>;
tx-channel = "xnettx";
interfaces {
xgbe0: interface-0 {
phys = <&xserdes_lane0>;
slave-port = <0>;
link-interface = <11>;
};
xgbe1: interface-1 {
phys = <&xserdes_lane1>;
slave-port = <1>;
link-interface = <11>;
};
};
};
};
netcp-interfaces {
interface-0 {
rx-channel = "xnetrx0";
rx-pool = <2048 12>;
tx-pool = <1024 12>;
rx-queue-depth = <1024 1024 64 0 0>;
rx-buffer-size = <1536 4096 0 0>;
rx-queue = <8708>;
tx-completion-queue = <8710>;
efuse-mac = <0>;
netcp-xgbe = <&xgbe0>;
};
interface-1 {
rx-channel = "xnetrx1";
rx-pool = <2048 12>;
tx-pool = <1024 12>;
rx-queue-depth = <1024 1024 0 0>;
rx-buffer-size = <1536 4096 0 0>;
rx-queue = <8709>;
tx-completion-queue = <8711>;
efuse-mac = <0>;
netcp-xgbe = <&xgbe1>;
};
};
};
sa_subsys: subsys@20c0000 {
compatible = "simple-bus";
#address-cells = <1>;
#size-cells = <1>;
ranges = <0 0x20c0000 0x40000>;
dma-coherent;
dma-ranges;
sa_config: subsys@0 {
compatible = "syscon";
reg = <0x0 0x100>;
};
hwrng@24000 {
compatible = "ti,keystone-rng";
reg = <0x24000 0x1000>;
ti,syscon-sa-cfg = <&sa_config>;
clocks = <&clksa>;
clock-names = "fck";
};
crypto@0 {
compatible = "ti,netcp-sa-crypto";
syscon-subsys = <&sa_config>;
clocks = <&clksa>;
clock-names = "fck";
ti,navigator-dmas = <&dma_gbe 26>, <&dma_gbe 6>;
ti,navigator-dma-names = "crypto-rx", "crypto-tx";
ti,rx-channel = "crypto-rx";
ti,rx-queue-depth = <256 64 0 0>;
ti,rx-compl-queue = <8712>;
ti,rx-pool = <512 12>;
ti,tx-channel = "crypto-tx";
ti,tx-queue-depth = <256>;
ti,tx-completion-queue = <8713>;
ti,tx-pool = <512 12>;
ti,tx-submit-queue = <646>;
ti,sc-id = <0x7000 0x71ff>;
};
};