On 8/4/25 3:08 PM, Mohamed Mediouni wrote:


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.


Ok, thanks.

Reply via email to