Imx8qxp suspend to ram kernel panic

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

Imx8qxp suspend to ram kernel panic

1,112 Views
ahmed_bekhet
Contributor I

I am currently using IMX8qxp with linux kernel 4.14.62-imx-4.14.62 and I am having trouble suspending the board

it causes a kernel panic

Synchronous External Abort: synchronous external abort (0x96000210) at 0xffff00000804500c

The issue is caused by the gpio driver, specifically the suspend function "PC is at mxc_gpio_noirq_suspend+0x94/0x178" digging further into this revealed that this issue occur when trying to read registers values to save them before suspending and that this happen with one gpio only, disabling this node from the tree resolve the problem, but I am looking to find a solution that wouldn't require disabling the node.

Here is the offending node

gpio0_mipi_csi0: gpio@58222000 {
   compatible = "fsl,imx8qm-gpio", "fsl,imx35-gpio";
   reg = <0x0 0x58222000 0x0 0x1000>;
   interrupts = <0 IRQ_TYPE_LEVEL_HIGH>;
   interrupt-parent = <&irqsteer_csi>;
   gpio-controller;
   #gpio-cells = <2>;
   interrupt-controller;
   #interrupt-cells = <2>;
   power-domains = <&pd_mipi_csi>;
};

I double checked from the reference manual that the node address is right and that the node is actually a gpio, so I am clueless as to why this issue could be happening.

0 Kudos
4 Replies

884 Views
anjalikkrishna
Contributor III

Hi ahmed.bekhet@valeo.com

   I am facing same issue on i.MX8DX6 Board.

   I was able to find the  mxc_gpio_noirq_suspend() causing the issue also the line number was pointing to

 port->suspend_saved_reg[0] = readl(port->base + GPIO_ICR1);

How did you manage to find out the exact gpio number.?

Hoping for an answer

0 Kudos

884 Views
ahmed_bekhet
Contributor I

Hello Anjalik,

I suppose you are facing a problem with the same GPIO controller as I did which was the CSI subsystem gpio controller as shown in the device tree snippet I posted above, if you disabled that and the issue still persisted you can add some printk() logs and see where the kernel panic happens on the serial console that's what I did, if I remember correctly it was 9th controller that failed and that corresponded to the CSI gpio controller in my device tree.

0 Kudos

884 Views
anjalikkrishna
Contributor III

Hi ahmed.bekhet@valeo.com

   Thank You for the reply.

 After commenting the below node, the suspend is now suspend .

 gpio0_mipi_csi0: gpio@58222000 {
                compatible = "fsl,imx8qm-gpio", "fsl,imx35-gpio";
                reg = <0x0 0x58222000 0x0 0x1000>;
                interrupts = <0 IRQ_TYPE_LEVEL_HIGH>;
                interrupt-parent = <&irqsteer_csi>;
                gpio-controller;
                #gpio-cells = <2>;
                interrupt-controller;
                #interrupt-cells = <2>;
                power-domains = <&pd_mipi_csi>;
        };

Why this node is creating the block issue. Is it due to the fact that gpio0 bank is owned by M4 core in iMX8?

It would be helpful to know the exact reason for future reference.

Thanks & Regards,

Anjali

0 Kudos

884 Views
CarlosCasillas
NXP Employee
NXP Employee

Hi Ahmed,

The i.MX8QXP series is still on preproduction, so, no additional information/support could be provided yet. In case of having doubts, please refer with your Sales/FAE.


Hope this will be useful for you.
Best regards!
/Carlos
-------------------------------------------------------------------------------
Note:
- If this post answers your question, please click the "Mark Correct" button. Thank you!
-------------------------------------------------------------------------------

0 Kudos