blob: a091752a797fd3ecbfea9ae365c1829d1c36be0f (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
LoadVM assert on ARM_FEATURE_M for Cortex M3
Description of problem:
This appears to be a similar issue to https://gitlab.com/qemu-project/qemu/-/issues/1775 and https://gitlab.com/qemu-project/qemu/-/issues/1658
When running `loadvm` qemu aborts with this error:
"qemu/target/arm/helper.c:12383: arm_security_space_below_el3: Assertion `!arm_feature(env, ARM_FEATURE_M)' failed."
I've traced the error to `pmu_counter_enabled` in `qemu\target\arm\helper.c:1172`
[uint64_t mdcr_el2 = arm_mdcr_el2_eff(env)](https://gitlab.com/qemu-project/qemu/-/blob/v8.2.0/target/arm/helper.c?ref_type=tags#L1172) (link is to 8.2.0 release tag)
The issue is caused by attempting to get the MDCR_EL2 register prior to checking if the CPU has ARM_FEATURE_PMU support.
A simple fix seems to be to check for `ARM_PMU_ENABLED` and returning early if it is not enabled.
Steps to reproduce:
1. Start emulation and connect monitor
2. savevm <snapshot-name>
3. Loadvm <snapshot-name>
Additional information:
See screenshot for stack trace

|