SCU fails to wake up core A

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 
已解决

SCU fails to wake up core A

跳至解决方案
2,622 次查看
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 项奖励
回复
1 解答
2,563 次查看
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 项奖励
回复
7 回复数
2,595 次查看
jimmychan
NXP TechSupport
NXP TechSupport

Could you tell me which processor are you using?

0 项奖励
回复
2,593 次查看
xiuqi_huang
Contributor I

I'm using IMX8 QM

0 项奖励
回复
2,573 次查看
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 项奖励
回复
2,569 次查看
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 项奖励
回复
2,564 次查看
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 项奖励
回复
2,534 次查看
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 项奖励
回复
2,575 次查看
jimmychan
NXP TechSupport
NXP TechSupport

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

0 项奖励
回复