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: Dual emac problem of am3352

Part Number: AM3352

Hello ,TI technology expert.

We encountered some problems when developing the dual emac function of am3352. These problems need your help to solve.The following is a detailed description

CPU:AM3352BZCZA100

LInux kernel version:3.12.10-rt15-ti2013.12.01

Device tree information: 

,config configuration

Question 1

When only eth1 is configured in the system startup script, eth0 is not configured, and the network port of eth1 is connected to the switch, execute the reboot shell command, the system will fail after startup.

Network configuration in startup script

Fault printing information

[root@inovance:/#]
[root@inovance:/#]
[root@inovance:/#]
[root@inovance:/#]
[root@inovance:/#]
[root@inovance:/#]
[root@inovance:/#]cat /etc/init.d/common_rcS
#! /bin/sh

hostname inovance

/bin/mount -a

mkdir /dev/pts
mount -t devpts devpts /dev/pts

/bin/echo /sbin/mdev > proc/sys/kernel/hotplug 
mdev -s 
source /etc/profile

ln /dev/spidev2.0  /dev/spidev3.0
ln /dev/spidev1.1  /dev/spidev3.1
ln /dev/spidev2.1  /dev/spidev3.2
ln /dev/spidev1.0  /dev/spidev4.0

#ifconfig  eth0 192.168.1.88  netmask 255.255.255.0
#ifconfig  eth1 192.168.2.88  netmask 255.255.255.0

#ifconfig  eth0 10.45.121.236  netmask 255.255.255.0
ifconfig  eth1 192.168.2.88  netmask 255.255.255.0

telnetd &

./usr/lib/ipreset   &     #reset ip address by key-s0

productmodel=AS100-TC-ZL1

softwareversion=0.0.2.7

echo "board product model : $productmodel"
echo "board software version : $softwareversion"
echo "######################## Zoomlion start ! ############################"

zlappenable=0
eqappenable=0

if [ $zlappenable -eq '1' ];then
    zlappexistflag=`ls -l /usr/lib |grep start.sh |wc -l`     #check start file.if exist,run it.
    if [ $zlappexistflag -eq '1' ];then
        /usr/lib/start.sh &
    fi
fi


if [ $eqappenable -eq '1' ];then
    ./apptest/Equip_test  &
fi

[root@inovance:/#]
[root@inovance:/#]
[root@inovance:/#]
[root@inovance:/#]
[root@inovance:/#]
[root@inovance:/#]reboot
[root@inovance:/#]umount: devtmpfs busy - remounted read-only
The system is going down NOW!
Sent SIGTERM to all processes
Requesting system reboot
[   10.406247] ---[ end trace 0000000000000003 ]---
[   10.406251] Fixing recursive fault but reboot is needed!
[   71.309810] reboot: Restarting system
[   71.324194] machine_restart reboot_mode=0  cmd=(null)   arm_pm_restart=c0032cd0 

U-Boot SPL 2013.10 (Jan 20 2022 - 16:32:00)
uboot start C code execution !  
------  BL1:   /arch/arm/cpu/armv7/am33xx/board.c   s_init()   start     ------
s_init - uart init ok.
s_init - prcm_init: pll
armv7/am33xx/clock.c - prcm_init: enable_basic_clocks, setup_dplls 
board/ti/am335x/board.c:no i2c Board-ID ,use default param 
s_init - set pinmux
board/ti/am335x/mux.c   enable_board_pin_mux !!
s_init - sdram init 
FirstAddress Check:sdram_init  FirstAddress test ok  
------    BL1:   /arch/arm/cpu/armv7/am33xx/board.c   s_init()   end     ------
------  BL1:   common/spl/spl.c     board_init_r()   start     ------
arch/arm/cpu/armv7/omap-common/boot-common.c   spl_board_init 
board/ti/am335x/board.c: am33xx_spl_board_init. 
Board has no power management chip. No configuration required! 
init dpll_mpu_opp100.m = 550
now  dpll_mpu_opp100.m = 1000
now1  dpll_core_opp100.m =1000
The Expected Linux image was not found 
Trying to start u-boot now...
------  BL1:   common/spl/spl.c     board_init_r()   end     ------

Jumping to U-Boot.... 
------  BL2:  arch/arm/lib/board.c board_init_f() start------


U-Boot 2013.10 (Jan 20 2022 - 16:32:00)

I2C:   ready
DRAM:  256 MiB
------  BL2:   arch/arm/lib/board.c board_init_f() end------
------   BL2:   arch/arm/lib/board.c - board_init_r() start------
NAND:  256 MiB
MMC:   OMAP SD/MMC: 0, OMAP SD/MMC: 1
board_init_r   initialize environment 1 
*** Warning - bad CRC, using default environment

board_init_r   initialize environment 2 
------board/ti/am335x/board.c - board_late_init------
Net:   <ethaddr> not set. Validating first E-fuse MAC
cpsw, usb_ether
------ BL2:   arch/arm/lib/board.c - board_init_r() end------
----begin mainloop----
------  BL2:  /common/main.c - main_loop()   start ------
------ BL2:   /common/main.c - main_loop()  end ------
Card did not respond to voltage select!
boot_system_update: no mmc card detected
Hit any key to stop autoboot:  0 

NAND read: device 0 offset 0x200000, size 0x400000
 4194304 bytes read: OK

NAND read: device 0 offset 0x80000, size 0x40000
 262144 bytes read: OK
## Booting kernel from Legacy Image at 80007fc0 ...
   Image Name:   Linux-3.12.10-rt15-ti2013.12.01
   Image Type:   ARM Linux Kernel Image (uncompressed)
   Data Size:    4166608 Bytes = 4 MiB
   Load Address: 80008000
   Entry Point:  80008000
   Verifying Checksum ... OK
## Flattened Device Tree blob at 80600000
   Booting using the fdt blob at 0x80600000
   XIP Kernel Image ... OK
   Loading Device Tree to 8f320000, end 8f32be6c ... OK

Starting kernel ...

[    0.000000] Booting Linux on physical CPU 0x0
[    0.000000] Machine: Generic AM33XX (Flattened Device Tree), model: TI AM335x EVM
[    0.000000] archrm\kernel\setup.c setup_arch  machine_desc is created by fdt ! 
[    0.000000] ---machine_desc is below---
[    0.000000] mdesc->nr =ffffffff 
[    0.000000] mdesc->name =Generic AM33XX (Flattened Device Tree) 
[    0.000000] mdesc->atag_offset =0 
[    0.000000] mdesc->dt_compat =ti,am33xx 
[    0.000000] mdesc->nr_irqs =0 
[    0.000000] AM335X ES2.1 (neon )
[    0.000000] NR_IRQS:16 nr_irqs:16 16
[    0.000000] OMAP clockevent source: timer2 at 24000000 Hz
[    0.000000] OMAP clocksource: timer1 at 24000000 Hz
[    0.000000] Console: colour dummy device 80x30
[    0.006791] Calibrating delay loop... 663.55 BogoMIPS (lpj=331776)
[    0.006795] pid_max: default: 32768 minimum: 301
[    0.006902] Security Framework initialized
[    0.006959] Mount-cache hash table entries: 512
[    0.016037] CPU: Testing write buffer coherency: ok
[    0.020581] VFP support v0.3: implementor 41 architecture 3 part 30 variant c rev 3
[    0.093009] DMA: preallocated 256 KiB pool for atomic coherent allocations
[    0.104331] platform mpu.1: FIXME: clock-name 'fck' DOES NOT exist in dt!
[    0.105898] platform 49000000.edma: FIXME: clock-name 'fck' DOES NOT exist in dt!
[    0.118616] platform 44e3e000.rtc: Cannot lookup hwmod 'rtc'
[    0.123507] platform 56000000.sgx: FIXME: clock-name 'fck' DOES NOT exist in dt!
[    0.125666] DSS not supported on this SoC
[    0.125684] No ATAGs?
[    0.125696] hw-breakpoint: debug architecture 0x4 unsupported.
[    0.165356] bio: create slab <bio-0> at 0
[    0.187441] edma-dma-engine edma-dma-engine.0: TI EDMA DMA engine driver
[    0.191976] vgaarb: loaded
[    0.193681] SCSI subsystem initialized
[    0.196420] usbcore: registered new device driver usb
[    0.198659] PTP clock support registered
[    0.202632] Switched to clocksource timer1
[    0.233478] TCP: Hash tables configured (established 2048 bind 2048)
[    0.233562] TCP: reno registered
[    0.234547] RPC: Registered named UNIX socket transport module.
[    0.234563] RPC: Registered udp transport module.
[    0.234571] RPC: Registered tcp transport module.
[    0.234580] RPC: Registered tcp NFSv4.1 backchannel transport module.
[    0.235945] NetWinder Floating Point Emulator V0.97 (double precision)
[    0.236963] PM: Loading am335x-pm-firmware.bin
[    0.360935] VFS: Disk quotas dquot_6.5.2
[    0.361377] Dquot-cache hash table entries: 1024 (order 0, 4096 bytes)
[    0.367522] NFS: Registering the id_resolver key type
[    0.367799] jffs2: version 2.2. (NAND) (SUMMARY)  ? 2001-2006 Red Hat, Inc.
[    0.369369] msgmni has been set to 484
[    0.372412] io scheduler noop registered
[    0.372430] io scheduler deadline registered
[    0.373005] io scheduler cfq registered (default)
[    0.377885] platform 48300180.eqep: FIXME: clock-name 'fck' DOES NOT exist in dt!
[    0.378909] EQEP irq = 95, system clock = 100000000
[    0.379274] platform 48302180.eqep: FIXME: clock-name 'fck' DOES NOT exist in dt!
[    0.380162] EQEP irq = 104, system clock = 100000000
[    0.380500] platform 48304180.eqep: FIXME: clock-name 'fck' DOES NOT exist in dt!
[    0.381346] EQEP irq = 105, system clock = 100000000
[    0.390378] Serial: 8250/16550 driver, 4 ports, IRQ sharing enabled
[    0.708867] console [ttyO0] enabled
[    0.717478] omap_rng 48310000.rng: OMAP Random Number Generator ver. 20
[    0.739746] brd: module loaded
[    0.750874] loop: module loaded
[    0.754364] zl_gpio_init major number 248.
[    0.758792] zl_gpio_init minor number 0.
[    0.763510] gpio_cdev is registered success
[    0.774858] mtdoops: mtd device (mtddev=name/number) must be supplied
[    0.783733] spi_gpio  bus-id =2 !   
[    0.787591] spi_gpio_probe  master->bus_num =2   
[    0.802933] create ktrhead ok!
[    0.807102] vcan: Virtual CAN interface driver
[    0.820104] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[    0.827250] ehci-pci: EHCI PCI platform driver
[    0.832212] ehci-omap: OMAP-EHCI Host Controller driver
[    0.843298] i2c /dev entries driver
[    0.848524] omap_wdt->timeout = 60  /nomap_wdt_disable  execute !!!   
[    0.856946] omap_wdt: OMAP Watchdog Timer Rev 0x01: initial timeout 60 sec
[    0.867091] omap-sham 53100000.sham: hw accel on OMAP rev 4.3
[    0.874999] omap-aes 53500000.aes: OMAP AES hw accel rev: 3.2
[    0.883263] usbhid: USB HID core driver
[    0.891626] TCP: cubic registered
[    0.895377] Initializing XFRM netlink socket
[    0.899987] can: controller area network core (rev 20120528 abi 9)
[    0.906709] can: raw protocol (rev 20120528)
[    0.911225] can: broadcast manager protocol (rev 20120528 t)
[    0.917222] can: netlink gateway (rev 20130117) max_hops=1
[    0.923508] 8021q: 802.1Q VLAN Support v1.8
[    0.928911] cpufreq_cpu0: failed to get cpu0 regulator: -19
[    0.935937] ThumbEE CPU extension supported.
[    0.943421] omap-gpmc 50000000.gpmc: GPMC revision 6.0
[    0.950456] ONFI param page 0 valid
[    0.954279] ONFI flash detected
[    0.957603] omap2-nand: detected x8 NAND flash
[    0.962318] nand: using OMAP_ECC_BCH8_CODE_HW ECC scheme
[    0.967991] omap2-nand: using custom ecc layout
[    0.972867] 10 ofpart partitions found on MTD device omap2-nand.0
[    1.115364] rtc-pcf8563 0-0051: rtc core: registered rtc-pcf8563 as rtc0
[    1.127288] UBI: attaching mtd9 to ubi0
[    2.261413] UBI: scanning is finished
[    2.277309] UBI: background thread "ubi_bgt0d" started, PID 896
[    2.335818] libphy: 4a101000.mdio: probed
[    2.341255] Detected MACID = a4:06:e9:70:fa:44
[    2.347899] cpsw: Detected MACID = a4:06:e9:70:fa:46
[    2.442505] VFS: Mounted root (ubifs filesystem) on device 0:13.
[    2.450394] devtmpfs: mounted
[    2.454073] Freeing unused kernel memory: 344K (c0757000 - c07ad000)
mount: mounting none on /tmp failed: No such file or directory
[    2.855119] net eth1: initializing cpsw version 1.12 (0)
[    2.863587] net eth1: phy found : id is : 0x128
[    2.868457] priv->rmii1_clock_external = 0   priv->rmii2_clock_external = 1  
[    2.875977] cpsw_gmii_sel_am3352  slave1  BIT7   AM33XX_GMII_SEL_RMII2_IO_CLK_EN 
[    2.883882] priv->data.dual_emac= 1  no_default_vlan 
[    2.895371] 8021q: adding VLAN 0 to HW filter on device eth1
board product model : AS100-TC-ZL1
board software version : 0.0.2.7
######################## Zoomlion start ! ############################
[root@inovance:/#][    5.208119] ------------[ cut here ]------------
[    5.208129] Kernel BUG at c0584f68 [verbose debug info unavailable]
[    5.208135] Internal error: Oops - BUG: 0 [#1] PREEMPT ARM
[    5.208145] Modules linked in:
[    5.208157] CPU: 0 PID: 919 Comm: irq/57-eth0 Not tainted 3.12.10-rt15-ti2013.12.01 #196
[    5.208163] task: cd131b00 ti: cd3fa000 task.ti: cd3fa000
[    5.208188] PC is at rt_spin_lock_slowlock+0x244/0x260
[    5.208193] LR is at rt_spin_lock_slowlock+0x60/0x260
[    5.208200] pc : [<c0584f68>]    lr : [<c0584d84>]    psr: 60000013
[    5.208200] sp : cd3fbe88  ip : cd131b00  fp : cd3fbee4
[    5.208203] r10: cd006b40  r9 : c007a674  r8 : 00000001
[    5.208207] r7 : cd3fa000  r6 : cd131b00  r5 : cd31e4c0  r4 : cd3fa000
[    5.208210] r3 : cd131b00  r2 : 00000000  r1 : cd131b00  r0 : 00000000
[    5.208216] Flags: nZCv  IRQs on  FIQs on  Mode SVC_32  ISA ARM  Segment kernel
[    5.208221] Control: 10c5387d  Table: 8d498019  DAC: 00000017
[    5.208225] Process irq/57-eth0 (pid: 919, stack limit = 0xcd3fa248)
[    5.208229] Stack: (0xcd3fbe88 to 0xcd3fc000)
[    5.208238] be80:                   c0016f8c 00000000 00000001 cd3caa80 cd3fbed4 c05845ac
[    5.208245] bea0: c0016fd0 c0017758 00000000 c007a6ac cd3fbf2c 00000000 c05881bc c007a601
[    5.208252] bec0: fffb8077 cd31e4c0 cd006b40 cd3caa80 cd3fa000 00000001 cd3fbef4 cd3fbee8
[    5.208259] bee0: c0585ae0 c0584d30 cd3fbf0c cd3fbef8 c03f75b8 c0585adc cd3caa80 cd006b40
[    5.208266] bf00: cd3fbf2c cd3fbf10 c007a69c c03f75ac cd131b00 cd3caa80 00000000 cd3caa80
[    5.208273] bf20: cd3fbf64 cd3fbf30 c007a3ec c007a680 00000000 c007a574 00000000 cd087c3c
[    5.208280] bf40: 00000000 cd3caa80 c007a314 00000000 00000000 00000000 cd3fbfac cd3fbf68
[    5.208287] bf60: c0062f54 c007a320 cd3fbf94 00000000 c006c308 cd3caa80 00000000 cd3fbf7c
[    5.208294] bf80: cd3fbf7c 00000000 cd3fbf88 cd3fbf88 cd087c3c c0062eb0 00000000 00000000
[    5.208301] bfa0: 00000000 cd3fbfb0 c0014918 c0062ebc 00000000 00000000 00000000 00000000
[    5.208308] bfc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
[    5.208314] bfe0: 00000000 00000000 00000000 00000000 00000013 00000000 00000000 00000000
[    5.208318] Backtrace: 
[    5.208334] [<c0584d24>] (rt_spin_lock_slowlock+0x0/0x260) from [<c0585ae0>] (rt_spin_lock+0x10/0x14)
[    5.208344]  r8:00000001 r7:cd3fa000 r6:cd3caa80 r5:cd006b40 r4:cd31e4c0
[    5.208357] [<c0585ad0>] (rt_spin_lock+0x0/0x14) from [<c03f75b8>] (cpsw_interrupt+0x18/0xbc)
[    5.208375] [<c03f75a0>] (cpsw_interrupt+0x0/0xbc) from [<c007a69c>] (irq_forced_thread_fn+0x28/0x5c)
[    5.208380]  r5:cd006b40 r4:cd3caa80
[    5.208390] [<c007a674>] (irq_forced_thread_fn+0x0/0x5c) from [<c007a3ec>] (irq_thread+0xd8/0x12c)
[    5.208397]  r6:cd3caa80 r5:00000000 r4:cd3caa80 r3:cd131b00
[    5.208408] [<c007a314>] (irq_thread+0x0/0x12c) from [<c0062f54>] (kthread+0xa4/0xac)
[    5.208428] [<c0062eb0>] (kthread+0x0/0xac) from [<c0014918>] (ret_from_fork+0x14/0x3c)
[    5.208435]  r7:00000000 r6:00000000 r5:c0062eb0 r4:cd087c3c
[    5.208443] Code: ebfffcd7 eaffffb5 ebfffcd5 eaffffc4 (e7f001f2) 
[    5.499725] ---[ end trace 0000000000000002 ]---
[    5.499733] note: irq/57-eth0[919] exited with preempt_count 1
[    5.499762] Unable to handle kernel paging request at virtual address fffffff0
[    5.499765] pgd = c0004000
[    5.499773] [fffffff0] *pgd=8fcf2821, *pte=00000000, *ppte=00000000
[    5.499778] Internal error: Oops: 17 [#2] PREEMPT ARM
[    5.499782] Modules linked in:
[    5.499790] CPU: 0 PID: 919 Comm: irq/57-eth0 Tainted: G      D      3.12.10-rt15-ti2013.12.01 #196
[    5.499794] task: cd131b00 ti: cd3fa000 task.ti: cd3fa000
[    5.499800] PC is at kthread_data+0x10/0x18
[    5.499806] LR is at irq_thread_dtor+0x30/0xc4
[    5.499811] pc : [<c00632a8>]    lr : [<c007a5a4>]    psr: 20000093
[    5.499811] sp : cd3fbc38  ip : cd3fbc48  fp : cd3fbc44
[    5.499814] r10: c0584f6a  r9 : c083fe04  r8 : cd3fa000
[    5.499817] r7 : 00000000  r6 : c0842d44  r5 : cd131b00  r4 : cd131e48
[    5.499821] r3 : 00000000  r2 : cd3fbc48  r1 : cd3fbf30  r0 : cd131b00
[    5.499825] Flags: nzCv  IRQs off  FIQs on  Mode SVC_32  ISA ARM  Segment user
[    5.499829] Control: 10c5387d  Table: 8d498019  DAC: 00000015
[    5.499832] Process irq/57-eth0 (pid: 919, stack limit = 0xcd3fa248)
[    5.499836] Stack: (0xcd3fbc38 to 0xcd3fc000)
[    5.499841] bc20:                                                       cd3fbc5c cd3fbc48
[    5.499849] bc40: c007a5a4 c00632a4 cd131e48 cd131b00 cd3fbc7c cd3fbc60 c005fe68 c007a580
[    5.499856] bc60: 0000000b cd3fa000 cd131b00 00000000 cd3fbcb4 cd3fbc80 c0049ad8 c005fdd8
[    5.499863] bc80: cd3fa000 00000001 c07b9ff8 00000001 c083fe04 c0584f6a cd3fbcb4 cd3fbca8
[    5.499870] bca0: c0048084 c07b9ff8 cd3fbd3c cd3fbcb8 c0017f4c c0049484 cd3fa248 0000000b
[    5.499877] bcc0: 00000000 00000000 cd3fbe00 00000008 00000000 60000093 654be2f4 66666662
[    5.499884] bce0: 20376463 66666165 35626666 66626520 64636666 61652035 66666666 28203463
[    5.499892] bd00: 30663765 32663130 c0002029 c0016f68 c0016f8c 00030001 cd3fbe00 c0584f68
[    5.499899] bd20: cd3fa000 00000000 c058624c 60000093 cd3fbd4c cd3fbd40 c0018020 c0017c7c
[    5.499906] bd40: cd3fbdfc cd3fbd50 c0008588 c0018008 00000006 c0016f68 00000004 00000000
[    5.499913] bd60: 00030001 c0584f68 cd3fbda4 cd3fbd78 c0016fd0 c0017758 00000000 c0585b08
[    5.499921] bd80: cd3fbde4 cd3fbdd8 c05881bc c0585b08 c0881000 cd3fa000 cd3fbdbc cd3fbda8
[    5.499928] bda0: c0585394 c0588050 cd131b00 cd301da0 cd3fbdd4 cd3fbdc0 c05853e8 c058533c
[    5.499935] bdc0: 00000040 cd301d80 cd3fbde4 cd3fbdd8 c0585b08 c05853d4 c0584f6c 00000000
[    5.499942] bde0: c0586518 00000000 e7100000 cd3fa000 cd3fbee4 cd3fbe00 c058624c c0008420
[    5.499950] be00: 00000000 cd131b00 00000000 cd131b00 cd3fa000 cd31e4c0 cd131b00 cd3fa000
[    5.499957] be20: 00000001 c007a674 cd006b40 cd3fbee4 cd131b00 cd3fbe88 c0584d84 c0584f68
[    5.499964] be40: 60000013 ffffffff cd3fbef4 cd3fbee8 c05881bc c0585ae0 cd3fbe84 cd3fa000
[    5.499971] be60: cd3fbe84 cd3fbe70 c05881bc cd3fa000 cd31e4c0 cd131b00 cd3fbee4 cd3fbe88
[    5.499978] be80: c0584d84 c008cdd4 c0016f8c 00000000 00000001 cd3caa80 cd3fbed4 c05845ac
[    5.499986] bea0: c0016fd0 c0017758 00000000 c007a6ac cd3fbf2c 00000000 c05881bc c007a601
[    5.499993] bec0: fffb8077 cd31e4c0 cd006b40 cd3caa80 cd3fa000 00000001 cd3fbef4 cd3fbee8
[    5.500000] bee0: c0585ae0 c0584d30 cd3fbf0c cd3fbef8 c03f75b8 c0585adc cd3caa80 cd006b40
[    5.500007] bf00: cd3fbf2c cd3fbf10 c007a69c c03f75ac cd131b00 cd3caa80 00000000 cd3caa80
[    5.500015] bf20: cd3fbf64 cd3fbf30 c007a3ec c007a680 00000000 c007a574 00000000 cd087c3c
[    5.500022] bf40: 00000000 cd3caa80 c007a314 00000000 00000000 00000000 cd3fbfac cd3fbf68
[    5.500029] bf60: c0062f54 c007a320 cd3fbf94 00000000 c006c308 cd3caa80 00000000 cd3fbf7c
[    5.500036] bf80: cd3fbf7c 00000001 cd3fbf88 cd3fbf88 cd087c3c c0062eb0 00000000 00000000
[    5.500043] bfa0: 00000000 cd3fbfb0 c0014918 c0062ebc 00000000 00000000 00000000 00000000
[    5.500049] bfc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
[    5.500056] bfe0: 00000000 00000000 00000000 00000000 00000013 00000000 00000000 00000000
[    5.500059] Backtrace: 
[    5.500070] [<c0063298>] (kthread_data+0x0/0x18) from [<c007a5a4>] (irq_thread_dtor+0x30/0xc4)
[    5.500087] [<c007a574>] (irq_thread_dtor+0x0/0xc4) from [<c005fe68>] (task_work_run+0x9c/0xb0)
[    5.500092]  r5:cd131b00 r4:cd131e48
[    5.500109] [<c005fdcc>] (task_work_run+0x0/0xb0) from [<c0049ad8>] (do_exit+0x660/0x860)
[    5.500116]  r7:00000000 r6:cd131b00 r5:cd3fa000 r4:0000000b
[    5.500127] [<c0049478>] (do_exit+0x0/0x860) from [<c0017f4c>] (die+0x2dc/0x38c)
[    5.500130]  r7:c07b9ff8
[    5.500138] [<c0017c70>] (die+0x0/0x38c) from [<c0018020>] (arm_notify_die+0x24/0x5c)
[    5.500147] [<c0017ffc>] (arm_notify_die+0x0/0x5c) from [<c0008588>] (do_undefinstr+0x174/0x1a0)
[    5.500156] [<c0008414>] (do_undefinstr+0x0/0x1a0) from [<c058624c>] (__und_svc_finish+0x0/0x34)
[    5.500159] Exception stack(0xcd3fbe00 to 0xcd3fbe48)
[    5.500167] be00: 00000000 cd131b00 00000000 cd131b00 cd3fa000 cd31e4c0 cd131b00 cd3fa000
[    5.500174] be20: 00000001 c007a674 cd006b40 cd3fbee4 cd131b00 cd3fbe88 c0584d84 c0584f68
[    5.500177] be40: 60000013 ffffffff
[    5.500189] [<c0584d24>] (rt_spin_lock_slowlock+0x0/0x260) from [<c0585ae0>] (rt_spin_lock+0x10/0x14)
[    5.500199]  r8:00000001 r7:cd3fa000 r6:cd3caa80 r5:cd006b40 r4:cd31e4c0
[    5.500209] [<c0585ad0>] (rt_spin_lock+0x0/0x14) from [<c03f75b8>] (cpsw_interrupt+0x18/0xbc)
[    5.500218] [<c03f75a0>] (cpsw_interrupt+0x0/0xbc) from [<c007a69c>] (irq_forced_thread_fn+0x28/0x5c)
[    5.500223]  r5:cd006b40 r4:cd3caa80
[    5.500233] [<c007a674>] (irq_forced_thread_fn+0x0/0x5c) from [<c007a3ec>] (irq_thread+0xd8/0x12c)
[    5.500240]  r6:cd3caa80 r5:00000000 r4:cd3caa80 r3:cd131b00
[    5.500249] [<c007a314>] (irq_thread+0x0/0x12c) from [<c0062f54>] (kthread+0xa4/0xac)
[    5.500260] [<c0062eb0>] (kthread+0x0/0xac) from [<c0014918>] (ret_from_fork+0x14/0x3c)
[    5.500268]  r7:00000000 r6:00000000 r5:c0062eb0 r4:cd087c3c
[    5.500275] Code: e1a0c00d e92dd800 e24cb004 e590314c (e5130010) 

[root@inovance:/#]
[root@inovance:/#]
[root@inovance:/#]
[root@inovance:/#]
[root@inovance:/#]
[root@inovance:/#]
[root@inovance:/#]
[root@inovance:/#]

Question 2

In order to solve the problem of communication with devices that do not support VLAN,   modify a line of code in cpsw.c file, but this change creates other problems.

When the two network ports of eth0 and eth1 are directly connected to the switch, all devices on the switch are abnormally disconnected。

Change point of document

Note: if  do not modify cpsw.c, there will be no problem.

Question 3

In order to solve the problem of communication with devices that do not support VLAN,   modify a line of code in cpsw.c file, but this change creates other problems.

Telnet can be connected to am3352, but as long as the operation is stopped for a few minutes, the reoperation will be very stuck. Every time the board is powered on, the TCP connection takes a long time, which takes more than ten seconds.

Note: if  do not modify cpsw.c, there will be no problem.

  • Hi,

    Our Ethernet expert is out of office this week, please expect delay responses next week.

  • Hi,

    Thank you for the very detailed list of questions and data. Unfortunately the support window for this kernel passed a few years ago. Is it possible to upgrade to a newer kernel? I would highly recommend upgrading as there have been several changes to the cpsw driver that should fix the issues that you are reporting here.

    Best Regards,

    Schuyler

  • Mr. Schuyler Patton
    In the current project, the kernel version of 3.12.10 has been tested for several rounds and accepted by our customers. Upgrading the kernel version may solve this problem, but it means that the whole system will be retested, and the project schedule does not allow us to do so. If don't update the kernel, just update the driver of the network port to the latest version, is this method feasible? If feasible, please recommend the SDK version.
    Sincere thanks

  • Hi,

    If you want to remain on this kernel version you will need to go through the various cpsw.c found on git.ti.com to develop a patch set to apply to the 3.12 kernel you have. There have been several changes to the cpsw driver over the years and several bugs fixed. TI does not have an independent patch list of what to apply.

    This method is feasible but will require some effort which may be significant. Each commit in the git log explains it's purpose. The bug you are trying to fix may be described exactly.

    I can't recommend a specific version. I would recommend looking at all the cpsw changes between 3.12 and the current 5.4.  

    Best Regards,

    Schuyler

  • Hello, Mr. Schuyler Patton

    After comparing the differences between 3.12.10 and 5.4.106, it is found that the driver of the network port has made a lot of changes in the past 9 years, and the data structure of the kernel has changed a lot. This means that transplanting eth driver requires a lot of kernel code changes, which will be very energy-consuming and not necessarily reliable. Therefore, the project team decided to update the kernel to version 5.4.106.

    An additional question 

    In order to verify the problem as soon as possible, we want to use uboot of version 3.12.10 and kernel of version 5.4.106. Is this scheme feasible?