SW4STM32 and SW4Linux fully supports the STM32MP1 asymmetric multicore Cortex/A7+M4 MPUs

   With System Workbench for Linux, Embedded Linux on the STM32MP1 family of MPUs from ST was never as simple to build and maintain, even for newcomers in the Linux world. And, if you install System Workbench for Linux in System Workbench for STM32 you can seamlessly develop and debug asymmetric applications running partly on Linux, partly on the Cortex-M4.
You can get more information from the ac6-tools website and download (registration required) various documents highlighting:

System Workbench for STM32



How does your bootloader checks that there is a valid application to launch? I presume it reads a few words at specific addresses (usually at the very beginning of the application) to check that it looks like a valid application (starting e.g. with a known code sequence or a valid vector table) or even compute a CRC to check th ecode was not corruted.

That means that your application binary file layout may depend on the toolchain used (especially on the startup code provided by the toolchain) so you may have to adapt your bootloader or “mimic” the Keil-generated header so that the bootloader “thinks” it was generated by the Keil toolchain.

Hope this helps,

Bernard (Ac6)