qemu-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-commits] [qemu/qemu] 461c51: Add a phy-num property to the i.MX FE


From: Peter Maydell
Subject: [Qemu-commits] [qemu/qemu] 461c51: Add a phy-num property to the i.MX FEC emulator
Date: Sat, 04 Jul 2020 10:45:22 -0700

  Branch: refs/heads/master
  Home:   https://github.com/qemu/qemu
  Commit: 461c51ad4275f199d4b6ff400f39701541529e39
      
https://github.com/qemu/qemu/commit/461c51ad4275f199d4b6ff400f39701541529e39
  Author: Jean-Christophe Dubois <jcd@tribudubois.net>
  Date:   2020-07-03 (Fri, 03 Jul 2020)

  Changed paths:
    M hw/net/imx_fec.c
    M hw/net/trace-events
    M include/hw/net/imx_fec.h

  Log Message:
  -----------
  Add a phy-num property to the i.MX FEC emulator

We need a solution to use an Ethernet PHY that is not the first device
on the MDIO bus (device 0 on MDIO bus).

As an example with the i.MX6UL the NXP SOC has 2 Ethernet devices but
only one MDIO bus on which the 2 related PHY are connected but at unique
addresses.

Signed-off-by: Jean-Christophe Dubois <jcd@tribudubois.net>
Message-id: 
a1a5c0e139d1c763194b8020573dcb6025daeefa.1593296112.git.jcd@tribudubois.net
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>


  Commit: 456914afc6348e57441bb80e9f0cc4396b26dcbd
      
https://github.com/qemu/qemu/commit/456914afc6348e57441bb80e9f0cc4396b26dcbd
  Author: Jean-Christophe Dubois <jcd@tribudubois.net>
  Date:   2020-07-03 (Fri, 03 Jul 2020)

  Changed paths:
    M hw/arm/fsl-imx6ul.c
    M include/hw/arm/fsl-imx6ul.h

  Log Message:
  -----------
  Add the ability to select a different PHY for each i.MX6UL FEC interface

Add properties to the i.MX6UL processor to be able to select a
particular PHY on the MDIO bus for each FEC device.

Signed-off-by: Jean-Christophe Dubois <jcd@tribudubois.net>
Message-id: 
ea1d604198b6b73ea6521676e45bacfc597aba53.1593296112.git.jcd@tribudubois.net
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>


  Commit: 6552bbc6a3de22f0d975091a07f180e7baf1915b
      
https://github.com/qemu/qemu/commit/6552bbc6a3de22f0d975091a07f180e7baf1915b
  Author: Jean-Christophe Dubois <jcd@tribudubois.net>
  Date:   2020-07-03 (Fri, 03 Jul 2020)

  Changed paths:
    M hw/arm/mcimx6ul-evk.c

  Log Message:
  -----------
  Select MDIO device 2 and 1 as PHY devices for i.MX6UL EVK board.

The i.MX6UL EVK 14x14 board uses:
- PHY 2 for FEC 1
- PHY 1 for FEC 2

Signed-off-by: Jean-Christophe Dubois <jcd@tribudubois.net>
Message-id: 
fb41992126c091a71d76ab3d1898959091f60583.1593296112.git.jcd@tribudubois.net
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>


  Commit: f78069253ccf25c64e19e9889b98e499336f6c6e
      
https://github.com/qemu/qemu/commit/f78069253ccf25c64e19e9889b98e499336f6c6e
  Author: Eric Auger <eric.auger@redhat.com>
  Date:   2020-07-03 (Fri, 03 Jul 2020)

  Changed paths:
    M hw/core/qdev-properties.c
    M include/exec/memory.h
    M include/hw/qdev-properties.h
    M include/qemu/typedefs.h

  Log Message:
  -----------
  qdev: Introduce DEFINE_PROP_RESERVED_REGION

Introduce a new property defining a reserved region:
<low address>:<high address>:<type>.

This will be used to encode reserved IOVA regions.

For instance, in virtio-iommu use case, reserved IOVA regions
will be passed by the machine code to the virtio-iommu-pci
device (an array of those). The type of the reserved region
will match the virtio_iommu_probe_resv_mem subtype value:
- VIRTIO_IOMMU_RESV_MEM_T_RESERVED (0)
- VIRTIO_IOMMU_RESV_MEM_T_MSI (1)

on PC/Q35 machine, this will be used to inform the
virtio-iommu-pci device it should bypass the MSI region.
The reserved region will be: 0xfee00000:0xfeefffff:1.

On ARM, we can declare the ITS MSI doorbell as an MSI
region to prevent MSIs from being mapped on guest side.

Signed-off-by: Eric Auger <eric.auger@redhat.com>
Reviewed-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Message-id: 20200629070404.10969-2-eric.auger@redhat.com
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>


  Commit: 1733eebb9e75b77120b462814f8f9b03ae918a7a
      
https://github.com/qemu/qemu/commit/1733eebb9e75b77120b462814f8f9b03ae918a7a
  Author: Eric Auger <eric.auger@redhat.com>
  Date:   2020-07-03 (Fri, 03 Jul 2020)

  Changed paths:
    M hw/virtio/trace-events
    M hw/virtio/virtio-iommu.c
    M include/hw/virtio/virtio-iommu.h

  Log Message:
  -----------
  virtio-iommu: Implement RESV_MEM probe request

This patch implements the PROBE request. At the moment,
only THE RESV_MEM property is handled. The first goal is
to report iommu wide reserved regions such as the MSI regions
set by the machine code. On x86 this will be the IOAPIC MSI
region, [0xFEE00000 - 0xFEEFFFFF], on ARM this may be the ITS
doorbell.

In the future we may introduce per device reserved regions.
This will be useful when protecting host assigned devices
which may expose their own reserved regions

Signed-off-by: Eric Auger <eric.auger@redhat.com>
Reviewed-by: Jean-Philippe Brucker <jean-philippe@linaro.org>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Message-id: 20200629070404.10969-3-eric.auger@redhat.com
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>


  Commit: 0f5a3092eef7a210e0503b561a4c0ccb98705c7f
      
https://github.com/qemu/qemu/commit/0f5a3092eef7a210e0503b561a4c0ccb98705c7f
  Author: Eric Auger <eric.auger@redhat.com>
  Date:   2020-07-03 (Fri, 03 Jul 2020)

  Changed paths:
    M hw/virtio/virtio-iommu.c

  Log Message:
  -----------
  virtio-iommu: Handle reserved regions in the translation process

When translating an address we need to check if it belongs to
a reserved virtual address range. If it does, there are 2 cases:

- it belongs to a RESERVED region: the guest should neither use
  this address in a MAP not instruct the end-point to DMA on
  them. We report an error

- It belongs to an MSI region: we bypass the translation.

Signed-off-by: Eric Auger <eric.auger@redhat.com>
Reviewed-by: Peter Xu <peterx@redhat.com>
Reviewed-by: Jean-Philippe Brucker <jean-philippe@linaro.org>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Message-id: 20200629070404.10969-4-eric.auger@redhat.com
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>


  Commit: 8077b8e549cf39d9501fe5b66342ae47abb65058
      
https://github.com/qemu/qemu/commit/8077b8e549cf39d9501fe5b66342ae47abb65058
  Author: Eric Auger <eric.auger@redhat.com>
  Date:   2020-07-03 (Fri, 03 Jul 2020)

  Changed paths:
    M hw/virtio/virtio-iommu-pci.c

  Log Message:
  -----------
  virtio-iommu-pci: Add array of Interval properties

The machine may need to pass reserved regions to the
virtio-iommu-pci device (such as the MSI window on x86
or the MSI doorbells on ARM).

So let's add an array of Interval properties.

Note: if some reserved regions are already set by the
machine code - which should be the case in general -,
the length of the property array is already set and
prevents the end-user from modifying them. For example,
attempting to use:

-device virtio-iommu-pci,\
 len-reserved-regions=1,reserved-regions[0]=0xfee00000:0xfeefffff:1

would result in the following error message:

qemu-system-aarch64: -device virtio-iommu-pci,addr=0xa,
len-reserved-regions=1,reserved-regions[0]=0xfee00000:0xfeefffff:1:
array size property len-reserved-regions may not be set more than once

Otherwise, for example, adding two reserved regions is achieved
using the following options:

-device virtio-iommu-pci,addr=0xa,len-reserved-regions=2,\
 reserved-regions[0]=0xfee00000:0xfeefffff:1,\
 reserved-regions[1]=0x1000000:100ffff:1

Signed-off-by: Eric Auger <eric.auger@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Reviewed-by: Jean-Philippe Brucker <jean-philippe@linaro.org>
Reviewed-by: Peter Xu <peterx@redhat.com>
Message-id: 20200629070404.10969-5-eric.auger@redhat.com
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>


  Commit: 1b6f99d84f21473cf2d1adab312dd28dd315a083
      
https://github.com/qemu/qemu/commit/1b6f99d84f21473cf2d1adab312dd28dd315a083
  Author: Eric Auger <eric.auger@redhat.com>
  Date:   2020-07-03 (Fri, 03 Jul 2020)

  Changed paths:
    M hw/arm/virt.c
    M include/hw/arm/virt.h

  Log Message:
  -----------
  hw/arm/virt: Let the virtio-iommu bypass MSIs

At the moment the virtio-iommu translates MSI transactions.
This behavior is inherited from ARM SMMU. The virt machine
code knows where the guest MSI doorbells are so we can easily
declare those regions as VIRTIO_IOMMU_RESV_MEM_T_MSI. With that
setting the guest will not map MSIs through the IOMMU and those
transactions will be simply bypassed.

Depending on which MSI controller is in use (ITS or GICV2M),
we declare either:
- the ITS interrupt translation space (ITS_base + 0x10000),
  containing the GITS_TRANSLATOR or
- The GICV2M single frame, containing the MSI_SETSP_NS register.

Signed-off-by: Eric Auger <eric.auger@redhat.com>
Message-id: 20200629070404.10969-6-eric.auger@redhat.com
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>


  Commit: 694bcaa81f41b7fc5e07273debe1dc309b3dcf03
      
https://github.com/qemu/qemu/commit/694bcaa81f41b7fc5e07273debe1dc309b3dcf03
  Author: Beata Michalska <beata.michalska@linaro.org>
  Date:   2020-07-03 (Fri, 03 Jul 2020)

  Changed paths:
    M target/arm/kvm.c

  Log Message:
  -----------
  target/arm: kvm: Handle DABT with no valid ISS

On ARMv7 & ARMv8 some load/store instructions might trigger a data abort
exception with no valid ISS info to be decoded. The lack of decode info
makes it at least tricky to emulate those instruction which is one of the
(many) reasons why KVM will not even try to do so.

Add support for handling those by requesting KVM to inject external
dabt into the quest.

Signed-off-by: Beata Michalska <beata.michalska@linaro.org>
Reviewed-by: Andrew Jones <drjones@redhat.com>
Message-id: 20200629114110.30723-2-beata.michalska@linaro.org
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>


  Commit: 1711bfa5f5b2b108901813f57246c9ff4a44a50f
      
https://github.com/qemu/qemu/commit/1711bfa5f5b2b108901813f57246c9ff4a44a50f
  Author: Beata Michalska <beata.michalska@linaro.org>
  Date:   2020-07-03 (Fri, 03 Jul 2020)

  Changed paths:
    M target/arm/cpu.h
    M target/arm/kvm.c
    M target/arm/kvm32.c
    M target/arm/kvm64.c
    M target/arm/kvm_arm.h

  Log Message:
  -----------
  target/arm: kvm: Handle misconfigured dabt injection

Injecting external data abort through KVM might trigger
an issue on kernels that do not get updated to include the KVM fix.
For those and aarch32 guests, the injected abort gets misconfigured
to be an implementation defined exception. This leads to the guest
repeatedly re-running the faulting instruction.

Add support for handling that case.

[
  Fixed-by: 018f22f95e8a
        ('KVM: arm: Fix DFSR setting for non-LPAE aarch32 guests')
  Fixed-by: 21aecdbd7f3a
        ('KVM: arm: Make inject_abt32() inject an external abort instead')
]

Signed-off-by: Beata Michalska <beata.michalska@linaro.org>
Acked-by: Andrew Jones <drjones@redhat.com>
Message-id: 20200629114110.30723-3-beata.michalska@linaro.org
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>


  Commit: 4be3de38efc15eecbc14348356d5b4ca9aa92258
      
https://github.com/qemu/qemu/commit/4be3de38efc15eecbc14348356d5b4ca9aa92258
  Author: Andrew Jones <drjones@redhat.com>
  Date:   2020-07-03 (Fri, 03 Jul 2020)

  Changed paths:
    M tests/qtest/bios-tables-test-allowed-diff.h

  Log Message:
  -----------
  tests/acpi: remove stale allowed tables

Fixes: 93dd625f8bf7 ("tests/acpi: update expected data files")
Signed-off-by: Andrew Jones <drjones@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Reviewed-by: Eric Auger <eric.auger@redhat.com>
Message-id: 20200629140938.17566-2-drjones@redhat.com
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>


  Commit: 50824a8c45dc07e0f67b32e65d0190cc2e83c397
      
https://github.com/qemu/qemu/commit/50824a8c45dc07e0f67b32e65d0190cc2e83c397
  Author: Andrew Jones <drjones@redhat.com>
  Date:   2020-07-03 (Fri, 03 Jul 2020)

  Changed paths:
    M tests/qtest/bios-tables-test-allowed-diff.h

  Log Message:
  -----------
  tests/acpi: virt: allow DSDT acpi table changes

Signed-off-by: Andrew Jones <drjones@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Reviewed-by: Eric Auger <eric.auger@redhat.com>
Message-id: 20200629140938.17566-3-drjones@redhat.com
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>


  Commit: 2c1fb4d5c0110a994ec6aeb3e57d36fe3aefdad2
      
https://github.com/qemu/qemu/commit/2c1fb4d5c0110a994ec6aeb3e57d36fe3aefdad2
  Author: Andrew Jones <drjones@redhat.com>
  Date:   2020-07-03 (Fri, 03 Jul 2020)

  Changed paths:
    M hw/arm/virt-acpi-build.c
    M hw/arm/virt.c
    M include/hw/arm/virt.h

  Log Message:
  -----------
  hw/arm/virt-acpi-build: Only expose flash on older machine types

The flash device is exclusively for the host-controlled firmware, so
we should not expose it to the OS. Exposing it risks the OS messing
with it, which could break firmware runtime services and surprise the
OS when all its changes disappear after reboot.

As firmware needs the device and uses DT, we leave the device exposed
there. It's up to firmware to remove the nodes from DT before sending
it on to the OS. However, there's no need to force firmware to remove
tables from ACPI (which it doesn't know how to do anyway), so we
simply don't add the tables in the first place. But, as we've been
adding the tables for quite some time and don't want to change the
default hardware exposed to versioned machines, then we only stop
exposing the flash device tables for 5.1 and later machine types.

Suggested-by: Ard Biesheuvel <ard.biesheuvel@arm.com>
Suggested-by: Laszlo Ersek <lersek@redhat.com>
Signed-off-by: Andrew Jones <drjones@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Reviewed-by: Eric Auger <eric.auger@redhat.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Reviewed-by: Laszlo Ersek <lersek@redhat.com>
Message-id: 20200629140938.17566-4-drjones@redhat.com
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>


  Commit: 7fb3949d1f2365548a1d0e64e685642309029494
      
https://github.com/qemu/qemu/commit/7fb3949d1f2365548a1d0e64e685642309029494
  Author: Andrew Jones <drjones@redhat.com>
  Date:   2020-07-03 (Fri, 03 Jul 2020)

  Changed paths:
    M tests/data/acpi/virt/DSDT
    M tests/data/acpi/virt/DSDT.memhp
    M tests/data/acpi/virt/DSDT.numamem
    M tests/qtest/bios-tables-test-allowed-diff.h

  Log Message:
  -----------
  tests/acpi: virt: update golden masters for DSDT

Differences between disassembled ASL files for DSDT:

@@ -5,13 +5,13 @@
  *
  * Disassembling to symbolic ASL+ operators
  *
- * Disassembly of a, Mon Jun 29 09:50:01 2020
+ * Disassembly of b, Mon Jun 29 09:50:03 2020
  *
  * Original Table Header:
  *     Signature        "DSDT"
- *     Length           0x000014BB (5307)
+ *     Length           0x00001455 (5205)
  *     Revision         0x02
- *     Checksum         0xD1
+ *     Checksum         0xE1
  *     OEM ID           "BOCHS "
  *     OEM Table ID     "BXPCDSDT"
  *     OEM Revision     0x00000001 (1)
@@ -45,32 +45,6 @@
             })
         }

-        Device (FLS0)
-        {
-            Name (_HID, "LNRO0015")  // _HID: Hardware ID
-            Name (_UID, Zero)  // _UID: Unique ID
-            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
-            {
-                Memory32Fixed (ReadWrite,
-                    0x00000000,         // Address Base
-                    0x04000000,         // Address Length
-                    )
-            })
-        }
-
-        Device (FLS1)
-        {
-            Name (_HID, "LNRO0015")  // _HID: Hardware ID
-            Name (_UID, One)  // _UID: Unique ID
-            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
-            {
-                Memory32Fixed (ReadWrite,
-                    0x04000000,         // Address Base
-                    0x04000000,         // Address Length
-                    )
-            })
-        }
-
         Device (FWCF)
         {
             Name (_HID, "QEMU0002")  // _HID: Hardware ID

The other two binaries have the same changes (the removal of the
flash devices).

Signed-off-by: Andrew Jones <drjones@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Reviewed-by: Eric Auger <eric.auger@redhat.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Reviewed-by: Laszlo Ersek <lersek@redhat.com>
Message-id: 20200629140938.17566-5-drjones@redhat.com
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>


  Commit: 4b4dc9750a0aa0b9766bd755bf6512a84744ce8a
      
https://github.com/qemu/qemu/commit/4b4dc9750a0aa0b9766bd755bf6512a84744ce8a
  Author: Richard Henderson <richard.henderson@linaro.org>
  Date:   2020-07-03 (Fri, 03 Jul 2020)

  Changed paths:
    M target/arm/translate-a64.c
    M target/arm/translate-a64.h
    M target/arm/translate-sve.c

  Log Message:
  -----------
  target/arm: Fix temp double-free in sve ldr/str

The temp that gets assigned to clean_addr has been allocated with
new_tmp_a64, which means that it will be freed at the end of the
instruction.  Freeing it earlier leads to assertion failure.

The loop creates a complication, in which we allocate a new local
temp, which does need freeing, and the final code path is shared
between the loop and non-loop.

Fix this complication by adding new_tmp_a64_local so that the new
local temp is freed at the end, and can be treated exactly like
the non-loop path.

Fixes: bba87d0a0f4
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Message-id: 20200702175605.1987125-1-richard.henderson@linaro.org
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>


  Commit: e757db25aa3406e9098ae999a469d56c370f4447
      
https://github.com/qemu/qemu/commit/e757db25aa3406e9098ae999a469d56c370f4447
  Author: Peter Maydell <peter.maydell@linaro.org>
  Date:   2020-07-03 (Fri, 03 Jul 2020)

  Changed paths:
    M hw/display/bcm2835_fb.c

  Log Message:
  -----------
  hw/display/bcm2835_fb.c: Initialize all fields of struct

In bcm2835_fb_mbox_push(), Coverity complains (CID 1429989) that we
pass a pointer to a local struct to another function without
initializing all its fields.  This is a real bug:
bcm2835_fb_reconfigure() copies the whole of our new BCM2385FBConfig
struct into s->config, so any fields we don't initialize will corrupt
the state of the device.

Copy the two fields which we don't want to update (pixo and alpha)
from the existing config so we don't accidentally change them.

Fixes: cfb7ba983857e40e88
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Message-id: 20200628195436.27582-1-peter.maydell@linaro.org


  Commit: f6319db25d6f8f46d407f6fd267d74a3ce52cb7a
      
https://github.com/qemu/qemu/commit/f6319db25d6f8f46d407f6fd267d74a3ce52cb7a
  Author: Peter Maydell <peter.maydell@linaro.org>
  Date:   2020-07-03 (Fri, 03 Jul 2020)

  Changed paths:
    M hw/arm/spitz.c

  Log Message:
  -----------
  hw/arm/spitz: Detabify

The spitz board has been around a long time, and still has a fair number
of hard-coded tab characters in it. We're about to do some work on
this source file, so start out by expanding out the tabs.

This commit is a pure whitespace only change.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Reviewed-by: Alistair Francis <alistair.francis@wdc.com>
Message-id: 20200628142429.17111-2-peter.maydell@linaro.org


  Commit: e3d986da47c8163175c6c09b217ae45a935b0933
      
https://github.com/qemu/qemu/commit/e3d986da47c8163175c6c09b217ae45a935b0933
  Author: Peter Maydell <peter.maydell@linaro.org>
  Date:   2020-07-03 (Fri, 03 Jul 2020)

  Changed paths:
    M hw/arm/spitz.c

  Log Message:
  -----------
  hw/arm/spitz: Create SpitzMachineClass abstract base class

For the four Spitz-family machines (akita, borzoi, spitz, terrier)
create a proper abstract class SpitzMachineClass which encapsulates
the common behaviour, rather than having them all derive directly
from TYPE_MACHINE:
 * instead of each machine class setting mc->init to a wrapper
   function which calls spitz_common_init() with parameters,
   put that data in the SpitzMachineClass and make spitz_common_init
   the SpitzMachineClass machine-init function
 * move the settings of mc->block_default_type and
   mc->ignore_memory_transaction_failures into the SpitzMachineClass
   class init rather than repeating them in each machine's class init

(The motivation is that we're going to want to keep some state in
the SpitzMachineState so we can connect GPIOs between devices created
in one sub-function of the machine init to devices created in a
different sub-function.)

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Message-id: 20200628142429.17111-3-peter.maydell@linaro.org


  Commit: 39854425d7bb4a8b95829ac50ab92ff338eb7851
      
https://github.com/qemu/qemu/commit/39854425d7bb4a8b95829ac50ab92ff338eb7851
  Author: Peter Maydell <peter.maydell@linaro.org>
  Date:   2020-07-03 (Fri, 03 Jul 2020)

  Changed paths:
    M hw/arm/spitz.c

  Log Message:
  -----------
  hw/arm/spitz: Keep pointers to MPU and SSI devices in SpitzMachineState

Keep pointers to the MPU and the SSI devices in SpitzMachineState.
We're going to want to make GPIO connections between some of the
SSI devices and the SCPs, so we want to keep hold of a pointer to
those; putting the MPU into the struct allows us to pass just
one thing to spitz_ssp_attach() rather than two.

We have to retain the setting of the global "max1111" variable
for the moment as it is used in spitz_adc_temp_on(); later in
this series of commits we will be able to remove it.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Alistair Francis <alistair.francis@wdc.com>
Message-id: 20200628142429.17111-4-peter.maydell@linaro.org


  Commit: ffe7f90698099f0f702154492df05cf6a14c6b62
      
https://github.com/qemu/qemu/commit/ffe7f90698099f0f702154492df05cf6a14c6b62
  Author: Peter Maydell <peter.maydell@linaro.org>
  Date:   2020-07-03 (Fri, 03 Jul 2020)

  Changed paths:
    M hw/arm/spitz.c

  Log Message:
  -----------
  hw/arm/spitz: Keep pointers to scp0, scp1 in SpitzMachineState

Keep pointers to scp0, scp1 in SpitzMachineState, and just pass
that to spitz_scoop_gpio_setup().

(We'll want to use some of the other fields in SpitzMachineState
in that function in the next commit.)

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Alistair Francis <alistair.francis@wdc.com>
Message-id: 20200628142429.17111-5-peter.maydell@linaro.org


  Commit: 2e354c028a282b1bae56154ed52ac80746eb24b3
      
https://github.com/qemu/qemu/commit/2e354c028a282b1bae56154ed52ac80746eb24b3
  Author: Peter Maydell <peter.maydell@linaro.org>
  Date:   2020-07-03 (Fri, 03 Jul 2020)

  Changed paths:
    M hw/arm/spitz.c

  Log Message:
  -----------
  hw/arm/spitz: Implement inbound GPIO lines for bit5 and power signals

Currently the Spitz board uses a nasty hack for the GPIO lines
that pass "bit5" and "power" information to the LCD controller:
the lcdtg realize function sets a global variable to point to
the instance it just realized, and then the functions spitz_bl_power()
and spitz_bl_bit5() use that to find the device they are changing
the internal state of. There is a comment reading:
 FIXME: Implement GPIO properly and remove this hack.
which was added in 2009.

Implement GPIO properly and remove this hack.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Alistair Francis <alistair.francis@wdc.com>
Message-id: 20200628142429.17111-6-peter.maydell@linaro.org


  Commit: b064d51f6022c49ceab73c46e84ae05f9f704732
      
https://github.com/qemu/qemu/commit/b064d51f6022c49ceab73c46e84ae05f9f704732
  Author: Peter Maydell <peter.maydell@linaro.org>
  Date:   2020-07-03 (Fri, 03 Jul 2020)

  Changed paths:
    M hw/misc/max111x.c

  Log Message:
  -----------
  hw/misc/max111x: provide QOM properties for setting initial values

Add some QOM properties to the max111x ADC device to allow the
initial values to be configured. Currently this is done by
board code calling max111x_set_input() after it creates the
device, which doesn't work on system reset.

This requires us to implement a reset method for this device,
so while we're doing that make sure we reset the other parts
of the device state.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Reviewed-by: Alistair Francis <alistair.francis@wdc.com>
Message-id: 20200628142429.17111-7-peter.maydell@linaro.org


  Commit: 40d9d2f7682c789404ed5b249012ac44f9e6ea8f
      
https://github.com/qemu/qemu/commit/40d9d2f7682c789404ed5b249012ac44f9e6ea8f
  Author: Peter Maydell <peter.maydell@linaro.org>
  Date:   2020-07-03 (Fri, 03 Jul 2020)

  Changed paths:
    M hw/misc/max111x.c

  Log Message:
  -----------
  hw/misc/max111x: Don't use vmstate_register()

The max111x is a proper qdev device; we can use dc->vmsd rather than
directly calling vmstate_register().

It's possible that this is a migration compat break, but the only
boards that use this device are the spitz-family ('akita', 'borzoi',
'spitz', 'terrier').

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Reviewed-by: Alistair Francis <alistair.francis@wdc.com>
Message-id: 20200628142429.17111-8-peter.maydell@linaro.org


  Commit: 581e109d5836f5166d15a01c43e18632f93357c5
      
https://github.com/qemu/qemu/commit/581e109d5836f5166d15a01c43e18632f93357c5
  Author: Peter Maydell <peter.maydell@linaro.org>
  Date:   2020-07-03 (Fri, 03 Jul 2020)

  Changed paths:
    M hw/ssi/ssi.c
    M include/hw/ssi/ssi.h

  Log Message:
  -----------
  ssi: Add ssi_realize_and_unref()

Add an ssi_realize_and_unref(), for the benefit of callers
who want to be able to create an SSI device, set QOM properties
on it, and then do the realize-and-unref afterwards.

The API works on the same principle as the recently added
qdev_realize_and_undef(), sysbus_realize_and_undef(), etc.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Reviewed-by: Alistair Francis <alistair.francis@wdc.com>
Message-id: 20200628142429.17111-9-peter.maydell@linaro.org


  Commit: 4aed7b51c298e5497ff0d3d7d584f3c53acc9f3f
      
https://github.com/qemu/qemu/commit/4aed7b51c298e5497ff0d3d7d584f3c53acc9f3f
  Author: Peter Maydell <peter.maydell@linaro.org>
  Date:   2020-07-03 (Fri, 03 Jul 2020)

  Changed paths:
    M hw/arm/spitz.c

  Log Message:
  -----------
  hw/arm/spitz: Use max111x properties to set initial values

Use the new max111x qdev properties to set the initial input
values rather than calling max111x_set_input(); this means that
on system reset the inputs will correctly return to their initial
values.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Message-id: 20200628142429.17111-10-peter.maydell@linaro.org


  Commit: 871f82722ccddf8886acf19989289072bc73e873
      
https://github.com/qemu/qemu/commit/871f82722ccddf8886acf19989289072bc73e873
  Author: Peter Maydell <peter.maydell@linaro.org>
  Date:   2020-07-03 (Fri, 03 Jul 2020)

  Changed paths:
    M hw/arm/spitz.c
    M hw/misc/max111x.c
    M include/hw/ssi/ssi.h

  Log Message:
  -----------
  hw/misc/max111x: Use GPIO lines rather than max111x_set_input()

The max111x ADC device model allows other code to set the level on
the 8 ADC inputs using the max111x_set_input() function.  Replace
this with generic qdev GPIO inputs, which also allow inputs to be set
to arbitrary values.

Using GPIO lines will make it easier for board code to wire things
up, so that if device A wants to set the ADC input it doesn't need to
have a direct pointer to the max111x but can just set that value on
its output GPIO, which is then wired up by the board to the
appropriate max111x input.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Alistair Francis <alistair.francis@wdc.com>
Message-id: 20200628142429.17111-11-peter.maydell@linaro.org


  Commit: 3029681235b492026739b831a24a75d1e94e7be5
      
https://github.com/qemu/qemu/commit/3029681235b492026739b831a24a75d1e94e7be5
  Author: Peter Maydell <peter.maydell@linaro.org>
  Date:   2020-07-03 (Fri, 03 Jul 2020)

  Changed paths:
    M MAINTAINERS
    M hw/arm/spitz.c
    M hw/misc/max111x.c
    A include/hw/misc/max111x.h

  Log Message:
  -----------
  hw/misc/max111x: Create header file for documentation, TYPE_ macros

Create a header file for the hw/misc/max111x device, in the
usual modern style for QOM devices:
 * definition of the TYPE_ constants and macros
 * definition of the device's state struct so that it can
   be embedded in other structs if desired
 * documentation of the interface

This allows us to use TYPE_MAX_1111 in the spitz.c code rather
than the string "max1111".

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Message-id: 20200628142429.17111-12-peter.maydell@linaro.org


  Commit: eb2dc887a4c71d9e4efd0861fcf7094d0df9df99
      
https://github.com/qemu/qemu/commit/eb2dc887a4c71d9e4efd0861fcf7094d0df9df99
  Author: Peter Maydell <peter.maydell@linaro.org>
  Date:   2020-07-03 (Fri, 03 Jul 2020)

  Changed paths:
    M hw/arm/spitz.c

  Log Message:
  -----------
  hw/arm/spitz: Encapsulate misc GPIO handling in a device

Currently we have a free-floating set of IRQs and a function
spitz_out_switch() which handle some miscellaneous GPIO lines for the
spitz board.  Encapsulate this behaviour in a simple QOM device.

At this point we can finally remove the 'max1111' global, because the
ADC battery-temperature value is now handled by the misc-gpio device
writing the value to its outbound "adc-temp" GPIO, which the board
code wires up to the appropriate inbound GPIO line on the max1111.

This commit also fixes Coverity issue CID 1421913 (which pointed out
that the 'outsignals' in spitz_scoop_gpio_setup() were leaked),
because it removes the use of the qemu_allocate_irqs() API from this
code entirely.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Reviewed-by: Alistair Francis <alistair.francis@wdc.com>
Message-id: 20200628142429.17111-13-peter.maydell@linaro.org


  Commit: a0a8cf78e0e1bdb8923ea1466518ea24be323292
      
https://github.com/qemu/qemu/commit/a0a8cf78e0e1bdb8923ea1466518ea24be323292
  Author: Peter Maydell <peter.maydell@linaro.org>
  Date:   2020-07-03 (Fri, 03 Jul 2020)

  Changed paths:
    M hw/arm/spitz.c
    M hw/gpio/zaurus.c
    M include/hw/arm/sharpsl.h

  Log Message:
  -----------
  hw/gpio/zaurus.c: Use LOG_GUEST_ERROR for bad guest register accesses

Instead of logging guest accesses to invalid register offsets in this
device using zaurus_printf() (which just prints to stderr), use the
usual qemu_log_mask(LOG_GUEST_ERROR,...).

Since this was the only use of the zaurus_printf() macro outside
spitz.c, we can move the definition of that macro from sharpsl.h
to spitz.c.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Reviewed-by: Alistair Francis <alistair.francis@wdc.com>
Message-id: 20200628142429.17111-14-peter.maydell@linaro.org


  Commit: eb2d6dbc98404be76c0ebbad69a623599d163f94
      
https://github.com/qemu/qemu/commit/eb2d6dbc98404be76c0ebbad69a623599d163f94
  Author: Peter Maydell <peter.maydell@linaro.org>
  Date:   2020-07-03 (Fri, 03 Jul 2020)

  Changed paths:
    M hw/arm/spitz.c

  Log Message:
  -----------
  hw/arm/spitz: Use LOG_GUEST_ERROR for bad guest register accesses

Instead of logging guest accesses to invalid register offsets in the
Spitz flash device with zaurus_printf() (which just prints to stderr),
use the usual qemu_log_mask(LOG_GUEST_ERROR,...).

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Reviewed-by: Alistair Francis <alistair.francis@wdc.com>
Message-id: 20200628142429.17111-15-peter.maydell@linaro.org


  Commit: e53652ebeaba50e4cc54608ac5e2fe1b8b8717dc
      
https://github.com/qemu/qemu/commit/e53652ebeaba50e4cc54608ac5e2fe1b8b8717dc
  Author: Peter Maydell <peter.maydell@linaro.org>
  Date:   2020-07-03 (Fri, 03 Jul 2020)

  Changed paths:
    M hw/arm/pxa2xx_pic.c
    M include/hw/arm/pxa.h

  Log Message:
  -----------
  hw/arm/pxa2xx_pic: Use LOG_GUEST_ERROR for bad guest register accesses

Instead of using printf() for logging guest accesses to invalid
register offsets in the pxa2xx PIC device, use the usual
qemu_log_mask(LOG_GUEST_ERROR,...).

This was the only user of the REG_FMT macro in pxa.h, so we can
remove that.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Reviewed-by: Alistair Francis <alistair.francis@wdc.com>
Message-id: 20200628142429.17111-16-peter.maydell@linaro.org


  Commit: 62a4d34020197e16e54ec79f7991a6acaedfecf6
      
https://github.com/qemu/qemu/commit/62a4d34020197e16e54ec79f7991a6acaedfecf6
  Author: Peter Maydell <peter.maydell@linaro.org>
  Date:   2020-07-03 (Fri, 03 Jul 2020)

  Changed paths:
    M hw/arm/spitz.c

  Log Message:
  -----------
  hw/arm/spitz: Provide usual QOM macros for corgi-ssp and spitz-lcdtg

The QOM types "spitz-lcdtg" and "corgi-ssp" are missing the
usual QOM TYPE and casting macros; provide and use them.

In particular, we can safely use the QOM cast macros instead of
FROM_SSI_SLAVE() because in both cases the 'ssidev' field of
the instance state struct is the first field in it.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Reviewed-by: Alistair Francis <alistair.francis@wdc.com>
Message-id: 20200628142429.17111-17-peter.maydell@linaro.org


  Commit: 213f63df77b08dc47dcb3df215749b46fd4d9e8c
      
https://github.com/qemu/qemu/commit/213f63df77b08dc47dcb3df215749b46fd4d9e8c
  Author: Peter Maydell <peter.maydell@linaro.org>
  Date:   2020-07-03 (Fri, 03 Jul 2020)

  Changed paths:
    M hw/arm/z2.c
    M hw/display/ads7846.c
    M hw/display/ssd0323.c
    M hw/sd/ssi-sd.c
    M include/hw/ssi/ssi.h

  Log Message:
  -----------
  Replace uses of FROM_SSI_SLAVE() macro with QOM casts

The FROM_SSI_SLAVE() macro predates QOM and is used as a typesafe way
to cast from an SSISlave* to the instance struct of a subtype of
TYPE_SSI_SLAVE.  Switch to using the QOM cast macros instead, which
have the same effect (by writing the QOM macros if the types were
previously missing them.)

(The FROM_SSI_SLAVE() macro allows the SSISlave member of the
subtype's struct to be anywhere as long as it is named "ssidev",
whereas a QOM cast macro insists that it is the first thing in the
subtype's struct.  This is true for all the types we convert here.)

This removes all the uses of FROM_SSI_SLAVE() so we can delete the
definition.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Reviewed-by: Alistair Francis <alistair.francis@wdc.com>
Message-id: 20200628142429.17111-18-peter.maydell@linaro.org


  Commit: 0f10bf84a9d489259a5b11c6aa1b05c1175b76ea
      
https://github.com/qemu/qemu/commit/0f10bf84a9d489259a5b11c6aa1b05c1175b76ea
  Author: Peter Maydell <peter.maydell@linaro.org>
  Date:   2020-07-03 (Fri, 03 Jul 2020)

  Changed paths:
    M docs/system/deprecated.rst

  Log Message:
  -----------
  Deprecate TileGX port

Deprecate our TileGX target support:
 * we have no active maintainer for it
 * it has had essentially no contributions (other than tree-wide cleanups
   and similar) since it was first added
 * the Linux kernel dropped support in 2018, as has glibc

Note the deprecation in the manual, but don't try to print a warning
when QEMU runs -- printing unsuppressable messages is more obtrusive
for linux-user mode than it would be for system-emulation mode, and
it doesn't seem worth trying to invent a new suppressible-error
system for linux-user just for this.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Reviewed-by: Thomas Huth <thuth@redhat.com>
Message-id: 20200619154831.26319-1-peter.maydell@linaro.org


  Commit: eb6490f544388dd24c0d054a96dd304bc7284450
      
https://github.com/qemu/qemu/commit/eb6490f544388dd24c0d054a96dd304bc7284450
  Author: Peter Maydell <peter.maydell@linaro.org>
  Date:   2020-07-04 (Sat, 04 Jul 2020)

  Changed paths:
    M MAINTAINERS
    M docs/system/deprecated.rst
    M hw/arm/fsl-imx6ul.c
    M hw/arm/mcimx6ul-evk.c
    M hw/arm/pxa2xx_pic.c
    M hw/arm/spitz.c
    M hw/arm/virt-acpi-build.c
    M hw/arm/virt.c
    M hw/arm/z2.c
    M hw/core/qdev-properties.c
    M hw/display/ads7846.c
    M hw/display/bcm2835_fb.c
    M hw/display/ssd0323.c
    M hw/gpio/zaurus.c
    M hw/misc/max111x.c
    M hw/net/imx_fec.c
    M hw/net/trace-events
    M hw/sd/ssi-sd.c
    M hw/ssi/ssi.c
    M hw/virtio/trace-events
    M hw/virtio/virtio-iommu-pci.c
    M hw/virtio/virtio-iommu.c
    M include/exec/memory.h
    M include/hw/arm/fsl-imx6ul.h
    M include/hw/arm/pxa.h
    M include/hw/arm/sharpsl.h
    M include/hw/arm/virt.h
    A include/hw/misc/max111x.h
    M include/hw/net/imx_fec.h
    M include/hw/qdev-properties.h
    M include/hw/ssi/ssi.h
    M include/hw/virtio/virtio-iommu.h
    M include/qemu/typedefs.h
    M target/arm/cpu.h
    M target/arm/kvm.c
    M target/arm/kvm32.c
    M target/arm/kvm64.c
    M target/arm/kvm_arm.h
    M target/arm/translate-a64.c
    M target/arm/translate-a64.h
    M target/arm/translate-sve.c
    M tests/data/acpi/virt/DSDT
    M tests/data/acpi/virt/DSDT.memhp
    M tests/data/acpi/virt/DSDT.numamem
    M tests/qtest/bios-tables-test-allowed-diff.h

  Log Message:
  -----------
  Merge remote-tracking branch 'remotes/pmaydell/tags/pull-target-arm-20200703' 
into staging

target-arm queue:
 * i.MX6UL EVK board: put PHYs in the correct places
 * hw/arm/virt: Let the virtio-iommu bypass MSIs
 * target/arm: kvm: Handle DABT with no valid ISS
 * hw/arm/virt-acpi-build: Only expose flash on older machine types
 * target/arm: Fix temp double-free in sve ldr/str
 * hw/display/bcm2835_fb.c: Initialize all fields of struct
 * hw/arm/spitz: Code cleanup to fix Coverity-detected memory leak
 * Deprecate TileGX port

# gpg: Signature made Fri 03 Jul 2020 17:53:05 BST
# gpg:                using RSA key E1A5C593CD419DE28E8315CF3C2525ED14360CDE
# gpg:                issuer "peter.maydell@linaro.org"
# gpg: Good signature from "Peter Maydell <peter.maydell@linaro.org>" [ultimate]
# gpg:                 aka "Peter Maydell <pmaydell@gmail.com>" [ultimate]
# gpg:                 aka "Peter Maydell <pmaydell@chiark.greenend.org.uk>" 
[ultimate]
# Primary key fingerprint: E1A5 C593 CD41 9DE2 8E83  15CF 3C25 25ED 1436 0CDE

* remotes/pmaydell/tags/pull-target-arm-20200703: (34 commits)
  Deprecate TileGX port
  Replace uses of FROM_SSI_SLAVE() macro with QOM casts
  hw/arm/spitz: Provide usual QOM macros for corgi-ssp and spitz-lcdtg
  hw/arm/pxa2xx_pic: Use LOG_GUEST_ERROR for bad guest register accesses
  hw/arm/spitz: Use LOG_GUEST_ERROR for bad guest register accesses
  hw/gpio/zaurus.c: Use LOG_GUEST_ERROR for bad guest register accesses
  hw/arm/spitz: Encapsulate misc GPIO handling in a device
  hw/misc/max111x: Create header file for documentation, TYPE_ macros
  hw/misc/max111x: Use GPIO lines rather than max111x_set_input()
  hw/arm/spitz: Use max111x properties to set initial values
  ssi: Add ssi_realize_and_unref()
  hw/misc/max111x: Don't use vmstate_register()
  hw/misc/max111x: provide QOM properties for setting initial values
  hw/arm/spitz: Implement inbound GPIO lines for bit5 and power signals
  hw/arm/spitz: Keep pointers to scp0, scp1 in SpitzMachineState
  hw/arm/spitz: Keep pointers to MPU and SSI devices in SpitzMachineState
  hw/arm/spitz: Create SpitzMachineClass abstract base class
  hw/arm/spitz: Detabify
  hw/display/bcm2835_fb.c: Initialize all fields of struct
  target/arm: Fix temp double-free in sve ldr/str
  ...

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>


Compare: https://github.com/qemu/qemu/compare/0b100c8e72c5...eb6490f54438



reply via email to

[Prev in Thread] Current Thread [Next in Thread]