imx6q multicore test in platform SDK is not working

cancel
Showing results for 
Search instead for 
Did you mean: 

imx6q multicore test in platform SDK is not working

Jump to solution
543 Views
deanchu
Contributor I

Hello all,

I'm trying to run the multicore test from the platform SDK v1.1 on my SABER-SDB rev A (i.MX6Q).

I built the bin file with "./tools/build_sdk -t mx6dq -b smart_device -board_rev a". And downloaded "./output/mx6dq/sdk_unit_test/smart_device_rev_a/sdk_unit_test_ALL.bin" to an SD card with cf_imager.

"cfimager -raw -f ./sdk_unit_test_ALL.bin -d i -a"

The board boots perfectly, and other tests works fine. But when it comes to the multicore test, the program stuck after CPU0 sent SGI to CPU1.

Select test to run:

mc

Running the GIC Multicore Test

Starting and sending SGIs to secondary CPUs for "hello world"

secondary main cpu: 1

secondary main cpu: 2

secondary main cpu: 3

Hello from CPU 0

"secondary main cpu: x" indicates that all CPUs are on, but it seems CPU1 dosen't  receive any SGI signal or maybe the gic isn't initialized properly on CPU1.  I didn't modify any code of the platform SDK, and i have re-downloaded the SDK and tried again, but it was still not working.

Has anyone runs the multicore test successfully? I need some hints.

Thanks

Dean Chu

Labels (6)
Tags (2)
0 Kudos
1 Solution
98 Views
b47504
NXP Employee
NXP Employee

Hi Dean Chu,

Please apply the following patch, I have verified on imx6dq sd board.

Patch:

--- a/sdk/drivers/cpu_utility/test/multicore_test.c
+++ b/sdk/drivers/cpu_utility/test/multicore_test.c
@@ -128,6 +128,7 @@ void multicore_entry(void * arg)
     else
     {
         printf("secondary main cpu: %d\n", cpu_id);
+       arm_set_interrupt_state(true);

         if (cpu_id == (cpuCount - 1))
         {

Test Result on imx6dq:

**************************************************************************
    Platform SDK (1.1) for MX6DQ TO1.2 Smart Device (SD) rev. C
    Build: Dec 12 2013, 05:10:10
    Copyright (c) 2012-2013 Freescale Semiconductor, Inc. All rights reserved.
**************************************************************************

========== Clock frequencies ===========
CPU: 792000 kHz
DDR: 528000 kHz
IPG: 66000 kHz
Debug UART: 80000000 Hz
========================================


  SDK Unit Tests
  --------------

  e - epit test
  g - gpt test
  i - i2c test
  w - pwm test
  s - sdma test
  r - snvs rtc test
  v - snvs srtc test
  t - tempmon test
  u - uart test
  d - usdhc test
  c - gic test
  m - microseconds timer test
  wa - watchdog test
  o - ocotp test
  wp - cpu workpoint test
  h - hdmi test
  ip - ipu test
  mc - multicore test
  sa - sata test
  a - audio test
  ca - camera test
  us - usb test
  n - spi nor test
  pc - pcie test
  en - enet test
  k - keypad test
  x - accelerometer test
  q - Exit menu.

  Select test to run:
mc
Running the GIC Multicore Test
Starting and sending SGIs to secondary CPUs for "hello world"

secondary main cpu: 1
secondary main cpu: 2
secondary main cpu: 3
Hello from CPU 0
Hello from CPU 1
Hello from CPU 2
Hello from CPU 3

End of test

View solution in original post

0 Kudos
3 Replies
99 Views
b47504
NXP Employee
NXP Employee

Hi Dean Chu,

Please apply the following patch, I have verified on imx6dq sd board.

Patch:

--- a/sdk/drivers/cpu_utility/test/multicore_test.c
+++ b/sdk/drivers/cpu_utility/test/multicore_test.c
@@ -128,6 +128,7 @@ void multicore_entry(void * arg)
     else
     {
         printf("secondary main cpu: %d\n", cpu_id);
+       arm_set_interrupt_state(true);

         if (cpu_id == (cpuCount - 1))
         {

Test Result on imx6dq:

**************************************************************************
    Platform SDK (1.1) for MX6DQ TO1.2 Smart Device (SD) rev. C
    Build: Dec 12 2013, 05:10:10
    Copyright (c) 2012-2013 Freescale Semiconductor, Inc. All rights reserved.
**************************************************************************

========== Clock frequencies ===========
CPU: 792000 kHz
DDR: 528000 kHz
IPG: 66000 kHz
Debug UART: 80000000 Hz
========================================


  SDK Unit Tests
  --------------

  e - epit test
  g - gpt test
  i - i2c test
  w - pwm test
  s - sdma test
  r - snvs rtc test
  v - snvs srtc test
  t - tempmon test
  u - uart test
  d - usdhc test
  c - gic test
  m - microseconds timer test
  wa - watchdog test
  o - ocotp test
  wp - cpu workpoint test
  h - hdmi test
  ip - ipu test
  mc - multicore test
  sa - sata test
  a - audio test
  ca - camera test
  us - usb test
  n - spi nor test
  pc - pcie test
  en - enet test
  k - keypad test
  x - accelerometer test
  q - Exit menu.

  Select test to run:
mc
Running the GIC Multicore Test
Starting and sending SGIs to secondary CPUs for "hello world"

secondary main cpu: 1
secondary main cpu: 2
secondary main cpu: 3
Hello from CPU 0
Hello from CPU 1
Hello from CPU 2
Hello from CPU 3

End of test

View solution in original post

0 Kudos
98 Views
deanchu
Contributor I

Thanks! It works!

0 Kudos
98 Views
jamesbone
NXP TechSupport
NXP TechSupport

We are working to replicate your issue, we get back as soon as we can.

0 Kudos