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.

AM437x pruss_remoteproc.ko not working

Other Parts Discussed in Thread: PRU-SWPKG

Hello I am trying to use the PRU in the am437x.

I'm following the instructions in the "Boot the new Kernel and FS on the Target" section in the page "PRU Training: Hands-on Labs" for the SDK Linux 1.00.00.00.
When i call " insmod pruss_remoteproc.ko" it was supposed to show some trace messages, but i don't get any message in return, i believe this problem is related to the device tree, because it has no reference to pru int it.
But if a check in the /proc/modules it looks like that the module was loaded.

How should I configure the pruss in the device tree, is there any example of it? Or the problem could be somewhere else?

Thanks.

  • Hello, I did some modifications in the device tree and now I am getting some feedback from the driver.

    -pruss_remoteproc driver provided in the PRU-SWPKG  01_00_00_00 http://software-dl.ti.com/sitara_linux/esd/PRU-SWPKG/01_00_00_00/index_FDS.html

    -AM437xSDK  07_01_00_00

    When installing the pruss_remoteproc driver I get the following message 

    # modprobe pruss_remoteproc
    [ 42.222749] pruss-rproc 54400000.pruss: creating platform devices for PRU cores
    [ 42.235869] pru-rproc 54434000.pru0: omap_mbox_get failed: -2
    [ 42.242176] remoteproc0: releasing 54434000.pru0
    [ 42.248839] pru-rproc: probe of 54434000.pru0 failed with error -2
    [ 42.255779] pru-rproc 54438000.pru1: omap_mbox_get failed: -2
    [ 42.262016] remoteproc0: releasing 54438000.pru1
    [ 42.267519] pru-rproc: probe of 54438000.pru1 failed with error -2

    The pru related configuration in the device tree I am using is:

    pruss1: pruss@54400000 {
    			compatible = "ti,am4372-pruss";
    			ti,hwmods = "pruss";
    			reg = <0x54400000 0x2000>,
    			      <0x54402000 0x2000>,
    			      <0x54410000 0x8000>,
    			      <0x54420000 0x2000>,
    			      <0x54426000 0x2000>,
    			      <0x5442e000 0x31c>,
    			      <0x54432000 0x58>;
    			reg-names = "dram0", "dram1", "shrdram2", "intc", "cfg",
    				    "iep", "mii_rt";
    			interrupts = <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH
    				      GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH
    				      GIC_SPI 22 IRQ_TYPE_LEVEL_HIGH
    				      GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH
    				      GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH
    				      GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH
    				      GIC_SPI 27 IRQ_TYPE_LEVEL_HIGH>;
    			#address-cells = <1>;
    			#size-cells = <1>;
    			ranges;
    
    			pru1_0: pru0@54434000 {
    				compatible = "ti,pru-rproc";
    				reg = <0x54434000 0x3000>,
    				      <0x54422000 0x400>,
    				      <0x54422400 0x100>;
    				reg-names = "iram", "control", "debug";
    				mboxes = <&mailbox &mbox_pru1_0>;
    			};
    
    			pru1_1: pru1@54438000 {
    				compatible = "ti,pru-rproc";
    				reg = <0x54438000 0x3000>,
    				      <0x54424000 0x400>,
    				      <0x54424400 0x100>;
    				reg-names = "iram", "control", "debug";
    				mboxes = <&mailbox &mbox_pru1_1>;
    			};
    
    		};

    What else should I change in the device tree?

  • I don't believe the mailboxes are used in that version of the PRU Software Support Package. You can try removing the mboxes portions of your pru nodes in your device tree.

    It is recommended to use the latest version of the Linux Processor SDK (software-dl.ti.com/.../index_FDS.html). Newer versions of the SDK have the PRU Software Support Package included in the install. Here is a wiki page that shows which PRU Software Support Package each version of the Linux Processor SDK pairs with: http://processors.wiki.ti.com/index.php/Processor_SDK_PRU-ICSS_Add_On_Package.

    Jason Reeder