> -----Original Message-----
> From: Bernhard Beschow <shentey@gmail.com>
> Sent: 27 May 2026 02:56
> To: Gaurav Sharma <gaurav.sharma_7@nxp.com>; qemu-devel@nongnu.org
> Cc: pbonzini@redhat.com; peter.maydell@linaro.org
> 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
> <gaurav.sharma_7@nxp.com>:
> >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
> ><shentey@gmail.com>
> > - 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 <gaurav.sharma_7@nxp.com>
> >
> >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
> >