Hi,
My team and I have successfully adapted the SEMA4 driver provided for the i.MX6SX to the i.MX8M Mini platform. We can lock with no issues whatsoever using a basic driver using the exposed functions by imx_sema4.
A new entry to the device tree has also been added to make the driver work:
&aips3 {
sema4: sema4@30ac0000 {
compatible = "fsl,imx6sx-sema4";
reg = <0x30ac0000 0x10000>;
interrupts = <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH>;
clock-names = "sema4";
status = "okay";
};
};
However, we are facing an issue where no interrupts are triggered if a gate cannot be locked by the A53 ( because the integrated M4 has already locked the gate). We have ensured that the "Semaphores Processor n IRQ Notification Enable" register has been set correctly for the gate used.
To investigate the issue, we used Ftrace to check if any interrupts were triggered, but unfortunately, there were no results. It's worth mentioning that I don't have a 6SX development board to validate whether the driver worked correctly initially.
At the moment, we're a bit lost and wondering if we might be stuck using a polling loop. If anyone has any ideas or suggestions as to why no interrupts are triggered, your input would be greatly appreciated.
Thank you in advance for your help!
Hi @bmsm
Hi @bmsm,
continue with other tasks and allow a properly-enabled notification interrupt to return its
execution to the original lock function rather than simply execute in a spin-wait loop.