All of lore.kernel.org
 help / color / mirror / Atom feed
* [PULL 00/34] ppc queue
@ 2022-01-12 11:55 Cédric Le Goater
  2022-01-12 11:55 ` [PULL 01/34] pseries: Update SLOF firmware image Cédric Le Goater
                   ` (34 more replies)
  0 siblings, 35 replies; 40+ messages in thread
From: Cédric Le Goater @ 2022-01-12 11:55 UTC (permalink / raw)
  To: qemu-ppc, qemu-devel
  Cc: Peter Maydell, Richard Henderson, Cédric Le Goater

The following changes since commit 7bb1272f40bdbdebcaec1737c412dcb52e414842:

  Merge remote-tracking branch 'remotes/jsnow-gitlab/tags/python-pull-request' into staging (2022-01-11 14:20:42 +0000)

are available in the Git repository at:

  https://github.com/legoater/qemu/ tags/pull-ppc-20220112

for you to fetch changes up to f83460bb203a49dd1693bf8b664d2a935a5be621:

  ppc/pnv: use stack->pci_regs[] in pnv_pec_stk_pci_xscom_write() (2022-01-12 11:28:27 +0100)

----------------------------------------------------------------
ppc 7.0 queue:

* New SLOF for PPC970 and POWER5+ (Alexey)
* Fixes for POWER5+ pseries (Cedric)
* Updates of documentation (Leonardo and Thomas)
* First step of exception model cleanup (Fabiano)
* User created PHB3/PHB4 devices (Daniel and Cedric)

----------------------------------------------------------------
Alexey Kardashevskiy (1):
      pseries: Update SLOF firmware image

Cédric Le Goater (9):
      Merge tag 'qemu-slof-20220110' of github.com:aik/qemu into ppc-7.0
      target/ppc: Add popcntb instruction to POWER5+ processors
      spapr: Fix support of POWER5+ processors
      target/ppc: Add extra float instructions to POWER5P processors
      ppc/pnv: Attach PHB3 root port device when defaults are enabled
      ppc/pnv: Introduce support for user created PHB3 devices
      ppc/pnv: Reparent user created PHB3 devices to the PnvChip
      ppc/pnv: Complete user created PHB3 devices
      ppc/pnv: Move num_phbs under Pnv8Chip

Daniel Henrique Barboza (14):
      pnv_phb3.c: add unique chassis and slot for pnv_phb3_root_port
      pnv_phb4.c: add unique chassis and slot for pnv_phb4_root_port
      pnv_phb4.c: make pnv-phb4-root-port user creatable
      pnv_phb4.c: check if root port exists in rc_config functions
      pnv_phb3.h: change TYPE_PNV_PHB3_ROOT_BUS name
      pnv_phb4.c: change TYPE_PNV_PHB4_ROOT_BUS name
      pnv_phb4_pec.c: move pnv_pec_phb_offset() to pnv_phb4.c
      pnv_phb4_pec: use pnv_phb4_pec_get_phb_id() in pnv_pec_dt_xscom()
      ppc/pnv: set phb4 properties in stk_realize()
      ppc/pnv: move PHB4 XSCOM init to phb4_realize()
      ppc/pnv: turn 'phb' into a pointer in struct PnvPhb4PecStack
      ppc/pnv: Introduce user creatable pnv-phb4 devices
      ppc/pnv: turn pnv_phb4_update_regions() into static
      ppc/pnv: use stack->pci_regs[] in pnv_pec_stk_pci_xscom_write()

Fabiano Rosas (8):
      target/ppc: powerpc_excp: Extract software TLB logging into a function
      target/ppc: powerpc_excp: Keep 60x/7x5 soft MMU logs active
      target/ppc: powerpc_excp: Group unimplemented exceptions
      target/ppc: Add HV support to ppc_interrupts_little_endian
      target/ppc: Add MSR_ILE support to ppc_interrupts_little_endian
      target/ppc: Use ppc_interrupts_little_endian in powerpc_excp
      target/ppc: Introduce a wrapper for powerpc_excp
      target/ppc: Set the correct endianness for powernv memory dumps

Leonardo Garcia (1):
      docs: Clarifications and formatting changes in ppc docs.

Thomas Huth (2):
      docs/system/ppc: Merge the PEF information into the pseries page
      MAINTAINERS: Improve the PowerPC machines section

 docs/papr-pef.txt               |  30 ---
 docs/specs/ppc-spapr-hcalls.rst |  21 +-
 docs/system/ppc/pseries.rst     |  75 +++++--
 include/hw/pci-host/pnv_phb3.h  |   4 +-
 include/hw/pci-host/pnv_phb4.h  |  14 +-
 include/hw/ppc/pnv.h            |   8 +-
 target/ppc/cpu.h                |  25 ++-
 hw/pci-host/pnv_phb3.c          |  57 ++++-
 hw/pci-host/pnv_phb4.c          | 486 ++++++++++++++++++++++++++++++++++++----
 hw/pci-host/pnv_phb4_pec.c      | 347 ++--------------------------
 hw/ppc/pnv.c                    |  55 ++++-
 hw/ppc/spapr.c                  |  10 +-
 target/ppc/arch_dump.c          |   2 +-
 target/ppc/cpu_init.c           |   2 +
 target/ppc/excp_helper.c        | 185 +++++----------
 MAINTAINERS                     |  12 +-
 pc-bios/README                  |   2 +-
 pc-bios/slof.bin                | Bin 991920 -> 992384 bytes
 roms/SLOF                       |   2 +-
 19 files changed, 737 insertions(+), 600 deletions(-)
 delete mode 100644 docs/papr-pef.txt


^ permalink raw reply	[flat|nested] 40+ messages in thread

* [PULL 01/34] pseries: Update SLOF firmware image
  2022-01-12 11:55 [PULL 00/34] ppc queue Cédric Le Goater
@ 2022-01-12 11:55 ` Cédric Le Goater
  2022-01-12 11:55 ` [PULL 02/34] target/ppc: Add popcntb instruction to POWER5+ processors Cédric Le Goater
                   ` (33 subsequent siblings)
  34 siblings, 0 replies; 40+ messages in thread
From: Cédric Le Goater @ 2022-01-12 11:55 UTC (permalink / raw)
  To: qemu-ppc, qemu-devel
  Cc: Alexey Kardashevskiy, Peter Maydell, Richard Henderson

From: Alexey Kardashevskiy <aik@ozlabs.ru>

The only change is that SLOF is compiled with -mcpu=power5
to make it work on PPC970 too.

Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru>
---
 pc-bios/README   |   2 +-
 pc-bios/slof.bin | Bin 991920 -> 992384 bytes
 roms/SLOF        |   2 +-
 3 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/pc-bios/README b/pc-bios/README
index c51ae58824a9..ba6c15e76957 100644
--- a/pc-bios/README
+++ b/pc-bios/README
@@ -14,7 +14,7 @@
 - SLOF (Slimline Open Firmware) is a free IEEE 1275 Open Firmware
   implementation for certain IBM POWER hardware.  The sources are at
   https://github.com/aik/SLOF, and the image currently in qemu is
-  built from git tag qemu-slof-20211112.
+  built from git tag qemu-slof-20220110.
 
 - VOF (Virtual Open Firmware) is a minimalistic firmware to work with
   -machine pseries,x-vof=on. When enabled, the firmware acts as a slim shim and
diff --git a/pc-bios/slof.bin b/pc-bios/slof.bin
index 046ca63709aacf7f05c9b95a37535ac2c0b52df3..cbbe23e9107575c64c3264badacfad8b0a7ca090 100644
GIT binary patch
delta 267695
zcmeFa3v^UPwl`jNI*<+qXtaR<fpkI$>CixU+MUj$10i(Mph1WziZm}Fj5=XN?T~Ix
zCx8;gnP3JAMueb%;HVQuGBOGpd>}YF7ajG(kw*}ag!qV#kAwi{|J!xCL!!>yx&OPq
zweI@X&03w)ryjd@?b>_Su3fvTYu-!`9!akp-#0P1sA$>nar4H`A2)aYg82)^ja$0#
z?)y@!;`zX?mIQ9<J#<~MIeO4<&Ro_)f5@7;=fqQ4rjC_H&mFt)g-X|6#hyR+9?Pgy
z%jne6qb;MxrH#HmZS3go-7L8?EjKUx)xAZ(yvLGZ`Eir7wtwOaU3#xc4>IOm#h7nZ
z<e>$4dRLXPs+_#Ws;T!!irc?8M8##Z<ctJO^DQ~@T85%&4y&J)<i{npEcUa2^(J%G
z?fE$>6-b|_X$=*AW}p8<gPRQ+<z<ZdUs85bx^Fv6u+MK{Nbe`pU+$D1gLE#_|2Uyz
z`BXO>*eKIq=#=h8`g@e_#>b<5R~6?O#939QXQV{?lFKkCN$X{=W(<g3@%sn(TF?vs
zmcc%Ik)P5ud&Lij-E7#SRr@@#Irbo9&bh3zR5P4a&$Rj6Y`~*lKqkx`766%m3iDg4
zTT@n`XR)WldFt6VpSti9AMy@Y#Y~AcQ-X6=D^qtg`PwR&QJwfVUzK~xAZ0-Js>M@o
zQd*O%_D@N+QMUd3#ba*PWxa&;B&b)eQ_#Mnb+LU_Yq5QPE8+2Bm1%0AX9yRxvlwZ4
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%0DYX8GwkIL9RvFW
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
a>5${g1^Dm&4;^0~c;wc-zxi};+y4jIZp5?z

delta 267618
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

diff --git a/roms/SLOF b/roms/SLOF
index a6906b024c6c..5b4c5acdcd55 160000
--- a/roms/SLOF
+++ b/roms/SLOF
@@ -1 +1 @@
-Subproject commit a6906b024c6cca5a86496f51eb4bfee3a0c36148
+Subproject commit 5b4c5acdcd552a4e1796aeca6bb700f6cbb0282d
-- 
2.31.1



^ permalink raw reply related	[flat|nested] 40+ messages in thread

* [PULL 02/34] target/ppc: Add popcntb instruction to POWER5+ processors
  2022-01-12 11:55 [PULL 00/34] ppc queue Cédric Le Goater
  2022-01-12 11:55 ` [PULL 01/34] pseries: Update SLOF firmware image Cédric Le Goater
@ 2022-01-12 11:55 ` Cédric Le Goater
  2022-01-12 11:55 ` [PULL 03/34] spapr: Fix support of " Cédric Le Goater
                   ` (32 subsequent siblings)
  34 siblings, 0 replies; 40+ messages in thread
From: Cédric Le Goater @ 2022-01-12 11:55 UTC (permalink / raw)
  To: qemu-ppc, qemu-devel
  Cc: Peter Maydell, Richard Henderson, Cédric Le Goater, Fabiano Rosas

popcntb instruction was added in ISA v2.02. Add support for POWER5+
processors since they implement ISA v2.03.

PPC970 CPUs implement v2.01 and do not support popcntb.

Signed-off-by: Cédric Le Goater <clg@kaod.org>
Reviewed-by: Fabiano Rosas <farosas@linux.ibm.com>
Message-Id: <20220105095142.3990430-2-clg@kaod.org>
Signed-off-by: Cédric Le Goater <clg@kaod.org>
---
 target/ppc/cpu_init.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/target/ppc/cpu_init.c b/target/ppc/cpu_init.c
index cc93bff3fac4..f15a52259c90 100644
--- a/target/ppc/cpu_init.c
+++ b/target/ppc/cpu_init.c
@@ -6957,6 +6957,7 @@ POWERPC_FAMILY(POWER5P)(ObjectClass *oc, void *data)
                        PPC_MEM_SYNC | PPC_MEM_EIEIO |
                        PPC_MEM_TLBIE | PPC_MEM_TLBSYNC |
                        PPC_64B |
+                       PPC_POPCNTB |
                        PPC_SEGMENT_64B | PPC_SLBI;
     pcc->insns_flags2 = PPC2_FP_CVT_S64;
     pcc->msr_mask = (1ull << MSR_SF) |
-- 
2.31.1



^ permalink raw reply related	[flat|nested] 40+ messages in thread

* [PULL 03/34] spapr: Fix support of POWER5+ processors
  2022-01-12 11:55 [PULL 00/34] ppc queue Cédric Le Goater
  2022-01-12 11:55 ` [PULL 01/34] pseries: Update SLOF firmware image Cédric Le Goater
  2022-01-12 11:55 ` [PULL 02/34] target/ppc: Add popcntb instruction to POWER5+ processors Cédric Le Goater
@ 2022-01-12 11:55 ` Cédric Le Goater
  2022-01-12 11:55 ` [PULL 04/34] target/ppc: Add extra float instructions to POWER5P processors Cédric Le Goater
                   ` (31 subsequent siblings)
  34 siblings, 0 replies; 40+ messages in thread
From: Cédric Le Goater @ 2022-01-12 11:55 UTC (permalink / raw)
  To: qemu-ppc, qemu-devel
  Cc: Peter Maydell, Richard Henderson, Cédric Le Goater, Fabiano Rosas

POWER5+ (ISA v2.03) processors are supported by the pseries machine
but they do not have Altivec instructions. Do not advertise support
for it in the DT.

To be noted that this test is in contradiction with the assert in
cap_vsx_apply().

Signed-off-by: Cédric Le Goater <clg@kaod.org>
Tested-by: Fabiano Rosas <farosas@linux.ibm.com>
Message-Id: <20220105095142.3990430-3-clg@kaod.org>
Signed-off-by: Cédric Le Goater <clg@kaod.org>
---
 hw/ppc/spapr.c | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c
index 837342932586..72f5dce751ee 100644
--- a/hw/ppc/spapr.c
+++ b/hw/ppc/spapr.c
@@ -723,10 +723,12 @@ static void spapr_dt_cpu(CPUState *cs, void *fdt, int offset,
      *
      * Only CPUs for which we create core types in spapr_cpu_core.c
      * are possible, and all of those have VMX */
-    if (spapr_get_cap(spapr, SPAPR_CAP_VSX) != 0) {
-        _FDT((fdt_setprop_cell(fdt, offset, "ibm,vmx", 2)));
-    } else {
-        _FDT((fdt_setprop_cell(fdt, offset, "ibm,vmx", 1)));
+    if (env->insns_flags & PPC_ALTIVEC) {
+        if (spapr_get_cap(spapr, SPAPR_CAP_VSX) != 0) {
+            _FDT((fdt_setprop_cell(fdt, offset, "ibm,vmx", 2)));
+        } else {
+            _FDT((fdt_setprop_cell(fdt, offset, "ibm,vmx", 1)));
+        }
     }
 
     /* Advertise DFP (Decimal Floating Point) if available
-- 
2.31.1



^ permalink raw reply related	[flat|nested] 40+ messages in thread

* [PULL 04/34] target/ppc: Add extra float instructions to POWER5P processors
  2022-01-12 11:55 [PULL 00/34] ppc queue Cédric Le Goater
                   ` (2 preceding siblings ...)
  2022-01-12 11:55 ` [PULL 03/34] spapr: Fix support of " Cédric Le Goater
@ 2022-01-12 11:55 ` Cédric Le Goater
  2022-01-12 11:55 ` [PULL 05/34] docs/system/ppc: Merge the PEF information into the pseries page Cédric Le Goater
                   ` (30 subsequent siblings)
  34 siblings, 0 replies; 40+ messages in thread
From: Cédric Le Goater @ 2022-01-12 11:55 UTC (permalink / raw)
  To: qemu-ppc, qemu-devel
  Cc: Peter Maydell, Richard Henderson, Cédric Le Goater

ISA v2.03 introduced Floating Round to Integer instructions : frin,
friz, frip, and frim. Add them to POWER5+.

The PPC_FLOAT_EXT flag also includes the fre (Floating Reciprocal
Estimate) instruction which was introduced in ISA v2.0x. The
architecture document says its optional and that might be the reason
why it has been kept under the PPC_FLOAT_EXT flag. This means 970 CPUs
can not use it under QEMU, which doesn't seem to be a problem.

Signed-off-by: Cédric Le Goater <clg@kaod.org>
---
 target/ppc/cpu_init.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/target/ppc/cpu_init.c b/target/ppc/cpu_init.c
index f15a52259c90..e30e86fe9d04 100644
--- a/target/ppc/cpu_init.c
+++ b/target/ppc/cpu_init.c
@@ -6953,6 +6953,7 @@ POWERPC_FAMILY(POWER5P)(ObjectClass *oc, void *data)
                        PPC_FLOAT | PPC_FLOAT_FSEL | PPC_FLOAT_FRES |
                        PPC_FLOAT_FSQRT | PPC_FLOAT_FRSQRTE |
                        PPC_FLOAT_STFIWX |
+                       PPC_FLOAT_EXT |
                        PPC_CACHE | PPC_CACHE_ICBI | PPC_CACHE_DCBZ |
                        PPC_MEM_SYNC | PPC_MEM_EIEIO |
                        PPC_MEM_TLBIE | PPC_MEM_TLBSYNC |
-- 
2.31.1



^ permalink raw reply related	[flat|nested] 40+ messages in thread

* [PULL 05/34] docs/system/ppc: Merge the PEF information into the pseries page
  2022-01-12 11:55 [PULL 00/34] ppc queue Cédric Le Goater
                   ` (3 preceding siblings ...)
  2022-01-12 11:55 ` [PULL 04/34] target/ppc: Add extra float instructions to POWER5P processors Cédric Le Goater
@ 2022-01-12 11:55 ` Cédric Le Goater
  2022-01-12 11:55 ` [PULL 06/34] MAINTAINERS: Improve the PowerPC machines section Cédric Le Goater
                   ` (29 subsequent siblings)
  34 siblings, 0 replies; 40+ messages in thread
From: Cédric Le Goater @ 2022-01-12 11:55 UTC (permalink / raw)
  To: qemu-ppc, qemu-devel
  Cc: Peter Maydell, Thomas Huth, Daniel Henrique Barboza,
	Richard Henderson, Cédric Le Goater

From: Thomas Huth <thuth@redhat.com>

The Protected Execution Facility is only available with the pseries
machine, so let's merge the old ASCII text into the new RST file now.

Signed-off-by: Thomas Huth <thuth@redhat.com>
Reviewed-by: Daniel Henrique Barboza <danielhb413@gmail.com>
Message-Id: <20220105103232.405204-1-thuth@redhat.com>
Signed-off-by: Cédric Le Goater <clg@kaod.org>
---
 docs/papr-pef.txt           | 30 ------------------------------
 docs/system/ppc/pseries.rst | 33 +++++++++++++++++++++++++++++++++
 2 files changed, 33 insertions(+), 30 deletions(-)
 delete mode 100644 docs/papr-pef.txt

diff --git a/docs/papr-pef.txt b/docs/papr-pef.txt
deleted file mode 100644
index 72550e9bf896..000000000000
--- a/docs/papr-pef.txt
+++ /dev/null
@@ -1,30 +0,0 @@
-POWER (PAPR) Protected Execution Facility (PEF)
-===============================================
-
-Protected Execution Facility (PEF), also known as Secure Guest support
-is a feature found on IBM POWER9 and POWER10 processors.
-
-If a suitable firmware including an Ultravisor is installed, it adds
-an extra memory protection mode to the CPU.  The ultravisor manages a
-pool of secure memory which cannot be accessed by the hypervisor.
-
-When this feature is enabled in QEMU, a guest can use ultracalls to
-enter "secure mode".  This transfers most of its memory to secure
-memory, where it cannot be eavesdropped by a compromised hypervisor.
-
-Launching
----------
-
-To launch a guest which will be permitted to enter PEF secure mode:
-
-# ${QEMU} \
-    -object pef-guest,id=pef0 \
-    -machine confidential-guest-support=pef0 \
-    ...
-
-Live Migration
-----------------
-
-Live migration is not yet implemented for PEF guests.  For
-consistency, we currently prevent migration if the PEF feature is
-enabled, whether or not the guest has actually entered secure mode.
diff --git a/docs/system/ppc/pseries.rst b/docs/system/ppc/pseries.rst
index 72e315eff628..16394fa5218b 100644
--- a/docs/system/ppc/pseries.rst
+++ b/docs/system/ppc/pseries.rst
@@ -230,6 +230,39 @@ nested. Combinations not shown in the table are not available.
 
 .. [3] Introduced on Power10 machines.
 
+
+POWER (PAPR) Protected Execution Facility (PEF)
+-----------------------------------------------
+
+Protected Execution Facility (PEF), also known as Secure Guest support
+is a feature found on IBM POWER9 and POWER10 processors.
+
+If a suitable firmware including an Ultravisor is installed, it adds
+an extra memory protection mode to the CPU.  The ultravisor manages a
+pool of secure memory which cannot be accessed by the hypervisor.
+
+When this feature is enabled in QEMU, a guest can use ultracalls to
+enter "secure mode".  This transfers most of its memory to secure
+memory, where it cannot be eavesdropped by a compromised hypervisor.
+
+Launching
+^^^^^^^^^
+
+To launch a guest which will be permitted to enter PEF secure mode::
+
+  $ qemu-system-ppc64 \
+      -object pef-guest,id=pef0 \
+      -machine confidential-guest-support=pef0 \
+      ...
+
+Live Migration
+^^^^^^^^^^^^^^
+
+Live migration is not yet implemented for PEF guests.  For
+consistency, QEMU currently prevents migration if the PEF feature is
+enabled, whether or not the guest has actually entered secure mode.
+
+
 Maintainer contact information
 ------------------------------
 
-- 
2.31.1



^ permalink raw reply related	[flat|nested] 40+ messages in thread

* [PULL 06/34] MAINTAINERS: Improve the PowerPC machines section
  2022-01-12 11:55 [PULL 00/34] ppc queue Cédric Le Goater
                   ` (4 preceding siblings ...)
  2022-01-12 11:55 ` [PULL 05/34] docs/system/ppc: Merge the PEF information into the pseries page Cédric Le Goater
@ 2022-01-12 11:55 ` Cédric Le Goater
  2022-01-12 11:55 ` [PULL 07/34] docs: Clarifications and formatting changes in ppc docs Cédric Le Goater
                   ` (28 subsequent siblings)
  34 siblings, 0 replies; 40+ messages in thread
From: Cédric Le Goater @ 2022-01-12 11:55 UTC (permalink / raw)
  To: qemu-ppc, qemu-devel
  Cc: Peter Maydell, Thomas Huth, Mark Cave-Ayland,
	Daniel Henrique Barboza, Richard Henderson,
	Cédric Le Goater

From: Thomas Huth <thuth@redhat.com>

Add some documentation files to the corresponding machine sections
and mention the machine names in the section titles where it is
not so obvious (e.g. that "taihu" is a 405 machine).

Signed-off-by: Thomas Huth <thuth@redhat.com>
Reviewed-by: Daniel Henrique Barboza <danielhb413@gmail.com>
Reviewed-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
Message-Id: <20220105104800.407570-1-thuth@redhat.com>
Signed-off-by: Cédric Le Goater <clg@kaod.org>
---
 MAINTAINERS | 12 ++++++++----
 1 file changed, 8 insertions(+), 4 deletions(-)

diff --git a/MAINTAINERS b/MAINTAINERS
index c98a61caeeed..6ccdec7f0207 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -1245,7 +1245,7 @@ F: hw/openrisc/openrisc_sim.c
 
 PowerPC Machines
 ----------------
-405
+405 (ref405ep and taihu)
 L: qemu-ppc@nongnu.org
 S: Orphan
 F: hw/ppc/ppc405_boards.c
@@ -1281,6 +1281,7 @@ New World (mac99)
 M: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
 L: qemu-ppc@nongnu.org
 S: Odd Fixes
+F: docs/system/ppc/powermac.rst
 F: hw/ppc/mac_newworld.c
 F: hw/pci-host/uninorth.c
 F: hw/pci-bridge/dec.[hc]
@@ -1299,6 +1300,7 @@ Old World (g3beige)
 M: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
 L: qemu-ppc@nongnu.org
 S: Odd Fixes
+F: docs/system/ppc/powermac.rst
 F: hw/ppc/mac_oldworld.c
 F: hw/pci-host/grackle.c
 F: hw/misc/macio/
@@ -1312,6 +1314,7 @@ PReP
 M: Hervé Poussineau <hpoussin@reactos.org>
 L: qemu-ppc@nongnu.org
 S: Maintained
+F: docs/system/ppc/prep.rst
 F: hw/ppc/prep.c
 F: hw/ppc/prep_systemio.c
 F: hw/ppc/rs6000_mc.c
@@ -1324,7 +1327,7 @@ F: include/hw/isa/pc87312.h
 F: include/hw/rtc/m48t59.h
 F: tests/avocado/ppc_prep_40p.py
 
-sPAPR
+sPAPR (pseries)
 M: Cédric Le Goater <clg@kaod.org>
 M: Daniel Henrique Barboza <danielhb413@gmail.com>
 R: David Gibson <david@gibson.dropbear.id.au>
@@ -1336,8 +1339,8 @@ F: include/hw/*/spapr*
 F: hw/*/xics*
 F: include/hw/*/xics*
 F: pc-bios/slof.bin
-F: docs/specs/ppc-spapr-hcalls.txt
-F: docs/specs/ppc-spapr-hotplug.txt
+F: docs/system/ppc/pseries.rst
+F: docs/specs/ppc-spapr-*
 F: tests/qtest/spapr*
 F: tests/qtest/libqos/*spapr*
 F: tests/qtest/rtas*
@@ -1348,6 +1351,7 @@ PowerNV (Non-Virtualized)
 M: Cédric Le Goater <clg@kaod.org>
 L: qemu-ppc@nongnu.org
 S: Maintained
+F: docs/system/ppc/powernv.rst
 F: hw/ppc/pnv*
 F: hw/intc/pnv*
 F: hw/intc/xics_pnv.c
-- 
2.31.1



^ permalink raw reply related	[flat|nested] 40+ messages in thread

* [PULL 07/34] docs: Clarifications and formatting changes in ppc docs.
  2022-01-12 11:55 [PULL 00/34] ppc queue Cédric Le Goater
                   ` (5 preceding siblings ...)
  2022-01-12 11:55 ` [PULL 06/34] MAINTAINERS: Improve the PowerPC machines section Cédric Le Goater
@ 2022-01-12 11:55 ` Cédric Le Goater
  2022-01-12 11:55 ` [PULL 08/34] target/ppc: powerpc_excp: Extract software TLB logging into a function Cédric Le Goater
                   ` (27 subsequent siblings)
  34 siblings, 0 replies; 40+ messages in thread
From: Cédric Le Goater @ 2022-01-12 11:55 UTC (permalink / raw)
  To: qemu-ppc, qemu-devel
  Cc: Leonardo Garcia, Peter Maydell, Richard Henderson, Cédric Le Goater

From: Leonardo Garcia <lagarcia@br.ibm.com>

Signed-off-by: Leonardo Garcia <lagarcia@br.ibm.com>
Reviewed-by: Cédric Le Goater <clg@kaod.org>
Message-Id: <3b228af4785241c7fb4a2c70f0c495d2a9adea83.1641405872.git.lagarcia@br.ibm.com>
Signed-off-by: Cédric Le Goater <clg@kaod.org>
---
 docs/specs/ppc-spapr-hcalls.rst | 21 ++++++++---------
 docs/system/ppc/pseries.rst     | 42 ++++++++++++++++-----------------
 2 files changed, 31 insertions(+), 32 deletions(-)

diff --git a/docs/specs/ppc-spapr-hcalls.rst b/docs/specs/ppc-spapr-hcalls.rst
index 28daf9734a8e..6cdcef20265e 100644
--- a/docs/specs/ppc-spapr-hcalls.rst
+++ b/docs/specs/ppc-spapr-hcalls.rst
@@ -1,13 +1,12 @@
+======================
 sPAPR hypervisor calls
-----------------------
+======================
 
 When used with the ``pseries`` machine type, ``qemu-system-ppc64`` implements
-a set of hypervisor calls (a.k.a. hcalls) defined in the `Linux on Power
-Architecture Reference document (LoPAR)
-<https://cdn.openpowerfoundation.org/wp-content/uploads/2020/07/LoPAR-20200812.pdf>`_.
-This document is a subset of the Power Architecture Platform Reference (PAPR+)
-specification (IBM internal only), which is what PowerVM, the IBM proprietary
-hypervisor, adheres to.
+a set of hypervisor calls (a.k.a. hcalls) defined in the Linux on Power
+Architecture Reference ([LoPAR]_) document. This document is a subset of the
+Power Architecture Platform Reference (PAPR+) specification (IBM internal only),
+which is what PowerVM, the IBM proprietary hypervisor, adheres to.
 
 The subset in LoPAR is selected based on the requirements of Linux as a guest.
 
@@ -18,8 +17,8 @@ running in the guest and QEMU.
 All those hypercalls start at hcall number 0xf000 which correspond
 to an implementation specific range in PAPR.
 
-H_RTAS (0xf000)
-^^^^^^^^^^^^^^^
+``H_RTAS (0xf000)``
+===================
 
 RTAS stands for Run-Time Abstraction Sercies and is a set of runtime services
 generally provided by the firmware inside the guest to the operating system. It
@@ -44,8 +43,8 @@ Returns:
 
   ``H_PARAMETER``: Unknown token.
 
-H_LOGICAL_MEMOP (0xf001)
-^^^^^^^^^^^^^^^^^^^^^^^^
+``H_LOGICAL_MEMOP (0xf001)``
+============================
 
 When the guest runs in "real mode" (in powerpc terminology this means with MMU
 disabled, i.e. guest effective address equals to guest physical address), it
diff --git a/docs/system/ppc/pseries.rst b/docs/system/ppc/pseries.rst
index 16394fa5218b..16893248151f 100644
--- a/docs/system/ppc/pseries.rst
+++ b/docs/system/ppc/pseries.rst
@@ -1,19 +1,18 @@
+===================================
 pSeries family boards (``pseries``)
 ===================================
 
-The Power machine para-virtualized environment described by the `Linux on Power
-Architecture Reference document (LoPAR)
-<https://openpowerfoundation.org/wp-content/uploads/2020/07/LoPAR-20200812.pdf>`_
-is called pSeries. This environment is also known as sPAPR, System p guests, or
-simply Power Linux guests (although it is capable of running other operating
-systems, such as AIX).
+The Power machine para-virtualized environment described by the Linux on Power
+Architecture Reference ([LoPAR]_) document is called pSeries. This environment
+is also known as sPAPR, System p guests, or simply Power Linux guests (although
+it is capable of running other operating systems, such as AIX).
 
 Even though pSeries is designed to behave as a guest environment, it is also
 capable of acting as a hypervisor OS, providing, on that role, nested
 virtualization capabilities.
 
 Supported devices
------------------
+=================
 
  * Multi processor support for many Power processors generations: POWER7,
    POWER7+, POWER8, POWER8NVL, POWER9, and Power10. Support for POWER5+ exists,
@@ -26,12 +25,12 @@ Supported devices
  * PCIe device pass through.
 
 Missing devices
----------------
+===============
 
  * SPICE support.
 
 Firmware
---------
+========
 
 `SLOF <https://github.com/aik/SLOF>`_ (Slimline Open Firmware) is an
 implementation of the `IEEE 1275-1994, Standard for Boot (Initialization
@@ -42,14 +41,14 @@ QEMU includes a prebuilt image of SLOF which is updated when a more recent
 version is required.
 
 Build directions
-----------------
+================
 
 .. code-block:: bash
 
   ./configure --target-list=ppc64-softmmu && make
 
 Running instructions
---------------------
+====================
 
 Someone can select the pSeries machine type by running QEMU with the following
 options:
@@ -59,7 +58,7 @@ options:
   qemu-system-ppc64 -M pseries <other QEMU arguments>
 
 sPAPR devices
--------------
+=============
 
 The sPAPR specification defines a set of para-virtualized devices, which are
 also supported by the pSeries machine in QEMU and can be instantiated with the
@@ -102,11 +101,9 @@ device, or specify one with an ID
 NVRAM device with ``-global spapr-nvram.drive=pfid``.
 
 sPAPR specification
-^^^^^^^^^^^^^^^^^^^
+-------------------
 
-The main source of documentation on the sPAPR standard is the `Linux on Power
-Architecture Reference document (LoPAR)
-<https://openpowerfoundation.org/wp-content/uploads/2020/07/LoPAR-20200812.pdf>`_.
+The main source of documentation on the sPAPR standard is the [LoPAR]_ document.
 However, documentation specific to QEMU's implementation of the specification
 can  also be found in QEMU documentation:
 
@@ -124,7 +121,7 @@ Other documentation available in QEMU docs directory:
   (``/docs/specs/ppc-spapr-uv-hcalls.txt``).
 
 Switching between the KVM-PR and KVM-HV kernel module
------------------------------------------------------
+=====================================================
 
 Currently, there are two implementations of KVM on Power, ``kvm_hv.ko`` and
 ``kvm_pr.ko``.
@@ -139,7 +136,7 @@ possible to switch between the two modes with the ``kvm-type`` parameter:
   instead.
 
 KVM-PR
-^^^^^^
+------
 
 KVM-PR uses the so-called **PR**\ oblem state of the PPC CPUs to run the guests,
 i.e. the virtual machine is run in user mode and all privileged instructions
@@ -166,7 +163,7 @@ In order to run KVM-PR guests with POWER9 processors, someone will need to start
 QEMU with ``kernel_irqchip=off`` command line option.
 
 KVM-HV
-^^^^^^
+------
 
 KVM-HV uses the hypervisor mode of more recent Power processors, that allow
 access to the bare metal hardware directly. Although POWER7 had this capability,
@@ -188,7 +185,7 @@ CPUs generations, e.g. you can run a POWER7 guest on a POWER8 host by using
 ``-cpu POWER8,compat=power7`` as parameter to QEMU.
 
 Modules support
----------------
+===============
 
 As noticed in the sections above, each module can run in a different
 environment. The following table shows with which environment each module can
@@ -264,8 +261,11 @@ enabled, whether or not the guest has actually entered secure mode.
 
 
 Maintainer contact information
-------------------------------
+==============================
 
 Cédric Le Goater <clg@kaod.org>
 
 Daniel Henrique Barboza <danielhb413@gmail.com>
+
+.. [LoPAR] `Linux on Power Architecture Reference document (LoPAR) revision
+   2.9 <https://openpowerfoundation.org/wp-content/uploads/2020/07/LoPAR-20200812.pdf>`_.
-- 
2.31.1



^ permalink raw reply related	[flat|nested] 40+ messages in thread

* [PULL 08/34] target/ppc: powerpc_excp: Extract software TLB logging into a function
  2022-01-12 11:55 [PULL 00/34] ppc queue Cédric Le Goater
                   ` (6 preceding siblings ...)
  2022-01-12 11:55 ` [PULL 07/34] docs: Clarifications and formatting changes in ppc docs Cédric Le Goater
@ 2022-01-12 11:55 ` Cédric Le Goater
  2022-01-12 11:55 ` [PULL 09/34] target/ppc: powerpc_excp: Keep 60x/7x5 soft MMU logs active Cédric Le Goater
                   ` (26 subsequent siblings)
  34 siblings, 0 replies; 40+ messages in thread
From: Cédric Le Goater @ 2022-01-12 11:55 UTC (permalink / raw)
  To: qemu-ppc, qemu-devel
  Cc: Peter Maydell, David Gibson, Richard Henderson,
	Cédric Le Goater, Fabiano Rosas

From: Fabiano Rosas <farosas@linux.ibm.com>

Signed-off-by: Fabiano Rosas <farosas@linux.ibm.com>
Reviewed-by: David Gibson <david@gibson.dropbear.id.au>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-Id: <20220107222601.4101511-2-farosas@linux.ibm.com>
Signed-off-by: Cédric Le Goater <clg@kaod.org>
---
 target/ppc/excp_helper.c | 65 +++++++++++++++++++++++-----------------
 1 file changed, 37 insertions(+), 28 deletions(-)

diff --git a/target/ppc/excp_helper.c b/target/ppc/excp_helper.c
index a779dc936a55..2c5d5470de59 100644
--- a/target/ppc/excp_helper.c
+++ b/target/ppc/excp_helper.c
@@ -135,6 +135,41 @@ static void dump_hcall(CPUPPCState *env)
                   env->nip);
 }
 
+static void ppc_excp_debug_sw_tlb(CPUPPCState *env, int excp)
+{
+#if defined(DEBUG_SOFTWARE_TLB)
+    const char *es;
+    target_ulong *miss, *cmp;
+    int en;
+
+    if (!qemu_log_enabled()) {
+        return;
+    }
+
+    if (excp == POWERPC_EXCP_IFTLB) {
+        es = "I";
+        en = 'I';
+        miss = &env->spr[SPR_IMISS];
+        cmp = &env->spr[SPR_ICMP];
+    } else {
+        if (excp == POWERPC_EXCP_DLTLB) {
+            es = "DL";
+        } else {
+            es = "DS";
+        }
+        en = 'D';
+        miss = &env->spr[SPR_DMISS];
+        cmp = &env->spr[SPR_DCMP];
+    }
+    qemu_log("6xx %sTLB miss: %cM " TARGET_FMT_lx " %cC "
+             TARGET_FMT_lx " H1 " TARGET_FMT_lx " H2 "
+             TARGET_FMT_lx " %08x\n", es, en, *miss, en, *cmp,
+             env->spr[SPR_HASH1], env->spr[SPR_HASH2],
+             env->error_code);
+#endif
+}
+
+
 static int powerpc_reset_wakeup(CPUState *cs, CPUPPCState *env, int excp,
                                 target_ulong *msr)
 {
@@ -777,34 +812,8 @@ static void powerpc_excp(PowerPCCPU *cpu, int excp)
             }
             /* fall through */
         case POWERPC_EXCP_7x5:
-#if defined(DEBUG_SOFTWARE_TLB)
-            if (qemu_log_enabled()) {
-                const char *es;
-                target_ulong *miss, *cmp;
-                int en;
-
-                if (excp == POWERPC_EXCP_IFTLB) {
-                    es = "I";
-                    en = 'I';
-                    miss = &env->spr[SPR_IMISS];
-                    cmp = &env->spr[SPR_ICMP];
-                } else {
-                    if (excp == POWERPC_EXCP_DLTLB) {
-                        es = "DL";
-                    } else {
-                        es = "DS";
-                    }
-                    en = 'D';
-                    miss = &env->spr[SPR_DMISS];
-                    cmp = &env->spr[SPR_DCMP];
-                }
-                qemu_log("6xx %sTLB miss: %cM " TARGET_FMT_lx " %cC "
-                         TARGET_FMT_lx " H1 " TARGET_FMT_lx " H2 "
-                         TARGET_FMT_lx " %08x\n", es, en, *miss, en, *cmp,
-                         env->spr[SPR_HASH1], env->spr[SPR_HASH2],
-                         env->error_code);
-            }
-#endif
+            ppc_excp_debug_sw_tlb(env, excp);
+
             msr |= env->crf[0] << 28;
             msr |= env->error_code; /* key, D/I, S/L bits */
             /* Set way using a LRU mechanism */
-- 
2.31.1



^ permalink raw reply related	[flat|nested] 40+ messages in thread

* [PULL 09/34] target/ppc: powerpc_excp: Keep 60x/7x5 soft MMU logs active
  2022-01-12 11:55 [PULL 00/34] ppc queue Cédric Le Goater
                   ` (7 preceding siblings ...)
  2022-01-12 11:55 ` [PULL 08/34] target/ppc: powerpc_excp: Extract software TLB logging into a function Cédric Le Goater
@ 2022-01-12 11:55 ` Cédric Le Goater
  2022-01-12 11:55 ` [PULL 10/34] target/ppc: powerpc_excp: Group unimplemented exceptions Cédric Le Goater
                   ` (25 subsequent siblings)
  34 siblings, 0 replies; 40+ messages in thread
From: Cédric Le Goater @ 2022-01-12 11:55 UTC (permalink / raw)
  To: qemu-ppc, qemu-devel
  Cc: Peter Maydell, David Gibson, Richard Henderson,
	Cédric Le Goater, Fabiano Rosas

From: Fabiano Rosas <farosas@linux.ibm.com>

Remove the compile time definition and make the logging be controlled
by the `-d mmu` option in the cmdline.

Signed-off-by: Fabiano Rosas <farosas@linux.ibm.com>
Reviewed-by: Cédric Le Goater <clg@kaod.org>
Reviewed-by: David Gibson <david@gibson.dropbear.id.au>
Message-Id: <20220107222601.4101511-3-farosas@linux.ibm.com>
Signed-off-by: Cédric Le Goater <clg@kaod.org>
---
 target/ppc/excp_helper.c | 6 +-----
 1 file changed, 1 insertion(+), 5 deletions(-)

diff --git a/target/ppc/excp_helper.c b/target/ppc/excp_helper.c
index 2c5d5470de59..a12ed14c30d1 100644
--- a/target/ppc/excp_helper.c
+++ b/target/ppc/excp_helper.c
@@ -30,8 +30,6 @@
 #include "exec/cpu_ldst.h"
 #endif
 
-/* #define DEBUG_SOFTWARE_TLB */
-
 /*****************************************************************************/
 /* Exception processing */
 #if !defined(CONFIG_USER_ONLY)
@@ -137,12 +135,11 @@ static void dump_hcall(CPUPPCState *env)
 
 static void ppc_excp_debug_sw_tlb(CPUPPCState *env, int excp)
 {
-#if defined(DEBUG_SOFTWARE_TLB)
     const char *es;
     target_ulong *miss, *cmp;
     int en;
 
-    if (!qemu_log_enabled()) {
+    if (!qemu_loglevel_mask(CPU_LOG_MMU)) {
         return;
     }
 
@@ -166,7 +163,6 @@ static void ppc_excp_debug_sw_tlb(CPUPPCState *env, int excp)
              TARGET_FMT_lx " %08x\n", es, en, *miss, en, *cmp,
              env->spr[SPR_HASH1], env->spr[SPR_HASH2],
              env->error_code);
-#endif
 }
 
 
-- 
2.31.1



^ permalink raw reply related	[flat|nested] 40+ messages in thread

* [PULL 10/34] target/ppc: powerpc_excp: Group unimplemented exceptions
  2022-01-12 11:55 [PULL 00/34] ppc queue Cédric Le Goater
                   ` (8 preceding siblings ...)
  2022-01-12 11:55 ` [PULL 09/34] target/ppc: powerpc_excp: Keep 60x/7x5 soft MMU logs active Cédric Le Goater
@ 2022-01-12 11:55 ` Cédric Le Goater
  2022-01-12 11:55 ` [PULL 11/34] target/ppc: Add HV support to ppc_interrupts_little_endian Cédric Le Goater
                   ` (24 subsequent siblings)
  34 siblings, 0 replies; 40+ messages in thread
From: Cédric Le Goater @ 2022-01-12 11:55 UTC (permalink / raw)
  To: qemu-ppc, qemu-devel
  Cc: Peter Maydell, David Gibson, Richard Henderson,
	Cédric Le Goater, Fabiano Rosas

From: Fabiano Rosas <farosas@linux.ibm.com>

Signed-off-by: Fabiano Rosas <farosas@linux.ibm.com>
Reviewed-by: Cédric Le Goater <clg@kaod.org>
Reviewed-by: David Gibson <david@gibson.dropbear.id.au>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-Id: <20220107222601.4101511-4-farosas@linux.ibm.com>
Signed-off-by: Cédric Le Goater <clg@kaod.org>
---
 target/ppc/excp_helper.c | 77 +++++-----------------------------------
 1 file changed, 8 insertions(+), 69 deletions(-)

diff --git a/target/ppc/excp_helper.c b/target/ppc/excp_helper.c
index a12ed14c30d1..a52340ac0a46 100644
--- a/target/ppc/excp_helper.c
+++ b/target/ppc/excp_helper.c
@@ -700,23 +700,6 @@ static void powerpc_excp(PowerPCCPU *cpu, int excp)
     case POWERPC_EXCP_SPEU:   /* SPE/embedded floating-point unavailable/VPU  */
         env->spr[SPR_BOOKE_ESR] = ESR_SPV;
         break;
-    case POWERPC_EXCP_EFPDI:     /* Embedded floating-point data interrupt   */
-        /* XXX: TODO */
-        cpu_abort(cs, "Embedded floating point data exception "
-                  "is not implemented yet !\n");
-        env->spr[SPR_BOOKE_ESR] = ESR_SPV;
-        break;
-    case POWERPC_EXCP_EFPRI:     /* Embedded floating-point round interrupt  */
-        /* XXX: TODO */
-        cpu_abort(cs, "Embedded floating point round exception "
-                  "is not implemented yet !\n");
-        env->spr[SPR_BOOKE_ESR] = ESR_SPV;
-        break;
-    case POWERPC_EXCP_EPERFM:    /* Embedded performance monitor interrupt   */
-        /* XXX: TODO */
-        cpu_abort(cs,
-                  "Performance counter exception is not implemented yet !\n");
-        break;
     case POWERPC_EXCP_DOORI:     /* Embedded doorbell interrupt              */
         break;
     case POWERPC_EXCP_DOORCI:    /* Embedded doorbell critical interrupt     */
@@ -781,19 +764,6 @@ static void powerpc_excp(PowerPCCPU *cpu, int excp)
     case POWERPC_EXCP_PIT:       /* Programmable interval timer interrupt    */
         trace_ppc_excp_print("PIT");
         break;
-    case POWERPC_EXCP_IO:        /* IO error exception                       */
-        /* XXX: TODO */
-        cpu_abort(cs, "601 IO error exception is not implemented yet !\n");
-        break;
-    case POWERPC_EXCP_RUNM:      /* Run mode exception                       */
-        /* XXX: TODO */
-        cpu_abort(cs, "601 run mode exception is not implemented yet !\n");
-        break;
-    case POWERPC_EXCP_EMUL:      /* Emulation trap exception                 */
-        /* XXX: TODO */
-        cpu_abort(cs, "602 emulation trap exception "
-                  "is not implemented yet !\n");
-        break;
     case POWERPC_EXCP_IFTLB:     /* Instruction fetch TLB error              */
     case POWERPC_EXCP_DLTLB:     /* Data load TLB miss                       */
     case POWERPC_EXCP_DSTLB:     /* Data store TLB miss                      */
@@ -820,56 +790,25 @@ static void powerpc_excp(PowerPCCPU *cpu, int excp)
             break;
         }
         break;
+    case POWERPC_EXCP_EFPDI:     /* Embedded floating-point data interrupt   */
+    case POWERPC_EXCP_EFPRI:     /* Embedded floating-point round interrupt  */
+    case POWERPC_EXCP_EPERFM:    /* Embedded performance monitor interrupt   */
+    case POWERPC_EXCP_IO:        /* IO error exception                       */
+    case POWERPC_EXCP_RUNM:      /* Run mode exception                       */
+    case POWERPC_EXCP_EMUL:      /* Emulation trap exception                 */
     case POWERPC_EXCP_FPA:       /* Floating-point assist exception          */
-        /* XXX: TODO */
-        cpu_abort(cs, "Floating point assist exception "
-                  "is not implemented yet !\n");
-        break;
     case POWERPC_EXCP_DABR:      /* Data address breakpoint                  */
-        /* XXX: TODO */
-        cpu_abort(cs, "DABR exception is not implemented yet !\n");
-        break;
     case POWERPC_EXCP_IABR:      /* Instruction address breakpoint           */
-        /* XXX: TODO */
-        cpu_abort(cs, "IABR exception is not implemented yet !\n");
-        break;
     case POWERPC_EXCP_SMI:       /* System management interrupt              */
-        /* XXX: TODO */
-        cpu_abort(cs, "SMI exception is not implemented yet !\n");
-        break;
     case POWERPC_EXCP_THERM:     /* Thermal interrupt                        */
-        /* XXX: TODO */
-        cpu_abort(cs, "Thermal management exception "
-                  "is not implemented yet !\n");
-        break;
     case POWERPC_EXCP_PERFM:     /* Embedded performance monitor interrupt   */
-        /* XXX: TODO */
-        cpu_abort(cs,
-                  "Performance counter exception is not implemented yet !\n");
-        break;
     case POWERPC_EXCP_VPUA:      /* Vector assist exception                  */
-        /* XXX: TODO */
-        cpu_abort(cs, "VPU assist exception is not implemented yet !\n");
-        break;
     case POWERPC_EXCP_SOFTP:     /* Soft patch exception                     */
-        /* XXX: TODO */
-        cpu_abort(cs,
-                  "970 soft-patch exception is not implemented yet !\n");
-        break;
     case POWERPC_EXCP_MAINT:     /* Maintenance exception                    */
-        /* XXX: TODO */
-        cpu_abort(cs,
-                  "970 maintenance exception is not implemented yet !\n");
-        break;
     case POWERPC_EXCP_MEXTBR:    /* Maskable external breakpoint             */
-        /* XXX: TODO */
-        cpu_abort(cs, "Maskable external exception "
-                  "is not implemented yet !\n");
-        break;
     case POWERPC_EXCP_NMEXTBR:   /* Non maskable external breakpoint         */
-        /* XXX: TODO */
-        cpu_abort(cs, "Non maskable external exception "
-                  "is not implemented yet !\n");
+        cpu_abort(cs, "%s exception not implemented\n",
+                  powerpc_excp_name(excp));
         break;
     default:
     excp_invalid:
-- 
2.31.1



^ permalink raw reply related	[flat|nested] 40+ messages in thread

* [PULL 11/34] target/ppc: Add HV support to ppc_interrupts_little_endian
  2022-01-12 11:55 [PULL 00/34] ppc queue Cédric Le Goater
                   ` (9 preceding siblings ...)
  2022-01-12 11:55 ` [PULL 10/34] target/ppc: powerpc_excp: Group unimplemented exceptions Cédric Le Goater
@ 2022-01-12 11:55 ` Cédric Le Goater
  2022-01-12 11:55 ` [PULL 12/34] target/ppc: Add MSR_ILE " Cédric Le Goater
                   ` (23 subsequent siblings)
  34 siblings, 0 replies; 40+ messages in thread
From: Cédric Le Goater @ 2022-01-12 11:55 UTC (permalink / raw)
  To: qemu-ppc, qemu-devel
  Cc: Peter Maydell, David Gibson, Richard Henderson,
	Cédric Le Goater, Fabiano Rosas

From: Fabiano Rosas <farosas@linux.ibm.com>

The ppc_interrupts_little_endian function could be used for interrupts
delivered in Hypervisor mode, so add support for powernv8 and powernv9
to it.

Also drop the comment because it is inaccurate, all CPUs that can run
little endian can have interrupts in little endian. The point is
whether they can take interrupts in an endianness different from
MSR_LE.

This change has no functional impact.

Signed-off-by: Fabiano Rosas <farosas@linux.ibm.com>
Reviewed-by: David Gibson <david@gibson.dropbear.id.au>
Message-Id: <20220107222601.4101511-5-farosas@linux.ibm.com>
Signed-off-by: Cédric Le Goater <clg@kaod.org>
---
 target/ppc/cpu.h         | 23 +++++++++++++++--------
 target/ppc/arch_dump.c   |  2 +-
 target/ppc/excp_helper.c |  2 +-
 3 files changed, 17 insertions(+), 10 deletions(-)

diff --git a/target/ppc/cpu.h b/target/ppc/cpu.h
index f20d4ffa6d32..a6fc857ad4c2 100644
--- a/target/ppc/cpu.h
+++ b/target/ppc/cpu.h
@@ -2728,20 +2728,27 @@ static inline bool ppc_has_spr(PowerPCCPU *cpu, int spr)
     return cpu->env.spr_cb[spr].name != NULL;
 }
 
-static inline bool ppc_interrupts_little_endian(PowerPCCPU *cpu)
+#if !defined(CONFIG_USER_ONLY)
+static inline bool ppc_interrupts_little_endian(PowerPCCPU *cpu, bool hv)
 {
     PowerPCCPUClass *pcc = POWERPC_CPU_GET_CLASS(cpu);
+    CPUPPCState *env = &cpu->env;
+    bool ile = false;
+
+    if (hv && env->has_hv_mode) {
+        if (is_isa300(pcc)) {
+            ile = !!(env->spr[SPR_HID0] & HID0_POWER9_HILE);
+        } else {
+            ile = !!(env->spr[SPR_HID0] & HID0_HILE);
+        }
 
-    /*
-     * Only models that have an LPCR and know about LPCR_ILE can do little
-     * endian.
-     */
-    if (pcc->lpcr_mask & LPCR_ILE) {
-        return !!(cpu->env.spr[SPR_LPCR] & LPCR_ILE);
+    } else if (pcc->lpcr_mask & LPCR_ILE) {
+        ile = !!(env->spr[SPR_LPCR] & LPCR_ILE);
     }
 
-    return false;
+    return ile;
 }
+#endif
 
 void dump_mmu(CPUPPCState *env);
 
diff --git a/target/ppc/arch_dump.c b/target/ppc/arch_dump.c
index bb392f6d8885..12cde198a315 100644
--- a/target/ppc/arch_dump.c
+++ b/target/ppc/arch_dump.c
@@ -237,7 +237,7 @@ int cpu_get_dump_info(ArchDumpInfo *info,
     info->d_machine = PPC_ELF_MACHINE;
     info->d_class = ELFCLASS;
 
-    if (ppc_interrupts_little_endian(cpu)) {
+    if (ppc_interrupts_little_endian(cpu, false)) {
         info->d_endian = ELFDATA2LSB;
     } else {
         info->d_endian = ELFDATA2MSB;
diff --git a/target/ppc/excp_helper.c b/target/ppc/excp_helper.c
index a52340ac0a46..3a430f23d6f3 100644
--- a/target/ppc/excp_helper.c
+++ b/target/ppc/excp_helper.c
@@ -1070,7 +1070,7 @@ void ppc_cpu_do_fwnmi_machine_check(CPUState *cs, target_ulong vector)
      */
     msr = (1ULL << MSR_ME);
     msr |= env->msr & (1ULL << MSR_SF);
-    if (ppc_interrupts_little_endian(cpu)) {
+    if (ppc_interrupts_little_endian(cpu, false)) {
         msr |= (1ULL << MSR_LE);
     }
 
-- 
2.31.1



^ permalink raw reply related	[flat|nested] 40+ messages in thread

* [PULL 12/34] target/ppc: Add MSR_ILE support to ppc_interrupts_little_endian
  2022-01-12 11:55 [PULL 00/34] ppc queue Cédric Le Goater
                   ` (10 preceding siblings ...)
  2022-01-12 11:55 ` [PULL 11/34] target/ppc: Add HV support to ppc_interrupts_little_endian Cédric Le Goater
@ 2022-01-12 11:55 ` Cédric Le Goater
  2022-01-12 11:55 ` [PULL 13/34] target/ppc: Use ppc_interrupts_little_endian in powerpc_excp Cédric Le Goater
                   ` (22 subsequent siblings)
  34 siblings, 0 replies; 40+ messages in thread
From: Cédric Le Goater @ 2022-01-12 11:55 UTC (permalink / raw)
  To: qemu-ppc, qemu-devel
  Cc: Peter Maydell, David Gibson, Richard Henderson,
	Cédric Le Goater, Fabiano Rosas

From: Fabiano Rosas <farosas@linux.ibm.com>

Some CPUs set ILE via an MSR bit. We can make
ppc_interrupts_little_endian handle that case as well. Now we have a
centralized way of determining the endianness of interrupts.

This change has no functional impact.

Signed-off-by: Fabiano Rosas <farosas@linux.ibm.com>
Reviewed-by: David Gibson <david@gibson.dropbear.id.au>
Message-Id: <20220107222601.4101511-6-farosas@linux.ibm.com>
Signed-off-by: Cédric Le Goater <clg@kaod.org>
---
 target/ppc/cpu.h | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/target/ppc/cpu.h b/target/ppc/cpu.h
index a6fc857ad4c2..f99cd0ea92fc 100644
--- a/target/ppc/cpu.h
+++ b/target/ppc/cpu.h
@@ -2733,7 +2733,7 @@ static inline bool ppc_interrupts_little_endian(PowerPCCPU *cpu, bool hv)
 {
     PowerPCCPUClass *pcc = POWERPC_CPU_GET_CLASS(cpu);
     CPUPPCState *env = &cpu->env;
-    bool ile = false;
+    bool ile;
 
     if (hv && env->has_hv_mode) {
         if (is_isa300(pcc)) {
@@ -2744,6 +2744,8 @@ static inline bool ppc_interrupts_little_endian(PowerPCCPU *cpu, bool hv)
 
     } else if (pcc->lpcr_mask & LPCR_ILE) {
         ile = !!(env->spr[SPR_LPCR] & LPCR_ILE);
+    } else {
+        ile = !!(msr_ile);
     }
 
     return ile;
-- 
2.31.1



^ permalink raw reply related	[flat|nested] 40+ messages in thread

* [PULL 13/34] target/ppc: Use ppc_interrupts_little_endian in powerpc_excp
  2022-01-12 11:55 [PULL 00/34] ppc queue Cédric Le Goater
                   ` (11 preceding siblings ...)
  2022-01-12 11:55 ` [PULL 12/34] target/ppc: Add MSR_ILE " Cédric Le Goater
@ 2022-01-12 11:55 ` Cédric Le Goater
  2022-01-12 11:55 ` [PULL 14/34] target/ppc: Introduce a wrapper for powerpc_excp Cédric Le Goater
                   ` (21 subsequent siblings)
  34 siblings, 0 replies; 40+ messages in thread
From: Cédric Le Goater @ 2022-01-12 11:55 UTC (permalink / raw)
  To: qemu-ppc, qemu-devel
  Cc: Peter Maydell, David Gibson, Richard Henderson,
	Cédric Le Goater, Fabiano Rosas

From: Fabiano Rosas <farosas@linux.ibm.com>

The ppc_interrupts_little_endian function is now suitable for
determining the endianness of interrupts for all CPUs.

Signed-off-by: Fabiano Rosas <farosas@linux.ibm.com>
Reviewed-by: David Gibson <david@gibson.dropbear.id.au>
Message-Id: <20220107222601.4101511-7-farosas@linux.ibm.com>
Signed-off-by: Cédric Le Goater <clg@kaod.org>
---
 target/ppc/excp_helper.c | 29 +----------------------------
 1 file changed, 1 insertion(+), 28 deletions(-)

diff --git a/target/ppc/excp_helper.c b/target/ppc/excp_helper.c
index 3a430f23d6f3..3b4123bc6590 100644
--- a/target/ppc/excp_helper.c
+++ b/target/ppc/excp_helper.c
@@ -832,36 +832,9 @@ static void powerpc_excp(PowerPCCPU *cpu, int excp)
      * Sort out endianness of interrupt, this differs depending on the
      * CPU, the HV mode, etc...
      */
-#ifdef TARGET_PPC64
-    if (excp_model == POWERPC_EXCP_POWER7) {
-        if (!(new_msr & MSR_HVB) && (env->spr[SPR_LPCR] & LPCR_ILE)) {
-            new_msr |= (target_ulong)1 << MSR_LE;
-        }
-    } else if (excp_model == POWERPC_EXCP_POWER8) {
-        if (new_msr & MSR_HVB) {
-            if (env->spr[SPR_HID0] & HID0_HILE) {
-                new_msr |= (target_ulong)1 << MSR_LE;
-            }
-        } else if (env->spr[SPR_LPCR] & LPCR_ILE) {
-            new_msr |= (target_ulong)1 << MSR_LE;
-        }
-    } else if (excp_model == POWERPC_EXCP_POWER9 ||
-               excp_model == POWERPC_EXCP_POWER10) {
-        if (new_msr & MSR_HVB) {
-            if (env->spr[SPR_HID0] & HID0_POWER9_HILE) {
-                new_msr |= (target_ulong)1 << MSR_LE;
-            }
-        } else if (env->spr[SPR_LPCR] & LPCR_ILE) {
-            new_msr |= (target_ulong)1 << MSR_LE;
-        }
-    } else if (msr_ile) {
-        new_msr |= (target_ulong)1 << MSR_LE;
-    }
-#else
-    if (msr_ile) {
+    if (ppc_interrupts_little_endian(cpu, !!(new_msr & MSR_HVB))) {
         new_msr |= (target_ulong)1 << MSR_LE;
     }
-#endif
 
 #if defined(TARGET_PPC64)
     if (excp_model == POWERPC_EXCP_BOOKE) {
-- 
2.31.1



^ permalink raw reply related	[flat|nested] 40+ messages in thread

* [PULL 14/34] target/ppc: Introduce a wrapper for powerpc_excp
  2022-01-12 11:55 [PULL 00/34] ppc queue Cédric Le Goater
                   ` (12 preceding siblings ...)
  2022-01-12 11:55 ` [PULL 13/34] target/ppc: Use ppc_interrupts_little_endian in powerpc_excp Cédric Le Goater
@ 2022-01-12 11:55 ` Cédric Le Goater
  2022-01-12 11:55 ` [PULL 15/34] target/ppc: Set the correct endianness for powernv memory dumps Cédric Le Goater
                   ` (20 subsequent siblings)
  34 siblings, 0 replies; 40+ messages in thread
From: Cédric Le Goater @ 2022-01-12 11:55 UTC (permalink / raw)
  To: qemu-ppc, qemu-devel
  Cc: Peter Maydell, David Gibson, Richard Henderson,
	Cédric Le Goater, Fabiano Rosas

From: Fabiano Rosas <farosas@linux.ibm.com>

Next patches will split powerpc_excp in multiple family specific
handlers. This patch adds a wrapper to make the transition clearer.

Signed-off-by: Fabiano Rosas <farosas@linux.ibm.com>
Reviewed-by: David Gibson <david@gibson.dropbear.id.au>
Message-Id: <20220107222601.4101511-8-farosas@linux.ibm.com>
Signed-off-by: Cédric Le Goater <clg@kaod.org>
---
 target/ppc/excp_helper.c | 12 +++++++++++-
 1 file changed, 11 insertions(+), 1 deletion(-)

diff --git a/target/ppc/excp_helper.c b/target/ppc/excp_helper.c
index 3b4123bc6590..bc646c67a0f5 100644
--- a/target/ppc/excp_helper.c
+++ b/target/ppc/excp_helper.c
@@ -396,7 +396,7 @@ static void powerpc_set_excp_state(PowerPCCPU *cpu,
  * Note that this function should be greatly optimized when called
  * with a constant excp, from ppc_hw_interrupt
  */
-static void powerpc_excp(PowerPCCPU *cpu, int excp)
+static inline void powerpc_excp_legacy(PowerPCCPU *cpu, int excp)
 {
     CPUState *cs = CPU(cpu);
     CPUPPCState *env = &cpu->env;
@@ -867,6 +867,16 @@ static void powerpc_excp(PowerPCCPU *cpu, int excp)
     powerpc_set_excp_state(cpu, vector, new_msr);
 }
 
+static void powerpc_excp(PowerPCCPU *cpu, int excp)
+{
+    CPUPPCState *env = &cpu->env;
+
+    switch (env->excp_model) {
+    default:
+        powerpc_excp_legacy(cpu, excp);
+    }
+}
+
 void ppc_cpu_do_interrupt(CPUState *cs)
 {
     PowerPCCPU *cpu = POWERPC_CPU(cs);
-- 
2.31.1



^ permalink raw reply related	[flat|nested] 40+ messages in thread

* [PULL 15/34] target/ppc: Set the correct endianness for powernv memory dumps
  2022-01-12 11:55 [PULL 00/34] ppc queue Cédric Le Goater
                   ` (13 preceding siblings ...)
  2022-01-12 11:55 ` [PULL 14/34] target/ppc: Introduce a wrapper for powerpc_excp Cédric Le Goater
@ 2022-01-12 11:55 ` Cédric Le Goater
  2022-01-12 11:55 ` [PULL 16/34] pnv_phb3.c: add unique chassis and slot for pnv_phb3_root_port Cédric Le Goater
                   ` (19 subsequent siblings)
  34 siblings, 0 replies; 40+ messages in thread
From: Cédric Le Goater @ 2022-01-12 11:55 UTC (permalink / raw)
  To: qemu-ppc, qemu-devel
  Cc: Peter Maydell, David Gibson, Richard Henderson,
	Cédric Le Goater, Fabiano Rosas

From: Fabiano Rosas <farosas@linux.ibm.com>

We use the endianness of interrupts to determine which endianness to
use for the guest kernel memory dump. For machines that support HILE
(powernv8 and up) we have been always generating big endian dump
files.

This patch uses the HILE support recently added to
ppc_interrupts_little_endian to fix the endianness of the dumps for
powernv machines.

Here are two dumps created at different moments:

$ file skiboot.dump
skiboot.dump: ELF 64-bit MSB core file, 64-bit PowerPC ...

$ file kernel.dump
kernel.dump: ELF 64-bit LSB core file, 64-bit PowerPC ...

Suggested-by: David Gibson <david@gibson.dropbear.id.au>
Signed-off-by: Fabiano Rosas <farosas@linux.ibm.com>
Reviewed-by: David Gibson <david@gibson.dropbear.id.au>
Message-Id: <20220107222601.4101511-9-farosas@linux.ibm.com>
Signed-off-by: Cédric Le Goater <clg@kaod.org>
---
 target/ppc/arch_dump.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/target/ppc/arch_dump.c b/target/ppc/arch_dump.c
index 12cde198a315..993740897d83 100644
--- a/target/ppc/arch_dump.c
+++ b/target/ppc/arch_dump.c
@@ -237,7 +237,7 @@ int cpu_get_dump_info(ArchDumpInfo *info,
     info->d_machine = PPC_ELF_MACHINE;
     info->d_class = ELFCLASS;
 
-    if (ppc_interrupts_little_endian(cpu, false)) {
+    if (ppc_interrupts_little_endian(cpu, cpu->env.has_hv_mode)) {
         info->d_endian = ELFDATA2LSB;
     } else {
         info->d_endian = ELFDATA2MSB;
-- 
2.31.1



^ permalink raw reply related	[flat|nested] 40+ messages in thread

* [PULL 16/34] pnv_phb3.c: add unique chassis and slot for pnv_phb3_root_port
  2022-01-12 11:55 [PULL 00/34] ppc queue Cédric Le Goater
                   ` (14 preceding siblings ...)
  2022-01-12 11:55 ` [PULL 15/34] target/ppc: Set the correct endianness for powernv memory dumps Cédric Le Goater
@ 2022-01-12 11:55 ` Cédric Le Goater
  2022-01-12 11:55 ` [PULL 17/34] pnv_phb4.c: add unique chassis and slot for pnv_phb4_root_port Cédric Le Goater
                   ` (18 subsequent siblings)
  34 siblings, 0 replies; 40+ messages in thread
From: Cédric Le Goater @ 2022-01-12 11:55 UTC (permalink / raw)
  To: qemu-ppc, qemu-devel
  Cc: Peter Maydell, Daniel Henrique Barboza, Richard Henderson,
	Cédric Le Goater

From: Daniel Henrique Barboza <danielhb413@gmail.com>

When creating a pnv_phb3_root_port using the command line, the first
root port is created successfully, but the second fails with the
following error:

qemu-system-ppc64: -device pnv-phb3-root-port,bus=phb3-root.0,id=pcie.3:
Can't add chassis slot, error -16

This error comes from the realize() function of its parent type,
rp_realize() from TYPE_PCIE_ROOT_PORT. pcie_chassis_add_slot() fails
with -EBUSY if there's an existing PCIESlot that has the same
chassis/slot value, regardless of being in a different bus.

One way to prevent this error is simply set chassis and slot values in
the command line. However, since phb3 root buses only supports a single
root port, we can just get an unique chassis/slot value by checking
which root bus the pnv_phb3_root_port is going to be attached, get the
equivalent phb3 device and use its chip-id and index values, which are
guaranteed to be unique.

Signed-off-by: Daniel Henrique Barboza <danielhb413@gmail.com>
Message-Id: <20220105212338.49899-2-danielhb413@gmail.com>
Signed-off-by: Cédric Le Goater <clg@kaod.org>
---
 hw/pci-host/pnv_phb3.c | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

diff --git a/hw/pci-host/pnv_phb3.c b/hw/pci-host/pnv_phb3.c
index c78084cce795..3467bbb5d9d8 100644
--- a/hw/pci-host/pnv_phb3.c
+++ b/hw/pci-host/pnv_phb3.c
@@ -1142,8 +1142,24 @@ static const TypeInfo pnv_phb3_root_bus_info = {
 static void pnv_phb3_root_port_realize(DeviceState *dev, Error **errp)
 {
     PCIERootPortClass *rpc = PCIE_ROOT_PORT_GET_CLASS(dev);
+    PCIDevice *pci = PCI_DEVICE(dev);
+    PCIBus *bus = pci_get_bus(pci);
+    PnvPHB3 *phb = NULL;
     Error *local_err = NULL;
 
+    phb = (PnvPHB3 *) object_dynamic_cast(OBJECT(bus->qbus.parent),
+                                          TYPE_PNV_PHB3);
+
+    if (!phb) {
+        error_setg(errp,
+"pnv_phb3_root_port devices must be connected to pnv-phb3 buses");
+        return;
+    }
+
+    /* Set unique chassis/slot values for the root port */
+    qdev_prop_set_uint8(&pci->qdev, "chassis", phb->chip_id);
+    qdev_prop_set_uint16(&pci->qdev, "slot", phb->phb_id);
+
     rpc->parent_realize(dev, &local_err);
     if (local_err) {
         error_propagate(errp, local_err);
-- 
2.31.1



^ permalink raw reply related	[flat|nested] 40+ messages in thread

* [PULL 17/34] pnv_phb4.c: add unique chassis and slot for pnv_phb4_root_port
  2022-01-12 11:55 [PULL 00/34] ppc queue Cédric Le Goater
                   ` (15 preceding siblings ...)
  2022-01-12 11:55 ` [PULL 16/34] pnv_phb3.c: add unique chassis and slot for pnv_phb3_root_port Cédric Le Goater
@ 2022-01-12 11:55 ` Cédric Le Goater
  2022-01-12 11:55 ` [PULL 18/34] ppc/pnv: Attach PHB3 root port device when defaults are enabled Cédric Le Goater
                   ` (17 subsequent siblings)
  34 siblings, 0 replies; 40+ messages in thread
From: Cédric Le Goater @ 2022-01-12 11:55 UTC (permalink / raw)
  To: qemu-ppc, qemu-devel
  Cc: Peter Maydell, Daniel Henrique Barboza, Richard Henderson,
	Cédric Le Goater

From: Daniel Henrique Barboza <danielhb413@gmail.com>

A similar situation as described previously with pnv_phb3_root_port
devices also happens with pnv_phb4_root_ports.

The solution is the same: assign an unique chassis/slot combo for them.

Signed-off-by: Daniel Henrique Barboza <danielhb413@gmail.com>
Message-Id: <20220105212338.49899-3-danielhb413@gmail.com>
Signed-off-by: Cédric Le Goater <clg@kaod.org>
---
 hw/pci-host/pnv_phb4.c | 15 +++++++++++++++
 1 file changed, 15 insertions(+)

diff --git a/hw/pci-host/pnv_phb4.c b/hw/pci-host/pnv_phb4.c
index 5ba26e250a1f..836b0c156cc8 100644
--- a/hw/pci-host/pnv_phb4.c
+++ b/hw/pci-host/pnv_phb4.c
@@ -1338,8 +1338,23 @@ static void pnv_phb4_root_port_reset(DeviceState *dev)
 static void pnv_phb4_root_port_realize(DeviceState *dev, Error **errp)
 {
     PCIERootPortClass *rpc = PCIE_ROOT_PORT_GET_CLASS(dev);
+    PCIDevice *pci = PCI_DEVICE(dev);
+    PCIBus *bus = pci_get_bus(pci);
+    PnvPHB4 *phb = NULL;
     Error *local_err = NULL;
 
+    phb = (PnvPHB4 *) object_dynamic_cast(OBJECT(bus->qbus.parent),
+                                          TYPE_PNV_PHB4);
+
+    if (!phb) {
+        error_setg(errp, "%s must be connected to pnv-phb4 buses", dev->id);
+        return;
+    }
+
+    /* Set unique chassis/slot values for the root port */
+    qdev_prop_set_uint8(&pci->qdev, "chassis", phb->chip_id);
+    qdev_prop_set_uint16(&pci->qdev, "slot", phb->phb_id);
+
     rpc->parent_realize(dev, &local_err);
     if (local_err) {
         error_propagate(errp, local_err);
-- 
2.31.1



^ permalink raw reply related	[flat|nested] 40+ messages in thread

* [PULL 18/34] ppc/pnv: Attach PHB3 root port device when defaults are enabled
  2022-01-12 11:55 [PULL 00/34] ppc queue Cédric Le Goater
                   ` (16 preceding siblings ...)
  2022-01-12 11:55 ` [PULL 17/34] pnv_phb4.c: add unique chassis and slot for pnv_phb4_root_port Cédric Le Goater
@ 2022-01-12 11:55 ` Cédric Le Goater
  2022-01-12 11:55 ` [PULL 19/34] pnv_phb4.c: make pnv-phb4-root-port user creatable Cédric Le Goater
                   ` (16 subsequent siblings)
  34 siblings, 0 replies; 40+ messages in thread
From: Cédric Le Goater @ 2022-01-12 11:55 UTC (permalink / raw)
  To: qemu-ppc, qemu-devel
  Cc: Peter Maydell, Daniel Henrique Barboza, Richard Henderson,
	Cédric Le Goater

This cleanups the PHB3 model a bit more since the root port is an
independent device and it will ease our task when adding user created
PHB3s.

pnv_phb_attach_root_port() is made public in pnv.c so it can be reused
with the pnv_phb4 root port later.

Signed-off-by: Cédric Le Goater <clg@kaod.org>
Signed-off-by: Daniel Henrique Barboza <danielhb413@gmail.com>
Message-Id: <20220105212338.49899-4-danielhb413@gmail.com>
Signed-off-by: Cédric Le Goater <clg@kaod.org>
---
 include/hw/pci-host/pnv_phb3.h |  2 --
 include/hw/ppc/pnv.h           |  1 +
 hw/pci-host/pnv_phb3.c         | 15 ++++++---------
 hw/ppc/pnv.c                   |  8 ++++++++
 4 files changed, 15 insertions(+), 11 deletions(-)

diff --git a/include/hw/pci-host/pnv_phb3.h b/include/hw/pci-host/pnv_phb3.h
index e9c13e6bd821..2e423c3890bc 100644
--- a/include/hw/pci-host/pnv_phb3.h
+++ b/include/hw/pci-host/pnv_phb3.h
@@ -155,8 +155,6 @@ struct PnvPHB3 {
 
     PnvPBCQState pbcq;
 
-    PnvPHB3RootPort root;
-
     QLIST_HEAD(, PnvPhb3DMASpace) dma_spaces;
 
     PnvChip *chip;
diff --git a/include/hw/ppc/pnv.h b/include/hw/ppc/pnv.h
index c781525277db..c726288e5e5a 100644
--- a/include/hw/ppc/pnv.h
+++ b/include/hw/ppc/pnv.h
@@ -177,6 +177,7 @@ DECLARE_INSTANCE_CHECKER(PnvChip, PNV_CHIP_POWER10,
                          TYPE_PNV_CHIP_POWER10)
 
 PowerPCCPU *pnv_chip_find_cpu(PnvChip *chip, uint32_t pir);
+void pnv_phb_attach_root_port(PCIHostState *pci, const char *name);
 
 #define TYPE_PNV_MACHINE       MACHINE_TYPE_NAME("powernv")
 typedef struct PnvMachineClass PnvMachineClass;
diff --git a/hw/pci-host/pnv_phb3.c b/hw/pci-host/pnv_phb3.c
index 3467bbb5d9d8..fdc8d0b437e4 100644
--- a/hw/pci-host/pnv_phb3.c
+++ b/hw/pci-host/pnv_phb3.c
@@ -19,6 +19,7 @@
 #include "hw/irq.h"
 #include "hw/qdev-properties.h"
 #include "qom/object.h"
+#include "sysemu/sysemu.h"
 
 #define phb3_error(phb, fmt, ...)                                       \
     qemu_log_mask(LOG_GUEST_ERROR, "phb3[%d:%d]: " fmt "\n",            \
@@ -981,10 +982,6 @@ static void pnv_phb3_instance_init(Object *obj)
     /* Power Bus Common Queue */
     object_initialize_child(obj, "pbcq", &phb->pbcq, TYPE_PNV_PBCQ);
 
-    /* Root Port */
-    object_initialize_child(obj, "root", &phb->root, TYPE_PNV_PHB3_ROOT_PORT);
-    qdev_prop_set_int32(DEVICE(&phb->root), "addr", PCI_DEVFN(0, 0));
-    qdev_prop_set_bit(DEVICE(&phb->root), "multifunction", false);
 }
 
 static void pnv_phb3_realize(DeviceState *dev, Error **errp)
@@ -1053,10 +1050,10 @@ static void pnv_phb3_realize(DeviceState *dev, Error **errp)
 
     pci_setup_iommu(pci->bus, pnv_phb3_dma_iommu, phb);
 
-    /* Add a single Root port */
-    qdev_prop_set_uint8(DEVICE(&phb->root), "chassis", phb->chip_id);
-    qdev_prop_set_uint16(DEVICE(&phb->root), "slot", phb->phb_id);
-    qdev_realize(DEVICE(&phb->root), BUS(pci->bus), &error_fatal);
+    if (defaults_enabled()) {
+        pnv_phb_attach_root_port(PCI_HOST_BRIDGE(phb),
+                                 TYPE_PNV_PHB3_ROOT_PORT);
+    }
 }
 
 void pnv_phb3_update_regions(PnvPHB3 *phb)
@@ -1177,7 +1174,7 @@ static void pnv_phb3_root_port_class_init(ObjectClass *klass, void *data)
 
     device_class_set_parent_realize(dc, pnv_phb3_root_port_realize,
                                     &rpc->parent_realize);
-    dc->user_creatable = false;
+    dc->user_creatable = true;
 
     k->vendor_id = PCI_VENDOR_ID_IBM;
     k->device_id = 0x03dc;
diff --git a/hw/ppc/pnv.c b/hw/ppc/pnv.c
index 9de8b8353014..3a263f631a27 100644
--- a/hw/ppc/pnv.c
+++ b/hw/ppc/pnv.c
@@ -1156,6 +1156,14 @@ static void pnv_chip_icp_realize(Pnv8Chip *chip8, Error **errp)
     }
 }
 
+/* Attach a root port device */
+void pnv_phb_attach_root_port(PCIHostState *pci, const char *name)
+{
+    PCIDevice *root = pci_new(PCI_DEVFN(0, 0), name);
+
+    pci_realize_and_unref(root, pci->bus, &error_fatal);
+}
+
 static void pnv_chip_power8_realize(DeviceState *dev, Error **errp)
 {
     PnvChipClass *pcc = PNV_CHIP_GET_CLASS(dev);
-- 
2.31.1



^ permalink raw reply related	[flat|nested] 40+ messages in thread

* [PULL 19/34] pnv_phb4.c: make pnv-phb4-root-port user creatable
  2022-01-12 11:55 [PULL 00/34] ppc queue Cédric Le Goater
                   ` (17 preceding siblings ...)
  2022-01-12 11:55 ` [PULL 18/34] ppc/pnv: Attach PHB3 root port device when defaults are enabled Cédric Le Goater
@ 2022-01-12 11:55 ` Cédric Le Goater
  2022-01-12 11:55 ` [PULL 20/34] pnv_phb4.c: check if root port exists in rc_config functions Cédric Le Goater
                   ` (15 subsequent siblings)
  34 siblings, 0 replies; 40+ messages in thread
From: Cédric Le Goater @ 2022-01-12 11:55 UTC (permalink / raw)
  To: qemu-ppc, qemu-devel
  Cc: Peter Maydell, Daniel Henrique Barboza, Richard Henderson,
	Cédric Le Goater

From: Daniel Henrique Barboza <danielhb413@gmail.com>

We want to create only the absolutely minimal amount of devices when
running with -nodefaults. The root port is something that the machine
can boot up without. But, to do that, we need to provide a way for the
user to add them by hand.

This patch makes pnv-phb4-root-port user creatable and then uses the
pnv_phb_attach_root_port() helper to add a pnv_phb4_root_port only when
running with default settings.

Signed-off-by: Daniel Henrique Barboza <danielhb413@gmail.com>
Message-Id: <20220105212338.49899-5-danielhb413@gmail.com>
Signed-off-by: Cédric Le Goater <clg@kaod.org>
---
 include/hw/pci-host/pnv_phb4.h |  2 --
 hw/pci-host/pnv_phb4.c         | 18 +++++++-----------
 2 files changed, 7 insertions(+), 13 deletions(-)

diff --git a/include/hw/pci-host/pnv_phb4.h b/include/hw/pci-host/pnv_phb4.h
index 4a19338db35e..ea63df967678 100644
--- a/include/hw/pci-host/pnv_phb4.h
+++ b/include/hw/pci-host/pnv_phb4.h
@@ -78,8 +78,6 @@ OBJECT_DECLARE_SIMPLE_TYPE(PnvPHB4, PNV_PHB4)
 struct PnvPHB4 {
     PCIExpressHost parent_obj;
 
-    PnvPHB4RootPort root;
-
     uint32_t chip_id;
     uint32_t phb_id;
 
diff --git a/hw/pci-host/pnv_phb4.c b/hw/pci-host/pnv_phb4.c
index 836b0c156cc8..14827f846434 100644
--- a/hw/pci-host/pnv_phb4.c
+++ b/hw/pci-host/pnv_phb4.c
@@ -22,6 +22,7 @@
 #include "hw/irq.h"
 #include "hw/qdev-properties.h"
 #include "qom/object.h"
+#include "sysemu/sysemu.h"
 #include "trace.h"
 
 #define phb_error(phb, fmt, ...)                                        \
@@ -1159,12 +1160,6 @@ static void pnv_phb4_instance_init(Object *obj)
 
     /* XIVE interrupt source object */
     object_initialize_child(obj, "source", &phb->xsrc, TYPE_XIVE_SOURCE);
-
-    /* Root Port */
-    object_initialize_child(obj, "root", &phb->root, TYPE_PNV_PHB4_ROOT_PORT);
-
-    qdev_prop_set_int32(DEVICE(&phb->root), "addr", PCI_DEVFN(0, 0));
-    qdev_prop_set_bit(DEVICE(&phb->root), "multifunction", false);
 }
 
 static void pnv_phb4_realize(DeviceState *dev, Error **errp)
@@ -1208,10 +1203,11 @@ static void pnv_phb4_realize(DeviceState *dev, Error **errp)
     pci_setup_iommu(pci->bus, pnv_phb4_dma_iommu, phb);
     pci->bus->flags |= PCI_BUS_EXTENDED_CONFIG_SPACE;
 
-    /* Add a single Root port */
-    qdev_prop_set_uint8(DEVICE(&phb->root), "chassis", phb->chip_id);
-    qdev_prop_set_uint16(DEVICE(&phb->root), "slot", phb->phb_id);
-    qdev_realize(DEVICE(&phb->root), BUS(pci->bus), &error_fatal);
+    /* Add a single Root port if running with defaults */
+    if (defaults_enabled()) {
+        pnv_phb_attach_root_port(PCI_HOST_BRIDGE(phb),
+                                 TYPE_PNV_PHB4_ROOT_PORT);
+    }
 
     /* Setup XIVE Source */
     if (phb->big_phb) {
@@ -1369,7 +1365,7 @@ static void pnv_phb4_root_port_class_init(ObjectClass *klass, void *data)
     PCIERootPortClass *rpc = PCIE_ROOT_PORT_CLASS(klass);
 
     dc->desc     = "IBM PHB4 PCIE Root Port";
-    dc->user_creatable = false;
+    dc->user_creatable = true;
 
     device_class_set_parent_realize(dc, pnv_phb4_root_port_realize,
                                     &rpc->parent_realize);
-- 
2.31.1



^ permalink raw reply related	[flat|nested] 40+ messages in thread

* [PULL 20/34] pnv_phb4.c: check if root port exists in rc_config functions
  2022-01-12 11:55 [PULL 00/34] ppc queue Cédric Le Goater
                   ` (18 preceding siblings ...)
  2022-01-12 11:55 ` [PULL 19/34] pnv_phb4.c: make pnv-phb4-root-port user creatable Cédric Le Goater
@ 2022-01-12 11:55 ` Cédric Le Goater
  2022-01-12 11:55 ` [PULL 21/34] ppc/pnv: Introduce support for user created PHB3 devices Cédric Le Goater
                   ` (14 subsequent siblings)
  34 siblings, 0 replies; 40+ messages in thread
From: Cédric Le Goater @ 2022-01-12 11:55 UTC (permalink / raw)
  To: qemu-ppc, qemu-devel
  Cc: Peter Maydell, Daniel Henrique Barboza, Richard Henderson,
	Cédric Le Goater

From: Daniel Henrique Barboza <danielhb413@gmail.com>

pnv_phb4_rc_config_read() and pnv_phb4_rc_config_write() are asserting
the existence of the root port. The root port is now optional, and there
will be cases where a pnv-phb4 device won't have a root port attached.

Instead of asserting, check if the root port exists before read/writing
into it.

Signed-off-by: Daniel Henrique Barboza <danielhb413@gmail.com>
Message-Id: <20220105212338.49899-6-danielhb413@gmail.com>
Signed-off-by: Cédric Le Goater <clg@kaod.org>
---
 hw/pci-host/pnv_phb4.c | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/hw/pci-host/pnv_phb4.c b/hw/pci-host/pnv_phb4.c
index 14827f846434..83dedc878a57 100644
--- a/hw/pci-host/pnv_phb4.c
+++ b/hw/pci-host/pnv_phb4.c
@@ -152,7 +152,10 @@ static void pnv_phb4_rc_config_write(PnvPHB4 *phb, unsigned off,
     }
 
     pdev = pci_find_device(pci->bus, 0, 0);
-    assert(pdev);
+    if (!pdev) {
+        phb_error(phb, "rc_config_write device not found\n");
+        return;
+    }
 
     pci_host_config_write_common(pdev, off, PHB_RC_CONFIG_SIZE,
                                  bswap32(val), 4);
@@ -171,7 +174,10 @@ static uint64_t pnv_phb4_rc_config_read(PnvPHB4 *phb, unsigned off,
     }
 
     pdev = pci_find_device(pci->bus, 0, 0);
-    assert(pdev);
+    if (!pdev) {
+        phb_error(phb, "rc_config_read device not found\n");
+        return ~0ull;
+    }
 
     val = pci_host_config_read_common(pdev, off, PHB_RC_CONFIG_SIZE, 4);
     return bswap32(val);
-- 
2.31.1



^ permalink raw reply related	[flat|nested] 40+ messages in thread

* [PULL 21/34] ppc/pnv: Introduce support for user created PHB3 devices
  2022-01-12 11:55 [PULL 00/34] ppc queue Cédric Le Goater
                   ` (19 preceding siblings ...)
  2022-01-12 11:55 ` [PULL 20/34] pnv_phb4.c: check if root port exists in rc_config functions Cédric Le Goater
@ 2022-01-12 11:55 ` Cédric Le Goater
  2022-01-12 11:55 ` [PULL 22/34] ppc/pnv: Reparent user created PHB3 devices to the PnvChip Cédric Le Goater
                   ` (13 subsequent siblings)
  34 siblings, 0 replies; 40+ messages in thread
From: Cédric Le Goater @ 2022-01-12 11:55 UTC (permalink / raw)
  To: qemu-ppc, qemu-devel
  Cc: Peter Maydell, Daniel Henrique Barboza, Richard Henderson,
	Cédric Le Goater

PHB3 devices and PCI devices can now be added to the powernv8 machine
using :

  -device pnv-phb3,chip-id=0,index=1 \
  -device nec-usb-xhci,bus=pci.1,addr=0x0

The 'index' property identifies the PHB3 in the chip. In case of user
created devices, a lookup on 'chip-id' is required to assign the
owning chip.

Reviewed-by: Daniel Henrique Barboza <danielhb413@gmail.com>
Signed-off-by: Cédric Le Goater <clg@kaod.org>
Message-Id: <20220105212338.49899-7-danielhb413@gmail.com>
Signed-off-by: Cédric Le Goater <clg@kaod.org>
---
 include/hw/ppc/pnv.h   |  2 ++
 hw/pci-host/pnv_phb3.c | 11 ++++++++++-
 hw/ppc/pnv.c           | 23 ++++++++++++++++++-----
 3 files changed, 30 insertions(+), 6 deletions(-)

diff --git a/include/hw/ppc/pnv.h b/include/hw/ppc/pnv.h
index c726288e5e5a..64bab7112be3 100644
--- a/include/hw/ppc/pnv.h
+++ b/include/hw/ppc/pnv.h
@@ -218,6 +218,8 @@ struct PnvMachineState {
     hwaddr       fw_load_addr;
 };
 
+PnvChip *pnv_get_chip(PnvMachineState *pnv, uint32_t chip_id);
+
 #define PNV_FDT_ADDR          0x01000000
 #define PNV_TIMEBASE_FREQ     512000000ULL
 
diff --git a/hw/pci-host/pnv_phb3.c b/hw/pci-host/pnv_phb3.c
index fdc8d0b437e4..1ebe43df5dd1 100644
--- a/hw/pci-host/pnv_phb3.c
+++ b/hw/pci-host/pnv_phb3.c
@@ -991,6 +991,15 @@ static void pnv_phb3_realize(DeviceState *dev, Error **errp)
     PnvMachineState *pnv = PNV_MACHINE(qdev_get_machine());
     int i;
 
+    /* User created devices */
+    if (!phb->chip) {
+        phb->chip = pnv_get_chip(pnv, phb->chip_id);
+        if (!phb->chip) {
+            error_setg(errp, "invalid chip id: %d", phb->chip_id);
+            return;
+        }
+    }
+
     if (phb->phb_id >= PNV_CHIP_GET_CLASS(phb->chip)->num_phbs) {
         error_setg(errp, "invalid PHB index: %d", phb->phb_id);
         return;
@@ -1104,7 +1113,7 @@ static void pnv_phb3_class_init(ObjectClass *klass, void *data)
     dc->realize = pnv_phb3_realize;
     device_class_set_props(dc, pnv_phb3_properties);
     set_bit(DEVICE_CATEGORY_BRIDGE, dc->categories);
-    dc->user_creatable = false;
+    dc->user_creatable = true;
 }
 
 static const TypeInfo pnv_phb3_type_info = {
diff --git a/hw/ppc/pnv.c b/hw/ppc/pnv.c
index 3a263f631a27..ad02d56aa75e 100644
--- a/hw/ppc/pnv.c
+++ b/hw/ppc/pnv.c
@@ -1117,14 +1117,14 @@ static void pnv_chip_power8_instance_init(Object *obj)
 
     object_initialize_child(obj, "homer", &chip8->homer, TYPE_PNV8_HOMER);
 
-    for (i = 0; i < pcc->num_phbs; i++) {
+    if (defaults_enabled()) {
+        chip->num_phbs = pcc->num_phbs;
+    }
+
+    for (i = 0; i < chip->num_phbs; i++) {
         object_initialize_child(obj, "phb[*]", &chip8->phbs[i], TYPE_PNV_PHB3);
     }
 
-    /*
-     * Number of PHBs is the chip default
-     */
-    chip->num_phbs = pcc->num_phbs;
 }
 
 static void pnv_chip_icp_realize(Pnv8Chip *chip8, Error **errp)
@@ -1814,6 +1814,19 @@ static ICSState *pnv_ics_get(XICSFabric *xi, int irq)
     return NULL;
 }
 
+PnvChip *pnv_get_chip(PnvMachineState *pnv, uint32_t chip_id)
+{
+    int i;
+
+    for (i = 0; i < pnv->num_chips; i++) {
+        PnvChip *chip = pnv->chips[i];
+        if (chip->chip_id == chip_id) {
+            return chip;
+        }
+    }
+    return NULL;
+}
+
 static int pnv_ics_resend_child(Object *child, void *opaque)
 {
     PnvPHB3 *phb3 = (PnvPHB3 *) object_dynamic_cast(child, TYPE_PNV_PHB3);
-- 
2.31.1



^ permalink raw reply related	[flat|nested] 40+ messages in thread

* [PULL 22/34] ppc/pnv: Reparent user created PHB3 devices to the PnvChip
  2022-01-12 11:55 [PULL 00/34] ppc queue Cédric Le Goater
                   ` (20 preceding siblings ...)
  2022-01-12 11:55 ` [PULL 21/34] ppc/pnv: Introduce support for user created PHB3 devices Cédric Le Goater
@ 2022-01-12 11:55 ` Cédric Le Goater
  2022-01-12 11:55 ` [PULL 23/34] ppc/pnv: Complete user created PHB3 devices Cédric Le Goater
                   ` (12 subsequent siblings)
  34 siblings, 0 replies; 40+ messages in thread
From: Cédric Le Goater @ 2022-01-12 11:55 UTC (permalink / raw)
  To: qemu-ppc, qemu-devel
  Cc: Frederic Barrat, Peter Maydell, Daniel Henrique Barboza,
	Richard Henderson, Cédric Le Goater

The powernv machine uses the object hierarchy to populate the device
tree and each device should be parented to the chip it belongs to.
This is not the case for user created devices which are parented to
the container "/unattached".

Make sure a PHB3 device is parented to its chip by reparenting the
object if necessary.

Reviewed-by: Daniel Henrique Barboza <danielhb413@gmail.com>
Reviewed-by: Frederic Barrat <fbarrat@linux.ibm.com>
Signed-off-by: Cédric Le Goater <clg@kaod.org>
Message-Id: <20220105212338.49899-8-danielhb413@gmail.com>
Signed-off-by: Cédric Le Goater <clg@kaod.org>
---
 include/hw/ppc/pnv.h   |  1 +
 hw/pci-host/pnv_phb3.c |  6 ++++++
 hw/ppc/pnv.c           | 17 +++++++++++++++++
 3 files changed, 24 insertions(+)

diff --git a/include/hw/ppc/pnv.h b/include/hw/ppc/pnv.h
index 64bab7112be3..f4219da7c516 100644
--- a/include/hw/ppc/pnv.h
+++ b/include/hw/ppc/pnv.h
@@ -178,6 +178,7 @@ DECLARE_INSTANCE_CHECKER(PnvChip, PNV_CHIP_POWER10,
 
 PowerPCCPU *pnv_chip_find_cpu(PnvChip *chip, uint32_t pir);
 void pnv_phb_attach_root_port(PCIHostState *pci, const char *name);
+void pnv_chip_parent_fixup(PnvChip *chip, Object *obj, int index);
 
 #define TYPE_PNV_MACHINE       MACHINE_TYPE_NAME("powernv")
 typedef struct PnvMachineClass PnvMachineClass;
diff --git a/hw/pci-host/pnv_phb3.c b/hw/pci-host/pnv_phb3.c
index 1ebe43df5dd1..a52aedcad31b 100644
--- a/hw/pci-host/pnv_phb3.c
+++ b/hw/pci-host/pnv_phb3.c
@@ -998,6 +998,12 @@ static void pnv_phb3_realize(DeviceState *dev, Error **errp)
             error_setg(errp, "invalid chip id: %d", phb->chip_id);
             return;
         }
+
+        /*
+         * Reparent user created devices to the chip to build
+         * correctly the device tree.
+         */
+        pnv_chip_parent_fixup(phb->chip, OBJECT(phb), phb->phb_id);
     }
 
     if (phb->phb_id >= PNV_CHIP_GET_CLASS(phb->chip)->num_phbs) {
diff --git a/hw/ppc/pnv.c b/hw/ppc/pnv.c
index ad02d56aa75e..fa5e7bc75192 100644
--- a/hw/ppc/pnv.c
+++ b/hw/ppc/pnv.c
@@ -1814,6 +1814,23 @@ static ICSState *pnv_ics_get(XICSFabric *xi, int irq)
     return NULL;
 }
 
+void pnv_chip_parent_fixup(PnvChip *chip, Object *obj, int index)
+{
+    Object *parent = OBJECT(chip);
+    g_autofree char *default_id =
+        g_strdup_printf("%s[%d]", object_get_typename(obj), index);
+
+    if (obj->parent == parent) {
+        return;
+    }
+
+    object_ref(obj);
+    object_unparent(obj);
+    object_property_add_child(
+        parent, DEVICE(obj)->id ? DEVICE(obj)->id : default_id, obj);
+    object_unref(obj);
+}
+
 PnvChip *pnv_get_chip(PnvMachineState *pnv, uint32_t chip_id)
 {
     int i;
-- 
2.31.1



^ permalink raw reply related	[flat|nested] 40+ messages in thread

* [PULL 23/34] ppc/pnv: Complete user created PHB3 devices
  2022-01-12 11:55 [PULL 00/34] ppc queue Cédric Le Goater
                   ` (21 preceding siblings ...)
  2022-01-12 11:55 ` [PULL 22/34] ppc/pnv: Reparent user created PHB3 devices to the PnvChip Cédric Le Goater
@ 2022-01-12 11:55 ` Cédric Le Goater
  2022-01-12 11:55 ` [PULL 24/34] ppc/pnv: Move num_phbs under Pnv8Chip Cédric Le Goater
                   ` (11 subsequent siblings)
  34 siblings, 0 replies; 40+ messages in thread
From: Cédric Le Goater @ 2022-01-12 11:55 UTC (permalink / raw)
  To: qemu-ppc, qemu-devel
  Cc: Peter Maydell, Daniel Henrique Barboza, Richard Henderson,
	Cédric Le Goater

PHB3s ared SysBus devices and should be allowed to be dynamically
created.

Reviewed-by: Daniel Henrique Barboza <danielhb413@gmail.com>
Signed-off-by: Cédric Le Goater <clg@kaod.org>
Message-Id: <20220105212338.49899-9-danielhb413@gmail.com>
Signed-off-by: Cédric Le Goater <clg@kaod.org>
---
 hw/pci-host/pnv_phb3.c | 9 +++++++++
 hw/ppc/pnv.c           | 2 ++
 2 files changed, 11 insertions(+)

diff --git a/hw/pci-host/pnv_phb3.c b/hw/pci-host/pnv_phb3.c
index a52aedcad31b..7fb35dc03147 100644
--- a/hw/pci-host/pnv_phb3.c
+++ b/hw/pci-host/pnv_phb3.c
@@ -993,6 +993,9 @@ static void pnv_phb3_realize(DeviceState *dev, Error **errp)
 
     /* User created devices */
     if (!phb->chip) {
+        Error *local_err = NULL;
+        BusState *s;
+
         phb->chip = pnv_get_chip(pnv, phb->chip_id);
         if (!phb->chip) {
             error_setg(errp, "invalid chip id: %d", phb->chip_id);
@@ -1004,6 +1007,12 @@ static void pnv_phb3_realize(DeviceState *dev, Error **errp)
          * correctly the device tree.
          */
         pnv_chip_parent_fixup(phb->chip, OBJECT(phb), phb->phb_id);
+
+        s = qdev_get_parent_bus(DEVICE(phb->chip));
+        if (!qdev_set_parent_bus(DEVICE(phb), s, &local_err)) {
+            error_propagate(errp, local_err);
+            return;
+        }
     }
 
     if (phb->phb_id >= PNV_CHIP_GET_CLASS(phb->chip)->num_phbs) {
diff --git a/hw/ppc/pnv.c b/hw/ppc/pnv.c
index fa5e7bc75192..8dc63823573e 100644
--- a/hw/ppc/pnv.c
+++ b/hw/ppc/pnv.c
@@ -1941,6 +1941,8 @@ static void pnv_machine_power8_class_init(ObjectClass *oc, void *data)
 
     pmc->compat = compat;
     pmc->compat_size = sizeof(compat);
+
+    machine_class_allow_dynamic_sysbus_dev(mc, TYPE_PNV_PHB3);
 }
 
 static void pnv_machine_power9_class_init(ObjectClass *oc, void *data)
-- 
2.31.1



^ permalink raw reply related	[flat|nested] 40+ messages in thread

* [PULL 24/34] ppc/pnv: Move num_phbs under Pnv8Chip
  2022-01-12 11:55 [PULL 00/34] ppc queue Cédric Le Goater
                   ` (22 preceding siblings ...)
  2022-01-12 11:55 ` [PULL 23/34] ppc/pnv: Complete user created PHB3 devices Cédric Le Goater
@ 2022-01-12 11:55 ` Cédric Le Goater
  2022-01-12 11:55 ` [PULL 25/34] pnv_phb3.h: change TYPE_PNV_PHB3_ROOT_BUS name Cédric Le Goater
                   ` (10 subsequent siblings)
  34 siblings, 0 replies; 40+ messages in thread
From: Cédric Le Goater @ 2022-01-12 11:55 UTC (permalink / raw)
  To: qemu-ppc, qemu-devel
  Cc: Peter Maydell, Richard Henderson, Cédric Le Goater

It is not used elsewhere so that's where it belongs.

Signed-off-by: Cédric Le Goater <clg@kaod.org>
Message-Id: <20220105212338.49899-10-danielhb413@gmail.com>
Signed-off-by: Cédric Le Goater <clg@kaod.org>
---
 include/hw/ppc/pnv.h | 4 ++--
 hw/ppc/pnv.c         | 7 +++----
 2 files changed, 5 insertions(+), 6 deletions(-)

diff --git a/include/hw/ppc/pnv.h b/include/hw/ppc/pnv.h
index f4219da7c516..0e9e16544f30 100644
--- a/include/hw/ppc/pnv.h
+++ b/include/hw/ppc/pnv.h
@@ -52,7 +52,6 @@ struct PnvChip {
     uint64_t     cores_mask;
     PnvCore      **cores;
 
-    uint32_t     num_phbs;
     uint32_t     num_pecs;
 
     MemoryRegion xscom_mmio;
@@ -82,6 +81,7 @@ struct Pnv8Chip {
 
 #define PNV8_CHIP_PHB3_MAX 4
     PnvPHB3      phbs[PNV8_CHIP_PHB3_MAX];
+    uint32_t     num_phbs;
 
     XICSFabric    *xics;
 };
@@ -136,8 +136,8 @@ struct PnvChipClass {
     /*< public >*/
     uint64_t     chip_cfam_id;
     uint64_t     cores_mask;
-    uint32_t     num_phbs;
     uint32_t     num_pecs;
+    uint32_t     num_phbs;
 
     DeviceRealize parent_realize;
 
diff --git a/hw/ppc/pnv.c b/hw/ppc/pnv.c
index 8dc63823573e..fe7e67e73a3c 100644
--- a/hw/ppc/pnv.c
+++ b/hw/ppc/pnv.c
@@ -1099,7 +1099,6 @@ static void pnv_chip_power10_intc_print_info(PnvChip *chip, PowerPCCPU *cpu,
 
 static void pnv_chip_power8_instance_init(Object *obj)
 {
-    PnvChip *chip = PNV_CHIP(obj);
     Pnv8Chip *chip8 = PNV8_CHIP(obj);
     PnvChipClass *pcc = PNV_CHIP_GET_CLASS(obj);
     int i;
@@ -1118,10 +1117,10 @@ static void pnv_chip_power8_instance_init(Object *obj)
     object_initialize_child(obj, "homer", &chip8->homer, TYPE_PNV8_HOMER);
 
     if (defaults_enabled()) {
-        chip->num_phbs = pcc->num_phbs;
+        chip8->num_phbs = pcc->num_phbs;
     }
 
-    for (i = 0; i < chip->num_phbs; i++) {
+    for (i = 0; i < chip8->num_phbs; i++) {
         object_initialize_child(obj, "phb[*]", &chip8->phbs[i], TYPE_PNV_PHB3);
     }
 
@@ -1247,7 +1246,7 @@ static void pnv_chip_power8_realize(DeviceState *dev, Error **errp)
                                 &chip8->homer.regs);
 
     /* PHB3 controllers */
-    for (i = 0; i < chip->num_phbs; i++) {
+    for (i = 0; i < chip8->num_phbs; i++) {
         PnvPHB3 *phb = &chip8->phbs[i];
 
         object_property_set_int(OBJECT(phb), "index", i, &error_fatal);
-- 
2.31.1



^ permalink raw reply related	[flat|nested] 40+ messages in thread

* [PULL 25/34] pnv_phb3.h: change TYPE_PNV_PHB3_ROOT_BUS name
  2022-01-12 11:55 [PULL 00/34] ppc queue Cédric Le Goater
                   ` (23 preceding siblings ...)
  2022-01-12 11:55 ` [PULL 24/34] ppc/pnv: Move num_phbs under Pnv8Chip Cédric Le Goater
@ 2022-01-12 11:55 ` Cédric Le Goater
  2022-01-12 11:55 ` [PULL 26/34] pnv_phb4.c: change TYPE_PNV_PHB4_ROOT_BUS name Cédric Le Goater
                   ` (9 subsequent siblings)
  34 siblings, 0 replies; 40+ messages in thread
From: Cédric Le Goater @ 2022-01-12 11:55 UTC (permalink / raw)
  To: qemu-ppc, qemu-devel
  Cc: Peter Maydell, Daniel Henrique Barboza, Richard Henderson,
	Cédric Le Goater

From: Daniel Henrique Barboza <danielhb413@gmail.com>

The TYPE_PNV_PHB3_ROOT_BUS name is used as the default bus name when
the dev has no 'id'. However, pnv-phb3-root-bus is a bit too long to be
used as a bus name.

Most common QEMU buses and PCI controllers are named based on their bus
type (e.g. pSeries spapr-pci-host-bridge is called 'pci'). The most
common name for a PCIE bus controller in QEMU is 'pcie'. Naming it
'pcie' would break the documented use of the pnv-phb3 device, since
'pcie.0' would now refer to the root bus instead of the first root port.

There's nothing particularly wrong with the 'root-bus' name used before,
aside from the fact that 'root-bus' is being used for pnv-phb3 and
pnv-phb4 created buses, which is not quite correct since these buses
aren't implemented the same way in QEMU - you can't plug a
pnv-phb4-root-port into a pnv-phb3 root bus, for example.

This patch renames it as 'pnv-phb3-root', which is a compromise between
the existing and the previously used name. Creating 3 phbs without ID
will result in an "info qtree" output similar to this:

bus: main-system-bus
  type System
  dev: pnv-phb3, id ""
    index = 2 (0x2)
    chip-id = 0 (0x0)
    x-config-reg-migration-enabled = true
    bypass-iommu = false
    bus: pnv-phb3-root.2
      type pnv-phb3-root
(...)
  dev: pnv-phb3, id ""
    index = 1 (0x1)
    chip-id = 0 (0x0)
    x-config-reg-migration-enabled = true
    bypass-iommu = false
    bus: pnv-phb3-root.1
      type pnv-phb3-root
(...)
  dev: pnv-phb3, id ""
    index = 0 (0x0)
    chip-id = 0 (0x0)
    x-config-reg-migration-enabled = true
    bypass-iommu = false
    bus: pnv-phb3-root.0
      type pnv-phb3-root

Signed-off-by: Daniel Henrique Barboza <danielhb413@gmail.com>
Message-Id: <20220105212338.49899-11-danielhb413@gmail.com>
Signed-off-by: Cédric Le Goater <clg@kaod.org>
---
 include/hw/pci-host/pnv_phb3.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/include/hw/pci-host/pnv_phb3.h b/include/hw/pci-host/pnv_phb3.h
index 2e423c3890bc..af6ec83cf6cc 100644
--- a/include/hw/pci-host/pnv_phb3.h
+++ b/include/hw/pci-host/pnv_phb3.h
@@ -105,7 +105,7 @@ struct PnvPBCQState {
 /*
  * PHB3 PCIe Root port
  */
-#define TYPE_PNV_PHB3_ROOT_BUS "pnv-phb3-root-bus"
+#define TYPE_PNV_PHB3_ROOT_BUS "pnv-phb3-root"
 
 #define TYPE_PNV_PHB3_ROOT_PORT "pnv-phb3-root-port"
 
-- 
2.31.1



^ permalink raw reply related	[flat|nested] 40+ messages in thread

* [PULL 26/34] pnv_phb4.c: change TYPE_PNV_PHB4_ROOT_BUS name
  2022-01-12 11:55 [PULL 00/34] ppc queue Cédric Le Goater
                   ` (24 preceding siblings ...)
  2022-01-12 11:55 ` [PULL 25/34] pnv_phb3.h: change TYPE_PNV_PHB3_ROOT_BUS name Cédric Le Goater
@ 2022-01-12 11:55 ` Cédric Le Goater
  2022-01-12 11:55 ` [PULL 27/34] pnv_phb4_pec.c: move pnv_pec_phb_offset() to pnv_phb4.c Cédric Le Goater
                   ` (8 subsequent siblings)
  34 siblings, 0 replies; 40+ messages in thread
From: Cédric Le Goater @ 2022-01-12 11:55 UTC (permalink / raw)
  To: qemu-ppc, qemu-devel
  Cc: Peter Maydell, Daniel Henrique Barboza, Richard Henderson,
	Cédric Le Goater

From: Daniel Henrique Barboza <danielhb413@gmail.com>

Similar to what was happening with pnv-phb3 buses,
TYPE_PNV_PHB4_ROOT_BUS set to "pnv-phb4-root-bus" is a bit too long for
a default root bus name. The usual default name for theses buses in QEMU
are 'pcie', but we want to make a distinction between pnv-phb4 buses and
other PCIE buses, at least as far as default name goes, because not all
PCIE devices are attachable to a pnv-phb4 root-bus type.

Changing the default to 'pnv-phb4-root' allow us to have a shorter name
while making this bus distinct, and the user can always set its own bus
naming via the "id" attribute anyway.

This is the 'info qtree' output after this change, using a powernv9
domain with 2 sockets and default settings enabled:

qemu-system-ppc64 -m 4G -machine powernv9,accel=tcg \
     -smp 2,sockets=2,cores=1,threads=1

  dev: pnv-phb4, id ""
    index = 5 (0x5)
    chip-id = 1 (0x1)
    version = 704374636546 (0xa400000002)
    device-id = 1217 (0x4c1)
    x-config-reg-migration-enabled = true
    bypass-iommu = false
    bus: pnv-phb4-root.11
      type pnv-phb4-root
      dev: pnv-phb4-root-port, id ""
(...)
  dev: pnv-phb4, id ""
    index = 0 (0x0)
    chip-id = 1 (0x1)
    version = 704374636546 (0xa400000002)
    device-id = 1217 (0x4c1)
    x-config-reg-migration-enabled = true
    bypass-iommu = false
    bus: pnv-phb4-root.6
      type pnv-phb4-root
      dev: pnv-phb4-root-port, id ""
(..)
  dev: pnv-phb4, id ""
    index = 5 (0x5)
    chip-id = 0 (0x0)
    version = 704374636546 (0xa400000002)
    device-id = 1217 (0x4c1)
    x-config-reg-migration-enabled = true
    bypass-iommu = false
    bus: pnv-phb4-root.5
      type pnv-phb4-root
      dev: pnv-phb4-root-port, id ""
(...)
  dev: pnv-phb4, id ""
    index = 0 (0x0)
    chip-id = 0 (0x0)
    version = 704374636546 (0xa400000002)
    device-id = 1217 (0x4c1)
    x-config-reg-migration-enabled = true
    bypass-iommu = false
    bus: pnv-phb4-root.0
      type pnv-phb4-root
      dev: pnv-phb4-root-port, id ""

Reviewed-by: Cédric Le Goater <clg@kaod.org>
Signed-off-by: Daniel Henrique Barboza <danielhb413@gmail.com>
Message-Id: <20220110143346.455901-11-danielhb413@gmail.com>
Signed-off-by: Cédric Le Goater <clg@kaod.org>
---
 include/hw/pci-host/pnv_phb4.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/include/hw/pci-host/pnv_phb4.h b/include/hw/pci-host/pnv_phb4.h
index ea63df967678..88dc6abb1ca7 100644
--- a/include/hw/pci-host/pnv_phb4.h
+++ b/include/hw/pci-host/pnv_phb4.h
@@ -46,7 +46,7 @@ typedef struct PnvPhb4DMASpace {
 /*
  * PHB4 PCIe Root port
  */
-#define TYPE_PNV_PHB4_ROOT_BUS "pnv-phb4-root-bus"
+#define TYPE_PNV_PHB4_ROOT_BUS "pnv-phb4-root"
 #define TYPE_PNV_PHB4_ROOT_PORT "pnv-phb4-root-port"
 
 typedef struct PnvPHB4RootPort {
-- 
2.31.1



^ permalink raw reply related	[flat|nested] 40+ messages in thread

* [PULL 27/34] pnv_phb4_pec.c: move pnv_pec_phb_offset() to pnv_phb4.c
  2022-01-12 11:55 [PULL 00/34] ppc queue Cédric Le Goater
                   ` (25 preceding siblings ...)
  2022-01-12 11:55 ` [PULL 26/34] pnv_phb4.c: change TYPE_PNV_PHB4_ROOT_BUS name Cédric Le Goater
@ 2022-01-12 11:55 ` Cédric Le Goater
  2022-01-12 11:55 ` [PULL 28/34] pnv_phb4_pec: use pnv_phb4_pec_get_phb_id() in pnv_pec_dt_xscom() Cédric Le Goater
                   ` (7 subsequent siblings)
  34 siblings, 0 replies; 40+ messages in thread
From: Cédric Le Goater @ 2022-01-12 11:55 UTC (permalink / raw)
  To: qemu-ppc, qemu-devel
  Cc: Peter Maydell, Daniel Henrique Barboza, Richard Henderson,
	Cédric Le Goater

From: Daniel Henrique Barboza <danielhb413@gmail.com>

The logic inside pnv_pec_phb_offset() will be useful in the next patch
to determine the stack that should contain a PHB4 device.

Move the function to pnv_phb4.c and make it public since there's no
pnv_phb4_pec.h header. While we're at it, add 'stack_index' as a
parameter and make the function return 'phb-id' directly. And rename it
to pnv_phb4_pec_get_phb_id() to be even clearer about the function
intent.

Reviewed-by: Cédric Le Goater <clg@kaod.org>
Signed-off-by: Daniel Henrique Barboza <danielhb413@gmail.com>
Message-Id: <20220110143346.455901-3-danielhb413@gmail.com>
Signed-off-by: Cédric Le Goater <clg@kaod.org>
---
 include/hw/pci-host/pnv_phb4.h |  2 ++
 hw/pci-host/pnv_phb4.c         | 17 +++++++++++++++++
 hw/pci-host/pnv_phb4_pec.c     | 15 +--------------
 3 files changed, 20 insertions(+), 14 deletions(-)

diff --git a/include/hw/pci-host/pnv_phb4.h b/include/hw/pci-host/pnv_phb4.h
index 88dc6abb1ca7..5ee996ebc650 100644
--- a/include/hw/pci-host/pnv_phb4.h
+++ b/include/hw/pci-host/pnv_phb4.h
@@ -15,6 +15,7 @@
 #include "hw/ppc/xive.h"
 #include "qom/object.h"
 
+typedef struct PnvPhb4PecState PnvPhb4PecState;
 typedef struct PnvPhb4PecStack PnvPhb4PecStack;
 typedef struct PnvPHB4 PnvPHB4;
 typedef struct PnvChip PnvChip;
@@ -131,6 +132,7 @@ struct PnvPHB4 {
 
 void pnv_phb4_pic_print_info(PnvPHB4 *phb, Monitor *mon);
 void pnv_phb4_update_regions(PnvPhb4PecStack *stack);
+int pnv_phb4_pec_get_phb_id(PnvPhb4PecState *pec, int stack_index);
 extern const MemoryRegionOps pnv_phb4_xscom_ops;
 
 /*
diff --git a/hw/pci-host/pnv_phb4.c b/hw/pci-host/pnv_phb4.c
index 83dedc878a57..2223b985b269 100644
--- a/hw/pci-host/pnv_phb4.c
+++ b/hw/pci-host/pnv_phb4.c
@@ -1069,6 +1069,23 @@ static const TypeInfo pnv_phb4_iommu_memory_region_info = {
     .class_init = pnv_phb4_iommu_memory_region_class_init,
 };
 
+/*
+ * Return the index/phb-id of a PHB4 that belongs to a
+ * pec->stacks[stack_index] stack.
+ */
+int pnv_phb4_pec_get_phb_id(PnvPhb4PecState *pec, int stack_index)
+{
+    PnvPhb4PecClass *pecc = PNV_PHB4_PEC_GET_CLASS(pec);
+    int index = pec->index;
+    int offset = 0;
+
+    while (index--) {
+        offset += pecc->num_stacks[index];
+    }
+
+    return offset + stack_index;
+}
+
 /*
  * MSI/MSIX memory region implementation.
  * The handler handles both MSI and MSIX.
diff --git a/hw/pci-host/pnv_phb4_pec.c b/hw/pci-host/pnv_phb4_pec.c
index f3e4fa0c8297..49360de8c858 100644
--- a/hw/pci-host/pnv_phb4_pec.c
+++ b/hw/pci-host/pnv_phb4_pec.c
@@ -374,19 +374,6 @@ static void pnv_pec_instance_init(Object *obj)
     }
 }
 
-static int pnv_pec_phb_offset(PnvPhb4PecState *pec)
-{
-    PnvPhb4PecClass *pecc = PNV_PHB4_PEC_GET_CLASS(pec);
-    int index = pec->index;
-    int offset = 0;
-
-    while (index--) {
-        offset += pecc->num_stacks[index];
-    }
-
-    return offset;
-}
-
 static void pnv_pec_realize(DeviceState *dev, Error **errp)
 {
     PnvPhb4PecState *pec = PNV_PHB4_PEC(dev);
@@ -405,7 +392,7 @@ static void pnv_pec_realize(DeviceState *dev, Error **errp)
     for (i = 0; i < pec->num_stacks; i++) {
         PnvPhb4PecStack *stack = &pec->stacks[i];
         Object *stk_obj = OBJECT(stack);
-        int phb_id = pnv_pec_phb_offset(pec) + i;
+        int phb_id = pnv_phb4_pec_get_phb_id(pec, i);
 
         object_property_set_int(stk_obj, "stack-no", i, &error_abort);
         object_property_set_int(stk_obj, "phb-id", phb_id, &error_abort);
-- 
2.31.1



^ permalink raw reply related	[flat|nested] 40+ messages in thread

* [PULL 28/34] pnv_phb4_pec: use pnv_phb4_pec_get_phb_id() in pnv_pec_dt_xscom()
  2022-01-12 11:55 [PULL 00/34] ppc queue Cédric Le Goater
                   ` (26 preceding siblings ...)
  2022-01-12 11:55 ` [PULL 27/34] pnv_phb4_pec.c: move pnv_pec_phb_offset() to pnv_phb4.c Cédric Le Goater
@ 2022-01-12 11:55 ` Cédric Le Goater
  2022-01-12 11:55 ` [PULL 29/34] ppc/pnv: set phb4 properties in stk_realize() Cédric Le Goater
                   ` (6 subsequent siblings)
  34 siblings, 0 replies; 40+ messages in thread
From: Cédric Le Goater @ 2022-01-12 11:55 UTC (permalink / raw)
  To: qemu-ppc, qemu-devel
  Cc: Peter Maydell, Daniel Henrique Barboza, Richard Henderson,
	Cédric Le Goater

From: Daniel Henrique Barboza <danielhb413@gmail.com>

Relying on stack->phb to write the xscom DT of the PEC is something that
we won't be able to do with user creatable pnv-phb4 devices.

Hopefully, this can be done by using pnv_phb4_pec_get_phb_id(), which is
already used by pnv_pec_realize() to set the phb-id of the stack. Use
the same idea in pnv_pec_dt_xscom() to write ibm,phb-index without the
need to accessing stack->phb, since stack->phb is not granted to be !=
NULL when user creatable phbs are introduced.

Reviewed-by: Cédric Le Goater <clg@kaod.org>
Signed-off-by: Daniel Henrique Barboza <danielhb413@gmail.com>
Message-Id: <20220110143346.455901-4-danielhb413@gmail.com>
Signed-off-by: Cédric Le Goater <clg@kaod.org>
---
 hw/pci-host/pnv_phb4_pec.c | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

diff --git a/hw/pci-host/pnv_phb4_pec.c b/hw/pci-host/pnv_phb4_pec.c
index 49360de8c858..d64310e7db1e 100644
--- a/hw/pci-host/pnv_phb4_pec.c
+++ b/hw/pci-host/pnv_phb4_pec.c
@@ -449,8 +449,7 @@ static int pnv_pec_dt_xscom(PnvXScomInterface *dev, void *fdt,
                       pecc->compat_size)));
 
     for (i = 0; i < pec->num_stacks; i++) {
-        PnvPhb4PecStack *stack = &pec->stacks[i];
-        PnvPHB4 *phb = &stack->phb;
+        int phb_id = pnv_phb4_pec_get_phb_id(pec, i);
         int stk_offset;
 
         name = g_strdup_printf("stack@%x", i);
@@ -460,7 +459,7 @@ static int pnv_pec_dt_xscom(PnvXScomInterface *dev, void *fdt,
         _FDT((fdt_setprop(fdt, stk_offset, "compatible", pecc->stk_compat,
                           pecc->stk_compat_size)));
         _FDT((fdt_setprop_cell(fdt, stk_offset, "reg", i)));
-        _FDT((fdt_setprop_cell(fdt, stk_offset, "ibm,phb-index", phb->phb_id)));
+        _FDT((fdt_setprop_cell(fdt, stk_offset, "ibm,phb-index", phb_id)));
     }
 
     return 0;
-- 
2.31.1



^ permalink raw reply related	[flat|nested] 40+ messages in thread

* [PULL 29/34] ppc/pnv: set phb4 properties in stk_realize()
  2022-01-12 11:55 [PULL 00/34] ppc queue Cédric Le Goater
                   ` (27 preceding siblings ...)
  2022-01-12 11:55 ` [PULL 28/34] pnv_phb4_pec: use pnv_phb4_pec_get_phb_id() in pnv_pec_dt_xscom() Cédric Le Goater
@ 2022-01-12 11:55 ` Cédric Le Goater
  2022-01-12 11:55 ` [PULL 30/34] ppc/pnv: move PHB4 XSCOM init to phb4_realize() Cédric Le Goater
                   ` (5 subsequent siblings)
  34 siblings, 0 replies; 40+ messages in thread
From: Cédric Le Goater @ 2022-01-12 11:55 UTC (permalink / raw)
  To: qemu-ppc, qemu-devel
  Cc: Peter Maydell, Daniel Henrique Barboza, Richard Henderson,
	Cédric Le Goater

From: Daniel Henrique Barboza <danielhb413@gmail.com>

Moving all phb4 properties setup to stk_realize() keeps this logic in
a single place instead of having it scattered between stk_realize() and
pec_realize().

'phb->index' can be retrieved using stack->stack_no and
pnv_phb4_pec_get_phb_id(), deprecating the use of 'phb-id' alias that
was being used for this purpose in pec_realize().

Reviewed-by: Cédric Le Goater <clg@kaod.org>
Signed-off-by: Daniel Henrique Barboza <danielhb413@gmail.com>
Message-Id: <20220111131027.599784-2-danielhb413@gmail.com>
Signed-off-by: Cédric Le Goater <clg@kaod.org>
---
 hw/pci-host/pnv_phb4_pec.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/hw/pci-host/pnv_phb4_pec.c b/hw/pci-host/pnv_phb4_pec.c
index d64310e7db1e..f8038dff171c 100644
--- a/hw/pci-host/pnv_phb4_pec.c
+++ b/hw/pci-host/pnv_phb4_pec.c
@@ -392,10 +392,8 @@ static void pnv_pec_realize(DeviceState *dev, Error **errp)
     for (i = 0; i < pec->num_stacks; i++) {
         PnvPhb4PecStack *stack = &pec->stacks[i];
         Object *stk_obj = OBJECT(stack);
-        int phb_id = pnv_phb4_pec_get_phb_id(pec, i);
 
         object_property_set_int(stk_obj, "stack-no", i, &error_abort);
-        object_property_set_int(stk_obj, "phb-id", phb_id, &error_abort);
         object_property_set_link(stk_obj, "pec", OBJECT(pec), &error_abort);
         if (!qdev_realize(DEVICE(stk_obj), NULL, errp)) {
             return;
@@ -534,7 +532,6 @@ static void pnv_pec_stk_instance_init(Object *obj)
     PnvPhb4PecStack *stack = PNV_PHB4_PEC_STACK(obj);
 
     object_initialize_child(obj, "phb", &stack->phb, TYPE_PNV_PHB4);
-    object_property_add_alias(obj, "phb-id", OBJECT(&stack->phb), "index");
 }
 
 static void pnv_pec_stk_realize(DeviceState *dev, Error **errp)
@@ -543,6 +540,7 @@ static void pnv_pec_stk_realize(DeviceState *dev, Error **errp)
     PnvPhb4PecState *pec = stack->pec;
     PnvPhb4PecClass *pecc = PNV_PHB4_PEC_GET_CLASS(pec);
     PnvChip *chip = pec->chip;
+    int phb_id = pnv_phb4_pec_get_phb_id(pec, stack->stack_no);
     uint32_t pec_nest_base;
     uint32_t pec_pci_base;
     char name[64];
@@ -570,6 +568,8 @@ static void pnv_pec_stk_realize(DeviceState *dev, Error **errp)
 
     object_property_set_int(OBJECT(&stack->phb), "chip-id", pec->chip_id,
                             &error_fatal);
+    object_property_set_int(OBJECT(&stack->phb), "index", phb_id,
+                            &error_fatal);
     object_property_set_int(OBJECT(&stack->phb), "version", pecc->version,
                             &error_fatal);
     object_property_set_link(OBJECT(&stack->phb), "stack", OBJECT(stack),
-- 
2.31.1



^ permalink raw reply related	[flat|nested] 40+ messages in thread

* [PULL 30/34] ppc/pnv: move PHB4 XSCOM init to phb4_realize()
  2022-01-12 11:55 [PULL 00/34] ppc queue Cédric Le Goater
                   ` (28 preceding siblings ...)
  2022-01-12 11:55 ` [PULL 29/34] ppc/pnv: set phb4 properties in stk_realize() Cédric Le Goater
@ 2022-01-12 11:55 ` Cédric Le Goater
  2022-01-12 11:55 ` [PULL 31/34] ppc/pnv: turn 'phb' into a pointer in struct PnvPhb4PecStack Cédric Le Goater
                   ` (4 subsequent siblings)
  34 siblings, 0 replies; 40+ messages in thread
From: Cédric Le Goater @ 2022-01-12 11:55 UTC (permalink / raw)
  To: qemu-ppc, qemu-devel
  Cc: Peter Maydell, Daniel Henrique Barboza, Richard Henderson,
	Cédric Le Goater

From: Daniel Henrique Barboza <danielhb413@gmail.com>

The 'stack->phb_regs_mr' PHB4 passthrough XSCOM initialization relies on
'stack->phb' being not NULL. Moving 'stack->phb_regs_mr' region_init()
and add_subregion() to phb4_realize() time is a natural thing to do
since it's strictly PHB related.

The remaining XSCOM initialization is also related to 'stack->phb' but
in a different manner. For instance, 'stack->nest_regs_mr'
MemoryRegionOps, 'pnv_pec_stk_nest_xscom_ops', uses
pnv_pec_stk_nest_xscom_write() as a write callback. When trying to write
the PEC_NEST_STK_BAR_EN reg, pnv_pec_stk_update_map() is called. Inside
this function, pnv_phb4_update_regions() is called twice. This function
uses 'stack->phb' to manipulate memory regions of the phb.

This is not a problem now but, when enabling user creatable phb4s, a
stack that doesn't have an associated phb (i.e. stack->phb = NULL) it
will cause a SIGINT during boot in pnv_phb4_update_regions().

All this can be avoided if all XSCOM realize is moved to phb4_realize(),
when we have certainty about the existence of 'stack->phb'. A lot of
code was moved from pnv_phb4_pec.c to pnv_phb4.c due to static constant
and variables being used but the cleaner logic is worth the trouble.

Reviewed-by: Cédric Le Goater <clg@kaod.org>
Signed-off-by: Daniel Henrique Barboza <danielhb413@gmail.com>
Message-Id: <20220111131027.599784-3-danielhb413@gmail.com>
Signed-off-by: Cédric Le Goater <clg@kaod.org>
---
 hw/pci-host/pnv_phb4.c     | 304 +++++++++++++++++++++++++++++++++++++
 hw/pci-host/pnv_phb4_pec.c | 292 -----------------------------------
 2 files changed, 304 insertions(+), 292 deletions(-)

diff --git a/hw/pci-host/pnv_phb4.c b/hw/pci-host/pnv_phb4.c
index 2223b985b269..8ef58bf2de7a 100644
--- a/hw/pci-host/pnv_phb4.c
+++ b/hw/pci-host/pnv_phb4.c
@@ -29,6 +29,10 @@
     qemu_log_mask(LOG_GUEST_ERROR, "phb4[%d:%d]: " fmt "\n",            \
                   (phb)->chip_id, (phb)->phb_id, ## __VA_ARGS__)
 
+#define phb_pec_error(pec, fmt, ...)                                    \
+    qemu_log_mask(LOG_GUEST_ERROR, "phb4_pec[%d:%d]: " fmt "\n",        \
+                  (pec)->chip_id, (pec)->index, ## __VA_ARGS__)
+
 /*
  * QEMU version of the GETFIELD/SETFIELD macros
  *
@@ -854,6 +858,258 @@ const MemoryRegionOps pnv_phb4_xscom_ops = {
     .endianness = DEVICE_BIG_ENDIAN,
 };
 
+static uint64_t pnv_pec_stk_nest_xscom_read(void *opaque, hwaddr addr,
+                                            unsigned size)
+{
+    PnvPhb4PecStack *stack = PNV_PHB4_PEC_STACK(opaque);
+    uint32_t reg = addr >> 3;
+
+    /* TODO: add list of allowed registers and error out if not */
+    return stack->nest_regs[reg];
+}
+
+static void pnv_pec_stk_update_map(PnvPhb4PecStack *stack)
+{
+    PnvPhb4PecState *pec = stack->pec;
+    MemoryRegion *sysmem = get_system_memory();
+    uint64_t bar_en = stack->nest_regs[PEC_NEST_STK_BAR_EN];
+    uint64_t bar, mask, size;
+    char name[64];
+
+    /*
+     * NOTE: This will really not work well if those are remapped
+     * after the PHB has created its sub regions. We could do better
+     * if we had a way to resize regions but we don't really care
+     * that much in practice as the stuff below really only happens
+     * once early during boot
+     */
+
+    /* Handle unmaps */
+    if (memory_region_is_mapped(&stack->mmbar0) &&
+        !(bar_en & PEC_NEST_STK_BAR_EN_MMIO0)) {
+        memory_region_del_subregion(sysmem, &stack->mmbar0);
+    }
+    if (memory_region_is_mapped(&stack->mmbar1) &&
+        !(bar_en & PEC_NEST_STK_BAR_EN_MMIO1)) {
+        memory_region_del_subregion(sysmem, &stack->mmbar1);
+    }
+    if (memory_region_is_mapped(&stack->phbbar) &&
+        !(bar_en & PEC_NEST_STK_BAR_EN_PHB)) {
+        memory_region_del_subregion(sysmem, &stack->phbbar);
+    }
+    if (memory_region_is_mapped(&stack->intbar) &&
+        !(bar_en & PEC_NEST_STK_BAR_EN_INT)) {
+        memory_region_del_subregion(sysmem, &stack->intbar);
+    }
+
+    /* Update PHB */
+    pnv_phb4_update_regions(stack);
+
+    /* Handle maps */
+    if (!memory_region_is_mapped(&stack->mmbar0) &&
+        (bar_en & PEC_NEST_STK_BAR_EN_MMIO0)) {
+        bar = stack->nest_regs[PEC_NEST_STK_MMIO_BAR0] >> 8;
+        mask = stack->nest_regs[PEC_NEST_STK_MMIO_BAR0_MASK];
+        size = ((~mask) >> 8) + 1;
+        snprintf(name, sizeof(name), "pec-%d.%d-stack-%d-mmio0",
+                 pec->chip_id, pec->index, stack->stack_no);
+        memory_region_init(&stack->mmbar0, OBJECT(stack), name, size);
+        memory_region_add_subregion(sysmem, bar, &stack->mmbar0);
+        stack->mmio0_base = bar;
+        stack->mmio0_size = size;
+    }
+    if (!memory_region_is_mapped(&stack->mmbar1) &&
+        (bar_en & PEC_NEST_STK_BAR_EN_MMIO1)) {
+        bar = stack->nest_regs[PEC_NEST_STK_MMIO_BAR1] >> 8;
+        mask = stack->nest_regs[PEC_NEST_STK_MMIO_BAR1_MASK];
+        size = ((~mask) >> 8) + 1;
+        snprintf(name, sizeof(name), "pec-%d.%d-stack-%d-mmio1",
+                 pec->chip_id, pec->index, stack->stack_no);
+        memory_region_init(&stack->mmbar1, OBJECT(stack), name, size);
+        memory_region_add_subregion(sysmem, bar, &stack->mmbar1);
+        stack->mmio1_base = bar;
+        stack->mmio1_size = size;
+    }
+    if (!memory_region_is_mapped(&stack->phbbar) &&
+        (bar_en & PEC_NEST_STK_BAR_EN_PHB)) {
+        bar = stack->nest_regs[PEC_NEST_STK_PHB_REGS_BAR] >> 8;
+        size = PNV_PHB4_NUM_REGS << 3;
+        snprintf(name, sizeof(name), "pec-%d.%d-stack-%d-phb",
+                 pec->chip_id, pec->index, stack->stack_no);
+        memory_region_init(&stack->phbbar, OBJECT(stack), name, size);
+        memory_region_add_subregion(sysmem, bar, &stack->phbbar);
+    }
+    if (!memory_region_is_mapped(&stack->intbar) &&
+        (bar_en & PEC_NEST_STK_BAR_EN_INT)) {
+        bar = stack->nest_regs[PEC_NEST_STK_INT_BAR] >> 8;
+        size = PNV_PHB4_MAX_INTs << 16;
+        snprintf(name, sizeof(name), "pec-%d.%d-stack-%d-int",
+                 stack->pec->chip_id, stack->pec->index, stack->stack_no);
+        memory_region_init(&stack->intbar, OBJECT(stack), name, size);
+        memory_region_add_subregion(sysmem, bar, &stack->intbar);
+    }
+
+    /* Update PHB */
+    pnv_phb4_update_regions(stack);
+}
+
+static void pnv_pec_stk_nest_xscom_write(void *opaque, hwaddr addr,
+                                         uint64_t val, unsigned size)
+{
+    PnvPhb4PecStack *stack = PNV_PHB4_PEC_STACK(opaque);
+    PnvPhb4PecState *pec = stack->pec;
+    uint32_t reg = addr >> 3;
+
+    switch (reg) {
+    case PEC_NEST_STK_PCI_NEST_FIR:
+        stack->nest_regs[PEC_NEST_STK_PCI_NEST_FIR] = val;
+        break;
+    case PEC_NEST_STK_PCI_NEST_FIR_CLR:
+        stack->nest_regs[PEC_NEST_STK_PCI_NEST_FIR] &= val;
+        break;
+    case PEC_NEST_STK_PCI_NEST_FIR_SET:
+        stack->nest_regs[PEC_NEST_STK_PCI_NEST_FIR] |= val;
+        break;
+    case PEC_NEST_STK_PCI_NEST_FIR_MSK:
+        stack->nest_regs[PEC_NEST_STK_PCI_NEST_FIR_MSK] = val;
+        break;
+    case PEC_NEST_STK_PCI_NEST_FIR_MSKC:
+        stack->nest_regs[PEC_NEST_STK_PCI_NEST_FIR_MSK] &= val;
+        break;
+    case PEC_NEST_STK_PCI_NEST_FIR_MSKS:
+        stack->nest_regs[PEC_NEST_STK_PCI_NEST_FIR_MSK] |= val;
+        break;
+    case PEC_NEST_STK_PCI_NEST_FIR_ACT0:
+    case PEC_NEST_STK_PCI_NEST_FIR_ACT1:
+        stack->nest_regs[reg] = val;
+        break;
+    case PEC_NEST_STK_PCI_NEST_FIR_WOF:
+        stack->nest_regs[reg] = 0;
+        break;
+    case PEC_NEST_STK_ERR_REPORT_0:
+    case PEC_NEST_STK_ERR_REPORT_1:
+    case PEC_NEST_STK_PBCQ_GNRL_STATUS:
+        /* Flag error ? */
+        break;
+    case PEC_NEST_STK_PBCQ_MODE:
+        stack->nest_regs[reg] = val & 0xff00000000000000ull;
+        break;
+    case PEC_NEST_STK_MMIO_BAR0:
+    case PEC_NEST_STK_MMIO_BAR0_MASK:
+    case PEC_NEST_STK_MMIO_BAR1:
+    case PEC_NEST_STK_MMIO_BAR1_MASK:
+        if (stack->nest_regs[PEC_NEST_STK_BAR_EN] &
+            (PEC_NEST_STK_BAR_EN_MMIO0 |
+             PEC_NEST_STK_BAR_EN_MMIO1)) {
+            phb_pec_error(pec, "Changing enabled BAR unsupported\n");
+        }
+        stack->nest_regs[reg] = val & 0xffffffffff000000ull;
+        break;
+    case PEC_NEST_STK_PHB_REGS_BAR:
+        if (stack->nest_regs[PEC_NEST_STK_BAR_EN] & PEC_NEST_STK_BAR_EN_PHB) {
+            phb_pec_error(pec, "Changing enabled BAR unsupported\n");
+        }
+        stack->nest_regs[reg] = val & 0xffffffffffc00000ull;
+        break;
+    case PEC_NEST_STK_INT_BAR:
+        if (stack->nest_regs[PEC_NEST_STK_BAR_EN] & PEC_NEST_STK_BAR_EN_INT) {
+            phb_pec_error(pec, "Changing enabled BAR unsupported\n");
+        }
+        stack->nest_regs[reg] = val & 0xfffffff000000000ull;
+        break;
+    case PEC_NEST_STK_BAR_EN:
+        stack->nest_regs[reg] = val & 0xf000000000000000ull;
+        pnv_pec_stk_update_map(stack);
+        break;
+    case PEC_NEST_STK_DATA_FRZ_TYPE:
+    case PEC_NEST_STK_PBCQ_TUN_BAR:
+        /* Not used for now */
+        stack->nest_regs[reg] = val;
+        break;
+    default:
+        qemu_log_mask(LOG_UNIMP, "phb4_pec: nest_xscom_write 0x%"HWADDR_PRIx
+                      "=%"PRIx64"\n", addr, val);
+    }
+}
+
+static const MemoryRegionOps pnv_pec_stk_nest_xscom_ops = {
+    .read = pnv_pec_stk_nest_xscom_read,
+    .write = pnv_pec_stk_nest_xscom_write,
+    .valid.min_access_size = 8,
+    .valid.max_access_size = 8,
+    .impl.min_access_size = 8,
+    .impl.max_access_size = 8,
+    .endianness = DEVICE_BIG_ENDIAN,
+};
+
+static uint64_t pnv_pec_stk_pci_xscom_read(void *opaque, hwaddr addr,
+                                           unsigned size)
+{
+    PnvPhb4PecStack *stack = PNV_PHB4_PEC_STACK(opaque);
+    uint32_t reg = addr >> 3;
+
+    /* TODO: add list of allowed registers and error out if not */
+    return stack->pci_regs[reg];
+}
+
+static void pnv_pec_stk_pci_xscom_write(void *opaque, hwaddr addr,
+                                        uint64_t val, unsigned size)
+{
+    PnvPhb4PecStack *stack = PNV_PHB4_PEC_STACK(opaque);
+    uint32_t reg = addr >> 3;
+
+    switch (reg) {
+    case PEC_PCI_STK_PCI_FIR:
+        stack->nest_regs[reg] = val;
+        break;
+    case PEC_PCI_STK_PCI_FIR_CLR:
+        stack->nest_regs[PEC_PCI_STK_PCI_FIR] &= val;
+        break;
+    case PEC_PCI_STK_PCI_FIR_SET:
+        stack->nest_regs[PEC_PCI_STK_PCI_FIR] |= val;
+        break;
+    case PEC_PCI_STK_PCI_FIR_MSK:
+        stack->nest_regs[reg] = val;
+        break;
+    case PEC_PCI_STK_PCI_FIR_MSKC:
+        stack->nest_regs[PEC_PCI_STK_PCI_FIR_MSK] &= val;
+        break;
+    case PEC_PCI_STK_PCI_FIR_MSKS:
+        stack->nest_regs[PEC_PCI_STK_PCI_FIR_MSK] |= val;
+        break;
+    case PEC_PCI_STK_PCI_FIR_ACT0:
+    case PEC_PCI_STK_PCI_FIR_ACT1:
+        stack->nest_regs[reg] = val;
+        break;
+    case PEC_PCI_STK_PCI_FIR_WOF:
+        stack->nest_regs[reg] = 0;
+        break;
+    case PEC_PCI_STK_ETU_RESET:
+        stack->nest_regs[reg] = val & 0x8000000000000000ull;
+        /* TODO: Implement reset */
+        break;
+    case PEC_PCI_STK_PBAIB_ERR_REPORT:
+        break;
+    case PEC_PCI_STK_PBAIB_TX_CMD_CRED:
+    case PEC_PCI_STK_PBAIB_TX_DAT_CRED:
+        stack->nest_regs[reg] = val;
+        break;
+    default:
+        qemu_log_mask(LOG_UNIMP, "phb4_pec_stk: pci_xscom_write 0x%"HWADDR_PRIx
+                      "=%"PRIx64"\n", addr, val);
+    }
+}
+
+static const MemoryRegionOps pnv_pec_stk_pci_xscom_ops = {
+    .read = pnv_pec_stk_pci_xscom_read,
+    .write = pnv_pec_stk_pci_xscom_write,
+    .valid.min_access_size = 8,
+    .valid.max_access_size = 8,
+    .impl.min_access_size = 8,
+    .impl.max_access_size = 8,
+    .endianness = DEVICE_BIG_ENDIAN,
+};
+
 static int pnv_phb4_map_irq(PCIDevice *pci_dev, int irq_num)
 {
     /* Check that out properly ... */
@@ -1175,6 +1431,52 @@ static AddressSpace *pnv_phb4_dma_iommu(PCIBus *bus, void *opaque, int devfn)
     return &ds->dma_as;
 }
 
+static void pnv_phb4_xscom_realize(PnvPHB4 *phb)
+{
+    PnvPhb4PecStack *stack = phb->stack;
+    PnvPhb4PecState *pec = stack->pec;
+    PnvPhb4PecClass *pecc = PNV_PHB4_PEC_GET_CLASS(pec);
+    uint32_t pec_nest_base;
+    uint32_t pec_pci_base;
+    char name[64];
+
+    assert(pec);
+
+    /* Initialize the XSCOM regions for the stack registers */
+    snprintf(name, sizeof(name), "xscom-pec-%d.%d-nest-stack-%d",
+             pec->chip_id, pec->index, stack->stack_no);
+    pnv_xscom_region_init(&stack->nest_regs_mr, OBJECT(stack),
+                          &pnv_pec_stk_nest_xscom_ops, stack, name,
+                          PHB4_PEC_NEST_STK_REGS_COUNT);
+
+    snprintf(name, sizeof(name), "xscom-pec-%d.%d-pci-stack-%d",
+             pec->chip_id, pec->index, stack->stack_no);
+    pnv_xscom_region_init(&stack->pci_regs_mr, OBJECT(stack),
+                          &pnv_pec_stk_pci_xscom_ops, stack, name,
+                          PHB4_PEC_PCI_STK_REGS_COUNT);
+
+    /* PHB pass-through */
+    snprintf(name, sizeof(name), "xscom-pec-%d.%d-pci-stack-%d-phb",
+             pec->chip_id, pec->index, stack->stack_no);
+    pnv_xscom_region_init(&stack->phb_regs_mr, OBJECT(phb),
+                          &pnv_phb4_xscom_ops, phb, name, 0x40);
+
+    pec_nest_base = pecc->xscom_nest_base(pec);
+    pec_pci_base = pecc->xscom_pci_base(pec);
+
+    /* Populate the XSCOM address space. */
+    pnv_xscom_add_subregion(pec->chip,
+                            pec_nest_base + 0x40 * (stack->stack_no + 1),
+                            &stack->nest_regs_mr);
+    pnv_xscom_add_subregion(pec->chip,
+                            pec_pci_base + 0x40 * (stack->stack_no + 1),
+                            &stack->pci_regs_mr);
+    pnv_xscom_add_subregion(pec->chip,
+                            pec_pci_base + PNV9_XSCOM_PEC_PCI_STK0 +
+                            0x40 * stack->stack_no,
+                            &stack->phb_regs_mr);
+}
+
 static void pnv_phb4_instance_init(Object *obj)
 {
     PnvPHB4 *phb = PNV_PHB4(obj);
@@ -1247,6 +1549,8 @@ static void pnv_phb4_realize(DeviceState *dev, Error **errp)
     pnv_phb4_update_xsrc(phb);
 
     phb->qirqs = qemu_allocate_irqs(xive_source_set_irq, xsrc, xsrc->nr_irqs);
+
+    pnv_phb4_xscom_realize(phb);
 }
 
 static const char *pnv_phb4_root_bus_path(PCIHostState *host_bridge,
diff --git a/hw/pci-host/pnv_phb4_pec.c b/hw/pci-host/pnv_phb4_pec.c
index f8038dff171c..bf0fdf33fd8c 100644
--- a/hw/pci-host/pnv_phb4_pec.c
+++ b/hw/pci-host/pnv_phb4_pec.c
@@ -111,258 +111,6 @@ static const MemoryRegionOps pnv_pec_pci_xscom_ops = {
     .endianness = DEVICE_BIG_ENDIAN,
 };
 
-static uint64_t pnv_pec_stk_nest_xscom_read(void *opaque, hwaddr addr,
-                                            unsigned size)
-{
-    PnvPhb4PecStack *stack = PNV_PHB4_PEC_STACK(opaque);
-    uint32_t reg = addr >> 3;
-
-    /* TODO: add list of allowed registers and error out if not */
-    return stack->nest_regs[reg];
-}
-
-static void pnv_pec_stk_update_map(PnvPhb4PecStack *stack)
-{
-    PnvPhb4PecState *pec = stack->pec;
-    MemoryRegion *sysmem = get_system_memory();
-    uint64_t bar_en = stack->nest_regs[PEC_NEST_STK_BAR_EN];
-    uint64_t bar, mask, size;
-    char name[64];
-
-    /*
-     * NOTE: This will really not work well if those are remapped
-     * after the PHB has created its sub regions. We could do better
-     * if we had a way to resize regions but we don't really care
-     * that much in practice as the stuff below really only happens
-     * once early during boot
-     */
-
-    /* Handle unmaps */
-    if (memory_region_is_mapped(&stack->mmbar0) &&
-        !(bar_en & PEC_NEST_STK_BAR_EN_MMIO0)) {
-        memory_region_del_subregion(sysmem, &stack->mmbar0);
-    }
-    if (memory_region_is_mapped(&stack->mmbar1) &&
-        !(bar_en & PEC_NEST_STK_BAR_EN_MMIO1)) {
-        memory_region_del_subregion(sysmem, &stack->mmbar1);
-    }
-    if (memory_region_is_mapped(&stack->phbbar) &&
-        !(bar_en & PEC_NEST_STK_BAR_EN_PHB)) {
-        memory_region_del_subregion(sysmem, &stack->phbbar);
-    }
-    if (memory_region_is_mapped(&stack->intbar) &&
-        !(bar_en & PEC_NEST_STK_BAR_EN_INT)) {
-        memory_region_del_subregion(sysmem, &stack->intbar);
-    }
-
-    /* Update PHB */
-    pnv_phb4_update_regions(stack);
-
-    /* Handle maps */
-    if (!memory_region_is_mapped(&stack->mmbar0) &&
-        (bar_en & PEC_NEST_STK_BAR_EN_MMIO0)) {
-        bar = stack->nest_regs[PEC_NEST_STK_MMIO_BAR0] >> 8;
-        mask = stack->nest_regs[PEC_NEST_STK_MMIO_BAR0_MASK];
-        size = ((~mask) >> 8) + 1;
-        snprintf(name, sizeof(name), "pec-%d.%d-stack-%d-mmio0",
-                 pec->chip_id, pec->index, stack->stack_no);
-        memory_region_init(&stack->mmbar0, OBJECT(stack), name, size);
-        memory_region_add_subregion(sysmem, bar, &stack->mmbar0);
-        stack->mmio0_base = bar;
-        stack->mmio0_size = size;
-    }
-    if (!memory_region_is_mapped(&stack->mmbar1) &&
-        (bar_en & PEC_NEST_STK_BAR_EN_MMIO1)) {
-        bar = stack->nest_regs[PEC_NEST_STK_MMIO_BAR1] >> 8;
-        mask = stack->nest_regs[PEC_NEST_STK_MMIO_BAR1_MASK];
-        size = ((~mask) >> 8) + 1;
-        snprintf(name, sizeof(name), "pec-%d.%d-stack-%d-mmio1",
-                 pec->chip_id, pec->index, stack->stack_no);
-        memory_region_init(&stack->mmbar1, OBJECT(stack), name, size);
-        memory_region_add_subregion(sysmem, bar, &stack->mmbar1);
-        stack->mmio1_base = bar;
-        stack->mmio1_size = size;
-    }
-    if (!memory_region_is_mapped(&stack->phbbar) &&
-        (bar_en & PEC_NEST_STK_BAR_EN_PHB)) {
-        bar = stack->nest_regs[PEC_NEST_STK_PHB_REGS_BAR] >> 8;
-        size = PNV_PHB4_NUM_REGS << 3;
-        snprintf(name, sizeof(name), "pec-%d.%d-stack-%d-phb",
-                 pec->chip_id, pec->index, stack->stack_no);
-        memory_region_init(&stack->phbbar, OBJECT(stack), name, size);
-        memory_region_add_subregion(sysmem, bar, &stack->phbbar);
-    }
-    if (!memory_region_is_mapped(&stack->intbar) &&
-        (bar_en & PEC_NEST_STK_BAR_EN_INT)) {
-        bar = stack->nest_regs[PEC_NEST_STK_INT_BAR] >> 8;
-        size = PNV_PHB4_MAX_INTs << 16;
-        snprintf(name, sizeof(name), "pec-%d.%d-stack-%d-int",
-                 stack->pec->chip_id, stack->pec->index, stack->stack_no);
-        memory_region_init(&stack->intbar, OBJECT(stack), name, size);
-        memory_region_add_subregion(sysmem, bar, &stack->intbar);
-    }
-
-    /* Update PHB */
-    pnv_phb4_update_regions(stack);
-}
-
-static void pnv_pec_stk_nest_xscom_write(void *opaque, hwaddr addr,
-                                         uint64_t val, unsigned size)
-{
-    PnvPhb4PecStack *stack = PNV_PHB4_PEC_STACK(opaque);
-    PnvPhb4PecState *pec = stack->pec;
-    uint32_t reg = addr >> 3;
-
-    switch (reg) {
-    case PEC_NEST_STK_PCI_NEST_FIR:
-        stack->nest_regs[PEC_NEST_STK_PCI_NEST_FIR] = val;
-        break;
-    case PEC_NEST_STK_PCI_NEST_FIR_CLR:
-        stack->nest_regs[PEC_NEST_STK_PCI_NEST_FIR] &= val;
-        break;
-    case PEC_NEST_STK_PCI_NEST_FIR_SET:
-        stack->nest_regs[PEC_NEST_STK_PCI_NEST_FIR] |= val;
-        break;
-    case PEC_NEST_STK_PCI_NEST_FIR_MSK:
-        stack->nest_regs[PEC_NEST_STK_PCI_NEST_FIR_MSK] = val;
-        break;
-    case PEC_NEST_STK_PCI_NEST_FIR_MSKC:
-        stack->nest_regs[PEC_NEST_STK_PCI_NEST_FIR_MSK] &= val;
-        break;
-    case PEC_NEST_STK_PCI_NEST_FIR_MSKS:
-        stack->nest_regs[PEC_NEST_STK_PCI_NEST_FIR_MSK] |= val;
-        break;
-    case PEC_NEST_STK_PCI_NEST_FIR_ACT0:
-    case PEC_NEST_STK_PCI_NEST_FIR_ACT1:
-        stack->nest_regs[reg] = val;
-        break;
-    case PEC_NEST_STK_PCI_NEST_FIR_WOF:
-        stack->nest_regs[reg] = 0;
-        break;
-    case PEC_NEST_STK_ERR_REPORT_0:
-    case PEC_NEST_STK_ERR_REPORT_1:
-    case PEC_NEST_STK_PBCQ_GNRL_STATUS:
-        /* Flag error ? */
-        break;
-    case PEC_NEST_STK_PBCQ_MODE:
-        stack->nest_regs[reg] = val & 0xff00000000000000ull;
-        break;
-    case PEC_NEST_STK_MMIO_BAR0:
-    case PEC_NEST_STK_MMIO_BAR0_MASK:
-    case PEC_NEST_STK_MMIO_BAR1:
-    case PEC_NEST_STK_MMIO_BAR1_MASK:
-        if (stack->nest_regs[PEC_NEST_STK_BAR_EN] &
-            (PEC_NEST_STK_BAR_EN_MMIO0 |
-             PEC_NEST_STK_BAR_EN_MMIO1)) {
-            phb_pec_error(pec, "Changing enabled BAR unsupported\n");
-        }
-        stack->nest_regs[reg] = val & 0xffffffffff000000ull;
-        break;
-    case PEC_NEST_STK_PHB_REGS_BAR:
-        if (stack->nest_regs[PEC_NEST_STK_BAR_EN] & PEC_NEST_STK_BAR_EN_PHB) {
-            phb_pec_error(pec, "Changing enabled BAR unsupported\n");
-        }
-        stack->nest_regs[reg] = val & 0xffffffffffc00000ull;
-        break;
-    case PEC_NEST_STK_INT_BAR:
-        if (stack->nest_regs[PEC_NEST_STK_BAR_EN] & PEC_NEST_STK_BAR_EN_INT) {
-            phb_pec_error(pec, "Changing enabled BAR unsupported\n");
-        }
-        stack->nest_regs[reg] = val & 0xfffffff000000000ull;
-        break;
-    case PEC_NEST_STK_BAR_EN:
-        stack->nest_regs[reg] = val & 0xf000000000000000ull;
-        pnv_pec_stk_update_map(stack);
-        break;
-    case PEC_NEST_STK_DATA_FRZ_TYPE:
-    case PEC_NEST_STK_PBCQ_TUN_BAR:
-        /* Not used for now */
-        stack->nest_regs[reg] = val;
-        break;
-    default:
-        qemu_log_mask(LOG_UNIMP, "phb4_pec: nest_xscom_write 0x%"HWADDR_PRIx
-                      "=%"PRIx64"\n", addr, val);
-    }
-}
-
-static const MemoryRegionOps pnv_pec_stk_nest_xscom_ops = {
-    .read = pnv_pec_stk_nest_xscom_read,
-    .write = pnv_pec_stk_nest_xscom_write,
-    .valid.min_access_size = 8,
-    .valid.max_access_size = 8,
-    .impl.min_access_size = 8,
-    .impl.max_access_size = 8,
-    .endianness = DEVICE_BIG_ENDIAN,
-};
-
-static uint64_t pnv_pec_stk_pci_xscom_read(void *opaque, hwaddr addr,
-                                           unsigned size)
-{
-    PnvPhb4PecStack *stack = PNV_PHB4_PEC_STACK(opaque);
-    uint32_t reg = addr >> 3;
-
-    /* TODO: add list of allowed registers and error out if not */
-    return stack->pci_regs[reg];
-}
-
-static void pnv_pec_stk_pci_xscom_write(void *opaque, hwaddr addr,
-                                        uint64_t val, unsigned size)
-{
-    PnvPhb4PecStack *stack = PNV_PHB4_PEC_STACK(opaque);
-    uint32_t reg = addr >> 3;
-
-    switch (reg) {
-    case PEC_PCI_STK_PCI_FIR:
-        stack->nest_regs[reg] = val;
-        break;
-    case PEC_PCI_STK_PCI_FIR_CLR:
-        stack->nest_regs[PEC_PCI_STK_PCI_FIR] &= val;
-        break;
-    case PEC_PCI_STK_PCI_FIR_SET:
-        stack->nest_regs[PEC_PCI_STK_PCI_FIR] |= val;
-        break;
-    case PEC_PCI_STK_PCI_FIR_MSK:
-        stack->nest_regs[reg] = val;
-        break;
-    case PEC_PCI_STK_PCI_FIR_MSKC:
-        stack->nest_regs[PEC_PCI_STK_PCI_FIR_MSK] &= val;
-        break;
-    case PEC_PCI_STK_PCI_FIR_MSKS:
-        stack->nest_regs[PEC_PCI_STK_PCI_FIR_MSK] |= val;
-        break;
-    case PEC_PCI_STK_PCI_FIR_ACT0:
-    case PEC_PCI_STK_PCI_FIR_ACT1:
-        stack->nest_regs[reg] = val;
-        break;
-    case PEC_PCI_STK_PCI_FIR_WOF:
-        stack->nest_regs[reg] = 0;
-        break;
-    case PEC_PCI_STK_ETU_RESET:
-        stack->nest_regs[reg] = val & 0x8000000000000000ull;
-        /* TODO: Implement reset */
-        break;
-    case PEC_PCI_STK_PBAIB_ERR_REPORT:
-        break;
-    case PEC_PCI_STK_PBAIB_TX_CMD_CRED:
-    case PEC_PCI_STK_PBAIB_TX_DAT_CRED:
-        stack->nest_regs[reg] = val;
-        break;
-    default:
-        qemu_log_mask(LOG_UNIMP, "phb4_pec_stk: pci_xscom_write 0x%"HWADDR_PRIx
-                      "=%"PRIx64"\n", addr, val);
-    }
-}
-
-static const MemoryRegionOps pnv_pec_stk_pci_xscom_ops = {
-    .read = pnv_pec_stk_pci_xscom_read,
-    .write = pnv_pec_stk_pci_xscom_write,
-    .valid.min_access_size = 8,
-    .valid.max_access_size = 8,
-    .impl.min_access_size = 8,
-    .impl.max_access_size = 8,
-    .endianness = DEVICE_BIG_ENDIAN,
-};
-
 static void pnv_pec_instance_init(Object *obj)
 {
     PnvPhb4PecState *pec = PNV_PHB4_PEC(obj);
@@ -539,32 +287,7 @@ static void pnv_pec_stk_realize(DeviceState *dev, Error **errp)
     PnvPhb4PecStack *stack = PNV_PHB4_PEC_STACK(dev);
     PnvPhb4PecState *pec = stack->pec;
     PnvPhb4PecClass *pecc = PNV_PHB4_PEC_GET_CLASS(pec);
-    PnvChip *chip = pec->chip;
     int phb_id = pnv_phb4_pec_get_phb_id(pec, stack->stack_no);
-    uint32_t pec_nest_base;
-    uint32_t pec_pci_base;
-    char name[64];
-
-    assert(pec);
-
-    /* Initialize the XSCOM regions for the stack registers */
-    snprintf(name, sizeof(name), "xscom-pec-%d.%d-nest-stack-%d",
-             pec->chip_id, pec->index, stack->stack_no);
-    pnv_xscom_region_init(&stack->nest_regs_mr, OBJECT(stack),
-                          &pnv_pec_stk_nest_xscom_ops, stack, name,
-                          PHB4_PEC_NEST_STK_REGS_COUNT);
-
-    snprintf(name, sizeof(name), "xscom-pec-%d.%d-pci-stack-%d",
-             pec->chip_id, pec->index, stack->stack_no);
-    pnv_xscom_region_init(&stack->pci_regs_mr, OBJECT(stack),
-                          &pnv_pec_stk_pci_xscom_ops, stack, name,
-                          PHB4_PEC_PCI_STK_REGS_COUNT);
-
-    /* PHB pass-through */
-    snprintf(name, sizeof(name), "xscom-pec-%d.%d-pci-stack-%d-phb",
-             pec->chip_id, pec->index, stack->stack_no);
-    pnv_xscom_region_init(&stack->phb_regs_mr, OBJECT(&stack->phb),
-                          &pnv_phb4_xscom_ops, &stack->phb, name, 0x40);
 
     object_property_set_int(OBJECT(&stack->phb), "chip-id", pec->chip_id,
                             &error_fatal);
@@ -577,21 +300,6 @@ static void pnv_pec_stk_realize(DeviceState *dev, Error **errp)
     if (!sysbus_realize(SYS_BUS_DEVICE(&stack->phb), errp)) {
         return;
     }
-
-    pec_nest_base = pecc->xscom_nest_base(pec);
-    pec_pci_base = pecc->xscom_pci_base(pec);
-
-    /* Populate the XSCOM address space. */
-    pnv_xscom_add_subregion(chip,
-                            pec_nest_base + 0x40 * (stack->stack_no + 1),
-                            &stack->nest_regs_mr);
-    pnv_xscom_add_subregion(chip,
-                            pec_pci_base + 0x40 * (stack->stack_no + 1),
-                            &stack->pci_regs_mr);
-    pnv_xscom_add_subregion(chip,
-                            pec_pci_base + PNV9_XSCOM_PEC_PCI_STK0 +
-                            0x40 * stack->stack_no,
-                            &stack->phb_regs_mr);
 }
 
 static Property pnv_pec_stk_properties[] = {
-- 
2.31.1



^ permalink raw reply related	[flat|nested] 40+ messages in thread

* [PULL 31/34] ppc/pnv: turn 'phb' into a pointer in struct PnvPhb4PecStack
  2022-01-12 11:55 [PULL 00/34] ppc queue Cédric Le Goater
                   ` (29 preceding siblings ...)
  2022-01-12 11:55 ` [PULL 30/34] ppc/pnv: move PHB4 XSCOM init to phb4_realize() Cédric Le Goater
@ 2022-01-12 11:55 ` Cédric Le Goater
  2022-01-12 11:55 ` [PULL 32/34] ppc/pnv: Introduce user creatable pnv-phb4 devices Cédric Le Goater
                   ` (3 subsequent siblings)
  34 siblings, 0 replies; 40+ messages in thread
From: Cédric Le Goater @ 2022-01-12 11:55 UTC (permalink / raw)
  To: qemu-ppc, qemu-devel
  Cc: Peter Maydell, Daniel Henrique Barboza, Richard Henderson,
	Cédric Le Goater

From: Daniel Henrique Barboza <danielhb413@gmail.com>

At this moment, stack->phb is the plain PnvPHB4 device itself instead of
a pointer to the device. This will present a problem when adding user
creatable devices because we can't deal with this struct and the
realize() callback from the user creatable device.

We can't get rid of this attribute, similar to what we did when enabling
pnv-phb3 user creatable devices, because pnv_phb4_update_regions() needs
to access stack->phb to do its job. This function is called twice in
pnv_pec_stk_update_map(), which is one of the nested xscom write
callbacks (via pnv_pec_stk_nest_xscom_write()). In fact,
pnv_pec_stk_update_map() code comment is explicit about how the order of
the unmap/map operations relates with the PHB subregions.

All of this indicates that this code is tied together in a way that we
either go on a crusade, featuring lots of refactories and redesign and
considerable pain, to decouple stack and phb mapping, or we allow stack
update_map operations to access the associated PHB as it is today even
after introducing pnv-phb4 user devices.

This patch chooses the latter. Instead of getting rid of stack->phb,
turn it into a PHB pointer. This will allow us to assign an user created
PHB to an existing stack later. In this process,
pnv_pec_stk_instance_init() is removed because stack->phb is being
initialized in stk_realize() instead.

Reviewed-by: Cédric Le Goater <clg@kaod.org>
Signed-off-by: Daniel Henrique Barboza <danielhb413@gmail.com>
Message-Id: <20220111131027.599784-4-danielhb413@gmail.com>
Signed-off-by: Cédric Le Goater <clg@kaod.org>
---
 include/hw/pci-host/pnv_phb4.h |  7 +++++--
 hw/pci-host/pnv_phb4.c         |  2 +-
 hw/pci-host/pnv_phb4_pec.c     | 20 +++++++-------------
 3 files changed, 13 insertions(+), 16 deletions(-)

diff --git a/include/hw/pci-host/pnv_phb4.h b/include/hw/pci-host/pnv_phb4.h
index 5ee996ebc650..82f054cf218a 100644
--- a/include/hw/pci-host/pnv_phb4.h
+++ b/include/hw/pci-host/pnv_phb4.h
@@ -177,8 +177,11 @@ struct PnvPhb4PecStack {
     /* The owner PEC */
     PnvPhb4PecState *pec;
 
-    /* The actual PHB */
-    PnvPHB4 phb;
+    /*
+     * PHB4 pointer. pnv_phb4_update_regions() needs to access
+     * the PHB4 via a PnvPhb4PecStack pointer.
+     */
+    PnvPHB4 *phb;
 };
 
 struct PnvPhb4PecState {
diff --git a/hw/pci-host/pnv_phb4.c b/hw/pci-host/pnv_phb4.c
index 8ef58bf2de7a..e25adb88604c 100644
--- a/hw/pci-host/pnv_phb4.c
+++ b/hw/pci-host/pnv_phb4.c
@@ -1728,7 +1728,7 @@ type_init(pnv_phb4_register_types);
 
 void pnv_phb4_update_regions(PnvPhb4PecStack *stack)
 {
-    PnvPHB4 *phb = &stack->phb;
+    PnvPHB4 *phb = stack->phb;
 
     /* Unmap first always */
     if (memory_region_is_mapped(&phb->mr_regs)) {
diff --git a/hw/pci-host/pnv_phb4_pec.c b/hw/pci-host/pnv_phb4_pec.c
index bf0fdf33fd8c..d4c52a5d284c 100644
--- a/hw/pci-host/pnv_phb4_pec.c
+++ b/hw/pci-host/pnv_phb4_pec.c
@@ -275,13 +275,6 @@ static const TypeInfo pnv_pec_type_info = {
     }
 };
 
-static void pnv_pec_stk_instance_init(Object *obj)
-{
-    PnvPhb4PecStack *stack = PNV_PHB4_PEC_STACK(obj);
-
-    object_initialize_child(obj, "phb", &stack->phb, TYPE_PNV_PHB4);
-}
-
 static void pnv_pec_stk_realize(DeviceState *dev, Error **errp)
 {
     PnvPhb4PecStack *stack = PNV_PHB4_PEC_STACK(dev);
@@ -289,15 +282,17 @@ static void pnv_pec_stk_realize(DeviceState *dev, Error **errp)
     PnvPhb4PecClass *pecc = PNV_PHB4_PEC_GET_CLASS(pec);
     int phb_id = pnv_phb4_pec_get_phb_id(pec, stack->stack_no);
 
-    object_property_set_int(OBJECT(&stack->phb), "chip-id", pec->chip_id,
+    stack->phb = PNV_PHB4(qdev_new(TYPE_PNV_PHB4));
+
+    object_property_set_int(OBJECT(stack->phb), "chip-id", pec->chip_id,
                             &error_fatal);
-    object_property_set_int(OBJECT(&stack->phb), "index", phb_id,
+    object_property_set_int(OBJECT(stack->phb), "index", phb_id,
                             &error_fatal);
-    object_property_set_int(OBJECT(&stack->phb), "version", pecc->version,
+    object_property_set_int(OBJECT(stack->phb), "version", pecc->version,
                             &error_fatal);
-    object_property_set_link(OBJECT(&stack->phb), "stack", OBJECT(stack),
+    object_property_set_link(OBJECT(stack->phb), "stack", OBJECT(stack),
                              &error_abort);
-    if (!sysbus_realize(SYS_BUS_DEVICE(&stack->phb), errp)) {
+    if (!sysbus_realize(SYS_BUS_DEVICE(stack->phb), errp)) {
         return;
     }
 }
@@ -324,7 +319,6 @@ static const TypeInfo pnv_pec_stk_type_info = {
     .name          = TYPE_PNV_PHB4_PEC_STACK,
     .parent        = TYPE_DEVICE,
     .instance_size = sizeof(PnvPhb4PecStack),
-    .instance_init = pnv_pec_stk_instance_init,
     .class_init    = pnv_pec_stk_class_init,
     .interfaces    = (InterfaceInfo[]) {
         { TYPE_PNV_XSCOM_INTERFACE },
-- 
2.31.1



^ permalink raw reply related	[flat|nested] 40+ messages in thread

* [PULL 32/34] ppc/pnv: Introduce user creatable pnv-phb4 devices
  2022-01-12 11:55 [PULL 00/34] ppc queue Cédric Le Goater
                   ` (30 preceding siblings ...)
  2022-01-12 11:55 ` [PULL 31/34] ppc/pnv: turn 'phb' into a pointer in struct PnvPhb4PecStack Cédric Le Goater
@ 2022-01-12 11:55 ` Cédric Le Goater
  2022-01-12 11:55 ` [PULL 33/34] ppc/pnv: turn pnv_phb4_update_regions() into static Cédric Le Goater
                   ` (2 subsequent siblings)
  34 siblings, 0 replies; 40+ messages in thread
From: Cédric Le Goater @ 2022-01-12 11:55 UTC (permalink / raw)
  To: qemu-ppc, qemu-devel
  Cc: Peter Maydell, Daniel Henrique Barboza, Richard Henderson,
	Cédric Le Goater

From: Daniel Henrique Barboza <danielhb413@gmail.com>

This patch introduces pnv-phb4 user creatable devices that are created
in a similar manner as pnv-phb3 devices, allowing the user to interact
with the PHBs directly instead of creating PCI Express Controllers that
will create a certain amount of PHBs per controller index.

We accomplish this by doing the following:

- add a pnv_phb4_get_stack() helper to retrieve which stack an user
created phb4 would occupy;

- when dealing with an user created pnv-phb4 (detected by checking if
phb->stack is NULL at the start of phb4_realize()), retrieve its stack
and initialize its properties as done in stk_realize();

- use 'defaults_enabled()' in stk_realize() to avoid creating and
initializing a 'stack->phb' qdev that might be overwritten by an user
created pnv-phb4 device. This process is wrapped into a new helper
called pnv_pec_stk_default_phb_realize().

Reviewed-by: Cédric Le Goater <clg@kaod.org>
Signed-off-by: Daniel Henrique Barboza <danielhb413@gmail.com>
Message-Id: <20220111131027.599784-5-danielhb413@gmail.com>
Signed-off-by: Cédric Le Goater <clg@kaod.org>
---
 hw/pci-host/pnv_phb4.c     | 74 ++++++++++++++++++++++++++++++++++++--
 hw/pci-host/pnv_phb4_pec.c | 17 +++++++--
 hw/ppc/pnv.c               |  2 ++
 3 files changed, 89 insertions(+), 4 deletions(-)

diff --git a/hw/pci-host/pnv_phb4.c b/hw/pci-host/pnv_phb4.c
index e25adb88604c..ffa1453eee26 100644
--- a/hw/pci-host/pnv_phb4.c
+++ b/hw/pci-host/pnv_phb4.c
@@ -1487,15 +1487,85 @@ static void pnv_phb4_instance_init(Object *obj)
     object_initialize_child(obj, "source", &phb->xsrc, TYPE_XIVE_SOURCE);
 }
 
+static PnvPhb4PecStack *pnv_phb4_get_stack(PnvChip *chip, PnvPHB4 *phb,
+                                           Error **errp)
+{
+    Pnv9Chip *chip9 = PNV9_CHIP(chip);
+    int chip_id = phb->chip_id;
+    int index = phb->phb_id;
+    int i, j;
+
+    for (i = 0; i < chip->num_pecs; i++) {
+        /*
+         * For each PEC, check the amount of stacks it supports
+         * and see if the given phb4 index matches a stack.
+         */
+        PnvPhb4PecState *pec = &chip9->pecs[i];
+
+        for (j = 0; j < pec->num_stacks; j++) {
+            if (index == pnv_phb4_pec_get_phb_id(pec, j)) {
+                return &pec->stacks[j];
+            }
+        }
+    }
+
+    error_setg(errp,
+               "pnv-phb4 chip-id %d index %d didn't match any existing PEC",
+               chip_id, index);
+
+    return NULL;
+}
+
 static void pnv_phb4_realize(DeviceState *dev, Error **errp)
 {
     PnvPHB4 *phb = PNV_PHB4(dev);
     PCIHostState *pci = PCI_HOST_BRIDGE(dev);
     XiveSource *xsrc = &phb->xsrc;
+    Error *local_err = NULL;
     int nr_irqs;
     char name[32];
 
-    assert(phb->stack);
+    /* User created PHB */
+    if (!phb->stack) {
+        PnvMachineState *pnv = PNV_MACHINE(qdev_get_machine());
+        PnvChip *chip = pnv_get_chip(pnv, phb->chip_id);
+        PnvPhb4PecClass *pecc;
+        BusState *s;
+
+        if (!chip) {
+            error_setg(errp, "invalid chip id: %d", phb->chip_id);
+            return;
+        }
+
+        phb->stack = pnv_phb4_get_stack(chip, phb, &local_err);
+        if (local_err) {
+            error_propagate(errp, local_err);
+            return;
+        }
+
+        /* All other phb properties but 'version' are already set */
+        pecc = PNV_PHB4_PEC_GET_CLASS(phb->stack->pec);
+        object_property_set_int(OBJECT(phb), "version", pecc->version,
+                                &error_fatal);
+
+        /*
+         * Assign stack->phb since pnv_phb4_update_regions() uses it
+         * to access the phb.
+         */
+        phb->stack->phb = phb;
+
+        /*
+         * Reparent user created devices to the chip to build
+         * correctly the device tree.
+         */
+        pnv_chip_parent_fixup(chip, OBJECT(phb), phb->phb_id);
+
+        s = qdev_get_parent_bus(DEVICE(chip));
+        if (!qdev_set_parent_bus(DEVICE(phb), s, &local_err)) {
+            error_propagate(errp, local_err);
+            return;
+        }
+    }
 
     /* Set the "big_phb" flag */
     phb->big_phb = phb->phb_id == 0 || phb->phb_id == 3;
@@ -1600,7 +1670,7 @@ static void pnv_phb4_class_init(ObjectClass *klass, void *data)
     dc->realize         = pnv_phb4_realize;
     device_class_set_props(dc, pnv_phb4_properties);
     set_bit(DEVICE_CATEGORY_BRIDGE, dc->categories);
-    dc->user_creatable  = false;
+    dc->user_creatable  = true;
 
     xfc->notify         = pnv_phb4_xive_notify;
 }
diff --git a/hw/pci-host/pnv_phb4_pec.c b/hw/pci-host/pnv_phb4_pec.c
index d4c52a5d284c..7fe7f1f007dd 100644
--- a/hw/pci-host/pnv_phb4_pec.c
+++ b/hw/pci-host/pnv_phb4_pec.c
@@ -19,6 +19,7 @@
 #include "hw/pci/pci_bus.h"
 #include "hw/ppc/pnv.h"
 #include "hw/qdev-properties.h"
+#include "sysemu/sysemu.h"
 
 #include <libfdt.h>
 
@@ -275,9 +276,9 @@ static const TypeInfo pnv_pec_type_info = {
     }
 };
 
-static void pnv_pec_stk_realize(DeviceState *dev, Error **errp)
+static void pnv_pec_stk_default_phb_realize(PnvPhb4PecStack *stack,
+                                            Error **errp)
 {
-    PnvPhb4PecStack *stack = PNV_PHB4_PEC_STACK(dev);
     PnvPhb4PecState *pec = stack->pec;
     PnvPhb4PecClass *pecc = PNV_PHB4_PEC_GET_CLASS(pec);
     int phb_id = pnv_phb4_pec_get_phb_id(pec, stack->stack_no);
@@ -292,11 +293,23 @@ static void pnv_pec_stk_realize(DeviceState *dev, Error **errp)
                             &error_fatal);
     object_property_set_link(OBJECT(stack->phb), "stack", OBJECT(stack),
                              &error_abort);
+
     if (!sysbus_realize(SYS_BUS_DEVICE(stack->phb), errp)) {
         return;
     }
 }
 
+static void pnv_pec_stk_realize(DeviceState *dev, Error **errp)
+{
+    PnvPhb4PecStack *stack = PNV_PHB4_PEC_STACK(dev);
+
+    if (!defaults_enabled()) {
+        return;
+    }
+
+    pnv_pec_stk_default_phb_realize(stack, errp);
+}
+
 static Property pnv_pec_stk_properties[] = {
         DEFINE_PROP_UINT32("stack-no", PnvPhb4PecStack, stack_no, 0),
         DEFINE_PROP_LINK("pec", PnvPhb4PecStack, pec, TYPE_PNV_PHB4_PEC,
diff --git a/hw/ppc/pnv.c b/hw/ppc/pnv.c
index fe7e67e73a3c..837146a2fbbe 100644
--- a/hw/ppc/pnv.c
+++ b/hw/ppc/pnv.c
@@ -1960,6 +1960,8 @@ static void pnv_machine_power9_class_init(ObjectClass *oc, void *data)
     pmc->compat = compat;
     pmc->compat_size = sizeof(compat);
     pmc->dt_power_mgt = pnv_dt_power_mgt;
+
+    machine_class_allow_dynamic_sysbus_dev(mc, TYPE_PNV_PHB4);
 }
 
 static void pnv_machine_power10_class_init(ObjectClass *oc, void *data)
-- 
2.31.1



^ permalink raw reply related	[flat|nested] 40+ messages in thread

* [PULL 33/34] ppc/pnv: turn pnv_phb4_update_regions() into static
  2022-01-12 11:55 [PULL 00/34] ppc queue Cédric Le Goater
                   ` (31 preceding siblings ...)
  2022-01-12 11:55 ` [PULL 32/34] ppc/pnv: Introduce user creatable pnv-phb4 devices Cédric Le Goater
@ 2022-01-12 11:55 ` Cédric Le Goater
  2022-01-12 11:55 ` [PULL 34/34] ppc/pnv: use stack->pci_regs[] in pnv_pec_stk_pci_xscom_write() Cédric Le Goater
  2022-01-13 13:59 ` [PULL 00/34] ppc queue Peter Maydell
  34 siblings, 0 replies; 40+ messages in thread
From: Cédric Le Goater @ 2022-01-12 11:55 UTC (permalink / raw)
  To: qemu-ppc, qemu-devel
  Cc: Peter Maydell, Daniel Henrique Barboza, Richard Henderson,
	Cédric Le Goater

From: Daniel Henrique Barboza <danielhb413@gmail.com>

Its only callers are inside pnv_phb4.c.

Reviewed-by: Cédric Le Goater <clg@kaod.org>
Signed-off-by: Daniel Henrique Barboza <danielhb413@gmail.com>
Message-Id: <20220111131027.599784-6-danielhb413@gmail.com>
Signed-off-by: Cédric Le Goater <clg@kaod.org>
---
 include/hw/pci-host/pnv_phb4.h |  1 -
 hw/pci-host/pnv_phb4.c         | 52 +++++++++++++++++-----------------
 2 files changed, 26 insertions(+), 27 deletions(-)

diff --git a/include/hw/pci-host/pnv_phb4.h b/include/hw/pci-host/pnv_phb4.h
index 82f054cf218a..4b7ce8a7239f 100644
--- a/include/hw/pci-host/pnv_phb4.h
+++ b/include/hw/pci-host/pnv_phb4.h
@@ -131,7 +131,6 @@ struct PnvPHB4 {
 };
 
 void pnv_phb4_pic_print_info(PnvPHB4 *phb, Monitor *mon);
-void pnv_phb4_update_regions(PnvPhb4PecStack *stack);
 int pnv_phb4_pec_get_phb_id(PnvPhb4PecState *pec, int stack_index);
 extern const MemoryRegionOps pnv_phb4_xscom_ops;
 
diff --git a/hw/pci-host/pnv_phb4.c b/hw/pci-host/pnv_phb4.c
index ffa1453eee26..be29174f13c5 100644
--- a/hw/pci-host/pnv_phb4.c
+++ b/hw/pci-host/pnv_phb4.c
@@ -868,6 +868,32 @@ static uint64_t pnv_pec_stk_nest_xscom_read(void *opaque, hwaddr addr,
     return stack->nest_regs[reg];
 }
 
+static void pnv_phb4_update_regions(PnvPhb4PecStack *stack)
+{
+    PnvPHB4 *phb = stack->phb;
+
+    /* Unmap first always */
+    if (memory_region_is_mapped(&phb->mr_regs)) {
+        memory_region_del_subregion(&stack->phbbar, &phb->mr_regs);
+    }
+    if (memory_region_is_mapped(&phb->xsrc.esb_mmio)) {
+        memory_region_del_subregion(&stack->intbar, &phb->xsrc.esb_mmio);
+    }
+
+    /* Map registers if enabled */
+    if (memory_region_is_mapped(&stack->phbbar)) {
+        memory_region_add_subregion(&stack->phbbar, 0, &phb->mr_regs);
+    }
+
+    /* Map ESB if enabled */
+    if (memory_region_is_mapped(&stack->intbar)) {
+        memory_region_add_subregion(&stack->intbar, 0, &phb->xsrc.esb_mmio);
+    }
+
+    /* Check/update m32 */
+    pnv_phb4_check_all_mbt(phb);
+}
+
 static void pnv_pec_stk_update_map(PnvPhb4PecStack *stack)
 {
     PnvPhb4PecState *pec = stack->pec;
@@ -1796,32 +1822,6 @@ static void pnv_phb4_register_types(void)
 
 type_init(pnv_phb4_register_types);
 
-void pnv_phb4_update_regions(PnvPhb4PecStack *stack)
-{
-    PnvPHB4 *phb = stack->phb;
-
-    /* Unmap first always */
-    if (memory_region_is_mapped(&phb->mr_regs)) {
-        memory_region_del_subregion(&stack->phbbar, &phb->mr_regs);
-    }
-    if (memory_region_is_mapped(&phb->xsrc.esb_mmio)) {
-        memory_region_del_subregion(&stack->intbar, &phb->xsrc.esb_mmio);
-    }
-
-    /* Map registers if enabled */
-    if (memory_region_is_mapped(&stack->phbbar)) {
-        memory_region_add_subregion(&stack->phbbar, 0, &phb->mr_regs);
-    }
-
-    /* Map ESB if enabled */
-    if (memory_region_is_mapped(&stack->intbar)) {
-        memory_region_add_subregion(&stack->intbar, 0, &phb->xsrc.esb_mmio);
-    }
-
-    /* Check/update m32 */
-    pnv_phb4_check_all_mbt(phb);
-}
-
 void pnv_phb4_pic_print_info(PnvPHB4 *phb, Monitor *mon)
 {
     uint32_t offset = phb->regs[PHB_INT_NOTIFY_INDEX >> 3];
-- 
2.31.1



^ permalink raw reply related	[flat|nested] 40+ messages in thread

* [PULL 34/34] ppc/pnv: use stack->pci_regs[] in pnv_pec_stk_pci_xscom_write()
  2022-01-12 11:55 [PULL 00/34] ppc queue Cédric Le Goater
                   ` (32 preceding siblings ...)
  2022-01-12 11:55 ` [PULL 33/34] ppc/pnv: turn pnv_phb4_update_regions() into static Cédric Le Goater
@ 2022-01-12 11:55 ` Cédric Le Goater
  2022-01-13 13:59 ` [PULL 00/34] ppc queue Peter Maydell
  34 siblings, 0 replies; 40+ messages in thread
From: Cédric Le Goater @ 2022-01-12 11:55 UTC (permalink / raw)
  To: qemu-ppc, qemu-devel
  Cc: Frederic Barrat, Peter Maydell, Daniel Henrique Barboza,
	Richard Henderson, Cédric Le Goater

From: Daniel Henrique Barboza <danielhb413@gmail.com>

pnv_pec_stk_pci_xscom_write() is pnv_pec_stk_pci_xscom_ops write
callback. It writes values into regs in the stack->nest_regs[] array.
The pnv_pec_stk_pci_xscom_read read callback, on the other hand, returns
values of the stack->pci_regs[]. In fact, at this moment, the only use
of stack->pci_regs[] is in pnv_pec_stk_pci_xscom_read(). There's no code
that is written anything in stack->pci_regs[], which is suspicious.

Considering that stack->nest_regs[] is widely used by the nested
MemoryOps pnv_pec_stk_nest_xscom_ops, in both read and write callbacks,
the conclusion is that we're writing the wrong array in
pnv_pec_stk_pci_xscom_write(). This function should write stack->pci_regs[]
instead.

Signed-off-by: Daniel Henrique Barboza <danielhb413@gmail.com>
Reviewed-by: Frederic Barrat <fbarrat@linux.ibm.com>
Message-Id: <20220111200132.633896-2-danielhb413@gmail.com>
Signed-off-by: Cédric Le Goater <clg@kaod.org>
---
 hw/pci-host/pnv_phb4.c | 20 ++++++++++----------
 1 file changed, 10 insertions(+), 10 deletions(-)

diff --git a/hw/pci-host/pnv_phb4.c b/hw/pci-host/pnv_phb4.c
index be29174f13c5..a7b638831ea5 100644
--- a/hw/pci-host/pnv_phb4.c
+++ b/hw/pci-host/pnv_phb4.c
@@ -1086,39 +1086,39 @@ static void pnv_pec_stk_pci_xscom_write(void *opaque, hwaddr addr,
 
     switch (reg) {
     case PEC_PCI_STK_PCI_FIR:
-        stack->nest_regs[reg] = val;
+        stack->pci_regs[reg] = val;
         break;
     case PEC_PCI_STK_PCI_FIR_CLR:
-        stack->nest_regs[PEC_PCI_STK_PCI_FIR] &= val;
+        stack->pci_regs[PEC_PCI_STK_PCI_FIR] &= val;
         break;
     case PEC_PCI_STK_PCI_FIR_SET:
-        stack->nest_regs[PEC_PCI_STK_PCI_FIR] |= val;
+        stack->pci_regs[PEC_PCI_STK_PCI_FIR] |= val;
         break;
     case PEC_PCI_STK_PCI_FIR_MSK:
-        stack->nest_regs[reg] = val;
+        stack->pci_regs[reg] = val;
         break;
     case PEC_PCI_STK_PCI_FIR_MSKC:
-        stack->nest_regs[PEC_PCI_STK_PCI_FIR_MSK] &= val;
+        stack->pci_regs[PEC_PCI_STK_PCI_FIR_MSK] &= val;
         break;
     case PEC_PCI_STK_PCI_FIR_MSKS:
-        stack->nest_regs[PEC_PCI_STK_PCI_FIR_MSK] |= val;
+        stack->pci_regs[PEC_PCI_STK_PCI_FIR_MSK] |= val;
         break;
     case PEC_PCI_STK_PCI_FIR_ACT0:
     case PEC_PCI_STK_PCI_FIR_ACT1:
-        stack->nest_regs[reg] = val;
+        stack->pci_regs[reg] = val;
         break;
     case PEC_PCI_STK_PCI_FIR_WOF:
-        stack->nest_regs[reg] = 0;
+        stack->pci_regs[reg] = 0;
         break;
     case PEC_PCI_STK_ETU_RESET:
-        stack->nest_regs[reg] = val & 0x8000000000000000ull;
+        stack->pci_regs[reg] = val & 0x8000000000000000ull;
         /* TODO: Implement reset */
         break;
     case PEC_PCI_STK_PBAIB_ERR_REPORT:
         break;
     case PEC_PCI_STK_PBAIB_TX_CMD_CRED:
     case PEC_PCI_STK_PBAIB_TX_DAT_CRED:
-        stack->nest_regs[reg] = val;
+        stack->pci_regs[reg] = val;
         break;
     default:
         qemu_log_mask(LOG_UNIMP, "phb4_pec_stk: pci_xscom_write 0x%"HWADDR_PRIx
-- 
2.31.1



^ permalink raw reply related	[flat|nested] 40+ messages in thread

* Re: [PULL 00/34] ppc queue
  2022-01-12 11:55 [PULL 00/34] ppc queue Cédric Le Goater
                   ` (33 preceding siblings ...)
  2022-01-12 11:55 ` [PULL 34/34] ppc/pnv: use stack->pci_regs[] in pnv_pec_stk_pci_xscom_write() Cédric Le Goater
@ 2022-01-13 13:59 ` Peter Maydell
  34 siblings, 0 replies; 40+ messages in thread
From: Peter Maydell @ 2022-01-13 13:59 UTC (permalink / raw)
  To: Cédric Le Goater; +Cc: Richard Henderson, qemu-ppc, qemu-devel

On Wed, 12 Jan 2022 at 11:56, Cédric Le Goater <clg@kaod.org> wrote:
>
> The following changes since commit 7bb1272f40bdbdebcaec1737c412dcb52e414842:
>
>   Merge remote-tracking branch 'remotes/jsnow-gitlab/tags/python-pull-request' into staging (2022-01-11 14:20:42 +0000)
>
> are available in the Git repository at:
>
>   https://github.com/legoater/qemu/ tags/pull-ppc-20220112
>
> for you to fetch changes up to f83460bb203a49dd1693bf8b664d2a935a5be621:
>
>   ppc/pnv: use stack->pci_regs[] in pnv_pec_stk_pci_xscom_write() (2022-01-12 11:28:27 +0100)
>
> ----------------------------------------------------------------
> ppc 7.0 queue:
>
> * New SLOF for PPC970 and POWER5+ (Alexey)
> * Fixes for POWER5+ pseries (Cedric)
> * Updates of documentation (Leonardo and Thomas)
> * First step of exception model cleanup (Fabiano)
> * User created PHB3/PHB4 devices (Daniel and Cedric)
>
> ----------------------------------------------------------------


Applied, thanks.

Please update the changelog at https://wiki.qemu.org/ChangeLog/7.0
for any user-visible changes.

-- PMM


^ permalink raw reply	[flat|nested] 40+ messages in thread

* Re: [PULL 00/34] ppc queue
  2022-07-06 20:09 Daniel Henrique Barboza
@ 2022-07-07  2:24 ` Richard Henderson
  0 siblings, 0 replies; 40+ messages in thread
From: Richard Henderson @ 2022-07-07  2:24 UTC (permalink / raw)
  To: Daniel Henrique Barboza, qemu-devel; +Cc: qemu-ppc, peter.maydell

On 7/7/22 01:39, Daniel Henrique Barboza wrote:
> The following changes since commit 180c2f24d5e8eada41e012a3899d29bb695aae06:
> 
>    Merge tag 'net-pull-request' of https://github.com/jasowang/qemu into staging (2022-07-06 10:41:34 +0530)
> 
> are available in the Git repository at:
> 
>    https://gitlab.com/danielhb/qemu.git tags/pull-ppc-20220706
> 
> for you to fetch changes up to 0b83377f46042529adbbf3a77f7ffb6f1e8a0aaa:
> 
>    target/ppc: Fix MPC8555 and MPC8560 core type to e500v1 (2022-07-06 10:30:01 -0300)
> 
> ----------------------------------------------------------------
> ppc patch queue for 2022-07-06:
> 
> This queue consists of improvements and bug fixes in TCG, powernv and
> pSeries, with some fixes in other areas as well.
> 
> - tcg and target/ppc: BCDA and mffscdrn implementations, Remove CONFIG_INT128
> conditional code
> - fix '-cpu max' alias
> - remove '-cpu default' alias
> - spapr: fixes in DDW handling, H_WATCHDOG support
> - powernv: cleanups in the pnv-phb3/4 models
> - fix core type of MPC8555 and MPC8560 models

Applied, thanks.  Please update https://wiki.qemu.org/ChangeLog/7.1 as appropriate.


r~


> 
> ----------------------------------------------------------------
> Alexey Kardashevskiy (4):
>        spapr/ddw: Reset DMA when the last non-default window is removed
>        spapr/ddw: Implement 64bit query extension
>        ppc: Define SETFIELD for the ppc target
>        ppc/spapr: Implement H_WATCHDOG
> 
> Daniel Henrique Barboza (8):
>        ppc/pnv: move root port attach to pnv_phb4_realize()
>        ppc/pnv: attach phb3/phb4 root ports in QOM tree
>        ppc/pnv: assign pnv-phb-root-port chassis/slot earlier
>        ppc/pnv: make pnv_ics_get() use the chip8->phbs[] array
>        ppc/pnv: make pnv_ics_resend() use chip8->phbs[]
>        ppc/pnv: make pnv_chip_power8_pic_print_info() use chip8->phbs[]
>        ppc/pnv: remove 'INTERFACE_PCIE_DEVICE' from phb3 root bus
>        ppc/pnv: remove 'INTERFACE_PCIE_DEVICE' from phb4 root bus
> 
> Matheus Ferst (11):
>        target/ppc: use int128.h methods in vpmsumd
>        target/ppc: use int128.h methods in vadduqm
>        target/ppc: use int128.h methods in vaddecuq and vaddeuqm
>        target/ppc: use int128.h methods in vaddcuq
>        target/ppc: use int128.h methods in vsubuqm
>        target/ppc: use int128.h methods in vsubecuq and vsubeuqm
>        target/ppc: use int128.h methods in vsubcuq
>        target/ppc: Add flag for ISA v2.06 BCDA instructions
>        target/ppc: implement addg6s
>        target/ppc: implement cbcdtd
>        target/ppc: implement cdtbcd
> 
> Murilo Opsfelder Araujo (1):
>        target/ppc: Return default CPU for max CPU
> 
> Pali Rohár (1):
>        target/ppc: Fix MPC8555 and MPC8560 core type to e500v1
> 
> Thomas Huth (1):
>        target/ppc/cpu-models: Remove the "default" CPU alias
> 
> Víctor Colombo (8):
>        target/ppc: Change FPSCR_* to follow POWER ISA numbering convention
>        target/ppc: Fix insn32.decode style issues
>        target/ppc: Move mffscrn[i] to decodetree
>        target/ppc: Move mffsce to decodetree
>        target/ppc: Move mffsl to decodetree
>        target/ppc: Move mffs[.] to decodetree
>        target/ppc: Implement mffscdrn[i] instructions
>        tests/tcg/ppc64: Add mffsce test
> 
>   hw/intc/pnv_xive.c                         |  20 ---
>   hw/intc/pnv_xive2.c                        |  20 ---
>   hw/pci-host/pnv_phb3.c                     |  22 +--
>   hw/pci-host/pnv_phb4.c                     |  40 +----
>   hw/pci-host/pnv_phb4_pec.c                 |   3 -
>   hw/ppc/pnv.c                               | 102 +++++------
>   hw/ppc/spapr.c                             |   4 +
>   hw/ppc/spapr_iommu.c                       |   3 +-
>   hw/ppc/spapr_pci.c                         |   6 +-
>   hw/ppc/spapr_rtas_ddw.c                    |  34 +++-
>   hw/watchdog/meson.build                    |   1 +
>   hw/watchdog/spapr_watchdog.c               | 274 +++++++++++++++++++++++++++++
>   hw/watchdog/trace-events                   |   7 +
>   include/hw/pci-host/pnv_phb3_regs.h        |  16 --
>   include/hw/ppc/pnv.h                       |   3 +-
>   include/hw/ppc/spapr.h                     |  26 ++-
>   target/ppc/cpu-models.c                    |  17 +-
>   target/ppc/cpu-models.h                    |  14 +-
>   target/ppc/cpu.h                           |  89 ++++++----
>   target/ppc/cpu_init.c                      |  29 ++-
>   target/ppc/dfp_helper.c                    |  65 +++++++
>   target/ppc/helper.h                        |  20 ++-
>   target/ppc/insn32.decode                   |  71 ++++++--
>   target/ppc/int_helper.c                    | 229 ++++--------------------
>   target/ppc/internal.h                      |   3 -
>   target/ppc/translate/fixedpoint-impl.c.inc |  51 ++++++
>   target/ppc/translate/fp-impl.c.inc         | 203 +++++++++++----------
>   target/ppc/translate/fp-ops.c.inc          |   9 -
>   target/ppc/translate/vmx-impl.c.inc        |  32 ++--
>   target/ppc/translate/vmx-ops.c.inc         |   9 +-
>   tests/tcg/ppc64/Makefile.target            |   1 +
>   tests/tcg/ppc64le/Makefile.target          |   1 +
>   tests/tcg/ppc64le/mffsce.c                 |  37 ++++
>   33 files changed, 885 insertions(+), 576 deletions(-)
>   create mode 100644 hw/watchdog/spapr_watchdog.c
>   create mode 100644 tests/tcg/ppc64le/mffsce.c



^ permalink raw reply	[flat|nested] 40+ messages in thread

* [PULL 00/34] ppc queue
@ 2022-07-06 20:09 Daniel Henrique Barboza
  2022-07-07  2:24 ` Richard Henderson
  0 siblings, 1 reply; 40+ messages in thread
From: Daniel Henrique Barboza @ 2022-07-06 20:09 UTC (permalink / raw)
  To: qemu-devel; +Cc: qemu-ppc, danielhb413, peter.maydell, richard.henderson

The following changes since commit 180c2f24d5e8eada41e012a3899d29bb695aae06:

  Merge tag 'net-pull-request' of https://github.com/jasowang/qemu into staging (2022-07-06 10:41:34 +0530)

are available in the Git repository at:

  https://gitlab.com/danielhb/qemu.git tags/pull-ppc-20220706

for you to fetch changes up to 0b83377f46042529adbbf3a77f7ffb6f1e8a0aaa:

  target/ppc: Fix MPC8555 and MPC8560 core type to e500v1 (2022-07-06 10:30:01 -0300)

----------------------------------------------------------------
ppc patch queue for 2022-07-06:

This queue consists of improvements and bug fixes in TCG, powernv and
pSeries, with some fixes in other areas as well.

- tcg and target/ppc: BCDA and mffscdrn implementations, Remove CONFIG_INT128
conditional code
- fix '-cpu max' alias
- remove '-cpu default' alias
- spapr: fixes in DDW handling, H_WATCHDOG support
- powernv: cleanups in the pnv-phb3/4 models
- fix core type of MPC8555 and MPC8560 models

----------------------------------------------------------------
Alexey Kardashevskiy (4):
      spapr/ddw: Reset DMA when the last non-default window is removed
      spapr/ddw: Implement 64bit query extension
      ppc: Define SETFIELD for the ppc target
      ppc/spapr: Implement H_WATCHDOG

Daniel Henrique Barboza (8):
      ppc/pnv: move root port attach to pnv_phb4_realize()
      ppc/pnv: attach phb3/phb4 root ports in QOM tree
      ppc/pnv: assign pnv-phb-root-port chassis/slot earlier
      ppc/pnv: make pnv_ics_get() use the chip8->phbs[] array
      ppc/pnv: make pnv_ics_resend() use chip8->phbs[]
      ppc/pnv: make pnv_chip_power8_pic_print_info() use chip8->phbs[]
      ppc/pnv: remove 'INTERFACE_PCIE_DEVICE' from phb3 root bus
      ppc/pnv: remove 'INTERFACE_PCIE_DEVICE' from phb4 root bus

Matheus Ferst (11):
      target/ppc: use int128.h methods in vpmsumd
      target/ppc: use int128.h methods in vadduqm
      target/ppc: use int128.h methods in vaddecuq and vaddeuqm
      target/ppc: use int128.h methods in vaddcuq
      target/ppc: use int128.h methods in vsubuqm
      target/ppc: use int128.h methods in vsubecuq and vsubeuqm
      target/ppc: use int128.h methods in vsubcuq
      target/ppc: Add flag for ISA v2.06 BCDA instructions
      target/ppc: implement addg6s
      target/ppc: implement cbcdtd
      target/ppc: implement cdtbcd

Murilo Opsfelder Araujo (1):
      target/ppc: Return default CPU for max CPU

Pali Rohár (1):
      target/ppc: Fix MPC8555 and MPC8560 core type to e500v1

Thomas Huth (1):
      target/ppc/cpu-models: Remove the "default" CPU alias

Víctor Colombo (8):
      target/ppc: Change FPSCR_* to follow POWER ISA numbering convention
      target/ppc: Fix insn32.decode style issues
      target/ppc: Move mffscrn[i] to decodetree
      target/ppc: Move mffsce to decodetree
      target/ppc: Move mffsl to decodetree
      target/ppc: Move mffs[.] to decodetree
      target/ppc: Implement mffscdrn[i] instructions
      tests/tcg/ppc64: Add mffsce test

 hw/intc/pnv_xive.c                         |  20 ---
 hw/intc/pnv_xive2.c                        |  20 ---
 hw/pci-host/pnv_phb3.c                     |  22 +--
 hw/pci-host/pnv_phb4.c                     |  40 +----
 hw/pci-host/pnv_phb4_pec.c                 |   3 -
 hw/ppc/pnv.c                               | 102 +++++------
 hw/ppc/spapr.c                             |   4 +
 hw/ppc/spapr_iommu.c                       |   3 +-
 hw/ppc/spapr_pci.c                         |   6 +-
 hw/ppc/spapr_rtas_ddw.c                    |  34 +++-
 hw/watchdog/meson.build                    |   1 +
 hw/watchdog/spapr_watchdog.c               | 274 +++++++++++++++++++++++++++++
 hw/watchdog/trace-events                   |   7 +
 include/hw/pci-host/pnv_phb3_regs.h        |  16 --
 include/hw/ppc/pnv.h                       |   3 +-
 include/hw/ppc/spapr.h                     |  26 ++-
 target/ppc/cpu-models.c                    |  17 +-
 target/ppc/cpu-models.h                    |  14 +-
 target/ppc/cpu.h                           |  89 ++++++----
 target/ppc/cpu_init.c                      |  29 ++-
 target/ppc/dfp_helper.c                    |  65 +++++++
 target/ppc/helper.h                        |  20 ++-
 target/ppc/insn32.decode                   |  71 ++++++--
 target/ppc/int_helper.c                    | 229 ++++--------------------
 target/ppc/internal.h                      |   3 -
 target/ppc/translate/fixedpoint-impl.c.inc |  51 ++++++
 target/ppc/translate/fp-impl.c.inc         | 203 +++++++++++----------
 target/ppc/translate/fp-ops.c.inc          |   9 -
 target/ppc/translate/vmx-impl.c.inc        |  32 ++--
 target/ppc/translate/vmx-ops.c.inc         |   9 +-
 tests/tcg/ppc64/Makefile.target            |   1 +
 tests/tcg/ppc64le/Makefile.target          |   1 +
 tests/tcg/ppc64le/mffsce.c                 |  37 ++++
 33 files changed, 885 insertions(+), 576 deletions(-)
 create mode 100644 hw/watchdog/spapr_watchdog.c
 create mode 100644 tests/tcg/ppc64le/mffsce.c


^ permalink raw reply	[flat|nested] 40+ messages in thread

* Re: [PULL 00/34] ppc queue
  2022-05-26 21:37 Daniel Henrique Barboza
@ 2022-05-27 15:19 ` Richard Henderson
  0 siblings, 0 replies; 40+ messages in thread
From: Richard Henderson @ 2022-05-27 15:19 UTC (permalink / raw)
  To: Daniel Henrique Barboza, qemu-devel; +Cc: qemu-ppc, peter.maydell

On 5/26/22 14:37, Daniel Henrique Barboza wrote:
> The following changes since commit 2417cbd5916d043e0c56408221fbe9935d0bc8da:
> 
>    Merge tag 'ak-pull-request' of https://gitlab.com/berrange/qemu into staging (2022-05-26 07:00:04 -0700)
> 
> are available in the Git repository at:
> 
>    https://gitlab.com/danielhb/qemu.git tags/pull-ppc-20220526
> 
> for you to fetch changes up to 96c343cc774b52b010e464a219d13f8e55e1003f:
> 
>    linux-user: Add PowerPC ISA 3.1 and MMA to hwcap (2022-05-26 17:11:33 -0300)
> 
> ----------------------------------------------------------------
> ppc patch queue for 2022-05-26:
> 
> Most of the changes are enhancements/fixes made in TCG ppc emulation
> code. Several bugs fixes were made across the board as well.
> 
> Changes include:
> 
> - tcg and target/ppc: VSX MMA implementation, fixes in helper
> declarations to use call flags, memory ordering, tlbie and others
> - pseries: fixed stdout-path setting with -machine graphics=off
> - pseries: allow use of elf parser for kernel address
> - other assorted fixes and improvements

Applied, thanks.  Please update https://wiki.qemu.org/ChangeLog/7.1 as appropriate.


r~


> 
> ----------------------------------------------------------------
> Alexey Kardashevskiy (2):
>        spapr: Use address from elf parser for kernel address
>        spapr/docs: Add a few words about x-vof
> 
> Bernhard Beschow (1):
>        hw/ppc/e500: Remove unused BINARY_DEVICE_TREE_FILE
> 
> Frederic Barrat (1):
>        pnv/xive2: Don't overwrite PC registers when writing TCTXT registers
> 
> Joel Stanley (1):
>        linux-user: Add PowerPC ISA 3.1 and MMA to hwcap
> 
> Leandro Lupori (1):
>        target/ppc: Fix tlbie
> 
> Lucas Mateus Castro (alqotel) (7):
>        target/ppc: Implement xxm[tf]acc and xxsetaccz
>        target/ppc: Implemented xvi*ger* instructions
>        target/ppc: Implemented pmxvi*ger* instructions
>        target/ppc: Implemented xvf*ger*
>        target/ppc: Implemented xvf16ger*
>        target/ppc: Implemented pmxvf*ger*
>        target/ppc: Implemented [pm]xvbf16ger2*
> 
> Matheus Ferst (12):
>        target/ppc: declare darn32/darn64 helpers with TCG_CALL_NO_RWG
>        target/ppc: use TCG_CALL_NO_RWG in vector helpers without env
>        target/ppc: use TCG_CALL_NO_RWG in BCD helpers
>        target/ppc: use TCG_CALL_NO_RWG in VSX helpers without env
>        target/ppc: Use TCG_CALL_NO_RWG_SE in fsel helper
>        target/ppc: declare xscvspdpn helper with call flags
>        target/ppc: declare xvxsigsp helper with call flags
>        target/ppc: declare xxextractuw and xxinsertw helpers with call flags
>        target/ppc: introduce do_va_helper
>        target/ppc: declare vmsum[um]bm helpers with call flags
>        target/ppc: declare vmsumuh[ms] helper with call flags
>        target/ppc: declare vmsumsh[ms] helper with call flags
> 
> Murilo Opsfelder Araujo (1):
>        mos6522: fix linking error when CONFIG_MOS6522 is not set
> 
> Nicholas Piggin (4):
>        target/ppc: Fix eieio memory ordering semantics
>        tcg/ppc: ST_ST memory ordering is not provided with eieio
>        tcg/ppc: Optimize memory ordering generation with lwsync
>        target/ppc: Implement lwsync with weaker memory ordering
> 
> Paolo Bonzini (1):
>        pseries: allow setting stdout-path even on machines with a VGA
> 
> Víctor Colombo (3):
>        target/ppc: Fix FPSCR.FI bit being cleared when it shouldn't
>        target/ppc: Fix FPSCR.FI changing in float_overflow_excp()
>        target/ppc: Rename sfprf to sfifprf where it's also used as set fi flag
> 
>   docs/system/ppc/pseries.rst         |  29 ++
>   hmp-commands-info.hx                |   2 +-
>   hw/intc/pnv_xive2.c                 |   3 -
>   hw/ppc/e500.c                       |   1 -
>   hw/ppc/spapr.c                      |  25 +-
>   include/hw/ppc/spapr.h              |   2 +-
>   linux-user/elfload.c                |   4 +
>   monitor/misc.c                      |   3 +
>   target/ppc/cpu.h                    |  19 +-
>   target/ppc/cpu_init.c               |  13 +-
>   target/ppc/fpu_helper.c             | 571 ++++++++++++++++++++++++++++--------
>   target/ppc/helper.h                 | 259 +++++++++-------
>   target/ppc/helper_regs.c            |   2 +-
>   target/ppc/insn32.decode            |  80 ++++-
>   target/ppc/insn64.decode            |  79 +++++
>   target/ppc/int_helper.c             | 152 +++++++++-
>   target/ppc/internal.h               |  15 +
>   target/ppc/machine.c                |   3 +-
>   target/ppc/translate.c              |  35 ++-
>   target/ppc/translate/fp-impl.c.inc  |  30 +-
>   target/ppc/translate/fp-ops.c.inc   |   1 -
>   target/ppc/translate/vmx-impl.c.inc |  54 ++--
>   target/ppc/translate/vmx-ops.c.inc  |   4 -
>   target/ppc/translate/vsx-impl.c.inc | 237 ++++++++++++---
>   target/ppc/translate/vsx-ops.c.inc  |   4 -
>   tcg/ppc/tcg-target.c.inc            |  12 +-
>   26 files changed, 1286 insertions(+), 353 deletions(-)



^ permalink raw reply	[flat|nested] 40+ messages in thread

* [PULL 00/34] ppc queue
@ 2022-05-26 21:37 Daniel Henrique Barboza
  2022-05-27 15:19 ` Richard Henderson
  0 siblings, 1 reply; 40+ messages in thread
From: Daniel Henrique Barboza @ 2022-05-26 21:37 UTC (permalink / raw)
  To: qemu-devel; +Cc: qemu-ppc, danielhb413, peter.maydell, richard.henderson

The following changes since commit 2417cbd5916d043e0c56408221fbe9935d0bc8da:

  Merge tag 'ak-pull-request' of https://gitlab.com/berrange/qemu into staging (2022-05-26 07:00:04 -0700)

are available in the Git repository at:

  https://gitlab.com/danielhb/qemu.git tags/pull-ppc-20220526

for you to fetch changes up to 96c343cc774b52b010e464a219d13f8e55e1003f:

  linux-user: Add PowerPC ISA 3.1 and MMA to hwcap (2022-05-26 17:11:33 -0300)

----------------------------------------------------------------
ppc patch queue for 2022-05-26:

Most of the changes are enhancements/fixes made in TCG ppc emulation
code. Several bugs fixes were made across the board as well.

Changes include:

- tcg and target/ppc: VSX MMA implementation, fixes in helper
declarations to use call flags, memory ordering, tlbie and others
- pseries: fixed stdout-path setting with -machine graphics=off
- pseries: allow use of elf parser for kernel address
- other assorted fixes and improvements

----------------------------------------------------------------
Alexey Kardashevskiy (2):
      spapr: Use address from elf parser for kernel address
      spapr/docs: Add a few words about x-vof

Bernhard Beschow (1):
      hw/ppc/e500: Remove unused BINARY_DEVICE_TREE_FILE

Frederic Barrat (1):
      pnv/xive2: Don't overwrite PC registers when writing TCTXT registers

Joel Stanley (1):
      linux-user: Add PowerPC ISA 3.1 and MMA to hwcap

Leandro Lupori (1):
      target/ppc: Fix tlbie

Lucas Mateus Castro (alqotel) (7):
      target/ppc: Implement xxm[tf]acc and xxsetaccz
      target/ppc: Implemented xvi*ger* instructions
      target/ppc: Implemented pmxvi*ger* instructions
      target/ppc: Implemented xvf*ger*
      target/ppc: Implemented xvf16ger*
      target/ppc: Implemented pmxvf*ger*
      target/ppc: Implemented [pm]xvbf16ger2*

Matheus Ferst (12):
      target/ppc: declare darn32/darn64 helpers with TCG_CALL_NO_RWG
      target/ppc: use TCG_CALL_NO_RWG in vector helpers without env
      target/ppc: use TCG_CALL_NO_RWG in BCD helpers
      target/ppc: use TCG_CALL_NO_RWG in VSX helpers without env
      target/ppc: Use TCG_CALL_NO_RWG_SE in fsel helper
      target/ppc: declare xscvspdpn helper with call flags
      target/ppc: declare xvxsigsp helper with call flags
      target/ppc: declare xxextractuw and xxinsertw helpers with call flags
      target/ppc: introduce do_va_helper
      target/ppc: declare vmsum[um]bm helpers with call flags
      target/ppc: declare vmsumuh[ms] helper with call flags
      target/ppc: declare vmsumsh[ms] helper with call flags

Murilo Opsfelder Araujo (1):
      mos6522: fix linking error when CONFIG_MOS6522 is not set

Nicholas Piggin (4):
      target/ppc: Fix eieio memory ordering semantics
      tcg/ppc: ST_ST memory ordering is not provided with eieio
      tcg/ppc: Optimize memory ordering generation with lwsync
      target/ppc: Implement lwsync with weaker memory ordering

Paolo Bonzini (1):
      pseries: allow setting stdout-path even on machines with a VGA

Víctor Colombo (3):
      target/ppc: Fix FPSCR.FI bit being cleared when it shouldn't
      target/ppc: Fix FPSCR.FI changing in float_overflow_excp()
      target/ppc: Rename sfprf to sfifprf where it's also used as set fi flag

 docs/system/ppc/pseries.rst         |  29 ++
 hmp-commands-info.hx                |   2 +-
 hw/intc/pnv_xive2.c                 |   3 -
 hw/ppc/e500.c                       |   1 -
 hw/ppc/spapr.c                      |  25 +-
 include/hw/ppc/spapr.h              |   2 +-
 linux-user/elfload.c                |   4 +
 monitor/misc.c                      |   3 +
 target/ppc/cpu.h                    |  19 +-
 target/ppc/cpu_init.c               |  13 +-
 target/ppc/fpu_helper.c             | 571 ++++++++++++++++++++++++++++--------
 target/ppc/helper.h                 | 259 +++++++++-------
 target/ppc/helper_regs.c            |   2 +-
 target/ppc/insn32.decode            |  80 ++++-
 target/ppc/insn64.decode            |  79 +++++
 target/ppc/int_helper.c             | 152 +++++++++-
 target/ppc/internal.h               |  15 +
 target/ppc/machine.c                |   3 +-
 target/ppc/translate.c              |  35 ++-
 target/ppc/translate/fp-impl.c.inc  |  30 +-
 target/ppc/translate/fp-ops.c.inc   |   1 -
 target/ppc/translate/vmx-impl.c.inc |  54 ++--
 target/ppc/translate/vmx-ops.c.inc  |   4 -
 target/ppc/translate/vsx-impl.c.inc | 237 ++++++++++++---
 target/ppc/translate/vsx-ops.c.inc  |   4 -
 tcg/ppc/tcg-target.c.inc            |  12 +-
 26 files changed, 1286 insertions(+), 353 deletions(-)


^ permalink raw reply	[flat|nested] 40+ messages in thread

end of thread, other threads:[~2022-07-07  2:26 UTC | newest]

Thread overview: 40+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-01-12 11:55 [PULL 00/34] ppc queue Cédric Le Goater
2022-01-12 11:55 ` [PULL 01/34] pseries: Update SLOF firmware image Cédric Le Goater
2022-01-12 11:55 ` [PULL 02/34] target/ppc: Add popcntb instruction to POWER5+ processors Cédric Le Goater
2022-01-12 11:55 ` [PULL 03/34] spapr: Fix support of " Cédric Le Goater
2022-01-12 11:55 ` [PULL 04/34] target/ppc: Add extra float instructions to POWER5P processors Cédric Le Goater
2022-01-12 11:55 ` [PULL 05/34] docs/system/ppc: Merge the PEF information into the pseries page Cédric Le Goater
2022-01-12 11:55 ` [PULL 06/34] MAINTAINERS: Improve the PowerPC machines section Cédric Le Goater
2022-01-12 11:55 ` [PULL 07/34] docs: Clarifications and formatting changes in ppc docs Cédric Le Goater
2022-01-12 11:55 ` [PULL 08/34] target/ppc: powerpc_excp: Extract software TLB logging into a function Cédric Le Goater
2022-01-12 11:55 ` [PULL 09/34] target/ppc: powerpc_excp: Keep 60x/7x5 soft MMU logs active Cédric Le Goater
2022-01-12 11:55 ` [PULL 10/34] target/ppc: powerpc_excp: Group unimplemented exceptions Cédric Le Goater
2022-01-12 11:55 ` [PULL 11/34] target/ppc: Add HV support to ppc_interrupts_little_endian Cédric Le Goater
2022-01-12 11:55 ` [PULL 12/34] target/ppc: Add MSR_ILE " Cédric Le Goater
2022-01-12 11:55 ` [PULL 13/34] target/ppc: Use ppc_interrupts_little_endian in powerpc_excp Cédric Le Goater
2022-01-12 11:55 ` [PULL 14/34] target/ppc: Introduce a wrapper for powerpc_excp Cédric Le Goater
2022-01-12 11:55 ` [PULL 15/34] target/ppc: Set the correct endianness for powernv memory dumps Cédric Le Goater
2022-01-12 11:55 ` [PULL 16/34] pnv_phb3.c: add unique chassis and slot for pnv_phb3_root_port Cédric Le Goater
2022-01-12 11:55 ` [PULL 17/34] pnv_phb4.c: add unique chassis and slot for pnv_phb4_root_port Cédric Le Goater
2022-01-12 11:55 ` [PULL 18/34] ppc/pnv: Attach PHB3 root port device when defaults are enabled Cédric Le Goater
2022-01-12 11:55 ` [PULL 19/34] pnv_phb4.c: make pnv-phb4-root-port user creatable Cédric Le Goater
2022-01-12 11:55 ` [PULL 20/34] pnv_phb4.c: check if root port exists in rc_config functions Cédric Le Goater
2022-01-12 11:55 ` [PULL 21/34] ppc/pnv: Introduce support for user created PHB3 devices Cédric Le Goater
2022-01-12 11:55 ` [PULL 22/34] ppc/pnv: Reparent user created PHB3 devices to the PnvChip Cédric Le Goater
2022-01-12 11:55 ` [PULL 23/34] ppc/pnv: Complete user created PHB3 devices Cédric Le Goater
2022-01-12 11:55 ` [PULL 24/34] ppc/pnv: Move num_phbs under Pnv8Chip Cédric Le Goater
2022-01-12 11:55 ` [PULL 25/34] pnv_phb3.h: change TYPE_PNV_PHB3_ROOT_BUS name Cédric Le Goater
2022-01-12 11:55 ` [PULL 26/34] pnv_phb4.c: change TYPE_PNV_PHB4_ROOT_BUS name Cédric Le Goater
2022-01-12 11:55 ` [PULL 27/34] pnv_phb4_pec.c: move pnv_pec_phb_offset() to pnv_phb4.c Cédric Le Goater
2022-01-12 11:55 ` [PULL 28/34] pnv_phb4_pec: use pnv_phb4_pec_get_phb_id() in pnv_pec_dt_xscom() Cédric Le Goater
2022-01-12 11:55 ` [PULL 29/34] ppc/pnv: set phb4 properties in stk_realize() Cédric Le Goater
2022-01-12 11:55 ` [PULL 30/34] ppc/pnv: move PHB4 XSCOM init to phb4_realize() Cédric Le Goater
2022-01-12 11:55 ` [PULL 31/34] ppc/pnv: turn 'phb' into a pointer in struct PnvPhb4PecStack Cédric Le Goater
2022-01-12 11:55 ` [PULL 32/34] ppc/pnv: Introduce user creatable pnv-phb4 devices Cédric Le Goater
2022-01-12 11:55 ` [PULL 33/34] ppc/pnv: turn pnv_phb4_update_regions() into static Cédric Le Goater
2022-01-12 11:55 ` [PULL 34/34] ppc/pnv: use stack->pci_regs[] in pnv_pec_stk_pci_xscom_write() Cédric Le Goater
2022-01-13 13:59 ` [PULL 00/34] ppc queue Peter Maydell
2022-05-26 21:37 Daniel Henrique Barboza
2022-05-27 15:19 ` Richard Henderson
2022-07-06 20:09 Daniel Henrique Barboza
2022-07-07  2:24 ` Richard Henderson

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.