Hi,
Our standard iMX6 Solo/Quad board comes with a PCIe slot for customer to plug add-in card. I can put the system to suspend mode and wakeup under Linux and Android when there's no PCIe card plugged. If I plug one PCIe card, I can put the system to suspend but can't wake it up. Is there special requirement/preparation needed to resume the system with PCIe card plugged?
Thanks.
Solved! Go to Solution.
Hello, William:
If you read BSP release note 1.1.0, you can see PCIe low power mode is not supported in known issue section:
PCIe Hardware/
Software
PCIe doesn't support Hot Plug and
Power Management.
No
That's why you meet wakeup failure when you built in PCIe.
I am not sure whether the following way can workaround it, you may try it if you are interesting: Building with PCIe as modules. unload PCIe relative module before suspend. Then load PCIe relative module after resume.
Hi, William
Can you try to just insert PCIe card but not enable it? I mean, if we only insert PCIe card, but there is no PCIe software running, to see whether it is caused by PCIe module. Just build out PCIe module and try it, thanks.
Hi Yongcai,
I tried the scenarios below:
1. Enable iMX6 PCIE support
CONFIG_IMX_HAVE_PLATFORM_IMX_PCIE=y
CONFIG_IMX_PCIE=y
# CONFIG_PCIEPORTBUS is not set
-- can suspend/wakeup if no PCIE card is plugged
-- can't wakeup if a PCIE card is plugged
2. Disable iMX6 PCIE support
CONFIG_IMX_HAVE_PLATFORM_IMX_PCIE=y
# CONFIG_IMX_PCIE is not set
-- can suspend/wakeup whether PCIE card is plugged not
It seems the PCIE module prevent system from waking up. Can you help look into this issue? Thanks.
Hello, William:
If you read BSP release note 1.1.0, you can see PCIe low power mode is not supported in known issue section:
PCIe Hardware/
Software
PCIe doesn't support Hot Plug and
Power Management.
No
That's why you meet wakeup failure when you built in PCIe.
I am not sure whether the following way can workaround it, you may try it if you are interesting: Building with PCIe as modules. unload PCIe relative module before suspend. Then load PCIe relative module after resume.
About the pcie suspend/resume issue, pls refer to https://community.freescale.com/mobile/mobile-access.jspa#jive-discussion?content=https%3A%2F%2Fcomm...
Hi Hongxing,
I clicked that link but didn't get the that discussion thread. It just showed the messages below:
You do not have permissions to access the requested content.
Please contact the content owner or admin@community.freescale.com for assistance with gaining access.
That url is pasted by my smart phone, I can't access it by my laptop either. :smileysad:.
Sorry to bring mus-understand to you, here is the correct one.
https://community.freescale.com/docs/DOC-94856
BTW, there is one simple SW workaround under stress tests now, would be clarified after the stress tests is finished.
Hi, William
Sorry, I don't have the knowledge to look into PCIe module, you may need to contact the PCIe module to see whether there is low power issue in PCIe module, I am only in charge with system level's suspend/resume, not we are sure that it is caused by PCIe module, so you can ask the PCIe module owner or just disable PCIe low power mode.
Hi Yongcai,
No PCIe card function was enabled in my experiment. The problem is caused by the iMX6 PCIe driver because I didn't load the driver for the PCIe card. Do you have successful example that you can suspend and wakeup with a specific PCIe card? Thanks.
Hi, William
The only way to fix this issue is to build out the PCIe driver. If PCIe is enabled, suspend/resume will be impacted. This is my understanding, but you had better to ask PCIe owner for detail.