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.

AM4378: Performance of Qt application on Wayland platform

Part Number: AM4378


Hi,

We have custom board with display resolution 800x480. We are using standard SDK 6x and compiled Qt widget application (not QML) to check benchmark performance. So we have multiple screens with multiple Qt objects on screen (say 300 different objects). So if we compare performance of same application with NXP iMX6 Solo then TI AM4378 performance looks sluggish so we are expecting similar kind of performance as iMX6 Solo because both processors have almost same specifications like Cortex A9, 1 GHZ, 1 GB DDR etc etc. So differences between two system are mentioned below

- iMX6 with x11 and TI AM4378 with Wayland
- iMX6 with eMMC boot and TI AM4378 with SD boot

So what could be the possible reasons for performance difference between two processor? Also we observed 'sync' command sometime becomes quite sluggish but we never observed such problems with iMX6 Solo with x11. This is due to SD boot or Wayland platform?  

What we have decided 

- Make TI AM437x with x11 but in this case need to check SDK  which supports x11 (ti-processor-sdk-linux-am437x-evm-04.01.00.06-Linux-x86-Install support x11?) 
- Boot with eMMC as similar to iMX6 Solo 

What we can check other parameters to get root cause of performance differences between two processor? We believe TI AM4378 has similar capabilities compared to iMX6 Solo

Thanks and Regards
Pravin Yadav

  

  • Hello Pravin,

    In the past, we created a special one-time X11 configuration based on SGX DDK v1.15 (GPU). It served as an experimental build with no support from TI. We ran very limited tests and we have not provided X11 config for the subsequent releases. Is it possible to have run Wayland running on both platforms or run the application with the eglfs plugin?

    Regards,
    Krunal

  • Hi Krunal,

    We did conduct same test with EGLFS platform but same result 

    What i did to make EGLFS platform - /etc/init.d/weston stop

  • Hello Pravin,

    Is there an out of box Qt example that I could run on my side to better visualize the performance issues that you are observing?

    Regards,
    Krunal

  • Heo Krunal,

    We got some interesting data

    We conducted qtwebengine test on both TI AM4378 and iMX6 Solo with same build to check whether GPU is configured correctly or not

    Setup 1 

    TI AM4378 and iMX6 Solo

    Build – Morty 2.2 and platform – EGLFS

    Browser – standard qtwebenginewidget based browser with backend qtwebengine (chromium based)

    So with above setup, we found degrade performance of TI AM4378 as compared to iMX6 Solo and its seems GPU is not utilizing as per their capabilities.

     

    Setup 2 

    TI AM4378 and iMX6 Solo

    Build – Morty 2.2 and platform – EGLFS

    Browser – QML based browser with backend qtwebengine (chromium based)

    With above setup, surprisingly we got almost similar performance and its seems GPU is utilizing properly in TI AM4378.

    So now difference between two system is just qt widget against QML but at the same time both qt widget and QML browser properly working on iMX6 Solo. Our bench mark performance application has developed in qt widget so we suspect somehow qt widget is not performing properly on TI AM4378 so either something broken for qt widget or did i miss something?

    Please see attached video for both setup (video name - setup 1 video - QtWebengine_QtWidget_TIAM4378_iMX6Solo and setup 2 video - QtWebengine_QML_TIAM4378_iMX6Solo). In Video left side device is TI AM4378 and right one is iMX6 Solo. You can easily visualize the performance difference between two system.

    Also i am attaching two qt widget applications for different resolution i.e. 800x480 and 480x272 and respective video. For 480x272, you will not see much difference but once we go to higher resolution then difference are significant.

    Note - I am attaching Qt widget application and not any browser application. Qt browser application video is just for understanding of how qt widget not performing well for TI AM4378.

    Some problem for attaching application and video here so uploaded to this link - 

     

  • Hello Pravin,

    I am reviewing your above observations and I will get back to you within 24-48 hours.

    Regards,
    Krunal

  • Hello Pravin,

    I see that you are using morty and I believe that corresponds to Qt5.9. I am wondering if you could please test your application on our latest SDK (https://software-dl.ti.com/processor-sdk-linux/esd/AM437X/latest/index_FDS.html). It is based on thud and Qt5.11.3.

    Regards,
    Krunal

  • Hello Krunal,

    Here are Ycoto and compatible Qt versions as well as TI SDK

    Morty 2.2 - Qt 5.7.1   TI SDK - 4x
    Rocko 2.4 - Qt 5.9     TI SDK - 5x
    Thud 2.6 - Qt 5.11.3   TI SDK - 6x

    So we tested on TI SDK 4x i.e. Qt 5.7.1 as well as TI SDK 5x i.e. Qt 5.9 and both setup have same observations. On TI latest SDK, qtwebengine is not working and same issue has been reported here . Even not working with April SDK release. Qt widget application has same behavior across all SDK i.e SDK4,SDK5 and SDK6 

    So overall impression is qt performance is better in iMX6 Solo even both processor belongs to ARM cortex A9, same processing speed, Same DDR configuration, Same DMIPS (i.e. 2500), Same yocto build, same platform, Same Qt version etc etc. 

    So here we are trying to figure out exact root cause.

  • Hello Pravin,

    Thank you for providing your application and while running the app, I noticed that the CPU usage is high (100%). I do not think that should be the case and I am internally checking with our developers. This could be a potential difference between the two setup.

    Regards,
    Krunal

  • Hello Krunal,

    One more test suite in comparison with qtwidget and QML on TI platform. We just play simple video using qtwidget and QML and we see similar observations like earlier results (qt widget is slower in performance compared to QML) but same video working with similar performance in both cases on iMX6 Solo.  

    QML

    import QtQuick 2.0
    import QtQuick.Window 2.1
    import QtMultimedia 5.0

    Item {
    width: 800
    height: 480
    visible: true
    Video {
    id: video
    width : 800
    height : 480
    source: "file:///home/root/640.avi"
    Component.onCompleted: {
    play()
    }
    }

    Qt Widget

    QMediaPlayer mediaPlayer;
    QVideoWidget *videoWidget = new QVideoWidget;
    mediaPlayer.setVideoOutput(videoWidget);
    mediaPlayer.setMedia(QUrl("file:///home/root/640.avi");
    mediaPlayer.play();

    To check the difference, you can play any video

    Thanks and Regards
    Pravin Yadav

  • Hello Pravin,

    Based on my internal discussions, the hardware acceleration is disabled for QtWebengine browser on PSDK6.x and if possible, we recommend using QtWebkit. With regards to Qtwidget, it uses software rendering by default and I am wondering if the goal of your application is to use CPU or GPU for rendering. Also, due to the dss underflow issues (silicon errata: Advisory 14 DSS: DSS Limitations), we limit the ARM bandwidth to 700MB/s and here is the Uboot config. As an experiment, feel free to increase the ARM BW and see if it helps with SW rendering.  

    Regards,
    Krunal 

  • Hello Krunal,

    We have two different applications, one with plain qtwidget and another one is with qtwebengine (we need Chromium backend). So we aware that PSDK6.x has qtwebengine problem and also would like to know when this will get resolve because qtwebkit has lack of HTML5 support. Now regarding qtwidget problem, which uses software rendering so here we want to use CPU so we'll make changes in ARM bandwidth and will update the result.

  • Hello Krunal,

    We did modification in ARM core bandwidth but we don't see much difference compared to previous results. Qtwidget behaves same as previous and no improvement in performance by increasing ARM core bandwidth.

    Original code -  700MBS

    modena_init0_bw_fractional |= 0x10;
    modena_init0_bw_integer |= 0x3;

    Modify to - 1000MBS

    modena_init0_bw_fractional |= 0x0;
    modena_init0_bw_integer |= 0x5

    So what could be the root cause of performance difference compared to iMX6 Solo? 

    Thanks and Regards
    Pravin Yadav

  • Hi Pravin,

    Thanks for running the test and sharing the results. I ran your test on our next PSDK release and I am observing a much better performance (please refer to the below video). I ran the Loader_ui_800x480 on a AM437x and I have connected a HDMI monitor to it. I have also noticed that the CPU load is not 100% and on our next release, we have migrated to a newer Qt version (5.14.2).

    Regards,
    Krunal

  • Hi Krunal,

    Could you please confirm that you observed performance difference between PSDK6 and your next PSDK? So you mean its better performance in your next PSDK? I am curious this is due to newer Qt 5.14.2 or modification in kernel or rootfs or in configuration? if this is the case then please share your new SDK even though its not released so we can conduct some tests and conclude on this.

    Thanks and Regards
    Pravin Yadav

  • Hello Pravin,

    I apologize for the delayed response and I have shared the images with the local FAE. He will be sharing the images with you shortly and please let me know if it helps with the performance. We are trying to debug the root cause and we will be waiting for your feedback. As I mentioned previously, I am observing better performance on the new images as opposed to PSDK6.3 but I would like you to confirm that based on your tests.

    Regards,
    Krunal

  • Hello Krunal,

    Thank you for your custom image

    I have tested on starter kit (4.3" display) and below are observations

    Qt applications are not working on Wayland platform so tried with EGLFS and it working but as said earlier we have starter kit with 4.3” display so it’s quite difficult to distinguish widget application performance difference compared with previous SDK. Below is Wayland platform error

    qt.qpa.wayland: Failed to initialize EGL display 3001
    qt.qpa.wayland: "wl-shell" is a deprecated shell extension, prefer using "xdg-shell-v6" or "xdg-shell" if supported by the compositor by setting the environment variable QT_WAYLAND_SHELL_INTEGRATION
    The Wayland connection experienced a fatal error: Protocol error
    Aborted (core dumped)

    Tried qtwebengine application (both qml based and webenginewidget based) to compare FPS with previous SDK but qtwebengine library is not integrated with this image (Please refer attached file for library error)

    root@am437x-evm:~# ./minimal_widget -platform eglfs
    ./minimal_widget: error while loading shared libraries: libQt5WebEngineWidgets.so.5: cannot open shared object file: No such file or directory
    root@am437x-evm:~#
    root@am437x-evm:~# ./minimal_widget
    ./minimal_widget: error while loading shared libraries: libQt5WebEngineWidgets.so.5: cannot open shared object file: No such file or directory
    root@am437x-evm:~#

    So I would suggest you to share entire SDK (with source) so we can test on our own custom board and see the performance difference.

    Thanks and Regards
    Pravin Yadav

  • Hello Pravin,

    1. Please keep in mind that the images shared with you are still in testing phase and we are still in the process of addressing the bugs. If you disable Weston and start it again, the errors should go away. (/etc/init.d/weston <stop/start>)

    2. Yes, the webengine library is missing and I am internally checking with our developers. However, I mainly tested the QtWidget because I had a sample application to compare results with. 

    3. Based on my testing, we have narrowed down the root cause to the filesystem. On my side, I took the Uboot/zImage/DTB/Modules from the PSDK6.3 and copied the images to the new filesystem that I shared with you. I was able to boot the board and still observe better performance. With regards to your custom board, please copy your custom images to the file system that I provided and let me know if you run into any errors.

    Regards,
    Krunal

  • Hello Krunal,

    We have done some modification for our custom board like

    - SD card changes in uboot and kernel
    - Display related changes in DTB file
    - Backlight PWM change

    So i would suggest to share uboot and kernel source code so we can test on our custom board.

    Thanks and Regards
    Pravin Yadav

  • Hi Pravin,

    The new filesystem could still be utilized even though you are using your custom Kernel/Uboot images from an older SDK. For example, please take your existing images and copy them to the new filesystem.
    1. In the rootfs/boot folder, change the zImage-5.4.52.xx with your custom image. Here is an example of what I did:

    root@am437x-evm:/boot# ls -al
    total 4640
    drwxr-xr-x  3 root root    4096 Aug  7  2020 .
    drwxr-xr-x 20 root root    4096 Jul 31  2020 ..
    -rw-r--r--  1 root root   52827 Aug  7  2020 am437x-gp-evm-hdmi.dtb
    -rw-r--r--  1 root root   77050 Jul 31  2020 am437x-gp-evm.dtb
    -rw-r--r--  1 root root   71546 Jul 31  2020 am437x-idk-evm.dtb
    -rw-r--r--  1 root root   74579 Jul 31  2020 am437x-sk-evm.dtb
    -rw-r--r--  1 root root   77317 Jul 31  2020 am43x-epos-evm-hdmi.dtb
    -rw-r--r--  1 root root   76446 Jul 31  2020 am43x-epos-evm.dtb
    drwxr-xr-x  2 root root    4096 Aug  7  2020 backup
    lrwxrwxrwx  1 root root      26 Aug  7  2020 zImage -> zImage-4.19.94-gbe5389fd85
    -rw-r--r--  1 root root 4297216 Aug  7  2020 zImage-4.19.94-gbe5389fd85
    root@am437x-evm:/boot# ls -al ./backup/
    total 4628
    drwxr-xr-x 2 root root    4096 Aug  7  2020 .
    drwxr-xr-x 3 root root    4096 Aug  7  2020 ..
    -rw-r--r-- 1 root root   77866 Aug  7  2020 am437x-gp-evm-hdmi.dtb <---- original image of the filesystem
    -rw-r--r-- 1 root root 4645376 Aug  7  2020 zImage-5.4.52-g41c32273d7 <----- original image of the filesystem
    root@am437x-evm:/boot#

    2. Change the default DTB with your custom DTB images (as seen above)
    3. Copy the modules from the PSDK6.3 to the new filesystem and here is an example of what I did:

    root@am437x-evm:/# cd /lib/modules/
    root@am437x-evm:/lib/modules# ls
    4.19.94-gbe5389fd85  5.4.52-g41c32273d7
    root@am437x-evm:/lib/modules# cd 4.19.94-gbe5389fd85/
    root@am437x-evm:/lib/modules/4.19.94-gbe5389fd85# ls
    extra  kernel  modules.alias  modules.alias.bin  modules.builtin  modules.builtin.bin  modules.dep  modules.dep.bin  modules.devname  modules.order  modules.softdep  modules.symbols  modules.symbols.bin
    root@am437x-evm:/lib/modules/4.19.94-gbe5389fd85# 

    4. Change the default Uboot images with your custom images.

    As an experiment, I used the new filesystem but had an older Kernel/Uboot version and I have attached my boot log. The idea here is for you to take your working boot images and copy them to the new filesystem. We want to prove that the enhancements made in our filesystem has indeed improved the performance.

    Regards,
    Krunal 

    U-Boot SPL 2019.01-g333c3e72d3 (Apr 20 2020 - 05:11:06 +0000)                
    Trying to boot from MMC1                                                     
    SPL: Please implement spl_start_uboot() for your board                       
    SPL: Direct Linux boot not active!                                           
                                            
                                            
    U-Boot 2019.01-g333c3e72d3 (Apr 20 2020 - 05:11:06 +0000)
                                            
    CPU  : AM437X-GP rev 1.2                
    Model: TI AM437x GP EVM                 
    DRAM:  2 GiB
    PMIC:  TPS65218
    NAND:  512 MiB
    MMC:   OMAP SD/MMC: 0
    Loading Environment from FAT... OK
    Net:   eth0: ethernet@4a100000
    Hit any key to stop autoboot:  0 
    ethernet@4a100000 Waiting for PHY auto negotiation to complete........ done
    link up on port 0, speed 1000, full duplex
    BOOTP broadcast 1
    BOOTP broadcast 2
    BOOTP broadcast 3
    DHCP client bound to address 192.168.0.13 (1328 ms)
    link up on port 0, speed 1000, full duplex
    Using ethernet@4a100000 device
    File transfer via NFS from server 192.168.0.1; our IP address is 192.168.0.13
    Filename '/home/local/work/harddrive2/psdk_linux/am437x/nightly/e2e/targetnfs/boot/zImage'.
    Load address: 0x82000000
    Loading: #################################################################
             #################################################################
             #################################################################
             #################################################################
             #################################################################
             #################################################################
             #################################################################
             #################################################################
             #################################################################
             #################################################################
             #################################################################
             #################################################################
             ############################################################
    done
    Bytes transferred = 4297216 (419200 hex)
    link up on port 0, speed 1000, full duplex
    Using ethernet@4a100000 device
    File transfer via NFS from server 192.168.0.1; our IP address is 192.168.0.13
    Filename '/home/local/work/harddrive2/psdk_linux/am437x/nightly/e2e/targetnfs/boot/am437x-gp-evm-hdmi.dtb'.
    Load address: 0x88000000
    Loading: ###########
    done
    Bytes transferred = 52827 (ce5b hex)
    ## Flattened Device Tree blob at 88000000
       Booting using the fdt blob at 0x88000000
       Loading Device Tree to 8fff0000, end 8ffffe5a ... OK
    
    Starting kernel ...
    
    [    0.000000] Booting Linux on physical CPU 0x0
    [    0.000000] Linux version 4.19.94-gbe5389fd85 (oe-user@oe-host) (gcc version 8.3.0 (GNU Toolchain for the A-profile Architecture 8.3-2019.03 (arm-rel-8.36))) #1 PREEMPT Sun Apr 19 03:20:57 UTC 2020
    [    0.000000] CPU: ARMv7 Processor [412fc09a] revision 10 (ARMv7), cr=10c53c7d
    [    0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
    [    0.000000] OF: fdt: Machine model: TI AM437x GP EVM
    [    0.000000] Memory policy: Data cache writeback
    [    0.000000] efi: Getting EFI parameters from FDT:
    [    0.000000] efi: UEFI not found.
    [    0.000000] cma: Reserved 48 MiB at 0xfcc00000
    [    0.000000] CPU: All CPU(s) started in SVC mode.
    [    0.000000] AM437x ES1.2 (sgx neon)
    [    0.000000] random: get_random_bytes called from start_kernel+0xa4/0x434 with crng_init=0
    [    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 522559
    [    0.000000] Kernel command line: console=ttyO0,115200n8 root=/dev/nfs nfsroot=192.168.0.1:/home/local/work/harddrive2/psdk_linux/am437x/nightly/e2e/targetnfs,nolock,v3 rw ip=dhcp
    [    0.000000] Dentry cache hash table entries: 131072 (order: 7, 524288 bytes)
    [    0.000000] Inode-cache hash table entries: 65536 (order: 6, 262144 bytes)
    [    0.000000] Memory: 2014636K/2097148K available (9216K kernel code, 316K rwdata, 2736K rodata, 1024K init, 254K bss, 33360K reserved, 49152K cma-reserved, 1261564K highmem)
    [    0.000000] Virtual kernel memory layout:
    [    0.000000]     vector  : 0xffff0000 - 0xffff1000   (   4 kB)
    [    0.000000]     fixmap  : 0xffc00000 - 0xfff00000   (3072 kB)
    [    0.000000]     vmalloc : 0xf0800000 - 0xff800000   ( 240 MB)
    [    0.000000]     lowmem  : 0xc0000000 - 0xf0000000   ( 768 MB)
    [    0.000000]     pkmap   : 0xbfe00000 - 0xc0000000   (   2 MB)
    [    0.000000]     modules : 0xbf000000 - 0xbfe00000   (  14 MB)
    [    0.000000]       .text : 0x(ptrval) - 0x(ptrval)   (10208 kB)
    [    0.000000]       .init : 0x(ptrval) - 0x(ptrval)   (1024 kB)
    [    0.000000]       .data : 0x(ptrval) - 0x(ptrval)   ( 317 kB)
    [    0.000000]        .bss : 0x(ptrval) - 0x(ptrval)   ( 255 kB)
    [    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
    [    0.000000] rcu: Preemptible hierarchical RCU implementation.
    [    0.000000]  Tasks RCU enabled.
    [    0.000000] NR_IRQS: 16, nr_irqs: 16, preallocated irqs: 16
    [    0.000000] L2C: platform modifies aux control register: 0x0e030000 -> 0x3e430000
    [    0.000000] L2C: DT/platform modifies aux control register: 0x0e030000 -> 0x3e430000
    [    0.000000] L2C-310 enabling early BRESP for Cortex-A9
    [    0.000000] OMAP L2C310: ROM does not support power control setting
    [    0.000000] L2C-310 dynamic clock gating disabled, standby mode disabled
    [    0.000000] L2C-310 cache controller enabled, 16 ways, 256 kB
    [    0.000000] L2C-310: CACHE_ID 0x410000c9, AUX_CTRL 0x4e430000
    [    0.000000] OMAP clockevent source: timer2 at 24000000 Hz
    [    0.000013] sched_clock: 32 bits at 24MHz, resolution 41ns, wraps every 89478484971ns
    [    0.000030] clocksource: timer1: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 79635851949 ns
    [    0.000038] OMAP clocksource: timer1 at 24000000 Hz
    [    0.000431] clocksource: 32k_counter: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 58327039986419 ns
    [    0.000441] OMAP clocksource: 32k_counter at 32768 Hz
    [    0.000845] Console: colour dummy device 80x30
    [    0.000872] WARNING: Your 'console=ttyO0' has been replaced by 'ttyS0'
    [    0.000878] This ensures that you still see kernel messages. Please
    [    0.000882] update your kernel commandline.
    [    0.000925] Calibrating delay loop... 1987.37 BogoMIPS (lpj=9936896)
    [    0.060188] pid_max: default: 32768 minimum: 301
    [    0.060372] Mount-cache hash table entries: 2048 (order: 1, 8192 bytes)
    [    0.060397] Mountpoint-cache hash table entries: 2048 (order: 1, 8192 bytes)
    [    0.061148] CPU: Testing write buffer coherency: ok
    [    0.061203] CPU0: Spectre v2: using BPIALL workaround
    [    0.062089] Setting up static identity map for 0x80100000 - 0x80100060
    [    0.062237] rcu: Hierarchical SRCU implementation.
    [    0.062573] EFI services will not be available.
    [    0.063647] devtmpfs: initialized
    [    0.072767] VFP support v0.3: implementor 41 architecture 3 part 30 variant 9 rev 4
    [    0.073152] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
    [    0.073173] futex hash table entries: 256 (order: -1, 3072 bytes)
    [    0.076308] pinctrl core: initialized pinctrl subsystem
    [    0.077016] DMI not present or invalid.
    [    0.077446] NET: Registered protocol family 16
    [    0.079114] DMA: preallocated 256 KiB pool for atomic coherent allocations
    [    0.152618] cpuidle: using governor ladder
    [    0.152655] cpuidle: using governor menu
    [    0.159690] OMAP GPIO hardware version 0.1
    [    0.168951] No ATAGs?
    [    0.168972] hw-breakpoint: found 5 (+1 reserved) breakpoint and 1 watchpoint registers.
    [    0.168991] hw-breakpoint: maximum watchpoint size is 4 bytes.
    [    0.182532] edma 49000000.edma: TI EDMA DMA engine driver
    [    0.186456] SCSI subsystem initialized
    [    0.186955] media: Linux media interface: v0.10
    [    0.186995] videodev: Linux video capture interface: v2.00
    [    0.187109] pps_core: LinuxPPS API ver. 1 registered
    [    0.187119] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
    [    0.187138] PTP clock support registered
    [    0.187171] EDAC MC: Ver: 3.0.0
    [    0.188173] omap-mailbox 480c8000.mailbox: omap mailbox rev 0x400
    [    0.188807] Advanced Linux Sound Architecture Driver Initialized.
    [    0.189901] clocksource: Switched to clocksource timer1
    [    0.197398] NET: Registered protocol family 2
    [    0.198146] tcp_listen_portaddr_hash hash table entries: 512 (order: 0, 4096 bytes)
    [    0.198181] TCP established hash table entries: 8192 (order: 3, 32768 bytes)
    [    0.198241] TCP bind hash table entries: 8192 (order: 3, 32768 bytes)
    [    0.198314] TCP: Hash tables configured (established 8192 bind 8192)
    [    0.198488] UDP hash table entries: 512 (order: 1, 8192 bytes)
    [    0.198512] UDP-Lite hash table entries: 512 (order: 1, 8192 bytes)
    [    0.198648] NET: Registered protocol family 1
    [    0.199203] RPC: Registered named UNIX socket transport module.
    [    0.199216] RPC: Registered udp transport module.
    [    0.199221] RPC: Registered tcp transport module.
    [    0.199227] RPC: Registered tcp NFSv4.1 backchannel transport module.
    [    0.201147] Initialise system trusted keyrings
    [    0.201451] workingset: timestamp_bits=14 max_order=19 bucket_order=5
    [    0.205532] squashfs: version 4.0 (2009/01/31) Phillip Lougher
    [    0.206236] NFS: Registering the id_resolver key type
    [    0.206276] Key type id_resolver registered
    [    0.206282] Key type id_legacy registered
    [    0.206323] ntfs: driver 2.1.32 [Flags: R/O].
    [    0.208552] Key type asymmetric registered
    [    0.208569] Asymmetric key parser 'x509' registered
    [    0.208631] bounce: pool size: 64 pages
    [    0.208694] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 245)
    [    0.208705] io scheduler noop registered
    [    0.208712] io scheduler deadline registered
    [    0.208934] io scheduler cfq registered (default)
    [    0.208945] io scheduler mq-deadline registered
    [    0.208953] io scheduler kyber registered
    [    0.211834] pinctrl-single 44e10800.pinmux: 199 pins, size 796
    [    0.257888] Serial: 8250/16550 driver, 10 ports, IRQ sharing enabled
    [    0.261196] omap8250 44e09000.serial: No clock speed specified: using default: 48000000
    [    0.261909] 44e09000.serial: ttyS0 at MMIO 0x44e09000 (irq = 31, base_baud = 3000000) is a 8250
    [    0.941903] console [ttyS0] enabled
    [    0.946018] omap8250 481a6000.serial: No clock speed specified: using default: 48000000
    [    0.954795] 481a6000.serial: ttyS3 at MMIO 0x481a6000 (irq = 32, base_baud = 3000000) is a 8250
    [    0.965534] omap_rng 48310000.rng: Random Number Generator ver. 20
    [    0.971978] random: fast init done
    [    0.975597] random: crng init done
    [    0.980936] omapdss_dss 4832a000.dss: 4832a000.dss supply vdda_video not found, using dummy regulator
    [    0.990440] omapdss_dss 4832a000.dss: Linked as a consumer to regulator.0
    [    0.997367] omapdss_dss 4832a000.dss: Dropping the link to regulator.0
    [    1.017772] brd: module loaded
    [    1.029571] loop: module loaded
    [    1.035868] libphy: Fixed MDIO Bus: probed
    [    1.109966] davinci_mdio 4a101000.mdio: davinci mdio revision 1.6, bus freq 1000000
    [    1.117667] davinci_mdio 4a101000.mdio: detected phy mask fffffffe
    [    1.124945] libphy: 4a101000.mdio: probed
    [    1.128989] davinci_mdio 4a101000.mdio: phy[0]: device 4a101000.mdio:00, driver Micrel KSZ9031 Gigabit PHY
    [    1.139651] cpsw 4a100000.ethernet: Detected MACID = 34:b1:f7:3d:bc:27
    [    1.146441] cpsw 4a100000.ethernet: initialized cpsw ale version 1.4
    [    1.152908] cpsw 4a100000.ethernet: ALE Table size 1024
    [    1.158191] cpsw 4a100000.ethernet: cpts: overflow check period 500 (jiffies)
    [    1.166753] i2c /dev entries driver
    [    1.172369] cpuidle: enable-method property 'ti,am4372' found operations
    [    1.179544] sdhci: Secure Digital Host Controller Interface driver
    [    1.185855] sdhci: Copyright(c) Pierre Ossman
    [    1.191667] omap_hsmmc 47810000.mmc: Linked as a consumer to regulator.2
    [    1.222981] sdhci-pltfm: SDHCI platform and OF driver helper
    [    1.229591] ledtrig-cpu: registered to indicate activity on CPUs
    [    1.240962] NET: Registered protocol family 10
    [    1.246743] Segment Routing with IPv6
    [    1.250653] sit: IPv6, IPv4 and MPLS over IPv4 tunneling driver
    [    1.257449] NET: Registered protocol family 17
    [    1.262371] Key type dns_resolver registered
    [    1.266916] omap_voltage_late_init: Voltage driver support not added
    [    1.274246] Loading compiled-in X.509 certificates
    [    1.290049] GPIO line 119 (SelEMMCorNAND) hogged as output/low
    [    1.296767] GPIO line 136 (SelLCDorHDMI) hogged as output/low
    [    1.303276] omap-gpmc 50000000.gpmc: GPMC revision 6.0
    [    1.308445] gpmc_mem_init: disabling cs 0 mapped at 0x0-0x1000000
    [    1.316035] nand: device found, Manufacturer ID: 0x2c, Chip ID: 0xdc
    [    1.322475] nand: Micron MT29F4G08ABAEAWP
    [    1.326504] nand: 512 MiB, SLC, erase size: 256 KiB, page size: 4096, OOB size: 224
    [    1.334277] Using OMAP_ECC_BCH16_CODE_HW ECC scheme
    [    1.339274] 10 fixed-partitions partitions found on MTD device omap2-nand.0
    [    1.346288] Creating 10 MTD partitions on "omap2-nand.0":
    [    1.351725] 0x000000000000-0x000000040000 : "NAND.SPL"
    [    1.357839] 0x000000040000-0x000000080000 : "NAND.SPL.backup1"
    [    1.364580] 0x000000080000-0x0000000c0000 : "NAND.SPL.backup2"
    [    1.371267] 0x0000000c0000-0x000000100000 : "NAND.SPL.backup3"
    [    1.377870] 0x000000100000-0x000000180000 : "NAND.u-boot-spl-os"
    [    1.384779] 0x000000180000-0x000000280000 : "NAND.u-boot"
    [    1.391103] 0x000000280000-0x0000002c0000 : "NAND.u-boot-env"
    [    1.397617] 0x0000002c0000-0x000000300000 : "NAND.u-boot-env.backup1"
    [    1.404902] 0x000000300000-0x000000a00000 : "NAND.kernel"
    [    1.412040] 0x000000a00000-0x000020000000 : "NAND.file-system"
    [    1.525920] omap_i2c 44e0b000.i2c: bus 0 rev0.12 at 100 kHz
    [    1.563155] i2c i2c-1: Added multiplexed i2c bus 3
    [    1.568055] omap_i2c 4802a000.i2c: bus 1 rev0.12 at 100 kHz
    [    1.574270] omapdss_dss 4832a000.dss: 4832a000.dss supply vdda_video not found, using dummy regulator
    [    1.583670] omapdss_dss 4832a000.dss: Linked as a consumer to regulator.0
    [    1.590601] DSS: OMAP DSS rev 2.0
    [    1.594958] omapdss_dss 4832a000.dss: bound 4832a400.dispc (ops dispc_component_ops)
    [    1.603315] omapdrm omapdrm.0: DMM not available, disable DMM support
    [    1.610116] [drm] Supports vblank timestamp caching Rev 2 (21.10.2013).
    [    1.616762] [drm] No driver support for vblank timestamp query.
    [    1.683401] Console: switching to colour frame buffer device 160x45
    [    1.699570] omapdrm omapdrm.0: fb0: omapdrm frame buffer device
    [    1.706279] [drm] Initialized omapdrm 1.0.0 20110917 for omapdrm.0 on minor 0
    [    1.713979] cpu cpu0: Linked as a consumer to regulator.5
    [    1.719455] cpu cpu0: Dropping the link to regulator.5
    [    1.724866] cpu cpu0: Linked as a consumer to regulator.5
    [    1.731713] omap_gpio 44e07000.gpio: Could not set line 6 debounce to 200000 microseconds (-22)
    [    1.740581] omap_hsmmc 48060000.mmc: Got CD GPIO
    [    1.745674] omap_hsmmc 48060000.mmc: Linked as a consumer to regulator.1
    [    1.779874] hctosys: unable to open rtc device (rtc0)
    [    1.803252] net eth0: initializing cpsw version 1.15 (0)
    [    1.863711] mmc1: host does not support reading read-only switch, assuming write-enable
    [    1.874169] mmc1: new high speed SDHC card at address e624
    [    1.881138] mmcblk1: mmc1:e624 SU04G 3.69 GiB 
    [    1.889811]  mmcblk1: p1 p2
    [    1.914248] Micrel KSZ9031 Gigabit PHY 4a101000.mdio:00: attached PHY driver [Micrel KSZ9031 Gigabit PHY] (mii_bus:phy_addr=4a101000.mdio:00, irq=POLL)
    [    1.932244] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready
    [    5.051653] cpsw 4a100000.ethernet eth0: Link is Up - 1Gbps/Full - flow control off
    [    5.079975] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
    [    5.110047] Sending DHCP requests ., OK
    [    5.153943] IP-Config: Got DHCP answer from 192.168.0.1, my address is 192.168.0.13
    [    5.161996] IP-Config: Complete:
    [    5.165394]      device=eth0, hwaddr=34:b1:f7:3d:bc:27, ipaddr=192.168.0.13, mask=255.255.255.0, gw=192.168.0.1
    [    5.175737]      host=192.168.0.13, domain=linux_box.internal.ti.com, nis-domain=(none)
    [    5.183955]      bootserver=192.168.0.1, rootserver=192.168.0.1, rootpath=
    [    5.183967]      nameserver0=8.8.8.8, nameserver1=8.8.4.4
    [    5.197191] ALSA device list:
    [    5.200409]   No soundcards found.
    [    5.211126] VFS: Mounted root (nfs filesystem) on device 0:15.
    [    5.217421] devtmpfs: mounted
    [    5.222398] Freeing unused kernel memory: 1024K
    [    5.227089] Run /sbin/init as init process
    [    6.184673] systemd[1]: System time before build time, advancing clock.
    [    6.446415] systemd[1]: systemd 244.3+ running in system mode. (+PAM -AUDIT -SELINUX +IMA -APPARMOR -SMACK +SYSVINIT +UTMP -LIBCRYPTSETUP -GCRYPT -GNUTLS +ACL +XZ -LZ4 -SECCOMP +BLKID -ELFUTILS +KMOD )
    [    6.469664] systemd[1]: Detected architecture arm.
    
    Welcome to Arago 2020.05!
    
    [    6.548888] systemd[1]: Set hostname to <am437x-evm>.
    [    9.045648] systemd[1]: system-getty.slice: unit configures an IP firewall, but the local system does not support BPF/cgroup firewalling.
    [    9.058249] systemd[1]: (This warning is only shown for the first unit using IP firewalling.)
    [    9.071436] systemd[1]: Created slice system-getty.slice.
    [  OK  ] Created slice system-getty.slice.
    [    9.115388] systemd[1]: Created slice system-serial\x2dgetty.slice.
    [  OK  ] Created slice system-serial\x2dgetty.slice.
    [    9.152118] systemd[1]: Created slice User and Session Slice.
    [  OK  ] Created slice User and Session Slice.
    [    9.191435] systemd[1]: Started Dispatch Password Requests to Console Directory Watch.
    [  OK  ] Started Dispatch Password ��…ts to Console Directory Watch.
    [    9.231346] systemd[1]: Started Forward Password Requests to Wall Directory Watch.
    [  OK  ] Started Forward Password R��…uests to Wall Directory Watch.
    [    9.272128] systemd[1]: Reached target Paths.
    [  OK  ] Reached target Paths.
    [    9.300369] systemd[1]: Reached target Remote File Systems.
    [  OK  ] Reached target Remote File Systems.
    [    9.341097] systemd[1]: Reached target Slices.
    [  OK  ] Reached target Slices.
    [    9.370438] systemd[1]: Reached target Swap.
    [  OK  ] Reached target Swap.
    [    9.462760] systemd[1]: Listening on RPCbind Server Activation Socket.
    [  OK  ] Listening on RPCbind Server Activation Socket.
    [    9.501049] systemd[1]: Reached target RPC Port Mapper.
    [  OK  ] Reached target RPC Port Mapper.
    [    9.555433] systemd[1]: Listening on Process Core Dump Socket.
    [  OK  ] Listening on Process Core Dump Socket.
    [    9.590839] systemd[1]: Listening on initctl Compatibility Named Pipe.
    [  OK  ] Listening on initctl Compatibility Named Pipe.
    [    9.838549] systemd[1]: Condition check resulted in Journal Audit Socket being skipped.
    [    9.849136] systemd[1]: Listening on Journal Socket (/dev/log).
    [  OK  ] Listening on Journal Socket (/dev/log).
    [    9.892386] systemd[1]: Listening on Journal Socket.
    [  OK  ] Listening on Journal Socket.
    [    9.924259] systemd[1]: Listening on Network Service Netlink Socket.
    [  OK  ] Listening on Network Service Netlink Socket.
    [    9.962484] systemd[1]: Listening on udev Control Socket.
    [  OK  ] Listening on udev Control Socket.
    [   10.001707] systemd[1]: Listening on udev Kernel Socket.
    [  OK  ] Listening on udev Kernel Socket.
    [   10.042263] systemd[1]: Condition check resulted in Huge Pages File System being skipped.
    [   10.059812] systemd[1]: Mounting POSIX Message Queue File System...
             Mounting POSIX Message Queue File System...
    [   10.124946] systemd[1]: Mounting Kernel Debug File System...
             Mounting Kernel Debug File System...
    [   10.212133] systemd[1]: Mounting Temporary Directory (/tmp)...
             Mounting Temporary Directory (/tmp)...
    [   10.230622] systemd[1]: Condition check resulted in Create list of static device nodes for the current kernel being skipped.
    [   10.260284] systemd[1]: Starting Start psplash boot splash screen...
             Starting Start psplash boot splash screen...
    [   10.493463] systemd[1]: Started Hardware RNG Entropy Gatherer Daemon.
    [  OK  ] Started Hardware RNG Entropy Gatherer Daemon.
    [   10.673124] systemd[1]: Starting RPC Bind...
             Starting RPC Bind...
    [   10.685373] systemd[1]: Condition check resulted in File System Check on Root Device being skipped.
    [   10.728240] systemd[1]: Starting Journal Service...
             Starting Journal Service...
    [   10.865097] systemd[1]: Starting Load Kernel Modules...
             Starting Load Kernel Modules...
    [   10.936604] systemd[1]: Starting Remount Root and Kernel File Systems...
             Starting Remount Root and Kernel File Systems...
    [   11.046611] systemd[1]: Starting udev Coldplug all Devices...
    [   11.072411] cmemk: loading out-of-tree module taints kernel.
    [   11.110152] CMEMK module: reference Linux version 4.19.94
             Starting udev Coldplug all Devices...
    [   11.135937] systemd[1]: Started Start psplash boot splash screen.
    [   11.142421] no physical memory specified
    [   11.199485] cmemk initialized
    [  OK  ] Started Start psplash boot splash screen.
    [   11.235588] systemd[1]: Mounted POSIX Message Queue File System.
    [   11.270448] cryptodev: driver 1.9 loaded.
    [  OK  ] Mounted POSIX Message Queue File System.
    [   11.311191] systemd[1]: Mounted Kernel Debug File System.
    [  OK  ] Mounted Kernel Debug File System.
    [   11.346943] systemd[1]: Mounted Temporary Directory (/tmp).
    [  OK  ] Mounted Temporary Directory (/tmp).
    [   11.414120] systemd[1]: Started Load Kernel Modules.
    [  OK  ] Started Load Kernel Modules.
    [   11.451452] systemd[1]: Started Remount Root and Kernel File Systems.
    [  OK  ] Started Remount Root and Kernel File Systems.
    [   11.482040] systemd[1]: Condition check resulted in FUSE Control File System being skipped.
    [   11.536514] systemd[1]: Mounting Kernel Configuration File System...
             Mounting Kernel Configuration File System...
    [   11.644654] systemd[1]: Started Start psplash-systemd progress communication helper.
    [  OK  ] Started Start psplash-syst��…progress communication helper.
    [   11.751040] systemd[1]: Condition check resulted in Rebuild Hardware Database being skipped.
    [   11.781440] systemd[1]: Starting Apply Kernel Variables...
             Starting Apply Kernel Variables...
    [   11.830762] systemd[1]: Condition check resulted in Create System Users being skipped.
    [   11.866571] systemd[1]: Starting Create Static Device Nodes in /dev...
             Starting Create Static Device Nodes in /dev...
    [   11.923349] systemd[1]: Started Journal Service.
    [  OK  ] Started Journal Service.
    [  OK  ] Mounted Kernel Configuration File System.
             Starting Flush Journal to Persistent Storage...
    [  OK  ] Started Apply Kernel Variables.
    [   12.242514] systemd-journald[85]: Received client request to flush runtime journal.
    [  OK  ] Started Flush Journal to Persistent Storage.
    [  OK  ] Started Create Static Device Nodes in /dev.
    [  OK  ] Reached target Local File Systems (Pre).
             Mounting /media/ram...
             Mounting /var/volatile...
             Starting udev Kernel Device Manager...
    [  OK  ] Mounted /media/ram.
    [  OK  ] Mounted /var/volatile.
             Starting Load/Save Random Seed...
    [  OK  ] Reached target Local File Systems.
             Starting Create Volatile Files and Directories...
    [  OK  ] Started Load/Save Random Seed.
    [  OK  ] Started udev Kernel Device Manager.
    [  OK  ] Started Create Volatile Files and Directories.
             Starting Network Time Synchronization...
             Starting Update UTMP about System Boot/Shutdown...
    [  OK  ] Started Update UTMP about System Boot/Shutdown.
    [  OK  ] Started udev Coldplug all Devices.
    [   ***] (1 of 2) A start job is running for��…e Synchronization (20s / 1min 34s)
    [   29.929957] nfs: server 192.168.0.1 not responding, still trying
    [    **] (1 of 2) A start job is running for��…e Synchronization (21s / 1min 34s)
    [   30.688408] omap_wdt: OMAP Watchdog Timer Rev 0x01: initial timeout 60 sec
    [     *] (2 of 2) A start job is running for RPC Bind (22s / 1min 31s)
    [   31.221970] remoteproc remoteproc0: wkup_m3 is available
    [   31.639042] remoteproc remoteproc0: powering up wkup_m3
    [    **] (2 of 2) A start job is running for[   31.669720] ov2659 0-0030: Sensor detection failed (3030, 0)
     RPC Bind (22s / 1min 31s)
    [   31.831093] pixcir_ts 1-005c: Failed to set IDLE mode
    [   31.861289] remoteproc remoteproc0: Booting fw image am335x-pm-firmware.elf, size 243232
    [   31.880303] ov2659 1-0030: Found OV2656 sensor
    [   31.940311] pixcir_ts: probe of 1-005c failed with error -121
    [   31.960613] remoteproc remoteproc0: remote processor wkup_m3 is now up
    [   31.967209] wkup_m3_ipc 44e11324.wkup_m3_ipc: CM3 Firmware Version = 0x192
    [   ***] (2 of 2) A start job is running for RPC Bind (23s / 1min 31s)
    [   32.293761] CAN device driver interface
    [   32.425016] c_can_platform 481cc000.can: c_can_platform device registered (regs=01f0cd87, irq=61)
    [***   ] (1 of 2) A start job is running for��…e Synchronization (24s / 1min 34s)
    [   33.944523] omap-sham 53100000.sham: hw accel on OMAP rev 0.0
    [   34.034853] omap-aes 53501000.aes: OMAP AES hw accel rev: 0.1
    [   34.056796] omap-des 53701000.des: OMAP DES hw accel rev: 0.33
    [   34.139056] omap-aes 53501000.aes: will run requests pump with realtime priority
    [**    ] (2 of 2) A start job is running for RPC Bind (25s / 1min 31s)
    [   34.252017] [drm] Initialized pvr 1.17.4948957 20110701 for 56000000.sgx on minor 1
    [**    ] (2 of 2) A start job is running for RPC Bind (26s / 1min 31s)
    [  OK  ] Created slice system-weston.slice.
    [   36.581565] asoc-simple-card sound@1: i2s-hifi <-> 4803c000.mcasp mapping ok
    [   36.588687] asoc-simple-card sound@1: ASoC: no DMI vendor name!
    [   ***] (2 of 2) A start job is running for RPC Bind (33s / 1min 31s)
    [   43.258977] dwc3 48390000.usb: Failed to get clk 'ref': -2
    [    **] (2 of 2) A start job is running for RPC Bind (34s / 1min 31s)
    [   43.529682] dwc3 483d0000.usb: Failed to get clk 'ref': -2
    [   43.789022] remoteproc remoteproc1: 54434000.pru is available
    [     *] (2 of 2) A start job is running for RPC Bind[   44.051105] remoteproc remoteproc2: 54438000.pru is available
     (35s / 1min 31s)
    [   44.110055] pru-rproc 54438000.pru: PRU rproc node pru@54438000 probed successfully
    [   44.161659] remoteproc remoteproc3: 54474000.pru is available
    [   44.188196] pru-rproc 54474000.pru: PRU rproc node pru@54474000 probed successfully
    [   44.212182] usbcore: registered new interface driver usbfs
    [   44.240277] usbcore: registered new interface driver hub
    [   44.250609] remoteproc remoteproc4: 54478000.pru is available
    [   44.256498] pru-rproc 54478000.pru: PRU rproc node pru@54478000 probed successfully
    [   44.282323] usbcore: registered new device driver usb
    [   44.393941] xhci-hcd xhci-hcd.5.auto: xHCI Host Controller
    [   44.399509] xhci-hcd xhci-hcd.5.auto: new USB bus registered, assigned bus number 1
    [    **] (1 of 2) A start job is running for��…ime Synchronization (9s / 1min 8s)
    [   44.560569] xhci-hcd xhci-hcd.5.auto: irq 110, io mem 0x483d0000
    [   44.590160] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 4.19
    [   44.598479] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
    [   44.630000] usb usb1: Product: xHCI Host Controller
    [   44.634916] usb usb1: Manufacturer: Linux 4.19.94-gbe5389fd85 xhci-hcd
    [   44.679998] usb usb1: SerialNumber: xhci-hcd.5.auto
    [   44.687009] hub 1-0:1.0: USB hub found
    [   44.710038] hub 1-0:1.0: 1 port detected
    [   44.723439] xhci-hcd xhci-hcd.5.auto: xHCI Host Controller
    [   44.728983] xhci-hcd xhci-hcd.5.auto: new USB bus registered, assigned bus number 2
    [   44.759997] xhci-hcd xhci-hcd.5.auto: Host supports USB 3.0 SuperSpeed
    [   44.790207] usb usb2: We don't know the algorithms for LPM for this host, disabling LPM.
    [   44.820185] usb usb2: New USB device found, idVendor=1d6b, idProduct=0003, bcdDevice= 4.19
    [   44.828506] usb usb2: New USB device strings: Mfr=3, Product=2, SerialNumber=1
    [   44.860040] usb usb2: Product: xHCI Host Controller
    [   44.864956] usb usb2: Manufacturer: Linux 4.19.94-gbe5389fd85 xhci-hcd
    [   44.900003] usb usb2: SerialNumber: xhci-hcd.5.auto
    [   ***] (1 of 2) A start job is [   44.921621] hub 2-0:1.0: 1 port detected
    running for��…ime Synchronization (9s / 1min 8s)
    [   45.089978] usb 1-1: new low-speed USB device number 2 using xhci-hcd
    [   45.307728] usb 1-1: New USB device strings: Mfr=1, Product=3, SerialNumber=0
    [  *** ] (1 of 2) A start job is running for��…me Synchronization (10s / 1min 8s)
    [   45.340087] usb 1-1: Product: Microsoft 3-Button Mouse with IntelliEye(TM)
    [   45.347009] usb 1-1: Manufacturer: Microsoft
    [   45.631312] input: Microsoft Microsoft 3-Button Mouse with IntelliEye(TM) as /devices/platform/44000000.ocp/483c0000.omap_dwc3/483d0000.usb/xhci-hcd.5.auto/usb1/1-1/1-1:1.0/0003:045E:0040.0001/input/i2
    [ ***  ] (2 of 2) A start job is running for RPC Bind (36s / 1min 31s)
    [   45.743120] usbcore: registered new interface driver usbhid
    [  OK  ] Created slice system-systemd\x2dfsck.slice.
    [  OK  ] Listening on Load/Save RF ��…itch Status /dev/rfkill Watch.
             Starting File System Check on /dev/mmcblk1p1...
             Starting File System Check on /dev/mmcblk1p2...
    [  OK  ] Started File System Check on /dev/mmcblk1p2.
             Mounting /run/media/mmcblk1p2...
    [  OK  ] Started File System Check on /dev/mmcblk1p1.
    [   49.130174] EXT4-fs (mmcblk1p2): mounting ext3 file system using the ext4 subsystem
             Mounting /run/media/mmcblk1p1...
    [   49.205524] EXT4-fs (mmcblk1p2): mounted filesystem with ordered data mode. Opts: (null)
    [  OK  ] Mounted /run/media/mmcblk1p2.
    [  OK  ] Mounted /run/media/mmcblk1p1.
    [***   ] (1 of 2) A start job is running for��…k Time Synchronization (17s / 55s)
    [   65.770051] nfs: server 192.168.0.1 not responding, still trying
    [  OK  ] Started RPC Bind.
    [FAILED] Failed to start Network Time Synchronization.
    See 'systemctl status systemd-timesyncd.service' for details.
    [  OK  ] Stopped Network Time Synchronization.
             Starting Network Time Synchronization...
    [ ***  ] A start job is running for Network ��…me Synchronization (8s / 1min 30s)
    [   ***] A start job is running for Network ��…e Synchronization (11s / 1min 30s)
    [  OK  ] Started Network Time Synchronization.
    [  OK  ] Reached target System Initialization.
    [  OK  ] Started Daily Cleanup of Temporary Directories.
    [  OK  ] Reached target System Time Set.
    [  OK  ] Reached target System Time Synchronized.
    [  OK  ] Started Daily rotation of log files.
    [  OK  ] Reached target Timers.
    [  OK  ] Listening on Avahi mDNS/DNS-SD Stack Activation Socket.
    [  OK  ] Listening on D-Bus System Message Bus Socket.
    [  OK  ] Listening on dropbear.socket.
    [  OK  ] Reached target Sockets.
    [  OK  ] Reached target Basic System.
             Starting Save/Restore Sound Card State...
    [  OK  ] Started Job spooling tools.
    [  OK  ] Started Periodic Command Scheduler.
    [  OK  ] Started D-Bus System Message Bus.
             Starting Print notice about GPLv3 packages...
             Starting IPv6 Packet Filtering Framework...
             Starting IPv4 Packet Filtering Framework...
             Starting Reboot and dump vmcore via kexec...
             Starting rc.pvr.service...
             Starting Login Service...
    [  OK  ] Started Save/Restore Sound Card State.
    [  OK  ] Started IPv6 Packet Filtering Framework.
    [  OK  ] Started IPv4 Packet Filtering Framework.
    [  OK  ] Started Reboot and dump vmcore via kexec.
    [  OK  ] Reached target Network (Pre).
    [  OK  ] Reached target Sound Card.
             Starting Network Service...
    [  118.017024] PVR_K: UM DDK-(4948957) and KM DDK-(4948957) match. [ OK ]
    [  127.370045] nfs: server 192.168.0.1 not responding, still trying
    [  163.050047] nfs: server 192.168.0.1 not responding, still trying
    [  168.250102] nfs: server 192.168.0.1 OK
    ***************************************************************
    ***************************************************************
    NOTICE: This file system contains the following GPLv3 packages:
            bash-dev
            bash
            bc
            binutils
            cifs-utils
            coreutils-stdbuf
            coreutils
            cpio
            dosfstools
            elfutils
            gawk
            gdb
            gdbserver
            glmark2
            gstreamer1.0-libav
            gzip
            less
            libasm1
            libbfd
            libdw1
            libelf1
            libgdbm-compat4
            libgdbm-dev
            libgdbm6
            libgmp10
            libidn2-0
            libreadline-dev
            libreadline8
            libunistring2
            m4-dev
            m4
            nettle
            pdm-anomaly-detection
            tar
            which
    
    If you do not wish to distribute GPLv3 components please remove
    the above packages prior to distribution.  This can be done using
    the opkg remove command.  i.e.:
        opkg remove <package>
    Where <package> is the name printed in the list above
    
    NOTE: If the package is a dependency of another package you
          will be notified of the dependent packages.  You should
          use the --force-removal-of-dependent-packages option to
          also remove the dependent packages as well
    ***************************************************************
    ***************************************************************
    [  OK  ] Started Network Service.
    [  OK  ] Started Print notice about GPLv3 packages.
    [  OK  ] Started rc.pvr.service.
             Starting Wait for Network to be Configured...
             Starting Network Name Resolution...
             Starting weston.service...
    [  OK  ] Started Wait for Network to be Configured.
    [  218.120189] nfs: server 192.168.0.1 OK
    [  OK  ] Started Login Service.
    [  OK  ] Started weston.service.
             Starting Matrix GUI...
             Starting telnetd.service...
    [  OK  ] Started telnetd.service.
    [  OK  ] Started Matrix GUI.
    [  225.300237] nfs: server 192.168.0.1 not responding, still trying
    [  229.713791] cryptd: max_cpu_qlen set to 1000
    [     *] A start job is running for Network ��…e Resolution (4min 18s / 4min 50s)
    [  OK  ] Started Network Name Resolution.
    [  OK  ] Reached target Network.
    [  OK  ] Reached target Network is Online.
    [  OK  ] Reached target Host and Network Name Lookups.
             Starting Avahi mDNS/DNS-SD Stack...
             Starting Enable and configure wl18xx bluetooth stack...
             Starting Lighttpd Daemon...
             Starting LSB: network benchmark...
    [  OK  ] Started NFS status monitor for NFSv2/3 locking..
    [  OK  ] Started strongSwan IPsec I��…IKEv2 daemon using ipsec.conf.
             Starting Permit User Sessions...
    [  OK  ] Started LSB: network benchmark.
             Starting parse-ip.service...
             Starting thermal-zone-init.service...
    [  OK  ] Started Permit User Sessions.
    [  OK  ] Started parse-ip.service.
    [  OK  ] Started thermal-zone-init.service.
    [  OK  ] Started Getty on tty1.
    [  OK  ] Started Serial Getty on ttyS0.
    [  OK  ] Reached target Login Prompts.
             Starting Synchronize System and HW clocks...
    [  OK  ] Started Weston Wayland Compositor.
    [  OK  ] Started Lighttpd Daemon.
    [  OK  ] Started Synchronize System and HW clocks.
    [  OK  ] Started Enable and configure wl18xx bluetooth stack.
    
     _____                    _____           _         _   
    |  _  |___ ___ ___ ___   |  _  |___ ___  |_|___ ___| |_ 
    |     |  _| .'| . | . |  |   __|  _| . | | | -_|  _|  _|
    |__|__|_| |__,|_  |___|  |__|  |_| |___|_| |___|___|_|  
                  |___|                    |___|            
    
    Arago Project http://arago-project.org am437x-evm ttyS0
    
    Arago 2020.05 am437x-evm ttyS0
    
    am437x-evm login: [  276.713286] Initializing XFRM netlink socket
    
    am437x-evm login: root
    


  • Hello Krunal,

    We did performance testing on new rootfs with old uboot and kernel. We observed better performance with new rootfs compared previous SDK but still not close to iMX6 Solo

    Screen switch timing - QtWidget application

    TI AM4378 (New rootfs) - 1.80 to 1.85 seconds
    iMX6 Solo - 1.00 to 1.02 seconds
    iMX6 UL (528 MHz) - 2.48 to 2.55 seconds
    TI AM4378 (SDK 6 April 2020) - 2.95 to 3.01 seconds 

    I suspect still something missing with TI build. 


    Thanks and Regards
    Pravin Yadav 

  • Hi Pravin,

    Thanks for running the tests and I am internally checking with our developers. Also, I just wanted to confirm that for all the boards you are running the above tests on a 800x480 screen and with the Qt "EGLFS" platform plugin.

    Regards,
    Krunal

  • Hi Pravin,

    Could you please share the Qt version that is running on the iMX6 Solo?

    Regards,
    Krunal

  • Hi Krunal,

    All build and devices are tested with EGLFS platform except iMX6 UL (which is x11) 
    All devices are with same display size 800x480
    iMX6 Solo tested with Morty Qt 5.7.1, Rocko Qt 5.9 and Warrior Qt 5.12 and observed same result across all yocto build and Qt versions

    Thanks and Regards
    Pravin Yadav

  • Hello Pravin,

    Could you please share the Qt config for the other platforms. The config is part of the Yocto build artifacts and it will be located in the following directory: build/<arago-build-folder/work/<arch string>/<recipe-name>/<version-string>/temp/log.do_configure. For example, TI config is located in the following directory: build/arago-tmp-external-arm-toolchain/work/aarch64-linux/qtbase/5.13.xxx/temp/log.do_configure

    Regards,
    Krunal

  • Hi Krunal,

    Please find attached config file of Yocto warrior Qt 5.12. This is config of x11 because this was last build in our system.

    log_config.zip

  • Hi Pravin,

    Thanks for sharing the log but the above config does not even enable Qt Widget ( Qt Widgets ............................. no) and it is for a x86_64 machine (Building on: linux-oe-g++ (x86_64, CPU features: mmx sse sse2)) Would it be possible for you to share the iMX6Solo arm+eglfs config file because it will help me perform apples to apples comparison with my AM437x config.

    Regards,
    Krunal

  • Hi Krunal,

    Files are attached.

    Thanks and Regards
    Pravin Yadav

  • Hi Pravin,

    Thank you for sharing the files and based on my comparison, I am seeing a couple of differences in the compiler settings. I am having an internal discussion with our driver team and I will get back you within 24-48 hours.

    Regards,
    Krunal

  • Hi Pravin,

    Could you please share the CPU usage for the iMX board where you observe the best performance? While running the application, please run the "top" command.

    Regards,
    Krunal

  • Also, could you please share the code that allows you to measure the time it take for CPU to copy the image?

    Regards,
    Krunal

  • Hi Krunal,

    Please find attached screen shot for both system

    We calculated time using Qt stop watch mechanism. Also this switching time is visible to us means 1 seconds for Solo and almost 2 seconds (1.80 seconds) for TI.

    TI CPU Usage

     

    Solo CPU usage

  • Hi Pravin,

    Thank you for the snapshots.

    Also this switching time is visible to us means 1 seconds for Solo and almost 2 seconds (1.80 seconds) for TI.

     Is there a way you could share the code/method for running the Qt stop watch? We are trying to run more internal tests and we would like to benchmark the applications based on your setup. Also, the application loads two images, "Next" and "Previous". Does it take 2 seconds to load from "Next" to "Previous" or from "Previous" to "Next"? On my setup, I see it takes more time to load from "Previous" to "Next" and wanted to confirm that you see the same behavior. 

    Regards,
    Krunal

  • Hi Krunal,

    Switching time depends on application but one of our benchmark application takes 1.8 seconds using new rootfs recently shared by you. So generally screen with more number of objects takes time. Generally we use following methodology to calculate timing but performance difference is visible between iMX6 Solo and TI AM4378

    struct timespec TimeDiff::diff(struct timespec start, struct timespec end)

    {

    struct timespec temp;
    if ((end.tv_nsec - start.tv_nsec) < 0) {
    temp.tv_sec = end.tv_sec-start.tv_sec-1;
    temp.tv_nsec = 1000000000 + end.tv_nsec-start.tv_nsec;
    } else {
    temp.tv_sec = end.tv_sec - start.tv_sec;
    temp.tv_nsec = end.tv_nsec - start.tv_nsec;
    }
    return temp;
    }

    struct timespec start, end , elpased;
    clock_gettime(CLOCK_MONOTONIC, &start);
    // performing some operation
    //
    //
    clock_gettime(CLOCK_MONOTONIC, &end);
    elpased = diff(start,end) ;

    Thanks and Regards
    Pravin Yadav