1. 25 8月, 2018 31 次提交
  2. 24 8月, 2018 9 次提交
    • P
      Merge remote-tracking branch 'remotes/juanquintela/tags/check/20180822' into staging · 1dfb85a8
      Peter Maydell 提交于
      check/next for 20180822
      
      # gpg: Signature made Wed 22 Aug 2018 09:03:40 BST
      # gpg:                using RSA key F487EF185872D723
      # gpg: Good signature from "Juan Quintela <quintela@redhat.com>"
      # gpg:                 aka "Juan Quintela <quintela@trasno.org>"
      # Primary key fingerprint: 1899 FF8E DEBF 58CC EE03  4B82 F487 EF18 5872 D723
      
      * remotes/juanquintela/tags/check/20180822:
        check: Only test tpm devices when they are compiled in
        check: Only test usb-ehci when it is compiled in
        check: Only test usb-uhci devices when they are compiled in
        check: Only test usb-ohci when it is compiled in
        check: Only test nvme when it is compiled in
        check: Only test pvpanic when it is compiled in
        check: Only test wdt_ib700 when it is compiled in
        check: Only test sdhci when it is compiled in
        check: Only test i82801b11 when it is compiled in
        check: Only test ioh3420 when it is compiled in
        check: Only test ipack when it is compiled in
        check: Only test hda when it is compiled in
        check: Only test ac97 when it is compiled in
        check: Only test es1370 when it is compiled in
        check: Only test rtl8139 when it is compiled in
        check: Only test pcnet when it is compiled in
        check: Only test eepro100 when it is compiled in
        check: Only test ne2000 when it is compiled in
        check: Only test vmxnet3 when it is compiled in
      Signed-off-by: NPeter Maydell <peter.maydell@linaro.org>
      1dfb85a8
    • P
      Merge remote-tracking branch 'remotes/pmaydell/tags/pull-target-arm-20180824-1' into staging · f4e8428b
      Peter Maydell 提交于
      target-arm queue:
       * Fix rounding errors in scaling float-to-int and int-to-float operations
       * Connect virtualization-related IRQs and memory regions of GICv2
         in boards that use Cortex-A7 or Cortex-A15
       * Support taking exceptions to AArch32 Hyp mode
       * Clear CPSR.IL and CPSR.J on 32-bit exception entry
         (a minor bug fix that won't affect non-buggy guest code)
       * mps2-an505: Implement various missing devices:
         dual timer, watchdogs, counters in the FPGAIO registers,
         some missing ID/control registers, TrustZone Master Security
         Controllers, PL081 DMA controllers, PL022 SPI controllers
       * correct ID register values for mps2-an385, -an511, -an505
       * fix some hardcoded tabs in untouched backwaters of the
         target/arm codebase
       * raspi: Refactor framebuffer property handling code and implement
         support for the virtual framebuffer/viewport
      
      # gpg: Signature made Fri 24 Aug 2018 13:19:04 BST
      # gpg:                using RSA key 3C2525ED14360CDE
      # gpg: Good signature from "Peter Maydell <peter.maydell@linaro.org>"
      # gpg:                 aka "Peter Maydell <pmaydell@gmail.com>"
      # gpg:                 aka "Peter Maydell <pmaydell@chiark.greenend.org.uk>"
      # Primary key fingerprint: E1A5 C593 CD41 9DE2 8E83  15CF 3C25 25ED 1436 0CDE
      
      * remotes/pmaydell/tags/pull-target-arm-20180824-1: (52 commits)
        hw/arm/mps2: Fix ID register errors on AN511 and AN385
        hw/display/bcm2835_fb: Validate bcm2835_fb_mbox_push() config
        hw/display/bcm2835_fb: Validate config settings
        hw/display/bcm2835_fb: Fix handling of virtual framebuffer
        hw/display/bcm2835_fb: Abstract out calculation of pitch, size
        hw/display/bcm2835_fb: Reset resolution, etc correctly
        hw/display/bcm2835_fb: Drop unused size and pitch fields
        hw/misc/bcm2835_property: Track fb settings using BCM2835FBConfig
        hw/misc/bcm2835_fb: Move config fields to their own struct
        target/arm: Remove a handful of stray tabs
        target/arm: Untabify iwmmxt_helper.c
        target/arm: Untabify translate.c
        hw/arm/mps2-tz: Fix MPS2 SCC config register values
        hw/arm/mps2-tz: Instantiate SPI controllers
        hw/ssi/pl022: Correct wrong DMACR and ICR handling
        hw/ssi/pl022: Correct wrong value for PL022_INT_RT
        hw/ssi/pl022: Use DeviceState::realize rather than SysBusDevice::init
        hw/ssi/pl022: Don't directly call vmstate_register()
        hw/ssi/pl022: Set up reset function in class init
        hw/ssi/pl022: Allow use as embedded-struct device
        ...
      Signed-off-by: NPeter Maydell <peter.maydell@linaro.org>
      f4e8428b
    • P
      hw/arm/mps2: Fix ID register errors on AN511 and AN385 · 239cb6fe
      Peter Maydell 提交于
      Fix MPS2 SCC config register values for the mps2-an511
      and mps2-an385 boards:
       * the SCC_AID bits [23:20] specify the FPGA build target board revision,
         and the SCC_CFG4 register specifies the actual board revision, so
         these should have matching values. Claim to be board revision C,
         consistently -- we had the revision in the wrong part of SCC_AID.
       * SCC_ID bits [15:4] should be the board number in hex, not decimal
      Signed-off-by: NPeter Maydell <peter.maydell@linaro.org>
      Reviewed-by: NRichard Henderson <richard.henderson@linaro.org>
      Message-id: 20180823175225.22612-1-peter.maydell@linaro.org
      239cb6fe
    • P
      hw/display/bcm2835_fb: Validate bcm2835_fb_mbox_push() config · cfb7ba98
      Peter Maydell 提交于
      Refactor bcm2835_fb_mbox_push() to work by calling
      bcm2835_fb_validate_config() and bcm2835_fb_reconfigure(),
      so that config set this way is also validated.
      Signed-off-by: NPeter Maydell <peter.maydell@linaro.org>
      Reviewed-by: NRichard Henderson <richard.henderson@linaro.org>
      Message-id: 20180814144436.679-9-peter.maydell@linaro.org
      cfb7ba98
    • P
      hw/display/bcm2835_fb: Validate config settings · f8add62c
      Peter Maydell 提交于
      Validate the config settings that the guest tries to set.
      
      The wiki page documentation is not really accurate here:
      generally rather than failing requests to set bad parameters,
      the hardware will just clip them to something sensible.
      
      Validate the most important parameters: sizes and
      the viewport offsets. This prevents the framebuffer
      code from trying to read out-of-range memory.
      
      In the property handling code, we validate the new parameters every
      time we encounter a tag that sets them. This means we validate the
      config multiple times if the request includes multiple config-setting
      tags, but the code would require significant restructuring to do a
      validation only once but still return the clipped settings for
      get-parameter tags and the buffer allocation tag.
      
      Validation of settings made via the older bcm2835_fb_mbox_push()
      function will be done in the next commit.
      Signed-off-by: NPeter Maydell <peter.maydell@linaro.org>
      Reviewed-by: NRichard Henderson <richard.henderson@linaro.org>
      Message-id: 20180814144436.679-8-peter.maydell@linaro.org
      f8add62c
    • P
      hw/display/bcm2835_fb: Fix handling of virtual framebuffer · 01f18af9
      Peter Maydell 提交于
      The raspi framebuffir in bcm2835_fb supports the definition
      of a virtual "viewport", which is smaller than the full
      physical framebuffer size and at an adjustable offset within
      it. Only the viewport area is sent to the screen. This allows
      the guest to do things like double buffering, or scrolling
      by adjusting the viewport origin. Currently QEMU doesn't
      implement this at all.
      
      Add support for this feature:
       * the property mailbox code needs to distinguish the
         virtual width/height from the physical width/height
       * the framebuffer code needs to do something with the
         virtual width/height/origin information
      
      Note that the wiki documentation on the semantics of the
      virtual and physical height and width has it the wrong way
      around -- the virtual size is the size of the allocated
      buffer, and the physical size is the size of the display,
      so the virtual size is always the same as or larger than
      the physical.
      
      If the viewport size is set smaller than the physical
      screen size, we ignore the viewport settings completely
      and just display the physical screen area.
      Signed-off-by: NPeter Maydell <peter.maydell@linaro.org>
      Reviewed-by: NRichard Henderson <richard.henderson@linaro.org>
      Message-id: 20180814144436.679-7-peter.maydell@linaro.org
      01f18af9
    • P
      hw/display/bcm2835_fb: Abstract out calculation of pitch, size · 9a1f03f4
      Peter Maydell 提交于
      Abstract out the calculation of the pitch and size of the
      framebuffer into functions that operate on the BCM2835FBConfig
      struct -- these are about to get a little more complicated
      when we add support for virtual and physical sizes differing.
      Signed-off-by: NPeter Maydell <peter.maydell@linaro.org>
      Reviewed-by: NRichard Henderson <richard.henderson@linaro.org>
      Message-id: 20180814144436.679-6-peter.maydell@linaro.org
      9a1f03f4
    • P
      hw/display/bcm2835_fb: Reset resolution, etc correctly · 9e2938a0
      Peter Maydell 提交于
      The bcm2835_fb's initial resolution and other parameters are set
      via QOM properties. We should reset to those initial values on
      device reset, which means we need to save the QOM property
      values somewhere that they are not overwritten by guest
      changes to the framebuffer configuration.
      Signed-off-by: NPeter Maydell <peter.maydell@linaro.org>
      Reviewed-by: NRichard Henderson <richard.henderson@linaro.org>
      Message-id: 20180814144436.679-5-peter.maydell@linaro.org
      9e2938a0
    • P
      hw/display/bcm2835_fb: Drop unused size and pitch fields · ea662f7c
      Peter Maydell 提交于
      The BCM2835FBState struct has a 'pitch' field which is a
      cached copy of xres * (bpp >> 3), and a 'size' field which is
      a cached copy of pitch * yres. However we don't actually do
      anything with these fields; delete them. We retain the
      now-unused slots in the VMState struct for migration
      compatibility.
      Signed-off-by: NPeter Maydell <peter.maydell@linaro.org>
      Reviewed-by: NRichard Henderson <richard.henderson@linaro.org>
      Message-id: 20180814144436.679-4-peter.maydell@linaro.org
      ea662f7c