1. 01 3月, 2018 28 次提交
  2. 22 2月, 2018 1 次提交
    • P
      target/arm: Fix register definitions for VMIDR and VMPIDR · 36476562
      Peter Maydell 提交于
      The register definitions for VMIDR and VMPIDR have separate
      reginfo structs for the AArch32 and AArch64 registers. However
      the 32-bit versions are wrong:
       * they use offsetof instead of offsetoflow32 to mark where
         the 32-bit value lives in the uint64_t CPU state field
       * they don't mark themselves as ARM_CP_ALIAS
      
      In particular this means that if you try to use an Arm guest CPU
      which enables EL2 on a big-endian host it will assert at reset:
       target/arm/cpu.c:114: cp_reg_check_reset: Assertion `oldvalue == newvalue' failed.
      
      because the reset of the 32-bit register writes to the top
      half of the uint64_t.
      
      Correct the errors in the structures.
      Signed-off-by: NPeter Maydell <peter.maydell@linaro.org>
      Reviewed-by: NPhilippe Mathieu-Daudé <f4bug@amsat.org>
      ---
      This is necessary for 'make check' to pass on big endian
      systems with the 'raspi3' board enabled, which is the
      first board which has an EL2-enabled-by-default CPU.
      36476562
  3. 21 2月, 2018 1 次提交
  4. 16 2月, 2018 10 次提交