Skip to content

Instantly share code, notes, and snippets.

@RobertCNelson
Last active July 6, 2022 19:17
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save RobertCNelson/0df493fc9dcdf0c6d75218437d416e6c to your computer and use it in GitHub Desktop.
Save RobertCNelson/0df493fc9dcdf0c6d75218437d416e6c to your computer and use it in GitHub Desktop.
# vim: ft=udevrules
# apply this file only to pruss_uio devices and their children
# (unfortunately DRIVERS!="pruss_uio" doesn't work, hence this workaround)
DRIVERS=="pruss_uio", GOTO="PRUSS"
GOTO="END"
LABEL="PRUSS"
# obtain pruss instance name:
# 1. check for device tree property
# 2. try to inherit from parent
# 3. default to "pruss"
ENV{PRUSS_INSTANCE}=="", ENV{PRUSS_INSTANCE}="$attr{of_node/pruss-instance}"
ENV{PRUSS_INSTANCE}=="", IMPORT{parent}="PRUSS_INSTANCE"
ENV{PRUSS_INSTANCE}=="", ENV{PRUSS_INSTANCE}="pruss"
# create symlinks for the uio devices:
# one for the memory/register spaces (any of the modules work for that)
# one per irq that can be received by linux
SUBSYSTEM!="uio", GOTO="END"
ATTR{name}=="pruss_evt0", SYMLINK+="uio/$env{PRUSS_INSTANCE}/module"
ATTR{name}=="pruss_evt0", SYMLINK+="uio/$env{PRUSS_INSTANCE}/irq2"
ATTR{name}=="pruss_evt1", SYMLINK+="uio/$env{PRUSS_INSTANCE}/irq3"
ATTR{name}=="pruss_evt2", SYMLINK+="uio/$env{PRUSS_INSTANCE}/irq4"
ATTR{name}=="pruss_evt3", SYMLINK+="uio/$env{PRUSS_INSTANCE}/irq5"
ATTR{name}=="pruss_evt4", SYMLINK+="uio/$env{PRUSS_INSTANCE}/irq6"
ATTR{name}=="pruss_evt5", SYMLINK+="uio/$env{PRUSS_INSTANCE}/irq7"
ATTR{name}=="pruss_evt6", SYMLINK+="uio/$env{PRUSS_INSTANCE}/irq8"
ATTR{name}=="pruss_evt7", SYMLINK+="uio/$env{PRUSS_INSTANCE}/irq9"
LABEL="END"
debian@BeagleBone:~$ udevadm info --path /sys/class/uio/uio*
P: /devices/platform/bus@100000/b000000.icssg/uio/uio0
N: uio0
L: 0
E: DEVPATH=/devices/platform/bus@100000/b000000.icssg/uio/uio0
E: DEVNAME=/dev/uio0
E: MAJOR=507
E: MINOR=0
E: SUBSYSTEM=uio
P: /devices/platform/bus@100000/b000000.icssg/uio/uio1
N: uio1
L: 0
E: DEVPATH=/devices/platform/bus@100000/b000000.icssg/uio/uio1
E: DEVNAME=/dev/uio1
E: MAJOR=507
E: MINOR=1
E: SUBSYSTEM=uio
P: /devices/platform/bus@100000/b100000.icssg/uio/uio10
N: uio10
L: 0
E: DEVPATH=/devices/platform/bus@100000/b100000.icssg/uio/uio10
E: DEVNAME=/dev/uio10
E: MAJOR=507
E: MINOR=10
E: SUBSYSTEM=uio
P: /devices/platform/bus@100000/b100000.icssg/uio/uio11
N: uio11
L: 0
E: DEVPATH=/devices/platform/bus@100000/b100000.icssg/uio/uio11
E: DEVNAME=/dev/uio11
E: MAJOR=507
E: MINOR=11
E: SUBSYSTEM=uio
P: /devices/platform/bus@100000/b100000.icssg/uio/uio12
N: uio12
L: 0
E: DEVPATH=/devices/platform/bus@100000/b100000.icssg/uio/uio12
E: DEVNAME=/dev/uio12
E: MAJOR=507
E: MINOR=12
E: SUBSYSTEM=uio
P: /devices/platform/bus@100000/b100000.icssg/uio/uio13
N: uio13
L: 0
E: DEVPATH=/devices/platform/bus@100000/b100000.icssg/uio/uio13
E: DEVNAME=/dev/uio13
E: MAJOR=507
E: MINOR=13
E: SUBSYSTEM=uio
P: /devices/platform/bus@100000/b100000.icssg/uio/uio14
N: uio14
L: 0
E: DEVPATH=/devices/platform/bus@100000/b100000.icssg/uio/uio14
E: DEVNAME=/dev/uio14
E: MAJOR=507
E: MINOR=14
E: SUBSYSTEM=uio
P: /devices/platform/bus@100000/b100000.icssg/uio/uio15
N: uio15
L: 0
E: DEVPATH=/devices/platform/bus@100000/b100000.icssg/uio/uio15
E: DEVNAME=/dev/uio15
E: MAJOR=507
E: MINOR=15
E: SUBSYSTEM=uio
P: /devices/platform/bus@100000/b000000.icssg/uio/uio2
N: uio2
L: 0
E: DEVPATH=/devices/platform/bus@100000/b000000.icssg/uio/uio2
E: DEVNAME=/dev/uio2
E: MAJOR=507
E: MINOR=2
E: SUBSYSTEM=uio
P: /devices/platform/bus@100000/b000000.icssg/uio/uio3
N: uio3
L: 0
E: DEVPATH=/devices/platform/bus@100000/b000000.icssg/uio/uio3
E: DEVNAME=/dev/uio3
E: MAJOR=507
E: MINOR=3
E: SUBSYSTEM=uio
P: /devices/platform/bus@100000/b000000.icssg/uio/uio4
N: uio4
L: 0
E: DEVPATH=/devices/platform/bus@100000/b000000.icssg/uio/uio4
E: DEVNAME=/dev/uio4
E: MAJOR=507
E: MINOR=4
E: SUBSYSTEM=uio
P: /devices/platform/bus@100000/b000000.icssg/uio/uio5
N: uio5
L: 0
E: DEVPATH=/devices/platform/bus@100000/b000000.icssg/uio/uio5
E: DEVNAME=/dev/uio5
E: MAJOR=507
E: MINOR=5
E: SUBSYSTEM=uio
P: /devices/platform/bus@100000/b000000.icssg/uio/uio6
N: uio6
L: 0
E: DEVPATH=/devices/platform/bus@100000/b000000.icssg/uio/uio6
E: DEVNAME=/dev/uio6
E: MAJOR=507
E: MINOR=6
E: SUBSYSTEM=uio
P: /devices/platform/bus@100000/b000000.icssg/uio/uio7
N: uio7
L: 0
E: DEVPATH=/devices/platform/bus@100000/b000000.icssg/uio/uio7
E: DEVNAME=/dev/uio7
E: MAJOR=507
E: MINOR=7
E: SUBSYSTEM=uio
P: /devices/platform/bus@100000/b100000.icssg/uio/uio8
N: uio8
L: 0
E: DEVPATH=/devices/platform/bus@100000/b100000.icssg/uio/uio8
E: DEVNAME=/dev/uio8
E: MAJOR=507
E: MINOR=8
E: SUBSYSTEM=uio
P: /devices/platform/bus@100000/b100000.icssg/uio/uio9
N: uio9
L: 0
E: DEVPATH=/devices/platform/bus@100000/b100000.icssg/uio/uio9
E: DEVNAME=/dev/uio9
E: MAJOR=507
E: MINOR=9
E: SUBSYSTEM=uio
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment