Hello, I'm trying to load and start pru firmware at boot time. I see that the images are loaded, but the execution doen't start:
root@beaglebone:~# dmesg | grep pru [ 3.620397] ti-pruss 4a300000.pruss: creating PRU cores and other child platform devices [ 3.620598] irq: no irq domain found for /ocp/pruss@4a300000/intc@4a320000 ! [ 3.633760] irq: no irq domain found for /ocp/pruss@4a300000/intc@4a320000 ! [ 3.671299] remoteproc1: 4a338000.pru1 is available [ 3.681586] pru-rproc 4a338000.pru1: booting the PRU core manually [ 3.681620] remoteproc1: powering up 4a338000.pru1 [ 3.681935] remoteproc1: Booting fw image am335x-pru1-fw, size 35392 [ 3.682009] remoteproc1: remote processor 4a338000.pru1 is now up [ 3.682052] pru-rproc 4a338000.pru1: PRU rproc node /ocp/pruss@4a300000/pru1@4a338000 probed successfully [ 3.690194] remoteproc2: 4a334000.pru0 is available [ 3.696169] pru-rproc 4a334000.pru0: booting the PRU core manually [ 3.696201] remoteproc2: powering up 4a334000.pru0 [ 3.696513] remoteproc2: Booting fw image am335x-pru0-fw, size 36296 [ 3.696585] remoteproc2: remote processor 4a334000.pru0 is now up [ 3.696621] pru-rproc 4a334000.pru0: PRU rproc node /ocp/pruss@4a300000/pru0@4a334000 probed successfully root@beaglebone:~# I have to manualy do: root@beaglebone:~# rmmod -f pru-rproc root@beaglebone:~# modprobe pru-rproc After doing so the pru's are executing as expected.... Is there a way so that the firmware starts automatic each boot time? my environment: root@beaglebone:~# uname -a Linux beaglebone 4.4.91-ti-r133 #1 SMP Tue Oct 10 05:18:08 UTC 2017 armv7l GNU/Linux root@beaglebone:~# cat /boot/uEnv.txt #Docs: http://elinux.org/Beagleboard:U-boot_partitioning_layout_2.0 uname_r=4.4.91-ti-r133 #uuid= #dtb= ###U-Boot Overlays### ###Documentation: http://elinux.org/Beagleboard:BeagleBoneBlack_Debian#U-Boot_Overlays ###Master Enable enable_uboot_overlays=1 ### ###Overide capes with eeprom #uboot_overlay_addr0=/lib/firmware/<file0>.dtbo #uboot_overlay_addr1=/lib/firmware/<file1>.dtbo #uboot_overlay_addr2=/lib/firmware/<file2>.dtbo #uboot_overlay_addr3=/lib/firmware/<file3>.dtbo ### ###Additional custom capes uboot_overlay_addr4=/lib/firmware/BB-UART1-00A0.dtbo uboot_overlay_addr5=/lib/firmware/BB-I2C1-00A0.dtbo uboot_overlay_addr6=/lib/firmware/BB-I2C2-00A0.dtbo uboot_overlay_addr7=/lib/firmware/DCC_V3-00A0.dtbo ### ###Custom Cape #dtb_overlay=/lib/firmware/<file8>.dtbo ### ###Disable auto loading of virtual capes (emmc/video/wireless/adc) disable_uboot_overlay_emmc=1 disable_uboot_overlay_video=1 disable_uboot_overlay_audio=1 disable_uboot_overlay_wireless=1 #disable_uboot_overlay_adc=1 ### ###PRUSS OPTIONS ###pru_rproc (4.4.x-ti kernel) uboot_overlay_pru=/lib/firmware/AM335X-PRU-RPROC-4-4-TI-00A0.dtbo ###pru_uio (4.4.x-ti & mainline/bone kernel) #uboot_overlay_pru=/lib/firmware/AM335X-PRU-UIO-00A0.dtbo ### ###Cape Universal Enable enable_uboot_cape_universal=1 ### ###Debug: disable uboot autoload of Cape #disable_uboot_overlay_addr0=1 #disable_uboot_overlay_addr1=1 #disable_uboot_overlay_addr2=1 #disable_uboot_overlay_addr3=1 ### ###U-Boot fdt tweaks... #uboot_fdt_buffer=0x60000 ###U-Boot Overlays### cmdline=coherent_pool=1M net.ifnames=0 quiet #In the event of edid real failures, uncomment this next line: #cmdline=coherent_pool=1M net.ifnames=0 quiet video=HDMI-A-1:1024x768@60e ##Example v3.8.x #cape_disable=capemgr.disable_partno= #cape_enable=capemgr.enable_partno= ##Example v4.1.x #cape_disable=bone_capemgr.disable_partno= cape_enable=bone_capemgr.enable_partno=BB-UART1,BB-I2C1,BB-I2C2 ##enable Generic eMMC Flasher: ##make sure, these tools are installed: dosfstools rsync #cmdline=init=/opt/scripts/tools/eMMC/init-eMMC-flasher-v3.sh y root@beaglebone:~# cd /lib root@beaglebone:/lib# cd firmware/ root@beaglebone:/lib/firmware# ls DC* DCC_V3-00A0.dtbo DCC_V3-00A0.dts root@beaglebone:/lib/firmware# cat DCC_V3-00A0.dts // This DTS overlay sets up the pins for use by // DCC_V3 // Save this file wherever you want (but I recommend /lib/firmware), as // "DCC_V3-00A0.dts". // Compile with: // dtc -O dtb -I dts -o /lib/firmware/DCC_V3-00A0.dtbo -b 0 -@ DCC_V3-00A0.dts /dts-v1/; /plugin/; / { // This determines which boards can use this DTS overlay compatible = "ti,beaglebone", "ti,beaglebone-green", "ti,beaglebone-black"; // I think part-number is supposed to correspond with the filename, // so we'd save this as "PRU-DCC-00A0.dts". part-number = "DCC_V3"; // This always seems to be 00A0, and all the .dtbo files in /lib/firmware // seem to be named foo-00A0.dtbo, but then are loaded without that suffix. version = "00A0"; // List the pins and resources we'll be using. This table: // http://elinux.org/Ti_AM33XX_PRUSSv2#Beaglebone_PRU_connections_and_modes // shows which pins can be used with PRU0 and PRU1 for input and output via // registers R31 and R30. // // Beware: Many other PRU EGP pins are reserved by HDMI or onboard flash, which // would need to be disabled first by editing uEnv.txt and rebooting. exclusive-use = "P8.43", "pr1_pru1_pru_r30_2", "P8.45", "pr1_pru1_pru_r30_0", "P8.46", "pr1_pru1_pru_r30_1", "P9.12", "gpio1_28", "P9.15", "gpio1_16", "P9.23", "gpio1_17", "P9.25", "gpio3_21", "P9.29", "pr1_pru0_pru_r30_1", "P9.30", "pr1_pru0_pru_r30_2", "P9.31", "pr1_pru0_pru_r30_0" ; fragment@0 { target = <&am33xx_pinmux>; __overlay__ { dcc_pins: dcc_pins_V3 { // Table 9-60 in the TRM: http://www.ti.com/lit/ug/spruh73l/spruh73l.pdf // helps us calculate the rest of the configuration value. pinctrl-single,pins = < 0x0a8 0x05 0x0a0 0x05 0x0a4 0x05 0x078 0x27 0x040 0x07 0x044 0x07 0x1ac 0x27 0x194 0x05 0x198 0x05 0x190 0x05 >; }; }; }; // This enables the PRU and assigns the GPIO pins to it for use in EGP mode. fragment@1 { target = <&pruss>; __overlay__ { pinctrl-names = "default"; pinctrl-0 = <&dcc_pins>; status = "okay"; }; }; }; root@beaglebone:/lib/firmware# Thanks in advance. Paul -- For more options, visit http://beagleboard.org/discuss --- You received this message because you are subscribed to the Google Groups "BeagleBoard" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/beagleboard/4e2e767c-efb9-497b-98f5-001cb9e3cbb3%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
