Hello,
we have a custom iMX8QM board with FreeRTOS running on Cortex-M41 and Linux 4.14.98 (eCockpit) on the Cortex-A72 cores. System controller version is 1.2.11
If I run the following loop on the Cortex M41:
while (1)
{
// volatile uint32_t* spi0 = (volatile uint32_t*)0x5A000000u;
// volatile uint32_t access = spi0[0];
// volatile uint32_t* i2c0 = (volatile uint32_t*)0x5A800000u;
// volatile uint32_t access = i2c0[0];
volatile uint32_t* gpio1 = (volatile uint32_t*)0x5D490000u;
volatile uint32_t access = gpio1[0];
}
accessing any of the memory-mapped address of DMA devices (tested with DMA_SPI controllers, DMA_I2C controllers, GPIO banks) I get a bus fault only if Linux is started, just after the kernel startup.
If I do not start the kernel, the loop on the M4 runs fine. If I break the loop (via JTAG) and I start the kernel, I can continue the loop execution. The fault happens only if there are DMA accesses while linux is booting.
This fault does not occur if I upgrade the system controller to version 1.7.0 - but if I update only the system controller without everything else (linux, uboot, ATF, etc.) I have a tons of other issues.
Will this fix, that landed in SCU 1.7.0, be backported on SCU 1.2.x ?
Thank you,
Francesco
Hi Francesco
I do not think that SCU 1.7.0 fixes will be backported on SCU 1.2.x as Linux 4.14.98
is quite old release, recommendation is to migrate to L5.4 kernels described on
Best regards
igor