History log of /openbmc/qemu/hw/intc/ (Results 576 – 600 of 1839)
Revision Date Author Comments
(<<< Hide modified files)
(Show modified files >>>)
95d729e201-Mar-2022 Cédric Le Goater <clg@kaod.org>

ppc/pnv: add XIVE Gen2 TIMA support

Only the CAM line updates done by the hypervisor are specific to
POWER10. Instead of duplicating the TM ops table, we handle these
commands locally under the Powe

ppc/pnv: add XIVE Gen2 TIMA support

Only the CAM line updates done by the hypervisor are specific to
POWER10. Instead of duplicating the TM ops table, we handle these
commands locally under the PowerNV XIVE2 model.

Reviewed-by: Daniel Henrique Barboza <danielhb413@gmail.com>
Signed-off-by: Cédric Le Goater <clg@kaod.org>

show more ...

707ea7ab01-Mar-2022 Cédric Le Goater <clg@kaod.org>

pnv/xive2: Introduce new capability bits

These bits control the availability of interrupt features : StoreEOI,
PHB PQ_disable, PHB Address-Based Trigger and the overall XIVE
exploitation mode. These

pnv/xive2: Introduce new capability bits

These bits control the availability of interrupt features : StoreEOI,
PHB PQ_disable, PHB Address-Based Trigger and the overall XIVE
exploitation mode. These bits can be set at early boot time of the
system to activate/deactivate a feature for testing purposes. The
default value should be '1'.

The 'XIVE exploitation mode' bit is a software bit that skiboot could
use to disable the XIVE OS interface and propose a P8 style XICS
interface instead. There are no plans for that for the moment.

Reviewed-by: Daniel Henrique Barboza <danielhb413@gmail.com>
Signed-off-by: Cédric Le Goater <clg@kaod.org>

show more ...

c6b8cc3701-Mar-2022 Cédric Le Goater <clg@kaod.org>

ppc/pnv: Add support for PQ offload on PHB5

The PQ_disable configuration bit disables the check done on the PQ
state bits when processing new MSI interrupts. When bit 9 is enabled,
the PHB forwards

ppc/pnv: Add support for PQ offload on PHB5

The PQ_disable configuration bit disables the check done on the PQ
state bits when processing new MSI interrupts. When bit 9 is enabled,
the PHB forwards any MSI trigger to the XIVE interrupt controller
without checking the PQ state bits. The XIVE IC knows from the trigger
message that the PQ bits have not been checked and performs the check
locally.

This configuration bit only applies to MSIs and LSIs are still checked
on the PHB to handle the assertion level.

PQ_disable enablement is a requirement for StoreEOI.

Reviewed-by: Daniel Henrique Barboza <danielhb413@gmail.com>
Signed-off-by: Cédric Le Goater <clg@kaod.org>

show more ...

0aa2612a01-Mar-2022 Cédric Le Goater <clg@kaod.org>

ppc/xive: Add support for PQ state bits offload

The trigger message coming from a HW source contains a special bit
informing the XIVE interrupt controller that the PQ bits have been
checked at the s

ppc/xive: Add support for PQ state bits offload

The trigger message coming from a HW source contains a special bit
informing the XIVE interrupt controller that the PQ bits have been
checked at the source or not. Depending on the value, the IC can
perform the check and the state transition locally using its own PQ
state bits.

The following changes add new accessors to the XiveRouter required to
query and update the PQ state bits. This only applies to the PowerNV
machine. sPAPR accessors are provided but the pSeries machine should
not be concerned by such complex configuration for the moment.

Reviewed-by: Daniel Henrique Barboza <danielhb413@gmail.com>
Signed-off-by: Cédric Le Goater <clg@kaod.org>

show more ...

aadf13ab01-Mar-2022 Cédric Le Goater <clg@kaod.org>

ppc/xive2: Add support for notification injection on ESB pages

This is an internal offset used to inject triggers when the PQ state
bits are not controlled locally. Such as for LSIs when the PHB5 ar

ppc/xive2: Add support for notification injection on ESB pages

This is an internal offset used to inject triggers when the PQ state
bits are not controlled locally. Such as for LSIs when the PHB5 are
using the Address-Based Interrupt Trigger mode and on the END.

Reviewed-by: Daniel Henrique Barboza <danielhb413@gmail.com>
Signed-off-by: Cédric Le Goater <clg@kaod.org>

show more ...

da71b7e301-Mar-2022 Cédric Le Goater <clg@kaod.org>

ppc/pnv: Add a XIVE2 controller to the POWER10 chip

The XIVE2 interrupt controller of the POWER10 processor follows the
same logic than on POWER9 but the HW interface has been largely
reviewed. It

ppc/pnv: Add a XIVE2 controller to the POWER10 chip

The XIVE2 interrupt controller of the POWER10 processor follows the
same logic than on POWER9 but the HW interface has been largely
reviewed. It has a new register interface, different BARs, extra
VSDs, new layout for the XIVE2 structures, and a set of new features
which are described below.

This is a model of the POWER10 XIVE2 interrupt controller for the
PowerNV machine. It focuses primarily on the needs of the skiboot
firmware but some initial hypervisor support is implemented for KVM
use (escalation).

Support for new features will be implemented in time and will require
new support from the OS.

* XIVE2 BARS

The interrupt controller BARs have a different layout outlined below.
Each sub-engine has now own its range and the indirect TIMA access was
replaced with a set of pages, one per CPU, under the IC BAR:

- IC BAR (Interrupt Controller)
. 4 pages, one per sub-engine
. 128 indirect TIMA pages
- TM BAR (Thread Interrupt Management Area)
. 4 pages
- ESB BAR (ESB pages for IPIs)
. up to 1TB
- END BAR (ESB pages for ENDs)
. up to 2TB
- NVC BAR (Notification Virtual Crowd)
. up to 128
- NVPG BAR (Notification Virtual Process and Group)
. up to 1TB
- Direct mapped Thread Context Area (reads & writes)

OPAL does not use the grouping and crowd capability.

* Virtual Structure Tables

XIVE2 adds new tables types and also changes the field layout of the END
and NVP Virtualization Structure Descriptors.

- EAS
- END new layout
- NVT was splitted in :
. NVP (Processor), 32B
. NVG (Group), 32B
. NVC (Crowd == P9 block group) 32B
- IC for remote configuration
- SYNC for cache injection
- ERQ for event input queue

The setup is slighly different on XIVE2 because the indexing has changed
for some of the tables, block ID or the chip topology ID can be used.

* XIVE2 features

SCOM and MMIO registers have a new layout and XIVE2 adds a new global
capability and configuration registers.

The lowlevel hardware offers a set of new features among which :

- a configurable number of priorities : 1 - 8
- StoreEOI with load-after-store ordering is activated by default
- Gen2 TIMA layout
- A P9-compat mode, or Gen1, TIMA toggle bit for SW compatibility
- increase to 24bit for VP number

Other features will have some impact on the Hypervisor and guest OS
when activated, but this is not required for initial support of the
controller.

Reviewed-by: Daniel Henrique Barboza <danielhb413@gmail.com>
Signed-off-by: Cédric Le Goater <clg@kaod.org>

show more ...

09a67f3d01-Mar-2022 Cédric Le Goater <clg@kaod.org>

ppc/xive2: Introduce a presenter matching routine

The VP space is larger in XIVE2 (P10), 24 bits instead of 19bits on
XIVE (P9), and the CAM line can use a 7bits or 8bits thread id.

For now, we onl

ppc/xive2: Introduce a presenter matching routine

The VP space is larger in XIVE2 (P10), 24 bits instead of 19bits on
XIVE (P9), and the CAM line can use a 7bits or 8bits thread id.

For now, we only use 7bits thread ids, same as P9, but because of the
change of the size of the VP space, the CAM matching routine is
different between P9 and P10. It is easier to duplicate the whole
routine than to add extra handlers in xive_presenter_tctx_match() used
for P9.

We might come with a better solution later on, after we have added
some more support for the XIVE2 controller.

Reviewed-by: Daniel Henrique Barboza <danielhb413@gmail.com>
Signed-off-by: Cédric Le Goater <clg@kaod.org>

show more ...

f8a233de01-Mar-2022 Cédric Le Goater <clg@kaod.org>

ppc/xive2: Introduce a XIVE2 core framework

The XIVE2 interrupt controller of the POWER10 processor as the same
logic as on POWER9 but its SW interface has been largely reworked. The
interrupt contr

ppc/xive2: Introduce a XIVE2 core framework

The XIVE2 interrupt controller of the POWER10 processor as the same
logic as on POWER9 but its SW interface has been largely reworked. The
interrupt controller has a new register interface, different BARs,
extra VSDs. These will be described when we add the device model for
the baremetal machine.

The XIVE internal structures for the EAS, END, NVT have different
layouts which is a problem for the current core XIVE framework. To
avoid adding too much complexity in the XIVE models, a new XIVE2 core
framework is introduced. It duplicates the models which are closely
linked to the XIVE internal structures : Xive2Router and
Xive2ENDSource and reuses the XiveSource, XivePresenter, XiveTCTX
models, as they are more generic.

Reviewed-by: Daniel Henrique Barboza <danielhb413@gmail.com>
Signed-off-by: Cédric Le Goater <clg@kaod.org>

show more ...


/openbmc/qemu/.travis.yml
/openbmc/qemu/MAINTAINERS
/openbmc/qemu/accel/tcg/cpu-exec.c
/openbmc/qemu/accel/tcg/translate-all.c
/openbmc/qemu/backends/hostmem-file.c
/openbmc/qemu/backends/hostmem.c
/openbmc/qemu/backends/tpm/meson.build
/openbmc/qemu/block/meson.build
/openbmc/qemu/block/ssh.c
/openbmc/qemu/bsd-user/signal.c
/openbmc/qemu/configs/targets/or1k-softmmu.mak
/openbmc/qemu/configure
/openbmc/qemu/contrib/vhost-user-gpu/meson.build
/openbmc/qemu/crypto/meson.build
/openbmc/qemu/docs/about/deprecated.rst
/openbmc/qemu/docs/about/removed-features.rst
/openbmc/qemu/docs/devel/kconfig.rst
/openbmc/qemu/docs/interop/firmware.json
/openbmc/qemu/docs/meson.build
/openbmc/qemu/docs/system/arm/aspeed.rst
/openbmc/qemu/docs/system/arm/nuvoton.rst
/openbmc/qemu/docs/system/qemu-block-drivers.rst.inc
/openbmc/qemu/hw/acpi/memory_hotplug.c
/openbmc/qemu/hw/acpi/meson.build
/openbmc/qemu/hw/arm/Kconfig
/openbmc/qemu/hw/arm/armv7m.c
/openbmc/qemu/hw/arm/aspeed.c
/openbmc/qemu/hw/arm/aspeed_ast2600.c
/openbmc/qemu/hw/arm/npcm7xx_boards.c
/openbmc/qemu/hw/arm/nseries.c
/openbmc/qemu/hw/arm/omap1.c
/openbmc/qemu/hw/core/ptimer.c
/openbmc/qemu/hw/display/omap_dss.c
/openbmc/qemu/hw/gpio/omap_gpio.c
/openbmc/qemu/hw/i2c/Kconfig
/openbmc/qemu/hw/ide/core.c
/openbmc/qemu/hw/input/hid.c
/openbmc/qemu/hw/input/tsc210x.c
meson.build
xive2.c
/openbmc/qemu/hw/misc/aspeed_sbc.c
/openbmc/qemu/hw/misc/aspeed_sdmc.c
/openbmc/qemu/hw/misc/meson.build
/openbmc/qemu/hw/misc/trace-events
/openbmc/qemu/hw/nvram/eeprom_at24c.c
/openbmc/qemu/hw/openrisc/meson.build
/openbmc/qemu/hw/openrisc/openrisc_sim.c
/openbmc/qemu/hw/pci-host/pnv_phb4.c
/openbmc/qemu/hw/ppc/pnv.c
/openbmc/qemu/hw/ppc/spapr_rtc.c
/openbmc/qemu/hw/remote/proxy-memory-listener.c
/openbmc/qemu/hw/rtc/Kconfig
/openbmc/qemu/hw/rtc/mc146818rtc.c
/openbmc/qemu/hw/rtc/meson.build
/openbmc/qemu/hw/rtc/pl031.c
/openbmc/qemu/hw/s390x/s390-virtio-ccw.c
/openbmc/qemu/hw/scsi/megasas.c
/openbmc/qemu/hw/scsi/scsi-bus.c
/openbmc/qemu/hw/scsi/scsi-disk.c
/openbmc/qemu/hw/sensor/Kconfig
/openbmc/qemu/hw/ssi/aspeed_smc.c
/openbmc/qemu/hw/timer/a9gtimer.c
/openbmc/qemu/hw/tpm/tpm_crb.c
/openbmc/qemu/hw/tpm/tpm_ppi.c
/openbmc/qemu/hw/tpm/tpm_ppi.h
/openbmc/qemu/hw/usb/dev-hid.c
/openbmc/qemu/hw/virtio/virtio-balloon.c
/openbmc/qemu/include/exec/exec-all.h
/openbmc/qemu/include/exec/helper-head.h
/openbmc/qemu/include/exec/ramblock.h
/openbmc/qemu/include/hw/arm/aspeed_soc.h
/openbmc/qemu/include/hw/m68k/mcf.h
/openbmc/qemu/include/hw/misc/aspeed_sbc.h
/openbmc/qemu/include/hw/ppc/xive2.h
/openbmc/qemu/include/hw/ppc/xive2_regs.h
/openbmc/qemu/include/hw/ssi/aspeed_smc.h
/openbmc/qemu/include/hw/tricore/triboard.h
/openbmc/qemu/include/qemu/cacheinfo.h
/openbmc/qemu/include/qemu/hw-version.h
/openbmc/qemu/include/qemu/madvise.h
/openbmc/qemu/include/qemu/mmap-alloc.h
/openbmc/qemu/include/qemu/mprotect.h
/openbmc/qemu/include/qemu/osdep.h
/openbmc/qemu/include/tcg/tcg-op-gvec.h
/openbmc/qemu/linux-user/i386/cpu_loop.c
/openbmc/qemu/linux-user/ppc/cpu_loop.c
/openbmc/qemu/meson.build
/openbmc/qemu/meson_options.txt
/openbmc/qemu/migration/meson.build
/openbmc/qemu/migration/postcopy-ram.c
/openbmc/qemu/migration/qemu-file.c
/openbmc/qemu/migration/ram.c
/openbmc/qemu/monitor/misc.c
/openbmc/qemu/net/slirp.c
/openbmc/qemu/net/vhost-vdpa.c
/openbmc/qemu/plugins/api.c
/openbmc/qemu/plugins/loader.c
/openbmc/qemu/python/Makefile
/openbmc/qemu/python/qemu/aqmp/qmp_shell.py
/openbmc/qemu/python/setup.cfg
/openbmc/qemu/python/setup.py
/openbmc/qemu/python/tests/iotests-pylint.sh
/openbmc/qemu/python/tests/pylint.sh
/openbmc/qemu/qapi/compat.json
/openbmc/qemu/qapi/migration.json
/openbmc/qemu/qapi/misc-target.json
/openbmc/qemu/qapi/misc.json
/openbmc/qemu/qapi/qapi-util.c
/openbmc/qemu/qemu-options.hx
/openbmc/qemu/qga/commands-win32.c
/openbmc/qemu/qga/meson.build
/openbmc/qemu/qga/vss-win32/install.cpp
/openbmc/qemu/qga/vss-win32/meson.build
/openbmc/qemu/qga/vss-win32/provider.cpp
/openbmc/qemu/qga/vss-win32/requester.cpp
/openbmc/qemu/qga/vss-win32/vss-common.h
/openbmc/qemu/scripts/checkpatch.pl
/openbmc/qemu/scripts/meson-buildoptions.py
/openbmc/qemu/scripts/meson-buildoptions.sh
/openbmc/qemu/scripts/qapi/commands.py
/openbmc/qemu/scripts/qapi/pylintrc
/openbmc/qemu/scripts/qapi/types.py
/openbmc/qemu/scripts/qapi/visit.py
/openbmc/qemu/scripts/qmp/qmp-shell-wrap
/openbmc/qemu/softmmu/memory.c
/openbmc/qemu/softmmu/meson.build
/openbmc/qemu/softmmu/physmem.c
/openbmc/qemu/softmmu/qemu-seccomp.c
/openbmc/qemu/softmmu/qtest.c
/openbmc/qemu/softmmu/runstate.c
/openbmc/qemu/softmmu/vl.c
/openbmc/qemu/target/alpha/helper.c
/openbmc/qemu/target/arm/cpu.c
/openbmc/qemu/target/arm/cpu64.c
/openbmc/qemu/target/arm/helper.c
/openbmc/qemu/target/arm/m_helper.c
/openbmc/qemu/target/arm/mte_helper.c
/openbmc/qemu/target/avr/cpu-qom.h
/openbmc/qemu/target/avr/helper.c
/openbmc/qemu/target/cris/helper.c
/openbmc/qemu/target/hexagon/internal.h
/openbmc/qemu/target/hexagon/translate.h
/openbmc/qemu/target/hppa/cpu.c
/openbmc/qemu/target/hppa/helper.c
/openbmc/qemu/target/hppa/helper.h
/openbmc/qemu/target/hppa/mem_helper.c
/openbmc/qemu/target/hppa/op_helper.c
/openbmc/qemu/target/i386/cpu.c
/openbmc/qemu/target/i386/cpu.h
/openbmc/qemu/target/i386/helper.c
/openbmc/qemu/target/i386/ops_sse_header.h
/openbmc/qemu/target/i386/tcg/int_helper.c
/openbmc/qemu/target/i386/tcg/misc_helper.c
/openbmc/qemu/target/i386/tcg/sysemu/seg_helper.c
/openbmc/qemu/target/i386/tcg/sysemu/svm_helper.c
/openbmc/qemu/target/i386/tcg/translate.c
/openbmc/qemu/target/m68k/helper.h
/openbmc/qemu/target/m68k/op_helper.c
/openbmc/qemu/target/microblaze/cpu.c
/openbmc/qemu/target/microblaze/mmu.c
/openbmc/qemu/target/microblaze/op_helper.c
/openbmc/qemu/target/mips/tcg/exception.c
/openbmc/qemu/target/mips/tcg/sysemu/special_helper.c
/openbmc/qemu/target/mips/tcg/translate.h
/openbmc/qemu/target/openrisc/interrupt.c
/openbmc/qemu/target/openrisc/mmu.c
/openbmc/qemu/target/ppc/cpu.h
/openbmc/qemu/target/ppc/cpu_init.c
/openbmc/qemu/target/ppc/excp_helper.c
/openbmc/qemu/target/ppc/fpu_helper.c
/openbmc/qemu/target/ppc/helper.h
/openbmc/qemu/target/ppc/insn32.decode
/openbmc/qemu/target/ppc/insn64.decode
/openbmc/qemu/target/ppc/int_helper.c
/openbmc/qemu/target/ppc/machine.c
/openbmc/qemu/target/ppc/meson.build
/openbmc/qemu/target/ppc/misc_helper.c
/openbmc/qemu/target/ppc/power8-pmu.c
/openbmc/qemu/target/ppc/power8-pmu.h
/openbmc/qemu/target/ppc/translate.c
/openbmc/qemu/target/ppc/translate/vmx-impl.c.inc
/openbmc/qemu/target/ppc/translate/vmx-ops.c.inc
/openbmc/qemu/target/ppc/translate/vsx-impl.c.inc
/openbmc/qemu/target/ppc/translate/vsx-ops.c.inc
/openbmc/qemu/target/riscv/csr.c
/openbmc/qemu/target/rx/cpu.h
/openbmc/qemu/target/s390x/cpu_models.c
/openbmc/qemu/target/s390x/gen-features.c
/openbmc/qemu/target/s390x/helper.h
/openbmc/qemu/target/s390x/tcg/excp_helper.c
/openbmc/qemu/target/s390x/tcg/insn-data.def
/openbmc/qemu/target/s390x/tcg/mem_helper.c
/openbmc/qemu/target/s390x/tcg/translate.c
/openbmc/qemu/target/sparc/helper.c
/openbmc/qemu/target/sparc/ldst_helper.c
/openbmc/qemu/target/sparc/mmu_helper.c
/openbmc/qemu/target/tricore/helper.c
/openbmc/qemu/target/xtensa/dbg_helper.c
/openbmc/qemu/target/xtensa/exc_helper.c
/openbmc/qemu/target/xtensa/fpu_helper.c
/openbmc/qemu/target/xtensa/helper.c
/openbmc/qemu/target/xtensa/mmu_helper.c
/openbmc/qemu/target/xtensa/win_helper.c
/openbmc/qemu/tcg/ppc/tcg-target.c.inc
/openbmc/qemu/tcg/region.c
/openbmc/qemu/tcg/tcg-op-gvec.c
/openbmc/qemu/tcg/tcg.c
/openbmc/qemu/tcg/tci/tcg-target.c.inc
/openbmc/qemu/tests/Makefile.include
/openbmc/qemu/tests/avocado/machine_s390_ccw_virtio.py
/openbmc/qemu/tests/check-block.sh
/openbmc/qemu/tests/meson.build
/openbmc/qemu/tests/qemu-iotests/meson.build
/openbmc/qemu/tests/qemu-iotests/testrunner.py
/openbmc/qemu/tests/qtest/device-plug-test.c
/openbmc/qemu/tests/qtest/drive_del-test.c
/openbmc/qemu/tests/qtest/erst-test.c
/openbmc/qemu/tests/qtest/fdc-test.c
/openbmc/qemu/tests/qtest/hd-geo-test.c
/openbmc/qemu/tests/qtest/i440fx-test.c
/openbmc/qemu/tests/qtest/ide-test.c
/openbmc/qemu/tests/qtest/ivshmem-test.c
/openbmc/qemu/tests/qtest/vhost-user-test.c
/openbmc/qemu/tests/qtest/virtio-net-failover.c
/openbmc/qemu/tests/tcg/s390x/Makefile.target
/openbmc/qemu/tests/tcg/s390x/mie3-compl.c
/openbmc/qemu/tests/tcg/s390x/mie3-mvcrl.c
/openbmc/qemu/tests/tcg/s390x/mie3-sel.c
/openbmc/qemu/tests/unit/meson.build
/openbmc/qemu/tests/unit/test-seccomp.c
/openbmc/qemu/tools/meson.build
/openbmc/qemu/ui/cocoa.m
/openbmc/qemu/util/atomic64.c
/openbmc/qemu/util/cacheflush.c
/openbmc/qemu/util/cacheinfo.c
/openbmc/qemu/util/keyval.c
/openbmc/qemu/util/meson.build
/openbmc/qemu/util/osdep.c
/openbmc/qemu/util/oslib-posix.c
5e78c98b17-Jan-2022 Bernhard Beschow <shentey@gmail.com>

Mark remaining global TypeInfo instances as const

More than 1k of TypeInfo instances are already marked as const. Mark the
remaining ones, too.

This commit was created with:
git grep -z -l 'stati

Mark remaining global TypeInfo instances as const

More than 1k of TypeInfo instances are already marked as const. Mark the
remaining ones, too.

This commit was created with:
git grep -z -l 'static TypeInfo' -- '*.c' | \
xargs -0 sed -i 's/static TypeInfo/static const TypeInfo/'

Signed-off-by: Bernhard Beschow <shentey@gmail.com>
Reviewed-by: Alistair Francis <alistair.francis@wdc.com>
Reviewed-by: Thomas Huth <thuth@redhat.com>
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Reviewed-by: Cédric Le Goater <clg@kaod.org>
Reviewed-by: Igor Mammedov <imammedo@redhat.com>
Acked-by: Corey Minyard <cminyard@mvista.com>
Message-id: 20220117145805.173070-2-shentey@gmail.com
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>

show more ...


/openbmc/qemu/MAINTAINERS
/openbmc/qemu/docs/system/riscv/virt.rst
/openbmc/qemu/docs/tools/virtiofsd.rst
/openbmc/qemu/hw/9pfs/9p-synth.c
/openbmc/qemu/hw/9pfs/9p-synth.h
/openbmc/qemu/hw/9pfs/codir.c
/openbmc/qemu/hw/core/generic-loader.c
/openbmc/qemu/hw/core/guest-loader.c
/openbmc/qemu/hw/display/bcm2835_fb.c
/openbmc/qemu/hw/display/i2c-ddc.c
/openbmc/qemu/hw/display/macfb.c
/openbmc/qemu/hw/display/virtio-vga.c
/openbmc/qemu/hw/dma/bcm2835_dma.c
/openbmc/qemu/hw/i386/pc_piix.c
/openbmc/qemu/hw/i386/sgx-epc.c
bcm2835_ic.c
bcm2836_control.c
/openbmc/qemu/hw/ipmi/ipmi.c
/openbmc/qemu/hw/mem/nvdimm.c
/openbmc/qemu/hw/mem/pc-dimm.c
/openbmc/qemu/hw/misc/bcm2835_mbox.c
/openbmc/qemu/hw/misc/bcm2835_powermgt.c
/openbmc/qemu/hw/misc/bcm2835_property.c
/openbmc/qemu/hw/misc/bcm2835_rng.c
/openbmc/qemu/hw/misc/pvpanic-isa.c
/openbmc/qemu/hw/misc/pvpanic-pci.c
/openbmc/qemu/hw/net/fsl_etsec/etsec.c
/openbmc/qemu/hw/ppc/pegasos2.c
/openbmc/qemu/hw/ppc/ppc.c
/openbmc/qemu/hw/ppc/prep_systemio.c
/openbmc/qemu/hw/ppc/spapr.c
/openbmc/qemu/hw/ppc/spapr_caps.c
/openbmc/qemu/hw/ppc/spapr_cpu_core.c
/openbmc/qemu/hw/ppc/spapr_hcall.c
/openbmc/qemu/hw/ppc/spapr_iommu.c
/openbmc/qemu/hw/ppc/spapr_nvdimm.c
/openbmc/qemu/hw/s390x/s390-pci-bus.c
/openbmc/qemu/hw/s390x/sclp.c
/openbmc/qemu/hw/s390x/tod-kvm.c
/openbmc/qemu/hw/s390x/tod-tcg.c
/openbmc/qemu/hw/s390x/tod.c
/openbmc/qemu/hw/scsi/lsi53c895a.c
/openbmc/qemu/hw/sd/allwinner-sdhost.c
/openbmc/qemu/hw/sd/aspeed_sdhci.c
/openbmc/qemu/hw/sd/bcm2835_sdhost.c
/openbmc/qemu/hw/sd/cadence_sdhci.c
/openbmc/qemu/hw/sd/npcm7xx_sdhci.c
/openbmc/qemu/hw/usb/dev-mtp.c
/openbmc/qemu/hw/usb/host-libusb.c
/openbmc/qemu/hw/vfio/igd.c
/openbmc/qemu/hw/virtio/virtio-pmem.c
/openbmc/qemu/include/hw/mem/nvdimm.h
/openbmc/qemu/include/hw/mem/pc-dimm.h
/openbmc/qemu/include/hw/ppc/ppc.h
/openbmc/qemu/include/hw/ppc/spapr.h
/openbmc/qemu/include/hw/ppc/spapr_cpu_core.h
/openbmc/qemu/include/hw/ppc/spapr_nvdimm.h
/openbmc/qemu/include/qemu/osdep.h
/openbmc/qemu/include/standard-headers/asm-x86/kvm_para.h
/openbmc/qemu/include/standard-headers/drm/drm_fourcc.h
/openbmc/qemu/include/standard-headers/linux/ethtool.h
/openbmc/qemu/include/standard-headers/linux/fuse.h
/openbmc/qemu/include/standard-headers/linux/pci_regs.h
/openbmc/qemu/include/standard-headers/linux/virtio_gpio.h
/openbmc/qemu/include/standard-headers/linux/virtio_i2c.h
/openbmc/qemu/include/standard-headers/linux/virtio_iommu.h
/openbmc/qemu/include/standard-headers/linux/virtio_pcidev.h
/openbmc/qemu/include/standard-headers/linux/virtio_scmi.h
/openbmc/qemu/linux-headers/asm-generic/unistd.h
/openbmc/qemu/linux-headers/asm-mips/unistd_n32.h
/openbmc/qemu/linux-headers/asm-mips/unistd_n64.h
/openbmc/qemu/linux-headers/asm-mips/unistd_o32.h
/openbmc/qemu/linux-headers/asm-powerpc/unistd_32.h
/openbmc/qemu/linux-headers/asm-powerpc/unistd_64.h
/openbmc/qemu/linux-headers/asm-riscv/bitsperlong.h
/openbmc/qemu/linux-headers/asm-riscv/mman.h
/openbmc/qemu/linux-headers/asm-riscv/unistd.h
/openbmc/qemu/linux-headers/asm-s390/unistd_32.h
/openbmc/qemu/linux-headers/asm-s390/unistd_64.h
/openbmc/qemu/linux-headers/asm-x86/kvm.h
/openbmc/qemu/linux-headers/asm-x86/unistd_32.h
/openbmc/qemu/linux-headers/asm-x86/unistd_64.h
/openbmc/qemu/linux-headers/asm-x86/unistd_x32.h
/openbmc/qemu/linux-headers/linux/kvm.h
/openbmc/qemu/qom/object.c
/openbmc/qemu/target/arm/hvf/hvf.c
/openbmc/qemu/target/ppc/cpu.h
/openbmc/qemu/target/ppc/cpu_init.c
/openbmc/qemu/target/ppc/excp_helper.c
/openbmc/qemu/target/ppc/helper_regs.c
/openbmc/qemu/target/ppc/mmu-radix64.c
/openbmc/qemu/target/ppc/spr_common.h
/openbmc/qemu/target/ppc/translate.c
/openbmc/qemu/target/riscv/cpu.c
/openbmc/qemu/target/riscv/cpu.h
/openbmc/qemu/target/riscv/cpu_bits.h
/openbmc/qemu/target/riscv/cpu_helper.c
/openbmc/qemu/target/riscv/insn32.decode
/openbmc/qemu/target/riscv/insn_trans/trans_svinval.c.inc
/openbmc/qemu/target/riscv/translate.c
/openbmc/qemu/tests/qtest/libqos/virtio-9p.c
/openbmc/qemu/tests/qtest/virtio-9p-test.c
/openbmc/qemu/tools/virtiofsd/fuse_common.h
/openbmc/qemu/tools/virtiofsd/fuse_i.h
/openbmc/qemu/tools/virtiofsd/fuse_lowlevel.c
/openbmc/qemu/tools/virtiofsd/fuse_lowlevel.h
/openbmc/qemu/tools/virtiofsd/helper.c
/openbmc/qemu/tools/virtiofsd/passthrough_ll.c
/openbmc/qemu/tools/virtiofsd/passthrough_seccomp.c
/openbmc/qemu/util/osdep.c
e8f7934304-Feb-2022 Anup Patel <anup.patel@wdc.com>

hw/intc: Add RISC-V AIA APLIC device emulation

The RISC-V AIA (Advanced Interrupt Architecture) defines a new
interrupt controller for wired interrupts called APLIC (Advanced
Platform Level Interrup

hw/intc: Add RISC-V AIA APLIC device emulation

The RISC-V AIA (Advanced Interrupt Architecture) defines a new
interrupt controller for wired interrupts called APLIC (Advanced
Platform Level Interrupt Controller). The APLIC is capabable of
forwarding wired interupts to RISC-V HARTs directly or as MSIs
(Message Signaled Interupts).

This patch adds device emulation for RISC-V AIA APLIC.

Signed-off-by: Anup Patel <anup.patel@wdc.com>
Signed-off-by: Anup Patel <anup@brainfault.org>
Reviewed-by: Frank Chang <frank.chang@sifive.com>
Message-id: 20220204174700.534953-19-anup@brainfault.org
Signed-off-by: Alistair Francis <alistair.francis@wdc.com>

show more ...


/openbmc/qemu/.cirrus.yml
/openbmc/qemu/.gitignore
/openbmc/qemu/.gitlab-ci.d/buildtest.yml
/openbmc/qemu/.gitlab-ci.d/cirrus/freebsd-12.vars
/openbmc/qemu/.gitlab-ci.d/cirrus/freebsd-13.vars
/openbmc/qemu/.gitlab-ci.d/cirrus/macos-11.vars
/openbmc/qemu/.gitlab-ci.d/crossbuild-template.yml
/openbmc/qemu/.gitlab-ci.d/windows.yml
/openbmc/qemu/.gitmodules
/openbmc/qemu/MAINTAINERS
/openbmc/qemu/Makefile
/openbmc/qemu/accel/tcg/atomic_common.c.inc
/openbmc/qemu/accel/tcg/atomic_template.h
/openbmc/qemu/accel/tcg/cpu-exec.c
/openbmc/qemu/accel/tcg/cputlb.c
/openbmc/qemu/accel/tcg/plugin-gen.c
/openbmc/qemu/accel/tcg/user-exec.c
/openbmc/qemu/block/meson.build
/openbmc/qemu/block/nbd.c
/openbmc/qemu/blockdev.c
/openbmc/qemu/common-user/host/sparc64/safe-syscall.inc.S
/openbmc/qemu/configure
/openbmc/qemu/contrib/plugins/Makefile
/openbmc/qemu/contrib/plugins/drcov.c
/openbmc/qemu/docs/about/deprecated.rst
/openbmc/qemu/docs/about/removed-features.rst
/openbmc/qemu/docs/devel/style.rst
/openbmc/qemu/docs/devel/tracing.rst
/openbmc/qemu/docs/system/confidential-guest-support.rst
/openbmc/qemu/docs/system/i386/amd-memory-encryption.rst
/openbmc/qemu/docs/system/index.rst
/openbmc/qemu/docs/system/ppc/pseries.rst
/openbmc/qemu/docs/system/target-i386.rst
/openbmc/qemu/docs/user/main.rst
/openbmc/qemu/hw/block/fdc-isa.c
/openbmc/qemu/hw/block/virtio-blk.c
/openbmc/qemu/hw/core/generic-loader.c
Kconfig
meson.build
riscv_aplic.c
/openbmc/qemu/hw/net/e1000e_core.c
/openbmc/qemu/hw/net/trace-events
/openbmc/qemu/hw/net/vmxnet3.c
/openbmc/qemu/hw/nvme/ctrl.c
/openbmc/qemu/hw/nvme/ns.c
/openbmc/qemu/hw/nvme/nvme.h
/openbmc/qemu/hw/nvme/trace-events
/openbmc/qemu/hw/ppc/ppc.c
/openbmc/qemu/hw/ppc/prep.c
/openbmc/qemu/hw/riscv/virt.c
/openbmc/qemu/hw/sensor/Kconfig
/openbmc/qemu/hw/sensor/lsm303dlhc_mag.c
/openbmc/qemu/hw/sensor/meson.build
/openbmc/qemu/include/block/nvme.h
/openbmc/qemu/include/exec/cpu_ldst.h
/openbmc/qemu/include/exec/helper-gen.h
/openbmc/qemu/include/exec/helper-proto.h
/openbmc/qemu/include/exec/helper-tcg.h
/openbmc/qemu/include/hw/intc/riscv_aplic.h
/openbmc/qemu/include/qemu/coroutine.h
/openbmc/qemu/include/qemu/qemu-plugin.h
/openbmc/qemu/linux-user/elfload.c
/openbmc/qemu/linux-user/include/host/aarch64/host-signal.h
/openbmc/qemu/linux-user/include/host/alpha/host-signal.h
/openbmc/qemu/linux-user/include/host/arm/host-signal.h
/openbmc/qemu/linux-user/include/host/i386/host-signal.h
/openbmc/qemu/linux-user/include/host/loongarch64/host-signal.h
/openbmc/qemu/linux-user/include/host/mips/host-signal.h
/openbmc/qemu/linux-user/include/host/ppc/host-signal.h
/openbmc/qemu/linux-user/include/host/riscv/host-signal.h
/openbmc/qemu/linux-user/include/host/s390/host-signal.h
/openbmc/qemu/linux-user/include/host/sparc64/host-signal.h
/openbmc/qemu/linux-user/include/host/x86_64/host-signal.h
/openbmc/qemu/linux-user/ppc/cpu_loop.c
/openbmc/qemu/linux-user/ppc/signal.c
/openbmc/qemu/linux-user/ppc/target_syscall.h
/openbmc/qemu/linux-user/signal.c
/openbmc/qemu/linux-user/syscall_defs.h
/openbmc/qemu/meson.build
/openbmc/qemu/meson_options.txt
/openbmc/qemu/net/colo-compare.c
/openbmc/qemu/net/eth.c
/openbmc/qemu/net/filter-mirror.c
/openbmc/qemu/net/tap-linux.c
/openbmc/qemu/net/tap.c
/openbmc/qemu/pc-bios/meson.build
/openbmc/qemu/plugins/api.c
/openbmc/qemu/plugins/qemu-plugins.symbols
/openbmc/qemu/scripts/checkpatch.pl
/openbmc/qemu/scripts/ci/org.centos/stream/8/x86_64/configure
/openbmc/qemu/scripts/coverity-scan/coverity-scan.docker
/openbmc/qemu/scripts/coverity-scan/run-coverity-scan
/openbmc/qemu/scripts/meson-buildoptions.sh
/openbmc/qemu/scripts/tracetool/__init__.py
/openbmc/qemu/scripts/tracetool/vcpu.py
/openbmc/qemu/softmmu/cpus.c
/openbmc/qemu/target/i386/tcg/sysemu/seg_helper.c
/openbmc/qemu/target/ppc/cpu-models.c
/openbmc/qemu/target/ppc/cpu-models.h
/openbmc/qemu/target/ppc/cpu-qom.h
/openbmc/qemu/target/ppc/cpu.h
/openbmc/qemu/target/ppc/cpu_init.c
/openbmc/qemu/target/ppc/excp_helper.c
/openbmc/qemu/target/ppc/fpu_helper.c
/openbmc/qemu/target/ppc/helper.h
/openbmc/qemu/target/ppc/helper_regs.c
/openbmc/qemu/target/ppc/int_helper.c
/openbmc/qemu/target/ppc/machine.c
/openbmc/qemu/target/ppc/misc_helper.c
/openbmc/qemu/target/ppc/mmu-hash32.c
/openbmc/qemu/target/ppc/mmu-hash32.h
/openbmc/qemu/target/ppc/mmu-radix64.c
/openbmc/qemu/target/ppc/mmu_common.c
/openbmc/qemu/target/ppc/mmu_helper.c
/openbmc/qemu/target/ppc/spr_tcg.h
/openbmc/qemu/target/ppc/timebase_helper.c
/openbmc/qemu/target/ppc/translate.c
/openbmc/qemu/target/ppc/translate/fp-impl.c.inc
/openbmc/qemu/target/ppc/translate/vsx-impl.c.inc
/openbmc/qemu/target/riscv/XVentanaCondOps.decode
/openbmc/qemu/target/riscv/cpu.c
/openbmc/qemu/target/riscv/cpu.h
/openbmc/qemu/target/riscv/cpu_bits.h
/openbmc/qemu/target/riscv/cpu_helper.c
/openbmc/qemu/target/riscv/csr.c
/openbmc/qemu/target/riscv/gdbstub.c
/openbmc/qemu/target/riscv/insn_trans/trans_rvb.c.inc
/openbmc/qemu/target/riscv/insn_trans/trans_rvi.c.inc
/openbmc/qemu/target/riscv/insn_trans/trans_rvv.c.inc
/openbmc/qemu/target/riscv/insn_trans/trans_rvzfh.c.inc
/openbmc/qemu/target/riscv/insn_trans/trans_xventanacondops.c.inc
/openbmc/qemu/target/riscv/machine.c
/openbmc/qemu/target/riscv/meson.build
/openbmc/qemu/target/riscv/translate.c
/openbmc/qemu/target/riscv/vector_helper.c
/openbmc/qemu/tcg/aarch64/tcg-target.c.inc
/openbmc/qemu/tcg/aarch64/tcg-target.h
/openbmc/qemu/tcg/arm/tcg-target.c.inc
/openbmc/qemu/tcg/arm/tcg-target.h
/openbmc/qemu/tcg/i386/tcg-target.c.inc
/openbmc/qemu/tcg/i386/tcg-target.h
/openbmc/qemu/tcg/loongarch64/tcg-target.c.inc
/openbmc/qemu/tcg/loongarch64/tcg-target.h
/openbmc/qemu/tcg/mips/tcg-target.c.inc
/openbmc/qemu/tcg/mips/tcg-target.h
/openbmc/qemu/tcg/ppc/tcg-target.c.inc
/openbmc/qemu/tcg/ppc/tcg-target.h
/openbmc/qemu/tcg/riscv/tcg-target.c.inc
/openbmc/qemu/tcg/riscv/tcg-target.h
/openbmc/qemu/tcg/s390x/tcg-target.c.inc
/openbmc/qemu/tcg/s390x/tcg-target.h
/openbmc/qemu/tcg/sparc/tcg-target.c.inc
/openbmc/qemu/tcg/tcg-op.c
/openbmc/qemu/tcg/tci.c
/openbmc/qemu/tests/Makefile.include
/openbmc/qemu/tests/docker/dockerfiles/alpine.docker
/openbmc/qemu/tests/docker/dockerfiles/centos8.docker
/openbmc/qemu/tests/docker/dockerfiles/debian-ppc64el-cross.docker
/openbmc/qemu/tests/docker/dockerfiles/fedora.docker
/openbmc/qemu/tests/docker/dockerfiles/opensuse-leap.docker
/openbmc/qemu/tests/docker/dockerfiles/ubuntu1804.docker
/openbmc/qemu/tests/docker/dockerfiles/ubuntu2004.docker
/openbmc/qemu/tests/lcitool/Makefile.include
/openbmc/qemu/tests/lcitool/libvirt-ci
/openbmc/qemu/tests/lcitool/projects/qemu.yml
/openbmc/qemu/tests/lcitool/refresh
/openbmc/qemu/tests/plugin/insn.c
/openbmc/qemu/tests/qemu-iotests/245
/openbmc/qemu/tests/qemu-iotests/245.out
/openbmc/qemu/tests/qemu-iotests/281
/openbmc/qemu/tests/qemu-iotests/281.out
/openbmc/qemu/tests/qemu-iotests/iotests.py
/openbmc/qemu/tests/qtest/lsm303dlhc-mag-test.c
/openbmc/qemu/tests/qtest/meson.build
/openbmc/qemu/tests/qtest/vhost-user-test.c
/openbmc/qemu/tests/tcg/configure.sh
/openbmc/qemu/tests/tcg/multiarch/sigbus.c
/openbmc/qemu/tests/tcg/sh4/Makefile.target
/openbmc/qemu/tools/virtiofsd/passthrough_seccomp.c
/openbmc/qemu/trace-events
/openbmc/qemu/trace/meson.build
/openbmc/qemu/util/qemu-coroutine.c
d7d359c401-Feb-2022 Peter Maydell <peter.maydell@linaro.org>

hw/intc/arm_gicv3_its: Split error checks

In most of the ITS command processing, we check different error
possibilities one at a time and log them appropriately. In
process_mapti() and process_mapd(

hw/intc/arm_gicv3_its: Split error checks

In most of the ITS command processing, we check different error
possibilities one at a time and log them appropriately. In
process_mapti() and process_mapd() we have code which checks
multiple error cases at once, which means the logging is less
specific than it could be. Split those cases up.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20220201193207.2771604-14-peter.maydell@linaro.org

show more ...

3330241401-Feb-2022 Peter Maydell <peter.maydell@linaro.org>

hw/intc/arm_gicv3_its: Don't allow intid 1023 in MAPI/MAPTI

When handling MAPI/MAPTI, we allow the supplied interrupt ID to be
either 1023 or something in the valid LPI range. This is a mistake:
on

hw/intc/arm_gicv3_its: Don't allow intid 1023 in MAPI/MAPTI

When handling MAPI/MAPTI, we allow the supplied interrupt ID to be
either 1023 or something in the valid LPI range. This is a mistake:
only a real valid LPI is allowed. (The general behaviour of the ITS
is that most interrupt ID fields require a value in the LPI range;
the exception is that fields specifying a doorbell value, which are
all in GICv4 commands, allow also 1023 to mean "no doorbell".)
Remove the condition that incorrectly allows 1023 here.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20220201193207.2771604-13-peter.maydell@linaro.org

show more ...

84d43d2e01-Feb-2022 Peter Maydell <peter.maydell@linaro.org>

hw/intc/arm_gicv3_its: In MAPC with V=0, don't check rdbase field

In the MAPC command, if V=0 this is a request to delete a collection
table entry and the rdbase field of the command packet will not

hw/intc/arm_gicv3_its: In MAPC with V=0, don't check rdbase field

In the MAPC command, if V=0 this is a request to delete a collection
table entry and the rdbase field of the command packet will not be
used. In particular, the specification says that the "UNPREDICTABLE
if rdbase is not valid" only applies for V=1.

We were doing a check-and-log-guest-error on rdbase regardless of
whether the V bit was set, and also (harmlessly but confusingly)
storing the contents of the rdbase field into the updated collection
table entry. Update the code so that if V=0 we don't check or use
the rdbase field value.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20220201193207.2771604-12-peter.maydell@linaro.org

show more ...

da4680ce01-Feb-2022 Peter Maydell <peter.maydell@linaro.org>

hw/intc/arm_gicv3_its: Drop TableDesc and CmdQDesc valid fields

Currently we track in the TableDesc and CmdQDesc structs the state of
the GITS_BASER<n> and GITS_CBASER Valid bits. However we aren't

hw/intc/arm_gicv3_its: Drop TableDesc and CmdQDesc valid fields

Currently we track in the TableDesc and CmdQDesc structs the state of
the GITS_BASER<n> and GITS_CBASER Valid bits. However we aren't very
consistent abut checking the valid field: we test it in update_cte()
and update_dte(), but not anywhere else we look things up in tables.

The GIC specification says that it is UNPREDICTABLE if a guest fails
to set any of these Valid bits before enabling the ITS via
GITS_CTLR.Enabled. So we can choose to handle Valid == 0 as
equivalent to a zero-length table. This is in fact how we're already
catching this case in most of the table-access paths: when Valid is 0
we leave the num_entries fields in TableDesc or CmdQDesc set to zero,
and then the out-of-bounds check "index >= num_entries" that we have
to do anyway before doing any of these table lookups will always be
true, catching the no-valid-table case without any extra code.

So we can remove the checks on the valid field from update_cte()
and update_dte(): since these happen after the bounds check there
was never any case when the test could fail. That means the valid
fields would be entirely unused, so just remove them.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20220201193207.2771604-11-peter.maydell@linaro.org

show more ...

7eb5426701-Feb-2022 Peter Maydell <peter.maydell@linaro.org>

hw/intc/arm_gicv3_its: Make update_ite() use ITEntry

Make the update_ite() struct use the new ITEntry struct, so that
callers don't need to assemble the in-memory ITE data themselves, and
only get_i

hw/intc/arm_gicv3_its: Make update_ite() use ITEntry

Make the update_ite() struct use the new ITEntry struct, so that
callers don't need to assemble the in-memory ITE data themselves, and
only get_ite() and update_ite() need to care about that in-memory
layout. We can then drop the no-longer-used IteEntry struct
definition.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20220201193207.2771604-10-peter.maydell@linaro.org

show more ...

244194fe01-Feb-2022 Peter Maydell <peter.maydell@linaro.org>

hw/intc/arm_gicv3_its: Pass ITE values back from get_ite() via a struct

In get_ite() we currently return the caller some of the fields of an
Interrupt Table Entry via a set of pointer arguments, and

hw/intc/arm_gicv3_its: Pass ITE values back from get_ite() via a struct

In get_ite() we currently return the caller some of the fields of an
Interrupt Table Entry via a set of pointer arguments, and validate
some of them internally (interrupt type and valid bit) to return a
simple true/false 'valid' indication. Define a new ITEntry struct
which has all the fields that the in-memory ITE has, and bring the
get_ite() function in to line with get_dte() and get_cte().

This paves the way for handling virtual interrupts, which will want
a different subset of the fields in the ITE. Handling them under
the old "lots of pointer arguments" scheme would have meant a
confusingly large set of arguments for this function.

The new struct ITEntry is obviously confusably similar to the
existing IteEntry struct, whose fields are the raw 12 bytes
of the in-memory ITE. In the next commit we will make update_ite()
use ITEntry instead of IteEntry, which will allow us to delete
the IteEntry struct and remove the confusion.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20220201193207.2771604-9-peter.maydell@linaro.org

show more ...

2954b93f01-Feb-2022 Peter Maydell <peter.maydell@linaro.org>

hw/intc/arm_gicv3_its: Avoid nested ifs in get_ite()

The get_ite() code has some awkward nested if statements; clean
them up by returning early if the memory accesses fail.

Signed-off-by: Peter May

hw/intc/arm_gicv3_its: Avoid nested ifs in get_ite()

The get_ite() code has some awkward nested if statements; clean
them up by returning early if the memory accesses fail.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20220201193207.2771604-8-peter.maydell@linaro.org

show more ...

a1ce993d01-Feb-2022 Peter Maydell <peter.maydell@linaro.org>

hw/intc/arm_gicv3_its: Fix address calculation in get_ite() and update_ite()

In get_ite() and update_ite() we work with a 12-byte in-guest-memory
table entry, which we intend to handle as an 8-byte

hw/intc/arm_gicv3_its: Fix address calculation in get_ite() and update_ite()

In get_ite() and update_ite() we work with a 12-byte in-guest-memory
table entry, which we intend to handle as an 8-byte value followed by
a 4-byte value. Unfortunately the calculation of the address of the
4-byte value is wrong, because we write it as:

table_base_address + (index * entrysize) + 4
(obfuscated by the way the expression has been written)

when it should be + 8. This bug meant that we overwrote the top
bytes of the 8-byte value with the 4-byte value. There are no
guest-visible effects because the top half of the 8-byte value
contains only the doorbell interrupt field, which is used only in
GICv4, and the two bugs in the "write ITE" and "read ITE" codepaths
cancel each other out.

We can't simply change the calculation, because this would break
migration of a (TCG) guest from the old version of QEMU which had
in-guest-memory interrupt tables written using the buggy version of
update_ite(). We must also at the same time change the layout of the
fields within the ITE_L and ITE_H values so that the in-memory
locations of the fields we care about (VALID, INTTYPE, INTID and
ICID) stay the same.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20220201193207.2771604-7-peter.maydell@linaro.org

show more ...

06985cc301-Feb-2022 Peter Maydell <peter.maydell@linaro.org>

hw/intc/arm_gicv3_its: Pass CTEntry to update_cte()

Make update_cte() take a CTEntry struct rather than all the fields
of the new CTE as separate arguments.

This brings it into line with the update

hw/intc/arm_gicv3_its: Pass CTEntry to update_cte()

Make update_cte() take a CTEntry struct rather than all the fields
of the new CTE as separate arguments.

This brings it into line with the update_dte() API.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20220201193207.2771604-6-peter.maydell@linaro.org

show more ...

d37cf49b01-Feb-2022 Peter Maydell <peter.maydell@linaro.org>

hw/intc/arm_gicv3_its: Keep CTEs as a struct, not a raw uint64_t

In the ITS, a CTE is an entry in the collection table, which contains
multiple fields. Currently the function get_cte() which reads o

hw/intc/arm_gicv3_its: Keep CTEs as a struct, not a raw uint64_t

In the ITS, a CTE is an entry in the collection table, which contains
multiple fields. Currently the function get_cte() which reads one
entry from the device table returns a success/failure boolean and
passes back the raw 64-bit integer CTE value via a pointer argument.
We then extract fields from the CTE as we need them.

Create a real C struct with the same fields as the CTE, and
populate it in get_cte(), so that that function and update_cte()
are the only ones which need to care about the in-guest-memory
format of the CTE.

This brings get_cte()'s API into line with get_dte().

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20220201193207.2771604-5-peter.maydell@linaro.org

show more ...

22d62b0801-Feb-2022 Peter Maydell <peter.maydell@linaro.org>

hw/intc/arm_gicv3_its: Pass DTEntry to update_dte()

Make update_dte() take a DTEntry struct rather than all the fields of
the new DTE as separate arguments.

Signed-off-by: Peter Maydell <peter.mayd

hw/intc/arm_gicv3_its: Pass DTEntry to update_dte()

Make update_dte() take a DTEntry struct rather than all the fields of
the new DTE as separate arguments.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20220201193207.2771604-4-peter.maydell@linaro.org

show more ...

4acf93e101-Feb-2022 Peter Maydell <peter.maydell@linaro.org>

hw/intc/arm_gicv3_its: Keep DTEs as a struct, not a raw uint64_t

In the ITS, a DTE is an entry in the device table, which contains
multiple fields. Currently the function get_dte() which reads one
e

hw/intc/arm_gicv3_its: Keep DTEs as a struct, not a raw uint64_t

In the ITS, a DTE is an entry in the device table, which contains
multiple fields. Currently the function get_dte() which reads one
entry from the device table returns it as a raw 64-bit integer,
which we then pass around in that form, only extracting fields
from it as we need them.

Create a real C struct with the same fields as the DTE, and
populate it in get_dte(), so that that function and update_dte()
are the only ones that need to care about the in-guest-memory
format of the DTE.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20220201193207.2771604-3-peter.maydell@linaro.org

show more ...

b6f9600901-Feb-2022 Peter Maydell <peter.maydell@linaro.org>

hw/intc/arm_gicv3_its: Use address_space_map() to access command queue packets

Currently the ITS accesses each 8-byte doubleword in a 4-doubleword
command packet with a separate address_space_ldq_le

hw/intc/arm_gicv3_its: Use address_space_map() to access command queue packets

Currently the ITS accesses each 8-byte doubleword in a 4-doubleword
command packet with a separate address_space_ldq_le() call. This is
awkward because the individual command processing functions have
ended up with code to handle "load more doublewords out of the
packet", which is both unwieldy and also a potential source of bugs
because it's not obvious when looking at a line that pulls a field
out of the 'value' variable which of the 4 doublewords that variable
currently holds.

Switch to using address_space_map() to map the whole command packet
at once and fish the four doublewords out of it. Then each process_*
function can start with a few lines of code that extract the fields
it cares about.

This requires us to split out the guts of process_its_cmd() into a
new do_process_its_cmd(), because we were previously overloading the
value and offset arguments as a backdoor way to directly pass the
devid and eventid from a write to GITS_TRANSLATER. The new
do_process_its_cmd() takes those arguments directly, and
process_its_cmd() is just a wrapper that does the "read fields from
command packet" part.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20220201193207.2771604-2-peter.maydell@linaro.org

show more ...


/openbmc/qemu/MAINTAINERS
/openbmc/qemu/block.c
/openbmc/qemu/block/block-backend.c
/openbmc/qemu/block/export/fuse.c
/openbmc/qemu/block/export/vhost-user-blk-server.c
/openbmc/qemu/block/qcow2.c
/openbmc/qemu/block/rbd.c
/openbmc/qemu/bsd-user/arm/signal.c
/openbmc/qemu/bsd-user/arm/target_arch_cpu.h
/openbmc/qemu/bsd-user/freebsd/target_os_siginfo.h
/openbmc/qemu/bsd-user/freebsd/target_os_signal.h
/openbmc/qemu/bsd-user/freebsd/target_os_ucontext.h
/openbmc/qemu/bsd-user/host/arm/host-signal.h
/openbmc/qemu/bsd-user/host/i386/host-signal.h
/openbmc/qemu/bsd-user/host/x86_64/host-signal.h
/openbmc/qemu/bsd-user/i386/signal.c
/openbmc/qemu/bsd-user/i386/target_arch_cpu.h
/openbmc/qemu/bsd-user/main.c
/openbmc/qemu/bsd-user/qemu.h
/openbmc/qemu/bsd-user/signal-common.h
/openbmc/qemu/bsd-user/signal.c
/openbmc/qemu/bsd-user/strace.c
/openbmc/qemu/bsd-user/syscall_defs.h
/openbmc/qemu/bsd-user/trace-events
/openbmc/qemu/bsd-user/trace.h
/openbmc/qemu/bsd-user/x86_64/signal.c
/openbmc/qemu/bsd-user/x86_64/target_arch_cpu.h
/openbmc/qemu/configure
/openbmc/qemu/cpu.c
/openbmc/qemu/docs/tools/qemu-img.rst
/openbmc/qemu/docs/tools/qemu-storage-daemon.rst
/openbmc/qemu/hw/acpi/Kconfig
/openbmc/qemu/hw/acpi/aml-build.c
/openbmc/qemu/hw/acpi/erst.c
/openbmc/qemu/hw/acpi/meson.build
/openbmc/qemu/hw/acpi/trace-events
/openbmc/qemu/hw/arm/allwinner-h3.c
/openbmc/qemu/hw/arm/aspeed.c
/openbmc/qemu/hw/arm/boot.c
/openbmc/qemu/hw/arm/exynos4_boards.c
/openbmc/qemu/hw/arm/fsl-imx6ul.c
/openbmc/qemu/hw/arm/fsl-imx7.c
/openbmc/qemu/hw/arm/highbank.c
/openbmc/qemu/hw/arm/imx25_pdk.c
/openbmc/qemu/hw/arm/kzm.c
/openbmc/qemu/hw/arm/mcimx6ul-evk.c
/openbmc/qemu/hw/arm/mcimx7d-sabre.c
/openbmc/qemu/hw/arm/npcm7xx.c
/openbmc/qemu/hw/arm/orangepi.c
/openbmc/qemu/hw/arm/raspi.c
/openbmc/qemu/hw/arm/realview.c
/openbmc/qemu/hw/arm/sabrelite.c
/openbmc/qemu/hw/arm/sbsa-ref.c
/openbmc/qemu/hw/arm/smmuv3.c
/openbmc/qemu/hw/arm/vexpress.c
/openbmc/qemu/hw/arm/virt.c
/openbmc/qemu/hw/arm/xilinx_zynq.c
/openbmc/qemu/hw/arm/xlnx-versal-virt.c
/openbmc/qemu/hw/arm/xlnx-versal.c
/openbmc/qemu/hw/arm/xlnx-zcu102.c
/openbmc/qemu/hw/arm/xlnx-zynqmp.c
/openbmc/qemu/hw/display/artist.c
/openbmc/qemu/hw/display/trace-events
/openbmc/qemu/hw/hppa/hppa_hardware.h
/openbmc/qemu/hw/hppa/machine.c
/openbmc/qemu/hw/i386/acpi-build.c
/openbmc/qemu/hw/i386/acpi-microvm.c
/openbmc/qemu/hw/i386/pc_piix.c
arm_gicv3_its.c
gicv3_internal.h
/openbmc/qemu/hw/timer/armv7m_systick.c
/openbmc/qemu/include/block/block.h
/openbmc/qemu/include/hw/acpi/erst.h
/openbmc/qemu/include/hw/arm/boot.h
/openbmc/qemu/include/hw/arm/xlnx-versal.h
/openbmc/qemu/include/hw/arm/xlnx-zynqmp.h
/openbmc/qemu/include/hw/pci/pci.h
/openbmc/qemu/include/qemu/vhost-user-server.h
/openbmc/qemu/linux-user/aarch64/target_resource.h
/openbmc/qemu/linux-user/alpha/target_resource.h
/openbmc/qemu/linux-user/arm/target_resource.h
/openbmc/qemu/linux-user/cris/target_resource.h
/openbmc/qemu/linux-user/fd-trans.c
/openbmc/qemu/linux-user/generic/target_resource.h
/openbmc/qemu/linux-user/hexagon/target_resource.h
/openbmc/qemu/linux-user/hppa/target_resource.h
/openbmc/qemu/linux-user/i386/target_resource.h
/openbmc/qemu/linux-user/m68k/target_resource.h
/openbmc/qemu/linux-user/main.c
/openbmc/qemu/linux-user/microblaze/target_resource.h
/openbmc/qemu/linux-user/mips/target_resource.h
/openbmc/qemu/linux-user/mips64/target_resource.h
/openbmc/qemu/linux-user/nios2/target_resource.h
/openbmc/qemu/linux-user/openrisc/target_resource.h
/openbmc/qemu/linux-user/ppc/target_resource.h
/openbmc/qemu/linux-user/qemu.h
/openbmc/qemu/linux-user/riscv/target_resource.h
/openbmc/qemu/linux-user/s390x/target_resource.h
/openbmc/qemu/linux-user/sh4/target_resource.h
/openbmc/qemu/linux-user/sparc/target_resource.h
/openbmc/qemu/linux-user/syscall.c
/openbmc/qemu/linux-user/syscall_defs.h
/openbmc/qemu/linux-user/x86_64/target_resource.h
/openbmc/qemu/linux-user/xtensa/target_resource.h
/openbmc/qemu/meson.build
/openbmc/qemu/pc-bios/hppa-firmware.img
/openbmc/qemu/python/Pipfile.lock
/openbmc/qemu/python/qemu/aqmp/legacy.py
/openbmc/qemu/python/qemu/aqmp/protocol.py
/openbmc/qemu/python/qemu/aqmp/qmp_client.py
/openbmc/qemu/python/qemu/machine/machine.py
/openbmc/qemu/python/setup.cfg
/openbmc/qemu/qemu-img-cmds.hx
/openbmc/qemu/roms/seabios-hppa
/openbmc/qemu/storage-daemon/qemu-storage-daemon.c
/openbmc/qemu/subprojects/libvhost-user/libvhost-user.c
/openbmc/qemu/subprojects/libvhost-user/libvhost-user.h
/openbmc/qemu/target/arm/cpu.c
/openbmc/qemu/target/arm/helper-a64.c
/openbmc/qemu/target/arm/helper.c
/openbmc/qemu/target/arm/psci.c
/openbmc/qemu/target/hppa/cpu.c
/openbmc/qemu/target/hppa/cpu.h
/openbmc/qemu/target/hppa/helper.h
/openbmc/qemu/target/hppa/insns.decode
/openbmc/qemu/target/hppa/int_helper.c
/openbmc/qemu/target/hppa/op_helper.c
/openbmc/qemu/target/hppa/translate.c
/openbmc/qemu/tcg/i386/tcg-target.c.inc
/openbmc/qemu/tests/data/acpi/microvm/ERST.pcie
/openbmc/qemu/tests/data/acpi/pc/DSDT.acpierst
/openbmc/qemu/tests/data/acpi/pc/ERST.acpierst
/openbmc/qemu/tests/data/acpi/pc/SSDT.dimmpxm
/openbmc/qemu/tests/data/acpi/q35/DSDT.acpierst
/openbmc/qemu/tests/data/acpi/q35/ERST.acpierst
/openbmc/qemu/tests/data/acpi/q35/FACP.slic
/openbmc/qemu/tests/data/acpi/q35/SSDT.dimmpxm
/openbmc/qemu/tests/data/acpi/virt/SSDT.memhp
/openbmc/qemu/tests/qemu-iotests/031
/openbmc/qemu/tests/qemu-iotests/036
/openbmc/qemu/tests/qemu-iotests/039
/openbmc/qemu/tests/qemu-iotests/044
/openbmc/qemu/tests/qemu-iotests/044.out
/openbmc/qemu/tests/qemu-iotests/051
/openbmc/qemu/tests/qemu-iotests/060
/openbmc/qemu/tests/qemu-iotests/060.out
/openbmc/qemu/tests/qemu-iotests/061
/openbmc/qemu/tests/qemu-iotests/061.out
/openbmc/qemu/tests/qemu-iotests/065
/openbmc/qemu/tests/qemu-iotests/082.out
/openbmc/qemu/tests/qemu-iotests/112
/openbmc/qemu/tests/qemu-iotests/137
/openbmc/qemu/tests/qemu-iotests/149.out
/openbmc/qemu/tests/qemu-iotests/163
/openbmc/qemu/tests/qemu-iotests/165
/openbmc/qemu/tests/qemu-iotests/196
/openbmc/qemu/tests/qemu-iotests/198.out
/openbmc/qemu/tests/qemu-iotests/206.out
/openbmc/qemu/tests/qemu-iotests/209
/openbmc/qemu/tests/qemu-iotests/209.out
/openbmc/qemu/tests/qemu-iotests/210
/openbmc/qemu/tests/qemu-iotests/214
/openbmc/qemu/tests/qemu-iotests/237.out
/openbmc/qemu/tests/qemu-iotests/242
/openbmc/qemu/tests/qemu-iotests/242.out
/openbmc/qemu/tests/qemu-iotests/246
/openbmc/qemu/tests/qemu-iotests/254
/openbmc/qemu/tests/qemu-iotests/255.out
/openbmc/qemu/tests/qemu-iotests/260
/openbmc/qemu/tests/qemu-iotests/274
/openbmc/qemu/tests/qemu-iotests/274.out
/openbmc/qemu/tests/qemu-iotests/280.out
/openbmc/qemu/tests/qemu-iotests/281
/openbmc/qemu/tests/qemu-iotests/287
/openbmc/qemu/tests/qemu-iotests/290
/openbmc/qemu/tests/qemu-iotests/296.out
/openbmc/qemu/tests/qemu-iotests/302
/openbmc/qemu/tests/qemu-iotests/302.out
/openbmc/qemu/tests/qemu-iotests/303
/openbmc/qemu/tests/qemu-iotests/303.out
/openbmc/qemu/tests/qemu-iotests/common.filter
/openbmc/qemu/tests/qemu-iotests/common.rc
/openbmc/qemu/tests/qemu-iotests/iotests.py
/openbmc/qemu/tests/qemu-iotests/tests/migrate-bitmaps-postcopy-test
/openbmc/qemu/tests/qemu-iotests/tests/migrate-bitmaps-test
/openbmc/qemu/tests/qemu-iotests/tests/migration-permissions
/openbmc/qemu/tests/qemu-iotests/tests/migration-permissions.out
/openbmc/qemu/tests/qemu-iotests/tests/mirror-ready-cancel-error
/openbmc/qemu/tests/qemu-iotests/tests/mirror-top-perms
/openbmc/qemu/tests/qemu-iotests/tests/remove-bitmap-from-backing
/openbmc/qemu/tests/qtest/bios-tables-test.c
/openbmc/qemu/tests/qtest/cdrom-test.c
/openbmc/qemu/tests/qtest/erst-test.c
/openbmc/qemu/tests/qtest/meson.build
/openbmc/qemu/util/bufferiszero.c
/openbmc/qemu/util/oslib-posix.c
/openbmc/qemu/util/vhost-user-server.c
804b30d231-Jan-2022 Peter Maydell <peter.maydell@linaro.org>

Merge remote-tracking branch 'remotes/legoater/tags/pull-ppc-20220130' into staging

ppc 7.0 queue:

* Exception and TLB fixes for the 405 CPU (Fabiano and Cedric)
* spapr fixes (Alexey and Daniel)
*

Merge remote-tracking branch 'remotes/legoater/tags/pull-ppc-20220130' into staging

ppc 7.0 queue:

* Exception and TLB fixes for the 405 CPU (Fabiano and Cedric)
* spapr fixes (Alexey and Daniel)
* PowerNV PHB3/4 fixes (Frederic and Daniel)
* PowerNV XIVE improvements (Cedric)
* 603 CPUs fixes (Christophe)
* Book-E exception fixes (Vitaly)
* Misc compile issues (Philippe and Fabiano)
* Exception model rework for the BookS CPUs (Fabiano)
* Exception model rework for the 74xx CPUs (Fabiano)
* Removal of 602 CPUs

# gpg: Signature made Sun 30 Jan 2022 17:42:23 GMT
# gpg: using RSA key A0F66548F04895EBFE6B0B6051A343C7CFFBECA1
# gpg: Good signature from "Cédric Le Goater <clg@kaod.org>" [undefined]
# gpg: WARNING: This key is not certified with a trusted signature!
# gpg: There is no indication that the signature belongs to the owner.
# Primary key fingerprint: A0F6 6548 F048 95EB FE6B 0B60 51A3 43C7 CFFB ECA1

* remotes/legoater/tags/pull-ppc-20220130: (41 commits)
target/ppc: Remove support for the PowerPC 602 CPU
target/ppc: 74xx: Set SRRs directly in exception code
target/ppc: 74xx: System Reset interrupt cleanup
target/ppc: 74xx: System Call exception cleanup
target/ppc: 74xx: Program exception cleanup
target/ppc: 74xx: External interrupt cleanup
target/ppc: 74xx: Machine Check exception cleanup
target/ppc: Simplify powerpc_excp_74xx
target/ppc: Introduce powerpc_excp_74xx
target/ppc: books: Program exception cleanup
target/ppc: books: External interrupt cleanup
target/ppc: books: Machine Check exception cleanup
target/ppc: Simplify powerpc_excp_books
target/ppc: Introduce powerpc_excp_books
target/ppc: 405: Watchdog timer exception cleanup
target/ppc: 405: Program exception cleanup
target/ppc: 405: Instruction storage interrupt cleanup
target/ppc: 405: Data Storage exception cleanup
target/ppc: 405: Debug exception cleanup
target/ppc: 405: Alignment exception cleanup
...

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

show more ...


/openbmc/qemu/block/io.c
/openbmc/qemu/hw/acpi/cpu.c
/openbmc/qemu/hw/acpi/ich9.c
/openbmc/qemu/hw/acpi/memory_hotplug.c
/openbmc/qemu/hw/acpi/piix4.c
/openbmc/qemu/hw/acpi/tco.c
/openbmc/qemu/hw/audio/pcspk.c
/openbmc/qemu/hw/display/macfb.c
/openbmc/qemu/hw/dma/xlnx-zdma.c
/openbmc/qemu/hw/dma/xlnx_csu_dma.c
/openbmc/qemu/hw/gpio/imx_gpio.c
pnv_xive.c
/openbmc/qemu/hw/misc/bcm2835_mbox.c
/openbmc/qemu/hw/net/can/can_kvaser_pci.c
/openbmc/qemu/hw/net/can/can_mioe3680_pci.c
/openbmc/qemu/hw/net/can/can_pcm3680_pci.c
/openbmc/qemu/hw/net/can/can_sja1000.c
/openbmc/qemu/hw/net/can/ctucan_core.c
/openbmc/qemu/hw/net/can/ctucan_pci.c
/openbmc/qemu/hw/pci-host/pnv_phb3.c
/openbmc/qemu/hw/pci-host/pnv_phb4.c
/openbmc/qemu/hw/ppc/ppc.c
/openbmc/qemu/hw/ppc/spapr.c
/openbmc/qemu/hw/ppc/spapr_cpu_core.c
/openbmc/qemu/hw/ppc/spapr_vof.c
/openbmc/qemu/hw/ppc/vof.c
/openbmc/qemu/hw/scsi/megasas.c
/openbmc/qemu/hw/scsi/mptsas.c
/openbmc/qemu/hw/virtio/virtio-mmio.c
/openbmc/qemu/hw/virtio/virtio-pci.c
/openbmc/qemu/hw/virtio/virtio.c
/openbmc/qemu/include/hw/ppc/vof.h
/openbmc/qemu/migration/migration.c
/openbmc/qemu/migration/multifd-zlib.c
/openbmc/qemu/migration/multifd-zstd.c
/openbmc/qemu/migration/multifd.c
/openbmc/qemu/migration/multifd.h
/openbmc/qemu/migration/postcopy-ram.c
/openbmc/qemu/migration/ram.c
/openbmc/qemu/migration/ram.h
/openbmc/qemu/migration/savevm.c
/openbmc/qemu/migration/trace-events
/openbmc/qemu/monitor/hmp-cmds.c
/openbmc/qemu/nbd/server.c
/openbmc/qemu/qapi/block-export.json
/openbmc/qemu/qapi/migration.json
/openbmc/qemu/target/openrisc/machine.c
/openbmc/qemu/target/ppc/cpu-models.c
/openbmc/qemu/target/ppc/cpu-models.h
/openbmc/qemu/target/ppc/cpu.h
/openbmc/qemu/target/ppc/cpu_init.c
/openbmc/qemu/target/ppc/excp_helper.c
/openbmc/qemu/target/ppc/helper.h
/openbmc/qemu/target/ppc/helper_regs.c
/openbmc/qemu/target/ppc/int_helper.c
/openbmc/qemu/target/ppc/machine.c
/openbmc/qemu/target/ppc/mmu_common.c
/openbmc/qemu/target/ppc/mmu_helper.c
/openbmc/qemu/target/ppc/translate.c
/openbmc/qemu/target/sparc/machine.c
/openbmc/qemu/tests/qemu-iotests/tests/block-status-cache
/openbmc/qemu/tests/qemu-iotests/tests/block-status-cache.out
95a6af2a28-Jan-2022 Peter Maydell <peter.maydell@linaro.org>

Merge remote-tracking branch 'remotes/pmaydell/tags/pull-target-arm-20220128' into staging

target-arm queue:
* Update copyright dates to 2022
* hw/armv7m: Fix broken VMStateDescription
* hw/char/

Merge remote-tracking branch 'remotes/pmaydell/tags/pull-target-arm-20220128' into staging

target-arm queue:
* Update copyright dates to 2022
* hw/armv7m: Fix broken VMStateDescription
* hw/char/exynos4210_uart: Fix crash on trying to load VM state
* rtc: Move RTC function prototypes to their own header
* xlnx-versal-virt: Support PMC SLCR
* xlnx-versal-virt: Support OSPI flash memory controller
* scripts: Explain the difference between linux-headers and standard-headers
* target/arm: Log CPU index in 'Taking exception' log
* arm_gicv3_its: Various bugfixes and cleanups
* arm_gicv3_its: Implement the missing MOVI and MOVALL commands
* ast2600: Fix address mapping of second SPI controller
* target/arm: Use correct entrypoint for SVC taken from Hyp to Hyp

# gpg: Signature made Fri 28 Jan 2022 15:29:36 GMT
# 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-20220128: (32 commits)
target/arm: Use correct entrypoint for SVC taken from Hyp to Hyp
hw/arm: ast2600: Fix address mapping of second SPI controller
hw/intc/arm_gicv3_its: Implement MOVI
hw/intc/arm_gicv3_its: Implement MOVALL
hw/intc/arm_gicv3_its: Check table bounds against correct limit
hw/intc/arm_gicv3_its: Make GITS_BASER<n> RAZ/WI for unimplemented registers
hw/intc/arm_gicv3_its: Provide read accessor for translation_ops
hw/intc/arm_gicv3: Set GICR_CTLR.CES if LPIs are supported
hw/intc/arm_gicv3_redist: Remove unnecessary zero checks
hw/intc/arm_gicv3_its: Sort ITS command list into numeric order
hw/intc/arm_gicv3: Honour GICD_CTLR.EnableGrp1NS for LPIs
hw/intc/arm_gicv3_its: Don't clear GITS_CWRITER on writes to GITS_CBASER
hw/intc/arm_gicv3_its: Don't clear GITS_CREADR when GITS_CTLR.ENABLED is set
hw/intc/arm_gicv3: Initialise dma_as in GIC, not ITS
hw/intc/arm_gicv3_its: Add tracepoints
target/arm: Log CPU index in 'Taking exception' log
scripts: Explain the difference between linux-headers and standard-headers
MAINTAINERS: Remove myself (for raspi).
MAINTAINERS: Add an entry for Xilinx Versal OSPI
hw/arm/xlnx-versal-virt: Connect mt35xu01g flashes to the OSPI
...

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

show more ...


/openbmc/qemu/MAINTAINERS
/openbmc/qemu/configure
/openbmc/qemu/docs/about/deprecated.rst
/openbmc/qemu/docs/conf.py
/openbmc/qemu/docs/devel/qapi-code-gen.rst
/openbmc/qemu/docs/devel/testing.rst
/openbmc/qemu/docs/devel/tracing.rst
/openbmc/qemu/hw/arm/armv7m.c
/openbmc/qemu/hw/arm/aspeed_ast2600.c
/openbmc/qemu/hw/arm/omap1.c
/openbmc/qemu/hw/arm/pxa2xx.c
/openbmc/qemu/hw/arm/strongarm.c
/openbmc/qemu/hw/arm/xlnx-versal-virt.c
/openbmc/qemu/hw/arm/xlnx-versal.c
/openbmc/qemu/hw/block/m25p80.c
/openbmc/qemu/hw/char/exynos4210_uart.c
/openbmc/qemu/hw/dma/xlnx_csu_dma.c
/openbmc/qemu/hw/i386/sgx.c
/openbmc/qemu/hw/i386/xen/xen-hvm.c
/openbmc/qemu/hw/i386/xen/xen-mapcache.c
arm_gicv3.c
arm_gicv3_common.c
arm_gicv3_its.c
arm_gicv3_redist.c
gicv3_internal.h
trace-events
/openbmc/qemu/hw/misc/mac_via.c
/openbmc/qemu/hw/misc/macio/cuda.c
/openbmc/qemu/hw/misc/macio/pmu.c
/openbmc/qemu/hw/misc/meson.build
/openbmc/qemu/hw/misc/xlnx-versal-pmc-iou-slcr.c
/openbmc/qemu/hw/ppc/spapr_rtc.c
/openbmc/qemu/hw/rtc/allwinner-rtc.c
/openbmc/qemu/hw/rtc/aspeed_rtc.c
/openbmc/qemu/hw/rtc/ds1338.c
/openbmc/qemu/hw/rtc/exynos4210_rtc.c
/openbmc/qemu/hw/rtc/goldfish_rtc.c
/openbmc/qemu/hw/rtc/m41t80.c
/openbmc/qemu/hw/rtc/m48t59.c
/openbmc/qemu/hw/rtc/mc146818rtc.c
/openbmc/qemu/hw/rtc/pl031.c
/openbmc/qemu/hw/rtc/twl92230.c
/openbmc/qemu/hw/rtc/xlnx-zynqmp-rtc.c
/openbmc/qemu/hw/s390x/tod-tcg.c
/openbmc/qemu/hw/scsi/megasas.c
/openbmc/qemu/hw/ssi/meson.build
/openbmc/qemu/hw/ssi/xlnx-versal-ospi.c
/openbmc/qemu/include/exec/cpu-all.h
/openbmc/qemu/include/exec/cpu-common.h
/openbmc/qemu/include/hw/arm/xlnx-versal.h
/openbmc/qemu/include/hw/dma/xlnx_csu_dma.h
/openbmc/qemu/include/hw/intc/arm_gicv3_its_common.h
/openbmc/qemu/include/hw/misc/xlnx-versal-pmc-iou-slcr.h
/openbmc/qemu/include/hw/ssi/xlnx-versal-ospi.h
/openbmc/qemu/include/qemu-common.h
/openbmc/qemu/include/sysemu/rtc.h
/openbmc/qemu/meson.build
/openbmc/qemu/net/dump.c
/openbmc/qemu/qapi/audio.json
/openbmc/qemu/qapi/compat.json
/openbmc/qemu/qapi/machine.json
/openbmc/qemu/qapi/meson.build
/openbmc/qemu/qapi/misc-target.json
/openbmc/qemu/qapi/replay.json
/openbmc/qemu/qapi/trace.json
/openbmc/qemu/qga/meson.build
/openbmc/qemu/scripts/mtest2make.py
/openbmc/qemu/scripts/qapi/commands.py
/openbmc/qemu/scripts/qapi/gen.py
/openbmc/qemu/scripts/qapi/main.py
/openbmc/qemu/scripts/update-linux-headers.sh
/openbmc/qemu/softmmu/rtc.c
/openbmc/qemu/target/arm/helper.c
/openbmc/qemu/target/arm/internals.h
/openbmc/qemu/target/arm/m_helper.c
/openbmc/qemu/tests/Makefile.include
/openbmc/qemu/tests/check-block.sh
/openbmc/qemu/tests/meson.build
/openbmc/qemu/tests/qemu-iotests/check
/openbmc/qemu/tests/qemu-iotests/meson.build
/openbmc/qemu/tests/qemu-iotests/testenv.py
/openbmc/qemu/tests/qemu-iotests/testrunner.py
/openbmc/qemu/tools/virtiofsd/passthrough_ll.c
/openbmc/qemu/trace/meson.build

1...<<21222324252627282930>>...74