> -----Original Message----- > From: Bernhard Beschow <[email protected]> > Sent: 27 May 2026 02:56 > To: Gaurav Sharma <[email protected]>; [email protected] > Cc: [email protected]; [email protected] > Subject: [EXT] Re: [PATCHv1 0/7] hw/arm: Adding Cortex-M7 Asymmetric > Multiprocessing boot support for i.MX8MP > > Caution: This is an external email. Please take care when clicking links or > opening attachments. When in doubt, report the message using the 'Report > this email' button > > > Am 19. Mai 2026 17:56:28 UTC schrieb Gaurav Sharma > <[email protected]>: > >Changes in v1: > > > >This series adds Asymmetric Multiprocessing (AMP) boot support for the > >Cortex-M7 core on the i.MX8MP SoC. The M7 firmware can be loaded and > >started from Linux running on the Cortex-A53 cores via the remoteproc > >framework. > > > >The series introduces the following peripheral models needed for AMP: > > - GPC (General Power Controller) > > - GPR (General Purpose Registers) > > - SRC (System Reset Controller) authored by Bernhard Beschow > ><[email protected]> > > - MU (Messaging Unit) > > - Extends the CCM with M7 clock outputs and wires into the i.MX8MP > >SoC > > - Enable Cortex-M7 boot in i.MX8MP EVK functional test > > Awesome work! > > I'd like to experiment with this series myself. Could there be some "cooking > recipe" in the board documentation for easy reproduction/failsafe tutorial? Is > there perhaps some Buildroot defconfig with the appropriate support > enabled? Or even better: Are there any binary images that could be used in a > functional test in addition? >
Hey Bernhard, Thanks for your feedback! There's an application note that covers this use-case (AN5317, referenced in the rst doc). However, the complete setup requires combining information from multiple sources. Requirements to exercise M7 image loading via Linux: 1. RPMSG-specific device tree with M7 DDR alias - covered in AN5317 2. Bare-metal ELF executable linked to run from DDR - requires building from MCUXpresso SDK Building the M7 firmware: 1. Download the MCUXpresso SDK for i.MX8MP 2. Build a DDR-linked example using the ARM GCC toolchain (e.g., boards/evkmimx8mp/driver_examples/uart/polling) 3. Copy the resulting ELF to the guest Linux filesystem 4. Load via remoteproc as documented in the rst Currently there isn't a single official document covering the complete end-to-end flow. Users might need to refer two different sources at best. I can add concise build instructions to the rst doc itself, providing a self-contained reference. How does that sound? Regarding binary images: We can provide a pre-built test ELF for functional testing, though users would still need the appropriate device tree configuration. > Last but not least: Wouldn't it be useful if you became co-maintainer of the > imx8mp-evk? Perhaps the two sections in the MAINTAINERS file could be > merged. > Sure. I can add myself to the MAINTAINERS of imx8mp-evk, but what do you mean by merging the two sections in the MAINTAINERS file ? > Best regards, > Bernhard > > > > >Signed-off-by: Gaurav Sharma <[email protected]> > > > >Bernhard Beschow (1): > > hw/misc: Add SRC (System Reset Controller) to i.MX8MP > > > >Gaurav Sharma (6): > > hw/misc: Add i.MX8MP GPC (General Power Controller) IP > > hw/misc: Add GPR (General Purpose Register) IP to iMX8MP > > hw/misc: Add MU (Messaging Unit) IP to i.MX8MP device model > > hw/misc: Extend i.MX8MP CCM with Cortex-M7 clock outputs > > hw/arm: Enable Cortex-M7 AMP boot on i.MX8MP > > tests/functional: Enable Cortex-M7 boot in i.MX8MP EVK functional > >test > > > > docs/system/arm/imx8m.rst | 90 +++- > > hw/arm/Kconfig | 4 + > > hw/arm/fsl-imx8mp.c | 212 ++++++++++ > > hw/misc/Kconfig | 12 + > > hw/misc/imx8mp_ccm.c | 9 + > > hw/misc/imx8mp_gpc.c | 124 ++++++ > > hw/misc/imx8mp_gpr.c | 129 ++++++ > > hw/misc/imx8mp_mu.c | 308 ++++++++++++++ > > hw/misc/imx8mp_src.c | 431 ++++++++++++++++++++ > > hw/misc/meson.build | 4 + > > hw/misc/trace-events | 5 + > > include/hw/arm/fsl-imx8mp.h | 29 +- > > include/hw/misc/imx8mp_ccm.h | 3 + > > include/hw/misc/imx8mp_gpc.h | 34 ++ > > include/hw/misc/imx8mp_gpr.h | 56 +++ > > include/hw/misc/imx8mp_mu.h | 53 +++ > > include/hw/misc/imx8mp_src.h | 32 ++ > > tests/functional/aarch64/test_imx8mp_evk.py | 3 +- > > 18 files changed, 1535 insertions(+), 3 deletions(-) create mode > > 100644 hw/misc/imx8mp_gpc.c create mode 100644 hw/misc/imx8mp_gpr.c > > create mode 100644 hw/misc/imx8mp_mu.c create mode 100644 > > hw/misc/imx8mp_src.c create mode 100644 > include/hw/misc/imx8mp_gpc.h > > create mode 100644 include/hw/misc/imx8mp_gpr.h create mode 100644 > > include/hw/misc/imx8mp_mu.h create mode 100644 > > include/hw/misc/imx8mp_src.h > >
