1. 30 9月, 2014 2 次提交
    • P
      target-arm: Don't handle c15_cpar changes via tb_flush() · c0f4af17
      Peter Maydell 提交于
      At the moment we try to handle c15_cpar with the strategy of:
       * emit generated code which makes assumptions about its value
       * when the register value changes call tb_flush() to throw
         away the now-invalid generated code
      This works because XScale CPUs are always uniprocessor, but
      it's confusing because it suggests that the same approach can
      be taken for other registers. It also means we do a tb_flush()
      on CPU reset, which makes multithreaded linux-user binaries
      even more likely to fail than would otherwise be the case.
      
      Replace it with a combination of TB flags for the access
      checks done on cp0/cp1 for the XScale and iwMMXt instructions,
      plus a runtime check for cp2..cp13 coprocessor accesses.
      Signed-off-by: NPeter Maydell <peter.maydell@linaro.org>
      Message-id: 1411056959-23070-1-git-send-email-peter.maydell@linaro.org
      c0f4af17
    • P
      target-arm: Implement setting guest breakpoints · 46747d15
      Peter Maydell 提交于
      This patch adds support for setting guest breakpoints
      based on values the guest writes to the DBGBVR and DBGBCR
      registers. (It doesn't include the code to handle when
      these breakpoints fire, so has no guest-visible effect.)
      Signed-off-by: NPeter Maydell <peter.maydell@linaro.org>
      Message-id: 1410523465-13400-2-git-send-email-peter.maydell@linaro.org
      46747d15
  2. 12 9月, 2014 8 次提交
  3. 29 8月, 2014 7 次提交
  4. 20 8月, 2014 6 次提交
  5. 04 8月, 2014 6 次提交
  6. 25 6月, 2014 1 次提交
  7. 20 6月, 2014 2 次提交
  8. 09 6月, 2014 4 次提交
    • P
      target-arm: Fix errors in writes to generic timer control registers · d3afacc7
      Peter Maydell 提交于
      The code for handling writes to the generic timer control registers
      had several bugs:
       * ISTATUS (bit 2) is read-only but we forced it to zero on any write
       * the check for "was IMASK (bit 1) toggled?" incorrectly used '&' where
         it should be '^'
       * the handling of IMASK was inverted: we should set the IRQ if
         ISTATUS is set and IMASK is clear, not if both are set
      
      The combination of these bugs meant that when running a Linux guest
      that uses the generic timers we would fairly quickly end up either
      forgetting that the timer output should be asserted, or failing to
      set the IRQ when the timer was unmasked. The result is that the guest
      never gets any more timer interrupts.
      Signed-off-by: NPeter Maydell <peter.maydell@linaro.org>
      Message-id: 1401803208-1281-1-git-send-email-peter.maydell@linaro.org
      Cc: qemu-stable@nongnu.org
      d3afacc7
    • P
      target-arm: A32/T32: Mask CRC value in calling code, not helper · aa633469
      Peter Maydell 提交于
      Bring the 32-bit CRC helper functions into line with the A64 ones,
      by masking the high bytes of the value in the calling code rather
      than the helper. This is more efficient since we can determine the
      mask at translation time.
      Signed-off-by: NPeter Maydell <peter.maydell@linaro.org>
      Message-id: 1401458125-27977-7-git-send-email-peter.maydell@linaro.org
      aa633469
    • I
      target-arm: Correct handling of UXN bit in ARMv8 LPAE page tables · d615efac
      Ian Campbell 提交于
      In v8 page tables bit 54 in the PTE is UXN in the EL0/EL1 translation regimes
      and XN elsewhere. In v7 the bit is always XN. Since we only emulate EL0/EL1 we
      can just treat this bit as UXN whenever we are in v8 mode.
      
      Also correctly extract the upper attributes from the PTE entry, the v8 version
      tried to avoid extracting the CONTIG bit and ended up with the upper bits being
      off-by-one. Instead behave the same as v7 and extract (but ignore) the CONTIG
      bit.
      
      This fixes "Bad mode in Synchronous Abort handler detected, code 0x8400000f"
      seen when modprobing modules under Linux.
      Signed-off-by: NIan Campbell <ijc@hellion.org.uk>
      Cc: Peter Maydell <peter.maydell@linaro.org>
      Cc: Claudio Fontana <claudio.fontana@huawei.com>
      Cc: Rob Herring <robherring2@gmail.com>
      Signed-off-by: NPeter Maydell <peter.maydell@linaro.org>
      d615efac
    • F
      target-arm: Prepare cpreg writefns/readfns for EL3/SecExt · 8d5c773e
      Fabian Aggeler 提交于
      This patch changes some readfns/writefns to use raw_write
      and raw_read functions, which use the fieldoffset specified
      in ARMCPRegInfo instead of directly accessing the field.
      This will simplify patches for EL3 & Security Extensions.
      Reviewed-by: NPeter Crosthwaite <peter.crosthwaite@xilinx.com>
      Signed-off-by: NFabian Aggeler <aggelerf@ethz.ch>
      Message-id: 1401962428-14749-1-git-send-email-aggelerf@ethz.ch
      Signed-off-by: NPeter Maydell <peter.maydell@linaro.org>
      8d5c773e
  9. 05 6月, 2014 2 次提交
  10. 29 5月, 2014 1 次提交
  11. 28 5月, 2014 1 次提交