PRUSS: No Children Error - prussdrv_open() failed

I saw others also had this problem at 4.1.x kernel as well, but seems like it is fixed with a patch. However I still get this problem, could you please help me?

debian@arm:~/test$ sudo ./testLED prussdrv_open() failed

`
debian@arm:~/test$ dmesg | grep -i pru
[ 209.806504] bone_capemgr bone_capemgr: part_number ‘EBB-PRU-Example’, version ‘N/A’
[ 209.806653] bone_capemgr bone_capemgr: slot #4: ‘Override Board Name,00A0,Override Manuf,EBB-PRU-Example’
[ 209.812435] bone_capemgr bone_capemgr: slot #4: dtbo ‘EBB-PRU-Example-00A0.dtbo’ loaded; overlay id #0
[ 209.857210] pruss_uio 4a300000.pruss: No children

debian@arm:~/test$ lsb_release -irc
Distributor ID: Debian
Release: 8.4
Codename: jessie

debian@arm:~/test$ uname -or
4.1.20-bone-rt-r20 GNU/Linux

debian@arm:~/chp13/ledButton$ cat $SLOTS
0: PF---- -1
1: PF---- -1
2: PF---- -1
3: PF---- -1
4: P-O-L- 0 Override Board Name,00A0,Override Manuf,EBB-PRU-Example

debian@arm:~/chp13/ledButton$ lsmod
Module Size Used by
uio_pruss 4582 0

`

Hi,
I just find out the solution.
It was because of your kernel version you have to update to the 4.1.21-bone-rt-r20
More detail on my last 2 post : https://groups.google.com/forum/#!searchin/beagleboard/PRU|sort:date/beagleboard/5gD73Jm_Xss/4omwOtw3BQAJ

sudo apt-get update
sudo apt-get install linux-image-4.1.21-bone-rt-r20
sudo reboot

That should work. At least I hope so :wink:

Enjoy !
Vincent

Hello Vincent,

Upgrading kernel version did not solve my problem unfortunately :confused:

Frank

Hello Frank,
May be that you could tried to change your dts to this one :
https://github.com/beagleboard/bb.org-overlays/blob/master/src/arm/BB-BONE-REPLICAP-00B1.dts

I hope that this will work

Enjoy
Vincent

From what I’ve found, the “no children” error refers to a pruss entry in the device tree that looks like this:
`
fragment@1 {
target = <&pruss>;
overlay {
status = “okay”;
pinctrl-names = “default”;
pinctrl-0 = <&your_pru_pins>;
};
};

`

This used to work just fine, but now it needs to have one or more entries below pinctrl-0 describing your pins, like this:
fragment@1 {
target = <&pruss>;
overlay {
status = “okay”;
pinctrl-names = “default”;
pinctrl-0 = <&your_pru_pins>;
my_pins{
pin-names = “name1”, “name2” … ;
gpios = <&gpioX PN 0
&gpioY PN 0
… >;
};

possibly more like above

};
};

depending on which gpio groups and PNs(pin numbers) you’d like the pruss to be associated with.

I am not sure how you specify that you don’t want ANY pins though, unless you would then just not have the pinctrl entries above and only the status = “okay” line. That is probably it, since this is how the “enable-uio-pruss” device tree file I have seems to work and gets no “no children” errors. At any rate, this does
work on 4.9, and would likely work on 4.4 or maybe even 4.1. I believe the code that produces this “no children” error is looking for entries like this in the device tree if you say you want some kind of pinctrl. I did see the patch that needs to be commented out if you want your old device tree files to work, but I can’t remember where it is. I’m sure someone can point right to it.