Part Number: AM4376
On our TI-AM437x platform, the network bridge (br0) setup causes a system crash. The device completely hangs the moment we create the bridge over the PRU interfaces. Please advise on how to resolve this lockup issue."
[ 158.373568] prueth pruss1-eth eth0: entered promiscuous mode
root@am437x-evm:~# ifconfig eth1 0.0.0.0 promisc up
[ 163.628779] prueth pruss1-eth eth1: entered promiscuous mode
root@am437x-evm:~# brctl addbr br0
root@am437x-evm:~# brctl addif br0 eth0
[ 173.989453] br0: port 1(eth0) entered blocking state
[ 173.994546] br0: port 1(eth0) entered disabled state
[ 173.999694] prueth pruss1-eth eth0: entered allmulticast mode
root@am437x-evm:~# brctl addif br0 eth1
[ 179.177445] br0: port 2(eth1) entered blocking state
[ 179.182511] br0: port 2(eth1) entered disabled state
[ 179.187660] prueth pruss1-eth eth1: entered allmulticast mode
[ 179.193991] prueth pruss1-eth eth0: Link is Down
[ 179.209593] remoteproc remoteproc1: stopped remote processor 54434000.pru
[ 179.219003] remoteproc remoteproc2: stopped remote processor 54438000.pru
[ 179.234000] remoteproc remoteproc1: powering up 54434000.pru
[ 179.240015] remoteproc remoteproc1: Direct firmware load for ti-pruss/am437x-pru0-prusw-fw.elf failed with error -2
[ 179.250629] remoteproc remoteproc1: request_firmware failed: -2
[ 179.256680] prueth pruss1-eth eth0: failed to boot PRU: -2
[ 179.308650] prueth pruss1-eth eth0: failed to start: -2
root@am437x-evm:~# ^C
root@am437x-evm:~# dmesg | grep pru
[ 71.213282] mdio_bus 54432400.mdio: using DT '/ocp@44000000/target-module@54400000/pruss@0/mdio@32400' for 'reset' GPIO lookup
[ 71.213418] of_get_named_gpiod_flags: can't parse 'reset-gpios' property of node '/ocp@44000000/target-module@54400000/pruss@0/mdio@32400[0]'
[ 71.213507] of_get_named_gpiod_flags: can't parse 'reset-gpio' property of node '/ocp@44000000/target-module@54400000/pruss@0/mdio@32400[0]'
[ 71.511373] mdio_bus 54432400.mdio:00: using DT '/ocp@44000000/target-module@54400000/pruss@0/mdio@32400/ethernet-phy@0' for 'reset' GPIO lookup
[ 71.511531] of_get_named_gpiod_flags: parsed 'reset-gpios' property of node '/ocp@44000000/target-module@54400000/pruss@0/mdio@32400/ethernet-phy@0[0]' - status (0)
[ 71.616623] mdio_bus 54432400.mdio:01: using DT '/ocp@44000000/target-module@54400000/pruss@0/mdio@32400/ethernet-phy@1' for 'reset' GPIO lookup
[ 71.616783] of_get_named_gpiod_flags: parsed 'reset-gpios' property of node '/ocp@44000000/target-module@54400000/pruss@0/mdio@32400/ethernet-phy@1[0]' - status (0)
[ 72.024792] remoteproc remoteproc1: 54434000.pru is available
[ 72.031733] remoteproc remoteproc2: 54438000.pru is available
[ 72.038525] remoteproc remoteproc3: 54474000.pru is available
[ 72.045103] remoteproc remoteproc4: 54478000.pru is available
[ 72.934663] prueth pruss1-eth: could not get ptp tx irq. Skipping PTP support
[ 72.942002] prueth pruss1-eth: could not get ptp tx irq. Skipping PTP support
[ 72.970573] prueth pruss1-eth: could not get ptp tx irq. Skipping PTP support
[ 72.977880] prueth pruss1-eth: could not get ptp tx irq. Skipping PTP support
[ 72.985346] prueth pruss1-eth: port 2: using random MAC addr: d6:49:65:7e:aa:a8
[ 73.027759] prueth pruss1-eth: TI PRU ethernet driver initialized: dual EMAC mode
[ 74.675513] remoteproc remoteproc2: powering up 54438000.pru
[ 74.721203] remoteproc remoteproc2: Booting fw image ti-pruss/am437x-pru1-prueth-fw.elf, size 6872
[ 74.736315] remoteproc remoteproc2: remote processor 54438000.pru is now up
[ 74.841888] remoteproc remoteproc1: powering up 54434000.pru
[ 74.863317] remoteproc remoteproc1: Booting fw image ti-pruss/am437x-pru0-prueth-fw.elf, size 7048
[ 74.878357] remoteproc remoteproc1: remote processor 54434000.pru is now up
[ 75.919218] prueth pruss1-eth eth0: Link is Up - 100Mbps/Full - flow control off
[ 158.373568] prueth pruss1-eth eth0: entered promiscuous mode
[ 163.628779] prueth pruss1-eth eth1: entered promiscuous mode
[ 173.999694] prueth pruss1-eth eth0: entered allmulticast mode
[ 179.187660] prueth pruss1-eth eth1: entered allmulticast mode
[ 179.193991] prueth pruss1-eth eth0: Link is Down
[ 179.209593] remoteproc remoteproc1: stopped remote processor 54434000.pru
[ 179.219003] remoteproc remoteproc2: stopped remote processor 54438000.pru
[ 179.234000] remoteproc remoteproc1: powering up 54434000.pru
[ 179.240015] remoteproc remoteproc1: Direct firmware load for ti-pruss/am437x-pru0-prusw-fw.elf failed with error -2
[ 179.256680] prueth pruss1-eth eth0: failed to boot PRU: -2
[ 179.308650] prueth pruss1-eth eth0: failed to start: -2
root@am437x-evm:~# cd /lib/firmware/
root@am437x-evm:/lib/firmware# ls
am335x-bone-scale-data.bin am335x-evm-scale-data.bin am335x-pm-firmware.elf am43x-evm-scale-data.bin ti-pruss
root@am437x-evm:/lib/firmware# cd ti-pruss/
root@am437x-evm:/lib/firmware/ti-pruss# ls
am335x-pru0-prueth-fw.elf am437x-pru1-pruprp-fw.elf am64x-sr2-pru1-pruhsr-fw.elf am64x-sr2-txpru1-prueth-fw.elf am65x-sr2-rtu0-prueth-fw.elf
am335x-pru0-pruhsr-fw.elf am57xx-pru0-prueth-fw.elf am64x-sr2-pru1-pruprp-fw.elf am64x-sr2-txpru1-pruhsr-fw.elf am65x-sr2-rtu0-pruhsr-fw.elf
am335x-pru0-pruprp-fw.elf am57xx-pru0-pruhsr-fw.elf am64x-sr2-rtu0-prueth-fw.elf am64x-sr2-txpru1-pruprp-fw.elf am65x-sr2-rtu1-prueth-fw.elf
am335x-pru1-prueth-fw.elf am57xx-pru0-pruprp-fw.elf am64x-sr2-rtu0-pruhsr-fw.elf am65x-pru0-prueth-fw.elf am65x-sr2-rtu1-pruhsr-fw.elf
am335x-pru1-pruhsr-fw.elf am57xx-pru1-prueth-fw.elf am64x-sr2-rtu0-pruprp-fw.elf am65x-pru1-prueth-fw.elf am65x-sr2-txpru0-prueth-fw.elf
am335x-pru1-pruprp-fw.elf am57xx-pru1-pruhsr-fw.elf am64x-sr2-rtu1-prueth-fw.elf am65x-rtu0-prueth-fw.elf am65x-sr2-txpru0-pruhsr-fw.elf
am437x-pru0-prueth-fw.elf am57xx-pru1-pruprp-fw.elf am64x-sr2-rtu1-pruhsr-fw.elf am65x-rtu1-prueth-fw.elf am65x-sr2-txpru1-prueth-fw.elf
am437x-pru0-pruhsr-fw.elf am64x-sr2-pru0-prueth-fw.elf am64x-sr2-rtu1-pruprp-fw.elf am65x-sr2-pru0-prueth-fw.elf am65x-sr2-txpru1-pruhsr-fw.elf
am437x-pru0-pruprp-fw.elf am64x-sr2-pru0-pruhsr-fw.elf am64x-sr2-txpru0-prueth-fw.elf am65x-sr2-pru0-pruhsr-fw.elf
am437x-pru1-prueth-fw.elf am64x-sr2-pru0-pruprp-fw.elf am64x-sr2-txpru0-pruhsr-fw.elf am65x-sr2-pru1-prueth-fw.elf
am437x-pru1-pruhsr-fw.elf am64x-sr2-pru1-prueth-fw.elf am64x-sr2-txpru0-pruprp-fw.elf am65x-sr2-pru1-pruhsr-fw.elf
root@am437x-evm:/lib/firmware/ti-pruss# cd ..
root@am437x-evm:/lib/firmware# cd ..
root@am437x-evm:/lib# cd modules
root@am437x-evm:/lib/modules# ls
6.12.49
root@am437x-evm:/lib/modules# cd 6.12.49/
root@am437x-evm:/lib/modules/6.12.49# ls
build modules.alias modules.builtin modules.builtin.modinfo modules.dep.bin modules.order modules.symbols
kernel modules.alias.bin modules.builtin.bin modules.dep modules.devname modules.softdep modules.symbols.bin
root@am437x-evm:/lib/modules/6.12.49# cd build
-sh: cd: build: No such file or directory
root@am437x-evm:/lib/modules/6.12.49# l
-sh: l: command not found
root@am437x-evm:/lib/modules/6.12.49#
root@am437x-evm:/lib/modules/6.12.49# cd /lib/firmware/
root@am437x-evm:/lib/firmware# cp am437x-pru0-prueth-fw.elf am437x-pru0-prusw-fwf
cp: can't stat 'am437x-pru0-prueth-fw.elf': No such file or directory
root@am437x-evm:/lib/firmware# dmesg | grep pru
[ 71.213282] mdio_bus 54432400.mdio: using DT '/ocp@44000000/target-module@54400000/pruss@0/mdio@32400' for 'reset' GPIO lookup
[ 71.213418] of_get_named_gpiod_flags: can't parse 'reset-gpios' property of node '/ocp@44000000/target-module@54400000/pruss@0/mdio@32400[0]'
[ 71.213507] of_get_named_gpiod_flags: can't parse 'reset-gpio' property of node '/ocp@44000000/target-module@54400000/pruss@0/mdio@32400[0]'
[ 71.511373] mdio_bus 54432400.mdio:00: using DT '/ocp@44000000/target-module@54400000/pruss@0/mdio@32400/ethernet-phy@0' for 'reset' GPIO lookup
[ 71.511531] of_get_named_gpiod_flags: parsed 'reset-gpios' property of node '/ocp@44000000/target-module@54400000/pruss@0/mdio@32400/ethernet-phy@0[0]' - status (0)
[ 71.616623] mdio_bus 54432400.mdio:01: using DT '/ocp@44000000/target-module@54400000/pruss@0/mdio@32400/ethernet-phy@1' for 'reset' GPIO lookup
[ 71.616783] of_get_named_gpiod_flags: parsed 'reset-gpios' property of node '/ocp@44000000/target-module@54400000/pruss@0/mdio@32400/ethernet-phy@1[0]' - status (0)
[ 72.024792] remoteproc remoteproc1: 54434000.pru is available
[ 72.031733] remoteproc remoteproc2: 54438000.pru is available
[ 72.038525] remoteproc remoteproc3: 54474000.pru is available
[ 72.045103] remoteproc remoteproc4: 54478000.pru is available
[ 72.934663] prueth pruss1-eth: could not get ptp tx irq. Skipping PTP support
[ 72.942002] prueth pruss1-eth: could not get ptp tx irq. Skipping PTP support
[ 72.970573] prueth pruss1-eth: could not get ptp tx irq. Skipping PTP support
[ 72.977880] prueth pruss1-eth: could not get ptp tx irq. Skipping PTP support
[ 72.985346] prueth pruss1-eth: port 2: using random MAC addr: d6:49:65:7e:aa:a8
[ 73.027759] prueth pruss1-eth: TI PRU ethernet driver initialized: dual EMAC mode
[ 74.675513] remoteproc remoteproc2: powering up 54438000.pru
[ 74.721203] remoteproc remoteproc2: Booting fw image ti-pruss/am437x-pru1-prueth-fw.elf, size 6872
[ 74.736315] remoteproc remoteproc2: remote processor 54438000.pru is now up
[ 74.841888] remoteproc remoteproc1: powering up 54434000.pru
[ 74.863317] remoteproc remoteproc1: Booting fw image ti-pruss/am437x-pru0-prueth-fw.elf, size 7048
[ 74.878357] remoteproc remoteproc1: remote processor 54434000.pru is now up
[ 75.919218] prueth pruss1-eth eth0: Link is Up - 100Mbps/Full - flow control off
[ 158.373568] prueth pruss1-eth eth0: entered promiscuous mode
[ 163.628779] prueth pruss1-eth eth1: entered promiscuous mode
[ 173.999694] prueth pruss1-eth eth0: entered allmulticast mode
[ 179.187660] prueth pruss1-eth eth1: entered allmulticast mode
[ 179.193991] prueth pruss1-eth eth0: Link is Down
[ 179.209593] remoteproc remoteproc1: stopped remote processor 54434000.pru
[ 179.219003] remoteproc remoteproc2: stopped remote processor 54438000.pru
[ 179.234000] remoteproc remoteproc1: powering up 54434000.pru
[ 179.240015] remoteproc remoteproc1: Direct firmware load for ti-pruss/am437x-pru0-prusw-fw.elf failed with error -2
[ 179.256680] prueth pruss1-eth eth0: failed to boot PRU: -2
[ 179.308650] prueth pruss1-eth eth0: failed to start: -2
root@am437x-evm:/lib/firmware# ^C
root@am437x-evm:/lib/firmware#