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.

AM5728 Linux operation with single Cortex-A15

Genius 5785 points
Other Parts Discussed in Thread: AM5728

Hello,

I'd like to know a performance as single Cortex-A15 on AM5728. So I unckeck "Symmetric Multi-Processing" in Kernel Features by doing the menuconfig. Then I build zImage and am57xx-evm.dts. After that I boot the kernel through TFTP. The kernel is bootded up and I can log on. But I can't see the top of Matrix Gui application on the LCD even though it started. I only see "Please wait..." on the LCD. Please see the attached log. I use Processor SDK v2.0.1.7. Please give me advice.

Regards,
Kazu52855.bootlog.txt

  • Hi Kazu,

    I see some problems in the attached boot log. The first log crash is due to unchecking of the "Symmetric Multi-Processing" node in the menuconfig which can be see at:
    [ 0.000000] WARNING: CPU: 0 PID: 0 at arch/arm/kernel/devtree.c:144 arm_dt_init_cpu_maps+0xdc/0x134()
    [ 0.000000] DT /cpu 2 nodes greater than max cores 1, capping them
    ...........................
    but seems that the system continue with booting.
    The errors which causing the problem with the fail of starting of matrix GUI application are related with:
    Initializing the graphics driver ...
    PVR:(Warning): PVRDRMSetFD: could not get plugin ioctl base: -19 [69, /pvr_bridge_u.c]
    PVR:(Error): OpenServices: drmOpen failed [120, /pvr_bridge_u.c]
    PVR:(Error): PVRSRVInitSrvConnect: PVRSRVConnect failed [2572, /bridged_pvr_glue.c]
    PVR:(Error): SrvInit: PVRSRVInitSrvConnect failed (4) [37, /srvinit.c]
    PVR:(Error): main: SrvInit failed (4) [47, /pvrsrvinit.c]

    Could you try to boot with "Symmetric Multi-Processing" node enabled and search in the log for the errors described above. If the errors does not appear therefor there is incompatibility between unchecking of "Symmetric Multi-Processing" and operating of Matrix GUI application.

    Also you can make attempt to restart the Matrix by the commands:
    /etc/init.d/matrix-gui-2.0 stop
    /etc/init.d/matrix-gui-2.0 start

    BR
    Tsvetolin Shulev
  • Tsvetolin Shulev,

    Thank you for your reply. I don't find these errors in the boot log by enabled "Symmetric Multi-Processing". It seems necessary. In the disabled "Symmetric Multi-Processing", it looks like stopping Matrix Gui is not working because it has not started correctly. Could you tell me how to configure a single core on AM5728?

    root@am57xx-evm:~# /etc/init.d/matrix-gui-2.0 stop
    Stopping Matrix GUI applicationstart-stop-daemon: warning: killing process 928: No such process
    .
    root@am57xx-evm:~# /etc/init.d/matrix-gui-2.0 start
    /home/root
    Removing stale PID file /var/run/matrix-gui-2.0.pid.
    Starting Matrix GUI application.
    root@am57xx-evm:~#

    Regards,
    Kazu

  • Kazu,

    Seems that disabling the "Symmetric Multi-Processing" causes errors and could not be used with Processor SDK. Therefore I suggest you to use a different way to make your application to rum on only one core and that you can measure the performance of a single Cortex-A15 core of AM5728. You can use the "sched_setaffinity" command in your test application to make the application work on only one core. You can see the man page of the "sched_setaffinity" command at:
    man7.org/.../sched_setaffinity.2.html

    BR
    Tsvetolin Shulev
  • 0601.bootlog_devtree_test.txtTsvetolin Shulev,

    Thank you for your information. Is sched_setaffinity the system call? I'd like to check the difference by existing application of Matrix Gui. I found taskset command and invoked it below. But I can't find the difference between cores.

    root@am57xx-evm:/usr/bin# ./whetstone 100000

    Loops: 100000, Iterations: 1, Duration: 4 sec.
    C Converted Double Precision Whetstones: 2500.0 MIPS
    root@am57xx-evm:/usr/bin# taskset -c 0 ./whetstone 100000

    Loops: 100000, Iterations: 1, Duration: 4 sec.
    C Converted Double Precision Whetstones: 2500.0 MIPS
    root@am57xx-evm:/usr/bin# taskset -c 1 ./whetstone 100000

    Loops: 100000, Iterations: 1, Duration: 4 sec.
    C Converted Double Precision Whetstones: 2500.0 MIPS
    root@am57xx-evm:/usr/bin#

    I also chenged the device tree file below. It looks like booting single core(CPU0) because I don't find the descriptions about CPU1. But I see two cores in cpuinfo command. Please see the attached log. Could you give me some advice?

    /linux/arch/arm/boot/dts/dra74x.dtsi

     cpus {
      #address-cells = <1>;
      #size-cells = <0>;

      cpu0: cpu@0 {
       device_type = "cpu";
       compatible = "arm,cortex-a15";
       reg = <0>;

       operating-points = <
        /* kHz    uV */
        1000000 1060000
        >;

       clocks = <&dpll_mpu_ck>;
       clock-names = "cpu";

       clock-latency = <300000>; /* From omap-cpufreq driver */

       /* cooling options */
       cooling-min-level = <0>;
       cooling-max-level = <2>;
       #cooling-cells = <2>; /* min followed by max */
      };
    /*  cpu@1 {
       device_type = "cpu";
       compatible = "arm,cortex-a15";
       reg = <1>;
      };*/
     };

    Regards,
    Kazu