SK-AM62-LP: 3D cube runs at low fps

Part Number: SK-AM62-LP

Tool/software:

Follow by: https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1448630/sk-am62-lp-how-to-run-kmscube-in-quickboot-on-sk-am62p-lp/5557758?tisearch=e2e-sitesearch&keymatch=%20user%3A546558#5557758

We noticed kmscube runs at 4fps only. In addition, when running our SRV application, we get kmsro: driver missing. Doubt kmscube may not take advantage of GPU because GPU driver is not running. 

How can we check whether GPU driver is running after quickboot and how to check whether kmscube utilizes GPU or not? Thanks.

Best Regards,

Wilson Hung

  • Hi Wilson,

    cat /sys/kernel/debug/pvr/status

    should give the status of GPU when you are running Kmscube application.

    Best Regards,

    Suren

  • Hi, Suren,

    Thanks for quick response. The command returns

    root@am62pxx-evm:~# cat /sys/kernel/debug/pvr/status
    cat: can't open '/sys/kernel/debug/pvr/status': No such file or directory

    Look like we have to enable debug and rebuild rootfs. Is there a way to enable debug?

    Best Regards,

    Wilson

  • Looks the IMG rogue driver module is not inserted.

    Can you share the output of lsmod command?

    Best regards,

    Suren

  • Hi, Suren,

    There was no module listed, if booted from OSPI.

    root@am62pxx-evm:~# lsmod
    Module                  Size  Used by
    root@am62pxx-evm:~#

    In contrast, if  booted from SD, and the boot image was built by Yocto10.

    root@am62pxx-evm:~# lsmod
    Module                  Size  Used by
    rpmsg_ctrl             12288  0
    rpmsg_char             20480  1 rpmsg_ctrl
    snd_soc_simple_card    16384  0
    snd_soc_simple_card_utils    24576  1 snd_soc_simple_card
    crct10dif_ce           12288  1
    snd_soc_davinci_mcasp    32768  2
    wave5                  94208  0
    panel_simple           90112  0
    pvrsrvkm             1261568  0
    ti_am65_cpsw_nuss      94208  0
    videobuf2_dma_contig    16384  1 wave5
    snd_soc_tlv320aic3x_i2c    12288  1
    snd_soc_ti_udma        12288  1 snd_soc_davinci_mcasp
    snd_soc_tlv320aic3x    73728  1 snd_soc_tlv320aic3x_i2c
    phylink                45056  1 ti_am65_cpsw_nuss
    snd_soc_ti_edma        12288  1 snd_soc_davinci_mcasp
    v4l2_mem2mem           32768  1 wave5
    snd_soc_ti_sdma        12288  1 snd_soc_davinci_mcasp
    snd_soc_hdmi_codec     16384  0
    rti_wdt                12288  0
    am65_cpts              24576  1 ti_am65_cpsw_nuss
    videobuf2_v4l2         28672  2 v4l2_mem2mem,wave5
    snd_soc_core          212992  8 snd_soc_davinci_mcasp,snd_soc_ti_sdma,snd_soc_ti_edma,snd_soc_hdmi_codec,snd_soc_tlv320aic3x,snd_soc_ti_udma,snd_soc_simple_card_utils,snd_soc_simple_card
    ti_k3_r5_remoteproc    24576  0
    videobuf2_memops       12288  1 videobuf2_dma_contig
    k3_cppi_desc_pool      16384  1 ti_am65_cpsw_nuss
    snd_pcm_dmaengine      16384  1 snd_soc_core
    virtio_rpmsg_bus       16384  0
    videobuf2_common       57344  5 videobuf2_dma_contig,videobuf2_v4l2,v4l2_mem2mem,wave5,videobuf2_memops
    rpmsg_ns               12288  1 virtio_rpmsg_bus
    ptp                    32768  1 am65_cpts
    snd_pcm               126976  6 snd_soc_davinci_mcasp,snd_soc_hdmi_codec,snd_soc_tlv320aic3x,snd_soc_simple_card_utils,snd_soc_core,snd_pcm_dmaengine
    rpmsg_core             20480  4 virtio_rpmsg_bus,rpmsg_char,rpmsg_ctrl,rpmsg_ns
    videodev              245760  3 videobuf2_v4l2,v4l2_mem2mem,wave5
    snd_timer              36864  1 snd_pcm
    pps_core               20480  1 ptp
    phy_gmii_sel           16384  0
    mc                     49152  4 videodev,videobuf2_v4l2,videobuf2_common,v4l2_mem2mem
    snd                    86016  4 snd_soc_hdmi_codec,snd_timer,snd_soc_core,snd_pcm
    sa2ul                  32768  0
    soundcore              12288  1 snd
    omap_mailbox           12288  2
    mcrc64                 12288  0

  • Hi Wilson,

    Happy New Year!

    The graphics libraries and binaries are present in the Filesystem. You need to insert the module before running the application. 

    In the init script you would see that I had inserted the pvrsrv.ko module using insmod before running the Kmscube application.

    Hope this helps!

    Best Regards,

    Suren

  • Hi, Suren,

    Happy New Year!!

    Boot from SD and find out the path of pvrsrvkm.ko (/lib/modules/6.6.44-ti-01478-g541c20281af7-dirty/updates/pvrsrvkm.ko) <-- built by yocto.

    Then, boot from OSPI, run insmod, then system reports Invalid module format.

    [BOOTLOADER_PROFILE] Boot Media       : FLASH
    [BOOTLOADER_PROFILE] Boot Media Clock : 166.667 MHz
    [BOOTLOADER_PROFILE] Boot Image Size  : 14392 KB
    [BOOTLOADER_PROFILE] Cores present    :
    hsm-m4f0-0
    mcu-r5f0-0
    a530-0
    [BOOTLOADER PROFILE] System_init                      :       2221us
    [BOOTLOADER PROFILE] Board_init                       :          4us
    [BOOTLOADER PROFILE] FreeRtosTask Create              :        260us
    [BOOTLOADER PROFILE] SBL Drivers_open                 :        932us
    [BOOTLOADER PROFILE] SBL Board_driversOpen            :        134us
    [BOOTLOADER PROFILE] App_loadImages                   :       3657us
    [BOOTLOADER PROFILE] App_loadMCUImages                :       4134us
    [BOOTLOADER PROFILE] App_loadLinuxImages              :     116260us
    [BOOTLOADER_PROFILE] SBL Total Time Taken             :     127605us
    
    NOTICE:  BL31: v2.10.0(release):v2.10.0-367-g00f1ec6b87-dirty
    NOTICE:  BL31: Built : 16:09:05, Feb  9 2024
    [    0.000000] Booting Linux on physical CPU 0x0000000000 [0x410fd034]
    [    0.000000] Linux version 6.6.32 (wilson@sdk) (aarch64-none-linux-gnu-gcc (Arm GNU Toolchain 13.3.Rel1 (Build arm-13.24)) 13.3.1 20240614, GNU ld (Arm GNU Toolchain 13.3.Rel1 (Build arm-13.24)) 2.42.0.20240614) #1 SMP PREEMPT Tue Jan  7 14:01:56 CST 2025
    [    0.000000] KASLR disabled due to lack of seed
    [    0.000000] Machine model: Texas Instruments AM62P5 SK
    [    0.000000] earlycon: ns16550a0 at MMIO32 0x0000000002800000 (options '')
    [    0.000000] printk: bootconsole [ns16550a0] enabled
    [    0.106867] omap-mailbox 29020000.mailbox: no available mbox devices found
    [    0.114035] omap-mailbox 29030000.mailbox: no available mbox devices found
    [    0.195146] OF: graph: no port node found in /bus@f0000/dss@30200000/oldi-txes/oldi@0/ports
    [    0.203563] OF: graph: no port node found in /bus@f0000/dss@30200000/oldi-txes/oldi@1/ports
    [    0.225783] OF: graph: no port node found in /bus@f0000/dss@30200000/oldi-txes/oldi@0/ports
    [    0.234272] OF: graph: no port node found in /bus@f0000/dss@30200000/oldi-txes/oldi@1/ports
    INIT: version 3.04 booting
    Starting udev
    [    2.135464] pvrsrvkm: version magic '6.6.44-ti-01478-g541c20281af7-dirty SMP preempt mod_unload aarch64' should be '6.6.32 SMP preempt mod_unload aarch64'
    hwclock: can't open '/dev/misc/rtc': No such file or directory
    Fri Mar  9 12:34:56 UTC 2018
    hwclock: can't open '/dev/misc/rtc': No such file or directory
    no connected connector!
    failed to initialize legacy DRM
    INIT: Entering runlevel: 5misc/rtc': No such file or directory
    Configuring network interfaces... ip: SIOCGIFFLAGS: No such device
    ip: SIOCGIFFLAGS: No such device
    Starting syslogd/klogd: done
    
    Poky (Yocto Project Reference Distro) 5.0.5 am62pxx-evm /dev/ttyS2
    
    am62pxx-evm login: root
    
    WARNING: Poky is a reference Yocto Project distribution that should be used for
    testing and development purposes only. It is recommended that you create your
    own distribution for production use.
    
    root@am62pxx-evm:~# kmscube
    no connected connector!
    failed to initialize legacy DRM
    root@am62pxx-evm:~# insmod pvrsrvkm.ko
    insmod: ERROR: could not load module pvrsrvkm.ko: No such file or directory
    root@am62pxx-evm:~# insmod /lib/modules/6.6.44-ti-01478-g541c20281af7-dirty/updates/pvrsrvkm.ko
    [   76.364092] pvrsrvkm: version magic '6.6.44-ti-01478-g541c20281af7-dirty SMP preempt mod_unload aarch64' should be '6.6.32 SMP preempt mod_unload aarch64'
    insmod: ERROR: could not insert module /lib/modules/6.6.44-ti-01478-g541c20281af7-dirty/updates/pvrsrvkm.ko: Invalid module format

    Our SDK is 10.0.0.14, and its linux kernel version is 6.6.32. Should we move to 10.1.0.33? Just checked that kernel version in SDK 10.1.0.33 is 6.6.58, not 6.6.44.

    Or we should modify PV version to "6.6.32+git" in the linux-ti-staging_6.6.bb in yocto? If so, please suggest SRCREV.

    Thanks,

    Wilson Hung