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
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
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
Solved! Go to Solution.
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;
};
Could you tell me which processor are you using?
I'm using IMX8 QM
I got the reply from the AE
==============
Please check with customer, how did they enter board_set_control() function in the wakeup process?
==============
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.
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;
};
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!
I will check this with the internal team. And then let you know when I get the reply.