SCU fails to wake up core A

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

SCU fails to wake up core A

Jump to solution
984 Views
xiuqi_huang
Contributor I

Hi,

when I use scu to wakeup A core from KS1 mode, it failed.

Here are my steps to suspend and resume the system:

1、Use "echo mem > sys/power/state" to put A core into the KS1 mode

      The following are the resources when the A core is in KS1 mode

xiuqi_huang_0-1681194576464.png

2、Wake up A core through SC_R_BOARD_R0

  I made the following modifications to board_set_control in the board.c file in SCFW

xiuqi_huang_1-1681194676198.png

when I trigger the wakeup source, I can find this log "set A core on from KS1" in the SCU console log, which means the ss_irq_trigger has been executed. But actually the A core did not wake up.

only the following resources are awakened 

Partition: 0 = on
SC_PID0 = on
SC_TPM = on
SC_PIT = on
SC_UART = on
SC_I2C = on
SC_MU_0B = on
SC_MU_1A = on
SYSCNT_RD = on
SYSCNT_CMP = on
DEBUG = on
OTP = on
DB = on
DBLOGIC = on
DRC_0 = on
DRC_1 = on
Partition: 1 = on
CAAM_JR3 = on
CAAM_JR3_OUT = on
Partition: 2 = on
SECO = on
Partition: 3 = on
Partition: 4 = on
M4_1_PID0 = on
M4_1_UART = on
M4_1_MU_1A = on
SPI_0 = on
SPI_2 = on
SPI_3 = on
CAN_0 = on
CAN_1 = on
CAN_2 = on
IRQSTR_M4_1 = on
GPIO_0 = on
GPIO_2 = on
GPIO_4 = on
GPT_3 = on
MU_5B = on
MU_6B = on
MU_7B = on
MU_9B = on
MU_12B = on
BOARD_R0 = on
Partition: 5 = on
Partition: 6 = on
ENET_1 = lp
SMMU = on
OCRAM = on

A core can be woken up if I use uart as a wakeup resource

Any help would be appreciated.

Huang

 

 

 

 

0 Kudos
Reply
1 Solution
925 Views
jimmychan
NXP TechSupport
NXP TechSupport

Hello,

More question from the expert.

1. Are you using MEK board or your own board?

2. If you are using MEK board, can you wakeup Linux by pressing ON_OFF_BUTTON after Linux suspend?

3. Do you have following device node in dts:

    sc_pwrkey: sc-powerkey {
        compatible = "fsl,imx8-pwrkey";
        linux,keycode = <KEY_POWER>;
        wakeup-source;
    };

 

 

View solution in original post

0 Kudos
Reply
7 Replies
957 Views
jimmychan
NXP TechSupport
NXP TechSupport

Could you tell me which processor are you using?

0 Kudos
Reply
955 Views
xiuqi_huang
Contributor I

I'm using IMX8 QM

0 Kudos
Reply
935 Views
jimmychan
NXP TechSupport
NXP TechSupport

I got the reply from the AE

==============

Please check with customer, how did they enter board_set_control() function in the wakeup process?

==============

 

0 Kudos
Reply
931 Views
xiuqi_huang
Contributor I

Hi jimmy,

Here's how I get into the board_set_control() function:

1、Divide the SC_R_BOARD_R0 resource to M4 core, which is partition 4

2、In M4 , use the API sc_misc_set_control()

      if(sc_misc_set_control(ipc, SC_R_BOARD_R0, 0, 0) != SC_ERR_NONE){

             PRINTF_I(KERN_ERR "try to wakeup linux partition faile!\r\n");
      } else {
             PRINTF_I(KERN_ERR "try to wakeup linux partition!\r\n");
      }

      After I trigger the wakeup source I can find the log "try to wakeup linux partition"  in the M4 console log. And in the SCU console log, as I posted before, resources in partition 4 have been woke up.

 

 

 

 

 

0 Kudos
Reply
926 Views
jimmychan
NXP TechSupport
NXP TechSupport

Hello,

More question from the expert.

1. Are you using MEK board or your own board?

2. If you are using MEK board, can you wakeup Linux by pressing ON_OFF_BUTTON after Linux suspend?

3. Do you have following device node in dts:

    sc_pwrkey: sc-powerkey {
        compatible = "fsl,imx8-pwrkey";
        linux,keycode = <KEY_POWER>;
        wakeup-source;
    };

 

 

0 Kudos
Reply
896 Views
xiuqi_huang
Contributor I

Hi,

I'm using my own board with ON_OFF_BUTTON , I have those device nodes in my dts, but somehow it was disabled. when I make it okay, my board can resume from the suspend state, so thank you very much!

0 Kudos
Reply
937 Views
jimmychan
NXP TechSupport
NXP TechSupport

I will check this with the internal team. And then let you know when I get the reply.

0 Kudos
Reply