1. 24 2月, 2017 3 次提交
    • A
      hw/misc/imx6_src: defer clearing of SRC_SCR reset bits · 4881658a
      Alex Bennée 提交于
      The arm_reset_cpu/set_cpu_on/set_cpu_off() functions do their work
      asynchronously in the target vCPUs context. As a result we need to
      ensure the SRC_SCR reset bits correctly report the reset status at the
      right time. To do this we defer the clearing of the bit with an async
      job which will run after the work queued by ARM powerctl functions.
      Signed-off-by: NAlex Bennée <alex.bennee@linaro.org>
      Reviewed-by: NPeter Maydell <peter.maydell@linaro.org>
      4881658a
    • J
      tcg: drop global lock during TCG code execution · 8d04fb55
      Jan Kiszka 提交于
      This finally allows TCG to benefit from the iothread introduction: Drop
      the global mutex while running pure TCG CPU code. Reacquire the lock
      when entering MMIO or PIO emulation, or when leaving the TCG loop.
      
      We have to revert a few optimization for the current TCG threading
      model, namely kicking the TCG thread in qemu_mutex_lock_iothread and not
      kicking it in qemu_cpu_kick. We also need to disable RAM block
      reordering until we have a more efficient locking mechanism at hand.
      
      Still, a Linux x86 UP guest and my Musicpal ARM model boot fine here.
      These numbers demonstrate where we gain something:
      
      20338 jan       20   0  331m  75m 6904 R   99  0.9   0:50.95 qemu-system-arm
      20337 jan       20   0  331m  75m 6904 S   20  0.9   0:26.50 qemu-system-arm
      
      The guest CPU was fully loaded, but the iothread could still run mostly
      independent on a second core. Without the patch we don't get beyond
      
      32206 jan       20   0  330m  73m 7036 R   82  0.9   1:06.00 qemu-system-arm
      32204 jan       20   0  330m  73m 7036 S   21  0.9   0:17.03 qemu-system-arm
      
      We don't benefit significantly, though, when the guest is not fully
      loading a host CPU.
      Signed-off-by: NJan Kiszka <jan.kiszka@siemens.com>
      Message-Id: <1439220437-23957-10-git-send-email-fred.konrad@greensocs.com>
      [FK: Rebase, fix qemu_devices_reset deadlock, rm address_space_* mutex]
      Signed-off-by: NKONRAD Frederic <fred.konrad@greensocs.com>
      [EGC: fixed iothread lock for cpu-exec IRQ handling]
      Signed-off-by: NEmilio G. Cota <cota@braap.org>
      [AJB: -smp single-threaded fix, clean commit msg, BQL fixes]
      Signed-off-by: NAlex Bennée <alex.bennee@linaro.org>
      Reviewed-by: NRichard Henderson <rth@twiddle.net>
      Reviewed-by: NPranith Kumar <bobby.prani@gmail.com>
      [PM: target-arm changes]
      Acked-by: NPeter Maydell <peter.maydell@linaro.org>
      8d04fb55
    • P
      Revert "hw/mips: MIPS Boston board support" · 2d896b45
      Peter Maydell 提交于
      This reverts commit d3473e14.
      
      This commit creates a board which defaults to having 2GB of RAM.
      Unfortunately on 32-bit hosts we can't create boards with 2GB of RAM,
      and so 'make check' fails. I missed this during testing of the
      merge, unfortunately. Luckily the offending commit is the last
      one in the merge request, so we can just revert it for now.
      Signed-off-by: NPeter Maydell <peter.maydell@linaro.org>
      2d896b45
  2. 22 2月, 2017 6 次提交
    • P
      hw/mips: MIPS Boston board support · d3473e14
      Paul Burton 提交于
      Introduce support for emulating the MIPS Boston development board. The
      Boston board is built around an FPGA & 3 PCIe controllers, one of which
      is connected to an Intel EG20T Platform Controller Hub. It is used
      during the development & debug of new CPUs and the software intended to
      run on them, and is essentially the successor to the older MIPS Malta
      board.
      
      This patch does not implement the EG20T, instead connecting an already
      supported ICH-9 AHCI controller. Whilst this isn't accurate it's enough
      for typical stock Boston software (eg. Linux kernels) to work with hard
      disks given that both the ICH-9 & EG20T implement the AHCI
      specification.
      
      Boston boards typically boot kernels in the FIT image format, and this
      patch will treat kernels provided to QEMU as such. When loading a kernel
      directly, the board code will generate minimal firmware much as the
      Malta board code does. This firmware will set up the CM, CPC & GIC
      register base addresses then set argument registers & jump to the kernel
      entry point. Alternatively, bootloader code may be loaded using the bios
      argument in which case no firmware will be generated & execution will
      proceed from the start of the boot code at the default MIPS boot
      exception vector (offset 0x1fc00000 into (c)kseg1).
      
      Currently real Boston boards are always used with FPGA bitfiles that
      include a Global Interrupt Controller (GIC), so the interrupt
      configuration is only defined for such cases. Therefore the board will
      only allow use of CPUs which implement the CPS components, including the
      GIC, and will otherwise exit with a message.
      Signed-off-by: NPaul Burton <paul.burton@imgtec.com>
      Reviewed-by: NYongbok Kim <yongbok.kim@imgtec.com>
      [yongbok.kim@imgtec.com:
        isolated boston machine support for mips64el.
        updated for recent Chardev changes.
        ignore missing bios/kernel for qtest.
        added default -drive to if=ide explicitly]
      Signed-off-by: NYongbok Kim <yongbok.kim@imgtec.com>
      d3473e14
    • P
      hw: xilinx-pcie: Add support for Xilinx AXI PCIe Controller · 62be3934
      Paul Burton 提交于
      Add support for emulating the Xilinx AXI Root Port Bridge for PCI
      Express as described by Xilinx' PG055 document. This is a PCIe
      controller that can be used with certain series of Xilinx FPGAs, and is
      used on the MIPS Boston board which will make use of this code.
      Signed-off-by: NPaul Burton <paul.burton@imgtec.com>
      [yongbok.kim@imgtec.com:
        removed returning on !level,
        updated IRQ connection with GPIO logic,
        moved xilinx_pcie_init() to boston.c
        replaced stw_le_p() with pci_set_word()
        and other cosmetic changes]
      Signed-off-by: NYongbok Kim <yongbok.kim@imgtec.com>
      62be3934
    • P
      loader: Support Flattened Image Trees (FIT images) · 51b58561
      Paul Burton 提交于
      Introduce support for loading Flattened Image Trees, as used by modern
      U-Boot. FIT images are essentially flattened device tree files which
      contain binary images such as kernels, FDTs or ramdisks along with one
      or more configuration nodes describing boot configurations.
      
      The MIPS Boston board typically boots kernels in the form of FIT images,
      and will make use of this code.
      Signed-off-by: NPaul Burton <paul.burton@imgtec.com>
      [yongbok.kim@imgtec.com:
        fixed potential memory leaks,
        isolated building option]
      Signed-off-by: NYongbok Kim <yongbok.kim@imgtec.com>
      51b58561
    • P
      hw/mips_gic: Update pin state on mask changes · 2e2a1b46
      Paul Burton 提交于
      If the GIC interrupt mask is changed by a write to the smask (set mask)
      or rmask (reset mask) registers, we need to re-evaluate the state of the
      pins/IRQs fed to the CPU. Without doing so we risk leaving a pin high
      despite the interrupt that led to that state being masked, or losing
      interrupts if an already pending interrupt is unmasked.
      Signed-off-by: NPaul Burton <paul.burton@imgtec.com>
      Reviewed-by: NLeon Alrae <leon.alrae@imgtec.com>
      Signed-off-by: NYongbok Kim <yongbok.kim@imgtec.com>
      2e2a1b46
    • P
      hw/mips_gictimer: provide API for retrieving frequency · eb90ab94
      Paul Burton 提交于
      Provide a new function mips_gictimer_get_freq() which returns the
      frequency at which a GIC timer will count. This will be useful for
      boards which perform setup based upon this frequency.
      Signed-off-by: NPaul Burton <paul.burton@imgtec.com>
      Reviewed-by: NLeon Alrae <leon.alrae@imgtec.com>
      Reviewed-by: NPhilippe Mathieu-Daudé <f4bug@amsat.org>
      Signed-off-by: NYongbok Kim <yongbok.kim@imgtec.com>
      eb90ab94
    • P
      hw/mips_cmgcr: allow GCR base to be moved · 08944be1
      Paul Burton 提交于
      Support moving the GCR base address & updating the CPU's CP0 CMGCRBase
      register appropriately. This is required if a platform needs to move its
      GCRs away from other memory, as the MIPS Boston development board does
      to avoid its flash memory.
      Signed-off-by: NPaul Burton <paul.burton@imgtec.com>
      Reviewed-by: NLeon Alrae <leon.alrae@imgtec.com>
      Signed-off-by: NYongbok Kim <yongbok.kim@imgtec.com>
      08944be1
  3. 21 2月, 2017 23 次提交
  4. 19 2月, 2017 2 次提交
  5. 18 2月, 2017 6 次提交