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.

AM3352: No RX data on eth1

Part Number: AM3352

Hi all,

How to config am3352 to run one MAC -> 2 port? 

We can ping successfully in eth0 only, but it's no rx data in eth1. The following table is shown the test result. 

Description Ping from eth0 Ping from eth1

Without dual_emac

cpsw_emac0's phy id = 2

cpsw_emac1's phy id = 3

OK in port 1 No eth1

dual_emac = 1

cpsw_emac0's phy id = 2

cpsw_emac0's phy id = 3

OK in port 1 No Rx

dual_emac = 1

cpsw_emac0's phy id = 3

cpsw_emac0's phy id = 2

OK in port 2 No Rx

Attached log and dts

U-Boot 2018.01 (Dec 25 2019 - 09:33:27 +0800)

CPU  : AM335X-GP rev 2.1
Model: TI AM335x EVM
DRAM:  512 MiB
NAND:  2048 MiB
MMC:   OMAP SD/MMC: 0
** Bad device mmc 0 **
Using default environment

<ethaddr> not set. Validating first E-fuse MAC
Net:   cpsw, usb_ether
Hit any key to stop autoboot:  0
Booting from nand ...

NAND read: device 0 offset 0x200000, size 0x80000
 524288 bytes read: OK

NAND read: device 0 offset 0x400000, size 0xa00000
 10485760 bytes read: OK

NAND read: device 0 offset 0x1800000, size 0x1800000
Skipping bad block 0x02d00000
Skipping bad block 0x02d80000
 25165824 bytes read: OK
## Flattened Device Tree blob at 80f80000
   Booting using the fdt blob at 0x80f80000
   Loading Device Tree to 9def8000, end 9df0506a ... OK

Starting kernel ...

[    0.000000] Booting Linux on physical CPU 0x0
[    0.000000] Linux version 4.9.59 (jason@jason-vb) (gcc version 6.2.1 20161016 (Linaro GCC 6.2-2016.11) ) #121 PREEMPT Mon Feb 24 15:19:26 CST 2020
[    0.000000] CPU: ARMv7 Processor [413fc082] revision 2 (ARMv7), cr=10c5387d
[    0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
[    0.000000] OF: fdt:Machine model: TI AM335x EVM
[    0.000000] efi: Getting EFI parameters from FDT:
[    0.000000] efi: UEFI not found.
[    0.000000] cma: Reserved 48 MiB at 0x9a800000
[    0.000000] Memory policy: Data cache writeback
[    0.000000] CPU: All CPU(s) started in SVC mode.
[    0.000000] AM335X ES2.1 (neon)
[    0.000000] Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 129920
[    0.000000] Kernel command line: console=ttyS0,115200n8 consoleblank=0 vt.global_cursor_default=0 mem=512M root=/dev/ram0 rw rootfstype=ext4 initrd=0x81000000,64M ramdisk_size=67108864
[    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: 390308K/524288K available (9216K kernel code, 310K rwdata, 2696K rodata, 1024K init, 321K bss, 84828K reserved, 49152K cma-reserved, 0K highmem)
[    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 : 0xc0d00000 - 0xc0e00000   (1024 kB)
[    0.000000]       .data : 0xc0e00000 - 0xc0e4d840   ( 311 kB)
[    0.000000]        .bss : 0xc0e4d840 - 0xc0e9dd54   ( 322 kB)
[    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
[    0.000000] Preemptible hierarchical RCU implementation.
[    0.000000]  Build-time adjustment of leaf fanout to 32.
[    0.000000] NR_IRQS:16 nr_irqs:16 16
[    0.000000] IRQ: Found an INTC at 0xfa200000 (revision 5.0) with 128 interrupts
[    0.000000] OMAP clockevent source: timer2 at 24000000 Hz
[    0.000020] sched_clock: 32 bits at 24MHz, resolution 41ns, wraps every 89478484971ns
[    0.000048] clocksource: timer1: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 79635851949 ns
[    0.000061] OMAP clocksource: timer1 at 24000000 Hz
[    0.000288] clocksource_probe: no matching clocksources found
[    0.000499] Console: colour dummy device 80x30
[    0.000547] Calibrating delay loop... 597.60 BogoMIPS (lpj=2988032)
[    0.118788] pid_max: default: 32768 minimum: 301
[    0.118959] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes)
[    0.118974] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes)
[    0.120007] CPU: Testing write buffer coherency: ok
[    0.120474] Setting up static identity map for 0x80100000 - 0x80100060
[    0.121594] EFI services will not be available.
[    0.123411] devtmpfs: initialized
[    0.140949] VFP support v0.3: implementor 41 architecture 3 part 30 variant c rev 3
[    0.141400] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
[    0.141434] futex hash table entries: 256 (order: -1, 3072 bytes)
[    0.146016] pinctrl core: initialized pinctrl subsystem
[    0.147637] NET: Registered protocol family 16
[    0.150439] DMA: preallocated 256 KiB pool for atomic coherent allocations
[    0.170000] omap_hwmod: debugss: _wait_target_disable failed
[    0.235310] OMAP GPIO hardware version 0.1
[    0.255855] omap-gpmc 50000000.gpmc: could not find pctldev for node /ocp/l4_wkup@44c00000/scm@210000/pinmux@800/nandflash_pins_default, deferring probe
[    0.258694] No ATAGs?
[    0.258719] hw-breakpoint: debug architecture 0x4 unsupported.
[    0.310278] edma 49000000.edma: TI EDMA DMA engine driver
[    0.315498] SCSI subsystem initialized
[    0.315893] usbcore: registered new interface driver usbfs
[    0.315982] usbcore: registered new interface driver hub
[    0.316113] usbcore: registered new device driver usb
[    0.316664] omap_i2c 44e0b000.i2c: could not find pctldev for node /ocp/l4_wkup@44c00000/scm@210000/pinmux@800/i2c0_pins_default, deferring probe
[    0.316842] media: Linux media interface: v0.10
[    0.316914] Linux video capture interface: v2.00
[    0.316975] pps_core: LinuxPPS API ver. 1 registered
[    0.316985] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
[    0.317018] PTP clock support registered
[    0.317069] EDAC MC: Ver: 3.0.0
[    0.318445] omap-mailbox 480c8000.mailbox: omap mailbox rev 0x400
[    0.319723] Bluetooth: Core ver 2.22
[    0.319791] NET: Registered protocol family 31
[    0.319803] Bluetooth: HCI device and connection manager initialized
[    0.319828] Bluetooth: HCI socket layer initialized
[    0.319845] Bluetooth: L2CAP socket layer initialized
[    0.319888] Bluetooth: SCO socket layer initialized
[    0.321092] nfc: nfc_init: NFC Core ver 0.1
[    0.321177] NET: Registered protocol family 39
[    0.321708] clocksource: Switched to clocksource timer1
[    0.335913] NET: Registered protocol family 2
[    0.336899] TCP established hash table entries: 4096 (order: 2, 16384 bytes)
[    0.336970] TCP bind hash table entries: 4096 (order: 2, 16384 bytes)
[    0.337032] TCP: Hash tables configured (established 4096 bind 4096)
[    0.337120] UDP hash table entries: 256 (order: 0, 4096 bytes)
[    0.337146] UDP-Lite hash table entries: 256 (order: 0, 4096 bytes)
[    0.337320] NET: Registered protocol family 1
[    0.338073] Trying to unpack rootfs image as initramfs...
[    0.339101] rootfs image is not initramfs (no cpio magic); looks like an initrd
[    0.877591] Freeing initrd memory: 65536K
[    0.878330] hw perfevents: enabled with armv7_cortex_a8 PMU driver, 5 counters available
[    0.881962] workingset: timestamp_bits=14 max_order=17 bucket_order=3
[    0.892808] ntfs: driver 2.1.32 [Flags: R/O].
[    0.893206] jffs2: version 2.2. (NAND) (SUMMARY)  c 2001-2006 Red Hat, Inc.
[    0.900468] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 246)
[    0.900495] io scheduler noop registered
[    0.900505] io scheduler deadline registered
[    0.900696] io scheduler cfq registered (default)
[    0.902901] pinctrl-single 44e10800.pinmux: 142 pins at pa f9e10800 size 568
[    0.907292] backlight supply power not found, using dummy regulator
[    0.990999] Serial: 8250/16550 driver, 10 ports, IRQ sharing disabled
[    0.996372] console [ttyS0] disabled
[    0.996492] 44e09000.serial: ttyS0 at MMIO 0x44e09000 (irq = 158, base_baud = 3000000) is a 8250
[    1.615786] console [ttyS0] enabled
[    1.620764] 48022000.serial: ttyS1 at MMIO 0x48022000 (irq = 159, base_baud = 3000000) is a 8250
[    1.631012] 48024000.serial: ttyS2 at MMIO 0x48024000 (irq = 160, base_baud = 3000000) is a 8250
[    1.641145] 481a6000.serial: ttyS3 at MMIO 0x481a6000 (irq = 161, base_baud = 3000000) is a 8250
[    1.651258] 481aa000.serial: ttyS5 at MMIO 0x481aa000 (irq = 162, base_baud = 3000000) is a 8250
[    1.662665] omap_rng 48310000.rng: OMAP Random Number Generator ver. 20
[    1.669469] [drm] Initialized
[    1.673297] panel panel: found backlight
[    1.678596] [drm] Supports vblank timestamp caching Rev 2 (21.10.2013).
[    1.685338] [drm] No driver support for vblank timestamp query.
[    1.721672] Console: switching to colour frame buffer device 100x30
[    1.741391] tilcdc 4830e000.lcdc: fb0:  frame buffer device
[    1.774989] brd: module loaded
[    1.786888] loop: module loaded
[    1.793252] mtdoops: mtd device (mtddev=name/number) must be supplied
[    1.803435] libphy: Fixed MDIO Bus: probed
[    1.808309] CAN device driver interface
[    1.813711] c_can_platform 481cc000.can: c_can_platform device registered (regs=fa1cc000, irq=166)
[    1.824037] c_can_platform 481d0000.can: c_can_platform device registered (regs=fa1d0000, irq=167)
[    1.901797] davinci_mdio 4a101000.mdio: davinci mdio revision 1.6
[    1.907939] davinci_mdio 4a101000.mdio: detected phy mask ffffffc1
[    1.917758] libphy: 4a101000.mdio: probed
[    1.921959] davinci_mdio 4a101000.mdio: phy[1]: device 4a101000.mdio:01, driver Micrel KSZ886X Switch
[    1.931280] davinci_mdio 4a101000.mdio: phy[2]: device 4a101000.mdio:02, driver Micrel KSZ886X Switch
[    1.940626] davinci_mdio 4a101000.mdio: phy[3]: device 4a101000.mdio:03, driver Micrel KSZ886X Switch
[    1.950048] davinci_mdio 4a101000.mdio: phy[4]: device 4a101000.mdio:04, driver Micrel KSZ886X Switch
[    1.959396] davinci_mdio 4a101000.mdio: phy[5]: device 4a101000.mdio:05, driver Micrel KSZ886X Switch
[    1.969720] cpsw 4a100000.ethernet: Detected MACID = 04:79:b7:96:d3:4a
[    1.976602] cpsw 4a100000.ethernet: device node lookup for pps timer failed
[    1.983684] cpsw 4a100000.ethernet: cpts: overflow check period 500 (jiffies)
[    1.992415] cpsw 4a100000.ethernet: cpsw: Detected MACID = 04:79:b7:96:d3:4c
[    2.001157] PPP generic driver version 2.4.2
[    2.005929] PPP BSD Compression module registered
[    2.010663] PPP Deflate Compression module registered
[    2.015800] PPP MPPE Compression module registered
[    2.020665] NET: Registered protocol family 24
[    2.025432] usbcore: registered new interface driver cdc_ether
[    2.031419] usbcore: registered new interface driver rndis_host
[    2.038275] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[    2.044900] ehci-pci: EHCI PCI platform driver
[    2.049532] ehci-platform: EHCI generic platform driver
[    2.055100] ehci-omap: OMAP-EHCI Host Controller driver
[    2.061086] usbcore: registered new interface driver cdc_acm
[    2.066871] cdc_acm: USB Abstract Control Model driver for USB modems and ISDN adapters
[    2.075021] usbcore: registered new interface driver cdc_wdm
[    2.080814] usbcore: registered new interface driver usbtmc
[    2.086547] usbcore: registered new interface driver usb-storage
[    2.092698] usbcore: registered new interface driver ums-sddr09
[    2.098697] usbcore: registered new interface driver ums-sddr55
[    2.104723] usbcore: registered new interface driver ums-usbat
[    2.110772] usbcore: registered new interface driver usbserial
[    2.116757] usbcore: registered new interface driver usbserial_generic
[    2.123434] usbserial: USB Serial support registered for generic
[    2.129530] usbcore: registered new interface driver ftdi_sio
[    2.135380] usbserial: USB Serial support registered for FTDI USB Serial Device
[    2.142832] usbcore: registered new interface driver ipw
[    2.148223] usbserial: USB Serial support registered for IPWireless converter
[    2.155506] usbcore: registered new interface driver option
[    2.161158] usbserial: USB Serial support registered for GSM modem (1-port)
[    2.168259] usbcore: registered new interface driver pl2303
[    2.173936] usbserial: USB Serial support registered for pl2303
[    2.179936] usbcore: registered new interface driver qcserial
[    2.185816] usbserial: USB Serial support registered for Qualcomm USB modem
[    2.195469] 47401300.usb-phy supply vcc not found, using dummy regulator
[    2.207888] 47401b00.usb-phy supply vcc not found, using dummy regulator
[    2.228646] mousedev: PS/2 mouse device common for all mice
[    2.234905] i2c /dev entries driver
[    2.240969] omap_wdt: OMAP Watchdog Timer Rev 0x01: initial timeout 60 sec
[    2.259710] ISDN subsystem Rev: 1.1.2.3/[    2.263596] 1.1.2.2/
1.1.2.3/[    2.266508] none/
1.1.2.2[    2.269061]
[    2.270704] Modular ISDN core version 1.1.29
[    2.275396] NET: Registered protocol family 34
[    2.279865] gigaset: Driver for Gigaset 307x
[    2.284188] gigaset: Kernel CAPI interface
[    2.290319] sdhci: Secure Digital Host Controller Interface driver
[    2.296623] random: fast init done
[    2.300053] sdhci: Copyright(c) Pierre Ossman
[    2.305847] omap_hsmmc 48060000.mmc: Got CD GPIO
[    2.312183] Synopsys Designware Multimedia Card Interface Driver
[    2.319137] VUB300 Driver rom wait states = 1C irqpoll timeout = 0400[    2.326156] usbcore: registered new interface driver vub300
[    2.332028] usbcore: registered new interface driver ushc
[    2.337835] sdhci-pltfm: SDHCI platform and OF driver helper
[    2.344352] ledtrig-cpu: registered to indicate activity on CPUs
[    2.350744] usbcore: registered new interface driver usbhid
[    2.356391] usbhid: USB HID core driver
[    2.362261] Netfilter messages via NETLINK v0.30.
[    2.367140] ip_set: protocol 6
[    2.370501] ip_tables: (C) 2000-2006 Netfilter Core Team
[    2.375906] Initializing XFRM netlink socket
[    2.380914] NET: Registered protocol family 10
[    2.387375] ip6_tables: (C) 2000-2006 Netfilter Core Team
[    2.392927] sit: IPv6, IPv4 and MPLS over IPv4 tunneling driver
[    2.400000] NET: Registered protocol family 17
[    2.404566] NET: Registered protocol family 15
[    2.409183] Bridge firewalling registered
[    2.413250] Ebtables v2.0 registered
[    2.416842] can: controller area network core (rev 20120528 abi 9)
[    2.423167] NET: Registered protocol family 29
[    2.427719] can: raw protocol (rev 20120528)
[    2.432040] can: broadcast manager protocol (rev 20161123 t)
[    2.437738] can: netlink gateway (rev 20130117) max_hops=1
[    2.443808] NET: Registered protocol family 36
[    2.448318] Key type dns_resolver registered
[    2.452964] omap_voltage_late_init: Voltage driver support not added
[    2.466956] omap-gpmc 50000000.gpmc: GPMC revision 6.0
[    2.472424] gpmc_mem_init: disabling cs 0 mapped at 0x0-0x1000000
[    2.480947] nand: device found, Manufacturer ID: 0x2c, Chip ID: 0x48
[    2.487558] nand: Micron MT29F16G08ABACAWP
[    2.491681] nand: 2048 MiB, SLC, erase size: 512 KiB, page size: 4096, OOB size: 224
[    2.499538] using OMAP_ECC_BCH16_CODE_HW ECC scheme
[    2.504667] 15 ofpart partitions found on MTD device omap2-nand.0
[    2.510792] Creating 15 MTD partitions on "omap2-nand.0":
[    2.516302] 0x000000000000-0x000000080000 : "NAND.SPL"
[    2.523412] 0x000000080000-0x000000100000 : "NAND.SPL.backup1"
[    2.530958] 0x000000100000-0x000000180000 : "NAND.SPL.backup2"
[    2.538584] 0x000000180000-0x000000200000 : "NAND.SPL.backup3"
[    2.546241] 0x000000200000-0x000000280000 : "NAND.kernel-fdt"
[    2.553532] 0x000000280000-0x000000380000 : "NAND.u-boot"
[    2.560511] 0x000000380000-0x000000400000 : "NAND.u-boot-env"
[    2.567916] 0x000000400000-0x000000e00000 : "Primary kernel"
[    2.575900] 0x000000e00000-0x000001800000 : "Secondary kernel"
[    2.583998] 0x000001800000-0x000003000000 : "Primary rootfs"
[    2.592928] 0x000003000000-0x000004800000 : "Secondary rootfs"
[    2.602005] 0x000004800000-0x000004e00000 : "Primary user configuration"
[    2.610715] 0x000004e00000-0x000005400000 : "Secondary user configuration"
[    2.619541] 0x000005400000-0x000005a00000 : "Factory default configuration"
[    2.628529] 0x000005a00000-0x000080000000 : "Storage"
[    2.791989] tps65910 0-002d: No interrupt support, no core IRQ
[    2.800187] vrtc: supplied by vbat
[    2.808034] vio: supplied by vbat
[    2.813109] vdd1: supplied by vbat
[    2.818598] vdd2: supplied by vbat
[    2.825571] vdig1: supplied by vbat
[    2.830618] vdig2: supplied by vbat
[    2.835761] vpll: supplied by vbat
[    2.840731] vdac: supplied by vbat
[    2.845755] vaux1: supplied by vbat
[    2.850868] vaux2: supplied by vbat
[    2.855971] vaux33: supplied by vbat
[    2.861102] vmmc: supplied by vbat
[    2.866150] vbb: supplied by vbat
[    2.870933] omap_i2c 44e0b000.i2c: bus 0 rev0.11 at 400 kHz
[    2.886658] musb-hdrc musb-hdrc.0: MUSB HDRC host driver
[    2.892469] musb-hdrc musb-hdrc.0: new USB bus registered, assigned bus number 1
[    2.900232] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002
[    2.907107] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    2.914429] usb usb1: Product: MUSB HDRC host driver
[    2.919421] usb usb1: Manufacturer: Linux 4.9.59 musb-hcd
[    2.924904] usb usb1: SerialNumber: musb-hdrc.0
[    2.930446] hub 1-0:1.0: USB hub found
[    2.934368] hub 1-0:1.0: 1 port detected
[    2.948941] musb-hdrc musb-hdrc.1: MUSB HDRC host driver
[    2.954786] musb-hdrc musb-hdrc.1: new USB bus registered, assigned bus number 2
[    2.962530] usb usb2: New USB device found, idVendor=1d6b, idProduct=0002
[    2.969408] usb usb2: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    2.976698] usb usb2: Product: MUSB HDRC host driver
[    2.981688] usb usb2: Manufacturer: Linux 4.9.59 musb-hcd
[    2.987170] usb usb2: SerialNumber: musb-hdrc.1
[    2.992646] hub 2-0:1.0: USB hub found
[    2.996469] hub 2-0:1.0: 1 port detected
[    3.003334] omap_hsmmc 48060000.mmc: Got CD GPIO
[    3.062984] hctosys: unable to open rtc device (rtc0)
[    3.068741] lis3_reg: disabling
[    3.072048] mmc0: mmc_rescan_try_freq: trying to init card at 400000 Hz
[    3.083248] RAMDISK: gzip image found at block 0
[    5.445712] EXT4-fs (ram0): mounted filesystem without journal. Opts: (null)
[    5.453270] VFS: Mounted root (ext4 filesystem) on device 1:0.
[    5.459949] devtmpfs: mounted
[    5.465185] Freeing unused kernel memory: 1024K
Bad inittab entry at line 2
[    6.362525] jffs2: notice: (102) jffs2_build_xattr_subsystem: complete building xattr subsystem, 0 of xdatum (0 unchecked, 0 orphan) and 0 of xref (0 dead, 0 orphan) found.
/ # The framebuffer device was opened successfully.
800x480, 32bpp
The framebuffer device was mapped to memory successfully.

/ # ifconfig eth0 up
[   22.907420] net eth0: initializing cpsw version 1.12 (0)
[   22.956521] cpsw 4a100000.ethernet: initialized cpsw ale version 1.4
[   22.964924] cpsw 4a100000.ethernet: ALE Table size 1024
[   23.071958] Micrel KSZ886X Switch 4a101000.mdio:03: attached PHY driver [Micrel KSZ886X Switch] (mii_bus:phy_addr=4a101000.mdio:03, irq=-1)
[   23.087880] cpts ptp bc clkid 0
[   23.102989] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready
/ #
/ #
/ # ifconfig eth1 up
[   37.010811] net eth1: initializing cpsw version 1.12 (0)
[   37.171982] Micrel KSZ886X Switch 4a101000.mdio:02: attached PHY driver [Micrel KSZ886X Switch] (mii_bus:phy_addr=4a101000.mdio:02, irq=-1)
[   37.190219] IPv6: ADDRCONF(NETDEV_UP): eth1: link is not ready
/ # [   39.282576] cpsw 4a100000.ethernet eth1: Link is Up - 100Mbps/Full - flow control rx/tx
[   39.290789] IPv6: ADDRCONF(NETDEV_CHANGE): eth1: link becomes ready

/ #
/ # ifconfig eth1 192.168.1.10
/ #
/ #
/ # ifconfig
eth0      Link encap:Ethernet  HWaddr 04:79:B7:96:D3:4A
          UP BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
          Interrupt:178

eth1      Link encap:Ethernet  HWaddr 04:79:B7:96:D3:4C
          inet addr:192.168.1.10  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::679:b7ff:fe96:d34c/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:7 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 B)  TX bytes:578 (578.0 B)

/ # ping 192.168.1.5
PING 192.168.1.5 (192.168.1.5): 56 data bytes
^C
--- 192.168.1.5 ping statistics ---
7 packets transmitted, 0 packets received, 100% packet loss
/ #
/ #
/ # ping 192.168.1.5
PING 192.168.1.5 (192.168.1.5): 56 data bytes
^C
--- 192.168.1.5 ping statistics ---
3 packets transmitted, 0 packets received, 100% packet loss
/ # [   71.522386] cpsw 4a100000.ethernet eth1: Link is Down
[   72.002532] cpsw 4a100000.ethernet eth0: Link is Up - 100Mbps/Full - flow control rx/tx
[   72.010704] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready

/ # ifconfig
eth0      Link encap:Ethernet  HWaddr 04:79:B7:96:D3:4A
          inet6 addr: fe80::679:b7ff:fe96:d34a/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:6 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 B)  TX bytes:508 (508.0 B)
          Interrupt:178

eth1      Link encap:Ethernet  HWaddr 04:79:B7:96:D3:4C
          inet addr:192.168.1.10  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::679:b7ff:fe96:d34c/64 Scope:Link
          UP BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:18 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 B)  TX bytes:1258 (1.2 KiB)

/ # ifconfig eth1 down
/ # ifconfig eth0 192.168.1.99
/ # ping 192.168.1.5
PING 192.168.1.5 (192.168.1.5): 56 data bytes
64 bytes from 192.168.1.5: seq=0 ttl=64 time=5.474 ms
64 bytes from 192.168.1.5: seq=1 ttl=64 time=1.852 ms
64 bytes from 192.168.1.5: seq=2 ttl=64 time=4.615 ms
^C
--- 192.168.1.5 ping statistics ---
3 packets transmitted, 3 packets received, 0% packet loss
round-trip min/avg/max = 1.852/3.980/5.474 ms
/ # [  133.118999] random: crng init done

/ #
/ # ifconfig
eth0      Link encap:Ethernet  HWaddr 04:79:B7:96:D3:4A
          inet addr:192.168.1.99  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::679:b7ff:fe96:d34a/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:7 errors:0 dropped:0 overruns:0 frame:0
          TX packets:17 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:939 (939.0 B)  TX bytes:1342 (1.3 KiB)
          Interrupt:178

/ # ifconfig -a
can0      Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
          NOARP  MTU:16  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:10
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
          Interrupt:166

can1      Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
          NOARP  MTU:16  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:10
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
          Interrupt:167

eth0      Link encap:Ethernet  HWaddr 04:79:B7:96:D3:4A
          inet addr:192.168.1.99  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::679:b7ff:fe96:d34a/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:7 errors:0 dropped:0 overruns:0 frame:0
          TX packets:17 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:939 (939.0 B)  TX bytes:1342 (1.3 KiB)
          Interrupt:178

eth1      Link encap:Ethernet  HWaddr 04:79:B7:96:D3:4C
          inet addr:192.168.1.10  Bcast:192.168.1.255  Mask:255.255.255.0
          BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:18 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 B)  TX bytes:1258 (1.2 KiB)

lo        Link encap:Local Loopback
          LOOPBACK  MTU:65536  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

sit0      Link encap:IPv6-in-IPv4
          NOARP  MTU:1480  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
/*
 * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/
 *
 * 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 "am33xx.dtsi"
#include <dt-bindings/pwm/pwm.h>
#include <dt-bindings/interrupt-controller/irq.h>

/ {
	model = "TI AM335x EVM";
	compatible = "ti,am335x-evm", "ti,am33xx";

	cpus {
		cpu@0 {
			cpu0-supply = <&vdd1_reg>;
		};
	};

	memory@80000000 {
		device_type = "memory";
		/* +++ Seamus,512MB DDR ,20190318 ---*/
		/*reg = <0x80000000 0x10000000>;*/ /* 256 MB */
		reg = <0x80000000 0x20000000>; /* 512 MB */ 
		/* --- Seamus,ramdisk ,20190318 ---*/
	};

	/* +++ Seamus,512MB DDR ,20190318 ---*/
	chosen {		  
		bootargs = "console=ttyS0,115200n8 root=/dev/ram0";
	};
	/* --- Seamus,ramdisk ,20190318 ---*/
	vbat: fixedregulator0 {
		compatible = "regulator-fixed";
		regulator-name = "vbat";
		regulator-min-microvolt = <5000000>;
		regulator-max-microvolt = <5000000>;
		regulator-boot-on;
	};

	lis3_reg: fixedregulator1 {
		compatible = "regulator-fixed";
		regulator-name = "lis3_reg";
		regulator-boot-on;
	};

#if 1
	lcd_bl: backlight {
		compatible = "pwm-backlight";
		pwms = <&ecap2 0 50000 PWM_POLARITY_INVERTED>;
		brightness-levels = <0 51 53 56 62 75 101 152 255>;
		default-brightness-level = <8>;
	};
	
	panel {
		compatible = "ti,tilcdc,panel";
		status = "okay";
		pinctrl-names = "default", "sleep";
		pinctrl-0 = <&lcd_pins_s0>;
		pinctrl-1 = <&lcd_pins_sleep>;
		backlight = <&lcd_bl>;
		panel-info {
			ac-bias           = <255>;
			ac-bias-intrpt    = <0>;
			dma-burst-sz      = <16>;
			bpp               = <32>;
			fdd               = <0x80>;
			sync-edge         = <0>;
			sync-ctrl         = <1>;
			raster-order      = <0>;
			fifo-th           = <0>;
		};
		display-timings {
			800x480 {
				clock-frequency = <30000000>;
				hactive = <800>;
				vactive = <480>;
				hfront-porch = <56>;
				hback-porch = <4>;
				hsync-len = <12>;
				vback-porch = <21>;
				vfront-porch = <16>;
				vsync-len = <3>;
				hsync-active = <0>;
				vsync-active = <0>;
			};
		};
	};
#endif
};


/* +++ Seamus,Pinmux ,20190318 +++*/
&am33xx_pinmux {
	pinctrl-names = "default";
	pinctrl-0 = <&InitialGPIO &clkout2_pin>; 
	InitialGPIO: InitialGPIO {
		pinctrl-single,pins = <
			AM33XX_IOPAD(0x88C, PIN_OUTPUT | MUX_MODE7)	/* GPMC_CLK.GPIO2_1 */
			AM33XX_IOPAD(0x880, PIN_OUTPUT | MUX_MODE7)	/* GPMC_CSn1.GPIO1_30 */
			AM33XX_IOPAD(0x840, PIN_OUTPUT | MUX_MODE7)	/* GPMC_A0.GPIO1_16 */
			AM33XX_IOPAD(0x84C, PIN_OUTPUT | MUX_MODE7)	/* GPMC_A3.GPIO1_19 */
			AM33XX_IOPAD(0x850, PIN_OUTPUT | MUX_MODE7)	/* GPMC_A4.GPIO1_20 */
			AM33XX_IOPAD(0x858, PIN_OUTPUT | MUX_MODE7)	/* GPMC_A6.GPIO1_22 */
			AM33XX_IOPAD(0x85C, PIN_INPUT | MUX_MODE7)	/* GPMC_A7.GPIO1_23 */
			AM33XX_IOPAD(0x864, PIN_INPUT | MUX_MODE7)	/* GPMC_A9.GPIO1_25 */
			AM33XX_IOPAD(0x868, PIN_INPUT | MUX_MODE7)	/* GPMC_A10.GPIO1_26 */
			AM33XX_IOPAD(0x990, PIN_OUTPUT | MUX_MODE7)	/* MCASP0_ACLKX.GPIO3_14 */
			AM33XX_IOPAD(0x994, PIN_INPUT | MUX_MODE7)	/* MCASP0_FSX.GPIO3_15 */
			AM33XX_IOPAD(0x9AC, PIN_INPUT | MUX_MODE7)	/* MCASP0_AHCLKX.GPIO3_21 */
			AM33XX_IOPAD(0x9B0, PIN_INPUT_PULLDOWN | MUX_MODE7)	/* XDMA_EVENT_INTR0.GPIO0_19 PLC_INTERUPT*/
			AM33XX_IOPAD(0x9A0, PIN_OUTPUT | MUX_MODE7)	/* MCASP0_ACLKR.GPIO3_18 */
			AM33XX_IOPAD(0x9A4, PIN_OUTPUT | MUX_MODE7)	/* MCASP0_FSR.GPIO3_19 */
			AM33XX_IOPAD(0x998, PIN_OUTPUT | MUX_MODE7)	/* MCASP0_AXR0.GPIO3_16 */
			AM33XX_IOPAD(0x9A8, PIN_OUTPUT | MUX_MODE7)	/* MCASP0_AXR1.GPIO3_20 */
			AM33XX_IOPAD(0x938, PIN_INPUT | MUX_MODE7)	/* MII1_RXD2.GPIO2_19*/
			AM33XX_IOPAD(0x888, PIN_OUTPUT | MUX_MODE7)	/* GPMC_CSn3.GPIO2_0*/
			AM33XX_IOPAD(0x878, PIN_OUTPUT | MUX_MODE7)	/* GPMC_ben1.GPIO1_28*/
			AM33XX_IOPAD(0x884, PIN_OUTPUT | MUX_MODE7)	/* GPMC_CSn2.GPIO1_31*/
			AM33XX_IOPAD(0x848, PIN_OUTPUT | MUX_MODE7)	/* GPMC_A2.GPIO1_18*/
		>;
	};

	i2c0_pins_default: i2c0_pins_default {
		pinctrl-single,pins = <
			AM33XX_IOPAD(0x98c, PIN_INPUT_PULLUP | MUX_MODE0) /* (C16) I2C0_SCL.I2C0_SCL */
			AM33XX_IOPAD(0x988, PIN_INPUT_PULLUP | MUX_MODE0) /* (C17) I2C0_SDA.I2C0_SDA */
		>;
	};

	uart0_pins_default: uart0_pins_default {
		pinctrl-single,pins = <
			AM33XX_IOPAD(0x970, PIN_INPUT_PULLUP | MUX_MODE0) /* (E15) uart0_rxd.uart0_rxd */
			AM33XX_IOPAD(0x974, PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* (E16) uart0_txd.uart0_txd */
		>;
	};
	
	uart1_pins_default: uart1_pins_default {
		pinctrl-single,pins = <
			AM33XX_IOPAD(0x980, PIN_INPUT_PULLUP | MUX_MODE0) /* (D16) uart1_rxd.uart1_rxd */
			AM33XX_IOPAD(0x984, PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* (D15) uart1_txd.uart1_txd */
			AM33XX_IOPAD(0x978, PIN_INPUT | MUX_MODE0) /* (D18) uart1_ctsn.uart1_ctsn */
			AM33XX_IOPAD(0x97c, PIN_OUTPUT | MUX_MODE0) /* (D17) uart1_rtsn.uart1_rtsn */
		>;
	};
	
	uart2_pins_default: uart2_pins_default {
		pinctrl-single,pins = <
			AM33XX_IOPAD(0x92c, PIN_INPUT_PULLUP | MUX_MODE1) /* (K18) gmii1_txclk.uart2_rxd */
			AM33XX_IOPAD(0x930, PIN_OUTPUT_PULLDOWN | MUX_MODE1) /* (L18) gmii1_rxclk.uart2_txd */
		>;
	};
	
	uart3_pins_default: uart3_pins_default {
		pinctrl-single,pins = <
			AM33XX_IOPAD(0x934, PIN_INPUT_PULLUP | MUX_MODE1) /* (L17) gmii1_rxd3.uart3_rxd */
			AM33XX_IOPAD(0x964, PIN_OUTPUT_PULLDOWN | MUX_MODE1) /* (C18) eCAP0_in_PWM0_out.uart3_txd */
		>;
	};

	uart5_pins_default: uart5_pins_default {
		pinctrl-single,pins = <
			AM33XX_IOPAD(0x908, PIN_INPUT_PULLUP | MUX_MODE3) /* (H16) gmii1_col.uart5_rxd */
			AM33XX_IOPAD(0x918, PIN_OUTPUT_PULLDOWN | MUX_MODE3) /* (J17) gmii1_rxdv.uart5_txd */
		>;
	};
	
	clkout2_pin: pinmux_clkout2_pin {
		pinctrl-single,pins = <
			AM33XX_IOPAD(0x9b4, PIN_OUTPUT_PULLDOWN | MUX_MODE3)	/* xdma_event_intr1.clkout2 */
		>;
	};

	ecap2_pins: backlight_pins {
		pinctrl-single,pins = <
			AM33XX_IOPAD(0x99c, MUX_MODE4)	/* mcasp0_ahclkr.ecap2_in_pwm2_out */
		>;
	};
	
	nandflash_pins_default: nandflash_pins_default {
		pinctrl-single,pins = <
			AM33XX_IOPAD(0x81c, PIN_INPUT_PULLUP | MUX_MODE0) /* (T9) gpmc_ad7.gpmc_ad7 */
			AM33XX_IOPAD(0x818, PIN_INPUT_PULLUP | MUX_MODE0) /* (R9) gpmc_ad6.gpmc_ad6 */
			AM33XX_IOPAD(0x814, PIN_INPUT_PULLUP | MUX_MODE0) /* (V8) gpmc_ad5.gpmc_ad5 */
			AM33XX_IOPAD(0x810, PIN_INPUT_PULLUP | MUX_MODE0) /* (U8) gpmc_ad4.gpmc_ad4 */
			AM33XX_IOPAD(0x80c, PIN_INPUT_PULLUP | MUX_MODE0) /* (T8) gpmc_ad3.gpmc_ad3 */
			AM33XX_IOPAD(0x808, PIN_INPUT_PULLUP | MUX_MODE0) /* (R8) gpmc_ad2.gpmc_ad2 */
			AM33XX_IOPAD(0x804, PIN_INPUT_PULLUP | MUX_MODE0) /* (V7) gpmc_ad1.gpmc_ad1 */
			AM33XX_IOPAD(0x800, PIN_INPUT_PULLUP | MUX_MODE0) /* (U7) gpmc_ad0.gpmc_ad0 */
			AM33XX_IOPAD(0x870, PIN_INPUT_PULLUP | MUX_MODE0) /* (T17) gpmc_wait0.gpmc_wait0 */
			AM33XX_IOPAD(0x874, PIN_OUTPUT | MUX_MODE0) /* (U17) gpmc_wpn.gpmc_wpn */
			AM33XX_IOPAD(0x890, PIN_OUTPUT | MUX_MODE0) /* (R7) gpmc_advn_ale.gpmc_advn_ale */
			AM33XX_IOPAD(0x894, PIN_OUTPUT | MUX_MODE0) /* (T7) gpmc_oen_ren.gpmc_oen_ren */
			AM33XX_IOPAD(0x898, PIN_OUTPUT | MUX_MODE0) /* (U6) gpmc_wen.gpmc_wen */
			AM33XX_IOPAD(0x89c, PIN_OUTPUT | MUX_MODE0) /* (T6) gpmc_be0n_cle.gpmc_be0n_cle */
			AM33XX_IOPAD(0x87c, PIN_OUTPUT | MUX_MODE0) /* (V6) gpmc_csn0.gpmc_csn0 */
		>;
	};

	/* Optional sleep pin settings. Must manually enter values in the below skeleton. */
	nandflash_pins_sleep: nandflash_pins_sleep {
		pinctrl-single,pins = <
			AM33XX_IOPAD(0x81c,PIN_INPUT_PULLDOWN | MUX_MODE7) /* (T9) gpmc_ad7.gpmc_ad7 */
			AM33XX_IOPAD(0x818,PIN_INPUT_PULLDOWN | MUX_MODE7) /* (R9) gpmc_ad6.gpmc_ad6 */
			AM33XX_IOPAD(0x814,PIN_INPUT_PULLDOWN | MUX_MODE7) /* (V8) gpmc_ad5.gpmc_ad5 */
			AM33XX_IOPAD(0x810,PIN_INPUT_PULLDOWN | MUX_MODE7) /* (U8) gpmc_ad4.gpmc_ad4 */
			AM33XX_IOPAD(0x80c,PIN_INPUT_PULLDOWN | MUX_MODE7) /* (T8) gpmc_ad3.gpmc_ad3 */
			AM33XX_IOPAD(0x808,PIN_INPUT_PULLDOWN | MUX_MODE7) /* (R8) gpmc_ad2.gpmc_ad2 */
			AM33XX_IOPAD(0x804,PIN_INPUT_PULLDOWN | MUX_MODE7) /* (V7) gpmc_ad1.gpmc_ad1 */
			AM33XX_IOPAD(0x800,PIN_INPUT_PULLDOWN | MUX_MODE7) /* (U7) gpmc_ad0.gpmc_ad0 */
			AM33XX_IOPAD(0x870,PIN_INPUT_PULLDOWN | MUX_MODE7) /* (T17) gpmc_wait0.gpmc_wait0 */
			AM33XX_IOPAD(0x874,PIN_INPUT_PULLDOWN | MUX_MODE7) /* (U17) gpmc_wpn.gpmc_wpn */
			AM33XX_IOPAD(0x890,PIN_INPUT_PULLDOWN | MUX_MODE7) /* (R7) gpmc_advn_ale.gpmc_advn_ale */
			AM33XX_IOPAD(0x894,PIN_INPUT_PULLDOWN | MUX_MODE7) /* (T7) gpmc_oen_ren.gpmc_oen_ren */
			AM33XX_IOPAD(0x898,PIN_INPUT_PULLDOWN | MUX_MODE7) /* (U6) gpmc_wen.gpmc_wen */
			AM33XX_IOPAD(0x89c,PIN_INPUT_PULLDOWN | MUX_MODE7) /* (T6) gpmc_be0n_cle.gpmc_be0n_cle */
			AM33XX_IOPAD(0x87c,PIN_INPUT_PULLDOWN | MUX_MODE7) /* (V6) gpmc_csn0.gpmc_csn0 */
		>;
	};
	
	cpsw_default: cpsw_default {
		pinctrl-single,pins = <
			AM33XX_IOPAD(0x90c, PIN_INPUT_PULLDOWN | MUX_MODE1) /* (H17) mii1_crs.rmii1_crs_dv */
			AM33XX_IOPAD(0x944, PIN_INPUT_PULLDOWN | MUX_MODE0) /* (H18) rmii1_refclk.rmii1_refclk */
			AM33XX_IOPAD(0x940, PIN_INPUT_PULLDOWN | MUX_MODE1) /* mii1_rxd0.rmii1_rxd0 */
			AM33XX_IOPAD(0x93c, PIN_INPUT_PULLDOWN | MUX_MODE1) /* (L15) gmii1_rxd1.rmii1_rxd1 */
			AM33XX_IOPAD(0x910, PIN_INPUT_PULLDOWN | MUX_MODE1) /* mii1_rxerr.rmii1_rxerr */
			AM33XX_IOPAD(0x928, PIN_OUTPUT  | MUX_MODE1) /* (K17) gmii1_txd0.rmii1_txd0 */
			AM33XX_IOPAD(0x924, PIN_OUTPUT  | MUX_MODE1) /* (K16) gmii1_txd1.rmii1_txd1 */
			AM33XX_IOPAD(0x914, PIN_OUTPUT  | MUX_MODE1) /* (J16) gmii1_txen.rmii1_txen */					
		>;
	};
	
		/* Optional sleep pin settings. Must manually enter values in the below skeleton. */
	cpsw_sleep: cpsw_sleep {
		pinctrl-single,pins = <
			AM33XX_IOPAD(0x90c, PIN_INPUT_PULLDOWN | MUX_MODE7) /* (H17) gmii1_crs.rmii1_crs_dv */
			AM33XX_IOPAD(0x914, PIN_INPUT_PULLDOWN | MUX_MODE7) /* (J16) gmii1_txen.rmii1_txen */
			AM33XX_IOPAD(0x928, PIN_INPUT_PULLDOWN | MUX_MODE7) /* (K17) gmii1_txd0.rmii1_txd0 */
			AM33XX_IOPAD(0x924, PIN_INPUT_PULLDOWN | MUX_MODE7) /* (K16) gmii1_txd1.rmii1_txd1 */
			AM33XX_IOPAD(0x940, PIN_INPUT_PULLDOWN | MUX_MODE7) /* (M16) gmii1_rxd0.rmii1_rxd0 */
			AM33XX_IOPAD(0x93c, PIN_INPUT_PULLDOWN | MUX_MODE7) /* (L15) gmii1_rxd1.rmii1_rxd1 */
			AM33XX_IOPAD(0x944, PIN_INPUT_PULLDOWN | MUX_MODE7) /* (H18) rmii1_refclk.rmii1_refclk */
			AM33XX_IOPAD(0x910, PIN_INPUT_PULLDOWN | MUX_MODE7) /* mii1_rxerr.rmii1_rxerr */
		>;
	};

	davinci_mdio_default: davinci_mdio_default {
		pinctrl-single,pins = <
			AM33XX_IOPAD(0x94c, PIN_OUTPUT_PULLUP | SLEWCTRL_FAST | MUX_MODE0) /* (M18) mdio_clk.mdio_clk */
			AM33XX_IOPAD(0x948, PIN_INPUT_PULLUP | MUX_MODE0) /* (M17) mdio_data.mdio_data */
		>;
	};

	/* Optional sleep pin settings. Must manually enter values in the below skeleton. */
	davinci_mdio_sleep: davinci_mdio_sleep {
		pinctrl-single,pins = <
			AM33XX_IOPAD(0x94c,PIN_INPUT_PULLDOWN | MUX_MODE7) /* (M18) mdio_clk.mdio_clk */
			AM33XX_IOPAD(0x948,PIN_INPUT_PULLDOWN | MUX_MODE7) /* (M17) mdio_data.mdio_data */
		>;
	};
	
	mmc1_pins: mmc1_pins_default {
		pinctrl-single,pins = <
			AM33XX_IOPAD(0x900, PIN_INPUT_PULLUP | MUX_MODE0) /* (G17) mmc0_clk.mmc0_clk */
			AM33XX_IOPAD(0x904, PIN_INPUT_PULLUP | MUX_MODE0) /* (G18) mmc0_cmd.mmc0_cmd */
			AM33XX_IOPAD(0x8fc, PIN_INPUT_PULLUP | MUX_MODE0) /* (G16) mmc0_dat0.mmc0_dat0 */
			AM33XX_IOPAD(0x8f8, PIN_INPUT_PULLUP | MUX_MODE0) /* (G15) mmc0_dat1.mmc0_dat1 */
			AM33XX_IOPAD(0x8f4, PIN_INPUT_PULLUP | MUX_MODE0) /* (F18) mmc0_dat2.mmc0_dat2 */
			AM33XX_IOPAD(0x8f0, PIN_INPUT_PULLUP | MUX_MODE0) /* (F17) mmc0_dat3.mmc0_dat3 */
			AM33XX_IOPAD(0x960, PIN_INPUT | MUX_MODE7) /* (C15) spi0_cs1.mmc0_sdcd gpio0_6*/
		>;
	};
	
	dcan0_pins_default: dcan0_pins_default {
		pinctrl-single,pins = <
			AM33XX_IOPAD(0x920, PIN_INPUT_PULLDOWN | MUX_MODE1) /* (K15) gmii1_txd2.dcan0_rx */
			AM33XX_IOPAD(0x91c, PIN_OUTPUT_PULLUP | MUX_MODE1) /* (J18) gmii1_txd3.dcan0_tx */
		>;
	};
	
	dcan1_pins_default: dcan1_pins_default {
		pinctrl-single,pins = <
			AM33XX_IOPAD(0x96c, PIN_INPUT_PULLDOWN | MUX_MODE2) /* (E17) uart0_rtsn.dcan1_rx */
			AM33XX_IOPAD(0x968, PIN_OUTPUT_PULLUP | MUX_MODE2) /* (E18) uart0_ctsn.dcan1_tx */
		>;
	};
	
	
	
	spi0_pins_default: spi0_pins_default {
		pinctrl-single,pins = <
			AM33XX_IOPAD(0x950, PIN_INPUT_PULLUP | MUX_MODE0) /* (A17) spi0_sclk.spi0_sclk */
			AM33XX_IOPAD(0x954, PIN_INPUT_PULLUP | MUX_MODE0) /* (B17) spi0_d0.spi0_d0 */
			AM33XX_IOPAD(0x958, PIN_OUTPUT_PULLUP | MUX_MODE0) /* (B16) spi0_d1.spi0_d1 */
			AM33XX_IOPAD(0x95c, PIN_OUTPUT_PULLUP | MUX_MODE0) /* (A16) spi0_cs0.spi0_cs0 */
		>;
	};
	lcd_pins_s0: lcd_pins_s0 {
		pinctrl-single,pins = <
			AM33XX_IOPAD(0x820, PIN_OUTPUT | MUX_MODE1)		/* gpmc_ad8.lcd_data23 */
			AM33XX_IOPAD(0x824, PIN_OUTPUT | MUX_MODE1)		/* gpmc_ad9.lcd_data22 */
			AM33XX_IOPAD(0x828, PIN_OUTPUT | MUX_MODE1)		/* gpmc_ad10.lcd_data21 */
			AM33XX_IOPAD(0x82c, PIN_OUTPUT | MUX_MODE1)		/* gpmc_ad11.lcd_data20 */
			AM33XX_IOPAD(0x830, PIN_OUTPUT | MUX_MODE1)		/* gpmc_ad12.lcd_data19 */
			AM33XX_IOPAD(0x834, PIN_OUTPUT | MUX_MODE1)		/* gpmc_ad13.lcd_data18 */
			AM33XX_IOPAD(0x838, PIN_OUTPUT | MUX_MODE1)		/* gpmc_ad14.lcd_data17 */
			AM33XX_IOPAD(0x83c, PIN_OUTPUT | MUX_MODE1)		/* gpmc_ad15.lcd_data16 */
			AM33XX_IOPAD(0x8a0, PIN_OUTPUT | MUX_MODE0)		/* lcd_data0.lcd_data0 */
			AM33XX_IOPAD(0x8a4, PIN_OUTPUT | MUX_MODE0)		/* lcd_data1.lcd_data1 */
			AM33XX_IOPAD(0x8a8, PIN_OUTPUT | MUX_MODE0)		/* lcd_data2.lcd_data2 */
			AM33XX_IOPAD(0x8ac, PIN_OUTPUT | MUX_MODE0)		/* lcd_data3.lcd_data3 */
			AM33XX_IOPAD(0x8b0, PIN_OUTPUT | MUX_MODE0)		/* lcd_data4.lcd_data4 */
			AM33XX_IOPAD(0x8b4, PIN_OUTPUT | MUX_MODE0)		/* lcd_data5.lcd_data5 */
			AM33XX_IOPAD(0x8b8, PIN_OUTPUT | MUX_MODE0)		/* lcd_data6.lcd_data6 */
			AM33XX_IOPAD(0x8bc, PIN_OUTPUT | MUX_MODE0)		/* lcd_data7.lcd_data7 */
			AM33XX_IOPAD(0x8c0, PIN_OUTPUT | MUX_MODE0)		/* lcd_data8.lcd_data8 */
			AM33XX_IOPAD(0x8c4, PIN_OUTPUT | MUX_MODE0)		/* lcd_data9.lcd_data9 */
			AM33XX_IOPAD(0x8c8, PIN_OUTPUT | MUX_MODE0)		/* lcd_data10.lcd_data10 */
			AM33XX_IOPAD(0x8cc, PIN_OUTPUT | MUX_MODE0)		/* lcd_data11.lcd_data11 */
			AM33XX_IOPAD(0x8d0, PIN_OUTPUT | MUX_MODE0)		/* lcd_data12.lcd_data12 */
			AM33XX_IOPAD(0x8d4, PIN_OUTPUT | MUX_MODE0)		/* lcd_data13.lcd_data13 */
			AM33XX_IOPAD(0x8d8, PIN_OUTPUT | MUX_MODE0)		/* lcd_data14.lcd_data14 */
			AM33XX_IOPAD(0x8dc, PIN_OUTPUT | MUX_MODE0)		/* lcd_data15.lcd_data15 */
			AM33XX_IOPAD(0x8e0, PIN_OUTPUT | MUX_MODE0)		/* lcd_vsync.lcd_vsync */
			AM33XX_IOPAD(0x8e4, PIN_OUTPUT | MUX_MODE0)		/* lcd_hsync.lcd_hsync */
			AM33XX_IOPAD(0x8e8, PIN_OUTPUT | MUX_MODE0)		/* lcd_pclk.lcd_pclk */
			AM33XX_IOPAD(0x8ec, PIN_OUTPUT | MUX_MODE0)		/* lcd_ac_bias_en.lcd_ac_bias_en */
		>;
	};

	lcd_pins_sleep: lcd_pins_sleep {
		pinctrl-single,pins = <
			AM33XX_IOPAD(0x820, PIN_INPUT_PULLDOWN | MUX_MODE7)	/* gpmc_ad8.lcd_data23 */
			AM33XX_IOPAD(0x824, PIN_INPUT_PULLDOWN | MUX_MODE7)	/* gpmc_ad9.lcd_data22 */
			AM33XX_IOPAD(0x828, PIN_INPUT_PULLDOWN | MUX_MODE7)	/* gpmc_ad10.lcd_data21 */
			AM33XX_IOPAD(0x82c, PIN_INPUT_PULLDOWN | MUX_MODE7)	/* gpmc_ad11.lcd_data20 */
			AM33XX_IOPAD(0x830, PIN_INPUT_PULLDOWN | MUX_MODE7)	/* gpmc_ad12.lcd_data19 */
			AM33XX_IOPAD(0x834, PIN_INPUT_PULLDOWN | MUX_MODE7)	/* gpmc_ad13.lcd_data18 */
			AM33XX_IOPAD(0x838, PIN_INPUT_PULLDOWN | MUX_MODE7)	/* gpmc_ad14.lcd_data17 */
			AM33XX_IOPAD(0x83c, PIN_INPUT_PULLDOWN | MUX_MODE7)	/* gpmc_ad15.lcd_data16 */
			AM33XX_IOPAD(0x8a0, PULL_DISABLE | MUX_MODE7)	/* lcd_data0.lcd_data0 */
			AM33XX_IOPAD(0x8a4, PULL_DISABLE | MUX_MODE7)	/* lcd_data1.lcd_data1 */
			AM33XX_IOPAD(0x8a8, PULL_DISABLE | MUX_MODE7)	/* lcd_data2.lcd_data2 */
			AM33XX_IOPAD(0x8ac, PULL_DISABLE | MUX_MODE7)	/* lcd_data3.lcd_data3 */
			AM33XX_IOPAD(0x8b0, PULL_DISABLE | MUX_MODE7)	/* lcd_data4.lcd_data4 */
			AM33XX_IOPAD(0x8b4, PULL_DISABLE | MUX_MODE7)	/* lcd_data5.lcd_data5 */
			AM33XX_IOPAD(0x8b8, PULL_DISABLE | MUX_MODE7)	/* lcd_data6.lcd_data6 */
			AM33XX_IOPAD(0x8bc, PULL_DISABLE | MUX_MODE7)	/* lcd_data7.lcd_data7 */
			AM33XX_IOPAD(0x8c0, PULL_DISABLE | MUX_MODE7)	/* lcd_data8.lcd_data8 */
			AM33XX_IOPAD(0x8c4, PULL_DISABLE | MUX_MODE7)	/* lcd_data9.lcd_data9 */
			AM33XX_IOPAD(0x8c8, PULL_DISABLE | MUX_MODE7)	/* lcd_data10.lcd_data10 */
			AM33XX_IOPAD(0x8cc, PULL_DISABLE | MUX_MODE7)	/* lcd_data11.lcd_data11 */
			AM33XX_IOPAD(0x8d0, PULL_DISABLE | MUX_MODE7)	/* lcd_data12.lcd_data12 */
			AM33XX_IOPAD(0x8d4, PULL_DISABLE | MUX_MODE7)	/* lcd_data13.lcd_data13 */
			AM33XX_IOPAD(0x8d8, PULL_DISABLE | MUX_MODE7)	/* lcd_data14.lcd_data14 */
			AM33XX_IOPAD(0x8dc, PULL_DISABLE | MUX_MODE7)	/* lcd_data15.lcd_data15 */
			AM33XX_IOPAD(0x8e0, PIN_INPUT_PULLDOWN | MUX_MODE7)	/* lcd_vsync.lcd_vsync */
			AM33XX_IOPAD(0x8e4, PIN_INPUT_PULLDOWN | MUX_MODE7)	/* lcd_hsync.lcd_hsync */
			AM33XX_IOPAD(0x8e8, PIN_INPUT_PULLDOWN | MUX_MODE7)	/* lcd_pclk.lcd_pclk */
			AM33XX_IOPAD(0x8ec, PIN_INPUT_PULLDOWN | MUX_MODE7)	/* lcd_ac_bias_en.lcd_ac_bias_en */
		>;
	};
#if 0
	ehrpwm1_pins: ehrpwm1_pins {
		pinctrl-single,pins = <			
			0x048 (PIN_OUTPUT | MUX_MODE6) /* GPMC_A2.eHRPWM1A */
		>;
	};
#endif
};
#if 0
&gpio2 { 
	ti,no-reset-on-init;	
	gpios = <&gpio2 1 GPIO_ACTIVE_HIGH>;
};


&gpio2 {
	pinctrl-names = "default";
	pinctrl-0 = <&gpio2_pins_default>;
	gpios = <&gpio2 1 GPIO_ACTIVE_HIGH>;
	status = "okay";
};
#endif
&gpio3 { 
	ti,no-reset-on-init;	
	gpios = <&gpio3 17 GPIO_ACTIVE_LOW>;
};

&uart0 {
	pinctrl-names = "default";
	pinctrl-0 = <&uart0_pins_default>;

	status = "okay";
};

&uart1 {
	pinctrl-names = "default";
	pinctrl-0 = <&uart1_pins_default>;

	status = "okay";
};

&uart2 {
	pinctrl-names = "default";
	pinctrl-0 = <&uart2_pins_default>;

	status = "okay";
};

&uart3 {
	pinctrl-names = "default";
	pinctrl-0 = <&uart3_pins_default>;

	status = "okay";
};

&uart5 {
	pinctrl-names = "default";
	pinctrl-0 = <&uart5_pins_default>;

	status = "okay";
};

&i2c0 {
	pinctrl-names = "default";
	pinctrl-0 = <&i2c0_pins_default>;

	status = "okay";
	clock-frequency = <400000>;

	tps: tps@2d {
		reg = <0x2d>;
	};
};


&usb {
	status = "okay";
};

&usb_ctrl_mod {
	status = "okay";
};

&usb0_phy {
	status = "okay";
};

&usb1_phy {
	status = "okay";
};

&usb0 {
	status = "okay";
};

&usb1 {
	status = "okay";
	dr_mode = "host";
};

&cppi41dma  {
	status = "okay";
};

&elm {
	status = "okay";
};


&epwmss2 {
	status = "okay";

	ecap2: ecap@48304100 {
		status = "okay";
		pinctrl-names = "default";
		pinctrl-0 = <&ecap2_pins>;
	};
};

&gpmc {
		status = "okay";
	pinctrl-names = "default", "sleep";
	pinctrl-0 = <&nandflash_pins_default>;
	pinctrl-1 = <&nandflash_pins_sleep>;
	/*ranges = <0 0 0x08000000 0x10000000>;*/	/* CS0: NAND */
	ranges = <0 0 0x08000000 0x80000000>;	/*+++ Seamus,NAND,20190318 ---*/
	nand@0,0 {
		compatible = "ti,omap2-nand";
		reg = <0 0 4>; /* CS0, offset 0, IO size 4 */
		interrupt-parent = <&gpmc>;
		interrupts = <0 IRQ_TYPE_NONE>, /* fifoevent */
                    <1 IRQ_TYPE_NONE>;	/* termcount */
		rb-gpios = <&gpmc 0 GPIO_ACTIVE_HIGH>; /* gpmc_wait0 */
		ti,nand-ecc-opt = "bch16";
		ti,elm-id = <&elm>;
		nand-bus-width = <8>;
		gpmc,device-width = <1>;
		gpmc,sync-clk-ps = <0>;
		gpmc,cs-on-ns = <0>;
		gpmc,cs-rd-off-ns = <44>;
		gpmc,cs-wr-off-ns = <44>;
		gpmc,adv-on-ns = <6>;
		gpmc,adv-rd-off-ns = <34>;
		gpmc,adv-wr-off-ns = <44>;
		gpmc,we-on-ns = <0>;
		gpmc,we-off-ns = <40>;
		gpmc,oe-on-ns = <0>;
		gpmc,oe-off-ns = <54>;
		gpmc,access-ns = <64>;
		gpmc,rd-cycle-ns = <82>;
		gpmc,wr-cycle-ns = <82>;
		gpmc,wait-on-read = "true";
		gpmc,wait-on-write = "true";
		gpmc,bus-turnaround-ns = <0>;
		gpmc,cycle2cycle-delay-ns = <0>;
		gpmc,clk-activation-ns = <0>;
		gpmc,wait-monitoring-ns = <0>;
		gpmc,wr-access-ns = <40>;
		gpmc,wr-data-mux-bus-ns = <0>;
		/* MTD partition table */
		/* All SPL-* partitions are sized to minimal length
		 * which can be independently programmable. For
		 * NAND flash this is equal to size of erase-block */
		#address-cells = <1>;
		#size-cells = <1>;
		partition@0 {
			label = "NAND.SPL";
			reg = <0x00000000 0x00080000>;    /* 512KB */
		};
		partition@1 {
			label = "NAND.SPL.backup1";
			reg = <0x00080000 0x00080000>;    /* 512KB */
		};
		partition@2 {
			label = "NAND.SPL.backup2";
			reg = <0x00100000 0x00080000>;    /* 512KB */
		};
		partition@3 {
			label = "NAND.SPL.backup3";
			reg = <0x00180000 0x00080000>;    /* 512KB */
		};
		partition@4 {
			label = "NAND.kernel-fdt";
			reg = <0x00200000 0x00080000>;    /* 512KB */
		};
		partition@5 {
			label = "NAND.u-boot";
			reg = <0x00280000 0x00100000>;    /* 1MB */
		};
		partition@6 {
			label = "NAND.u-boot-env";        /* 512KB */
			reg = <0x00380000 0x00080000>;
		};
		partition@7 {
			label = "Primary kernel";
			reg = <0x00400000 0x00A00000>;
		};
		partition@8 {
			label = "Secondary kernel";
			reg = <0x00E00000 0x00A00000>;
		};
		partition@9 {
			label = "Primary rootfs";
			reg = <0x01800000 0x01800000>;
		};
		partition@10 {
			label = "Secondary rootfs";
			reg = <0x03000000 0x01800000>;
		};
		partition@11 {
			label = "Primary user configuration";
			reg = <0x04800000 0x00600000>;
		};
		partition@12 {
			label = "Secondary user configuration";
			reg = <0x04E00000 0x00600000>;
		};
		partition@13 {
			label = "Factory default configuration";
			reg = <0x05400000 0x00600000>;
		};
		partition@14 {
			label = "Storage";
			reg = <0x05A00000 0x7A600000>;
		};
	};
};


#include "tps65910.dtsi"
#if 0
&mcasp1 {
	#sound-dai-cells = <0>;
	pinctrl-names = "default", "sleep";
	pinctrl-0 = <&mcasp1_pins>;
	pinctrl-1 = <&mcasp1_pins_sleep>;

	status = "okay";

	op-mode = <0>;          /* MCASP_IIS_MODE */
	tdm-slots = <2>;
	/* 4 serializers */
	serial-dir = <  /* 0: INACTIVE, 1: TX, 2: RX */
		0 0 1 2
	>;
	tx-num-evt = <32>;
	rx-num-evt = <32>;
};
#endif

&tps {
	vcc1-supply = <&vbat>;
	vcc2-supply = <&vbat>;
	vcc3-supply = <&vbat>;
	vcc4-supply = <&vbat>;
	vcc5-supply = <&vbat>;
	vcc6-supply = <&vbat>;
	vcc7-supply = <&vbat>;
	vccio-supply = <&vbat>;

	regulators {
		vrtc_reg: regulator@0 {
			regulator-always-on;
		};

		vio_reg: regulator@1 {
			regulator-always-on;
		};

		vdd1_reg: regulator@2 {
			/* VDD_MPU voltage limits 0.95V - 1.325V with +/-4% tolerance */
			regulator-name = "vdd_mpu";
			regulator-min-microvolt = <912500>;
			regulator-max-microvolt = <1378000>;
			regulator-boot-on;
			regulator-always-on;
		};

		vdd2_reg: regulator@3 {
			/* VDD_CORE voltage limits 0.95V - 1.1V with +/-4% tolerance */
			regulator-name = "vdd_core";
			regulator-min-microvolt = <912500>;
			regulator-max-microvolt = <1150000>;
			regulator-boot-on;
			regulator-always-on;
		};

		vdd3_reg: regulator@4 {
			regulator-always-on;
		};

		vdig1_reg: regulator@5 {
			regulator-always-on;
		};

		vdig2_reg: regulator@6 {
			regulator-always-on;
		};

		vpll_reg: regulator@7 {
			regulator-always-on;
		};

		vdac_reg: regulator@8 {
			regulator-always-on;
		};

		vaux1_reg: regulator@9 {
			regulator-always-on;
		};

		vaux2_reg: regulator@10 {
			regulator-always-on;
		};

		vaux33_reg: regulator@11 {
			regulator-always-on;
		};

		vmmc_reg: regulator@12 {
			regulator-min-microvolt = <1800000>;
			regulator-max-microvolt = <3300000>;
			regulator-always-on;
		};
	};
};

&mac {
	pinctrl-names = "default", "sleep";
	pinctrl-0 = <&cpsw_default>;
	pinctrl-1 = <&cpsw_sleep>;
	dual_emac;
	status = "okay";
};

&davinci_mdio {
	pinctrl-names = "default", "sleep";
	pinctrl-0 = <&davinci_mdio_default>;
	pinctrl-1 = <&davinci_mdio_sleep>;
	status = "okay";
};

&cpsw_emac0 {
	phy_id = <&davinci_mdio>, <3>;
 	phy-mode = "rmii";
	dual_emac_res_vlan = <2>;
};

&cpsw_emac1 {
	phy_id = <&davinci_mdio>, <2>;
 	phy-mode = "rmii";
	dual_emac_res_vlan = <1>;
};

&phy_sel {
        rmii-clock-ext = <1>;
};

&tscadc {
	status = "okay";
	tsc {
		ti,wires = <4>;
		ti,x-plate-resistance = <200>;
		ti,coordinate-readouts = <5>;
		ti,wire-config = <0x00 0x11 0x22 0x33>;
		ti,charge-delay = <0x400>;
	};

	adc {
		ti,adc-channels = <4 5 6 7>;
	};
};

/* Miscro SD */
&mmc1 {
	status = "okay";
	vmmc-supply = <&vmmc_reg>;
	bus-width = <4>;
	pinctrl-names = "default";
	pinctrl-0 = <&mmc1_pins>;
	cd-gpios = <&gpio0 6 GPIO_ACTIVE_LOW>;
};

&sham {
	status = "okay";
};

&aes {
	status = "okay";
};

&wkup_m3_ipc {
	ti,scale-data-fw = "am335x-evm-scale-data.bin";
};

&dcan0 {
	status = "okay";	
	pinctrl-names = "default";
	pinctrl-0 = <&dcan0_pins_default>;
};

&dcan1 {
	status = "okay";	
	pinctrl-names = "default";
	pinctrl-0 = <&dcan1_pins_default>;
};
#if 0
&epwmss1 {
	status = "okay";      

	ehrpwm1: pwm@48302200 {
		status = "okay";
		pinctrl-names = "default";
		pinctrl-0 = <&ehrpwm1_pins>;
	};
};
#endif
/*
The QCA7000 acts as a SPI slave and uses Mode 3: CPOL=1, CPHA=1.
SPI data width is 8 bit. The SPI CLK period should not be less than 83.3 ns
The SPI should be used in burst mode, meaning that the chip select is held low during a complete SPI message.
 Note: The SPI lines between Host CPU and QCA7000 should be kept as short as possible.

*/
/* Green PHY (QCA7000) */
&spi0 {
	status = "okay";
	pinctrl-names = "default";
	pinctrl-0 = <&spi0_pins_default>;

	qca7000: ethernet@0 {
		reg = <0x0>;
		compatible = "qca,qca7000";
		interrupt-parent = <&gpio0>;
		interrupts = <19 IRQ_TYPE_EDGE_RISING>;
		spi-cpha;
		spi-cpol;
		spi-max-frequency = <10000000>;
		status = "okay";
	};
};
#if 1
&lcdc {
	status = "okay";
	
	blue-and-red-wiring = "crossed";
};
#endif

#if 0
&rtc {
	clocks = <&clk_32768_ck>, <&clkdiv32k_ick>;
	clock-names = "ext-clk", "int-clk";
};


&pruss_soc_bus {
	status = "okay";

	pruss: pruss@0 {
		status = "okay";
	};
};

&sgx {
	status = "okay";
};
#endif

Thanks

  • Please complete this checklist and post the results here: processors.wiki.ti.com/.../5x_CPSW

  • Hi Biser,

    1. ethtool -S eth1

    / # ethtool -S eth1
    NIC statistics:
    Good Rx Frames: 0
    Broadcast Rx Frames: 0
    Multicast Rx Frames: 0
    Pause Rx Frames: 0
    Rx CRC Errors: 0
    Rx Align/Code Errors: 0
    Oversize Rx Frames: 0
    Rx Jabbers: 0
    Undersize (Short) Rx Frames: 0
    Rx Fragments: 0
    Rx Octets: 0
    Good Tx Frames: 0
    Broadcast Tx Frames: 0
    Multicast Tx Frames: 0
    Pause Tx Frames: 0
    Deferred Tx Frames: 0
    Collisions: 0
    Single Collision Tx Frames: 0
    Multiple Collision Tx Frames: 0
    Excessive Collisions: 0
    Late Collisions: 0
    Tx Underrun: 0
    Carrier Sense Errors: 0
    Tx Octets: 0
    Rx + Tx 64 Octet Frames: 0
    Rx + Tx 65-127 Octet Frames: 0
    Rx + Tx 128-255 Octet Frames: 0
    Rx + Tx 256-511 Octet Frames: 0
    Rx + Tx 512-1023 Octet Frames: 0
    Rx + Tx 1024-Up Octet Frames: 0
    Net Octets: 0
    Rx Start of Frame Overruns: 0
    Rx Middle of Frame Overruns: 0
    Rx DMA Overruns: 0
    Rx DMA chan 0: head_enqueue: 2
    Rx DMA chan 0: tail_enqueue: 427
    Rx DMA chan 0: pad_enqueue: 0
    Rx DMA chan 0: misqueued: 0
    Rx DMA chan 0: desc_alloc_fail: 0
    Rx DMA chan 0: pad_alloc_fail: 0
    Rx DMA chan 0: runt_receive_buf: 0
    Rx DMA chan 0: runt_transmit_bu: 0
    Rx DMA chan 0: empty_dequeue: 0
    Rx DMA chan 0: busy_dequeue: 165
    Rx DMA chan 0: good_dequeue: 174
    Rx DMA chan 0: requeue: 1
    Rx DMA chan 0: teardown_dequeue: 127
    Tx DMA chan 0: head_enqueue: 63
    Tx DMA chan 0: tail_enqueue: 0
    Tx DMA chan 0: pad_enqueue: 0
    Tx DMA chan 0: misqueued: 0
    Tx DMA chan 0: desc_alloc_fail: 0
    Tx DMA chan 0: pad_alloc_fail: 0
    Tx DMA chan 0: runt_receive_buf: 0
    Tx DMA chan 0: runt_transmit_bu: 13
    Tx DMA chan 0: empty_dequeue: 64
    Tx DMA chan 0: busy_dequeue: 0
    Tx DMA chan 0: good_dequeue: 63
    Tx DMA chan 0: requeue: 0
    Tx DMA chan 0: teardown_dequeue: 0

    2. Is the link up?

    Yes

    3. Is there an IP address?

    Yes. As the first post log

    4. Is the interface reporting data being received or transmitted?

    No rx data

    5. Network view

    No ARP in port1. The dts setting is shown below

    &cpsw_emac0 {
    phy_id = <&davinci_mdio>, <3>;
    phy-mode = "rmii";
    dual_emac_res_vlan = <2>;
    };

    &cpsw_emac1 {
    phy_id = <&davinci_mdio>, <2>;
    phy-mode = "rmii";
    dual_emac_res_vlan = <1>;
    };

    6. Kernel version

    Linux localhost 4.9.59 #121 PREEMPT Mon Feb 24 15:19:26 CST 2020 armv7l GNU/Linux

    7. ifconfig

    / # ifconfig
    eth0 Link encap:Ethernet HWaddr 04:79:B7:96:D3:4A
    inet addr:192.168.1.99 Bcast:192.168.1.255 Mask:255.255.255.0
    UP BROADCAST MULTICAST MTU:1500 Metric:1
    RX packets:173 errors:0 dropped:0 overruns:0 frame:0
    TX packets:34 errors:0 dropped:0 overruns:0 carrier:0
    collisions:0 txqueuelen:1000
    RX bytes:26269 (25.6 KiB) TX bytes:2800 (2.7 KiB)
    Interrupt:178

    eth1 Link encap:Ethernet HWaddr 04:79:B7:96:D3:4C
    inet addr:192.168.1.10 Bcast:192.168.1.255 Mask:255.255.255.0
    inet6 addr: fe80::679:b7ff:fe96:d34c/64 Scope:Link
    UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
    RX packets:0 errors:0 dropped:0 overruns:0 frame:0
    TX packets:31 errors:0 dropped:0 overruns:0 carrier:0
    collisions:0 txqueuelen:1000
    RX bytes:0 (0.0 B) TX bytes:2256 (2.2 KiB)

    Thanks

  • Hi,

    Both Ethernet ports cannot be on the same sub net in Linux. Here both eth0 and eth1 on sub net 1. 

    eth0 inet addr:192.168.1.99 

    eth1 inet addr:192.168.1.10 

    Please take a look at this training presentation starting about slide 51 for an explanation as to why this will not work. 

    Ethernet System Software on Sitara AM-Class Processors

    Best Regards,

    Schuyler

  • Hi Schuyler,

    I insert the bonding.ko, but it still one external port can be used. However, the two external port work in u-boot, after I enable CONFIG_PHY_MICREL_KSZ8XXX=y. The u-boot is get from TI's SDK v05.

    Thanks

    =====================Log Start============================

    / # insmod /mnt/bonding.ko
    [ 177.041061] Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011)
    / #
    / # ifconfig eth0 down
    / # ifconfig eth1 down
    / # echo 3 > /sys/class/net/bond0/bonding/mode
    / # cat /sys/class/net/bond0/bonding/mode
    broadcast 3
    / # ifconfig bond0 192.168.1.10 netmask 255.255.255.0 up
    [ 258.762098] IPv6: ADDRCONF(NETDEV_UP): bond0: link is not ready

    / # echo +eth0>/sys/class/net/bond0/bonding/slaves
    [ 302.707954] bond0: Adding slave eth0
    [ 302.740103] net eth0: initializing cpsw version 1.12 (0)
    [ 302.789398] cpsw 4a100000.ethernet: initialized cpsw ale version 1.4
    [ 302.798175] cpsw 4a100000.ethernet: ALE Table size 1024
    [ 302.901940] Micrel KSZ886X Switch 4a101000.mdio:02: attached PHY driver [Micrel KSZ886X Switch] (mii_bus:phy_addr=4a101000.mdio:02, irq=-1)
    [ 302.917847] cpts ptp bc clkid 0
    [ 302.939040] bond0: Enslaving eth0 as an active interface with an up link
    [ 302.946217] IPv6: ADDRCONF(NETDEV_CHANGE): bond0: link becomes ready
    / # echo +eth1>/sys/class/net/bond0/bonding/slaves[ 308.750279] bond0: Adding slave eth1

    [ 308.759484] net eth1: initializing cpsw version 1.12 (0)
    [ 308.921979] Micrel KSZ886X Switch 4a101000.mdio:03: attached PHY driver [Micrel KSZ886X Switch] (mii_bus:phy_addr=4a101000.mdio:03, irq=-1)
    [ 308.947869] bond0: Enslaving eth1 as an active interface with an up link
    / # [ 311.042499] cpsw 4a100000.ethernet eth1: Link is Up - 100Mbps/Full - flow control rx/tx

    / # ping 192.168.1.5
    PING 192.168.1.5 (192.168.1.5): 56 data bytes
    ^C
    --- 192.168.1.5 ping statistics ---
    15 packets transmitted, 0 packets received, 100% packet loss
    / #
    / #
    / # [ 350.562328] cpsw 4a100000.ethernet eth1: Link is Down
    [ 351.762502] cpsw 4a100000.ethernet eth0: Link is Up - 100Mbps/Full - flow control rx/tx

    / # ping 192.168.1.5
    PING 192.168.1.5 (192.168.1.5): 56 data bytes
    64 bytes from 192.168.1.5: seq=0 ttl=64 time=4.761 ms
    64 bytes from 192.168.1.5: seq=1 ttl=64 time=4.629 ms
    64 bytes from 192.168.1.5: seq=2 ttl=64 time=4.756 ms
    64 bytes from 192.168.1.5: seq=3 ttl=64 time=1.883 ms
    64 bytes from 192.168.1.5: seq=4 ttl=64 time=2.486 ms
    ^C
    --- 192.168.1.5 ping statistics ---
    5 packets transmitted, 5 packets received, 0% packet loss
    round-trip min/avg/max = 1.883/3.703/4.761 ms
    / # [ 429.762315] cpsw 4a100000.ethernet eth0: Link is Down
    [ 430.642501] cpsw 4a100000.ethernet eth1: Link is Up - 100Mbps/Full - flow control rx/tx

    / #
    / #
    / # ifconfig
    bond0 Link encap:Ethernet HWaddr 04:79:B7:96:D3:4A
    inet addr:192.168.1.10 Bcast:192.168.1.255 Mask:255.255.255.0
    inet6 addr: fe80::679:b7ff:fe96:d34a/64 Scope:Link
    UP BROADCAST RUNNING MASTER MULTICAST MTU:1500 Metric:1
    RX packets:7 errors:0 dropped:0 overruns:0 frame:0
    TX packets:23 errors:0 dropped:16 overruns:0 carrier:0
    collisions:0 txqueuelen:1000
    RX bytes:610 (610.0 B) TX bytes:1610 (1.5 KiB)

    eth0 Link encap:Ethernet HWaddr 04:79:B7:96:D3:4A
    UP BROADCAST SLAVE MULTICAST MTU:1500 Metric:1
    RX packets:7 errors:0 dropped:0 overruns:0 frame:0
    TX packets:9 errors:0 dropped:0 overruns:0 carrier:0
    collisions:0 txqueuelen:1000
    RX bytes:610 (610.0 B) TX bytes:750 (750.0 B)
    Interrupt:178

    eth1 Link encap:Ethernet HWaddr 04:79:B7:96:D3:4A
    UP BROADCAST RUNNING SLAVE MULTICAST MTU:1500 Metric:1
    RX packets:0 errors:0 dropped:0 overruns:0 frame:0
    TX packets:14 errors:0 dropped:0 overruns:0 carrier:0
    collisions:0 txqueuelen:1000
    RX bytes:0 (0.0 B) TX bytes:860 (860.0 B)

    / # [ 837.282339] cpsw 4a100000.ethernet eth1: Link is Down

    ======================Log Stop==============================

  • Hi,

    I apologize as it was not until you provide the line from the console output that defined the problem. I missed reading the original log you sent. The board has a 5 port switch on it. 

    [ 302.901940] Micrel KSZ886X Switch 4a101000.mdio:02: attached PHY driver [Micrel KSZ886X Switch] (mii_bus:phy_addr=4a101000.mdio:02, irq=-1)

    The CPSW-to-external switch is a use case that is not supported by TI. This use case though has been implemented successfully by customers. I would recommend using a site search of the e2e.ti.com forum for some possible suggestions that might be close enough to what you are trying to implement in your design, there is no guarantee of an answer though.  A site search in case you are unfamiliar can be performed from a google search like this,     site:e2e.ti.com switch ethernet. 

    The other recommendation I have is for you to contact and work with the switch manufacturer on this design.

    Best Regards,

    Schuyler

  • Hi Schuyler,

    Below link solved the issue. We should remove the setting of phy_id and add fixed-link.

    Thanks