Hi,
I am trying to run single emac mode on my TMDSIDK437X board but the PRU ethernet kernel driver (ti-prueth.ko) crashes when loaded.
I am using:
ti-processor-sdk-linux-rt-am437x-evm-06.01.00.08
Single emac configuration is based on example found in:
Documentation/devicetree/bindings/net/ti-prueth.txt
relevant parts of device tree:
aliases { /* ethernet2 = &pruss1_emac0; */ ethernet3 = &pruss1_emac1; }; /* Single-MAC Ethernet application node on PRU-ICSS1 */ pruss1_eth: pruss1_eth { compatible = "ti,am4376-prueth"; prus = <&pru1_0>, <&pru1_1>; firmware-name = "", "ti-pruss/am437x-pru1-prueth-fw.elf"; sram = <&ocmcram>; interrupt-parent = <&pruss1_intc>; mii-rt = <&pruss1_mii_rt>; pinctrl-0 = <&pruss1_eth_default>; pinctrl-names = "default"; interrupts = <20>, <21>; interrupt-names = "rx_red_hp", "rx_red_lp"; pruss1_emac1: ethernet-mii1 { phy-handle = <&pruss1_eth1_phy>; phy-mode = "mii"; interrupts = <21>, <23>, <24>, <27>; interrupt-names = "rx", "tx", "hsrprp_ptp_tx", "emac_ptp_tx"; /* Filled in by bootloader */ local-mac-address = [00 00 00 00 00 00]; }; };
crash dump:
am437x-evm login: root root@am437x-evm:~# uname -r 4.19.59-rt24-g4203cb8c96 root@am437x-evm:~# modprobe ti_prueth [ 98.708136] prueth pruss1_eth: port 2: using random MAC addr: 9e:d6:47:8d:ce:b0 [ 98.817469] prueth pruss1_eth: pruss_fw_drop_untagged_vlan 0 [ 98.823174] prueth pruss1_eth: pruss MC Mask (Port 1) ff:ff:ff:ff:ff:ff [ 98.840233] prueth pruss1_eth: TI PRU ethernet (type 0) driver initialized root@am437x-evm:~# [ 98.978590] iep ptp bc clkid -1 [ 98.981824] Unable to handle kernel NULL pointer dereference at virtual address 000000f0 [ 99.016953] pgd = 30aa048a [ 99.019680] [000000f0] *pgd=00000000 [ 99.023279] Internal error: Oops: 805 [#1] PREEMPT ARM [ 99.023283] Modules linked in: ti_prueth pru_rproc irq_pruss_intc pruss pm33xx pvrsrvkm(O) omap_des des_generic omap_aes_driver pruss_soc_bus crypto_engine omap_crypto omap_sham ti_emif_sram dwc3_omap gpio_pisosr gpio_tpic2810 at24 wk) [ 99.023356] CPU: 0 PID: 129 Comm: systemd-network Tainted: G O 4.19.59-rt24-g4203cb8c96 #1 [ 99.023360] Hardware name: Generic AM43 (Flattened Device Tree) [ 99.023389] PC is at memcpy+0x270/0x330 [ 99.023393] LR is at (null) [ 99.023397] pc : [<c08b4210>] lr : [<00000000>] psr: 60060013 [ 99.023401] sp : ee7d3a7c ip : 00000000 fp : ee7d3aec [ 99.023404] r10: 00000002 r9 : ecdbe000 r8 : 00000000 [ 99.023408] r7 : bf24d234 r6 : edd3ca62 r5 : edd3c840 r4 : edd3c840 [ 99.023412] r3 : 00000000 r2 : ffffffe4 r1 : edd3ca68 r0 : 000000f0 [ 99.023418] Flags: nZCv IRQs on FIQs on Mode SVC_32 ISA ARM Segment none [ 99.023422] Control: 10c53c7d Table: ae7e4059 DAC: 00000051 [ 99.023428] Process systemd-network (pid: 129, stack limit = 0x3d3b4840) [ 99.023432] Stack: (0xee7d3a7c to 0xee7d4000) [ 99.023437] 3a60: 000000f0 [ 99.023444] 3a80: edd3c840 bf245f28 00000000 00000000 00000000 ee7d3afc bf24bb28 c0d05888 [ 99.023452] 3aa0: 00001002 edc86810 00000000 00000000 edd3c9a6 edd3ca70 40302000 ecdbe540 [ 99.023459] 3ac0: ee7d3aec ecdbe000 c0d05888 bf24bb28 c0d05888 00001002 edc86810 00000000 [ 99.023466] 3ae0: ee7d3b24 ee7d3af0 c077e5a0 bf244978 ee7d3b0c ee7d3b00 c012fd98 ecdbe000 [ 99.023473] 3b00: 00000000 ef5dfce0 c077e4b8 ecdbe000 00000001 00001003 ee7d3b64 ee7d3b28 [ 99.023480] 3b20: c077e998 c077e4c8 00000000 00000000 00000000 00000000 00000000 ef5dfce0 [ 99.023487] 3b40: ecdbe000 00001002 00000000 ecdbe144 ee7d3cfc edc86810 ee7d3b8c ee7d3b68 [ 99.023494] 3b60: c077ea18 c077e838 ecdbe000 c0d05888 ee7d3c2c ee7bb480 ee7d3cfc edc86810 [ 99.023501] 3b80: ee7d3c14 ee7d3b90 c0794eac c077ea04 ede7dc00 c0d05888 ee7d3d9c bf24bb28 [ 99.023508] 3ba0: ee7d3c0c ee7d3bb0 c08caaec c0150574 c0152318 c0157f94 ede7dc00 c0d05888 [ 99.023515] 3bc0: ee7d3c0c 00000010 00000033 edc86828 ee7d3c2c 0000001a 00000000 edc86800 [ 99.023522] 3be0: ee7d3c14 ef5dfce0 c04289d4 c0d05888 edc86800 ee7d3d9c ee7bb480 c0d49138 [ 99.023529] 3c00: edc86810 edc86800 ee7d3d34 ee7d3c18 c07956e8 c0794bbc ee7d3c2c ee7d3cfc [ 99.023536] 3c20: 00000000 ee7d3c30 c0223bc0 00000000 00000000 00000000 00000000 00000000 [ 99.023543] 3c40: 00000000 00000000 00000000 00000000 00000000 edc86820 00000000 00000000 [ 99.023549] 3c60: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 [ 99.023556] 3c80: 00000000 00000000 00000000 00000000 00000000 edc86828 00000000 00000000 [ 99.023562] 3ca0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 [ 99.023568] 3cc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 [ 99.023575] 3ce0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 c0134800 [ 99.023582] 3d00: ee7d3d24 ee7d3d10 c07ba194 ef5dfce0 c07955f4 c0d05888 c0d8de58 ee7bb480 [ 99.023589] 3d20: 00000000 00000000 ee7d3d94 ee7d3d38 c0791690 c0795600 c07809cc c0d8de44 [ 99.023596] 3d40: c0d8de44 ee7d3d9c c0d05888 c0b4444c c013492c ee7d3d54 ee7d3d54 ee1220f4 [ 99.023604] 3d60: ee1220f4 ef5dfce0 c0d05888 ee7bb480 c0d05888 c0791554 edc86800 00000038 [ 99.023611] 3d80: c0d05888 00000000 ee7d3de4 ee7d3d98 c07be39c c0791560 edc97300 00000000 [ 99.023617] 3da0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ef5dfce0 [ 99.023624] 3dc0: ef159c00 ef159c00 ee69ec00 00000038 ee7bb480 00000000 ee7d3df4 ee7d3de8 [ 99.023631] 3de0: c0791550 c07be2e8 ee7d3e24 ee7d3df8 c07bdafc c0791544 7fffffff ef5dfce0 [ 99.023638] 3e00: 00000008 ee7d3eb4 c0d05888 ee69ec00 ee7bb480 006000c0 ee7d3e84 ee7d3e28 [ 99.023645] 3e20: c07bddf4 c07bd974 c08cecb4 c014f684 ee7d3e54 ee7d3e40 00000000 00000038 [ 99.023652] 3e40: eeb6eb00 00000000 00000081 000003e1 000003de ef5dfce0 00000051 00000000 [ 99.023660] 3e60: c0d05888 eee15a00 00000000 bee1695c ee7d2000 00000122 ee7d3e94 ee7d3e88 [ 99.023667] 3e80: c075b4ac c07bdc4c ee7d3f8c ee7d3e98 c075c66c c075b49c ee7d3ebc c014f684 [ 99.023674] 3ea0: ee7d3ecc 00000000 00000000 005427c0 00000038 ee7d3ee4 00000010 00000001 [ 99.023680] 3ec0: 00000000 00000000 ee7d3eb4 00000000 ee7d3f0c 00000000 00000000 00000000 [ 99.023687] 3ee0: ee7d3f0c 00000010 00000000 00000000 00000000 ee359418 ee7d3f64 ee7d3f08 [ 99.023694] 3f00: c01899bc c011a20c 00000062 00000000 a6aaaaab 00000000 03380185 00000000 [ 99.023701] 3f20: 00000000 35c7811e a254cbc7 00000051 00000000 00000107 c0101204 bee16984 [ 99.023708] 3f40: 00000008 00000000 c0d05888 c0184680 ee7d2000 00000062 38ff82a3 ef5dfce0 [ 99.023715] 3f60: c0d05888 ef5dfce0 ee7d3fa4 bee1695c 00000010 0052e5c8 00000122 c0101204 [ 99.023722] 3f80: ee7d3fa4 ee7d3f90 c075c6d0 c075c5ac bee1695c 00000010 00000000 ee7d3fa8 [ 99.023729] 3fa0: c0101000 c075c6b8 bee1695c 00000010 00000003 005427c0 00000038 00000000 [ 99.023736] 3fc0: bee1695c 00000010 0052e5c8 00000122 004de215 00540fd0 00000000 00542800 [ 99.023743] 3fe0: 00000000 bee16938 b6ec759d b6dd3168 60000010 00000003 00000000 00000000 [ 99.023745] Backtrace: [ 99.023876] [<bf24496c>] (emac_ndo_open [ti_prueth]) from [<c077e5a0>] (__dev_open+0xe4/0x168) [ 99.023886] r10:00000000 r9:edc86810 r8:00001002 r7:c0d05888 r6:bf24bb28 r5:c0d05888 [ 99.023889] r4:ecdbe000 [ 99.023899] [<c077e4bc>] (__dev_open) from [<c077e998>] (__dev_change_flags+0x16c/0x1cc) [ 99.023905] r6:00001003 r5:00000001 r4:ecdbe000 [ 99.023913] [<c077e82c>] (__dev_change_flags) from [<c077ea18>] (dev_change_flags+0x20/0x50) [ 99.023920] r9:edc86810 r8:ee7d3cfc r7:ecdbe144 r6:00000000 r5:00001002 r4:ecdbe000 [ 99.023939] [<c077e9f8>] (dev_change_flags) from [<c0794eac>] (do_setlink+0x2fc/0xa44) [ 99.023946] r9:edc86810 r8:ee7d3cfc r7:ee7bb480 r6:ee7d3c2c r5:c0d05888 r4:ecdbe000 [ 99.023955] [<c0794bb0>] (do_setlink) from [<c07956e8>] (rtnl_setlink+0xf4/0x140) [ 99.023962] r10:edc86800 r9:edc86810 r8:c0d49138 r7:ee7bb480 r6:ee7d3d9c r5:edc86800 [ 99.023964] r4:c0d05888 [ 99.023974] [<c07955f4>] (rtnl_setlink) from [<c0791690>] (rtnetlink_rcv_msg+0x13c/0x308) [ 99.023981] r9:00000000 r8:00000000 r7:ee7bb480 r6:c0d8de58 r5:c0d05888 r4:c07955f4 [ 99.023998] [<c0791554>] (rtnetlink_rcv_msg) from [<c07be39c>] (netlink_rcv_skb+0xc0/0x118) [ 99.024005] r10:00000000 r9:c0d05888 r8:00000038 r7:edc86800 r6:c0791554 r5:c0d05888 [ 99.024008] r4:ee7bb480 [ 99.024016] [<c07be2dc>] (netlink_rcv_skb) from [<c0791550>] (rtnetlink_rcv+0x18/0x1c) [ 99.024023] r8:00000000 r7:ee7bb480 r6:00000038 r5:ee69ec00 r4:ef159c00 [ 99.024031] [<c0791538>] (rtnetlink_rcv) from [<c07bdafc>] (netlink_unicast+0x194/0x210) [ 99.024039] [<c07bd968>] (netlink_unicast) from [<c07bddf4>] (netlink_sendmsg+0x1b4/0x3a0) [ 99.024046] r9:006000c0 r8:ee7bb480 r7:ee69ec00 r6:c0d05888 r5:ee7d3eb4 r4:00000008 [ 99.024058] [<c07bdc40>] (netlink_sendmsg) from [<c075b4ac>] (sock_sendmsg+0x1c/0x2c) [ 99.024065] r10:00000122 r9:ee7d2000 r8:bee1695c r7:00000000 r6:eee15a00 r5:c0d05888 [ 99.024067] r4:00000000 [ 99.024077] [<c075b490>] (sock_sendmsg) from [<c075c66c>] (__sys_sendto+0xcc/0x10c) [ 99.024084] [<c075c5a0>] (__sys_sendto) from [<c075c6d0>] (sys_sendto+0x24/0x2c) [ 99.024091] r8:c0101204 r7:00000122 r6:0052e5c8 r5:00000010 r4:bee1695c [ 99.024102] [<c075c6ac>] (sys_sendto) from [<c0101000>] (ret_fast_syscall+0x0/0x5c) [ 99.024106] Exception stack(0xee7d3fa8 to 0xee7d3ff0) [ 99.024112] 3fa0: bee1695c 00000010 00000003 005427c0 00000038 00000000 [ 99.024119] 3fc0: bee1695c 00000010 0052e5c8 00000122 004de215 00540fd0 00000000 00542800 [ 99.024124] 3fe0: 00000000 bee16938 b6ec759d b6dd3168 [ 99.024131] Code: e1a0382e e491e004 e25cc004 e183380e (e4803004) [ 99.773427] ---[ end trace 0000000000000002 ]---
As a side note. This configuration works when running kernel version 4.14. There seems to be a lot of changes between the 4.14 and 4.19 version of the PRU ethernet driver.
Any Ideas?