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.

Linux/BEAGLEBK: Ethernet connection is lost on Beaglebone Black if PRU Cape is used

Part Number: BEAGLEBK


Tool/software: Linux

Hi,

My objective is to have both: being able to use the PRU Cape and have access through the SSH to the BBB.

First I tried to add the Ethernet connection to the Linux distribution from the TI SDK SD Card image. With BBB booted using TI Linux SDK image, the Ethernet over USB connection works with Linux host machine (it appears as Linux Foundation BeagleBoneBlack) but it does not work with Windows.

I edited the /etc/network/interfaces and added two last lines to make the configuration the same as the configuration in the Beagleboard image:

   address 192.168.7.2

   netmask 255.255.255.252 # Only these two first lines are present on the TI SDK SD card image

   network 192.168.7.0

   gateway 192.168.7.1

But it did not help.

I also tried with USB/Ethernet adapter on the Windows host with this configuration on the BBB:

auto eth0

iface eth0 inet static

       address 192.168.8.2

       netmask 255.255.255.0

       gateway 192.168.8.1

But it did not work either (it did with Beagleboard distribution without the PRU Cape).

Then I thought it will be easier to add PRU support to the Beagleboard image. I made the following steps:

  1. Burned an SD card with the latest bone-debian-8.6-lxqt-4gb-armhf-2016-11-06-4gb.img.xz image.
  2. Created the following directories on the BBB:
    1. /lib/firmware/pru
  3. Copied the following files to the following directories on the BBB:
    1. am335x-boneblack-prucape.dtb (obtained as explained in processors.wiki.ti.com/.../PRU_Training:_Hands-on_Labs) to /boot/dtbs/4.4.30-ti-r64/
    2. PRU_RPMsg_Echo_Interrupt0 (from the TI SDK SD Card image) to /lib/firmware/pru
    3. PRU_RPMsg_Echo_Interrupt1 (from the TI SDK SD Card image) to /lib/firmware/pru

  4. Created the symbolic links:
    1. in the /boot/dtbs/4.4.30-ti-r64/ directory:
      1. am335x-boneblack.dtb --> am335x-boneblack-prucape
    2. in the /firmware directory:
      1. am335x-pru0-fw --> /lib/firmware/pru/PRU_RPMsg_Echo_Interrupt0
      2. am335x-pru1-fw --> /lib/firmware/pru/PRU_RPMsg_Echo_Interrupt1
  5. Loaded the following kernel modules in this order:
    1. insmmod /lib/modules/4.4.30-ti-r64/kernel/drivers/remoteproc/pruss.ko
    2. insmod /lib/modules/4.4.30-ti-r64/kernel/drivers/remoteproc/pruss_intc.ko
    3. insmod /lib/modules/4.4.30-ti-r64/kernel/drivers/remoteproc/pru_rproc.ko

For completeness: at this point I can not see /dev/rpmsg_pru30 and /dev/rpmsg_pru31 devices. I need  unload and load again the pru_rproc.ko module again. The same happens after reboot. During the boot the following message appears:

Starting kernel ...

 

[   0.000940] clocksource_probe: no matching clocksources found

[   2.064347] wkup_m3_ipc 44e11324.wkup_m3_ipc: could not get rproc handle

[   2.250969] omap_voltage_late_init: Voltage driver support not added

[   2.261486] PM: Cannot get wkup_m3_ipc handle

Loading, please wait...

[   4.648481] remoteproc1: failed to load am335x-pru0-fw

[   4.686807] remoteproc1: request_firmware failed: -2

[   4.692024] pru-rproc 4a334000.pru0: rproc_boot failed

[   4.828866] remoteproc1: failed to load am335x-pru1-fw

[   4.846833] remoteproc1: request_firmware failed: -2

[   4.852056] pru-rproc 4a338000.pru1: rproc_boot failed

After unloading and reloading the pru_rproc.ko I am able to run the examples from TI PRU Hands-on lab and my own PRU code which is loaded from the ARM and communicate between the ARM and both PRUs.

As long as the PRU Cape is not inserted the Ethernet over USB connection works OK.

When I insert the PRU Cape and boot the board, the Ethernet over USB does not work.

Please let me know how I can work with the PRU Cape and still have Ethernet connection.

Best regards,

Adam