[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-commits] [qemu/qemu] 507281: target/ppc: add external PID support
From: |
GitHub |
Subject: |
[Qemu-commits] [qemu/qemu] 507281: target/ppc: add external PID support |
Date: |
Thu, 08 Nov 2018 07:13:48 -0800 |
Branch: refs/heads/master
Home: https://github.com/qemu/qemu
Commit: 50728199c549467b01609ddbb831237f72c8f3f6
https://github.com/qemu/qemu/commit/50728199c549467b01609ddbb831237f72c8f3f6
Author: Roman Kapl <address@hidden>
Date: 2018-11-08 (Thu, 08 Nov 2018)
Changed paths:
M target/ppc/cpu.h
M target/ppc/helper.h
M target/ppc/mem_helper.c
M target/ppc/mmu_helper.c
M target/ppc/translate.c
M target/ppc/translate/fp-impl.inc.c
M target/ppc/translate/fp-ops.inc.c
M target/ppc/translate_init.inc.c
Log Message:
-----------
target/ppc: add external PID support
External PID is a mechanism present on BookE 2.06 that enables application to
store/load data from different address spaces. There are special version of some
instructions, which operate on alternate address space, which is specified in
the EPLC/EPSC regiser.
This implementation uses two additional MMU modes (mmu_idx) to provide the
address space for the load and store instructions. The QEMU TLB fill code was
modified to recognize these MMU modes and use the values in EPLC/EPSC to find
the proper entry in he PPC TLB. These two QEMU TLBs are also flushed on each
write to EPLC/EPSC.
Following instructions are implemented: dcbfep dcbstep dcbtep dcbtstep dcbzep
dcbzlep icbiep lbepx ldepx lfdepx lhepx lwepx stbepx stdepx stfdepx sthepx
stwepx.
Following vector instructions are not: evlddepx evstddepx lvepx lvepxl stvepx
stvepxl.
Signed-off-by: Roman Kapl <address@hidden>
Signed-off-by: David Gibson <address@hidden>
Commit: 7b0f4ec9d3ae66ef3b96b05d691d56aa9005ef5b
https://github.com/qemu/qemu/commit/7b0f4ec9d3ae66ef3b96b05d691d56aa9005ef5b
Author: Cédric Le Goater <address@hidden>
Date: 2018-11-08 (Thu, 08 Nov 2018)
Changed paths:
M hw/ppc/ppc440_pcix.c
Log Message:
-----------
ppc440_pcix: convert SysBus init method to a realize method
Signed-off-by: Cédric Le Goater <address@hidden>
Reviewed-by: Greg Kurz <address@hidden>
Reviewed-by: Philippe Mathieu-Daudé <address@hidden>
Signed-off-by: David Gibson <address@hidden>
Commit: 95ba5567073c89e8f63557c930bc82d45a8e7c2e
https://github.com/qemu/qemu/commit/95ba5567073c89e8f63557c930bc82d45a8e7c2e
Author: Cédric Le Goater <address@hidden>
Date: 2018-11-08 (Thu, 08 Nov 2018)
Changed paths:
M hw/ppc/ppc4xx_pci.c
Log Message:
-----------
ppc4xx_pci: convert SysBus init method to a realize method
Signed-off-by: Cédric Le Goater <address@hidden>
Reviewed-by: Greg Kurz <address@hidden>
Reviewed-by: Philippe Mathieu-Daudé <address@hidden>
Signed-off-by: David Gibson <address@hidden>
Commit: 73785b329e12bddae32201e4e1d84e0909c21364
https://github.com/qemu/qemu/commit/73785b329e12bddae32201e4e1d84e0909c21364
Author: Cédric Le Goater <address@hidden>
Date: 2018-11-08 (Thu, 08 Nov 2018)
Changed paths:
M hw/pci-host/ppce500.c
Log Message:
-----------
PPC: e500: convert SysBus init method to a realize method
Signed-off-by: Cédric Le Goater <address@hidden>
Reviewed-by: Philippe Mathieu-Daudé <address@hidden>
Reviewed-by: Greg Kurz <address@hidden>
Signed-off-by: David Gibson <address@hidden>
Commit: 0e947a89ce5911ccc92972e4057dfe7d0643e8f7
https://github.com/qemu/qemu/commit/0e947a89ce5911ccc92972e4057dfe7d0643e8f7
Author: Thomas Huth <address@hidden>
Date: 2018-11-08 (Thu, 08 Nov 2018)
Changed paths:
M default-configs/ppc64-softmmu.mak
M hw/ppc/Makefile.objs
M hw/ppc/spapr.c
M hw/ppc/spapr_rng.c
M include/hw/ppc/spapr.h
Log Message:
-----------
hw/ppc/spapr_rng: Introduce CONFIG_SPAPR_RNG switch for spapr_rng.c
The spapr-rng device is suboptimal when compared to virtio-rng, so
users might want to disable it in their builds. Thus let's introduce
a proper CONFIG switch to allow us to compile QEMU without this device.
The function spapr_rng_populate_dt is required for linking, so move it
to a different location.
Signed-off-by: Thomas Huth <address@hidden>
Reviewed-by: Greg Kurz <address@hidden>
Reviewed-by: Philippe Mathieu-Daudé <address@hidden>
Signed-off-by: David Gibson <address@hidden>
Commit: 13c9115fa9d23cf2afad4223b665149d8364d71d
https://github.com/qemu/qemu/commit/13c9115fa9d23cf2afad4223b665149d8364d71d
Author: Richard Henderson <address@hidden>
Date: 2018-11-08 (Thu, 08 Nov 2018)
Changed paths:
M target/ppc/fpu_helper.c
Log Message:
-----------
target/ppc: Split up float_invalid_op_excp
The always_inline trick only works if the function is always
called from the outer-most helper. But it isn't, so pass in
the outer-most return address. There's no need for a switch
statement whose argument is always a constant. Unravel the
switch and goto via more helpers.
Signed-off-by: Richard Henderson <address@hidden>
Signed-off-by: David Gibson <address@hidden>
Commit: 6525aadc1201ae55e18cedaa8a9f2d1831e700f8
https://github.com/qemu/qemu/commit/6525aadc1201ae55e18cedaa8a9f2d1831e700f8
Author: Richard Henderson <address@hidden>
Date: 2018-11-08 (Thu, 08 Nov 2018)
Changed paths:
M target/ppc/fpu_helper.c
Log Message:
-----------
target/ppc: Remove float_check_status
Use do_float_check_status directly, so that we don't get confused
about which return address we're using. And definitely don't use
helper_float_check_status.
Signed-off-by: Richard Henderson <address@hidden>
Signed-off-by: David Gibson <address@hidden>
Commit: 0394d7a68474f4144d7e2f5eb9dd8e6a87d01bef
https://github.com/qemu/qemu/commit/0394d7a68474f4144d7e2f5eb9dd8e6a87d01bef
Author: Richard Henderson <address@hidden>
Date: 2018-11-08 (Thu, 08 Nov 2018)
Changed paths:
M target/ppc/fpu_helper.c
Log Message:
-----------
target/ppc: Introduce fp number classification
Having a separate, logical classifiation of numbers will
unify more error paths for different formats.
Signed-off-by: Richard Henderson <address@hidden>
Signed-off-by: David Gibson <address@hidden>
Commit: 57483867e9eda2b34ce4bb2aaf90b2f35bf375c0
https://github.com/qemu/qemu/commit/57483867e9eda2b34ce4bb2aaf90b2f35bf375c0
Author: Richard Henderson <address@hidden>
Date: 2018-11-08 (Thu, 08 Nov 2018)
Changed paths:
M target/ppc/fpu_helper.c
Log Message:
-----------
target/ppc: Split out float_invalid_op_addsub
Signed-off-by: Richard Henderson <address@hidden>
Signed-off-by: David Gibson <address@hidden>
Commit: 4f0da706c20146bf17bf444653b7afa1296fc777
https://github.com/qemu/qemu/commit/4f0da706c20146bf17bf444653b7afa1296fc777
Author: Richard Henderson <address@hidden>
Date: 2018-11-08 (Thu, 08 Nov 2018)
Changed paths:
M target/ppc/fpu_helper.c
Log Message:
-----------
target/ppc: Split out float_invalid_op_mul
Signed-off-by: Richard Henderson <address@hidden>
Signed-off-by: David Gibson <address@hidden>
Commit: fec59ef30c329625f97844460713322172e423c7
https://github.com/qemu/qemu/commit/fec59ef30c329625f97844460713322172e423c7
Author: Richard Henderson <address@hidden>
Date: 2018-11-08 (Thu, 08 Nov 2018)
Changed paths:
M target/ppc/fpu_helper.c
Log Message:
-----------
target/ppc: Split out float_invalid_op_div
Signed-off-by: Richard Henderson <address@hidden>
Signed-off-by: David Gibson <address@hidden>
Commit: a3dec427e01550d60d7f2f9dab535f86066c0973
https://github.com/qemu/qemu/commit/a3dec427e01550d60d7f2f9dab535f86066c0973
Author: Richard Henderson <address@hidden>
Date: 2018-11-08 (Thu, 08 Nov 2018)
Changed paths:
M target/ppc/fpu_helper.c
Log Message:
-----------
target/ppc: Split out float_invalid_cvt
Signed-off-by: Richard Henderson <address@hidden>
Signed-off-by: David Gibson <address@hidden>
Commit: 4fc4c6a53d69af50c4421857c749f84f927d09f6
https://github.com/qemu/qemu/commit/4fc4c6a53d69af50c4421857c749f84f927d09f6
Author: Greg Kurz <address@hidden>
Date: 2018-11-08 (Thu, 08 Nov 2018)
Changed paths:
M hw/ppc/spapr_pci.c
Log Message:
-----------
spapr_pci: convert g_malloc() to g_new()
When allocating an array, it is a recommended coding practice to call
g_new(FooType, n) instead of g_malloc(n * sizeof(FooType)) because
it takes care to avoid overflow when calculating the size of the
allocated block and it returns FooType *, which allows the compiler
to perform type checking.
Signed-off-by: Greg Kurz <address@hidden>
Reviewed-by: Philippe Mathieu-Daudé <address@hidden>
Signed-off-by: David Gibson <address@hidden>
Commit: 0c2adc175398c37cc40b0164849aada9ad9c56c4
https://github.com/qemu/qemu/commit/0c2adc175398c37cc40b0164849aada9ad9c56c4
Author: Dr. David Alan Gilbert <address@hidden>
Date: 2018-11-08 (Thu, 08 Nov 2018)
Changed paths:
M hw/misc/macio/pmu.c
Log Message:
-----------
macio/pmu: Fix missing vmsd terminator
Fix missing terminator in VMStateDescription
Fixes: d811d61fbc6ca5f2be2185fd7cfa916e7ba613ce
Signed-off-by: Dr. David Alan Gilbert <address@hidden>
Reviewed-by: Mark Cave-Ayland <address@hidden>
Reviewed-by: Laurent Vivier <address@hidden>
Signed-off-by: David Gibson <address@hidden>
Commit: 1bbd6272a18d6fe3390d4b4200a1a7a566b304fa
https://github.com/qemu/qemu/commit/1bbd6272a18d6fe3390d4b4200a1a7a566b304fa
Author: Peter Maydell <address@hidden>
Date: 2018-11-08 (Thu, 08 Nov 2018)
Changed paths:
M hw/ppc/mac_newworld.c
Log Message:
-----------
hw/ppc/mac_newworld: Free openpic_irqs array after use
In ppc_core99_init(), we allocate an openpic_irqs array, which
we then use to collect up the various qemu_irqs which we're
going to connect to the interrupt controller. Once we've
called sysbus_connect_irq() to connect them all up, the
array is no longer required, but we forgot to free it.
Since board init is only run once at startup, the memory
leak is not a significant one.
Spotted by Coverity: CID 1192916.
Signed-off-by: Peter Maydell <address@hidden>
Reviewed-by: Philippe Mathieu-Daudé <address@hidden>
Reviewed-by: Mark Cave-Ayland <address@hidden>
Signed-off-by: David Gibson <address@hidden>
Commit: b8edea50a7b8fba52ec3d8222f09991bea8add85
https://github.com/qemu/qemu/commit/b8edea50a7b8fba52ec3d8222f09991bea8add85
Author: Pavel Dovgalyuk <address@hidden>
Date: 2018-11-08 (Thu, 08 Nov 2018)
Changed paths:
M target/ppc/translate.c
Log Message:
-----------
target/ppc: fix mtmsr instruction for icount
This patch fixes processing of mtmsr instructions in icount mode.
In this mode writing to interrupt/peripheral state is controlled
by can_do_io flag. This flag must be set explicitly before helper
function invocation.
Signed-off-by: Maria Klimushenkova <address@hidden>
Signed-off-by: Pavel Dovgalyuk <address@hidden>
Reviewed-by: Richard Henderson <address@hidden>
Signed-off-by: David Gibson <address@hidden>
Commit: d07945e78eb6b593cd17a4640c1fc9eb35e3245d
https://github.com/qemu/qemu/commit/d07945e78eb6b593cd17a4640c1fc9eb35e3245d
Author: Prasad J Pandit <address@hidden>
Date: 2018-11-08 (Thu, 08 Nov 2018)
Changed paths:
M hw/ppc/pnv_lpc.c
Log Message:
-----------
ppc/pnv: check size before data buffer access
While performing PowerNV memory r/w operations, the access length
'sz' could exceed the data[4] buffer size. Add check to avoid OOB
access.
Reported-by: Moguofang <address@hidden>
Signed-off-by: Prasad J Pandit <address@hidden>
Reviewed-by: Cédric Le Goater <address@hidden>
Signed-off-by: David Gibson <address@hidden>
Commit: bba8e23affb87622ce4a9ee3195729dbc4c3faac
https://github.com/qemu/qemu/commit/bba8e23affb87622ce4a9ee3195729dbc4c3faac
Author: Alexander Graf <address@hidden>
Date: 2018-11-08 (Thu, 08 Nov 2018)
Changed paths:
M MAINTAINERS
Log Message:
-----------
MAINTAINERS: PPC: Remove myself
I haven't really been maintaining any PowerPC code for quite a while now,
so let's reflect reality: David does all the work and embedded PPC is in
"Odd Fixes" state rather than supported now.
Signed-off-by: Alexander Graf <address@hidden>
Signed-off-by: David Gibson <address@hidden>
Commit: 09a333ee3dbbc6cdd88830f5b68dc358cacb0093
https://github.com/qemu/qemu/commit/09a333ee3dbbc6cdd88830f5b68dc358cacb0093
Author: Peter Maydell <address@hidden>
Date: 2018-11-08 (Thu, 08 Nov 2018)
Changed paths:
M hw/ppc/ppc440_uc.c
Log Message:
-----------
hw/ppc/ppc440_uc: Remove dead code in sdram_size()
Coverity points out in CID 1390588 that the test for sh == 0
in sdram_size() can never fire, because we calculate sh with
sh = 1024 - ((bcr >> 6) & 0x3ff);
which must result in a value between 1 and 1024 inclusive.
Without the relevant manual for the SoC, we're not completely
sure of the correct behaviour here, but we can remove the
dead code without changing how QEMU currently behaves.
Signed-off-by: Peter Maydell <address@hidden>
Reviewed-by: Laurent Vivier <address@hidden>
Signed-off-by: David Gibson <address@hidden>
Commit: a59d628f92d8b27deb67387cd26642c3ffac2b06
https://github.com/qemu/qemu/commit/a59d628f92d8b27deb67387cd26642c3ffac2b06
Author: Maria Klimushenkova <address@hidden>
Date: 2018-11-08 (Thu, 08 Nov 2018)
Changed paths:
M target/ppc/translate.c
Log Message:
-----------
This patch fixes processing of rfi instructions in icount mode.
In this mode writing to interrupt/peripheral state is controlled
by can_do_io flag. This flag must be set explicitly before helper
function invocation.
Signed-off-by: Maria Klimushenkova <address@hidden>
Signed-off-by: Pavel Dovgalyuk <address@hidden>
Tested-by: Mark Cave-Ayland <address@hidden>
Signed-off-by: David Gibson <address@hidden>
Commit: 56de52cad954a94530953bf979007db84c5f4dbb
https://github.com/qemu/qemu/commit/56de52cad954a94530953bf979007db84c5f4dbb
Author: Suraj Jitindar Singh <address@hidden>
Date: 2018-11-08 (Thu, 08 Nov 2018)
Changed paths:
M target/ppc/translate_init.inc.c
Log Message:
-----------
target/ppc: Add one reg id for ptcr
The ptcr (partition table control register) is used to store the address
and size of the partition table. For nested kvm-hv we have a level 1
guest register the location of it's partition table with the hypervisor.
Thus to support migration we need to be able to read this out of kvm
and restore it post migration.
Add the one reg id for the ptcr.
Signed-off-by: Suraj Jitindar Singh <address@hidden>
Signed-off-by: David Gibson <address@hidden>
Commit: b9a477b725788e47bf653eab36e64f232d259f2a
https://github.com/qemu/qemu/commit/b9a477b725788e47bf653eab36e64f232d259f2a
Author: Suraj Jitindar Singh <address@hidden>
Date: 2018-11-08 (Thu, 08 Nov 2018)
Changed paths:
M hw/ppc/spapr.c
M hw/ppc/spapr_caps.c
M include/hw/ppc/spapr.h
M target/ppc/kvm.c
M target/ppc/kvm_ppc.h
Log Message:
-----------
ppc/spapr_caps: Add SPAPR_CAP_NESTED_KVM_HV
Add the spapr cap SPAPR_CAP_NESTED_KVM_HV to be used to control the
availability of nested kvm-hv to the level 1 (L1) guest.
Assuming a hypervisor with support enabled an L1 guest can be allowed to
use the kvm-hv module (and thus run it's own kvm-hv guests) by setting:
-machine pseries,cap-nested-hv=true
or disabled with:
-machine pseries,cap-nested-hv=false
Signed-off-by: Suraj Jitindar Singh <address@hidden>
Signed-off-by: David Gibson <address@hidden>
Commit: 7360be896a928d9c75894f34e8e620b82bbc1676
https://github.com/qemu/qemu/commit/7360be896a928d9c75894f34e8e620b82bbc1676
Author: Peter Maydell <address@hidden>
Date: 2018-11-08 (Thu, 08 Nov 2018)
Changed paths:
M MAINTAINERS
M default-configs/ppc64-softmmu.mak
M hw/misc/macio/pmu.c
M hw/pci-host/ppce500.c
M hw/ppc/Makefile.objs
M hw/ppc/mac_newworld.c
M hw/ppc/pnv_lpc.c
M hw/ppc/ppc440_pcix.c
M hw/ppc/ppc440_uc.c
M hw/ppc/ppc4xx_pci.c
M hw/ppc/spapr.c
M hw/ppc/spapr_caps.c
M hw/ppc/spapr_pci.c
M hw/ppc/spapr_rng.c
M include/hw/ppc/spapr.h
M target/ppc/cpu.h
M target/ppc/fpu_helper.c
M target/ppc/helper.h
M target/ppc/kvm.c
M target/ppc/kvm_ppc.h
M target/ppc/mem_helper.c
M target/ppc/mmu_helper.c
M target/ppc/translate.c
M target/ppc/translate/fp-impl.inc.c
M target/ppc/translate/fp-ops.inc.c
M target/ppc/translate_init.inc.c
Log Message:
-----------
Merge remote-tracking branch 'remotes/dgibson/tags/ppc-for-3.1-20181108' into
staging
ppc patch queue 2018-11-08
Here's another patch of accumulated ppc patches for qemu-3.1.
Highlights are:
* Support for nested HV KVM on POWER9 hosts
* Remove Alex Graf as ppc maintainer
* Emulation of external PID instructions
# gpg: Signature made Thu 08 Nov 2018 12:14:27 GMT
# gpg: using RSA key 6C38CACA20D9B392
# gpg: Good signature from "David Gibson <address@hidden>"
# gpg: aka "David Gibson (Red Hat) <address@hidden>"
# gpg: aka "David Gibson (ozlabs.org) <address@hidden>"
# gpg: aka "David Gibson (kernel.org) <address@hidden>"
# Primary key fingerprint: 75F4 6586 AE61 A66C C44E 87DC 6C38 CACA 20D9 B392
* remotes/dgibson/tags/ppc-for-3.1-20181108: (22 commits)
ppc/spapr_caps: Add SPAPR_CAP_NESTED_KVM_HV
target/ppc: Add one reg id for ptcr
This patch fixes processing of rfi instructions in icount mode.
hw/ppc/ppc440_uc: Remove dead code in sdram_size()
MAINTAINERS: PPC: Remove myself
ppc/pnv: check size before data buffer access
target/ppc: fix mtmsr instruction for icount
hw/ppc/mac_newworld: Free openpic_irqs array after use
macio/pmu: Fix missing vmsd terminator
spapr_pci: convert g_malloc() to g_new()
target/ppc: Split out float_invalid_cvt
target/ppc: Split out float_invalid_op_div
target/ppc: Split out float_invalid_op_mul
target/ppc: Split out float_invalid_op_addsub
target/ppc: Introduce fp number classification
target/ppc: Remove float_check_status
target/ppc: Split up float_invalid_op_excp
hw/ppc/spapr_rng: Introduce CONFIG_SPAPR_RNG switch for spapr_rng.c
PPC: e500: convert SysBus init method to a realize method
ppc4xx_pci: convert SysBus init method to a realize method
...
Signed-off-by: Peter Maydell <address@hidden>
Compare: https://github.com/qemu/qemu/compare/0b57007755c2...7360be896a92
**NOTE:** This service has been marked for deprecation:
https://developer.github.com/changes/2018-04-25-github-services-deprecation/
Functionality will be removed from GitHub.com on January 31st, 2019.
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Qemu-commits] [qemu/qemu] 507281: target/ppc: add external PID support,
GitHub <=