On Thu, 19 Feb 2026 at 17:18, Alex Bennée <alex.bennee@linaro.org> wrote:
>
> Implement a proper cpu reset handler for tricore cpus.
>
> Message-ID: <20260108143423.1378674-11-alex.bennee@linaro.org>
> Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
> ---
> target/tricore/cpu.c | 9 ++++++++-
> 1 file changed, 8 insertions(+), 1 deletion(-)
>
> diff --git a/target/tricore/cpu.c b/target/tricore/cpu.c
> index 04319e107ba..c3dda9f6a54 100644
> --- a/target/tricore/cpu.c
> +++ b/target/tricore/cpu.c
> @@ -24,6 +24,7 @@
> #include "qemu/error-report.h"
> #include "tcg/debug-assert.h"
> #include "accel/tcg/cpu-ops.h"
> +#include "system/reset.h"
>
> static inline void set_feature(CPUTriCoreState *env, int feature)
> {
> @@ -81,6 +82,12 @@ static void tricore_cpu_reset_hold(Object *obj, ResetType type)
> cpu_state_reset(cpu_env(cs));
> }
>
> +static void tricore_cpu_reset(void *opaque)
> +{
> + CPUState *cs = opaque;
> + cpu_reset(cs);
> +}
> +
> static bool tricore_cpu_has_work(CPUState *cs)
> {
> return true;
> @@ -120,8 +127,8 @@ static void tricore_cpu_realizefn(DeviceState *dev, Error **errp)
> if (tricore_has_feature(env, TRICORE_FEATURE_131)) {
> set_feature(env, TRICORE_FEATURE_13);
> }
> - cpu_reset(cs);
> qemu_init_vcpu(cs);
> + qemu_register_reset(tricore_cpu_reset, cs);
We should arrange for CPUs to be reset in the board code, not in
the realize function of the CPU itself.
thanks
-- PMM