1. 25 10月, 2017 3 次提交
  2. 10 10月, 2017 1 次提交
  3. 06 10月, 2017 1 次提交
    • P
      nvic: Implement Security Attribution Unit registers · 9901c576
      Peter Maydell 提交于
      Implement the register interface for the SAU: SAU_CTRL,
      SAU_TYPE, SAU_RNR, SAU_RBAR and SAU_RLAR. None of the
      actual behaviour is implemented here; registers just
      read back as written.
      
      When the CPU definition for Cortex-M33 is eventually
      added, its initfn will set cpu->sau_sregion, in the same
      way that we currently set cpu->pmsav7_dregion for the
      M3 and M4.
      
      Number of SAU regions is typically a configurable
      CPU parameter, but this patch doesn't provide a
      QEMU CPU property for it. We can easily add one when
      we have a board that requires it.
      Signed-off-by: NPeter Maydell <peter.maydell@linaro.org>
      Reviewed-by: NRichard Henderson <richard.henderson@linaro.org>
      Message-id: 1506092407-26985-14-git-send-email-peter.maydell@linaro.org
      9901c576
  4. 22 9月, 2017 1 次提交
  5. 21 9月, 2017 1 次提交
    • P
      nvic: Implement AIRCR changes for v8M · 3b2e9344
      Peter Maydell 提交于
      The Application Interrupt and Reset Control Register has some changes
      for v8M:
       * new bits SYSRESETREQS, BFHFNMINS and PRIS: these all have
         real state if the security extension is implemented and otherwise
         are constant
       * the PRIGROUP field is banked between security states
       * non-secure code can be blocked from using the SYSRESET bit
         to reset the system if SYSRESETREQS is set
      
      Implement the new state and the changes to register read and write.
      For the moment we ignore the effects of the secure PRIGROUP.
      We will implement the effects of PRIS and BFHFNMIS later.
      Signed-off-by: NPeter Maydell <peter.maydell@linaro.org>
      Reviewed-by: NRichard Henderson <richard.henderson@linaro.org>
      Message-id: 1505240046-11454-6-git-send-email-peter.maydell@linaro.org
      3b2e9344
  6. 19 9月, 2017 1 次提交
    • I
      arm: drop intermediate cpu_model -> cpu type parsing and use cpu type directly · ba1ba5cc
      Igor Mammedov 提交于
      there are 2 use cases to deal with:
        1: fixed CPU models per board/soc
        2: boards with user configurable cpu_model and fallback to
           default cpu_model if user hasn't specified one explicitly
      
      For the 1st
        drop intermediate cpu_model parsing and use const cpu type
        directly, which replaces:
           typename = object_class_get_name(
                 cpu_class_by_name(TYPE_ARM_CPU, cpu_model))
           object_new(typename)
        with
           object_new(FOO_CPU_TYPE_NAME)
        or
           cpu_generic_init(BASE_CPU_TYPE, "my cpu model")
        with
           cpu_create(FOO_CPU_TYPE_NAME)
      
      as result 1st use case doesn't have to invoke not necessary
      translation and not needed code is removed.
      
      For the 2nd
       1: set default cpu type with MachineClass::default_cpu_type and
       2: use generic cpu_model parsing that done before machine_init()
          is run and:
          2.1: drop custom cpu_model parsing where pattern is:
             typename = object_class_get_name(
                 cpu_class_by_name(TYPE_ARM_CPU, cpu_model))
             [parse_features(typename, cpu_model, &err) ]
      
          2.2: or replace cpu_generic_init() which does what
               2.1 does + create_cpu(typename) with just
               create_cpu(machine->cpu_type)
      as result cpu_name -> cpu_type translation is done using
      generic machine code one including parsing optional features
      if supported/present (removes a bunch of duplicated cpu_model
      parsing code) and default cpu type is defined in an uniform way
      within machine_class_init callbacks instead of adhoc places
      in boadr's machine_init code.
      Signed-off-by: NIgor Mammedov <imammedo@redhat.com>
      Reviewed-by: NEduardo Habkost <ehabkost@redhat.com>
      Message-Id: <1505318697-77161-6-git-send-email-imammedo@redhat.com>
      Reviewed-by: NAlistair Francis <alistair.francis@xilinx.com>
      Reviewed-by: NPhilippe Mathieu-Daudé <f4bug@amsat.org>
      Signed-off-by: NEduardo Habkost <ehabkost@redhat.com>
      ba1ba5cc
  7. 15 9月, 2017 1 次提交
  8. 07 9月, 2017 9 次提交
  9. 04 9月, 2017 2 次提交
  10. 31 7月, 2017 1 次提交
  11. 17 7月, 2017 1 次提交
    • P
      target/arm: Make Cortex-M3 and M4 default to 8 PMSA regions · 8d92e26b
      Peter Maydell 提交于
      The Cortex-M3 and M4 CPUs always have 8 PMSA MPU regions (this isn't
      a configurable option for the hardware).  Make the default value of
      the pmsav7-dregion property be set per-cpu, so we don't need to have
      every user of these CPUs set it manually.  (The existing default of
      16 is correct for the other PMSAv7 core, the Cortex-R5.)
      
      This fixes a bug where we were creating the M3 and M4 with
      too many regions; most guest software would not notice or
      care, though, since it would just not use the registers
      associated with the unexpected extra regions.
      Signed-off-by: NPeter Maydell <peter.maydell@linaro.org>
      Reviewed-by: NMarc-André Lureau <marcandre.lureau@redhat.com>
      Message-id: 1499788408-10096-4-git-send-email-peter.maydell@linaro.org
      8d92e26b
  12. 06 6月, 2017 1 次提交
  13. 04 6月, 2017 1 次提交
  14. 02 6月, 2017 4 次提交
  15. 12 5月, 2017 2 次提交
  16. 21 4月, 2017 1 次提交
  17. 28 2月, 2017 1 次提交
    • P
      armv7m: Fix condition check for taking exceptions · 7ecdaa4a
      Peter Maydell 提交于
      The M profile condition for when we can take a pending exception or
      interrupt is not the same as that for A/R profile.  The code
      originally copied from the A/R profile version of the
      cpu_exec_interrupt function only worked by chance for the
      very simple case of exceptions being masked by PRIMASK.
      Replace it with a call to a function in the NVIC code that
      correctly compares the priority of the pending exception
      against the current execution priority of the CPU.
      
      [Michael Davidsaver's patchset had a patch to do something
      similar but the implementation ended up being a rewrite.]
      Signed-off-by: NPeter Maydell <peter.maydell@linaro.org>
      Reviewed-by: NAlex Bennée <alex.bennee@linaro.org>
      7ecdaa4a
  18. 24 2月, 2017 1 次提交
  19. 11 2月, 2017 1 次提交
  20. 08 2月, 2017 3 次提交
    • J
      arm: Correctly handle watchpoints for BE32 CPUs · 40612000
      Julian Brown 提交于
      In BE32 mode, sub-word size watchpoints can fail to trigger because the
      address of the access is adjusted in the opcode helpers before being
      compared with the watchpoint registers.  This patch reverses the address
      adjustment before performing the comparison with the help of a new CPUClass
      hook.
      
      This version of the patch augments and tidies up comments a little.
      Signed-off-by: NJulian Brown <julian@codesourcery.com>
      Message-id: caaf64ffc72f6ae183015337b7afdbd4b8989cb6.1484929304.git.julian@codesourcery.com
      Reviewed-by: NPeter Maydell <peter.maydell@linaro.org>
      Signed-off-by: NPeter Maydell <peter.maydell@linaro.org>
      40612000
    • J
      Fix Thumb-1 BE32 execution and disassembly. · f7478a92
      Julian Brown 提交于
      Thumb-1 code has some issues in BE32 mode (as currently implemented). In
      short, since bytes are swapped within words at load time for BE32
      executables, this also swaps pairs of adjacent Thumb-1 instructions.
      
      This patch un-swaps those pairs of instructions again, both for execution,
      and for disassembly. (The previous version of the patch always read four
      bytes in arm_read_memory_func and then extracted the proper two bytes,
      in a probably misguided attempt to match the behaviour of actual hardware
      as described by e.g. the ARM9TDMI TRM, section 3.3 "Endian effects for
      instruction fetches". It's less complicated to just read the correct
      two bytes though.)
      Signed-off-by: NJulian Brown <julian@codesourcery.com>
      Message-id: ca20462a044848000370318a8bd41dd0a4ed273f.1484929304.git.julian@codesourcery.com
      Reviewed-by: NPeter Maydell <peter.maydell@linaro.org>
      Signed-off-by: NPeter Maydell <peter.maydell@linaro.org>
      f7478a92
    • J
      target/arm: Add cfgend parameter for ARM CPU selection. · 3a062d57
      Julian Brown 提交于
      Add a new "cfgend" property which selects whether the CPU resets into
      big-endian mode or not.  This setting affects whether we reset with
      SCTLR_B (ARMv6 and earlier) or SCTLR_EE (ARMv7 and later) set.
      Signed-off-by: NJulian Brown <julian@codesourcery.com>
      Message-id: 11420d1c49636c1790e60578ee996e51f0f0b835.1484929304.git.julian@codesourcery.com
      [PMM: use error_report_err() rather than error_report();
       move the integratorcp changes to their own patch;
       drop an unnecessary extra #include;
       rephrase commit message accordingly;
       move setting of reset_sctlr above registration of cpregs
       so it actually has an effect]
      Reviewed-by: NPeter Maydell <peter.maydell@linaro.org>
      Signed-off-by: NPeter Maydell <peter.maydell@linaro.org>
      3a062d57
  21. 27 1月, 2017 3 次提交