1. 21 4月, 2017 5 次提交
  2. 01 3月, 2017 9 次提交
  3. 28 2月, 2017 5 次提交
    • K
      hw/arm/exynos: Fix proper mapping of CPUs by providing real cluster ID · f3a6339a
      Krzysztof Kozlowski 提交于
      The Exynos4210 has cluster ID 0x9 in its MPIDR register (raw value
      0x8000090x).  If this cluster ID is not provided, then Linux kernel
      cannot map DeviceTree nodes to MPIDR values resulting in kernel
      warning and lack of any secondary CPUs:
      
          DT missing boot CPU MPIDR[23:0], fall back to default cpu_logical_map
          ...
          smp: Bringing up secondary CPUs ...
          smp: Brought up 1 node, 1 CPU
          SMP: Total of 1 processors activated (24.00 BogoMIPS).
      
      Provide a cluster ID so Linux will see proper MPIDR and will try to
      bring the secondary CPU online.
      Signed-off-by: NKrzysztof Kozlowski <krzk@kernel.org>
      Message-id: 20170226200142.31169-2-krzk@kernel.org
      Reviewed-by: NPeter Maydell <peter.maydell@linaro.org>
      Signed-off-by: NPeter Maydell <peter.maydell@linaro.org>
      f3a6339a
    • K
      hw/arm/exynos: Fix Linux kernel division by zero for PLLs · 1e0228fd
      Krzysztof Kozlowski 提交于
      Without any clock controller, the Linux kernel was hitting division by
      zero during boot or with clk_summary:
      [    0.000000] [<c031054c>] (unwind_backtrace) from [<c030ba6c>] (show_stack+0x10/0x14)
      [    0.000000] [<c030ba6c>] (show_stack) from [<c05b2660>] (dump_stack+0x88/0x9c)
      [    0.000000] [<c05b2660>] (dump_stack) from [<c05b11a4>] (Ldiv0+0x8/0x10)
      [    0.000000] [<c05b11a4>] (Ldiv0) from [<c06ad1e0>] (samsung_pll45xx_recalc_rate+0x58/0x74)
      [    0.000000] [<c06ad1e0>] (samsung_pll45xx_recalc_rate) from [<c0692ec0>] (clk_register+0x39c/0x63c)
      [    0.000000] [<c0692ec0>] (clk_register) from [<c125d360>] (samsung_clk_register_pll+0x2e0/0x3d4)
      [    0.000000] [<c125d360>] (samsung_clk_register_pll) from [<c125d7e8>] (exynos4_clk_init+0x1b0/0x5e4)
      [    0.000000] [<c125d7e8>] (exynos4_clk_init) from [<c12335f4>] (of_clk_init+0x17c/0x210)
      [    0.000000] [<c12335f4>] (of_clk_init) from [<c1204700>] (time_init+0x24/0x2c)
      [    0.000000] [<c1204700>] (time_init) from [<c1200b2c>] (start_kernel+0x24c/0x38c)
      [    0.000000] [<c1200b2c>] (start_kernel) from [<4020807c>] (0x4020807c)
      
      Provide stub for clock controller returning reset values for PLLs.
      Signed-off-by: NKrzysztof Kozlowski <krzk@kernel.org>
      Message-id: 20170226200142.31169-1-krzk@kernel.org
      Reviewed-by: NPeter Maydell <peter.maydell@linaro.org>
      Signed-off-by: NPeter Maydell <peter.maydell@linaro.org>
      1e0228fd
    • E
      hw/arm/virt: Add a user option to disallow ITS instantiation · ccc11b02
      Eric Auger 提交于
      In 2.9 ITS will block save/restore and migration use cases. As such,
      let's introduce a user option that allows to turn its instantiation
      off, along with GICv3. With the "its" option turned false, migration
      will be possible, obviously at the expense of MSI support (with GICv3).
      Signed-off-by: NEric Auger <eric.auger@redhat.com>
      Message-id: 1487681108-14452-1-git-send-email-eric.auger@redhat.com
      Reviewed-by: NPeter Maydell <peter.maydell@linaro.org>
      Signed-off-by: NPeter Maydell <peter.maydell@linaro.org>
      ccc11b02
    • I
      hw/arm/virt: fix cpu object reference leak · dbb74759
      Igor Mammedov 提交于
      object_new(FOO) returns an object with ref_cnt == 1
      and following
        object_property_set_bool(cpuobj, true, "realized", NULL)
      set parent of cpuobj to '/machine/unattached' which makes
      ref_cnt == 2.
      
      Since machvirt_init() doesn't take ownership of cpuobj
      returned by object_new() it should explicitly drop
      reference to cpuobj when dangling pointer is about to
      go out of scope like it's done pc_new_cpu() to avoid
      object leak.
      Signed-off-by: NIgor Mammedov <imammedo@redhat.com>
      Message-id: 1487253461-269218-1-git-send-email-imammedo@redhat.com
      Reviewed-by: NPeter Maydell <peter.maydell@linaro.org>
      Signed-off-by: NPeter Maydell <peter.maydell@linaro.org>
      dbb74759
    • M
      target-arm: Implement BCM2835 hardware RNG · 54a5ba13
      Marcin Chojnacki 提交于
      Recent vanilla Raspberry Pi kernels started to make use of
      the hardware random number generator in BCM2835 SoC. As a
      result, those kernels wouldn't work anymore under QEMU
      but rather just freeze during the boot process.
      
      This patch implements a trivial BCM2835 compatible RNG,
      and adds it as a peripheral to BCM2835 platform, which
      allows to boot a vanilla Raspberry Pi kernel under Qemu.
      
      Changes since v1:
       * Prevented guest from writing [31..20] bits in rng_status
       * Removed redundant minimum_version_id_old
       * Added field entries for the state
       * Changed realize function to reset
      Signed-off-by: NMarcin Chojnacki <marcinch7@gmail.com>
      Message-id: 20170210210857.47893-1-marcinch7@gmail.com
      Reviewed-by: NPeter Maydell <peter.maydell@linaro.org>
      Signed-off-by: NPeter Maydell <peter.maydell@linaro.org>
      54a5ba13
  4. 21 2月, 2017 5 次提交
    • M
      hw: Deprecate -drive if=scsi with non-onboard HBAs · a64aa578
      Markus Armbruster 提交于
      Block backends defined with "-drive if=T" with T other than "none" are
      meant to be picked up by machine initialization code: a suitable
      frontend gets created and wired up automatically.
      
      Drives defined with if=scsi are also picked up by SCSI HBAs added with
      -device, unlike other interface types.  Deprecate this usage, as follows.
      
      Create the frontends for onboard HBAs in machine initialization code,
      exactly like we do for if=ide and other interface types.  Change
      scsi_legacy_handle_cmdline() to create a frontend only when it's still
      missing, and warn that this usage is deprecated.
      Signed-off-by: NMarkus Armbruster <armbru@redhat.com>
      Message-Id: <1487161136-9018-3-git-send-email-armbru@redhat.com>
      a64aa578
    • M
      hw/arm/highbank: Default -drive to if=ide instead of if=scsi · 2a7ae4ee
      Markus Armbruster 提交于
      These machines have no onboard SCSI HBA, and no way to plug one.
      -drive if=scsi therefore cannot work.  They do have an onboard IDE
      controller (sysbus-ahci), but fail to honor if=ide.
      
      Change their default to if=ide, and add a TODO comment on what needs
      to be done to actually honor -drive if=ide.
      
      Cc: Rob Herring <robh@kernel.org>
      Cc: Peter Maydell <peter.maydell@linaro.org>
      Cc: qemu-arm@nongnu.org
      Signed-off-by: NMarkus Armbruster <armbru@redhat.com>
      Reviewed-by: NThomas Huth <thuth@redhat.com>
      Message-Id: <1487153147-11530-6-git-send-email-armbru@redhat.com>
      2a7ae4ee
    • M
      hw: Default -drive to if=none instead of scsi when scsi cannot work · 7e465513
      Markus Armbruster 提交于
      Block backends defined with -drive if=scsi are meant to be picked up
      by machine initialization code: a suitable frontend gets created and
      wired up automatically.
      
      if=scsi drives not picked up that way can still be used with -device
      as if they had if=none, but that's unclean and best avoided.  Unused
      ones produce an "Orphaned drive without device" warning.
      
      A few machine types default to if=scsi, even though they don't
      actually have a SCSI HBA.  This makes no sense.  Change their default
      to if=none.  Affected machines:
      
      * aarch64/arm: realview-pbx-a9 vexpress-a9 vexpress-a15 xilinx-zynq-a9
      
      Cc: Peter Maydell <peter.maydell@linaro.org>
      Cc: "Edgar E. Iglesias" <edgar.iglesias@gmail.com>
      Cc: Alistair Francis <alistair.francis@xilinx.com>
      Cc: qemu-arm@nongnu.org
      Signed-off-by: NMarkus Armbruster <armbru@redhat.com>
      Reviewed-by: NThomas Huth <thuth@redhat.com>
      Reviewed-by: NAlistair Francis <alistair.francis@xilinx.com>
      Message-Id: <1487153147-11530-5-git-send-email-armbru@redhat.com>
      7e465513
    • M
      hw/arm/cubieboard hw/arm/xlnx-ep108: Fix units_per_default_bus · e0319b03
      Markus Armbruster 提交于
      Machine types cubieboard, xlnx-ep108, xlnx-zcu102 have an onboard AHCI
      controller, but neglect to set their MachineClass member
      units_per_default_bus = 1.  This permits -drive if=ide,unit=1, which
      makes no sense for AHCI.  It also screws up index=N for odd N, because
      it gets desugared to unit=1,bus=N/2
      
      Doesn't really matter, because these machine types fail to honor
      -drive if=ide.  Add the missing units_per_default_bus = 1 anyway,
      along with a TODO comment on what needs to be done for -drive if=ide.
      
      Also set block_default_type = IF_IDE explicitly.  It's currently the
      default, but the next commit will change it to something more
      sensible, and we want to keep the IF_IDE default for these three
      machines.  See also the previous commit.
      
      Cc: Beniamino Galvani <b.galvani@gmail.com>
      Cc: Alistair Francis <alistair.francis@xilinx.com>
      Cc: "Edgar E. Iglesias" <edgar.iglesias@gmail.com>
      Cc: Peter Maydell <peter.maydell@linaro.org>
      Cc: qemu-arm@nongnu.org
      Signed-off-by: NMarkus Armbruster <armbru@redhat.com>
      Acked-by: NAlistair Francis <alistair.francis@xilinx.com>
      Message-Id: <1487153147-11530-3-git-send-email-armbru@redhat.com>
      e0319b03
    • M
      hw: Default -drive to if=ide explicitly where it works · 2059839b
      Markus Armbruster 提交于
      Block backends defined with -drive if=ide are meant to be picked up by
      machine initialization code: a suitable frontend gets created and
      wired up automatically.
      
      if=ide drives not picked up that way can still be used with -device as
      if they had if=none, but that's unclean and best avoided.  Unused ones
      produce an "Orphaned drive without device" warning.
      
      -drive parameter "if" is optional, and the default depends on the
      machine type.  If a machine type doesn't specify a default, the
      default is "ide".
      
      Many machine types default to if=ide, even though they don't actually
      have an IDE controller.  A future patch will change these defaults to
      something more sensible.  To prepare for it, this patch makes default
      "ide" explicit for the machines that actually pick up if=ide drives:
      
      * alpha: clipper
      * arm/aarch64: spitz borzoi terrier tosa
      * i386/x86_64: generic-pc-machine (with concrete subtypes pc-q35-*
        pc-i440fx-* pc-* isapc xenfv)
      * mips64el: fulong2e
      * mips/mipsel/mips64el: malta mips
      * ppc/ppc64: mac99 g3beige prep
      * sh4/sh4eb: r2d
      * sparc64: sun4u sun4v
      
      Note that ppc64 machine powernv already sets an "ide" default
      explicitly.  Its IDE controller isn't implemented, yet.
      Signed-off-by: NMarkus Armbruster <armbru@redhat.com>
      Reviewed-by: NThomas Huth <thuth@redhat.com>
      Message-Id: <1487153147-11530-2-git-send-email-armbru@redhat.com>
      2059839b
  5. 11 2月, 2017 7 次提交
  6. 08 2月, 2017 5 次提交
  7. 28 1月, 2017 1 次提交
  8. 27 1月, 2017 1 次提交
    • M
      armv7m: Replace armv7m.hack with unassigned_access handler · 542b3478
      Michael Davidsaver 提交于
      For v7m we need to catch attempts to execute from special
      addresses at 0xfffffff0 and above. Previously we did this
      with the aid of a hacky special purpose lump of memory
      in the address space and a check in translate.c for whether
      we were translating code at those addresses.
      
      We can implement this more cleanly using a CPU
      unassigned access handler which throws the exception
      if the unassigned access is for one of the special addresses.
      Signed-off-by: NMichael Davidsaver <mdavidsaver@gmail.com>
      Reviewed-by: NAlex Bennée <alex.bennee@linaro.org>
      Message-id: 1484937883-1068-3-git-send-email-peter.maydell@linaro.org
      [PMM:
       * drop the deletion of the "don't interrupt if PC is magic"
         code in arm_v7m_cpu_exec_interrupt() -- this is still
         required
       * don't generate an exception for unassigned accesses
         which aren't to the magic address -- although doing
         this is in theory correct in practice it will break
         currently working guests which rely on the RAZ/WI
         behaviour when they touch devices which we haven't
         modelled.
       * trigger EXCP_EXCEPTION_EXIT on is_exec, not !is_write
      ]
      Signed-off-by: NPeter Maydell <peter.maydell@linaro.org>
      542b3478
  9. 20 1月, 2017 2 次提交