> -----Original Message----- > From: Philippe Mathieu-Daudé <[email protected]> > Sent: 20 May 2026 03:22 > To: Gaurav Sharma <[email protected]>; [email protected] > Cc: [email protected]; [email protected]; [email protected] > Subject: [EXT] Re: [PATCHv1 3/7] hw/misc: Add SRC (System Reset Controller) > to 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 > > > On 19/5/26 19:56, Gaurav Sharma wrote: > > From: Bernhard Beschow <[email protected]> > > > > Add emulation of the i.MX8MP System Reset Controller (SRC). > > The SRC manages reset control for various subsystems on the i.MX8MP SoC. > > SRC registers are used to start/stop/poll the M7 core, hence needed > > for AMP boot. > > > > Signed-off-by: Bernhard Beschow <[email protected]> > > --- > > docs/system/arm/imx8m.rst | 1 + > > hw/arm/Kconfig | 1 + > > hw/arm/fsl-imx8mp.c | 10 + > > hw/misc/Kconfig | 3 + > > hw/misc/imx8mp_src.c | 431 > +++++++++++++++++++++++++++++++++++ > > hw/misc/meson.build | 1 + > > hw/misc/trace-events | 5 + > > include/hw/arm/fsl-imx8mp.h | 2 + > > include/hw/misc/imx8mp_src.h | 32 +++ > > 9 files changed, 486 insertions(+) > > create mode 100644 hw/misc/imx8mp_src.c > > create mode 100644 include/hw/misc/imx8mp_src.h > > > > +void imx8mp_src_start_cpu(FslImx8mpSrcState *s, int cpuid) { > > + switch (cpuid) { > > + case 0: > > + arm_set_cpu_on(0, s->regs[R_SRC_GPR2] << 2, 0, 3, true); > > + break; > > + case 1: > > + arm_set_cpu_on(1, s->regs[R_SRC_GPR4] << 2, 0, 3, true); > > + break; > > + case 2: > > + arm_set_cpu_on(2, s->regs[R_SRC_GPR6] << 2, 0, 3, true); > > + break; > > + case 3: > > + arm_set_cpu_on(3, s->regs[R_SRC_GPR8] << 2, 0, 3, true); > > + break; > > Confirming my thoughts on patch #6, this SoC really need to start with no less > than '-smp 4' :) > > > + default: > > + g_assert_not_reached(); > > + break; > > + } > > +} > > > > +static void imx8mp_src_class_init(ObjectClass *klass, const void > > +*data) { > > + DeviceClass *dc = DEVICE_CLASS(klass); > > + > > + device_class_set_legacy_reset(dc, imx8mp_src_reset); > > Please do not use this legacy interface. >
Got it. Will shift it to 'resettable interface' instead in v2. > > + dc->realize = imx8mp_src_realize; > > + dc->vmsd = &imx8mp_src_vmstate; > > + device_class_set_props(dc, imx8mp_src_properties); > > + dc->desc = "i.MX 8M Plus System Reset Controller"; }
