RE: [PATCHv2 0/7] hw/arm: Adding Cortex-M7 Asym metric Multiprocessing boot support for i.MX8MP
Bernhard Beschow <[email protected]>
| Newsgroups | org.nongnu.qemu-devel |
|---|---|
| Message-ID | <[email protected]> |
Am 11. August 2026 04:47:40 UTC schrieb Gaurav Sharma <[email protected]>: >ping > >> -----Original Message----- >> From: Gaurav Sharma <[email protected]> >> Sent: 24 July 2026 09:32 >> To: Gaurav Sharma <[email protected]>; [email protected] >> Cc: [email protected]; [email protected]; Bernhard Beschow >> <[email protected]> >> Subject: RE: [PATCHv2 0/7] hw/arm: Adding Cortex-M7 Asymmetric >> Multiprocessing boot support for i.MX8MP >> >> Ping Hi Gurav, I finally could test your series. I built Buildroot's freescale_imx8mpevk_defonfig (v2026.05) which has the required kernel options already enabled and passed imx8mp-evk-rpmsg.dtb to QEMU. QEMU starts successfully. However, when attempting to load an .elf image to remoteproc0/firmware, I get: # echo zephyr.elf > /sys/devices/platform/imx8mp-cm7/remoteproc/remoteproc0/firm ware [ 887.325597] imx-rproc imx8mp-cm7: can't change firmware while running sh: write error: Device or resource busy Checking the state results in: # cat /sys/devices/platform/imx8mp-cm7/remoteproc/remoteproc0/state attached I didn't dig into the Linux kernel sources to investigate this further. Do you have an idea of what is missing? Note that I built Zephyr's imx8mp_evk for the M7 [1] which produces zephyr.elf. Does the series provide everything to use Zephyr or do we need to add ITCM memory? Adding a dedicated memory map including ITCM for the M7 core doesn't seem too complicated. Using Zephyr may allow for having a functional test in our CI, though of course binary images had to be provided. Best regards, Bernhard [1] https://docs.zephyrproject.org/latest/boards/nxp/imx8mp_evk/doc/index.html#programming-and-debugging-m7 >> >> > -----Original Message----- >> > From: Gaurav Sharma <[email protected]> >> > Sent: 06 July 2026 21:59 >> > To: [email protected] >> > Cc: [email protected]; [email protected]; Gaurav Sharma >> > <[email protected]> >> > Subject: [PATCHv2 0/7] hw/arm: Adding Cortex-M7 Asymmetric >> > Multiprocessing boot support for i.MX8MP >> > >> > 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 >> > >> > Changes in v2: >> > >> > - Removed the usage of device_class_set_legacy_reset in imx8mp >> > gpc,gpr,mu and >> > src. >> > - Removed the usage of 'smp' , 'maxcpus' and 'enable-cm7' to make the >> > invocation simpler. >> > - Cleaned up imx8mp_src by removing redundant/unused code. >> > - Updated Maintainers and improved the imx8mp documentation >> > >> > 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 >> > >> > MAINTAINERS | 13 +- >> > docs/system/arm/imx8m.rst | 188 ++++++++++- >> > hw/arm/Kconfig | 4 + >> > hw/arm/fsl-imx8mp.c | 220 ++++++++++++- >> > hw/arm/imx8mp-evk.c | 3 +- >> > hw/misc/Kconfig | 12 + >> > hw/misc/imx8mp_ccm.c | 9 + >> > hw/misc/imx8mp_gpc.c | 146 +++++++++ >> > hw/misc/imx8mp_gpr.c | 153 +++++++++ >> > hw/misc/imx8mp_mu.c | 328 ++++++++++++++++++++ >> > hw/misc/imx8mp_src.c | 275 ++++++++++++++++ >> > 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 | 31 ++ >> > tests/functional/aarch64/test_imx8mp_evk.py | 1 - >> > 20 files changed, 1539 insertions(+), 28 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 >> > >> > -- >> > 2.34.1 >