Project

General

Profile

Linux Kernel GPU Driver (Power VR)

Note: If you are building the kernel via Yocto, it is likely that the GPU driver is already being compiled and installed in your filesystem and you do not need these instructions.

The kernel module driver for the AM62x is not part of the main kernel build. If you manually build your own kernel, you will need to compile this module and manually install it in your /lib/modules directory in order to use the MitySOM-AM62x GPU features.

The GPU is in the Power VR family. The driver consists of a kernel module, pvrsrvkm.ko, that is loaded automatically via system scripts. In most cases, you want this kernel module to be located in /lib/modules/$KERNEL_VER/extra.

The source for the driver can be found in TI's Processor SDK (the SDK installs to your home directory by default):

/home/user/ti-processor-sdk-linux-am62xx-evm-08.05.00.21/board-support/extra-drivers/ti-img-rogue-driver-1.15.6133109/

To build the module, please setup a few environment variables (similar to the kernel build), and then run make. You must modify these values for your own kernel source location and toolchain. Please contact Critical Link if you are unsure about these variables.

# export KERNELDIR=/home/USER/productline/linux-ti/build-mitysom62x/
# export PATH=/home/tools/mitysom-62x/gcc-arm-9.2-2019.12-x86_64-aarch64-none-linux-gnu/bin:$PATH
# export ARCH=arm64
# export CROSS_COMPILE=aarch64-none-linux-gnu-
# cd /home/user/ti-processor-sdk-linux-am62xx-evm-08.05.00.21/board-support/extra-drivers/ti-img-rogue-driver-1.15.6133109/
# cd build/linux/am62_linux
# make clean
# make

You will see messages similar to the following:

../config/preconfig.mk:309: Could not determine HOST_OS so assuming Linux
******* Multiarch build: no
******* Primary arch:    target_aarch64
******* Secondary arch:  none
******* PVR arch:        rogue
******* HWDefs:          /home/user/ti-processor-sdk-linux-am62xx-evm-08.05.00.21/board-support/extra-drivers/ti-img-rogue-driver-1.15.6133109/hwdefs/rogue
******* HWDefs (all):    /home/user/ti-processor-sdk-linux-am62xx-evm-08.05.00.21/board-support/extra-drivers/ti-img-rogue-driver-1.15.6133109/hwdefs/rogue
******* Host OS:         linux
******* Target OS:       linux
WARNING: You are not specifying how to find dependent libraries, e.g., by specifying SYSROOT.
The build may fail.
  GEN      binary_am62_linux_wayland_release/target_aarch64/install_km.sh
  GEN      binary_am62_linux_wayland_release/install.sh
  MODPOST /home/user/ti-processor-sdk-linux-am62xx-evm-08.05.00.21/board-support/extra-drivers/ti-img-rogue-driver-1.15.6133109/binary_am62_linux_wayland_release/target_aarch64/kbuild/Module.symvers
  CC [M]  /home/user/ti-processor-sdk-linux-am62xx-evm-08.05.00.21/board-support/extra-drivers/ti-img-rogue-driver-1.15.6133109/binary_am62_linux_wayland_release/target_aarch64/kbuild/pvrsrvkm.mod.o
  LD [M]  /home/user/ti-processor-sdk-linux-am62xx-evm-08.05.00.21/board-support/extra-drivers/ti-img-rogue-driver-1.15.6133109/binary_am62_linux_wayland_release/target_aarch64/kbuild/pvrsrvkm.ko

The last line indicates the location of the compiled kernel module, pvrsrvkm.ko. You will need to manually install this module on your root filesystem under /lib/modules/$KERN_VER/extra. You may need to create the extra directory.

Then, reboot your system. After you login, run lsmod | grep pvr to make sure that the module has been loaded.

Go to top
Add picture from clipboard (Maximum size: 1 GB)