> On 4. Aug 2025, at 23:59, Pierrick Bouvier <pierrick.bouv...@linaro.org>
> wrote:
>
> On 8/4/25 7:23 AM, Mohamed Mediouni wrote:
>> Signed-off-by: Mohamed Mediouni <moha...@unpredictable.fr>
>> ---
>> accel/whpx/whpx-common.c | 1 +
>> meson.build | 21 +-
>> target/arm/meson.build | 1 +
>> target/arm/whpx/meson.build | 3 +
>> target/arm/whpx/whpx-all.c | 845 ++++++++++++++++++++++++++++++++++++
>> 5 files changed, 864 insertions(+), 7 deletions(-)
>> create mode 100644 target/arm/whpx/meson.build
>> create mode 100644 target/arm/whpx/whpx-all.c
>>
>> diff --git a/target/arm/whpx/whpx-all.c b/target/arm/whpx/whpx-all.c
>> new file mode 100644
>> index 0000000000..2e32debf6f
>> --- /dev/null
>> +++ b/target/arm/whpx/whpx-all.c
>
> ...
>
>> + { WHvArm64RegisterDbgbvr15El1, WHPX_SYSREG(0, 15, 2, 0, 4) },
>> + { WHvArm64RegisterDbgbcr15El1, WHPX_SYSREG(0, 15, 2, 0, 5) },
>> + { WHvArm64RegisterDbgwvr15El1, WHPX_SYSREG(0, 15, 2, 0, 6) },
>> + { WHvArm64RegisterDbgwcr15El1, WHPX_SYSREG(0, 15, 2, 0, 7) },
>> +#ifdef SYNC_NO_RAW_REGS
>> + /*
>> + * The registers below are manually synced on init because they are
>> + * marked as NO_RAW. We still list them to make number space sync
>> easier.
>> + */
>> + { WHvArm64RegisterMidrEl1, WHPX_SYSREG(0, 0, 3, 0, 0) },
>> + { WHvArm64RegisterMpidrEl1, WHPX_SYSREG(0, 0, 3, 0, 5) },
>> + { WHvArm64RegisterIdPfr0El1, WHPX_SYSREG(0, 4, 3, 0, 0) },
>> +#endif
>> + { WHvArm64RegisterIdAa64Pfr1El1, WHPX_SYSREG(0, 4, 3, 0, 1), true },
>> + { WHvArm64RegisterIdAa64Dfr0El1, WHPX_SYSREG(0, 5, 3, 0, 0), true },
>> + { WHvArm64RegisterIdAa64Dfr1El1, WHPX_SYSREG(0, 5, 3, 0, 1), true },
>> + { WHvArm64RegisterIdAa64Isar0El1, WHPX_SYSREG(0, 6, 3, 0, 0), true },
>> + { WHvArm64RegisterIdAa64Isar1El1, WHPX_SYSREG(0, 6, 3, 0, 1), true },
>> +#ifdef SYNC_NO_MMFR0
>> + /* We keep the hardware MMFR0 around. HW limits are there anyway */
>> + { WHvArm64RegisterIdAa64Mmfr0El1, WHPX_SYSREG(0, 7, 3, 0, 0) },
>> +#endif
>
> ...
>
> I understand this comes from existing hvf implementation, but I can't find
> where SYNC_NO_.* defines are supposed to come from (including on hvf side).
> Any idea?
They’re just annotations for developer use so that readers of the code know why
they aren’t in the list.