* [PULL 00/60] ppc queue
@ 2022-08-31 18:49 Daniel Henrique Barboza
2022-08-31 18:49 ` [PULL 01/60] pseries: Update SLOF firmware image Daniel Henrique Barboza
` (60 more replies)
0 siblings, 61 replies; 63+ messages in thread
From: Daniel Henrique Barboza @ 2022-08-31 18:49 UTC (permalink / raw)
To: qemu-devel; +Cc: qemu-ppc, danielhb413, peter.maydell, richard.henderson
The following changes since commit 93fac696d241dccb04ebb9d23da55fc1e9d8ee36:
Open 7.2 development tree (2022-08-30 09:40:41 -0700)
are available in the Git repository at:
https://gitlab.com/danielhb/qemu.git tags/pull-ppc-20220831
for you to fetch changes up to 2d9c27ac5c035823315f68c227ca1cc6313e9842:
ppc4xx: Fix code style problems reported by checkpatch (2022-08-31 14:08:06 -0300)
----------------------------------------------------------------
ppc patch queue for 2022-08-31:
In the first 7.2 queue we have changes in the powernv pnv-phb handling,
the start of the QOMification of the ppc405 model, the removal of the
taihu machine, a new SLOF image and others.
----------------------------------------------------------------
Alexey Kardashevskiy (1):
pseries: Update SLOF firmware image
BALATON Zoltan (9):
ppc4xx: Move PLB model to ppc4xx_devs.c
ppc4xx: Rename ppc405-plb to ppc4xx-plb
ppc4xx: Move EBC model to ppc4xx_devs.c
ppc4xx: Rename ppc405-ebc to ppc4xx-ebc
hw/intc/ppc-uic: Convert ppc-uic to a PPC4xx DCR device
ppc405: Move machine specific code to ppc405_boards.c
hw/ppc/sam3460ex: Remove PPC405 dependency from sam460ex
hw/ppc/Kconfig: Move imply before select
ppc4xx: Fix code style problems reported by checkpatch
Cédric Le Goater (22):
ppc/ppc405: Remove taihu machine
ppc/ppc405: Introduce a PPC405 generic machine
ppc/ppc405: Move devices under the ref405ep machine
ppc/ppc405: Move SRAM under the ref405ep machine
ppc/ppc405: Introduce a PPC405 SoC
ppc/ppc405: Start QOMification of the SoC
ppc/ppc405: QOM'ify CPU
ppc/ppc4xx: Introduce a DCR device model
ppc/ppc405: QOM'ify CPC
ppc/ppc405: QOM'ify GPT
ppc/ppc405: QOM'ify OCM
ppc/ppc405: QOM'ify GPIO
ppc/ppc405: QOM'ify DMA
ppc/ppc405: QOM'ify EBC
ppc/ppc405: QOM'ify OPBA
ppc/ppc405: QOM'ify POB
ppc/ppc405: QOM'ify PLB
ppc/ppc405: QOM'ify MAL
ppc/ppc405: Use an embedded PPCUIC model in SoC state
ppc/ppc405: Use an explicit I2C object
ppc/ppc405: QOM'ify FPGA
ppc/ppc4xx: Fix sdram trace events
Daniel Henrique Barboza (24):
ppc/pnv: add PHB3 bus init helper
ppc/pnv: add PnvPHB base/proxy device
ppc/pnv: turn PnvPHB3 into a PnvPHB backend
ppc/pnv: add PHB4 bus init helper
ppc/pnv: turn PnvPHB4 into a PnvPHB backend
ppc/pnv: add pnv-phb-root-port device
ppc/pnv: remove pnv-phb3-root-port
ppc/pnv: remove pnv-phb4-root-port
ppc/pnv: remove root port name from pnv_phb_attach_root_port()
ppc/pnv: remove pecc->rp_model
ppc/pnv: remove PnvPHB4.version
ppc/pnv: move attach_root_port helper to pnv-phb.c
ppc/pnv: add phb-id/chip-id PnvPHB3RootBus properties
ppc/pnv: add phb-id/chip-id PnvPHB4RootBus properties
ppc/pnv: set root port chassis and slot using Bus properties
ppc/pnv: add helpers for pnv-phb user devices
ppc/pnv: turn chip8->phbs[] into a PnvPHB* array
ppc/pnv: enable user created pnv-phb for powernv8
ppc/pnv: add PHB4 helpers for user created pnv-phb
ppc/pnv: enable user created pnv-phb for powernv9
ppc/pnv: change pnv_phb4_get_pec() to also retrieve chip10->pecs
ppc/pnv: user creatable pnv-phb for powernv10
ppc/pnv: consolidate pnv_parent_*_fixup() helpers
ppc/pnv: fix QOM parenting of user creatable root ports
Lucas Mateus Castro (alqotel) (2):
fpu: Add rebias bool, value and operation
target/ppc: Bugfix FP when OE/UE are set
Nicholas Piggin (2):
target/ppc: Fix host PVR matching for KVM
ppc/pnv: Add initial P9/10 SBE model
MAINTAINERS | 2 +-
docs/about/deprecated.rst | 9 -
docs/about/removed-features.rst | 6 +
docs/system/ppc/embedded.rst | 1 -
docs/system/ppc/pseries.rst | 2 +-
fpu/softfloat-parts.c.inc | 21 +-
fpu/softfloat.c | 2 +
hw/intc/ppc-uic.c | 26 +-
hw/pci-host/meson.build | 3 +-
hw/pci-host/pnv_phb.c | 337 ++++++++++++
hw/pci-host/pnv_phb.h | 55 ++
hw/pci-host/pnv_phb3.c | 152 +++--
hw/pci-host/pnv_phb4.c | 191 +++----
hw/pci-host/pnv_phb4_pec.c | 11 +-
hw/ppc/Kconfig | 3 +-
hw/ppc/meson.build | 1 +
hw/ppc/pnv.c | 188 +++++--
hw/ppc/pnv_sbe.c | 414 ++++++++++++++
hw/ppc/pnv_xscom.c | 3 +
hw/ppc/ppc405.h | 200 +++++--
hw/ppc/ppc405_boards.c | 552 +++++++++----------
hw/ppc/ppc405_uc.c | 1156 ++++++++++++++-------------------------
hw/ppc/ppc440_bamboo.c | 34 +-
hw/ppc/ppc440_uc.c | 3 +-
hw/ppc/ppc4xx_devs.c | 554 ++++++++++++++-----
hw/ppc/ppc4xx_pci.c | 31 +-
hw/ppc/sam460ex.c | 38 +-
hw/ppc/trace-events | 14 +-
hw/ppc/virtex_ml507.c | 7 +-
include/fpu/softfloat-types.h | 4 +
include/hw/intc/ppc-uic.h | 6 +-
include/hw/pci-host/pnv_phb3.h | 19 +-
include/hw/pci-host/pnv_phb4.h | 22 +-
include/hw/ppc/pnv.h | 13 +-
include/hw/ppc/pnv_sbe.h | 55 ++
include/hw/ppc/pnv_xscom.h | 12 +
include/hw/ppc/ppc4xx.h | 76 ++-
pc-bios/README | 2 +-
pc-bios/slof.bin | Bin 992384 -> 995176 bytes
roms/SLOF | 2 +-
target/ppc/cpu-qom.h | 6 +-
target/ppc/cpu.c | 2 +
target/ppc/cpu_init.c | 91 ++-
target/ppc/fpu_helper.c | 2 -
target/ppc/machine.c | 2 +-
45 files changed, 2736 insertions(+), 1594 deletions(-)
create mode 100644 hw/pci-host/pnv_phb.c
create mode 100644 hw/pci-host/pnv_phb.h
create mode 100644 hw/ppc/pnv_sbe.c
create mode 100644 include/hw/ppc/pnv_sbe.h
^ permalink raw reply [flat|nested] 63+ messages in thread
* [PULL 01/60] pseries: Update SLOF firmware image
2022-08-31 18:49 [PULL 00/60] ppc queue Daniel Henrique Barboza
@ 2022-08-31 18:49 ` Daniel Henrique Barboza
2022-08-31 18:49 ` [PULL 02/60] target/ppc: Fix host PVR matching for KVM Daniel Henrique Barboza
` (59 subsequent siblings)
60 siblings, 0 replies; 63+ messages in thread
From: Daniel Henrique Barboza @ 2022-08-31 18:49 UTC (permalink / raw)
To: qemu-devel
Cc: qemu-ppc, danielhb413, peter.maydell, richard.henderson,
Alexey Kardashevskiy
From: Alexey Kardashevskiy <aik@ozlabs.ru>
The only change is that now SLOF can also boot big endian zImage
but kernel-addr=0 is still required.
Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru>
Signed-off-by: Daniel Henrique Barboza <danielhb413@gmail.com>
---
docs/system/ppc/pseries.rst | 2 +-
pc-bios/README | 2 +-
pc-bios/slof.bin | Bin 992384 -> 995176 bytes
roms/SLOF | 2 +-
4 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/docs/system/ppc/pseries.rst b/docs/system/ppc/pseries.rst
index 3e1bbe6726..a876d897b6 100644
--- a/docs/system/ppc/pseries.rst
+++ b/docs/system/ppc/pseries.rst
@@ -62,7 +62,7 @@ Booting via ``-kernel`` supports the following:
+-------------------+-------------------+------------------+
| vmlinux LE | ✓ | ✓ |
+-------------------+-------------------+------------------+
-| zImage.pseries BE | x | ✓¹ |
+| zImage.pseries BE | ✓¹ | ✓¹ |
+-------------------+-------------------+------------------+
| zImage.pseries LE | ✓ | ✓ |
+-------------------+-------------------+------------------+
diff --git a/pc-bios/README b/pc-bios/README
index ba6c15e769..b94f3fb081 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-20220110.
+ built from git tag qemu-slof-20220719.
- 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 cbbe23e9107575c64c3264badacfad8b0a7ca090..ef9b81d6282b536e3b715e900e9504d2d7b6b916 100644
GIT binary patch
literal 995176
zcmeEv4SZDPneTfh1DQn7(T+6=$_WWF69x<);tUDNBz!nY&<+Z%t#+LdqD1)!3f&Vq
zhnalXCf0U?YwwLKY9bJWwOiQIdu{7SP)mVzchPJ2hpW{fT4sp5n{L~?lLT_^|9Q_j
zlbK{D1Z~&*+syoaC+D2^<N1D`_jx~N!WjRY)NZU<zZ*CEhU&`o)ekVXsq)^Ms`(2R
z@`}rD*l=&nwz-SfEv}lsc-^9Pi}G*UTD@s|zR@e;U7VSI^;I_;Rr8Gp+^ehP6{`M;
zDgOMALYjvI5z?$WFhRfDAKX@XZ#9VUvSRkZk6!7~%W*4~hoArZKgrf*opOe$Q@#Rs
z3+`W9))``gU(QJDbTJdVHE0$;zZ6P5$zUYG-=pIXelhq>I{#^35dS8f|FkcN|1_O{
z^B2T_n$ExZ3*z6b^FQg&&VMq$_^&EY?0=JV{wGgR{wM4Fr%zD+({=tW6O@08&VR-P
z<v&B`KXZcepQ-bI$pq#95}p4k6O{icI{#BADF0J+{x6-N{9mf`f7t}(|1zC_>jdTB
zs`G#O1m*v7o&PH)DF0XJ{C{bJ^8Y2Bf7=A*-=_0_<pkybN}c~NPf-59tn+`>1m*uK
zo&T%}%72#5|J4(e|EqQWubH6yU!(IsZG!SYP3M351m%Ca&i}O&l>cjW{;!*${9mW@
zKVyROKSSqVoS^)RI{(=dl>cm<|Ctk%|Cu`fITMus9G(B%3Ce%2&i||l%Kt2#|LZ3x
z|JUpM&z_+C&(`_3Pf-5tI{%Id%D+SBKW~EapQrObXM*xSN9W%;LHT#;{Lh`B{Lj_-
zpEp7IpQrPG!+(4J|EtcKrtqXBkdi=30x1ckB#@FoN&+bfq$H4%KuQ8B38W;DlE4=y
z0XZ;DQv9sb9c*WHk2W4r?ythTuznR2oGw4h^fI;r_o=uq)!%Q#{dT<1#eEg-vvB_k
z?$_eJ689^;%(T_zFPkpcq;=x^+u71RhmWA{4p)#dS347yGdA<qAQMOahQQ*5H}anl
z2(1fRLOG0uN|+~9$-JR@<_mSOJ3@z<KXi(12n(z>oXw<g2@8fRS#!9awT3%bTlg?*
z51(RPX9afPY&LuGYzgZ=Tgi@|t!F3BcCeFY53`=Lr&y?0V12#WEYe#du-;0+(pxWB
zdpm@z-ot{}drGi}4+}2kU(z~p_bBi2yI1+A--#i1Lmz!FJtVOFP&RYXchhA@T4$li
z%#rM&jtJ<DfZhn`jey<==#7Bhe$d+wdiz0dKj`fTz5SrKAN2Nv-T}}%0D1>N?*Ql>
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%0DRDbzyrH-JPS|N;>u(J@j_;$QV4N
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�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
Z>-)kZKk}-~W?f+=UN3O>?|$><{|Cii_S*me
literal 992384
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	gja5ikA6`A5R8
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%0DWs^7iKo)<Pnc?}f6TpIpbPIc{WSE@KR&iY6
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
VS`nG7hfOWkPyOHj=Rg0S{|l2ze^&qi
diff --git a/roms/SLOF b/roms/SLOF
index 5b4c5acdcd..6b6c16b4b4 160000
--- a/roms/SLOF
+++ b/roms/SLOF
@@ -1 +1 @@
-Subproject commit 5b4c5acdcd552a4e1796aeca6bb700f6cbb0282d
+Subproject commit 6b6c16b4b40763507cf1f518096f3c3883c5cf2d
--
2.37.2
^ permalink raw reply related [flat|nested] 63+ messages in thread
* [PULL 02/60] target/ppc: Fix host PVR matching for KVM
2022-08-31 18:49 [PULL 00/60] ppc queue Daniel Henrique Barboza
2022-08-31 18:49 ` [PULL 01/60] pseries: Update SLOF firmware image Daniel Henrique Barboza
@ 2022-08-31 18:49 ` Daniel Henrique Barboza
2022-08-31 18:49 ` [PULL 03/60] ppc/pnv: Add initial P9/10 SBE model Daniel Henrique Barboza
` (58 subsequent siblings)
60 siblings, 0 replies; 63+ messages in thread
From: Daniel Henrique Barboza @ 2022-08-31 18:49 UTC (permalink / raw)
To: qemu-devel
Cc: qemu-ppc, danielhb413, peter.maydell, richard.henderson,
Nicholas Piggin
From: Nicholas Piggin <npiggin@gmail.com>
ppc_cpu_compare_class_pvr_mask() should match the best CPU class in the
family, because it is used by the KVM subsystem to find the host CPU
class. Since commit 03ae4133ab8 ("target-ppc: Add pvr_match()
callback"), it matches any class in the family (the first one in the
comparison list).
Since commit f30c843ced5 ("ppc/pnv: Introduce PowerNV machines with
fixed CPU models"), pnv has relied on pnv_match having these new
semantics to check machine compatibility with a CPU family.
Resolve this by adding a parameter to the pvr_match function to select
the best or any match, and restore the old behaviour for the KVM case.
Prior to this fix, e.g., a POWER9 DD2.3 KVM host matches to the
power9_v1.0 class (because that happens to be the first POWER9 family
CPU compared). After the patch, it matches the power9_v2.0 class.
This approach requires pnv_match contain knowledge of the CPU classes
implemented in the same family, which feels ugly. But pushing the 'best'
match down to the class would still require they know about one another
which is not obviously much better. For now this gets things working.
Fixes: 03ae4133ab8 ("target-ppc: Add pvr_match() callback")
Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
Reviewed-by: Daniel Henrique Barboza <danielhb413@gmail.com>
Message-Id: <20220731013358.170187-1-npiggin@gmail.com>
Signed-off-by: Daniel Henrique Barboza <danielhb413@gmail.com>
---
hw/ppc/pnv.c | 2 +-
target/ppc/cpu-qom.h | 6 ++-
target/ppc/cpu_init.c | 91 +++++++++++++++++++++++++++++++++----------
target/ppc/machine.c | 2 +-
4 files changed, 77 insertions(+), 24 deletions(-)
diff --git a/hw/ppc/pnv.c b/hw/ppc/pnv.c
index d3f77c8367..a4cb4cf10b 100644
--- a/hw/ppc/pnv.c
+++ b/hw/ppc/pnv.c
@@ -714,7 +714,7 @@ static bool pnv_match_cpu(const char *default_type, const char *cpu_type)
PowerPCCPUClass *ppc =
POWERPC_CPU_CLASS(object_class_by_name(cpu_type));
- return ppc_default->pvr_match(ppc_default, ppc->pvr);
+ return ppc_default->pvr_match(ppc_default, ppc->pvr, false);
}
static void pnv_ipmi_bt_init(ISABus *bus, IPMIBmc *bmc, uint32_t irq)
diff --git a/target/ppc/cpu-qom.h b/target/ppc/cpu-qom.h
index ad7e3c3db9..89ff88f28c 100644
--- a/target/ppc/cpu-qom.h
+++ b/target/ppc/cpu-qom.h
@@ -158,7 +158,11 @@ struct PowerPCCPUClass {
void (*parent_parse_features)(const char *type, char *str, Error **errp);
uint32_t pvr;
- bool (*pvr_match)(struct PowerPCCPUClass *pcc, uint32_t pvr);
+ /*
+ * If @best is false, match if pcc is in the family of pvr
+ * Else match only if pcc is the best match for pvr in this family.
+ */
+ bool (*pvr_match)(struct PowerPCCPUClass *pcc, uint32_t pvr, bool best);
uint64_t pcr_mask; /* Available bits in PCR register */
uint64_t pcr_supported; /* Bits for supported PowerISA versions */
uint32_t svr;
diff --git a/target/ppc/cpu_init.c b/target/ppc/cpu_init.c
index d1493a660c..899c4a586e 100644
--- a/target/ppc/cpu_init.c
+++ b/target/ppc/cpu_init.c
@@ -5912,15 +5912,25 @@ static void init_proc_POWER7(CPUPPCState *env)
ppcPOWER7_irq_init(env_archcpu(env));
}
-static bool ppc_pvr_match_power7(PowerPCCPUClass *pcc, uint32_t pvr)
+static bool ppc_pvr_match_power7(PowerPCCPUClass *pcc, uint32_t pvr, bool best)
{
- if ((pvr & CPU_POWERPC_POWER_SERVER_MASK) == CPU_POWERPC_POWER7P_BASE) {
- return true;
+ uint32_t base = pvr & CPU_POWERPC_POWER_SERVER_MASK;
+ uint32_t pcc_base = pcc->pvr & CPU_POWERPC_POWER_SERVER_MASK;
+
+ if (!best) {
+ if (base == CPU_POWERPC_POWER7_BASE) {
+ return true;
+ }
+ if (base == CPU_POWERPC_POWER7P_BASE) {
+ return true;
+ }
}
- if ((pvr & CPU_POWERPC_POWER_SERVER_MASK) == CPU_POWERPC_POWER7_BASE) {
- return true;
+
+ if (base != pcc_base) {
+ return false;
}
- return false;
+
+ return true;
}
static bool cpu_has_work_POWER7(CPUState *cs)
@@ -6073,18 +6083,27 @@ static void init_proc_POWER8(CPUPPCState *env)
ppcPOWER7_irq_init(env_archcpu(env));
}
-static bool ppc_pvr_match_power8(PowerPCCPUClass *pcc, uint32_t pvr)
+static bool ppc_pvr_match_power8(PowerPCCPUClass *pcc, uint32_t pvr, bool best)
{
- if ((pvr & CPU_POWERPC_POWER_SERVER_MASK) == CPU_POWERPC_POWER8NVL_BASE) {
- return true;
- }
- if ((pvr & CPU_POWERPC_POWER_SERVER_MASK) == CPU_POWERPC_POWER8E_BASE) {
- return true;
+ uint32_t base = pvr & CPU_POWERPC_POWER_SERVER_MASK;
+ uint32_t pcc_base = pcc->pvr & CPU_POWERPC_POWER_SERVER_MASK;
+
+ if (!best) {
+ if (base == CPU_POWERPC_POWER8_BASE) {
+ return true;
+ }
+ if (base == CPU_POWERPC_POWER8E_BASE) {
+ return true;
+ }
+ if (base == CPU_POWERPC_POWER8NVL_BASE) {
+ return true;
+ }
}
- if ((pvr & CPU_POWERPC_POWER_SERVER_MASK) == CPU_POWERPC_POWER8_BASE) {
- return true;
+ if (base != pcc_base) {
+ return false;
}
- return false;
+
+ return true;
}
static bool cpu_has_work_POWER8(CPUState *cs)
@@ -6282,11 +6301,26 @@ static void init_proc_POWER9(CPUPPCState *env)
ppcPOWER9_irq_init(env_archcpu(env));
}
-static bool ppc_pvr_match_power9(PowerPCCPUClass *pcc, uint32_t pvr)
+static bool ppc_pvr_match_power9(PowerPCCPUClass *pcc, uint32_t pvr, bool best)
{
- if ((pvr & CPU_POWERPC_POWER_SERVER_MASK) == CPU_POWERPC_POWER9_BASE) {
+ uint32_t base = pvr & CPU_POWERPC_POWER_SERVER_MASK;
+ uint32_t pcc_base = pcc->pvr & CPU_POWERPC_POWER_SERVER_MASK;
+
+ if (!best) {
+ if (base == CPU_POWERPC_POWER9_BASE) {
+ return true;
+ }
+ }
+
+ if (base != pcc_base) {
+ return false;
+ }
+
+ if ((pvr & 0x0f00) == (pcc->pvr & 0x0f00)) {
+ /* Major DD version matches to power9_v1.0 and power9_v2.0 */
return true;
}
+
return false;
}
@@ -6499,11 +6533,26 @@ static void init_proc_POWER10(CPUPPCState *env)
ppcPOWER9_irq_init(env_archcpu(env));
}
-static bool ppc_pvr_match_power10(PowerPCCPUClass *pcc, uint32_t pvr)
+static bool ppc_pvr_match_power10(PowerPCCPUClass *pcc, uint32_t pvr, bool best)
{
- if ((pvr & CPU_POWERPC_POWER_SERVER_MASK) == CPU_POWERPC_POWER10_BASE) {
+ uint32_t base = pvr & CPU_POWERPC_POWER_SERVER_MASK;
+ uint32_t pcc_base = pcc->pvr & CPU_POWERPC_POWER_SERVER_MASK;
+
+ if (!best) {
+ if (base == CPU_POWERPC_POWER10_BASE) {
+ return true;
+ }
+ }
+
+ if (base != pcc_base) {
+ return false;
+ }
+
+ if ((pvr & 0x0f00) == (pcc->pvr & 0x0f00)) {
+ /* Major DD version matches to power10_v1.0 and power10_v2.0 */
return true;
}
+
return false;
}
@@ -6910,7 +6959,7 @@ static gint ppc_cpu_compare_class_pvr_mask(gconstpointer a, gconstpointer b)
return -1;
}
- if (pcc->pvr_match(pcc, pvr)) {
+ if (pcc->pvr_match(pcc, pvr, true)) {
return 0;
}
@@ -7308,7 +7357,7 @@ static void ppc_cpu_instance_finalize(Object *obj)
ppc_hash64_finalize(cpu);
}
-static bool ppc_pvr_match_default(PowerPCCPUClass *pcc, uint32_t pvr)
+static bool ppc_pvr_match_default(PowerPCCPUClass *pcc, uint32_t pvr, bool best)
{
return pcc->pvr == pvr;
}
diff --git a/target/ppc/machine.c b/target/ppc/machine.c
index a7d9036c09..be6eb3d968 100644
--- a/target/ppc/machine.c
+++ b/target/ppc/machine.c
@@ -234,7 +234,7 @@ static bool pvr_match(PowerPCCPU *cpu, uint32_t pvr)
if (pvr == pcc->pvr) {
return true;
}
- return pcc->pvr_match(pcc, pvr);
+ return pcc->pvr_match(pcc, pvr, true);
}
static int cpu_post_load(void *opaque, int version_id)
--
2.37.2
^ permalink raw reply related [flat|nested] 63+ messages in thread
* [PULL 03/60] ppc/pnv: Add initial P9/10 SBE model
2022-08-31 18:49 [PULL 00/60] ppc queue Daniel Henrique Barboza
2022-08-31 18:49 ` [PULL 01/60] pseries: Update SLOF firmware image Daniel Henrique Barboza
2022-08-31 18:49 ` [PULL 02/60] target/ppc: Fix host PVR matching for KVM Daniel Henrique Barboza
@ 2022-08-31 18:49 ` Daniel Henrique Barboza
2022-08-31 18:49 ` [PULL 04/60] fpu: Add rebias bool, value and operation Daniel Henrique Barboza
` (57 subsequent siblings)
60 siblings, 0 replies; 63+ messages in thread
From: Daniel Henrique Barboza @ 2022-08-31 18:49 UTC (permalink / raw)
To: qemu-devel
Cc: qemu-ppc, danielhb413, peter.maydell, richard.henderson,
Nicholas Piggin, Cédric Le Goater
From: Nicholas Piggin <npiggin@gmail.com>
The SBE (Self Boot Engine) are on-chip microcontrollers that perform
early boot steps, as well as provide some runtime facilities (e.g.,
timer, secure register access, MPIPL). The latter facilities are
accessed mostly via a message system called SBEFIFO.
This driver provides initial emulation for the SBE runtime registers
and a very basic SBEFIFO implementation that provides the timer
command. This covers the basic SBE behaviour expected by skiboot when
booting.
Reviewed-by: Cédric Le Goater <clg@kaod.org>
Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
Message-Id: <20220811093726.1442343-1-npiggin@gmail.com>
[danielhb: fixed SBE_HOST_RESPONSE_MASK long line]
Signed-off-by: Daniel Henrique Barboza <danielhb413@gmail.com>
---
hw/ppc/meson.build | 1 +
hw/ppc/pnv.c | 25 +++
hw/ppc/pnv_sbe.c | 414 +++++++++++++++++++++++++++++++++++++
hw/ppc/pnv_xscom.c | 3 +
hw/ppc/trace-events | 11 +
include/hw/ppc/pnv.h | 3 +
include/hw/ppc/pnv_sbe.h | 55 +++++
include/hw/ppc/pnv_xscom.h | 12 ++
8 files changed, 524 insertions(+)
create mode 100644 hw/ppc/pnv_sbe.c
create mode 100644 include/hw/ppc/pnv_sbe.h
diff --git a/hw/ppc/meson.build b/hw/ppc/meson.build
index aa4c8e6a2e..62801923f3 100644
--- a/hw/ppc/meson.build
+++ b/hw/ppc/meson.build
@@ -46,6 +46,7 @@ ppc_ss.add(when: 'CONFIG_POWERNV', if_true: files(
'pnv_lpc.c',
'pnv_psi.c',
'pnv_occ.c',
+ 'pnv_sbe.c',
'pnv_bmc.c',
'pnv_homer.c',
'pnv_pnor.c',
diff --git a/hw/ppc/pnv.c b/hw/ppc/pnv.c
index a4cb4cf10b..0c3aad430b 100644
--- a/hw/ppc/pnv.c
+++ b/hw/ppc/pnv.c
@@ -1397,6 +1397,8 @@ static void pnv_chip_power9_instance_init(Object *obj)
object_initialize_child(obj, "occ", &chip9->occ, TYPE_PNV9_OCC);
+ object_initialize_child(obj, "sbe", &chip9->sbe, TYPE_PNV9_SBE);
+
object_initialize_child(obj, "homer", &chip9->homer, TYPE_PNV9_HOMER);
/* Number of PECs is the chip default */
@@ -1549,6 +1551,17 @@ static void pnv_chip_power9_realize(DeviceState *dev, Error **errp)
memory_region_add_subregion(get_system_memory(), PNV9_OCC_SENSOR_BASE(chip),
&chip9->occ.sram_regs);
+ /* SBE */
+ if (!qdev_realize(DEVICE(&chip9->sbe), NULL, errp)) {
+ return;
+ }
+ pnv_xscom_add_subregion(chip, PNV9_XSCOM_SBE_CTRL_BASE,
+ &chip9->sbe.xscom_ctrl_regs);
+ pnv_xscom_add_subregion(chip, PNV9_XSCOM_SBE_MBOX_BASE,
+ &chip9->sbe.xscom_mbox_regs);
+ qdev_connect_gpio_out(DEVICE(&chip9->sbe), 0, qdev_get_gpio_in(
+ DEVICE(&chip9->psi), PSIHB9_IRQ_PSU));
+
/* HOMER */
object_property_set_link(OBJECT(&chip9->homer), "chip", OBJECT(chip),
&error_abort);
@@ -1613,6 +1626,7 @@ static void pnv_chip_power10_instance_init(Object *obj)
object_initialize_child(obj, "psi", &chip10->psi, TYPE_PNV10_PSI);
object_initialize_child(obj, "lpc", &chip10->lpc, TYPE_PNV10_LPC);
object_initialize_child(obj, "occ", &chip10->occ, TYPE_PNV10_OCC);
+ object_initialize_child(obj, "sbe", &chip10->sbe, TYPE_PNV10_SBE);
object_initialize_child(obj, "homer", &chip10->homer, TYPE_PNV10_HOMER);
chip->num_pecs = pcc->num_pecs;
@@ -1754,6 +1768,17 @@ static void pnv_chip_power10_realize(DeviceState *dev, Error **errp)
PNV10_OCC_SENSOR_BASE(chip),
&chip10->occ.sram_regs);
+ /* SBE */
+ if (!qdev_realize(DEVICE(&chip10->sbe), NULL, errp)) {
+ return;
+ }
+ pnv_xscom_add_subregion(chip, PNV10_XSCOM_SBE_CTRL_BASE,
+ &chip10->sbe.xscom_ctrl_regs);
+ pnv_xscom_add_subregion(chip, PNV10_XSCOM_SBE_MBOX_BASE,
+ &chip10->sbe.xscom_mbox_regs);
+ qdev_connect_gpio_out(DEVICE(&chip10->sbe), 0, qdev_get_gpio_in(
+ DEVICE(&chip10->psi), PSIHB9_IRQ_PSU));
+
/* HOMER */
object_property_set_link(OBJECT(&chip10->homer), "chip", OBJECT(chip),
&error_abort);
diff --git a/hw/ppc/pnv_sbe.c b/hw/ppc/pnv_sbe.c
new file mode 100644
index 0000000000..1c7812a135
--- /dev/null
+++ b/hw/ppc/pnv_sbe.c
@@ -0,0 +1,414 @@
+/*
+ * QEMU PowerPC PowerNV Emulation of some SBE behaviour
+ *
+ * Copyright (c) 2022, IBM Corporation.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License, version 2, as
+ * published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include "qemu/osdep.h"
+#include "target/ppc/cpu.h"
+#include "qapi/error.h"
+#include "qemu/log.h"
+#include "qemu/module.h"
+#include "hw/irq.h"
+#include "hw/qdev-properties.h"
+#include "hw/ppc/pnv.h"
+#include "hw/ppc/pnv_xscom.h"
+#include "hw/ppc/pnv_sbe.h"
+#include "trace.h"
+
+/*
+ * Most register and command definitions come from skiboot.
+ *
+ * xscom addresses are adjusted to be relative to xscom subregion bases
+ */
+
+/*
+ * SBE MBOX register address
+ * Reg 0 - 3 : Host to send command packets to SBE
+ * Reg 4 - 7 : SBE to send response packets to Host
+ */
+#define PSU_HOST_SBE_MBOX_REG0 0x00000000
+#define PSU_HOST_SBE_MBOX_REG1 0x00000001
+#define PSU_HOST_SBE_MBOX_REG2 0x00000002
+#define PSU_HOST_SBE_MBOX_REG3 0x00000003
+#define PSU_HOST_SBE_MBOX_REG4 0x00000004
+#define PSU_HOST_SBE_MBOX_REG5 0x00000005
+#define PSU_HOST_SBE_MBOX_REG6 0x00000006
+#define PSU_HOST_SBE_MBOX_REG7 0x00000007
+#define PSU_SBE_DOORBELL_REG_RW 0x00000010
+#define PSU_SBE_DOORBELL_REG_AND 0x00000011
+#define PSU_SBE_DOORBELL_REG_OR 0x00000012
+#define PSU_HOST_DOORBELL_REG_RW 0x00000013
+#define PSU_HOST_DOORBELL_REG_AND 0x00000014
+#define PSU_HOST_DOORBELL_REG_OR 0x00000015
+
+/*
+ * Doorbell register to trigger SBE interrupt. Set by OPAL to inform
+ * the SBE about a waiting message in the Host/SBE mailbox registers
+ */
+#define HOST_SBE_MSG_WAITING PPC_BIT(0)
+
+/*
+ * Doorbell register for host bridge interrupt. Set by the SBE to inform
+ * host about a response message in the Host/SBE mailbox registers
+ */
+#define SBE_HOST_RESPONSE_WAITING PPC_BIT(0)
+#define SBE_HOST_MSG_READ PPC_BIT(1)
+#define SBE_HOST_STOP15_EXIT PPC_BIT(2)
+#define SBE_HOST_RESET PPC_BIT(3)
+#define SBE_HOST_PASSTHROUGH PPC_BIT(4)
+#define SBE_HOST_TIMER_EXPIRY PPC_BIT(14)
+#define SBE_HOST_RESPONSE_MASK (PPC_BITMASK(0, 4) | \
+ SBE_HOST_TIMER_EXPIRY)
+
+/* SBE Control Register */
+#define SBE_CONTROL_REG_RW 0x00000000
+
+/* SBE interrupt s0/s1 bits */
+#define SBE_CONTROL_REG_S0 PPC_BIT(14)
+#define SBE_CONTROL_REG_S1 PPC_BIT(15)
+
+struct sbe_msg {
+ uint64_t reg[4];
+};
+
+static uint64_t pnv_sbe_power9_xscom_ctrl_read(void *opaque, hwaddr addr,
+ unsigned size)
+{
+ uint32_t offset = addr >> 3;
+ uint64_t val = 0;
+
+ switch (offset) {
+ default:
+ qemu_log_mask(LOG_UNIMP, "SBE Unimplemented register: Ox%"
+ HWADDR_PRIx "\n", addr >> 3);
+ }
+
+ trace_pnv_sbe_xscom_ctrl_read(addr, val);
+
+ return val;
+}
+
+static void pnv_sbe_power9_xscom_ctrl_write(void *opaque, hwaddr addr,
+ uint64_t val, unsigned size)
+{
+ uint32_t offset = addr >> 3;
+
+ trace_pnv_sbe_xscom_ctrl_write(addr, val);
+
+ switch (offset) {
+ default:
+ qemu_log_mask(LOG_UNIMP, "SBE Unimplemented register: Ox%"
+ HWADDR_PRIx "\n", addr >> 3);
+ }
+}
+
+static const MemoryRegionOps pnv_sbe_power9_xscom_ctrl_ops = {
+ .read = pnv_sbe_power9_xscom_ctrl_read,
+ .write = pnv_sbe_power9_xscom_ctrl_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_sbe_set_host_doorbell(PnvSBE *sbe, uint64_t val)
+{
+ val &= SBE_HOST_RESPONSE_MASK; /* Is this right? What does HW do? */
+ sbe->host_doorbell = val;
+
+ trace_pnv_sbe_reg_set_host_doorbell(val);
+ qemu_set_irq(sbe->psi_irq, !!val);
+}
+
+/* SBE Target Type */
+#define SBE_TARGET_TYPE_PROC 0x00
+#define SBE_TARGET_TYPE_EX 0x01
+#define SBE_TARGET_TYPE_PERV 0x02
+#define SBE_TARGET_TYPE_MCS 0x03
+#define SBE_TARGET_TYPE_EQ 0x04
+#define SBE_TARGET_TYPE_CORE 0x05
+
+/* SBE MBOX command class */
+#define SBE_MCLASS_FIRST 0xD1
+#define SBE_MCLASS_CORE_STATE 0xD1
+#define SBE_MCLASS_SCOM 0xD2
+#define SBE_MCLASS_RING 0xD3
+#define SBE_MCLASS_TIMER 0xD4
+#define SBE_MCLASS_MPIPL 0xD5
+#define SBE_MCLASS_SECURITY 0xD6
+#define SBE_MCLASS_GENERIC 0xD7
+#define SBE_MCLASS_LAST 0xD7
+
+/*
+ * Commands are provided in xxyy form where:
+ * - xx : command class
+ * - yy : command
+ *
+ * Both request and response message uses same seq ID,
+ * command class and command.
+ */
+#define SBE_CMD_CTRL_DEADMAN_LOOP 0xD101
+#define SBE_CMD_MULTI_SCOM 0xD201
+#define SBE_CMD_PUT_RING_FORM_IMAGE 0xD301
+#define SBE_CMD_CONTROL_TIMER 0xD401
+#define SBE_CMD_GET_ARCHITECTED_REG 0xD501
+#define SBE_CMD_CLR_ARCHITECTED_REG 0xD502
+#define SBE_CMD_SET_UNSEC_MEM_WINDOW 0xD601
+#define SBE_CMD_GET_SBE_FFDC 0xD701
+#define SBE_CMD_GET_CAPABILITY 0xD702
+#define SBE_CMD_READ_SBE_SEEPROM 0xD703
+#define SBE_CMD_SET_FFDC_ADDR 0xD704
+#define SBE_CMD_QUIESCE_SBE 0xD705
+#define SBE_CMD_SET_FABRIC_ID_MAP 0xD706
+#define SBE_CMD_STASH_MPIPL_CONFIG 0xD707
+
+/* SBE MBOX control flags */
+
+/* Generic flags */
+#define SBE_CMD_CTRL_RESP_REQ 0x0100
+#define SBE_CMD_CTRL_ACK_REQ 0x0200
+
+/* Deadman loop */
+#define CTRL_DEADMAN_LOOP_START 0x0001
+#define CTRL_DEADMAN_LOOP_STOP 0x0002
+
+/* Control timer */
+#define CONTROL_TIMER_START 0x0001
+#define CONTROL_TIMER_STOP 0x0002
+
+/* Stash MPIPL config */
+#define SBE_STASH_KEY_SKIBOOT_BASE 0x03
+
+static void sbe_timer(void *opaque)
+{
+ PnvSBE *sbe = opaque;
+
+ trace_pnv_sbe_cmd_timer_expired();
+
+ pnv_sbe_set_host_doorbell(sbe, sbe->host_doorbell | SBE_HOST_TIMER_EXPIRY);
+}
+
+static void do_sbe_msg(PnvSBE *sbe)
+{
+ struct sbe_msg msg;
+ uint16_t cmd, ctrl_flags, seq_id;
+ int i;
+
+ memset(&msg, 0, sizeof(msg));
+
+ for (i = 0; i < 4; i++) {
+ msg.reg[i] = sbe->mbox[i];
+ }
+
+ cmd = msg.reg[0];
+ seq_id = msg.reg[0] >> 16;
+ ctrl_flags = msg.reg[0] >> 32;
+
+ trace_pnv_sbe_msg_recv(cmd, seq_id, ctrl_flags);
+
+ if (ctrl_flags & SBE_CMD_CTRL_ACK_REQ) {
+ pnv_sbe_set_host_doorbell(sbe, sbe->host_doorbell | SBE_HOST_MSG_READ);
+ }
+
+ switch (cmd) {
+ case SBE_CMD_CONTROL_TIMER:
+ if (ctrl_flags & CONTROL_TIMER_START) {
+ uint64_t us = msg.reg[1];
+ trace_pnv_sbe_cmd_timer_start(us);
+ timer_mod(sbe->timer, qemu_clock_get_us(QEMU_CLOCK_VIRTUAL) + us);
+ }
+ if (ctrl_flags & CONTROL_TIMER_STOP) {
+ trace_pnv_sbe_cmd_timer_stop();
+ timer_del(sbe->timer);
+ }
+ break;
+ default:
+ qemu_log_mask(LOG_UNIMP, "SBE Unimplemented command: 0x%x\n", cmd);
+ }
+}
+
+static void pnv_sbe_set_sbe_doorbell(PnvSBE *sbe, uint64_t val)
+{
+ val &= HOST_SBE_MSG_WAITING;
+ sbe->sbe_doorbell = val;
+
+ if (val & HOST_SBE_MSG_WAITING) {
+ sbe->sbe_doorbell &= ~HOST_SBE_MSG_WAITING;
+ do_sbe_msg(sbe);
+ }
+}
+
+static uint64_t pnv_sbe_power9_xscom_mbox_read(void *opaque, hwaddr addr,
+ unsigned size)
+{
+ PnvSBE *sbe = PNV_SBE(opaque);
+ uint32_t offset = addr >> 3;
+ uint64_t val = 0;
+
+ if (offset <= PSU_HOST_SBE_MBOX_REG7) {
+ uint32_t idx = offset - PSU_HOST_SBE_MBOX_REG0;
+ val = sbe->mbox[idx];
+ } else {
+ switch (offset) {
+ case PSU_SBE_DOORBELL_REG_RW:
+ val = sbe->sbe_doorbell;
+ break;
+ case PSU_HOST_DOORBELL_REG_RW:
+ val = sbe->host_doorbell;
+ break;
+ default:
+ qemu_log_mask(LOG_UNIMP, "SBE Unimplemented register: Ox%"
+ HWADDR_PRIx "\n", addr >> 3);
+ }
+ }
+
+ trace_pnv_sbe_xscom_mbox_read(addr, val);
+
+ return val;
+}
+
+static void pnv_sbe_power9_xscom_mbox_write(void *opaque, hwaddr addr,
+ uint64_t val, unsigned size)
+{
+ PnvSBE *sbe = PNV_SBE(opaque);
+ uint32_t offset = addr >> 3;
+
+ trace_pnv_sbe_xscom_mbox_write(addr, val);
+
+ if (offset <= PSU_HOST_SBE_MBOX_REG7) {
+ uint32_t idx = offset - PSU_HOST_SBE_MBOX_REG0;
+ sbe->mbox[idx] = val;
+ } else {
+ switch (offset) {
+ case PSU_SBE_DOORBELL_REG_RW:
+ pnv_sbe_set_sbe_doorbell(sbe, val);
+ break;
+ case PSU_SBE_DOORBELL_REG_AND:
+ pnv_sbe_set_sbe_doorbell(sbe, sbe->sbe_doorbell & val);
+ break;
+ case PSU_SBE_DOORBELL_REG_OR:
+ pnv_sbe_set_sbe_doorbell(sbe, sbe->sbe_doorbell | val);
+ break;
+
+ case PSU_HOST_DOORBELL_REG_RW:
+ pnv_sbe_set_host_doorbell(sbe, val);
+ break;
+ case PSU_HOST_DOORBELL_REG_AND:
+ pnv_sbe_set_host_doorbell(sbe, sbe->host_doorbell & val);
+ break;
+ case PSU_HOST_DOORBELL_REG_OR:
+ pnv_sbe_set_host_doorbell(sbe, sbe->host_doorbell | val);
+ break;
+
+ default:
+ qemu_log_mask(LOG_UNIMP, "SBE Unimplemented register: Ox%"
+ HWADDR_PRIx "\n", addr >> 3);
+ }
+ }
+}
+
+static const MemoryRegionOps pnv_sbe_power9_xscom_mbox_ops = {
+ .read = pnv_sbe_power9_xscom_mbox_read,
+ .write = pnv_sbe_power9_xscom_mbox_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_sbe_power9_class_init(ObjectClass *klass, void *data)
+{
+ PnvSBEClass *psc = PNV_SBE_CLASS(klass);
+ DeviceClass *dc = DEVICE_CLASS(klass);
+
+ dc->desc = "PowerNV SBE Controller (POWER9)";
+ psc->xscom_ctrl_size = PNV9_XSCOM_SBE_CTRL_SIZE;
+ psc->xscom_ctrl_ops = &pnv_sbe_power9_xscom_ctrl_ops;
+ psc->xscom_mbox_size = PNV9_XSCOM_SBE_MBOX_SIZE;
+ psc->xscom_mbox_ops = &pnv_sbe_power9_xscom_mbox_ops;
+}
+
+static const TypeInfo pnv_sbe_power9_type_info = {
+ .name = TYPE_PNV9_SBE,
+ .parent = TYPE_PNV_SBE,
+ .instance_size = sizeof(PnvSBE),
+ .class_init = pnv_sbe_power9_class_init,
+};
+
+static void pnv_sbe_power10_class_init(ObjectClass *klass, void *data)
+{
+ PnvSBEClass *psc = PNV_SBE_CLASS(klass);
+ DeviceClass *dc = DEVICE_CLASS(klass);
+
+ dc->desc = "PowerNV SBE Controller (POWER10)";
+ psc->xscom_ctrl_size = PNV10_XSCOM_SBE_CTRL_SIZE;
+ psc->xscom_ctrl_ops = &pnv_sbe_power9_xscom_ctrl_ops;
+ psc->xscom_mbox_size = PNV10_XSCOM_SBE_MBOX_SIZE;
+ psc->xscom_mbox_ops = &pnv_sbe_power9_xscom_mbox_ops;
+}
+
+static const TypeInfo pnv_sbe_power10_type_info = {
+ .name = TYPE_PNV10_SBE,
+ .parent = TYPE_PNV9_SBE,
+ .class_init = pnv_sbe_power10_class_init,
+};
+
+static void pnv_sbe_realize(DeviceState *dev, Error **errp)
+{
+ PnvSBE *sbe = PNV_SBE(dev);
+ PnvSBEClass *psc = PNV_SBE_GET_CLASS(sbe);
+
+ /* XScom regions for SBE registers */
+ pnv_xscom_region_init(&sbe->xscom_ctrl_regs, OBJECT(dev),
+ psc->xscom_ctrl_ops, sbe, "xscom-sbe-ctrl",
+ psc->xscom_ctrl_size);
+ pnv_xscom_region_init(&sbe->xscom_mbox_regs, OBJECT(dev),
+ psc->xscom_mbox_ops, sbe, "xscom-sbe-mbox",
+ psc->xscom_mbox_size);
+
+ qdev_init_gpio_out(DEVICE(dev), &sbe->psi_irq, 1);
+
+ sbe->timer = timer_new_us(QEMU_CLOCK_VIRTUAL, sbe_timer, sbe);
+}
+
+static void pnv_sbe_class_init(ObjectClass *klass, void *data)
+{
+ DeviceClass *dc = DEVICE_CLASS(klass);
+
+ dc->realize = pnv_sbe_realize;
+ dc->desc = "PowerNV SBE Controller";
+ dc->user_creatable = false;
+}
+
+static const TypeInfo pnv_sbe_type_info = {
+ .name = TYPE_PNV_SBE,
+ .parent = TYPE_DEVICE,
+ .instance_size = sizeof(PnvSBE),
+ .class_init = pnv_sbe_class_init,
+ .class_size = sizeof(PnvSBEClass),
+ .abstract = true,
+};
+
+static void pnv_sbe_register_types(void)
+{
+ type_register_static(&pnv_sbe_type_info);
+ type_register_static(&pnv_sbe_power9_type_info);
+ type_register_static(&pnv_sbe_power10_type_info);
+}
+
+type_init(pnv_sbe_register_types);
diff --git a/hw/ppc/pnv_xscom.c b/hw/ppc/pnv_xscom.c
index 9ce018dbc2..79f10de57f 100644
--- a/hw/ppc/pnv_xscom.c
+++ b/hw/ppc/pnv_xscom.c
@@ -295,6 +295,9 @@ int pnv_dt_xscom(PnvChip *chip, void *fdt, int root_offset,
_FDT((fdt_setprop(fdt, xscom_offset, "reg", reg, sizeof(reg))));
_FDT((fdt_setprop(fdt, xscom_offset, "compatible", compat, compat_size)));
_FDT((fdt_setprop(fdt, xscom_offset, "scom-controller", NULL, 0)));
+ if (chip->chip_id == 0) {
+ _FDT((fdt_setprop(fdt, xscom_offset, "primary", NULL, 0)));
+ }
args.fdt = fdt;
args.xscom_offset = xscom_offset;
diff --git a/hw/ppc/trace-events b/hw/ppc/trace-events
index 5c0a215cad..f6990439d1 100644
--- a/hw/ppc/trace-events
+++ b/hw/ppc/trace-events
@@ -95,6 +95,17 @@ vof_write(uint32_t ih, unsigned cb, const char *msg) "ih=0x%x [%u] \"%s\""
vof_avail(uint64_t start, uint64_t end, uint64_t size) "0x%"PRIx64"..0x%"PRIx64" size=0x%"PRIx64
vof_claimed(uint64_t start, uint64_t end, uint64_t size) "0x%"PRIx64"..0x%"PRIx64" size=0x%"PRIx64
+# pnv_sbe.c
+pnv_sbe_xscom_ctrl_read(uint64_t addr, uint64_t val) "addr 0x%" PRIx64 " val 0x%" PRIx64
+pnv_sbe_xscom_ctrl_write(uint64_t addr, uint64_t val) "addr 0x%" PRIx64 " val 0x%" PRIx64
+pnv_sbe_xscom_mbox_read(uint64_t addr, uint64_t val) "addr 0x%" PRIx64 " val 0x%" PRIx64
+pnv_sbe_xscom_mbox_write(uint64_t addr, uint64_t val) "addr 0x%" PRIx64 " val 0x%" PRIx64
+pnv_sbe_reg_set_host_doorbell(uint64_t val) "val 0x%" PRIx64
+pnv_sbe_cmd_timer_start(uint64_t ns) "ns 0x%" PRIu64
+pnv_sbe_cmd_timer_stop(void) ""
+pnv_sbe_cmd_timer_expired(void) ""
+pnv_sbe_msg_recv(uint16_t cmd, uint16_t seq, uint16_t ctrl_flags) "cmd 0x%" PRIx16 " seq %"PRIu16 " ctrl_flags 0x%" PRIx16
+
# ppc.c
ppc_tb_adjust(uint64_t offs1, uint64_t offs2, int64_t diff, int64_t seconds) "adjusted from 0x%"PRIx64" to 0x%"PRIx64", diff %"PRId64" (%"PRId64"s)"
ppc_tb_load(uint64_t tb) "tb 0x%016" PRIx64
diff --git a/include/hw/ppc/pnv.h b/include/hw/ppc/pnv.h
index b991194223..37c303bf36 100644
--- a/include/hw/ppc/pnv.h
+++ b/include/hw/ppc/pnv.h
@@ -27,6 +27,7 @@
#include "hw/ppc/pnv_pnor.h"
#include "hw/ppc/pnv_psi.h"
#include "hw/ppc/pnv_occ.h"
+#include "hw/ppc/pnv_sbe.h"
#include "hw/ppc/pnv_homer.h"
#include "hw/ppc/pnv_xive.h"
#include "hw/ppc/pnv_core.h"
@@ -100,6 +101,7 @@ struct Pnv9Chip {
Pnv9Psi psi;
PnvLpcController lpc;
PnvOCC occ;
+ PnvSBE sbe;
PnvHomer homer;
uint32_t nr_quads;
@@ -129,6 +131,7 @@ struct Pnv10Chip {
Pnv9Psi psi;
PnvLpcController lpc;
PnvOCC occ;
+ PnvSBE sbe;
PnvHomer homer;
uint32_t nr_quads;
diff --git a/include/hw/ppc/pnv_sbe.h b/include/hw/ppc/pnv_sbe.h
new file mode 100644
index 0000000000..f54a3ae9ba
--- /dev/null
+++ b/include/hw/ppc/pnv_sbe.h
@@ -0,0 +1,55 @@
+/*
+ * QEMU PowerPC PowerNV Emulation of some SBE behaviour
+ *
+ * Copyright (c) 2022, IBM Corporation.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, see <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef PPC_PNV_SBE_H
+#define PPC_PNV_SBE_H
+
+#include "qom/object.h"
+
+#define TYPE_PNV_SBE "pnv-sbe"
+OBJECT_DECLARE_TYPE(PnvSBE, PnvSBEClass, PNV_SBE)
+#define TYPE_PNV9_SBE TYPE_PNV_SBE "-POWER9"
+DECLARE_INSTANCE_CHECKER(PnvSBE, PNV9_SBE, TYPE_PNV9_SBE)
+#define TYPE_PNV10_SBE TYPE_PNV_SBE "-POWER10"
+DECLARE_INSTANCE_CHECKER(PnvSBE, PNV10_SBE, TYPE_PNV10_SBE)
+
+struct PnvSBE {
+ DeviceState xd;
+
+ uint64_t mbox[8];
+ uint64_t sbe_doorbell;
+ uint64_t host_doorbell;
+
+ qemu_irq psi_irq;
+ QEMUTimer *timer;
+
+ MemoryRegion xscom_mbox_regs;
+ MemoryRegion xscom_ctrl_regs;
+};
+
+struct PnvSBEClass {
+ DeviceClass parent_class;
+
+ int xscom_ctrl_size;
+ int xscom_mbox_size;
+ const MemoryRegionOps *xscom_ctrl_ops;
+ const MemoryRegionOps *xscom_mbox_ops;
+};
+
+#endif /* PPC_PNV_SBE_H */
diff --git a/include/hw/ppc/pnv_xscom.h b/include/hw/ppc/pnv_xscom.h
index 7c7440de0c..c6e9ef8dd2 100644
--- a/include/hw/ppc/pnv_xscom.h
+++ b/include/hw/ppc/pnv_xscom.h
@@ -92,6 +92,12 @@ struct PnvXScomInterfaceClass {
#define PNV9_XSCOM_OCC_BASE PNV_XSCOM_OCC_BASE
#define PNV9_XSCOM_OCC_SIZE 0x8000
+#define PNV9_XSCOM_SBE_CTRL_BASE 0x00050008
+#define PNV9_XSCOM_SBE_CTRL_SIZE 0x1
+
+#define PNV9_XSCOM_SBE_MBOX_BASE 0x000D0050
+#define PNV9_XSCOM_SBE_MBOX_SIZE 0x16
+
#define PNV9_XSCOM_PBA_BASE 0x5012b00
#define PNV9_XSCOM_PBA_SIZE 0x40
@@ -134,6 +140,12 @@ struct PnvXScomInterfaceClass {
#define PNV10_XSCOM_OCC_BASE PNV9_XSCOM_OCC_BASE
#define PNV10_XSCOM_OCC_SIZE PNV9_XSCOM_OCC_SIZE
+#define PNV10_XSCOM_SBE_CTRL_BASE PNV9_XSCOM_SBE_CTRL_BASE
+#define PNV10_XSCOM_SBE_CTRL_SIZE PNV9_XSCOM_SBE_CTRL_SIZE
+
+#define PNV10_XSCOM_SBE_MBOX_BASE PNV9_XSCOM_SBE_MBOX_BASE
+#define PNV10_XSCOM_SBE_MBOX_SIZE PNV9_XSCOM_SBE_MBOX_SIZE
+
#define PNV10_XSCOM_PBA_BASE 0x01010CDA
#define PNV10_XSCOM_PBA_SIZE 0x40
--
2.37.2
^ permalink raw reply related [flat|nested] 63+ messages in thread
* [PULL 04/60] fpu: Add rebias bool, value and operation
2022-08-31 18:49 [PULL 00/60] ppc queue Daniel Henrique Barboza
` (2 preceding siblings ...)
2022-08-31 18:49 ` [PULL 03/60] ppc/pnv: Add initial P9/10 SBE model Daniel Henrique Barboza
@ 2022-08-31 18:49 ` Daniel Henrique Barboza
2022-08-31 18:49 ` [PULL 05/60] target/ppc: Bugfix FP when OE/UE are set Daniel Henrique Barboza
` (56 subsequent siblings)
60 siblings, 0 replies; 63+ messages in thread
From: Daniel Henrique Barboza @ 2022-08-31 18:49 UTC (permalink / raw)
To: qemu-devel
Cc: qemu-ppc, danielhb413, peter.maydell, richard.henderson,
Lucas Mateus Castro (alqotel)
From: "Lucas Mateus Castro (alqotel)" <lucas.araujo@eldorado.org.br>
Added the possibility of recalculating a result if it overflows or
underflows, if the result overflow and the rebias bool is true then the
intermediate result should have 3/4 of the total range subtracted from
the exponent. The same for underflow but it should be added to the
exponent of the intermediate number instead.
Signed-off-by: Lucas Mateus Castro (alqotel) <lucas.araujo@eldorado.org.br>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-Id: <20220805141522.412864-2-lucas.araujo@eldorado.org.br>
Signed-off-by: Daniel Henrique Barboza <danielhb413@gmail.com>
---
fpu/softfloat-parts.c.inc | 21 +++++++++++++++++++--
fpu/softfloat.c | 2 ++
include/fpu/softfloat-types.h | 4 ++++
3 files changed, 25 insertions(+), 2 deletions(-)
diff --git a/fpu/softfloat-parts.c.inc b/fpu/softfloat-parts.c.inc
index bbeadaa189..a9f268fcab 100644
--- a/fpu/softfloat-parts.c.inc
+++ b/fpu/softfloat-parts.c.inc
@@ -214,18 +214,35 @@ static void partsN(uncanon_normal)(FloatPartsN *p, float_status *s,
p->frac_lo &= ~round_mask;
}
} else if (unlikely(exp >= exp_max)) {
- flags |= float_flag_overflow | float_flag_inexact;
- if (overflow_norm) {
+ flags |= float_flag_overflow;
+ if (s->rebias_overflow) {
+ exp -= fmt->exp_re_bias;
+ } else if (overflow_norm) {
+ flags |= float_flag_inexact;
exp = exp_max - 1;
frac_allones(p);
p->frac_lo &= ~round_mask;
} else {
+ flags |= float_flag_inexact;
p->cls = float_class_inf;
exp = exp_max;
frac_clear(p);
}
}
frac_shr(p, frac_shift);
+ } else if (unlikely(s->rebias_underflow)) {
+ flags |= float_flag_underflow;
+ exp += fmt->exp_re_bias;
+ if (p->frac_lo & round_mask) {
+ flags |= float_flag_inexact;
+ if (frac_addi(p, p, inc)) {
+ frac_shr(p, 1);
+ p->frac_hi |= DECOMPOSED_IMPLICIT_BIT;
+ exp++;
+ }
+ p->frac_lo &= ~round_mask;
+ }
+ frac_shr(p, frac_shift);
} else if (s->flush_to_zero) {
flags |= float_flag_output_denormal;
p->cls = float_class_zero;
diff --git a/fpu/softfloat.c b/fpu/softfloat.c
index 4a871ef2a1..c7454c3eb1 100644
--- a/fpu/softfloat.c
+++ b/fpu/softfloat.c
@@ -521,6 +521,7 @@ typedef struct {
typedef struct {
int exp_size;
int exp_bias;
+ int exp_re_bias;
int exp_max;
int frac_size;
int frac_shift;
@@ -532,6 +533,7 @@ typedef struct {
#define FLOAT_PARAMS_(E) \
.exp_size = E, \
.exp_bias = ((1 << E) - 1) >> 1, \
+ .exp_re_bias = (1 << (E - 1)) + (1 << (E - 2)), \
.exp_max = (1 << E) - 1
#define FLOAT_PARAMS(E, F) \
diff --git a/include/fpu/softfloat-types.h b/include/fpu/softfloat-types.h
index 7a6ea881d8..0884ec4ef7 100644
--- a/include/fpu/softfloat-types.h
+++ b/include/fpu/softfloat-types.h
@@ -195,6 +195,10 @@ typedef struct float_status {
bool snan_bit_is_one;
bool use_first_nan;
bool no_signaling_nans;
+ /* should overflowed results subtract re_bias to its exponent? */
+ bool rebias_overflow;
+ /* should underflowed results add re_bias to its exponent? */
+ bool rebias_underflow;
} float_status;
#endif /* SOFTFLOAT_TYPES_H */
--
2.37.2
^ permalink raw reply related [flat|nested] 63+ messages in thread
* [PULL 05/60] target/ppc: Bugfix FP when OE/UE are set
2022-08-31 18:49 [PULL 00/60] ppc queue Daniel Henrique Barboza
` (3 preceding siblings ...)
2022-08-31 18:49 ` [PULL 04/60] fpu: Add rebias bool, value and operation Daniel Henrique Barboza
@ 2022-08-31 18:49 ` Daniel Henrique Barboza
2022-08-31 18:49 ` [PULL 06/60] ppc/pnv: add PHB3 bus init helper Daniel Henrique Barboza
` (55 subsequent siblings)
60 siblings, 0 replies; 63+ messages in thread
From: Daniel Henrique Barboza @ 2022-08-31 18:49 UTC (permalink / raw)
To: qemu-devel
Cc: qemu-ppc, danielhb413, peter.maydell, richard.henderson,
Lucas Mateus Castro (alqotel)
From: "Lucas Mateus Castro (alqotel)" <lucas.araujo@eldorado.org.br>
When an overflow exception occurs and OE is set the intermediate result
should be adjusted (by subtracting from the exponent) to avoid rounding
to inf. The same applies to an underflow exceptionion and UE (but adding
to the exponent). To do this set the fp_status.rebias_overflow when OE
is set and fp_status.rebias_underflow when UE is set as the FPU will
recalculate in case of a overflow/underflow if the according rebias* is
set.
Signed-off-by: Lucas Mateus Castro (alqotel) <lucas.araujo@eldorado.org.br>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-Id: <20220805141522.412864-3-lucas.araujo@eldorado.org.br>
Signed-off-by: Daniel Henrique Barboza <danielhb413@gmail.com>
---
target/ppc/cpu.c | 2 ++
target/ppc/fpu_helper.c | 2 --
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/target/ppc/cpu.c b/target/ppc/cpu.c
index 401b6f9e63..0ebac04bc4 100644
--- a/target/ppc/cpu.c
+++ b/target/ppc/cpu.c
@@ -120,6 +120,8 @@ void ppc_store_fpscr(CPUPPCState *env, target_ulong val)
val |= FP_FEX;
}
env->fpscr = val;
+ env->fp_status.rebias_overflow = (FP_OE & env->fpscr) ? true : false;
+ env->fp_status.rebias_underflow = (FP_UE & env->fpscr) ? true : false;
if (tcg_enabled()) {
fpscr_set_rounding_mode(env);
}
diff --git a/target/ppc/fpu_helper.c b/target/ppc/fpu_helper.c
index 7ab6beadad..0f045b70f8 100644
--- a/target/ppc/fpu_helper.c
+++ b/target/ppc/fpu_helper.c
@@ -348,7 +348,6 @@ static inline int float_overflow_excp(CPUPPCState *env)
bool overflow_enabled = !!(env->fpscr & FP_OE);
if (overflow_enabled) {
- /* XXX: should adjust the result */
/* Update the floating-point enabled exception summary */
env->fpscr |= FP_FEX;
/* We must update the target FPR before raising the exception */
@@ -367,7 +366,6 @@ static inline void float_underflow_excp(CPUPPCState *env)
/* Update the floating-point exception summary */
env->fpscr |= FP_FX;
if (env->fpscr & FP_UE) {
- /* XXX: should adjust the result */
/* Update the floating-point enabled exception summary */
env->fpscr |= FP_FEX;
/* We must update the target FPR before raising the exception */
--
2.37.2
^ permalink raw reply related [flat|nested] 63+ messages in thread
* [PULL 06/60] ppc/pnv: add PHB3 bus init helper
2022-08-31 18:49 [PULL 00/60] ppc queue Daniel Henrique Barboza
` (4 preceding siblings ...)
2022-08-31 18:49 ` [PULL 05/60] target/ppc: Bugfix FP when OE/UE are set Daniel Henrique Barboza
@ 2022-08-31 18:49 ` Daniel Henrique Barboza
2022-08-31 18:49 ` [PULL 07/60] ppc/pnv: add PnvPHB base/proxy device Daniel Henrique Barboza
` (54 subsequent siblings)
60 siblings, 0 replies; 63+ messages in thread
From: Daniel Henrique Barboza @ 2022-08-31 18:49 UTC (permalink / raw)
To: qemu-devel
Cc: qemu-ppc, danielhb413, peter.maydell, richard.henderson,
Frederic Barrat
The PnvPHB3 bus init consists of initializing the pci_io and pci_mmio
regions, registering it via pci_register_root_bus() and then setup the
iommu.
We'll want to init the bus from outside pnv_phb3.c when the bus is
removed from the PnvPHB3 device and put into a new parent PnvPHB device.
The new pnv_phb3_bus_init() helper will be used by the parent to init
the bus when using the PHB3 backend.
Signed-off-by: Daniel Henrique Barboza <danielhb413@gmail.com>
Reviewed-by: Frederic Barrat <fbarrat@linux.ibm.com>
Message-Id: <20220624084921.399219-2-danielhb413@gmail.com>
---
hw/pci-host/pnv_phb3.c | 39 ++++++++++++++++++++--------------
include/hw/pci-host/pnv_phb3.h | 1 +
2 files changed, 24 insertions(+), 16 deletions(-)
diff --git a/hw/pci-host/pnv_phb3.c b/hw/pci-host/pnv_phb3.c
index d58d3c1701..058cbab555 100644
--- a/hw/pci-host/pnv_phb3.c
+++ b/hw/pci-host/pnv_phb3.c
@@ -986,6 +986,28 @@ static void pnv_phb3_instance_init(Object *obj)
}
+void pnv_phb3_bus_init(DeviceState *dev, PnvPHB3 *phb)
+{
+ PCIHostState *pci = PCI_HOST_BRIDGE(dev);
+
+ /*
+ * PHB3 doesn't support IO space. However, qemu gets very upset if
+ * we don't have an IO region to anchor IO BARs onto so we just
+ * initialize one which we never hook up to anything
+ */
+ memory_region_init(&phb->pci_io, OBJECT(phb), "pci-io", 0x10000);
+ memory_region_init(&phb->pci_mmio, OBJECT(phb), "pci-mmio",
+ PCI_MMIO_TOTAL_SIZE);
+
+ pci->bus = pci_register_root_bus(dev,
+ dev->id ? dev->id : NULL,
+ pnv_phb3_set_irq, pnv_phb3_map_irq, phb,
+ &phb->pci_mmio, &phb->pci_io,
+ 0, 4, TYPE_PNV_PHB3_ROOT_BUS);
+
+ pci_setup_iommu(pci->bus, pnv_phb3_dma_iommu, phb);
+}
+
static void pnv_phb3_realize(DeviceState *dev, Error **errp)
{
PnvPHB3 *phb = PNV_PHB3(dev);
@@ -1035,22 +1057,7 @@ static void pnv_phb3_realize(DeviceState *dev, Error **errp)
memory_region_init_io(&phb->mr_regs, OBJECT(phb), &pnv_phb3_reg_ops, phb,
"phb3-regs", 0x1000);
- /*
- * PHB3 doesn't support IO space. However, qemu gets very upset if
- * we don't have an IO region to anchor IO BARs onto so we just
- * initialize one which we never hook up to anything
- */
- memory_region_init(&phb->pci_io, OBJECT(phb), "pci-io", 0x10000);
- memory_region_init(&phb->pci_mmio, OBJECT(phb), "pci-mmio",
- PCI_MMIO_TOTAL_SIZE);
-
- pci->bus = pci_register_root_bus(dev,
- dev->id ? dev->id : NULL,
- pnv_phb3_set_irq, pnv_phb3_map_irq, phb,
- &phb->pci_mmio, &phb->pci_io,
- 0, 4, TYPE_PNV_PHB3_ROOT_BUS);
-
- pci_setup_iommu(pci->bus, pnv_phb3_dma_iommu, phb);
+ pnv_phb3_bus_init(dev, phb);
pnv_phb_attach_root_port(pci, TYPE_PNV_PHB3_ROOT_PORT,
phb->phb_id, phb->chip_id);
diff --git a/include/hw/pci-host/pnv_phb3.h b/include/hw/pci-host/pnv_phb3.h
index af6ec83cf6..1375f18fc1 100644
--- a/include/hw/pci-host/pnv_phb3.h
+++ b/include/hw/pci-host/pnv_phb3.h
@@ -164,5 +164,6 @@ uint64_t pnv_phb3_reg_read(void *opaque, hwaddr off, unsigned size);
void pnv_phb3_reg_write(void *opaque, hwaddr off, uint64_t val, unsigned size);
void pnv_phb3_update_regions(PnvPHB3 *phb);
void pnv_phb3_remap_irqs(PnvPHB3 *phb);
+void pnv_phb3_bus_init(DeviceState *dev, PnvPHB3 *phb);
#endif /* PCI_HOST_PNV_PHB3_H */
--
2.37.2
^ permalink raw reply related [flat|nested] 63+ messages in thread
* [PULL 07/60] ppc/pnv: add PnvPHB base/proxy device
2022-08-31 18:49 [PULL 00/60] ppc queue Daniel Henrique Barboza
` (5 preceding siblings ...)
2022-08-31 18:49 ` [PULL 06/60] ppc/pnv: add PHB3 bus init helper Daniel Henrique Barboza
@ 2022-08-31 18:49 ` Daniel Henrique Barboza
2022-08-31 18:49 ` [PULL 08/60] ppc/pnv: turn PnvPHB3 into a PnvPHB backend Daniel Henrique Barboza
` (53 subsequent siblings)
60 siblings, 0 replies; 63+ messages in thread
From: Daniel Henrique Barboza @ 2022-08-31 18:49 UTC (permalink / raw)
To: qemu-devel
Cc: qemu-ppc, danielhb413, peter.maydell, richard.henderson,
Frederic Barrat
The PnvPHB device is going to be the base device for all other powernv
PHBs. It consists of a device that has the same user API as the other
PHB, namely being a PCIHostBridge and having chip-id and index
properties. It also has a 'backend' pointer that will be initialized
with the PHB implementation that the device is going to use.
The initialization of the PHB backend is done by checking the PHB
version via a 'version' attribute that can be set via a global machine
property. The 'version' field will be used to make adjustments based on
the running version, e.g. PHB3 uses a 'chip' reference while PHB4 uses
'pec'. To init the PnvPHB bus we'll rely on helpers for each version.
The version 3 helper is already added (pnv_phb3_bus_init), the PHB4
helper will be added later on.
For now let's add the basic logic of the PnvPHB object, which consists
mostly of pnv_phb_realize() doing all the work of checking the
phb->version set, initializing the proper backend, passing through its
attributes to the chosen backend, finalizing the backend realize and
adding a root port in the end.
Signed-off-by: Daniel Henrique Barboza <danielhb413@gmail.com>
Reviewed-by: Frederic Barrat <fbarrat@linux.ibm.com>
Message-Id: <20220624084921.399219-3-danielhb413@gmail.com>
---
hw/pci-host/meson.build | 3 +-
hw/pci-host/pnv_phb.c | 124 ++++++++++++++++++++++++++++++++++++++++
hw/pci-host/pnv_phb.h | 39 +++++++++++++
3 files changed, 165 insertions(+), 1 deletion(-)
create mode 100644 hw/pci-host/pnv_phb.c
create mode 100644 hw/pci-host/pnv_phb.h
diff --git a/hw/pci-host/meson.build b/hw/pci-host/meson.build
index c07596d0d1..e832babc9d 100644
--- a/hw/pci-host/meson.build
+++ b/hw/pci-host/meson.build
@@ -35,5 +35,6 @@ specific_ss.add(when: 'CONFIG_PCI_POWERNV', if_true: files(
'pnv_phb3_msi.c',
'pnv_phb3_pbcq.c',
'pnv_phb4.c',
- 'pnv_phb4_pec.c'
+ 'pnv_phb4_pec.c',
+ 'pnv_phb.c',
))
diff --git a/hw/pci-host/pnv_phb.c b/hw/pci-host/pnv_phb.c
new file mode 100644
index 0000000000..6fefff7d44
--- /dev/null
+++ b/hw/pci-host/pnv_phb.c
@@ -0,0 +1,124 @@
+/*
+ * QEMU PowerPC PowerNV Proxy PHB model
+ *
+ * Copyright (c) 2022, IBM Corporation.
+ *
+ * This code is licensed under the GPL version 2 or later. See the
+ * COPYING file in the top-level directory.
+ */
+
+#include "qemu/osdep.h"
+#include "qemu/log.h"
+#include "qapi/visitor.h"
+#include "qapi/error.h"
+#include "hw/pci-host/pnv_phb.h"
+#include "hw/pci-host/pnv_phb3.h"
+#include "hw/pci-host/pnv_phb4.h"
+#include "hw/ppc/pnv.h"
+#include "hw/qdev-properties.h"
+#include "qom/object.h"
+
+
+static void pnv_phb_realize(DeviceState *dev, Error **errp)
+{
+ PnvPHB *phb = PNV_PHB(dev);
+ PCIHostState *pci = PCI_HOST_BRIDGE(dev);
+ g_autofree char *phb_typename = NULL;
+ g_autofree char *phb_rootport_typename = NULL;
+
+ if (!phb->version) {
+ error_setg(errp, "version not specified");
+ return;
+ }
+
+ switch (phb->version) {
+ case 3:
+ phb_typename = g_strdup(TYPE_PNV_PHB3);
+ phb_rootport_typename = g_strdup(TYPE_PNV_PHB3_ROOT_PORT);
+ break;
+ case 4:
+ phb_typename = g_strdup(TYPE_PNV_PHB4);
+ phb_rootport_typename = g_strdup(TYPE_PNV_PHB4_ROOT_PORT);
+ break;
+ case 5:
+ phb_typename = g_strdup(TYPE_PNV_PHB5);
+ phb_rootport_typename = g_strdup(TYPE_PNV_PHB5_ROOT_PORT);
+ break;
+ default:
+ g_assert_not_reached();
+ }
+
+ phb->backend = object_new(phb_typename);
+ object_property_add_child(OBJECT(dev), "phb-backend", phb->backend);
+
+ /* Passthrough child device properties to the proxy device */
+ object_property_set_uint(phb->backend, "index", phb->phb_id, errp);
+ object_property_set_uint(phb->backend, "chip-id", phb->chip_id, errp);
+ object_property_set_link(phb->backend, "phb-base", OBJECT(phb), errp);
+
+ if (phb->version == 3) {
+ object_property_set_link(phb->backend, "chip",
+ OBJECT(phb->chip), errp);
+ } else {
+ object_property_set_link(phb->backend, "pec", OBJECT(phb->pec), errp);
+ }
+
+ if (!qdev_realize(DEVICE(phb->backend), NULL, errp)) {
+ return;
+ }
+
+ if (phb->version == 3) {
+ pnv_phb3_bus_init(dev, PNV_PHB3(phb->backend));
+ }
+
+ pnv_phb_attach_root_port(pci, phb_rootport_typename,
+ phb->phb_id, phb->chip_id);
+}
+
+static const char *pnv_phb_root_bus_path(PCIHostState *host_bridge,
+ PCIBus *rootbus)
+{
+ PnvPHB *phb = PNV_PHB(host_bridge);
+
+ snprintf(phb->bus_path, sizeof(phb->bus_path), "00%02x:%02x",
+ phb->chip_id, phb->phb_id);
+ return phb->bus_path;
+}
+
+static Property pnv_phb_properties[] = {
+ DEFINE_PROP_UINT32("index", PnvPHB, phb_id, 0),
+ DEFINE_PROP_UINT32("chip-id", PnvPHB, chip_id, 0),
+ DEFINE_PROP_UINT32("version", PnvPHB, version, 0),
+
+ DEFINE_PROP_LINK("chip", PnvPHB, chip, TYPE_PNV_CHIP, PnvChip *),
+
+ DEFINE_PROP_LINK("pec", PnvPHB, pec, TYPE_PNV_PHB4_PEC,
+ PnvPhb4PecState *),
+
+ DEFINE_PROP_END_OF_LIST(),
+};
+
+static void pnv_phb_class_init(ObjectClass *klass, void *data)
+{
+ PCIHostBridgeClass *hc = PCI_HOST_BRIDGE_CLASS(klass);
+ DeviceClass *dc = DEVICE_CLASS(klass);
+
+ hc->root_bus_path = pnv_phb_root_bus_path;
+ dc->realize = pnv_phb_realize;
+ device_class_set_props(dc, pnv_phb_properties);
+ set_bit(DEVICE_CATEGORY_BRIDGE, dc->categories);
+ dc->user_creatable = false;
+}
+
+static void pnv_phb_register_type(void)
+{
+ static const TypeInfo pnv_phb_type_info = {
+ .name = TYPE_PNV_PHB,
+ .parent = TYPE_PCIE_HOST_BRIDGE,
+ .instance_size = sizeof(PnvPHB),
+ .class_init = pnv_phb_class_init,
+ };
+
+ type_register_static(&pnv_phb_type_info);
+}
+type_init(pnv_phb_register_type)
diff --git a/hw/pci-host/pnv_phb.h b/hw/pci-host/pnv_phb.h
new file mode 100644
index 0000000000..a7cc8610e2
--- /dev/null
+++ b/hw/pci-host/pnv_phb.h
@@ -0,0 +1,39 @@
+/*
+ * QEMU PowerPC PowerNV Proxy PHB model
+ *
+ * Copyright (c) 2022, IBM Corporation.
+ *
+ * This code is licensed under the GPL version 2 or later. See the
+ * COPYING file in the top-level directory.
+ */
+
+#ifndef PCI_HOST_PNV_PHB_H
+#define PCI_HOST_PNV_PHB_H
+
+#include "hw/pci/pcie_host.h"
+#include "hw/pci/pcie_port.h"
+#include "qom/object.h"
+
+typedef struct PnvChip PnvChip;
+typedef struct PnvPhb4PecState PnvPhb4PecState;
+
+struct PnvPHB {
+ PCIExpressHost parent_obj;
+
+ uint32_t chip_id;
+ uint32_t phb_id;
+ uint32_t version;
+ char bus_path[8];
+
+ PnvChip *chip;
+
+ PnvPhb4PecState *pec;
+
+ /* The PHB backend (PnvPHB3, PnvPHB4 ...) being used */
+ Object *backend;
+};
+
+#define TYPE_PNV_PHB "pnv-phb"
+OBJECT_DECLARE_SIMPLE_TYPE(PnvPHB, PNV_PHB)
+
+#endif /* PCI_HOST_PNV_PHB_H */
--
2.37.2
^ permalink raw reply related [flat|nested] 63+ messages in thread
* [PULL 08/60] ppc/pnv: turn PnvPHB3 into a PnvPHB backend
2022-08-31 18:49 [PULL 00/60] ppc queue Daniel Henrique Barboza
` (6 preceding siblings ...)
2022-08-31 18:49 ` [PULL 07/60] ppc/pnv: add PnvPHB base/proxy device Daniel Henrique Barboza
@ 2022-08-31 18:49 ` Daniel Henrique Barboza
2022-08-31 18:49 ` [PULL 09/60] ppc/pnv: add PHB4 bus init helper Daniel Henrique Barboza
` (52 subsequent siblings)
60 siblings, 0 replies; 63+ messages in thread
From: Daniel Henrique Barboza @ 2022-08-31 18:49 UTC (permalink / raw)
To: qemu-devel
Cc: qemu-ppc, danielhb413, peter.maydell, richard.henderson,
Frederic Barrat
We need a handful of changes that needs to be done in a single swoop to
turn PnvPHB3 into a PnvPHB backend.
In the PnvPHB3, since the PnvPHB device implements PCIExpressHost and
will hold the PCI bus, change PnvPHB3 parent to TYPE_DEVICE. There are a
couple of instances in pnv_phb3.c that needs to access the PCI bus, so a
phb_base pointer is added to allow access to the parent PnvPHB. The
PnvPHB3 root port will now be connected to a PnvPHB object.
In pnv.c, the powernv8 machine chip8 will now hold an array of PnvPHB
objects. pnv_get_phb3_child() needs to be adapted to return the PnvPHB3
backend from the PnvPHB child. A global property is added in
pnv_machine_power8_class_init() to ensure that all PnvPHBs are created
with phb->version = 3.
After all these changes we're still able to boot a powernv8 machine with
default settings. The real gain will come with user created PnvPHB
devices, coming up next.
Signed-off-by: Daniel Henrique Barboza <danielhb413@gmail.com>
Reviewed-by: Frederic Barrat <fbarrat@linux.ibm.com>
Message-Id: <20220624084921.399219-4-danielhb413@gmail.com>
---
hw/pci-host/pnv_phb3.c | 27 +++++----------------------
hw/ppc/pnv.c | 21 +++++++++++++++------
include/hw/pci-host/pnv_phb3.h | 5 ++++-
include/hw/ppc/pnv.h | 3 ++-
4 files changed, 26 insertions(+), 30 deletions(-)
diff --git a/hw/pci-host/pnv_phb3.c b/hw/pci-host/pnv_phb3.c
index 058cbab555..ad9e983fe9 100644
--- a/hw/pci-host/pnv_phb3.c
+++ b/hw/pci-host/pnv_phb3.c
@@ -11,6 +11,7 @@
#include "qapi/visitor.h"
#include "qapi/error.h"
#include "hw/pci-host/pnv_phb3_regs.h"
+#include "hw/pci-host/pnv_phb.h"
#include "hw/pci-host/pnv_phb3.h"
#include "hw/pci/pcie_host.h"
#include "hw/pci/pcie_port.h"
@@ -26,7 +27,7 @@
static PCIDevice *pnv_phb3_find_cfg_dev(PnvPHB3 *phb)
{
- PCIHostState *pci = PCI_HOST_BRIDGE(phb);
+ PCIHostState *pci = PCI_HOST_BRIDGE(phb->phb_base);
uint64_t addr = phb->regs[PHB_CONFIG_ADDRESS >> 3];
uint8_t bus, devfn;
@@ -590,7 +591,7 @@ void pnv_phb3_reg_write(void *opaque, hwaddr off, uint64_t val, unsigned size)
uint64_t pnv_phb3_reg_read(void *opaque, hwaddr off, unsigned size)
{
PnvPHB3 *phb = opaque;
- PCIHostState *pci = PCI_HOST_BRIDGE(phb);
+ PCIHostState *pci = PCI_HOST_BRIDGE(phb->phb_base);
uint64_t val;
if ((off & 0xfffc) == PHB_CONFIG_DATA) {
@@ -1011,7 +1012,6 @@ void pnv_phb3_bus_init(DeviceState *dev, PnvPHB3 *phb)
static void pnv_phb3_realize(DeviceState *dev, Error **errp)
{
PnvPHB3 *phb = PNV_PHB3(dev);
- PCIHostState *pci = PCI_HOST_BRIDGE(dev);
PnvMachineState *pnv = PNV_MACHINE(qdev_get_machine());
int i;
@@ -1056,11 +1056,6 @@ static void pnv_phb3_realize(DeviceState *dev, Error **errp)
/* Controller Registers */
memory_region_init_io(&phb->mr_regs, OBJECT(phb), &pnv_phb3_reg_ops, phb,
"phb3-regs", 0x1000);
-
- pnv_phb3_bus_init(dev, phb);
-
- pnv_phb_attach_root_port(pci, TYPE_PNV_PHB3_ROOT_PORT,
- phb->phb_id, phb->chip_id);
}
void pnv_phb3_update_regions(PnvPHB3 *phb)
@@ -1085,38 +1080,26 @@ void pnv_phb3_update_regions(PnvPHB3 *phb)
pnv_phb3_check_all_m64s(phb);
}
-static const char *pnv_phb3_root_bus_path(PCIHostState *host_bridge,
- PCIBus *rootbus)
-{
- PnvPHB3 *phb = PNV_PHB3(host_bridge);
-
- snprintf(phb->bus_path, sizeof(phb->bus_path), "00%02x:%02x",
- phb->chip_id, phb->phb_id);
- return phb->bus_path;
-}
-
static Property pnv_phb3_properties[] = {
DEFINE_PROP_UINT32("index", PnvPHB3, phb_id, 0),
DEFINE_PROP_UINT32("chip-id", PnvPHB3, chip_id, 0),
DEFINE_PROP_LINK("chip", PnvPHB3, chip, TYPE_PNV_CHIP, PnvChip *),
+ DEFINE_PROP_LINK("phb-base", PnvPHB3, phb_base, TYPE_PNV_PHB, PnvPHB *),
DEFINE_PROP_END_OF_LIST(),
};
static void pnv_phb3_class_init(ObjectClass *klass, void *data)
{
- PCIHostBridgeClass *hc = PCI_HOST_BRIDGE_CLASS(klass);
DeviceClass *dc = DEVICE_CLASS(klass);
- hc->root_bus_path = pnv_phb3_root_bus_path;
dc->realize = pnv_phb3_realize;
device_class_set_props(dc, pnv_phb3_properties);
- set_bit(DEVICE_CATEGORY_BRIDGE, dc->categories);
dc->user_creatable = false;
}
static const TypeInfo pnv_phb3_type_info = {
.name = TYPE_PNV_PHB3,
- .parent = TYPE_PCIE_HOST_BRIDGE,
+ .parent = TYPE_DEVICE,
.instance_size = sizeof(PnvPHB3),
.class_init = pnv_phb3_class_init,
.instance_init = pnv_phb3_instance_init,
diff --git a/hw/ppc/pnv.c b/hw/ppc/pnv.c
index 0c3aad430b..5b60735c7a 100644
--- a/hw/ppc/pnv.c
+++ b/hw/ppc/pnv.c
@@ -43,6 +43,7 @@
#include "hw/ipmi/ipmi.h"
#include "target/ppc/mmu-hash64.h"
#include "hw/pci/msi.h"
+#include "hw/pci-host/pnv_phb.h"
#include "hw/ppc/xics.h"
#include "hw/qdev-properties.h"
@@ -660,7 +661,8 @@ static void pnv_chip_power8_pic_print_info(PnvChip *chip, Monitor *mon)
ics_pic_print_info(&chip8->psi.ics, mon);
for (i = 0; i < chip8->num_phbs; i++) {
- PnvPHB3 *phb3 = &chip8->phbs[i];
+ PnvPHB *phb = &chip8->phbs[i];
+ PnvPHB3 *phb3 = PNV_PHB3(phb->backend);
pnv_phb3_msi_pic_print_info(&phb3->msis, mon);
ics_pic_print_info(&phb3->lsis, mon);
@@ -1149,7 +1151,7 @@ static void pnv_chip_power8_instance_init(Object *obj)
chip8->num_phbs = pcc->num_phbs;
for (i = 0; i < chip8->num_phbs; i++) {
- object_initialize_child(obj, "phb[*]", &chip8->phbs[i], TYPE_PNV_PHB3);
+ object_initialize_child(obj, "phb[*]", &chip8->phbs[i], TYPE_PNV_PHB);
}
}
@@ -1287,9 +1289,9 @@ static void pnv_chip_power8_realize(DeviceState *dev, Error **errp)
memory_region_add_subregion(get_system_memory(), PNV_HOMER_BASE(chip),
&chip8->homer.regs);
- /* PHB3 controllers */
+ /* PHB controllers */
for (i = 0; i < chip8->num_phbs; i++) {
- PnvPHB3 *phb = &chip8->phbs[i];
+ PnvPHB *phb = &chip8->phbs[i];
object_property_set_int(OBJECT(phb), "index", i, &error_fatal);
object_property_set_int(OBJECT(phb), "chip-id", chip->chip_id,
@@ -1982,7 +1984,8 @@ static ICSState *pnv_ics_get(XICSFabric *xi, int irq)
}
for (j = 0; j < chip8->num_phbs; j++) {
- PnvPHB3 *phb3 = &chip8->phbs[j];
+ PnvPHB *phb = &chip8->phbs[j];
+ PnvPHB3 *phb3 = PNV_PHB3(phb->backend);
if (ics_valid_irq(&phb3->lsis, irq)) {
return &phb3->lsis;
@@ -2020,7 +2023,8 @@ static void pnv_ics_resend(XICSFabric *xi)
ics_resend(&chip8->psi.ics);
for (j = 0; j < chip8->num_phbs; j++) {
- PnvPHB3 *phb3 = &chip8->phbs[j];
+ PnvPHB *phb = &chip8->phbs[j];
+ PnvPHB3 *phb3 = PNV_PHB3(phb->backend);
ics_resend(&phb3->lsis);
ics_resend(ICS(&phb3->msis));
@@ -2120,8 +2124,13 @@ static void pnv_machine_power8_class_init(ObjectClass *oc, void *data)
PnvMachineClass *pmc = PNV_MACHINE_CLASS(oc);
static const char compat[] = "qemu,powernv8\0qemu,powernv\0ibm,powernv";
+ static GlobalProperty phb_compat[] = {
+ { TYPE_PNV_PHB, "version", "3" },
+ };
+
mc->desc = "IBM PowerNV (Non-Virtualized) POWER8";
mc->default_cpu_type = POWERPC_CPU_TYPE_NAME("power8_v2.0");
+ compat_props_add(mc->compat_props, phb_compat, G_N_ELEMENTS(phb_compat));
xic->icp_get = pnv_icp_get;
xic->ics_get = pnv_ics_get;
diff --git a/include/hw/pci-host/pnv_phb3.h b/include/hw/pci-host/pnv_phb3.h
index 1375f18fc1..3b9ff1096a 100644
--- a/include/hw/pci-host/pnv_phb3.h
+++ b/include/hw/pci-host/pnv_phb3.h
@@ -14,6 +14,7 @@
#include "hw/pci/pcie_port.h"
#include "hw/ppc/xics.h"
#include "qom/object.h"
+#include "hw/pci-host/pnv_phb.h"
typedef struct PnvPHB3 PnvPHB3;
typedef struct PnvChip PnvChip;
@@ -127,7 +128,9 @@ OBJECT_DECLARE_SIMPLE_TYPE(PnvPHB3, PNV_PHB3)
#define PCI_MMIO_TOTAL_SIZE (0x1ull << 60)
struct PnvPHB3 {
- PCIExpressHost parent_obj;
+ DeviceState parent;
+
+ PnvPHB *phb_base;
uint32_t chip_id;
uint32_t phb_id;
diff --git a/include/hw/ppc/pnv.h b/include/hw/ppc/pnv.h
index 37c303bf36..21fa90aaff 100644
--- a/include/hw/ppc/pnv.h
+++ b/include/hw/ppc/pnv.h
@@ -33,6 +33,7 @@
#include "hw/ppc/pnv_core.h"
#include "hw/pci-host/pnv_phb3.h"
#include "hw/pci-host/pnv_phb4.h"
+#include "hw/pci-host/pnv_phb.h"
#include "qom/object.h"
#define TYPE_PNV_CHIP "pnv-chip"
@@ -81,7 +82,7 @@ struct Pnv8Chip {
PnvHomer homer;
#define PNV8_CHIP_PHB3_MAX 4
- PnvPHB3 phbs[PNV8_CHIP_PHB3_MAX];
+ PnvPHB phbs[PNV8_CHIP_PHB3_MAX];
uint32_t num_phbs;
XICSFabric *xics;
--
2.37.2
^ permalink raw reply related [flat|nested] 63+ messages in thread
* [PULL 09/60] ppc/pnv: add PHB4 bus init helper
2022-08-31 18:49 [PULL 00/60] ppc queue Daniel Henrique Barboza
` (7 preceding siblings ...)
2022-08-31 18:49 ` [PULL 08/60] ppc/pnv: turn PnvPHB3 into a PnvPHB backend Daniel Henrique Barboza
@ 2022-08-31 18:49 ` Daniel Henrique Barboza
2022-08-31 18:49 ` [PULL 10/60] ppc/pnv: turn PnvPHB4 into a PnvPHB backend Daniel Henrique Barboza
` (51 subsequent siblings)
60 siblings, 0 replies; 63+ messages in thread
From: Daniel Henrique Barboza @ 2022-08-31 18:49 UTC (permalink / raw)
To: qemu-devel
Cc: qemu-ppc, danielhb413, peter.maydell, richard.henderson,
Frederic Barrat
Similar to what we already did for the PnvPHB3 device, let's add a
helper to init the bus when using a PnvPHB4. This helper will be used by
PnvPHb when PnvPHB4 turns into a backend.
Signed-off-by: Daniel Henrique Barboza <danielhb413@gmail.com>
Reviewed-by: Frederic Barrat <fbarrat@linux.ibm.com>
Message-Id: <20220624084921.399219-5-danielhb413@gmail.com>
---
hw/pci-host/pnv_phb.c | 2 ++
hw/pci-host/pnv_phb4.c | 39 ++++++++++++++++++++--------------
include/hw/pci-host/pnv_phb4.h | 1 +
3 files changed, 26 insertions(+), 16 deletions(-)
diff --git a/hw/pci-host/pnv_phb.c b/hw/pci-host/pnv_phb.c
index 6fefff7d44..abcbcca445 100644
--- a/hw/pci-host/pnv_phb.c
+++ b/hw/pci-host/pnv_phb.c
@@ -69,6 +69,8 @@ static void pnv_phb_realize(DeviceState *dev, Error **errp)
if (phb->version == 3) {
pnv_phb3_bus_init(dev, PNV_PHB3(phb->backend));
+ } else {
+ pnv_phb4_bus_init(dev, PNV_PHB4(phb->backend));
}
pnv_phb_attach_root_port(pci, phb_rootport_typename,
diff --git a/hw/pci-host/pnv_phb4.c b/hw/pci-host/pnv_phb4.c
index 67ddde4a6e..a7425927fb 100644
--- a/hw/pci-host/pnv_phb4.c
+++ b/hw/pci-host/pnv_phb4.c
@@ -1528,30 +1528,16 @@ static void pnv_phb4_instance_init(Object *obj)
object_initialize_child(obj, "source", &phb->xsrc, TYPE_XIVE_SOURCE);
}
-static void pnv_phb4_realize(DeviceState *dev, Error **errp)
+void pnv_phb4_bus_init(DeviceState *dev, PnvPHB4 *phb)
{
- PnvPHB4 *phb = PNV_PHB4(dev);
- PnvPhb4PecClass *pecc = PNV_PHB4_PEC_GET_CLASS(phb->pec);
PCIHostState *pci = PCI_HOST_BRIDGE(dev);
- XiveSource *xsrc = &phb->xsrc;
- int nr_irqs;
char name[32];
- /* Set the "big_phb" flag */
- phb->big_phb = phb->phb_id == 0 || phb->phb_id == 3;
-
- /* Controller Registers */
- snprintf(name, sizeof(name), "phb4-%d.%d-regs", phb->chip_id,
- phb->phb_id);
- memory_region_init_io(&phb->mr_regs, OBJECT(phb), &pnv_phb4_reg_ops, phb,
- name, 0x2000);
-
/*
* PHB4 doesn't support IO space. However, qemu gets very upset if
* we don't have an IO region to anchor IO BARs onto so we just
* initialize one which we never hook up to anything
*/
-
snprintf(name, sizeof(name), "phb4-%d.%d-pci-io", phb->chip_id,
phb->phb_id);
memory_region_init(&phb->pci_io, OBJECT(phb), name, 0x10000);
@@ -1561,12 +1547,33 @@ static void pnv_phb4_realize(DeviceState *dev, Error **errp)
memory_region_init(&phb->pci_mmio, OBJECT(phb), name,
PCI_MMIO_TOTAL_SIZE);
- pci->bus = pci_register_root_bus(dev, dev->id,
+ pci->bus = pci_register_root_bus(dev, dev->id ? dev->id : NULL,
pnv_phb4_set_irq, pnv_phb4_map_irq, phb,
&phb->pci_mmio, &phb->pci_io,
0, 4, TYPE_PNV_PHB4_ROOT_BUS);
pci_setup_iommu(pci->bus, pnv_phb4_dma_iommu, phb);
pci->bus->flags |= PCI_BUS_EXTENDED_CONFIG_SPACE;
+}
+
+static void pnv_phb4_realize(DeviceState *dev, Error **errp)
+{
+ PnvPHB4 *phb = PNV_PHB4(dev);
+ PnvPhb4PecClass *pecc = PNV_PHB4_PEC_GET_CLASS(phb->pec);
+ PCIHostState *pci = PCI_HOST_BRIDGE(dev);
+ XiveSource *xsrc = &phb->xsrc;
+ int nr_irqs;
+ char name[32];
+
+ /* Set the "big_phb" flag */
+ phb->big_phb = phb->phb_id == 0 || phb->phb_id == 3;
+
+ /* Controller Registers */
+ snprintf(name, sizeof(name), "phb4-%d.%d-regs", phb->chip_id,
+ phb->phb_id);
+ memory_region_init_io(&phb->mr_regs, OBJECT(phb), &pnv_phb4_reg_ops, phb,
+ name, 0x2000);
+
+ pnv_phb4_bus_init(dev, phb);
/* Add a single Root port if running with defaults */
pnv_phb_attach_root_port(pci, pecc->rp_model,
diff --git a/include/hw/pci-host/pnv_phb4.h b/include/hw/pci-host/pnv_phb4.h
index 19dcbd6f87..90843ac3a9 100644
--- a/include/hw/pci-host/pnv_phb4.h
+++ b/include/hw/pci-host/pnv_phb4.h
@@ -157,6 +157,7 @@ struct PnvPHB4 {
void pnv_phb4_pic_print_info(PnvPHB4 *phb, Monitor *mon);
int pnv_phb4_pec_get_phb_id(PnvPhb4PecState *pec, int stack_index);
+void pnv_phb4_bus_init(DeviceState *dev, PnvPHB4 *phb);
extern const MemoryRegionOps pnv_phb4_xscom_ops;
/*
--
2.37.2
^ permalink raw reply related [flat|nested] 63+ messages in thread
* [PULL 10/60] ppc/pnv: turn PnvPHB4 into a PnvPHB backend
2022-08-31 18:49 [PULL 00/60] ppc queue Daniel Henrique Barboza
` (8 preceding siblings ...)
2022-08-31 18:49 ` [PULL 09/60] ppc/pnv: add PHB4 bus init helper Daniel Henrique Barboza
@ 2022-08-31 18:49 ` Daniel Henrique Barboza
2022-08-31 18:49 ` [PULL 11/60] ppc/pnv: add pnv-phb-root-port device Daniel Henrique Barboza
` (50 subsequent siblings)
60 siblings, 0 replies; 63+ messages in thread
From: Daniel Henrique Barboza @ 2022-08-31 18:49 UTC (permalink / raw)
To: qemu-devel
Cc: qemu-ppc, danielhb413, peter.maydell, richard.henderson,
Frederic Barrat
Change the parent type of the PnvPHB4 device to TYPE_PARENT since the
PCI bus is going to be initialized by the PnvPHB parent. Functions that
needs to access the bus via a PnvPHB4 object can do so via the
phb4->phb_base pointer.
pnv_phb4_pec now creates a PnvPHB object.
The powernv9 machine class will create PnvPHB devices with version '4'.
powernv10 will create using version '5'. Both are using global machine
properties in their class_init() to do that.
These changes will benefit us when adding PnvPHB user creatable devices
for powernv9 and powernv10.
Signed-off-by: Daniel Henrique Barboza <danielhb413@gmail.com>
Reviewed-by: Frederic Barrat <fbarrat@linux.ibm.com>
Message-Id: <20220624084921.399219-6-danielhb413@gmail.com>
---
hw/pci-host/pnv_phb4.c | 30 +++++-------------------------
hw/pci-host/pnv_phb4_pec.c | 3 +--
hw/ppc/pnv.c | 20 +++++++++++++++++---
include/hw/pci-host/pnv_phb4.h | 5 ++++-
4 files changed, 27 insertions(+), 31 deletions(-)
diff --git a/hw/pci-host/pnv_phb4.c b/hw/pci-host/pnv_phb4.c
index a7425927fb..144c437025 100644
--- a/hw/pci-host/pnv_phb4.c
+++ b/hw/pci-host/pnv_phb4.c
@@ -33,7 +33,7 @@
static PCIDevice *pnv_phb4_find_cfg_dev(PnvPHB4 *phb)
{
- PCIHostState *pci = PCI_HOST_BRIDGE(phb);
+ PCIHostState *pci = PCI_HOST_BRIDGE(phb->phb_base);
uint64_t addr = phb->regs[PHB_CONFIG_ADDRESS >> 3];
uint8_t bus, devfn;
@@ -129,7 +129,7 @@ static uint64_t pnv_phb4_config_read(PnvPHB4 *phb, unsigned off,
static void pnv_phb4_rc_config_write(PnvPHB4 *phb, unsigned off,
unsigned size, uint64_t val)
{
- PCIHostState *pci = PCI_HOST_BRIDGE(phb);
+ PCIHostState *pci = PCI_HOST_BRIDGE(phb->phb_base);
PCIDevice *pdev;
if (size != 4) {
@@ -150,7 +150,7 @@ static void pnv_phb4_rc_config_write(PnvPHB4 *phb, unsigned off,
static uint64_t pnv_phb4_rc_config_read(PnvPHB4 *phb, unsigned off,
unsigned size)
{
- PCIHostState *pci = PCI_HOST_BRIDGE(phb);
+ PCIHostState *pci = PCI_HOST_BRIDGE(phb->phb_base);
PCIDevice *pdev;
uint64_t val;
@@ -1558,8 +1558,6 @@ void pnv_phb4_bus_init(DeviceState *dev, PnvPHB4 *phb)
static void pnv_phb4_realize(DeviceState *dev, Error **errp)
{
PnvPHB4 *phb = PNV_PHB4(dev);
- PnvPhb4PecClass *pecc = PNV_PHB4_PEC_GET_CLASS(phb->pec);
- PCIHostState *pci = PCI_HOST_BRIDGE(dev);
XiveSource *xsrc = &phb->xsrc;
int nr_irqs;
char name[32];
@@ -1573,12 +1571,6 @@ static void pnv_phb4_realize(DeviceState *dev, Error **errp)
memory_region_init_io(&phb->mr_regs, OBJECT(phb), &pnv_phb4_reg_ops, phb,
name, 0x2000);
- pnv_phb4_bus_init(dev, phb);
-
- /* Add a single Root port if running with defaults */
- pnv_phb_attach_root_port(pci, pecc->rp_model,
- phb->phb_id, phb->chip_id);
-
/* Setup XIVE Source */
if (phb->big_phb) {
nr_irqs = PNV_PHB4_MAX_INTs;
@@ -1598,16 +1590,6 @@ static void pnv_phb4_realize(DeviceState *dev, Error **errp)
pnv_phb4_xscom_realize(phb);
}
-static const char *pnv_phb4_root_bus_path(PCIHostState *host_bridge,
- PCIBus *rootbus)
-{
- PnvPHB4 *phb = PNV_PHB4(host_bridge);
-
- snprintf(phb->bus_path, sizeof(phb->bus_path), "00%02x:%02x",
- phb->chip_id, phb->phb_id);
- return phb->bus_path;
-}
-
/*
* Address base trigger mode (POWER10)
*
@@ -1692,19 +1674,17 @@ static Property pnv_phb4_properties[] = {
DEFINE_PROP_UINT32("chip-id", PnvPHB4, chip_id, 0),
DEFINE_PROP_LINK("pec", PnvPHB4, pec, TYPE_PNV_PHB4_PEC,
PnvPhb4PecState *),
+ DEFINE_PROP_LINK("phb-base", PnvPHB4, phb_base, TYPE_PNV_PHB, PnvPHB *),
DEFINE_PROP_END_OF_LIST(),
};
static void pnv_phb4_class_init(ObjectClass *klass, void *data)
{
- PCIHostBridgeClass *hc = PCI_HOST_BRIDGE_CLASS(klass);
DeviceClass *dc = DEVICE_CLASS(klass);
XiveNotifierClass *xfc = XIVE_NOTIFIER_CLASS(klass);
- hc->root_bus_path = pnv_phb4_root_bus_path;
dc->realize = pnv_phb4_realize;
device_class_set_props(dc, pnv_phb4_properties);
- set_bit(DEVICE_CATEGORY_BRIDGE, dc->categories);
dc->user_creatable = false;
xfc->notify = pnv_phb4_xive_notify;
@@ -1712,7 +1692,7 @@ static void pnv_phb4_class_init(ObjectClass *klass, void *data)
static const TypeInfo pnv_phb4_type_info = {
.name = TYPE_PNV_PHB4,
- .parent = TYPE_PCIE_HOST_BRIDGE,
+ .parent = TYPE_DEVICE,
.instance_init = pnv_phb4_instance_init,
.instance_size = sizeof(PnvPHB4),
.class_init = pnv_phb4_class_init,
diff --git a/hw/pci-host/pnv_phb4_pec.c b/hw/pci-host/pnv_phb4_pec.c
index c9aaf1c28e..4a0a9fbe8b 100644
--- a/hw/pci-host/pnv_phb4_pec.c
+++ b/hw/pci-host/pnv_phb4_pec.c
@@ -115,8 +115,7 @@ static void pnv_pec_default_phb_realize(PnvPhb4PecState *pec,
int stack_no,
Error **errp)
{
- PnvPhb4PecClass *pecc = PNV_PHB4_PEC_GET_CLASS(pec);
- PnvPHB4 *phb = PNV_PHB4(qdev_new(pecc->phb_type));
+ PnvPHB *phb = PNV_PHB(qdev_new(TYPE_PNV_PHB));
int phb_id = pnv_phb4_pec_get_phb_id(pec, stack_no);
object_property_add_child(OBJECT(pec), "phb[*]", OBJECT(phb));
diff --git a/hw/ppc/pnv.c b/hw/ppc/pnv.c
index 5b60735c7a..ae6cd14a8a 100644
--- a/hw/ppc/pnv.c
+++ b/hw/ppc/pnv.c
@@ -672,11 +672,14 @@ static void pnv_chip_power8_pic_print_info(PnvChip *chip, Monitor *mon)
static int pnv_chip_power9_pic_print_info_child(Object *child, void *opaque)
{
Monitor *mon = opaque;
- PnvPHB4 *phb4 = (PnvPHB4 *) object_dynamic_cast(child, TYPE_PNV_PHB4);
+ PnvPHB *phb = (PnvPHB *) object_dynamic_cast(child, TYPE_PNV_PHB);
- if (phb4) {
- pnv_phb4_pic_print_info(phb4, mon);
+ if (!phb) {
+ return 0;
}
+
+ pnv_phb4_pic_print_info(PNV_PHB4(phb->backend), mon);
+
return 0;
}
@@ -2147,8 +2150,14 @@ static void pnv_machine_power9_class_init(ObjectClass *oc, void *data)
PnvMachineClass *pmc = PNV_MACHINE_CLASS(oc);
static const char compat[] = "qemu,powernv9\0ibm,powernv";
+ static GlobalProperty phb_compat[] = {
+ { TYPE_PNV_PHB, "version", "4" },
+ };
+
mc->desc = "IBM PowerNV (Non-Virtualized) POWER9";
mc->default_cpu_type = POWERPC_CPU_TYPE_NAME("power9_v2.0");
+ compat_props_add(mc->compat_props, phb_compat, G_N_ELEMENTS(phb_compat));
+
xfc->match_nvt = pnv_match_nvt;
mc->alias = "powernv";
@@ -2165,8 +2174,13 @@ static void pnv_machine_power10_class_init(ObjectClass *oc, void *data)
XiveFabricClass *xfc = XIVE_FABRIC_CLASS(oc);
static const char compat[] = "qemu,powernv10\0ibm,powernv";
+ static GlobalProperty phb_compat[] = {
+ { TYPE_PNV_PHB, "version", "5" },
+ };
+
mc->desc = "IBM PowerNV (Non-Virtualized) POWER10";
mc->default_cpu_type = POWERPC_CPU_TYPE_NAME("power10_v2.0");
+ compat_props_add(mc->compat_props, phb_compat, G_N_ELEMENTS(phb_compat));
pmc->compat = compat;
pmc->compat_size = sizeof(compat);
diff --git a/include/hw/pci-host/pnv_phb4.h b/include/hw/pci-host/pnv_phb4.h
index 90843ac3a9..f22253358f 100644
--- a/include/hw/pci-host/pnv_phb4.h
+++ b/include/hw/pci-host/pnv_phb4.h
@@ -18,6 +18,7 @@
typedef struct PnvPhb4PecState PnvPhb4PecState;
typedef struct PnvPhb4PecStack PnvPhb4PecStack;
typedef struct PnvPHB4 PnvPHB4;
+typedef struct PnvPHB PnvPHB;
typedef struct PnvChip PnvChip;
/*
@@ -78,7 +79,9 @@ OBJECT_DECLARE_SIMPLE_TYPE(PnvPHB4, PNV_PHB4)
#define PCI_MMIO_TOTAL_SIZE (0x1ull << 60)
struct PnvPHB4 {
- PCIExpressHost parent_obj;
+ DeviceState parent;
+
+ PnvPHB *phb_base;
uint32_t chip_id;
uint32_t phb_id;
--
2.37.2
^ permalink raw reply related [flat|nested] 63+ messages in thread
* [PULL 11/60] ppc/pnv: add pnv-phb-root-port device
2022-08-31 18:49 [PULL 00/60] ppc queue Daniel Henrique Barboza
` (9 preceding siblings ...)
2022-08-31 18:49 ` [PULL 10/60] ppc/pnv: turn PnvPHB4 into a PnvPHB backend Daniel Henrique Barboza
@ 2022-08-31 18:49 ` Daniel Henrique Barboza
2022-08-31 18:49 ` [PULL 12/60] ppc/pnv: remove pnv-phb3-root-port Daniel Henrique Barboza
` (49 subsequent siblings)
60 siblings, 0 replies; 63+ messages in thread
From: Daniel Henrique Barboza @ 2022-08-31 18:49 UTC (permalink / raw)
To: qemu-devel
Cc: qemu-ppc, danielhb413, peter.maydell, richard.henderson,
Frederic Barrat
We have two very similar root-port devices, pnv-phb3-root-port and
pnv-phb4-root-port. Both consist of a wrapper around the PCIESlot device
that, until now, has no additional attributes.
The main difference between the PHB3 and PHB4 root ports is that
pnv-phb4-root-port has the pnv_phb4_root_port_reset() callback. All
other differences can be merged in a single device without too much
trouble.
This patch introduces the unified pnv-phb-root-port that, in time, will
be used as the default root port for the pnv-phb device.
Signed-off-by: Daniel Henrique Barboza <danielhb413@gmail.com>
Reviewed-by: Frederic Barrat <fbarrat@linux.ibm.com>
Message-Id: <20220624084921.399219-7-danielhb413@gmail.com>
---
hw/pci-host/pnv_phb.c | 115 +++++++++++++++++++++++++++++++++++++++---
hw/pci-host/pnv_phb.h | 16 ++++++
2 files changed, 123 insertions(+), 8 deletions(-)
diff --git a/hw/pci-host/pnv_phb.c b/hw/pci-host/pnv_phb.c
index abcbcca445..5e61f85614 100644
--- a/hw/pci-host/pnv_phb.c
+++ b/hw/pci-host/pnv_phb.c
@@ -112,15 +112,114 @@ static void pnv_phb_class_init(ObjectClass *klass, void *data)
dc->user_creatable = false;
}
-static void pnv_phb_register_type(void)
+static void pnv_phb_root_port_reset(DeviceState *dev)
{
- static const TypeInfo pnv_phb_type_info = {
- .name = TYPE_PNV_PHB,
- .parent = TYPE_PCIE_HOST_BRIDGE,
- .instance_size = sizeof(PnvPHB),
- .class_init = pnv_phb_class_init,
- };
+ PCIERootPortClass *rpc = PCIE_ROOT_PORT_GET_CLASS(dev);
+ PnvPHBRootPort *phb_rp = PNV_PHB_ROOT_PORT(dev);
+ PCIDevice *d = PCI_DEVICE(dev);
+ uint8_t *conf = d->config;
+ rpc->parent_reset(dev);
+
+ if (phb_rp->version == 3) {
+ return;
+ }
+
+ /* PHB4 and later requires these extra reset steps */
+ pci_byte_test_and_set_mask(conf + PCI_IO_BASE,
+ PCI_IO_RANGE_MASK & 0xff);
+ pci_byte_test_and_clear_mask(conf + PCI_IO_LIMIT,
+ PCI_IO_RANGE_MASK & 0xff);
+ pci_set_word(conf + PCI_MEMORY_BASE, 0);
+ pci_set_word(conf + PCI_MEMORY_LIMIT, 0xfff0);
+ pci_set_word(conf + PCI_PREF_MEMORY_BASE, 0x1);
+ pci_set_word(conf + PCI_PREF_MEMORY_LIMIT, 0xfff1);
+ pci_set_long(conf + PCI_PREF_BASE_UPPER32, 0x1); /* Hack */
+ pci_set_long(conf + PCI_PREF_LIMIT_UPPER32, 0xffffffff);
+ pci_config_set_interrupt_pin(conf, 0);
+}
+
+static void pnv_phb_root_port_realize(DeviceState *dev, Error **errp)
+{
+ PCIERootPortClass *rpc = PCIE_ROOT_PORT_GET_CLASS(dev);
+ PnvPHBRootPort *phb_rp = PNV_PHB_ROOT_PORT(dev);
+ PCIDevice *pci = PCI_DEVICE(dev);
+ uint16_t device_id = 0;
+ Error *local_err = NULL;
+
+ rpc->parent_realize(dev, &local_err);
+ if (local_err) {
+ error_propagate(errp, local_err);
+ return;
+ }
+
+ switch (phb_rp->version) {
+ case 3:
+ device_id = PNV_PHB3_DEVICE_ID;
+ break;
+ case 4:
+ device_id = PNV_PHB4_DEVICE_ID;
+ break;
+ case 5:
+ device_id = PNV_PHB5_DEVICE_ID;
+ break;
+ default:
+ g_assert_not_reached();
+ }
+
+ pci_config_set_device_id(pci->config, device_id);
+ pci_config_set_interrupt_pin(pci->config, 0);
+}
+
+static Property pnv_phb_root_port_properties[] = {
+ DEFINE_PROP_UINT32("version", PnvPHBRootPort, version, 0),
+
+ DEFINE_PROP_END_OF_LIST(),
+};
+
+static void pnv_phb_root_port_class_init(ObjectClass *klass, void *data)
+{
+ DeviceClass *dc = DEVICE_CLASS(klass);
+ PCIDeviceClass *k = PCI_DEVICE_CLASS(klass);
+ PCIERootPortClass *rpc = PCIE_ROOT_PORT_CLASS(klass);
+
+ dc->desc = "IBM PHB PCIE Root Port";
+
+ device_class_set_props(dc, pnv_phb_root_port_properties);
+ device_class_set_parent_realize(dc, pnv_phb_root_port_realize,
+ &rpc->parent_realize);
+ device_class_set_parent_reset(dc, pnv_phb_root_port_reset,
+ &rpc->parent_reset);
+ dc->reset = &pnv_phb_root_port_reset;
+ dc->user_creatable = false;
+
+ k->vendor_id = PCI_VENDOR_ID_IBM;
+ /* device_id will be written during realize() */
+ k->device_id = 0;
+ k->revision = 0;
+
+ rpc->exp_offset = 0x48;
+ rpc->aer_offset = 0x100;
+}
+
+static const TypeInfo pnv_phb_type_info = {
+ .name = TYPE_PNV_PHB,
+ .parent = TYPE_PCIE_HOST_BRIDGE,
+ .instance_size = sizeof(PnvPHB),
+ .class_init = pnv_phb_class_init,
+};
+
+static const TypeInfo pnv_phb_root_port_info = {
+ .name = TYPE_PNV_PHB_ROOT_PORT,
+ .parent = TYPE_PCIE_ROOT_PORT,
+ .instance_size = sizeof(PnvPHBRootPort),
+ .class_init = pnv_phb_root_port_class_init,
+};
+
+static void pnv_phb_register_types(void)
+{
type_register_static(&pnv_phb_type_info);
+ type_register_static(&pnv_phb_root_port_info);
}
-type_init(pnv_phb_register_type)
+
+type_init(pnv_phb_register_types)
diff --git a/hw/pci-host/pnv_phb.h b/hw/pci-host/pnv_phb.h
index a7cc8610e2..58ebd6dd0f 100644
--- a/hw/pci-host/pnv_phb.h
+++ b/hw/pci-host/pnv_phb.h
@@ -36,4 +36,20 @@ struct PnvPHB {
#define TYPE_PNV_PHB "pnv-phb"
OBJECT_DECLARE_SIMPLE_TYPE(PnvPHB, PNV_PHB)
+/*
+ * PHB PCIe Root port
+ */
+#define PNV_PHB3_DEVICE_ID 0x03dc
+#define PNV_PHB4_DEVICE_ID 0x04c1
+#define PNV_PHB5_DEVICE_ID 0x0652
+
+typedef struct PnvPHBRootPort {
+ PCIESlot parent_obj;
+
+ uint32_t version;
+} PnvPHBRootPort;
+
+#define TYPE_PNV_PHB_ROOT_PORT "pnv-phb-root-port"
+OBJECT_DECLARE_SIMPLE_TYPE(PnvPHBRootPort, PNV_PHB_ROOT_PORT)
+
#endif /* PCI_HOST_PNV_PHB_H */
--
2.37.2
^ permalink raw reply related [flat|nested] 63+ messages in thread
* [PULL 12/60] ppc/pnv: remove pnv-phb3-root-port
2022-08-31 18:49 [PULL 00/60] ppc queue Daniel Henrique Barboza
` (10 preceding siblings ...)
2022-08-31 18:49 ` [PULL 11/60] ppc/pnv: add pnv-phb-root-port device Daniel Henrique Barboza
@ 2022-08-31 18:49 ` Daniel Henrique Barboza
2022-08-31 18:49 ` [PULL 13/60] ppc/pnv: remove pnv-phb4-root-port Daniel Henrique Barboza
` (48 subsequent siblings)
60 siblings, 0 replies; 63+ messages in thread
From: Daniel Henrique Barboza @ 2022-08-31 18:49 UTC (permalink / raw)
To: qemu-devel
Cc: qemu-ppc, danielhb413, peter.maydell, richard.henderson,
Frederic Barrat
The unified pnv-phb-root-port can be used in its place. There is no ABI
breakage in doing so because no official QEMU release introduced user
creatable pnv-phb3-root-port devices.
Signed-off-by: Daniel Henrique Barboza <danielhb413@gmail.com>
Reviewed-by: Frederic Barrat <fbarrat@linux.ibm.com>
Message-Id: <20220624084921.399219-8-danielhb413@gmail.com>
---
hw/pci-host/pnv_phb.c | 2 +-
hw/pci-host/pnv_phb3.c | 42 ----------------------------------
hw/ppc/pnv.c | 1 +
include/hw/pci-host/pnv_phb3.h | 6 -----
4 files changed, 2 insertions(+), 49 deletions(-)
diff --git a/hw/pci-host/pnv_phb.c b/hw/pci-host/pnv_phb.c
index 5e61f85614..cdddc6a389 100644
--- a/hw/pci-host/pnv_phb.c
+++ b/hw/pci-host/pnv_phb.c
@@ -34,7 +34,7 @@ static void pnv_phb_realize(DeviceState *dev, Error **errp)
switch (phb->version) {
case 3:
phb_typename = g_strdup(TYPE_PNV_PHB3);
- phb_rootport_typename = g_strdup(TYPE_PNV_PHB3_ROOT_PORT);
+ phb_rootport_typename = g_strdup(TYPE_PNV_PHB_ROOT_PORT);
break;
case 4:
phb_typename = g_strdup(TYPE_PNV_PHB4);
diff --git a/hw/pci-host/pnv_phb3.c b/hw/pci-host/pnv_phb3.c
index ad9e983fe9..d4c04a281a 100644
--- a/hw/pci-host/pnv_phb3.c
+++ b/hw/pci-host/pnv_phb3.c
@@ -1122,51 +1122,9 @@ static const TypeInfo pnv_phb3_root_bus_info = {
.class_init = pnv_phb3_root_bus_class_init,
};
-static void pnv_phb3_root_port_realize(DeviceState *dev, Error **errp)
-{
- PCIERootPortClass *rpc = PCIE_ROOT_PORT_GET_CLASS(dev);
- PCIDevice *pci = PCI_DEVICE(dev);
- Error *local_err = NULL;
-
- rpc->parent_realize(dev, &local_err);
- if (local_err) {
- error_propagate(errp, local_err);
- return;
- }
- pci_config_set_interrupt_pin(pci->config, 0);
-}
-
-static void pnv_phb3_root_port_class_init(ObjectClass *klass, void *data)
-{
- DeviceClass *dc = DEVICE_CLASS(klass);
- PCIDeviceClass *k = PCI_DEVICE_CLASS(klass);
- PCIERootPortClass *rpc = PCIE_ROOT_PORT_CLASS(klass);
-
- dc->desc = "IBM PHB3 PCIE Root Port";
-
- device_class_set_parent_realize(dc, pnv_phb3_root_port_realize,
- &rpc->parent_realize);
- dc->user_creatable = false;
-
- k->vendor_id = PCI_VENDOR_ID_IBM;
- k->device_id = 0x03dc;
- k->revision = 0;
-
- rpc->exp_offset = 0x48;
- rpc->aer_offset = 0x100;
-}
-
-static const TypeInfo pnv_phb3_root_port_info = {
- .name = TYPE_PNV_PHB3_ROOT_PORT,
- .parent = TYPE_PCIE_ROOT_PORT,
- .instance_size = sizeof(PnvPHB3RootPort),
- .class_init = pnv_phb3_root_port_class_init,
-};
-
static void pnv_phb3_register_types(void)
{
type_register_static(&pnv_phb3_root_bus_info);
- type_register_static(&pnv_phb3_root_port_info);
type_register_static(&pnv_phb3_type_info);
type_register_static(&pnv_phb3_iommu_memory_region_info);
}
diff --git a/hw/ppc/pnv.c b/hw/ppc/pnv.c
index ae6cd14a8a..672227a0e1 100644
--- a/hw/ppc/pnv.c
+++ b/hw/ppc/pnv.c
@@ -2129,6 +2129,7 @@ static void pnv_machine_power8_class_init(ObjectClass *oc, void *data)
static GlobalProperty phb_compat[] = {
{ TYPE_PNV_PHB, "version", "3" },
+ { TYPE_PNV_PHB_ROOT_PORT, "version", "3" },
};
mc->desc = "IBM PowerNV (Non-Virtualized) POWER8";
diff --git a/include/hw/pci-host/pnv_phb3.h b/include/hw/pci-host/pnv_phb3.h
index 3b9ff1096a..bff69201d9 100644
--- a/include/hw/pci-host/pnv_phb3.h
+++ b/include/hw/pci-host/pnv_phb3.h
@@ -108,12 +108,6 @@ struct PnvPBCQState {
*/
#define TYPE_PNV_PHB3_ROOT_BUS "pnv-phb3-root"
-#define TYPE_PNV_PHB3_ROOT_PORT "pnv-phb3-root-port"
-
-typedef struct PnvPHB3RootPort {
- PCIESlot parent_obj;
-} PnvPHB3RootPort;
-
/*
* PHB3 PCIe Host Bridge for PowerNV machines (POWER8)
*/
--
2.37.2
^ permalink raw reply related [flat|nested] 63+ messages in thread
* [PULL 13/60] ppc/pnv: remove pnv-phb4-root-port
2022-08-31 18:49 [PULL 00/60] ppc queue Daniel Henrique Barboza
` (11 preceding siblings ...)
2022-08-31 18:49 ` [PULL 12/60] ppc/pnv: remove pnv-phb3-root-port Daniel Henrique Barboza
@ 2022-08-31 18:49 ` Daniel Henrique Barboza
2022-08-31 18:49 ` [PULL 14/60] ppc/pnv: remove root port name from pnv_phb_attach_root_port() Daniel Henrique Barboza
` (47 subsequent siblings)
60 siblings, 0 replies; 63+ messages in thread
From: Daniel Henrique Barboza @ 2022-08-31 18:49 UTC (permalink / raw)
To: qemu-devel
Cc: qemu-ppc, danielhb413, peter.maydell, richard.henderson,
Frederic Barrat
The unified pnv-phb-root-port can be used instead. The phb4-root-port
device isn't exposed to the user in any official QEMU release so there's
no ABI breakage in removing it.
Signed-off-by: Daniel Henrique Barboza <danielhb413@gmail.com>
Reviewed-by: Frederic Barrat <fbarrat@linux.ibm.com>
Message-Id: <20220624084921.399219-9-danielhb413@gmail.com>
---
hw/pci-host/pnv_phb.c | 4 +-
hw/pci-host/pnv_phb4.c | 85 ----------------------------------
hw/pci-host/pnv_phb4_pec.c | 4 +-
hw/ppc/pnv.c | 2 +
include/hw/pci-host/pnv_phb4.h | 9 ----
5 files changed, 6 insertions(+), 98 deletions(-)
diff --git a/hw/pci-host/pnv_phb.c b/hw/pci-host/pnv_phb.c
index cdddc6a389..da729e89e7 100644
--- a/hw/pci-host/pnv_phb.c
+++ b/hw/pci-host/pnv_phb.c
@@ -38,11 +38,11 @@ static void pnv_phb_realize(DeviceState *dev, Error **errp)
break;
case 4:
phb_typename = g_strdup(TYPE_PNV_PHB4);
- phb_rootport_typename = g_strdup(TYPE_PNV_PHB4_ROOT_PORT);
+ phb_rootport_typename = g_strdup(TYPE_PNV_PHB_ROOT_PORT);
break;
case 5:
phb_typename = g_strdup(TYPE_PNV_PHB5);
- phb_rootport_typename = g_strdup(TYPE_PNV_PHB5_ROOT_PORT);
+ phb_rootport_typename = g_strdup(TYPE_PNV_PHB_ROOT_PORT);
break;
default:
g_assert_not_reached();
diff --git a/hw/pci-host/pnv_phb4.c b/hw/pci-host/pnv_phb4.c
index 144c437025..b98c394713 100644
--- a/hw/pci-host/pnv_phb4.c
+++ b/hw/pci-host/pnv_phb4.c
@@ -1725,94 +1725,9 @@ static const TypeInfo pnv_phb4_root_bus_info = {
.class_init = pnv_phb4_root_bus_class_init,
};
-static void pnv_phb4_root_port_reset(DeviceState *dev)
-{
- PCIERootPortClass *rpc = PCIE_ROOT_PORT_GET_CLASS(dev);
- PCIDevice *d = PCI_DEVICE(dev);
- uint8_t *conf = d->config;
-
- rpc->parent_reset(dev);
-
- pci_byte_test_and_set_mask(conf + PCI_IO_BASE,
- PCI_IO_RANGE_MASK & 0xff);
- pci_byte_test_and_clear_mask(conf + PCI_IO_LIMIT,
- PCI_IO_RANGE_MASK & 0xff);
- pci_set_word(conf + PCI_MEMORY_BASE, 0);
- pci_set_word(conf + PCI_MEMORY_LIMIT, 0xfff0);
- pci_set_word(conf + PCI_PREF_MEMORY_BASE, 0x1);
- pci_set_word(conf + PCI_PREF_MEMORY_LIMIT, 0xfff1);
- pci_set_long(conf + PCI_PREF_BASE_UPPER32, 0x1); /* Hack */
- pci_set_long(conf + PCI_PREF_LIMIT_UPPER32, 0xffffffff);
- pci_config_set_interrupt_pin(conf, 0);
-}
-
-static void pnv_phb4_root_port_realize(DeviceState *dev, Error **errp)
-{
- PCIERootPortClass *rpc = PCIE_ROOT_PORT_GET_CLASS(dev);
- Error *local_err = NULL;
-
- rpc->parent_realize(dev, &local_err);
- if (local_err) {
- error_propagate(errp, local_err);
- return;
- }
-}
-
-static void pnv_phb4_root_port_class_init(ObjectClass *klass, void *data)
-{
- DeviceClass *dc = DEVICE_CLASS(klass);
- PCIDeviceClass *k = PCI_DEVICE_CLASS(klass);
- PCIERootPortClass *rpc = PCIE_ROOT_PORT_CLASS(klass);
-
- dc->desc = "IBM PHB4 PCIE Root Port";
- dc->user_creatable = false;
-
- device_class_set_parent_realize(dc, pnv_phb4_root_port_realize,
- &rpc->parent_realize);
- device_class_set_parent_reset(dc, pnv_phb4_root_port_reset,
- &rpc->parent_reset);
-
- k->vendor_id = PCI_VENDOR_ID_IBM;
- k->device_id = PNV_PHB4_DEVICE_ID;
- k->revision = 0;
-
- rpc->exp_offset = 0x48;
- rpc->aer_offset = 0x100;
-
- dc->reset = &pnv_phb4_root_port_reset;
-}
-
-static const TypeInfo pnv_phb4_root_port_info = {
- .name = TYPE_PNV_PHB4_ROOT_PORT,
- .parent = TYPE_PCIE_ROOT_PORT,
- .instance_size = sizeof(PnvPHB4RootPort),
- .class_init = pnv_phb4_root_port_class_init,
-};
-
-static void pnv_phb5_root_port_class_init(ObjectClass *klass, void *data)
-{
- DeviceClass *dc = DEVICE_CLASS(klass);
- PCIDeviceClass *k = PCI_DEVICE_CLASS(klass);
-
- dc->desc = "IBM PHB5 PCIE Root Port";
- dc->user_creatable = false;
-
- k->vendor_id = PCI_VENDOR_ID_IBM;
- k->device_id = PNV_PHB5_DEVICE_ID;
-}
-
-static const TypeInfo pnv_phb5_root_port_info = {
- .name = TYPE_PNV_PHB5_ROOT_PORT,
- .parent = TYPE_PNV_PHB4_ROOT_PORT,
- .instance_size = sizeof(PnvPHB4RootPort),
- .class_init = pnv_phb5_root_port_class_init,
-};
-
static void pnv_phb4_register_types(void)
{
type_register_static(&pnv_phb4_root_bus_info);
- type_register_static(&pnv_phb5_root_port_info);
- type_register_static(&pnv_phb4_root_port_info);
type_register_static(&pnv_phb4_type_info);
type_register_static(&pnv_phb5_type_info);
type_register_static(&pnv_phb4_iommu_memory_region_info);
diff --git a/hw/pci-host/pnv_phb4_pec.c b/hw/pci-host/pnv_phb4_pec.c
index 4a0a9fbe8b..0ef66b9a9b 100644
--- a/hw/pci-host/pnv_phb4_pec.c
+++ b/hw/pci-host/pnv_phb4_pec.c
@@ -260,7 +260,7 @@ static void pnv_pec_class_init(ObjectClass *klass, void *data)
pecc->version = PNV_PHB4_VERSION;
pecc->phb_type = TYPE_PNV_PHB4;
pecc->num_phbs = pnv_pec_num_phbs;
- pecc->rp_model = TYPE_PNV_PHB4_ROOT_PORT;
+ pecc->rp_model = TYPE_PNV_PHB_ROOT_PORT;
}
static const TypeInfo pnv_pec_type_info = {
@@ -313,7 +313,7 @@ static void pnv_phb5_pec_class_init(ObjectClass *klass, void *data)
pecc->version = PNV_PHB5_VERSION;
pecc->phb_type = TYPE_PNV_PHB5;
pecc->num_phbs = pnv_phb5_pec_num_stacks;
- pecc->rp_model = TYPE_PNV_PHB5_ROOT_PORT;
+ pecc->rp_model = TYPE_PNV_PHB_ROOT_PORT;
}
static const TypeInfo pnv_phb5_pec_type_info = {
diff --git a/hw/ppc/pnv.c b/hw/ppc/pnv.c
index 672227a0e1..576c0013ed 100644
--- a/hw/ppc/pnv.c
+++ b/hw/ppc/pnv.c
@@ -2153,6 +2153,7 @@ static void pnv_machine_power9_class_init(ObjectClass *oc, void *data)
static GlobalProperty phb_compat[] = {
{ TYPE_PNV_PHB, "version", "4" },
+ { TYPE_PNV_PHB_ROOT_PORT, "version", "4" },
};
mc->desc = "IBM PowerNV (Non-Virtualized) POWER9";
@@ -2177,6 +2178,7 @@ static void pnv_machine_power10_class_init(ObjectClass *oc, void *data)
static GlobalProperty phb_compat[] = {
{ TYPE_PNV_PHB, "version", "5" },
+ { TYPE_PNV_PHB_ROOT_PORT, "version", "5" },
};
mc->desc = "IBM PowerNV (Non-Virtualized) POWER10";
diff --git a/include/hw/pci-host/pnv_phb4.h b/include/hw/pci-host/pnv_phb4.h
index f22253358f..29c49ac79c 100644
--- a/include/hw/pci-host/pnv_phb4.h
+++ b/include/hw/pci-host/pnv_phb4.h
@@ -45,16 +45,7 @@ typedef struct PnvPhb4DMASpace {
QLIST_ENTRY(PnvPhb4DMASpace) list;
} PnvPhb4DMASpace;
-/*
- * PHB4 PCIe Root port
- */
#define TYPE_PNV_PHB4_ROOT_BUS "pnv-phb4-root"
-#define TYPE_PNV_PHB4_ROOT_PORT "pnv-phb4-root-port"
-#define TYPE_PNV_PHB5_ROOT_PORT "pnv-phb5-root-port"
-
-typedef struct PnvPHB4RootPort {
- PCIESlot parent_obj;
-} PnvPHB4RootPort;
/*
* PHB4 PCIe Host Bridge for PowerNV machines (POWER9)
--
2.37.2
^ permalink raw reply related [flat|nested] 63+ messages in thread
* [PULL 14/60] ppc/pnv: remove root port name from pnv_phb_attach_root_port()
2022-08-31 18:49 [PULL 00/60] ppc queue Daniel Henrique Barboza
` (12 preceding siblings ...)
2022-08-31 18:49 ` [PULL 13/60] ppc/pnv: remove pnv-phb4-root-port Daniel Henrique Barboza
@ 2022-08-31 18:49 ` Daniel Henrique Barboza
2022-08-31 18:49 ` [PULL 15/60] ppc/pnv: remove pecc->rp_model Daniel Henrique Barboza
` (46 subsequent siblings)
60 siblings, 0 replies; 63+ messages in thread
From: Daniel Henrique Barboza @ 2022-08-31 18:49 UTC (permalink / raw)
To: qemu-devel
Cc: qemu-ppc, danielhb413, peter.maydell, richard.henderson,
Frederic Barrat
We support only a single root port, PNV_PHB_ROOT_PORT.
Signed-off-by: Daniel Henrique Barboza <danielhb413@gmail.com>
Reviewed-by: Frederic Barrat <fbarrat@linux.ibm.com>
Message-Id: <20220624084921.399219-10-danielhb413@gmail.com>
---
hw/pci-host/pnv_phb.c | 7 +------
hw/ppc/pnv.c | 9 +++++----
include/hw/ppc/pnv.h | 3 +--
3 files changed, 7 insertions(+), 12 deletions(-)
diff --git a/hw/pci-host/pnv_phb.c b/hw/pci-host/pnv_phb.c
index da729e89e7..cc15a949c9 100644
--- a/hw/pci-host/pnv_phb.c
+++ b/hw/pci-host/pnv_phb.c
@@ -24,7 +24,6 @@ static void pnv_phb_realize(DeviceState *dev, Error **errp)
PnvPHB *phb = PNV_PHB(dev);
PCIHostState *pci = PCI_HOST_BRIDGE(dev);
g_autofree char *phb_typename = NULL;
- g_autofree char *phb_rootport_typename = NULL;
if (!phb->version) {
error_setg(errp, "version not specified");
@@ -34,15 +33,12 @@ static void pnv_phb_realize(DeviceState *dev, Error **errp)
switch (phb->version) {
case 3:
phb_typename = g_strdup(TYPE_PNV_PHB3);
- phb_rootport_typename = g_strdup(TYPE_PNV_PHB_ROOT_PORT);
break;
case 4:
phb_typename = g_strdup(TYPE_PNV_PHB4);
- phb_rootport_typename = g_strdup(TYPE_PNV_PHB_ROOT_PORT);
break;
case 5:
phb_typename = g_strdup(TYPE_PNV_PHB5);
- phb_rootport_typename = g_strdup(TYPE_PNV_PHB_ROOT_PORT);
break;
default:
g_assert_not_reached();
@@ -73,8 +69,7 @@ static void pnv_phb_realize(DeviceState *dev, Error **errp)
pnv_phb4_bus_init(dev, PNV_PHB4(phb->backend));
}
- pnv_phb_attach_root_port(pci, phb_rootport_typename,
- phb->phb_id, phb->chip_id);
+ pnv_phb_attach_root_port(pci, phb->phb_id, phb->chip_id);
}
static const char *pnv_phb_root_bus_path(PCIHostState *host_bridge,
diff --git a/hw/ppc/pnv.c b/hw/ppc/pnv.c
index 576c0013ed..6b94c373d1 100644
--- a/hw/ppc/pnv.c
+++ b/hw/ppc/pnv.c
@@ -1195,11 +1195,12 @@ static void pnv_chip_icp_realize(Pnv8Chip *chip8, Error **errp)
* QOM id. 'chip_id' is going to be used as PCIE chassis for the
* root port.
*/
-void pnv_phb_attach_root_port(PCIHostState *pci, const char *name,
- int index, int chip_id)
+void pnv_phb_attach_root_port(PCIHostState *pci, int index, int chip_id)
{
- PCIDevice *root = pci_new(PCI_DEVFN(0, 0), name);
- g_autofree char *default_id = g_strdup_printf("%s[%d]", name, index);
+ PCIDevice *root = pci_new(PCI_DEVFN(0, 0), TYPE_PNV_PHB_ROOT_PORT);
+ g_autofree char *default_id = g_strdup_printf("%s[%d]",
+ TYPE_PNV_PHB_ROOT_PORT,
+ index);
const char *dev_id = DEVICE(root)->id;
object_property_add_child(OBJECT(pci->bus), dev_id ? dev_id : default_id,
diff --git a/include/hw/ppc/pnv.h b/include/hw/ppc/pnv.h
index 21fa90aaff..0eda47da0c 100644
--- a/include/hw/ppc/pnv.h
+++ b/include/hw/ppc/pnv.h
@@ -193,8 +193,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,
- int index, int chip_id);
+void pnv_phb_attach_root_port(PCIHostState *pci, int index, int chip_id);
#define TYPE_PNV_MACHINE MACHINE_TYPE_NAME("powernv")
typedef struct PnvMachineClass PnvMachineClass;
--
2.37.2
^ permalink raw reply related [flat|nested] 63+ messages in thread
* [PULL 15/60] ppc/pnv: remove pecc->rp_model
2022-08-31 18:49 [PULL 00/60] ppc queue Daniel Henrique Barboza
` (13 preceding siblings ...)
2022-08-31 18:49 ` [PULL 14/60] ppc/pnv: remove root port name from pnv_phb_attach_root_port() Daniel Henrique Barboza
@ 2022-08-31 18:49 ` Daniel Henrique Barboza
2022-08-31 18:49 ` [PULL 16/60] ppc/pnv: remove PnvPHB4.version Daniel Henrique Barboza
` (45 subsequent siblings)
60 siblings, 0 replies; 63+ messages in thread
From: Daniel Henrique Barboza @ 2022-08-31 18:49 UTC (permalink / raw)
To: qemu-devel
Cc: qemu-ppc, danielhb413, peter.maydell, richard.henderson,
Frederic Barrat
The attribute is unused.
Signed-off-by: Daniel Henrique Barboza <danielhb413@gmail.com>
Reviewed-by: Frederic Barrat <fbarrat@linux.ibm.com>
Message-Id: <20220624084921.399219-11-danielhb413@gmail.com>
---
hw/pci-host/pnv_phb4_pec.c | 2 --
include/hw/pci-host/pnv_phb4.h | 1 -
2 files changed, 3 deletions(-)
diff --git a/hw/pci-host/pnv_phb4_pec.c b/hw/pci-host/pnv_phb4_pec.c
index 0ef66b9a9b..8dc363d69c 100644
--- a/hw/pci-host/pnv_phb4_pec.c
+++ b/hw/pci-host/pnv_phb4_pec.c
@@ -260,7 +260,6 @@ static void pnv_pec_class_init(ObjectClass *klass, void *data)
pecc->version = PNV_PHB4_VERSION;
pecc->phb_type = TYPE_PNV_PHB4;
pecc->num_phbs = pnv_pec_num_phbs;
- pecc->rp_model = TYPE_PNV_PHB_ROOT_PORT;
}
static const TypeInfo pnv_pec_type_info = {
@@ -313,7 +312,6 @@ static void pnv_phb5_pec_class_init(ObjectClass *klass, void *data)
pecc->version = PNV_PHB5_VERSION;
pecc->phb_type = TYPE_PNV_PHB5;
pecc->num_phbs = pnv_phb5_pec_num_stacks;
- pecc->rp_model = TYPE_PNV_PHB_ROOT_PORT;
}
static const TypeInfo pnv_phb5_pec_type_info = {
diff --git a/include/hw/pci-host/pnv_phb4.h b/include/hw/pci-host/pnv_phb4.h
index 29c49ac79c..61a0cb9989 100644
--- a/include/hw/pci-host/pnv_phb4.h
+++ b/include/hw/pci-host/pnv_phb4.h
@@ -200,7 +200,6 @@ struct PnvPhb4PecClass {
uint64_t version;
const char *phb_type;
const uint32_t *num_phbs;
- const char *rp_model;
};
/*
--
2.37.2
^ permalink raw reply related [flat|nested] 63+ messages in thread
* [PULL 16/60] ppc/pnv: remove PnvPHB4.version
2022-08-31 18:49 [PULL 00/60] ppc queue Daniel Henrique Barboza
` (14 preceding siblings ...)
2022-08-31 18:49 ` [PULL 15/60] ppc/pnv: remove pecc->rp_model Daniel Henrique Barboza
@ 2022-08-31 18:49 ` Daniel Henrique Barboza
2022-08-31 18:49 ` [PULL 17/60] ppc/pnv: move attach_root_port helper to pnv-phb.c Daniel Henrique Barboza
` (44 subsequent siblings)
60 siblings, 0 replies; 63+ messages in thread
From: Daniel Henrique Barboza @ 2022-08-31 18:49 UTC (permalink / raw)
To: qemu-devel
Cc: qemu-ppc, danielhb413, peter.maydell, richard.henderson,
Frederic Barrat
It's unused.
Signed-off-by: Daniel Henrique Barboza <danielhb413@gmail.com>
Reviewed-by: Frederic Barrat <fbarrat@linux.ibm.com>
Message-Id: <20220624084921.399219-12-danielhb413@gmail.com>
---
include/hw/pci-host/pnv_phb4.h | 2 --
1 file changed, 2 deletions(-)
diff --git a/include/hw/pci-host/pnv_phb4.h b/include/hw/pci-host/pnv_phb4.h
index 61a0cb9989..20aa4819d3 100644
--- a/include/hw/pci-host/pnv_phb4.h
+++ b/include/hw/pci-host/pnv_phb4.h
@@ -77,8 +77,6 @@ struct PnvPHB4 {
uint32_t chip_id;
uint32_t phb_id;
- uint64_t version;
-
/* The owner PEC */
PnvPhb4PecState *pec;
--
2.37.2
^ permalink raw reply related [flat|nested] 63+ messages in thread
* [PULL 17/60] ppc/pnv: move attach_root_port helper to pnv-phb.c
2022-08-31 18:49 [PULL 00/60] ppc queue Daniel Henrique Barboza
` (15 preceding siblings ...)
2022-08-31 18:49 ` [PULL 16/60] ppc/pnv: remove PnvPHB4.version Daniel Henrique Barboza
@ 2022-08-31 18:49 ` Daniel Henrique Barboza
2022-08-31 18:49 ` [PULL 18/60] ppc/pnv: add phb-id/chip-id PnvPHB3RootBus properties Daniel Henrique Barboza
` (43 subsequent siblings)
60 siblings, 0 replies; 63+ messages in thread
From: Daniel Henrique Barboza @ 2022-08-31 18:49 UTC (permalink / raw)
To: qemu-devel
Cc: qemu-ppc, danielhb413, peter.maydell, richard.henderson,
Frederic Barrat
The helper is only used in this file.
Signed-off-by: Daniel Henrique Barboza <danielhb413@gmail.com>
Reviewed-by: Frederic Barrat <fbarrat@linux.ibm.com>
Message-Id: <20220624084921.399219-13-danielhb413@gmail.com>
---
hw/pci-host/pnv_phb.c | 24 ++++++++++++++++++++++++
hw/ppc/pnv.c | 25 -------------------------
include/hw/ppc/pnv.h | 1 -
3 files changed, 24 insertions(+), 26 deletions(-)
diff --git a/hw/pci-host/pnv_phb.c b/hw/pci-host/pnv_phb.c
index cc15a949c9..c47ed92462 100644
--- a/hw/pci-host/pnv_phb.c
+++ b/hw/pci-host/pnv_phb.c
@@ -18,6 +18,30 @@
#include "hw/qdev-properties.h"
#include "qom/object.h"
+/*
+ * Attach a root port device.
+ *
+ * 'index' will be used both as a PCIE slot value and to calculate
+ * QOM id. 'chip_id' is going to be used as PCIE chassis for the
+ * root port.
+ */
+static void pnv_phb_attach_root_port(PCIHostState *pci, int index, int chip_id)
+{
+ PCIDevice *root = pci_new(PCI_DEVFN(0, 0), TYPE_PNV_PHB_ROOT_PORT);
+ g_autofree char *default_id = g_strdup_printf("%s[%d]",
+ TYPE_PNV_PHB_ROOT_PORT,
+ index);
+ const char *dev_id = DEVICE(root)->id;
+
+ object_property_add_child(OBJECT(pci->bus), dev_id ? dev_id : default_id,
+ OBJECT(root));
+
+ /* Set unique chassis/slot values for the root port */
+ qdev_prop_set_uint8(DEVICE(root), "chassis", chip_id);
+ qdev_prop_set_uint16(DEVICE(root), "slot", index);
+
+ pci_realize_and_unref(root, pci->bus, &error_fatal);
+}
static void pnv_phb_realize(DeviceState *dev, Error **errp)
{
diff --git a/hw/ppc/pnv.c b/hw/ppc/pnv.c
index 6b94c373d1..758e36132d 100644
--- a/hw/ppc/pnv.c
+++ b/hw/ppc/pnv.c
@@ -1188,31 +1188,6 @@ static void pnv_chip_icp_realize(Pnv8Chip *chip8, Error **errp)
}
}
-/*
- * Attach a root port device.
- *
- * 'index' will be used both as a PCIE slot value and to calculate
- * QOM id. 'chip_id' is going to be used as PCIE chassis for the
- * root port.
- */
-void pnv_phb_attach_root_port(PCIHostState *pci, int index, int chip_id)
-{
- PCIDevice *root = pci_new(PCI_DEVFN(0, 0), TYPE_PNV_PHB_ROOT_PORT);
- g_autofree char *default_id = g_strdup_printf("%s[%d]",
- TYPE_PNV_PHB_ROOT_PORT,
- index);
- const char *dev_id = DEVICE(root)->id;
-
- object_property_add_child(OBJECT(pci->bus), dev_id ? dev_id : default_id,
- OBJECT(root));
-
- /* Set unique chassis/slot values for the root port */
- qdev_prop_set_uint8(DEVICE(root), "chassis", chip_id);
- qdev_prop_set_uint16(DEVICE(root), "slot", index);
-
- 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);
diff --git a/include/hw/ppc/pnv.h b/include/hw/ppc/pnv.h
index 0eda47da0c..290adac76c 100644
--- a/include/hw/ppc/pnv.h
+++ b/include/hw/ppc/pnv.h
@@ -193,7 +193,6 @@ 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, int index, int chip_id);
#define TYPE_PNV_MACHINE MACHINE_TYPE_NAME("powernv")
typedef struct PnvMachineClass PnvMachineClass;
--
2.37.2
^ permalink raw reply related [flat|nested] 63+ messages in thread
* [PULL 18/60] ppc/pnv: add phb-id/chip-id PnvPHB3RootBus properties
2022-08-31 18:49 [PULL 00/60] ppc queue Daniel Henrique Barboza
` (16 preceding siblings ...)
2022-08-31 18:49 ` [PULL 17/60] ppc/pnv: move attach_root_port helper to pnv-phb.c Daniel Henrique Barboza
@ 2022-08-31 18:49 ` Daniel Henrique Barboza
2022-08-31 18:49 ` [PULL 19/60] ppc/pnv: add phb-id/chip-id PnvPHB4RootBus properties Daniel Henrique Barboza
` (42 subsequent siblings)
60 siblings, 0 replies; 63+ messages in thread
From: Daniel Henrique Barboza @ 2022-08-31 18:49 UTC (permalink / raw)
To: qemu-devel
Cc: qemu-ppc, danielhb413, peter.maydell, richard.henderson,
Cédric Le Goater, Frederic Barrat
We rely on the phb-id and chip-id, which are PHB properties, to assign
chassis and slot to the root port. For default devices this is no big
deal: the root port is being created under pnv_phb_realize() and the
values are being passed on via the 'index' and 'chip-id' of the
pnv_phb_attach_root_port() helper.
If we want to implement user created root ports we have a problem. The
user created root port will not be aware of which PHB it belongs to,
unless we're willing to violate QOM best practices and access the PHB
via dev->parent_bus->parent. What we can do is to access the root bus
parent bus.
Since we're already assigning the root port as QOM child of the bus, and
the bus is initiated using PHB properties, let's add phb-id and chip-id
as properties of the bus. This will allow us trivial access to them, for
both user-created and default root ports, without doing anything too
shady with QOM.
Reviewed-by: Cédric Le Goater <clg@kaod.org>
Signed-off-by: Daniel Henrique Barboza <danielhb413@gmail.com>
Reviewed-by: Frederic Barrat <fbarrat@linux.ibm.com>
Message-Id: <20220811163950.578927-2-danielhb413@gmail.com>
---
hw/pci-host/pnv_phb3.c | 50 ++++++++++++++++++++++++++++++++++
include/hw/pci-host/pnv_phb3.h | 9 +++++-
2 files changed, 58 insertions(+), 1 deletion(-)
diff --git a/hw/pci-host/pnv_phb3.c b/hw/pci-host/pnv_phb3.c
index d4c04a281a..af8575c007 100644
--- a/hw/pci-host/pnv_phb3.c
+++ b/hw/pci-host/pnv_phb3.c
@@ -1006,6 +1006,11 @@ void pnv_phb3_bus_init(DeviceState *dev, PnvPHB3 *phb)
&phb->pci_mmio, &phb->pci_io,
0, 4, TYPE_PNV_PHB3_ROOT_BUS);
+ object_property_set_int(OBJECT(pci->bus), "phb-id", phb->phb_id,
+ &error_abort);
+ object_property_set_int(OBJECT(pci->bus), "chip-id", phb->chip_id,
+ &error_abort);
+
pci_setup_iommu(pci->bus, pnv_phb3_dma_iommu, phb);
}
@@ -1105,10 +1110,55 @@ static const TypeInfo pnv_phb3_type_info = {
.instance_init = pnv_phb3_instance_init,
};
+static void pnv_phb3_root_bus_get_prop(Object *obj, Visitor *v,
+ const char *name,
+ void *opaque, Error **errp)
+{
+ PnvPHB3RootBus *bus = PNV_PHB3_ROOT_BUS(obj);
+ uint64_t value = 0;
+
+ if (strcmp(name, "phb-id") == 0) {
+ value = bus->phb_id;
+ } else {
+ value = bus->chip_id;
+ }
+
+ visit_type_size(v, name, &value, errp);
+}
+
+static void pnv_phb3_root_bus_set_prop(Object *obj, Visitor *v,
+ const char *name,
+ void *opaque, Error **errp)
+
+{
+ PnvPHB3RootBus *bus = PNV_PHB3_ROOT_BUS(obj);
+ uint64_t value;
+
+ if (!visit_type_size(v, name, &value, errp)) {
+ return;
+ }
+
+ if (strcmp(name, "phb-id") == 0) {
+ bus->phb_id = value;
+ } else {
+ bus->chip_id = value;
+ }
+}
+
static void pnv_phb3_root_bus_class_init(ObjectClass *klass, void *data)
{
BusClass *k = BUS_CLASS(klass);
+ object_class_property_add(klass, "phb-id", "int",
+ pnv_phb3_root_bus_get_prop,
+ pnv_phb3_root_bus_set_prop,
+ NULL, NULL);
+
+ object_class_property_add(klass, "chip-id", "int",
+ pnv_phb3_root_bus_get_prop,
+ pnv_phb3_root_bus_set_prop,
+ NULL, NULL);
+
/*
* PHB3 has only a single root complex. Enforce the limit on the
* parent bus
diff --git a/include/hw/pci-host/pnv_phb3.h b/include/hw/pci-host/pnv_phb3.h
index bff69201d9..4854f6d2f6 100644
--- a/include/hw/pci-host/pnv_phb3.h
+++ b/include/hw/pci-host/pnv_phb3.h
@@ -104,9 +104,16 @@ struct PnvPBCQState {
};
/*
- * PHB3 PCIe Root port
+ * PHB3 PCIe Root Bus
*/
#define TYPE_PNV_PHB3_ROOT_BUS "pnv-phb3-root"
+struct PnvPHB3RootBus {
+ PCIBus parent;
+
+ uint32_t chip_id;
+ uint32_t phb_id;
+};
+OBJECT_DECLARE_SIMPLE_TYPE(PnvPHB3RootBus, PNV_PHB3_ROOT_BUS)
/*
* PHB3 PCIe Host Bridge for PowerNV machines (POWER8)
--
2.37.2
^ permalink raw reply related [flat|nested] 63+ messages in thread
* [PULL 19/60] ppc/pnv: add phb-id/chip-id PnvPHB4RootBus properties
2022-08-31 18:49 [PULL 00/60] ppc queue Daniel Henrique Barboza
` (17 preceding siblings ...)
2022-08-31 18:49 ` [PULL 18/60] ppc/pnv: add phb-id/chip-id PnvPHB3RootBus properties Daniel Henrique Barboza
@ 2022-08-31 18:49 ` Daniel Henrique Barboza
2022-08-31 18:49 ` [PULL 20/60] ppc/pnv: set root port chassis and slot using Bus properties Daniel Henrique Barboza
` (41 subsequent siblings)
60 siblings, 0 replies; 63+ messages in thread
From: Daniel Henrique Barboza @ 2022-08-31 18:49 UTC (permalink / raw)
To: qemu-devel
Cc: qemu-ppc, danielhb413, peter.maydell, richard.henderson,
Cédric Le Goater, Frederic Barrat
The same rationale provided in the PHB3 bus case applies here.
Note: we could have merged both buses in a single object, like we did
with the root ports, and spare some boilerplate. The reason we opted to
preserve both buses objects is twofold:
- there's not user side advantage in doing so. Unifying the root ports
presents a clear user QOL change when we enable user created devices back.
The buses objects, aside from having a different QOM name, is transparent
to the user;
- we leave a door opened in case we want to increase the root port limit
for phb4/5 later on without having to deal with phb3 code.
Reviewed-by: Cédric Le Goater <clg@kaod.org>
Signed-off-by: Daniel Henrique Barboza <danielhb413@gmail.com>
Reviewed-by: Frederic Barrat <fbarrat@linux.ibm.com>
Message-Id: <20220811163950.578927-3-danielhb413@gmail.com>
---
hw/pci-host/pnv_phb4.c | 51 ++++++++++++++++++++++++++++++++++
include/hw/pci-host/pnv_phb4.h | 10 +++++++
2 files changed, 61 insertions(+)
diff --git a/hw/pci-host/pnv_phb4.c b/hw/pci-host/pnv_phb4.c
index b98c394713..824e1a73fb 100644
--- a/hw/pci-host/pnv_phb4.c
+++ b/hw/pci-host/pnv_phb4.c
@@ -1551,6 +1551,12 @@ void pnv_phb4_bus_init(DeviceState *dev, PnvPHB4 *phb)
pnv_phb4_set_irq, pnv_phb4_map_irq, phb,
&phb->pci_mmio, &phb->pci_io,
0, 4, TYPE_PNV_PHB4_ROOT_BUS);
+
+ object_property_set_int(OBJECT(pci->bus), "phb-id", phb->phb_id,
+ &error_abort);
+ object_property_set_int(OBJECT(pci->bus), "chip-id", phb->chip_id,
+ &error_abort);
+
pci_setup_iommu(pci->bus, pnv_phb4_dma_iommu, phb);
pci->bus->flags |= PCI_BUS_EXTENDED_CONFIG_SPACE;
}
@@ -1708,10 +1714,55 @@ static const TypeInfo pnv_phb5_type_info = {
.instance_size = sizeof(PnvPHB4),
};
+static void pnv_phb4_root_bus_get_prop(Object *obj, Visitor *v,
+ const char *name,
+ void *opaque, Error **errp)
+{
+ PnvPHB4RootBus *bus = PNV_PHB4_ROOT_BUS(obj);
+ uint64_t value = 0;
+
+ if (strcmp(name, "phb-id") == 0) {
+ value = bus->phb_id;
+ } else {
+ value = bus->chip_id;
+ }
+
+ visit_type_size(v, name, &value, errp);
+}
+
+static void pnv_phb4_root_bus_set_prop(Object *obj, Visitor *v,
+ const char *name,
+ void *opaque, Error **errp)
+
+{
+ PnvPHB4RootBus *bus = PNV_PHB4_ROOT_BUS(obj);
+ uint64_t value;
+
+ if (!visit_type_size(v, name, &value, errp)) {
+ return;
+ }
+
+ if (strcmp(name, "phb-id") == 0) {
+ bus->phb_id = value;
+ } else {
+ bus->chip_id = value;
+ }
+}
+
static void pnv_phb4_root_bus_class_init(ObjectClass *klass, void *data)
{
BusClass *k = BUS_CLASS(klass);
+ object_class_property_add(klass, "phb-id", "int",
+ pnv_phb4_root_bus_get_prop,
+ pnv_phb4_root_bus_set_prop,
+ NULL, NULL);
+
+ object_class_property_add(klass, "chip-id", "int",
+ pnv_phb4_root_bus_get_prop,
+ pnv_phb4_root_bus_set_prop,
+ NULL, NULL);
+
/*
* PHB4 has only a single root complex. Enforce the limit on the
* parent bus
diff --git a/include/hw/pci-host/pnv_phb4.h b/include/hw/pci-host/pnv_phb4.h
index 20aa4819d3..50d4faa001 100644
--- a/include/hw/pci-host/pnv_phb4.h
+++ b/include/hw/pci-host/pnv_phb4.h
@@ -45,7 +45,17 @@ typedef struct PnvPhb4DMASpace {
QLIST_ENTRY(PnvPhb4DMASpace) list;
} PnvPhb4DMASpace;
+/*
+ * PHB4 PCIe Root Bus
+ */
#define TYPE_PNV_PHB4_ROOT_BUS "pnv-phb4-root"
+struct PnvPHB4RootBus {
+ PCIBus parent;
+
+ uint32_t chip_id;
+ uint32_t phb_id;
+};
+OBJECT_DECLARE_SIMPLE_TYPE(PnvPHB4RootBus, PNV_PHB4_ROOT_BUS)
/*
* PHB4 PCIe Host Bridge for PowerNV machines (POWER9)
--
2.37.2
^ permalink raw reply related [flat|nested] 63+ messages in thread
* [PULL 20/60] ppc/pnv: set root port chassis and slot using Bus properties
2022-08-31 18:49 [PULL 00/60] ppc queue Daniel Henrique Barboza
` (18 preceding siblings ...)
2022-08-31 18:49 ` [PULL 19/60] ppc/pnv: add phb-id/chip-id PnvPHB4RootBus properties Daniel Henrique Barboza
@ 2022-08-31 18:49 ` Daniel Henrique Barboza
2022-08-31 18:49 ` [PULL 21/60] ppc/pnv: add helpers for pnv-phb user devices Daniel Henrique Barboza
` (40 subsequent siblings)
60 siblings, 0 replies; 63+ messages in thread
From: Daniel Henrique Barboza @ 2022-08-31 18:49 UTC (permalink / raw)
To: qemu-devel
Cc: qemu-ppc, danielhb413, peter.maydell, richard.henderson,
Cédric Le Goater, Frederic Barrat
For default root ports we have a way of accessing chassis and slot,
before root_port_realize(), via pnv_phb_attach_root_port(). For the
future user created root ports this won't be the case: we can't use
this helper because we don't have access to the PHB phb-id/chip-id
values.
In earlier patches we've added phb-id and chip-id to pnv-phb-root-bus
objects. We're now able to use the bus to retrieve them. The bus is
reachable for both user created and default devices, so we're changing
all the code paths. This also allow us to validate these changes with
the existing default devices.
Reviewed-by: Cédric Le Goater <clg@kaod.org>
Signed-off-by: Daniel Henrique Barboza <danielhb413@gmail.com>
Reviewed-by: Frederic Barrat <fbarrat@linux.ibm.com>
Message-Id: <20220811163950.578927-4-danielhb413@gmail.com>
---
hw/pci-host/pnv_phb.c | 25 ++++++++++++++++---------
1 file changed, 16 insertions(+), 9 deletions(-)
diff --git a/hw/pci-host/pnv_phb.c b/hw/pci-host/pnv_phb.c
index c47ed92462..826c0c144e 100644
--- a/hw/pci-host/pnv_phb.c
+++ b/hw/pci-host/pnv_phb.c
@@ -25,21 +25,19 @@
* QOM id. 'chip_id' is going to be used as PCIE chassis for the
* root port.
*/
-static void pnv_phb_attach_root_port(PCIHostState *pci, int index, int chip_id)
+static void pnv_phb_attach_root_port(PCIHostState *pci)
{
PCIDevice *root = pci_new(PCI_DEVFN(0, 0), TYPE_PNV_PHB_ROOT_PORT);
- g_autofree char *default_id = g_strdup_printf("%s[%d]",
- TYPE_PNV_PHB_ROOT_PORT,
- index);
const char *dev_id = DEVICE(root)->id;
+ g_autofree char *default_id = NULL;
+ int index;
+
+ index = object_property_get_int(OBJECT(pci->bus), "phb-id", &error_fatal);
+ default_id = g_strdup_printf("%s[%d]", TYPE_PNV_PHB_ROOT_PORT, index);
object_property_add_child(OBJECT(pci->bus), dev_id ? dev_id : default_id,
OBJECT(root));
- /* Set unique chassis/slot values for the root port */
- qdev_prop_set_uint8(DEVICE(root), "chassis", chip_id);
- qdev_prop_set_uint16(DEVICE(root), "slot", index);
-
pci_realize_and_unref(root, pci->bus, &error_fatal);
}
@@ -93,7 +91,7 @@ static void pnv_phb_realize(DeviceState *dev, Error **errp)
pnv_phb4_bus_init(dev, PNV_PHB4(phb->backend));
}
- pnv_phb_attach_root_port(pci, phb->phb_id, phb->chip_id);
+ pnv_phb_attach_root_port(pci);
}
static const char *pnv_phb_root_bus_path(PCIHostState *host_bridge,
@@ -162,9 +160,18 @@ static void pnv_phb_root_port_realize(DeviceState *dev, Error **errp)
{
PCIERootPortClass *rpc = PCIE_ROOT_PORT_GET_CLASS(dev);
PnvPHBRootPort *phb_rp = PNV_PHB_ROOT_PORT(dev);
+ PCIBus *bus = PCI_BUS(qdev_get_parent_bus(dev));
PCIDevice *pci = PCI_DEVICE(dev);
uint16_t device_id = 0;
Error *local_err = NULL;
+ int chip_id, index;
+
+ chip_id = object_property_get_int(OBJECT(bus), "chip-id", &error_fatal);
+ index = object_property_get_int(OBJECT(bus), "phb-id", &error_fatal);
+
+ /* Set unique chassis/slot values for the root port */
+ qdev_prop_set_uint8(dev, "chassis", chip_id);
+ qdev_prop_set_uint16(dev, "slot", index);
rpc->parent_realize(dev, &local_err);
if (local_err) {
--
2.37.2
^ permalink raw reply related [flat|nested] 63+ messages in thread
* [PULL 21/60] ppc/pnv: add helpers for pnv-phb user devices
2022-08-31 18:49 [PULL 00/60] ppc queue Daniel Henrique Barboza
` (19 preceding siblings ...)
2022-08-31 18:49 ` [PULL 20/60] ppc/pnv: set root port chassis and slot using Bus properties Daniel Henrique Barboza
@ 2022-08-31 18:49 ` Daniel Henrique Barboza
2022-08-31 18:49 ` [PULL 22/60] ppc/pnv: turn chip8->phbs[] into a PnvPHB* array Daniel Henrique Barboza
` (39 subsequent siblings)
60 siblings, 0 replies; 63+ messages in thread
From: Daniel Henrique Barboza @ 2022-08-31 18:49 UTC (permalink / raw)
To: qemu-devel
Cc: qemu-ppc, danielhb413, peter.maydell, richard.henderson,
Cédric Le Goater, Frederic Barrat
pnv_parent_qom_fixup() and pnv_parent_bus_fixup() are versions of the
helpers that were reverted by commit 9c10d86fee "ppc/pnv: Remove
user-created PHB{3,4,5} devices". They are needed to amend the QOM and
bus hierarchies of user created pnv-phbs, matching them with default
pnv-phbs.
A new helper pnv_phb_user_device_init() is created to handle
user-created devices setup. We're going to call it inside
pnv_phb_realize() in case we're realizing an user created device. This
will centralize all user device realated in a single spot, leaving the
realize functions of the phb3/phb4 backends untouched.
Another helper called pnv_chip_add_phb() was added to handle the
particularities of each chip version when adding a new PHB.
Signed-off-by: Daniel Henrique Barboza <danielhb413@gmail.com>
Reviewed-by: Cédric Le Goater <clg@kaod.org>
Reviewed-by: Frederic Barrat <fbarrat@linux.ibm.com>
Message-Id: <20220811163950.578927-5-danielhb413@gmail.com>
---
hw/pci-host/pnv_phb.c | 75 +++++++++++++++++++++++++++++++++++++++++++
hw/ppc/pnv.c | 20 ++++++++++++
include/hw/ppc/pnv.h | 1 +
3 files changed, 96 insertions(+)
diff --git a/hw/pci-host/pnv_phb.c b/hw/pci-host/pnv_phb.c
index 826c0c144e..5dc44f45d1 100644
--- a/hw/pci-host/pnv_phb.c
+++ b/hw/pci-host/pnv_phb.c
@@ -18,6 +18,38 @@
#include "hw/qdev-properties.h"
#include "qom/object.h"
+
+/*
+ * Set the QOM parent of an object child. If the device state
+ * associated with the child has an id, use it as QOM id. Otherwise
+ * use object_typename[index] as QOM id.
+ */
+static void pnv_parent_qom_fixup(Object *parent, Object *child, int index)
+{
+ g_autofree char *default_id =
+ g_strdup_printf("%s[%d]", object_get_typename(child), index);
+ const char *dev_id = DEVICE(child)->id;
+
+ if (child->parent == parent) {
+ return;
+ }
+
+ object_ref(child);
+ object_unparent(child);
+ object_property_add_child(parent, dev_id ? dev_id : default_id, child);
+ object_unref(child);
+}
+
+static void pnv_parent_bus_fixup(DeviceState *parent, DeviceState *child,
+ Error **errp)
+{
+ BusState *parent_bus = qdev_get_parent_bus(parent);
+
+ if (!qdev_set_parent_bus(child, parent_bus, errp)) {
+ return;
+ }
+}
+
/*
* Attach a root port device.
*
@@ -41,6 +73,39 @@ static void pnv_phb_attach_root_port(PCIHostState *pci)
pci_realize_and_unref(root, pci->bus, &error_fatal);
}
+/*
+ * User created devices won't have the initial setup that default
+ * devices have. This setup consists of assigning a parent device
+ * (chip for PHB3, PEC for PHB4/5) that will be the QOM/bus parent
+ * of the PHB.
+ */
+static bool pnv_phb_user_device_init(PnvPHB *phb, Error **errp)
+{
+ PnvMachineState *pnv = PNV_MACHINE(qdev_get_machine());
+ PnvChip *chip = pnv_get_chip(pnv, phb->chip_id);
+ Object *parent = NULL;
+
+ if (!chip) {
+ error_setg(errp, "invalid chip id: %d", phb->chip_id);
+ return false;
+ }
+
+ parent = pnv_chip_add_phb(chip, phb, errp);
+ if (!parent) {
+ return false;
+ }
+
+ /*
+ * Reparent user created devices to the chip to build
+ * correctly the device tree. pnv_xscom_dt() needs every
+ * PHB to be a child of the chip to build the DT correctly.
+ */
+ pnv_parent_qom_fixup(parent, OBJECT(phb), phb->phb_id);
+ pnv_parent_bus_fixup(DEVICE(chip), DEVICE(phb), errp);
+
+ return true;
+}
+
static void pnv_phb_realize(DeviceState *dev, Error **errp)
{
PnvPHB *phb = PNV_PHB(dev);
@@ -74,6 +139,16 @@ static void pnv_phb_realize(DeviceState *dev, Error **errp)
object_property_set_uint(phb->backend, "chip-id", phb->chip_id, errp);
object_property_set_link(phb->backend, "phb-base", OBJECT(phb), errp);
+ /*
+ * Handle user created devices. User devices will not have a
+ * pointer to a chip (PHB3) and a PEC (PHB4/5).
+ */
+ if (!phb->chip && !phb->pec) {
+ if (!pnv_phb_user_device_init(phb, errp)) {
+ return;
+ }
+ }
+
if (phb->version == 3) {
object_property_set_link(phb->backend, "chip",
OBJECT(phb->chip), errp);
diff --git a/hw/ppc/pnv.c b/hw/ppc/pnv.c
index 758e36132d..737dee4980 100644
--- a/hw/ppc/pnv.c
+++ b/hw/ppc/pnv.c
@@ -281,6 +281,26 @@ static void pnv_dt_icp(PnvChip *chip, void *fdt, uint32_t pir,
g_free(reg);
}
+/*
+ * Adds a PnvPHB to the chip. Returns the parent obj of the
+ * PHB which varies with each version (phb version 3 is parented
+ * by the chip, version 4 and 5 are parented by the PEC
+ * device).
+ *
+ * TODO: for version 3 we're still parenting the PHB with the
+ * chip. We should parent with a (so far not implemented)
+ * PHB3 PEC device.
+ */
+Object *pnv_chip_add_phb(PnvChip *chip, PnvPHB *phb, Error **errp)
+{
+ if (phb->version == 3) {
+ return OBJECT(chip);
+ } else {
+ /* phb4 support will be added later */
+ return NULL;
+ }
+}
+
static void pnv_chip_power8_dt_populate(PnvChip *chip, void *fdt)
{
static const char compat[] = "ibm,power8-xscom\0ibm,xscom";
diff --git a/include/hw/ppc/pnv.h b/include/hw/ppc/pnv.h
index 290adac76c..c44f357bce 100644
--- a/include/hw/ppc/pnv.h
+++ b/include/hw/ppc/pnv.h
@@ -234,6 +234,7 @@ struct PnvMachineState {
};
PnvChip *pnv_get_chip(PnvMachineState *pnv, uint32_t chip_id);
+Object *pnv_chip_add_phb(PnvChip *chip, PnvPHB *phb, Error **errp);
#define PNV_FDT_ADDR 0x01000000
#define PNV_TIMEBASE_FREQ 512000000ULL
--
2.37.2
^ permalink raw reply related [flat|nested] 63+ messages in thread
* [PULL 22/60] ppc/pnv: turn chip8->phbs[] into a PnvPHB* array
2022-08-31 18:49 [PULL 00/60] ppc queue Daniel Henrique Barboza
` (20 preceding siblings ...)
2022-08-31 18:49 ` [PULL 21/60] ppc/pnv: add helpers for pnv-phb user devices Daniel Henrique Barboza
@ 2022-08-31 18:49 ` Daniel Henrique Barboza
2022-08-31 18:49 ` [PULL 23/60] ppc/pnv: enable user created pnv-phb for powernv8 Daniel Henrique Barboza
` (38 subsequent siblings)
60 siblings, 0 replies; 63+ messages in thread
From: Daniel Henrique Barboza @ 2022-08-31 18:49 UTC (permalink / raw)
To: qemu-devel
Cc: qemu-ppc, danielhb413, peter.maydell, richard.henderson,
Cédric Le Goater, Frederic Barrat
When enabling user created PHBs (a change reverted by commit 9c10d86fee)
we were handling PHBs created by default versus by the user in different
manners. The only difference between these PHBs is that one will have a
valid phb3->chip that is assigned during pnv_chip_power8_realize(),
while the user created needs to search which chip it belongs to.
Aside from that there shouldn't be any difference. Making the default
PHBs behave in line with the user created ones will make it easier to
re-introduce them later on. It will also make the code easier to follow
since we are dealing with them in equal manner.
The first step is to turn chip8->phbs[] into a PnvPHB3 pointer array.
This will allow us to assign user created PHBs into it later on. The way
we initilize the default case is now more in line with that would happen
with the user created case: the object is created, parented by the chip
because pnv_xscom_dt() relies on it, and then assigned to the array.
Signed-off-by: Daniel Henrique Barboza <danielhb413@gmail.com>
Reviewed-by: Cédric Le Goater <clg@kaod.org>
Reviewed-by: Frederic Barrat <fbarrat@linux.ibm.com>
Message-Id: <20220811163950.578927-6-danielhb413@gmail.com>
---
hw/ppc/pnv.c | 27 ++++++++++++++++++++++-----
include/hw/ppc/pnv.h | 6 +++++-
2 files changed, 27 insertions(+), 6 deletions(-)
diff --git a/hw/ppc/pnv.c b/hw/ppc/pnv.c
index 737dee4980..0208517f1a 100644
--- a/hw/ppc/pnv.c
+++ b/hw/ppc/pnv.c
@@ -294,6 +294,13 @@ static void pnv_dt_icp(PnvChip *chip, void *fdt, uint32_t pir,
Object *pnv_chip_add_phb(PnvChip *chip, PnvPHB *phb, Error **errp)
{
if (phb->version == 3) {
+ Pnv8Chip *chip8 = PNV8_CHIP(chip);
+
+ phb->chip = chip;
+
+ chip8->phbs[chip8->num_phbs] = phb;
+ chip8->num_phbs++;
+
return OBJECT(chip);
} else {
/* phb4 support will be added later */
@@ -681,7 +688,7 @@ static void pnv_chip_power8_pic_print_info(PnvChip *chip, Monitor *mon)
ics_pic_print_info(&chip8->psi.ics, mon);
for (i = 0; i < chip8->num_phbs; i++) {
- PnvPHB *phb = &chip8->phbs[i];
+ PnvPHB *phb = chip8->phbs[i];
PnvPHB3 *phb3 = PNV_PHB3(phb->backend);
pnv_phb3_msi_pic_print_info(&phb3->msis, mon);
@@ -1174,7 +1181,17 @@ static void pnv_chip_power8_instance_init(Object *obj)
chip8->num_phbs = pcc->num_phbs;
for (i = 0; i < chip8->num_phbs; i++) {
- object_initialize_child(obj, "phb[*]", &chip8->phbs[i], TYPE_PNV_PHB);
+ Object *phb = object_new(TYPE_PNV_PHB);
+
+ /*
+ * We need the chip to parent the PHB to allow the DT
+ * to build correctly (via pnv_xscom_dt()).
+ *
+ * TODO: the PHB should be parented by a PEC device that, at
+ * this moment, is not modelled powernv8/phb3.
+ */
+ object_property_add_child(obj, "phb[*]", phb);
+ chip8->phbs[i] = PNV_PHB(phb);
}
}
@@ -1290,7 +1307,7 @@ static void pnv_chip_power8_realize(DeviceState *dev, Error **errp)
/* PHB controllers */
for (i = 0; i < chip8->num_phbs; i++) {
- PnvPHB *phb = &chip8->phbs[i];
+ PnvPHB *phb = chip8->phbs[i];
object_property_set_int(OBJECT(phb), "index", i, &error_fatal);
object_property_set_int(OBJECT(phb), "chip-id", chip->chip_id,
@@ -1983,7 +2000,7 @@ static ICSState *pnv_ics_get(XICSFabric *xi, int irq)
}
for (j = 0; j < chip8->num_phbs; j++) {
- PnvPHB *phb = &chip8->phbs[j];
+ PnvPHB *phb = chip8->phbs[j];
PnvPHB3 *phb3 = PNV_PHB3(phb->backend);
if (ics_valid_irq(&phb3->lsis, irq)) {
@@ -2022,7 +2039,7 @@ static void pnv_ics_resend(XICSFabric *xi)
ics_resend(&chip8->psi.ics);
for (j = 0; j < chip8->num_phbs; j++) {
- PnvPHB *phb = &chip8->phbs[j];
+ PnvPHB *phb = chip8->phbs[j];
PnvPHB3 *phb3 = PNV_PHB3(phb->backend);
ics_resend(&phb3->lsis);
diff --git a/include/hw/ppc/pnv.h b/include/hw/ppc/pnv.h
index c44f357bce..9ef7e2d0dc 100644
--- a/include/hw/ppc/pnv.h
+++ b/include/hw/ppc/pnv.h
@@ -82,7 +82,11 @@ struct Pnv8Chip {
PnvHomer homer;
#define PNV8_CHIP_PHB3_MAX 4
- PnvPHB phbs[PNV8_CHIP_PHB3_MAX];
+ /*
+ * The array is used to allow quick access to the phbs by
+ * pnv_ics_get_child() and pnv_ics_resend_child().
+ */
+ PnvPHB *phbs[PNV8_CHIP_PHB3_MAX];
uint32_t num_phbs;
XICSFabric *xics;
--
2.37.2
^ permalink raw reply related [flat|nested] 63+ messages in thread
* [PULL 23/60] ppc/pnv: enable user created pnv-phb for powernv8
2022-08-31 18:49 [PULL 00/60] ppc queue Daniel Henrique Barboza
` (21 preceding siblings ...)
2022-08-31 18:49 ` [PULL 22/60] ppc/pnv: turn chip8->phbs[] into a PnvPHB* array Daniel Henrique Barboza
@ 2022-08-31 18:49 ` Daniel Henrique Barboza
2022-08-31 18:49 ` [PULL 24/60] ppc/pnv: add PHB4 helpers for user created pnv-phb Daniel Henrique Barboza
` (37 subsequent siblings)
60 siblings, 0 replies; 63+ messages in thread
From: Daniel Henrique Barboza @ 2022-08-31 18:49 UTC (permalink / raw)
To: qemu-devel
Cc: qemu-ppc, danielhb413, peter.maydell, richard.henderson,
Cédric Le Goater, Frederic Barrat
The bulk of the work was already done by previous patches.
Use defaults_enabled() to determine whether we need to create the
default devices or not.
Reviewed-by: Cédric Le Goater <clg@kaod.org>
Signed-off-by: Daniel Henrique Barboza <danielhb413@gmail.com>
Reviewed-by: Frederic Barrat <fbarrat@linux.ibm.com>
Message-Id: <20220811163950.578927-7-danielhb413@gmail.com>
---
hw/pci-host/pnv_phb.c | 9 +++++++--
hw/ppc/pnv.c | 32 ++++++++++++++++++--------------
2 files changed, 25 insertions(+), 16 deletions(-)
diff --git a/hw/pci-host/pnv_phb.c b/hw/pci-host/pnv_phb.c
index 5dc44f45d1..1f53ff77c5 100644
--- a/hw/pci-host/pnv_phb.c
+++ b/hw/pci-host/pnv_phb.c
@@ -17,6 +17,7 @@
#include "hw/ppc/pnv.h"
#include "hw/qdev-properties.h"
#include "qom/object.h"
+#include "sysemu/sysemu.h"
/*
@@ -166,6 +167,10 @@ static void pnv_phb_realize(DeviceState *dev, Error **errp)
pnv_phb4_bus_init(dev, PNV_PHB4(phb->backend));
}
+ if (phb->version == 3 && !defaults_enabled()) {
+ return;
+ }
+
pnv_phb_attach_root_port(pci);
}
@@ -201,7 +206,7 @@ static void pnv_phb_class_init(ObjectClass *klass, void *data)
dc->realize = pnv_phb_realize;
device_class_set_props(dc, pnv_phb_properties);
set_bit(DEVICE_CATEGORY_BRIDGE, dc->categories);
- dc->user_creatable = false;
+ dc->user_creatable = true;
}
static void pnv_phb_root_port_reset(DeviceState *dev)
@@ -292,7 +297,7 @@ static void pnv_phb_root_port_class_init(ObjectClass *klass, void *data)
device_class_set_parent_reset(dc, pnv_phb_root_port_reset,
&rpc->parent_reset);
dc->reset = &pnv_phb_root_port_reset;
- dc->user_creatable = false;
+ dc->user_creatable = true;
k->vendor_id = PCI_VENDOR_ID_IBM;
/* device_id will be written during realize() */
diff --git a/hw/ppc/pnv.c b/hw/ppc/pnv.c
index 0208517f1a..9ce1ae7752 100644
--- a/hw/ppc/pnv.c
+++ b/hw/ppc/pnv.c
@@ -1178,20 +1178,22 @@ static void pnv_chip_power8_instance_init(Object *obj)
object_initialize_child(obj, "homer", &chip8->homer, TYPE_PNV8_HOMER);
- chip8->num_phbs = pcc->num_phbs;
-
- for (i = 0; i < chip8->num_phbs; i++) {
- Object *phb = object_new(TYPE_PNV_PHB);
-
- /*
- * We need the chip to parent the PHB to allow the DT
- * to build correctly (via pnv_xscom_dt()).
- *
- * TODO: the PHB should be parented by a PEC device that, at
- * this moment, is not modelled powernv8/phb3.
- */
- object_property_add_child(obj, "phb[*]", phb);
- chip8->phbs[i] = PNV_PHB(phb);
+ if (defaults_enabled()) {
+ chip8->num_phbs = pcc->num_phbs;
+
+ for (i = 0; i < chip8->num_phbs; i++) {
+ Object *phb = object_new(TYPE_PNV_PHB);
+
+ /*
+ * We need the chip to parent the PHB to allow the DT
+ * to build correctly (via pnv_xscom_dt()).
+ *
+ * TODO: the PHB should be parented by a PEC device that, at
+ * this moment, is not modelled powernv8/phb3.
+ */
+ object_property_add_child(obj, "phb[*]", phb);
+ chip8->phbs[i] = PNV_PHB(phb);
+ }
}
}
@@ -2155,6 +2157,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_PHB);
}
static void pnv_machine_power9_class_init(ObjectClass *oc, void *data)
--
2.37.2
^ permalink raw reply related [flat|nested] 63+ messages in thread
* [PULL 24/60] ppc/pnv: add PHB4 helpers for user created pnv-phb
2022-08-31 18:49 [PULL 00/60] ppc queue Daniel Henrique Barboza
` (22 preceding siblings ...)
2022-08-31 18:49 ` [PULL 23/60] ppc/pnv: enable user created pnv-phb for powernv8 Daniel Henrique Barboza
@ 2022-08-31 18:49 ` Daniel Henrique Barboza
2022-08-31 18:49 ` [PULL 25/60] ppc/pnv: enable user created pnv-phb for powernv9 Daniel Henrique Barboza
` (36 subsequent siblings)
60 siblings, 0 replies; 63+ messages in thread
From: Daniel Henrique Barboza @ 2022-08-31 18:49 UTC (permalink / raw)
To: qemu-devel
Cc: qemu-ppc, danielhb413, peter.maydell, richard.henderson,
Cédric Le Goater, Frederic Barrat
The PHB4 backend relies on a link with the corresponding PEC element.
This is trivial to do during machine_init() time for default devices,
but not so much for user created ones.
pnv_phb4_get_pec() is a small variation of the function that was
reverted by commit 9c10d86fee "ppc/pnv: Remove user-created PHB{3,4,5}
devices". We'll use it to determine the appropriate PEC for a given user
created pnv-phb that uses a PHB4 backend.
This is done during realize() time, in pnv_phb_user_device_init().
Signed-off-by: Daniel Henrique Barboza <danielhb413@gmail.com>
Reviewed-by: Cédric Le Goater <clg@kaod.org>
Reviewed-by: Frederic Barrat <fbarrat@linux.ibm.com>
Message-Id: <20220811163950.578927-8-danielhb413@gmail.com>
---
hw/ppc/pnv.c | 35 ++++++++++++++++++++++++++++++++---
1 file changed, 32 insertions(+), 3 deletions(-)
diff --git a/hw/ppc/pnv.c b/hw/ppc/pnv.c
index 9ce1ae7752..c34967cac7 100644
--- a/hw/ppc/pnv.c
+++ b/hw/ppc/pnv.c
@@ -281,6 +281,34 @@ static void pnv_dt_icp(PnvChip *chip, void *fdt, uint32_t pir,
g_free(reg);
}
+static PnvPhb4PecState *pnv_phb4_get_pec(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 phbs it supports
+ * and see if the given phb4 index matches an index.
+ */
+ PnvPhb4PecState *pec = &chip9->pecs[i];
+
+ for (j = 0; j < pec->num_phbs; j++) {
+ if (index == pnv_phb4_pec_get_phb_id(pec, j)) {
+ return pec;
+ }
+ }
+ }
+ error_setg(errp,
+ "pnv-phb4 chip-id %d index %d didn't match any existing PEC",
+ chip_id, index);
+
+ return NULL;
+}
+
/*
* Adds a PnvPHB to the chip. Returns the parent obj of the
* PHB which varies with each version (phb version 3 is parented
@@ -302,10 +330,11 @@ Object *pnv_chip_add_phb(PnvChip *chip, PnvPHB *phb, Error **errp)
chip8->num_phbs++;
return OBJECT(chip);
- } else {
- /* phb4 support will be added later */
- return NULL;
}
+
+ phb->pec = pnv_phb4_get_pec(chip, PNV_PHB4(phb->backend), errp);
+
+ return OBJECT(phb->pec);
}
static void pnv_chip_power8_dt_populate(PnvChip *chip, void *fdt)
--
2.37.2
^ permalink raw reply related [flat|nested] 63+ messages in thread
* [PULL 25/60] ppc/pnv: enable user created pnv-phb for powernv9
2022-08-31 18:49 [PULL 00/60] ppc queue Daniel Henrique Barboza
` (23 preceding siblings ...)
2022-08-31 18:49 ` [PULL 24/60] ppc/pnv: add PHB4 helpers for user created pnv-phb Daniel Henrique Barboza
@ 2022-08-31 18:49 ` Daniel Henrique Barboza
2022-08-31 18:50 ` [PULL 26/60] ppc/pnv: change pnv_phb4_get_pec() to also retrieve chip10->pecs Daniel Henrique Barboza
` (35 subsequent siblings)
60 siblings, 0 replies; 63+ messages in thread
From: Daniel Henrique Barboza @ 2022-08-31 18:49 UTC (permalink / raw)
To: qemu-devel
Cc: qemu-ppc, danielhb413, peter.maydell, richard.henderson,
Cédric Le Goater, Frederic Barrat
Enable pnv-phb user created devices for powernv9 now that we have
everything in place.
Reviewed-by: Cédric Le Goater <clg@kaod.org>
Signed-off-by: Daniel Henrique Barboza <danielhb413@gmail.com>
Reviewed-by: Frederic Barrat <fbarrat@linux.ibm.com>
Message-Id: <20220811163950.578927-9-danielhb413@gmail.com>
---
hw/pci-host/pnv_phb.c | 2 +-
hw/pci-host/pnv_phb4_pec.c | 6 ++++--
hw/ppc/pnv.c | 2 ++
3 files changed, 7 insertions(+), 3 deletions(-)
diff --git a/hw/pci-host/pnv_phb.c b/hw/pci-host/pnv_phb.c
index 1f53ff77c5..17d9960aa1 100644
--- a/hw/pci-host/pnv_phb.c
+++ b/hw/pci-host/pnv_phb.c
@@ -167,7 +167,7 @@ static void pnv_phb_realize(DeviceState *dev, Error **errp)
pnv_phb4_bus_init(dev, PNV_PHB4(phb->backend));
}
- if (phb->version == 3 && !defaults_enabled()) {
+ if (!defaults_enabled()) {
return;
}
diff --git a/hw/pci-host/pnv_phb4_pec.c b/hw/pci-host/pnv_phb4_pec.c
index 8dc363d69c..9871f462cd 100644
--- a/hw/pci-host/pnv_phb4_pec.c
+++ b/hw/pci-host/pnv_phb4_pec.c
@@ -146,8 +146,10 @@ static void pnv_pec_realize(DeviceState *dev, Error **errp)
pec->num_phbs = pecc->num_phbs[pec->index];
/* Create PHBs if running with defaults */
- for (i = 0; i < pec->num_phbs; i++) {
- pnv_pec_default_phb_realize(pec, i, errp);
+ if (defaults_enabled()) {
+ for (i = 0; i < pec->num_phbs; i++) {
+ pnv_pec_default_phb_realize(pec, i, errp);
+ }
}
/* Initialize the XSCOM regions for the PEC registers */
diff --git a/hw/ppc/pnv.c b/hw/ppc/pnv.c
index c34967cac7..f45f02be4c 100644
--- a/hw/ppc/pnv.c
+++ b/hw/ppc/pnv.c
@@ -2213,6 +2213,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_PHB);
}
static void pnv_machine_power10_class_init(ObjectClass *oc, void *data)
--
2.37.2
^ permalink raw reply related [flat|nested] 63+ messages in thread
* [PULL 26/60] ppc/pnv: change pnv_phb4_get_pec() to also retrieve chip10->pecs
2022-08-31 18:49 [PULL 00/60] ppc queue Daniel Henrique Barboza
` (24 preceding siblings ...)
2022-08-31 18:49 ` [PULL 25/60] ppc/pnv: enable user created pnv-phb for powernv9 Daniel Henrique Barboza
@ 2022-08-31 18:50 ` Daniel Henrique Barboza
2022-08-31 18:50 ` [PULL 27/60] ppc/pnv: user creatable pnv-phb for powernv10 Daniel Henrique Barboza
` (34 subsequent siblings)
60 siblings, 0 replies; 63+ messages in thread
From: Daniel Henrique Barboza @ 2022-08-31 18:50 UTC (permalink / raw)
To: qemu-devel
Cc: qemu-ppc, danielhb413, peter.maydell, richard.henderson,
Cédric Le Goater, Frederic Barrat
The function assumes that we're always dealing with a PNV9_CHIP()
object. This is not the case when the pnv-phb device belongs to a
powernv10 machine.
Change pnv_phb4_get_pec() to be able to work with PNV10_CHIP() if
necessary.
Signed-off-by: Daniel Henrique Barboza <danielhb413@gmail.com>
Reviewed-by: Cédric Le Goater <clg@kaod.org>
Reviewed-by: Frederic Barrat <fbarrat@linux.ibm.com>
Message-Id: <20220811163950.578927-10-danielhb413@gmail.com>
---
hw/ppc/pnv.c | 17 +++++++++++++++--
1 file changed, 15 insertions(+), 2 deletions(-)
diff --git a/hw/ppc/pnv.c b/hw/ppc/pnv.c
index f45f02be4c..c063d01f8d 100644
--- a/hw/ppc/pnv.c
+++ b/hw/ppc/pnv.c
@@ -284,17 +284,30 @@ static void pnv_dt_icp(PnvChip *chip, void *fdt, uint32_t pir,
static PnvPhb4PecState *pnv_phb4_get_pec(PnvChip *chip, PnvPHB4 *phb,
Error **errp)
{
- Pnv9Chip *chip9 = PNV9_CHIP(chip);
+ PnvPHB *phb_base = phb->phb_base;
+ PnvPhb4PecState *pecs = NULL;
int chip_id = phb->chip_id;
int index = phb->phb_id;
int i, j;
+ if (phb_base->version == 4) {
+ Pnv9Chip *chip9 = PNV9_CHIP(chip);
+
+ pecs = chip9->pecs;
+ } else if (phb_base->version == 5) {
+ Pnv10Chip *chip10 = PNV10_CHIP(chip);
+
+ pecs = chip10->pecs;
+ } else {
+ g_assert_not_reached();
+ }
+
for (i = 0; i < chip->num_pecs; i++) {
/*
* For each PEC, check the amount of phbs it supports
* and see if the given phb4 index matches an index.
*/
- PnvPhb4PecState *pec = &chip9->pecs[i];
+ PnvPhb4PecState *pec = &pecs[i];
for (j = 0; j < pec->num_phbs; j++) {
if (index == pnv_phb4_pec_get_phb_id(pec, j)) {
--
2.37.2
^ permalink raw reply related [flat|nested] 63+ messages in thread
* [PULL 27/60] ppc/pnv: user creatable pnv-phb for powernv10
2022-08-31 18:49 [PULL 00/60] ppc queue Daniel Henrique Barboza
` (25 preceding siblings ...)
2022-08-31 18:50 ` [PULL 26/60] ppc/pnv: change pnv_phb4_get_pec() to also retrieve chip10->pecs Daniel Henrique Barboza
@ 2022-08-31 18:50 ` Daniel Henrique Barboza
2022-08-31 18:50 ` [PULL 28/60] ppc/pnv: consolidate pnv_parent_*_fixup() helpers Daniel Henrique Barboza
` (33 subsequent siblings)
60 siblings, 0 replies; 63+ messages in thread
From: Daniel Henrique Barboza @ 2022-08-31 18:50 UTC (permalink / raw)
To: qemu-devel
Cc: qemu-ppc, danielhb413, peter.maydell, richard.henderson,
Cédric Le Goater, Frederic Barrat
Given that powernv9 and powernv10 uses the same pnv-phb backend, the
logic to allow user created pnv-phbs for powernv10 is already in place.
Let's flip the switch.
Reviewed-by: Cédric Le Goater <clg@kaod.org>
Signed-off-by: Daniel Henrique Barboza <danielhb413@gmail.com>
Reviewed-by: Frederic Barrat <fbarrat@linux.ibm.com>
Message-Id: <20220811163950.578927-11-danielhb413@gmail.com>
---
hw/ppc/pnv.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/hw/ppc/pnv.c b/hw/ppc/pnv.c
index c063d01f8d..354aa289d1 100644
--- a/hw/ppc/pnv.c
+++ b/hw/ppc/pnv.c
@@ -2251,6 +2251,8 @@ static void pnv_machine_power10_class_init(ObjectClass *oc, void *data)
pmc->dt_power_mgt = pnv_dt_power_mgt;
xfc->match_nvt = pnv10_xive_match_nvt;
+
+ machine_class_allow_dynamic_sysbus_dev(mc, TYPE_PNV_PHB);
}
static bool pnv_machine_get_hb(Object *obj, Error **errp)
--
2.37.2
^ permalink raw reply related [flat|nested] 63+ messages in thread
* [PULL 28/60] ppc/pnv: consolidate pnv_parent_*_fixup() helpers
2022-08-31 18:49 [PULL 00/60] ppc queue Daniel Henrique Barboza
` (26 preceding siblings ...)
2022-08-31 18:50 ` [PULL 27/60] ppc/pnv: user creatable pnv-phb for powernv10 Daniel Henrique Barboza
@ 2022-08-31 18:50 ` Daniel Henrique Barboza
2022-08-31 18:50 ` [PULL 29/60] ppc/pnv: fix QOM parenting of user creatable root ports Daniel Henrique Barboza
` (32 subsequent siblings)
60 siblings, 0 replies; 63+ messages in thread
From: Daniel Henrique Barboza @ 2022-08-31 18:50 UTC (permalink / raw)
To: qemu-devel
Cc: qemu-ppc, danielhb413, peter.maydell, richard.henderson,
Frederic Barrat
We have 2 helpers that amends the QOM and parent bus of a given object,
repectively. These 2 helpers are called together, and not by accident.
Due to QOM internals, doing an object_unparent() will result in the
device being removed from its parent bus. This means that changing the
QOM parent requires reassigning the parent bus again.
Create a single helper called pnv_parent_fixup(), documenting some of
the QOM specifics that we're dealing with the unparenting/parenting
mechanics, and handle both the QOM and the parent bus assignment.
Next patch will make use of this function to handle a case where we need
to change the QOM parent while keeping the same parent bus assigned
beforehand.
Signed-off-by: Daniel Henrique Barboza <danielhb413@gmail.com>
Reviewed-by: Frederic Barrat <fbarrat@linux.ibm.com>
Message-Id: <20220819094748.400578-2-danielhb413@gmail.com>
---
hw/pci-host/pnv_phb.c | 43 ++++++++++++++++++++++++++++---------------
1 file changed, 28 insertions(+), 15 deletions(-)
diff --git a/hw/pci-host/pnv_phb.c b/hw/pci-host/pnv_phb.c
index 17d9960aa1..4ea33fb6ba 100644
--- a/hw/pci-host/pnv_phb.c
+++ b/hw/pci-host/pnv_phb.c
@@ -21,34 +21,45 @@
/*
- * Set the QOM parent of an object child. If the device state
- * associated with the child has an id, use it as QOM id. Otherwise
- * use object_typename[index] as QOM id.
+ * Set the QOM parent and parent bus of an object child. If the device
+ * state associated with the child has an id, use it as QOM id.
+ * Otherwise use object_typename[index] as QOM id.
+ *
+ * This helper does both operations at the same time because seting
+ * a new QOM child will erase the bus parent of the device. This happens
+ * because object_unparent() will call object_property_del_child(),
+ * which in turn calls the property release callback prop->release if
+ * it's defined. In our case this callback is set to
+ * object_finalize_child_property(), which was assigned during the
+ * first object_property_add_child() call. This callback will end up
+ * calling device_unparent(), and this function removes the device
+ * from its parent bus.
+ *
+ * The QOM and parent bus to be set aren´t necessarily related, so
+ * let's receive both as arguments.
*/
-static void pnv_parent_qom_fixup(Object *parent, Object *child, int index)
+static bool pnv_parent_fixup(Object *parent, BusState *parent_bus,
+ Object *child, int index,
+ Error **errp)
{
g_autofree char *default_id =
g_strdup_printf("%s[%d]", object_get_typename(child), index);
const char *dev_id = DEVICE(child)->id;
if (child->parent == parent) {
- return;
+ return true;
}
object_ref(child);
object_unparent(child);
object_property_add_child(parent, dev_id ? dev_id : default_id, child);
object_unref(child);
-}
-
-static void pnv_parent_bus_fixup(DeviceState *parent, DeviceState *child,
- Error **errp)
-{
- BusState *parent_bus = qdev_get_parent_bus(parent);
- if (!qdev_set_parent_bus(child, parent_bus, errp)) {
- return;
+ if (!qdev_set_parent_bus(DEVICE(child), parent_bus, errp)) {
+ return false;
}
+
+ return true;
}
/*
@@ -101,8 +112,10 @@ static bool pnv_phb_user_device_init(PnvPHB *phb, Error **errp)
* correctly the device tree. pnv_xscom_dt() needs every
* PHB to be a child of the chip to build the DT correctly.
*/
- pnv_parent_qom_fixup(parent, OBJECT(phb), phb->phb_id);
- pnv_parent_bus_fixup(DEVICE(chip), DEVICE(phb), errp);
+ if (!pnv_parent_fixup(parent, qdev_get_parent_bus(DEVICE(chip)),
+ OBJECT(phb), phb->phb_id, errp)) {
+ return false;
+ }
return true;
}
--
2.37.2
^ permalink raw reply related [flat|nested] 63+ messages in thread
* [PULL 29/60] ppc/pnv: fix QOM parenting of user creatable root ports
2022-08-31 18:49 [PULL 00/60] ppc queue Daniel Henrique Barboza
` (27 preceding siblings ...)
2022-08-31 18:50 ` [PULL 28/60] ppc/pnv: consolidate pnv_parent_*_fixup() helpers Daniel Henrique Barboza
@ 2022-08-31 18:50 ` Daniel Henrique Barboza
2022-08-31 18:50 ` [PULL 30/60] ppc/ppc405: Remove taihu machine Daniel Henrique Barboza
` (31 subsequent siblings)
60 siblings, 0 replies; 63+ messages in thread
From: Daniel Henrique Barboza @ 2022-08-31 18:50 UTC (permalink / raw)
To: qemu-devel
Cc: qemu-ppc, danielhb413, peter.maydell, richard.henderson,
Cédric Le Goater, Frederic Barrat
User creatable root ports are being parented by the 'peripheral' or the
'peripheral-anon' container. This happens because this is the regular
QOM schema for sysbus devices that are added via the command line.
Let's make this QOM hierarchy similar to what we have with default root
ports, i.e. the root port must be parented by the pnv-root-bus. To do
that we change the qom and bus parent of the root port during
root_port_realize(). The realize() is shared by the default root port
code path, so we can remove the code inside pnv_phb_attach_root_port()
that was adding the root port as a child of the bus as well.
After all that, remove pnv_phb_attach_root_port() and create the root
port explictly in the 'default_enabled()' case of pnv_phb_realize().
Signed-off-by: Daniel Henrique Barboza <danielhb413@gmail.com>
Reviewed-by: Cédric Le Goater <clg@kaod.org>
Reviewed-by: Frederic Barrat <fbarrat@linux.ibm.com>
Message-Id: <20220819094748.400578-3-danielhb413@gmail.com>
---
hw/pci-host/pnv_phb.c | 47 ++++++++++++++++++-------------------------
1 file changed, 20 insertions(+), 27 deletions(-)
diff --git a/hw/pci-host/pnv_phb.c b/hw/pci-host/pnv_phb.c
index 4ea33fb6ba..7b11f1e8dd 100644
--- a/hw/pci-host/pnv_phb.c
+++ b/hw/pci-host/pnv_phb.c
@@ -62,29 +62,6 @@ static bool pnv_parent_fixup(Object *parent, BusState *parent_bus,
return true;
}
-/*
- * Attach a root port device.
- *
- * 'index' will be used both as a PCIE slot value and to calculate
- * QOM id. 'chip_id' is going to be used as PCIE chassis for the
- * root port.
- */
-static void pnv_phb_attach_root_port(PCIHostState *pci)
-{
- PCIDevice *root = pci_new(PCI_DEVFN(0, 0), TYPE_PNV_PHB_ROOT_PORT);
- const char *dev_id = DEVICE(root)->id;
- g_autofree char *default_id = NULL;
- int index;
-
- index = object_property_get_int(OBJECT(pci->bus), "phb-id", &error_fatal);
- default_id = g_strdup_printf("%s[%d]", TYPE_PNV_PHB_ROOT_PORT, index);
-
- object_property_add_child(OBJECT(pci->bus), dev_id ? dev_id : default_id,
- OBJECT(root));
-
- pci_realize_and_unref(root, pci->bus, &error_fatal);
-}
-
/*
* User created devices won't have the initial setup that default
* devices have. This setup consists of assigning a parent device
@@ -180,11 +157,11 @@ static void pnv_phb_realize(DeviceState *dev, Error **errp)
pnv_phb4_bus_init(dev, PNV_PHB4(phb->backend));
}
- if (!defaults_enabled()) {
- return;
- }
+ if (defaults_enabled()) {
+ PCIDevice *root = pci_new(PCI_DEVFN(0, 0), TYPE_PNV_PHB_ROOT_PORT);
- pnv_phb_attach_root_port(pci);
+ pci_realize_and_unref(root, pci->bus, errp);
+ }
}
static const char *pnv_phb_root_bus_path(PCIHostState *host_bridge,
@@ -259,6 +236,11 @@ static void pnv_phb_root_port_realize(DeviceState *dev, Error **errp)
Error *local_err = NULL;
int chip_id, index;
+ /*
+ * 'index' will be used both as a PCIE slot value and to calculate
+ * QOM id. 'chip_id' is going to be used as PCIE chassis for the
+ * root port.
+ */
chip_id = object_property_get_int(OBJECT(bus), "chip-id", &error_fatal);
index = object_property_get_int(OBJECT(bus), "phb-id", &error_fatal);
@@ -266,6 +248,17 @@ static void pnv_phb_root_port_realize(DeviceState *dev, Error **errp)
qdev_prop_set_uint8(dev, "chassis", chip_id);
qdev_prop_set_uint16(dev, "slot", index);
+ /*
+ * User created root ports are QOM parented to one of
+ * the peripheral containers but it's already at the right
+ * parent bus. Change the QOM parent to be the same as the
+ * parent bus it's already assigned to.
+ */
+ if (!pnv_parent_fixup(OBJECT(bus), BUS(bus), OBJECT(dev),
+ index, errp)) {
+ return;
+ }
+
rpc->parent_realize(dev, &local_err);
if (local_err) {
error_propagate(errp, local_err);
--
2.37.2
^ permalink raw reply related [flat|nested] 63+ messages in thread
* [PULL 30/60] ppc/ppc405: Remove taihu machine
2022-08-31 18:49 [PULL 00/60] ppc queue Daniel Henrique Barboza
` (28 preceding siblings ...)
2022-08-31 18:50 ` [PULL 29/60] ppc/pnv: fix QOM parenting of user creatable root ports Daniel Henrique Barboza
@ 2022-08-31 18:50 ` Daniel Henrique Barboza
2022-08-31 18:50 ` [PULL 31/60] ppc/ppc405: Introduce a PPC405 generic machine Daniel Henrique Barboza
` (30 subsequent siblings)
60 siblings, 0 replies; 63+ messages in thread
From: Daniel Henrique Barboza @ 2022-08-31 18:50 UTC (permalink / raw)
To: qemu-devel
Cc: qemu-ppc, danielhb413, peter.maydell, richard.henderson,
Cédric Le Goater
From: Cédric Le Goater <clg@kaod.org>
It has been deprecated since 7.0.
Reviewed-by: Daniel Henrique Barboza <danielhb413@gmail.com>
Signed-off-by: Cédric Le Goater <clg@kaod.org>
Message-Id: <20220809153904.485018-2-clg@kaod.org>
Signed-off-by: Daniel Henrique Barboza <danielhb413@gmail.com>
---
MAINTAINERS | 2 +-
docs/about/deprecated.rst | 9 --
docs/about/removed-features.rst | 6 +
docs/system/ppc/embedded.rst | 1 -
hw/ppc/ppc405_boards.c | 232 --------------------------------
5 files changed, 7 insertions(+), 243 deletions(-)
diff --git a/MAINTAINERS b/MAINTAINERS
index 5ce4227ff6..1729c0901c 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -1282,7 +1282,7 @@ F: hw/openrisc/openrisc_sim.c
PowerPC Machines
----------------
-405 (ref405ep and taihu)
+405 (ref405ep)
L: qemu-ppc@nongnu.org
S: Orphan
F: hw/ppc/ppc405_boards.c
diff --git a/docs/about/deprecated.rst b/docs/about/deprecated.rst
index 91b03115ee..c75a25daad 100644
--- a/docs/about/deprecated.rst
+++ b/docs/about/deprecated.rst
@@ -233,15 +233,6 @@ deprecated; use the new name ``dtb-randomness`` instead. The new name
better reflects the way this property affects all random data within
the device tree blob, not just the ``kaslr-seed`` node.
-PPC 405 ``taihu`` machine (since 7.0)
-'''''''''''''''''''''''''''''''''''''
-
-The PPC 405 CPU is a system-on-a-chip, so all 405 machines are very similar,
-except for some external periphery. However, the periphery of the ``taihu``
-machine is hardly emulated at all (e.g. neither the LCD nor the USB part had
-been implemented), so there is not much value added by this board. Use the
-``ref405ep`` machine instead.
-
``pc-i440fx-1.4`` up to ``pc-i440fx-1.7`` (since 7.0)
'''''''''''''''''''''''''''''''''''''''''''''''''''''
diff --git a/docs/about/removed-features.rst b/docs/about/removed-features.rst
index 925e22016f..a4aa3dca69 100644
--- a/docs/about/removed-features.rst
+++ b/docs/about/removed-features.rst
@@ -668,6 +668,12 @@ Aspeed ``swift-bmc`` machine (removed in 7.0)
This machine was removed because it was unused. Alternative AST2500 based
OpenPOWER machines are ``witherspoon-bmc`` and ``romulus-bmc``.
+ppc ``taihu`` machine (removed in 7.2)
+'''''''''''''''''''''''''''''''''''''''''''''
+
+This machine was removed because it was partially emulated and 405
+machines are very similar. Use the ``ref405ep`` machine instead.
+
linux-user mode CPUs
--------------------
diff --git a/docs/system/ppc/embedded.rst b/docs/system/ppc/embedded.rst
index cfffbda24d..af3b3d9fa4 100644
--- a/docs/system/ppc/embedded.rst
+++ b/docs/system/ppc/embedded.rst
@@ -6,5 +6,4 @@ Embedded family boards
- ``ppce500`` generic paravirt e500 platform
- ``ref405ep`` ref405ep
- ``sam460ex`` aCube Sam460ex
-- ``taihu`` taihu
- ``virtex-ml507`` Xilinx Virtex ML507 reference design
diff --git a/hw/ppc/ppc405_boards.c b/hw/ppc/ppc405_boards.c
index a66ad05e3a..1a4e7588c5 100644
--- a/hw/ppc/ppc405_boards.c
+++ b/hw/ppc/ppc405_boards.c
@@ -342,241 +342,9 @@ static const TypeInfo ref405ep_type = {
.class_init = ref405ep_class_init,
};
-/*****************************************************************************/
-/* AMCC Taihu evaluation board */
-/* - PowerPC 405EP processor
- * - SDRAM 128 MB at 0x00000000
- * - Boot flash 2 MB at 0xFFE00000
- * - Application flash 32 MB at 0xFC000000
- * - 2 serial ports
- * - 2 ethernet PHY
- * - 1 USB 1.1 device 0x50000000
- * - 1 LCD display 0x50100000
- * - 1 CPLD 0x50100000
- * - 1 I2C EEPROM
- * - 1 I2C thermal sensor
- * - a set of LEDs
- * - bit-bang SPI port using GPIOs
- * - 1 EBC interface connector 0 0x50200000
- * - 1 cardbus controller + expansion slot.
- * - 1 PCI expansion slot.
- */
-typedef struct taihu_cpld_t taihu_cpld_t;
-struct taihu_cpld_t {
- uint8_t reg0;
- uint8_t reg1;
-};
-
-static uint64_t taihu_cpld_read(void *opaque, hwaddr addr, unsigned size)
-{
- taihu_cpld_t *cpld;
- uint32_t ret;
-
- cpld = opaque;
- switch (addr) {
- case 0x0:
- ret = cpld->reg0;
- break;
- case 0x1:
- ret = cpld->reg1;
- break;
- default:
- ret = 0;
- break;
- }
-
- return ret;
-}
-
-static void taihu_cpld_write(void *opaque, hwaddr addr,
- uint64_t value, unsigned size)
-{
- taihu_cpld_t *cpld;
-
- cpld = opaque;
- switch (addr) {
- case 0x0:
- /* Read only */
- break;
- case 0x1:
- cpld->reg1 = value;
- break;
- default:
- break;
- }
-}
-
-static const MemoryRegionOps taihu_cpld_ops = {
- .read = taihu_cpld_read,
- .write = taihu_cpld_write,
- .impl = {
- .min_access_size = 1,
- .max_access_size = 1,
- },
- .endianness = DEVICE_NATIVE_ENDIAN,
-};
-
-static void taihu_cpld_reset (void *opaque)
-{
- taihu_cpld_t *cpld;
-
- cpld = opaque;
- cpld->reg0 = 0x01;
- cpld->reg1 = 0x80;
-}
-
-static void taihu_cpld_init(MemoryRegion *sysmem, uint32_t base)
-{
- taihu_cpld_t *cpld;
- MemoryRegion *cpld_memory = g_new(MemoryRegion, 1);
-
- cpld = g_new0(taihu_cpld_t, 1);
- memory_region_init_io(cpld_memory, NULL, &taihu_cpld_ops, cpld, "cpld", 0x100);
- memory_region_add_subregion(sysmem, base, cpld_memory);
- qemu_register_reset(&taihu_cpld_reset, cpld);
-}
-
-static void taihu_405ep_init(MachineState *machine)
-{
- MachineClass *mc = MACHINE_GET_CLASS(machine);
- const char *bios_name = machine->firmware ?: BIOS_FILENAME;
- const char *kernel_filename = machine->kernel_filename;
- const char *initrd_filename = machine->initrd_filename;
- char *filename;
- MemoryRegion *sysmem = get_system_memory();
- MemoryRegion *bios;
- MemoryRegion *ram_memories = g_new(MemoryRegion, 2);
- hwaddr ram_bases[2], ram_sizes[2];
- long bios_size;
- target_ulong kernel_base, initrd_base;
- long kernel_size, initrd_size;
- int linux_boot;
- int fl_idx;
- DriveInfo *dinfo;
- DeviceState *uicdev;
-
- if (machine->ram_size != mc->default_ram_size) {
- char *sz = size_to_str(mc->default_ram_size);
- error_report("Invalid RAM size, should be %s", sz);
- g_free(sz);
- exit(EXIT_FAILURE);
- }
-
- ram_bases[0] = 0;
- ram_sizes[0] = 0x04000000;
- memory_region_init_alias(&ram_memories[0], NULL,
- "taihu_405ep.ram-0", machine->ram, ram_bases[0],
- ram_sizes[0]);
- ram_bases[1] = 0x04000000;
- ram_sizes[1] = 0x04000000;
- memory_region_init_alias(&ram_memories[1], NULL,
- "taihu_405ep.ram-1", machine->ram, ram_bases[1],
- ram_sizes[1]);
- ppc405ep_init(sysmem, ram_memories, ram_bases, ram_sizes,
- 33333333, &uicdev, kernel_filename == NULL ? 0 : 1);
- /* allocate and load BIOS */
- fl_idx = 0;
-#if defined(USE_FLASH_BIOS)
- dinfo = drive_get(IF_PFLASH, 0, fl_idx);
- if (dinfo) {
- bios_size = 2 * MiB;
- pflash_cfi02_register(0xFFE00000,
- "taihu_405ep.bios", bios_size,
- blk_by_legacy_dinfo(dinfo),
- 64 * KiB, 1,
- 4, 0x0001, 0x22DA, 0x0000, 0x0000, 0x555, 0x2AA,
- 1);
- fl_idx++;
- } else
-#endif
- {
- bios = g_new(MemoryRegion, 1);
- memory_region_init_rom(bios, NULL, "taihu_405ep.bios", BIOS_SIZE,
- &error_fatal);
- filename = qemu_find_file(QEMU_FILE_TYPE_BIOS, bios_name);
- if (filename) {
- bios_size = load_image_size(filename,
- memory_region_get_ram_ptr(bios),
- BIOS_SIZE);
- g_free(filename);
- if (bios_size < 0) {
- error_report("Could not load PowerPC BIOS '%s'", bios_name);
- exit(1);
- }
- bios_size = (bios_size + 0xfff) & ~0xfff;
- memory_region_add_subregion(sysmem, (uint32_t)(-bios_size), bios);
- } else if (!qtest_enabled()) {
- error_report("Could not load PowerPC BIOS '%s'", bios_name);
- exit(1);
- }
- }
- /* Register Linux flash */
- dinfo = drive_get(IF_PFLASH, 0, fl_idx);
- if (dinfo) {
- bios_size = 32 * MiB;
- pflash_cfi02_register(0xfc000000, "taihu_405ep.flash", bios_size,
- blk_by_legacy_dinfo(dinfo),
- 64 * KiB, 1,
- 4, 0x0001, 0x22DA, 0x0000, 0x0000, 0x555, 0x2AA,
- 1);
- fl_idx++;
- }
- /* Register CLPD & LCD display */
- taihu_cpld_init(sysmem, 0x50100000);
- /* Load kernel */
- linux_boot = (kernel_filename != NULL);
- if (linux_boot) {
- kernel_base = KERNEL_LOAD_ADDR;
- /* now we can load the kernel */
- kernel_size = load_image_targphys(kernel_filename, kernel_base,
- machine->ram_size - kernel_base);
- if (kernel_size < 0) {
- error_report("could not load kernel '%s'", kernel_filename);
- exit(1);
- }
- /* load initrd */
- if (initrd_filename) {
- initrd_base = INITRD_LOAD_ADDR;
- initrd_size = load_image_targphys(initrd_filename, initrd_base,
- machine->ram_size - initrd_base);
- if (initrd_size < 0) {
- error_report("could not load initial ram disk '%s'",
- initrd_filename);
- exit(1);
- }
- } else {
- initrd_base = 0;
- initrd_size = 0;
- }
- } else {
- kernel_base = 0;
- kernel_size = 0;
- initrd_base = 0;
- initrd_size = 0;
- }
-}
-
-static void taihu_class_init(ObjectClass *oc, void *data)
-{
- MachineClass *mc = MACHINE_CLASS(oc);
-
- mc->desc = "taihu";
- mc->init = taihu_405ep_init;
- mc->default_ram_size = 0x08000000;
- mc->default_ram_id = "taihu_405ep.ram";
- mc->deprecation_reason = "incomplete, use 'ref405ep' instead";
-}
-
-static const TypeInfo taihu_type = {
- .name = MACHINE_TYPE_NAME("taihu"),
- .parent = TYPE_MACHINE,
- .class_init = taihu_class_init,
-};
-
static void ppc405_machine_init(void)
{
type_register_static(&ref405ep_type);
- type_register_static(&taihu_type);
}
type_init(ppc405_machine_init)
--
2.37.2
^ permalink raw reply related [flat|nested] 63+ messages in thread
* [PULL 31/60] ppc/ppc405: Introduce a PPC405 generic machine
2022-08-31 18:49 [PULL 00/60] ppc queue Daniel Henrique Barboza
` (29 preceding siblings ...)
2022-08-31 18:50 ` [PULL 30/60] ppc/ppc405: Remove taihu machine Daniel Henrique Barboza
@ 2022-08-31 18:50 ` Daniel Henrique Barboza
2022-08-31 18:50 ` [PULL 32/60] ppc/ppc405: Move devices under the ref405ep machine Daniel Henrique Barboza
` (29 subsequent siblings)
60 siblings, 0 replies; 63+ messages in thread
From: Daniel Henrique Barboza @ 2022-08-31 18:50 UTC (permalink / raw)
To: qemu-devel
Cc: qemu-ppc, danielhb413, peter.maydell, richard.henderson,
Cédric Le Goater, BALATON Zoltan
From: Cédric Le Goater <clg@kaod.org>
We will use this machine as a base to define the ref405ep and possibly
the PPC405 hotfoot board as found in the Linux kernel.
Reviewed-by: BALATON Zoltan <balaton@eik.bme.hu>
Signed-off-by: Cédric Le Goater <clg@kaod.org>
Message-Id: <20220809153904.485018-3-clg@kaod.org>
Signed-off-by: Daniel Henrique Barboza <danielhb413@gmail.com>
---
hw/ppc/ppc405_boards.c | 31 ++++++++++++++++++++++++++++---
1 file changed, 28 insertions(+), 3 deletions(-)
diff --git a/hw/ppc/ppc405_boards.c b/hw/ppc/ppc405_boards.c
index 1a4e7588c5..96700be74d 100644
--- a/hw/ppc/ppc405_boards.c
+++ b/hw/ppc/ppc405_boards.c
@@ -50,6 +50,15 @@
#define USE_FLASH_BIOS
+#define TYPE_PPC405_MACHINE MACHINE_TYPE_NAME("ppc405")
+OBJECT_DECLARE_SIMPLE_TYPE(Ppc405MachineState, PPC405_MACHINE);
+
+struct Ppc405MachineState {
+ /* Private */
+ MachineState parent_obj;
+ /* Public */
+};
+
/*****************************************************************************/
/* PPC405EP reference board (IBM) */
/* Standalone board with:
@@ -332,18 +341,34 @@ static void ref405ep_class_init(ObjectClass *oc, void *data)
mc->desc = "ref405ep";
mc->init = ref405ep_init;
- mc->default_ram_size = 0x08000000;
- mc->default_ram_id = "ef405ep.ram";
}
static const TypeInfo ref405ep_type = {
.name = MACHINE_TYPE_NAME("ref405ep"),
- .parent = TYPE_MACHINE,
+ .parent = TYPE_PPC405_MACHINE,
.class_init = ref405ep_class_init,
};
+static void ppc405_machine_class_init(ObjectClass *oc, void *data)
+{
+ MachineClass *mc = MACHINE_CLASS(oc);
+
+ mc->desc = "PPC405 generic machine";
+ mc->default_ram_size = 128 * MiB;
+ mc->default_ram_id = "ppc405.ram";
+}
+
+static const TypeInfo ppc405_machine_type = {
+ .name = TYPE_PPC405_MACHINE,
+ .parent = TYPE_MACHINE,
+ .instance_size = sizeof(Ppc405MachineState),
+ .class_init = ppc405_machine_class_init,
+ .abstract = true,
+};
+
static void ppc405_machine_init(void)
{
+ type_register_static(&ppc405_machine_type);
type_register_static(&ref405ep_type);
}
--
2.37.2
^ permalink raw reply related [flat|nested] 63+ messages in thread
* [PULL 32/60] ppc/ppc405: Move devices under the ref405ep machine
2022-08-31 18:49 [PULL 00/60] ppc queue Daniel Henrique Barboza
` (30 preceding siblings ...)
2022-08-31 18:50 ` [PULL 31/60] ppc/ppc405: Introduce a PPC405 generic machine Daniel Henrique Barboza
@ 2022-08-31 18:50 ` Daniel Henrique Barboza
2022-08-31 18:50 ` [PULL 33/60] ppc/ppc405: Move SRAM " Daniel Henrique Barboza
` (28 subsequent siblings)
60 siblings, 0 replies; 63+ messages in thread
From: Daniel Henrique Barboza @ 2022-08-31 18:50 UTC (permalink / raw)
To: qemu-devel
Cc: qemu-ppc, danielhb413, peter.maydell, richard.henderson,
Cédric Le Goater, BALATON Zoltan
From: Cédric Le Goater <clg@kaod.org>
Reviewed-by: Daniel Henrique Barboza <danielhb413@gmail.com>
Reviewed-by: BALATON Zoltan <balaton@eik.bme.hu>
Signed-off-by: Cédric Le Goater <clg@kaod.org>
Message-Id: <20220809153904.485018-4-clg@kaod.org>
Signed-off-by: Daniel Henrique Barboza <danielhb413@gmail.com>
---
hw/ppc/ppc405_boards.c | 31 +++++++++++++++++++------------
1 file changed, 19 insertions(+), 12 deletions(-)
diff --git a/hw/ppc/ppc405_boards.c b/hw/ppc/ppc405_boards.c
index 96700be74d..f4794ba40c 100644
--- a/hw/ppc/ppc405_boards.c
+++ b/hw/ppc/ppc405_boards.c
@@ -230,13 +230,11 @@ static void boot_from_kernel(MachineState *machine, PowerPCCPU *cpu)
env->load_info = &boot_info;
}
-static void ref405ep_init(MachineState *machine)
+static void ppc405_init(MachineState *machine)
{
MachineClass *mc = MACHINE_GET_CLASS(machine);
const char *kernel_filename = machine->kernel_filename;
PowerPCCPU *cpu;
- DeviceState *dev;
- SysBusDevice *s;
MemoryRegion *sram = g_new(MemoryRegion, 1);
MemoryRegion *ram_memories = g_new(MemoryRegion, 2);
hwaddr ram_bases[2], ram_sizes[2];
@@ -294,15 +292,6 @@ static void ref405ep_init(MachineState *machine)
memory_region_add_subregion(sysmem, (uint32_t)(-bios_size), bios);
}
- /* Register FPGA */
- ref405ep_fpga_init(sysmem, PPC405EP_FPGA_BASE);
- /* Register NVRAM */
- dev = qdev_new("sysbus-m48t08");
- qdev_prop_set_int32(dev, "base-year", 1968);
- s = SYS_BUS_DEVICE(dev);
- sysbus_realize_and_unref(s, &error_fatal);
- sysbus_mmio_map(s, 0, PPC405EP_NVRAM_BASE);
-
/* Load kernel and initrd using U-Boot images */
if (kernel_filename && machine->firmware) {
target_ulong kernel_base, initrd_base;
@@ -335,6 +324,23 @@ static void ref405ep_init(MachineState *machine)
}
}
+static void ref405ep_init(MachineState *machine)
+{
+ DeviceState *dev;
+ SysBusDevice *s;
+
+ ppc405_init(machine);
+
+ /* Register FPGA */
+ ref405ep_fpga_init(get_system_memory(), PPC405EP_FPGA_BASE);
+ /* Register NVRAM */
+ dev = qdev_new("sysbus-m48t08");
+ qdev_prop_set_int32(dev, "base-year", 1968);
+ s = SYS_BUS_DEVICE(dev);
+ sysbus_realize_and_unref(s, &error_fatal);
+ sysbus_mmio_map(s, 0, PPC405EP_NVRAM_BASE);
+}
+
static void ref405ep_class_init(ObjectClass *oc, void *data)
{
MachineClass *mc = MACHINE_CLASS(oc);
@@ -354,6 +360,7 @@ static void ppc405_machine_class_init(ObjectClass *oc, void *data)
MachineClass *mc = MACHINE_CLASS(oc);
mc->desc = "PPC405 generic machine";
+ mc->init = ppc405_init;
mc->default_ram_size = 128 * MiB;
mc->default_ram_id = "ppc405.ram";
}
--
2.37.2
^ permalink raw reply related [flat|nested] 63+ messages in thread
* [PULL 33/60] ppc/ppc405: Move SRAM under the ref405ep machine
2022-08-31 18:49 [PULL 00/60] ppc queue Daniel Henrique Barboza
` (31 preceding siblings ...)
2022-08-31 18:50 ` [PULL 32/60] ppc/ppc405: Move devices under the ref405ep machine Daniel Henrique Barboza
@ 2022-08-31 18:50 ` Daniel Henrique Barboza
2022-08-31 18:50 ` [PULL 34/60] ppc/ppc405: Introduce a PPC405 SoC Daniel Henrique Barboza
` (27 subsequent siblings)
60 siblings, 0 replies; 63+ messages in thread
From: Daniel Henrique Barboza @ 2022-08-31 18:50 UTC (permalink / raw)
To: qemu-devel
Cc: qemu-ppc, danielhb413, peter.maydell, richard.henderson,
Cédric Le Goater, BALATON Zoltan
From: Cédric Le Goater <clg@kaod.org>
It doesn't belong to the generic machine nor the SoC. Fix a typo in
the name while we are at it.
Signed-off-by: Cédric Le Goater <clg@kaod.org>
Reviewed-by: BALATON Zoltan <balaton@eik.bme.hu>
Message-Id: <20220809153904.485018-5-clg@kaod.org>
Signed-off-by: Daniel Henrique Barboza <danielhb413@gmail.com>
---
hw/ppc/ppc405_boards.c | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/hw/ppc/ppc405_boards.c b/hw/ppc/ppc405_boards.c
index f4794ba40c..381f39aa94 100644
--- a/hw/ppc/ppc405_boards.c
+++ b/hw/ppc/ppc405_boards.c
@@ -235,7 +235,6 @@ static void ppc405_init(MachineState *machine)
MachineClass *mc = MACHINE_GET_CLASS(machine);
const char *kernel_filename = machine->kernel_filename;
PowerPCCPU *cpu;
- MemoryRegion *sram = g_new(MemoryRegion, 1);
MemoryRegion *ram_memories = g_new(MemoryRegion, 2);
hwaddr ram_bases[2], ram_sizes[2];
MemoryRegion *sysmem = get_system_memory();
@@ -260,11 +259,6 @@ static void ppc405_init(MachineState *machine)
cpu = ppc405ep_init(sysmem, ram_memories, ram_bases, ram_sizes,
33333333, &uicdev, kernel_filename == NULL ? 0 : 1);
- /* allocate SRAM */
- memory_region_init_ram(sram, NULL, "ef405ep.sram", PPC405EP_SRAM_SIZE,
- &error_fatal);
- memory_region_add_subregion(sysmem, PPC405EP_SRAM_BASE, sram);
-
/* allocate and load BIOS */
if (machine->firmware) {
MemoryRegion *bios = g_new(MemoryRegion, 1);
@@ -328,9 +322,15 @@ static void ref405ep_init(MachineState *machine)
{
DeviceState *dev;
SysBusDevice *s;
+ MemoryRegion *sram = g_new(MemoryRegion, 1);
ppc405_init(machine);
+ /* allocate SRAM */
+ memory_region_init_ram(sram, NULL, "ref405ep.sram", PPC405EP_SRAM_SIZE,
+ &error_fatal);
+ memory_region_add_subregion(get_system_memory(), PPC405EP_SRAM_BASE, sram);
+
/* Register FPGA */
ref405ep_fpga_init(get_system_memory(), PPC405EP_FPGA_BASE);
/* Register NVRAM */
--
2.37.2
^ permalink raw reply related [flat|nested] 63+ messages in thread
* [PULL 34/60] ppc/ppc405: Introduce a PPC405 SoC
2022-08-31 18:49 [PULL 00/60] ppc queue Daniel Henrique Barboza
` (32 preceding siblings ...)
2022-08-31 18:50 ` [PULL 33/60] ppc/ppc405: Move SRAM " Daniel Henrique Barboza
@ 2022-08-31 18:50 ` Daniel Henrique Barboza
2022-08-31 18:50 ` [PULL 35/60] ppc/ppc405: Start QOMification of the SoC Daniel Henrique Barboza
` (26 subsequent siblings)
60 siblings, 0 replies; 63+ messages in thread
From: Daniel Henrique Barboza @ 2022-08-31 18:50 UTC (permalink / raw)
To: qemu-devel
Cc: qemu-ppc, danielhb413, peter.maydell, richard.henderson,
Cédric Le Goater, BALATON Zoltan
From: Cédric Le Goater <clg@kaod.org>
It is an initial model to start QOMification of the PPC405 board.
QOM'ified devices will be reintroduced one by one. Start with the
memory regions, which name prefix is changed to "ppc405".
Also, initialize only one RAM bank. The second bank is a dummy one
(zero size) which is here to match the hard coded number of banks in
ppc405ep_init().
Reviewed-by: Daniel Henrique Barboza <danielhb413@gmail.com>
Signed-off-by: Cédric Le Goater <clg@kaod.org>
Reviewed-by: BALATON Zoltan <balaton@eik.bme.hu>
Message-Id: <20220809153904.485018-6-clg@kaod.org>
Signed-off-by: Daniel Henrique Barboza <danielhb413@gmail.com>
---
hw/ppc/ppc405.h | 16 ++++++++++++++++
hw/ppc/ppc405_boards.c | 23 ++++++++++++-----------
hw/ppc/ppc405_uc.c | 40 ++++++++++++++++++++++++++++++++++++++++
3 files changed, 68 insertions(+), 11 deletions(-)
diff --git a/hw/ppc/ppc405.h b/hw/ppc/ppc405.h
index 83f156f585..66dc21cdfe 100644
--- a/hw/ppc/ppc405.h
+++ b/hw/ppc/ppc405.h
@@ -25,6 +25,7 @@
#ifndef PPC405_H
#define PPC405_H
+#include "qom/object.h"
#include "hw/ppc/ppc4xx.h"
#define PPC405EP_SDRAM_BASE 0x00000000
@@ -62,6 +63,21 @@ struct ppc4xx_bd_info_t {
uint32_t bi_iic_fast[2];
};
+#define TYPE_PPC405_SOC "ppc405-soc"
+OBJECT_DECLARE_SIMPLE_TYPE(Ppc405SoCState, PPC405_SOC);
+
+struct Ppc405SoCState {
+ /* Private */
+ DeviceState parent_obj;
+
+ /* Public */
+ MemoryRegion ram_banks[2];
+ hwaddr ram_bases[2], ram_sizes[2];
+
+ MemoryRegion *dram_mr;
+ hwaddr ram_size;
+};
+
/* PowerPC 405 core */
ram_addr_t ppc405_set_bootinfo(CPUPPCState *env, ram_addr_t ram_size);
diff --git a/hw/ppc/ppc405_boards.c b/hw/ppc/ppc405_boards.c
index 381f39aa94..f029d6f415 100644
--- a/hw/ppc/ppc405_boards.c
+++ b/hw/ppc/ppc405_boards.c
@@ -57,6 +57,8 @@ struct Ppc405MachineState {
/* Private */
MachineState parent_obj;
/* Public */
+
+ Ppc405SoCState soc;
};
/*****************************************************************************/
@@ -232,11 +234,10 @@ static void boot_from_kernel(MachineState *machine, PowerPCCPU *cpu)
static void ppc405_init(MachineState *machine)
{
+ Ppc405MachineState *ppc405 = PPC405_MACHINE(machine);
MachineClass *mc = MACHINE_GET_CLASS(machine);
const char *kernel_filename = machine->kernel_filename;
PowerPCCPU *cpu;
- MemoryRegion *ram_memories = g_new(MemoryRegion, 2);
- hwaddr ram_bases[2], ram_sizes[2];
MemoryRegion *sysmem = get_system_memory();
DeviceState *uicdev;
@@ -247,16 +248,16 @@ static void ppc405_init(MachineState *machine)
exit(EXIT_FAILURE);
}
- /* XXX: fix this */
- memory_region_init_alias(&ram_memories[0], NULL, "ef405ep.ram.alias",
- machine->ram, 0, machine->ram_size);
- ram_bases[0] = 0;
- ram_sizes[0] = machine->ram_size;
- memory_region_init(&ram_memories[1], NULL, "ef405ep.ram1", 0);
- ram_bases[1] = 0x00000000;
- ram_sizes[1] = 0x00000000;
+ object_initialize_child(OBJECT(machine), "soc", &ppc405->soc,
+ TYPE_PPC405_SOC);
+ object_property_set_uint(OBJECT(&ppc405->soc), "ram-size",
+ machine->ram_size, &error_fatal);
+ object_property_set_link(OBJECT(&ppc405->soc), "dram",
+ OBJECT(machine->ram), &error_abort);
+ qdev_realize(DEVICE(&ppc405->soc), NULL, &error_fatal);
- cpu = ppc405ep_init(sysmem, ram_memories, ram_bases, ram_sizes,
+ cpu = ppc405ep_init(sysmem, ppc405->soc.ram_banks, ppc405->soc.ram_bases,
+ ppc405->soc.ram_sizes,
33333333, &uicdev, kernel_filename == NULL ? 0 : 1);
/* allocate and load BIOS */
diff --git a/hw/ppc/ppc405_uc.c b/hw/ppc/ppc405_uc.c
index d6420c88d3..adadb3a0ae 100644
--- a/hw/ppc/ppc405_uc.c
+++ b/hw/ppc/ppc405_uc.c
@@ -30,6 +30,7 @@
#include "hw/ppc/ppc.h"
#include "hw/i2c/ppc4xx_i2c.h"
#include "hw/irq.h"
+#include "hw/qdev-properties.h"
#include "ppc405.h"
#include "hw/char/serial.h"
#include "qemu/timer.h"
@@ -1530,3 +1531,42 @@ PowerPCCPU *ppc405ep_init(MemoryRegion *address_space_mem,
return cpu;
}
+
+static void ppc405_soc_realize(DeviceState *dev, Error **errp)
+{
+ Ppc405SoCState *s = PPC405_SOC(dev);
+
+ /* Initialize only one bank */
+ s->ram_bases[0] = 0;
+ s->ram_sizes[0] = s->ram_size;
+ memory_region_init_alias(&s->ram_banks[0], OBJECT(s),
+ "ppc405.sdram0", s->dram_mr,
+ s->ram_bases[0], s->ram_sizes[0]);
+}
+
+static Property ppc405_soc_properties[] = {
+ DEFINE_PROP_LINK("dram", Ppc405SoCState, dram_mr, TYPE_MEMORY_REGION,
+ MemoryRegion *),
+ DEFINE_PROP_UINT64("ram-size", Ppc405SoCState, ram_size, 0),
+ DEFINE_PROP_END_OF_LIST(),
+};
+
+static void ppc405_soc_class_init(ObjectClass *oc, void *data)
+{
+ DeviceClass *dc = DEVICE_CLASS(oc);
+
+ dc->realize = ppc405_soc_realize;
+ dc->user_creatable = false;
+ device_class_set_props(dc, ppc405_soc_properties);
+}
+
+static const TypeInfo ppc405_types[] = {
+ {
+ .name = TYPE_PPC405_SOC,
+ .parent = TYPE_DEVICE,
+ .instance_size = sizeof(Ppc405SoCState),
+ .class_init = ppc405_soc_class_init,
+ }
+};
+
+DEFINE_TYPES(ppc405_types)
--
2.37.2
^ permalink raw reply related [flat|nested] 63+ messages in thread
* [PULL 35/60] ppc/ppc405: Start QOMification of the SoC
2022-08-31 18:49 [PULL 00/60] ppc queue Daniel Henrique Barboza
` (33 preceding siblings ...)
2022-08-31 18:50 ` [PULL 34/60] ppc/ppc405: Introduce a PPC405 SoC Daniel Henrique Barboza
@ 2022-08-31 18:50 ` Daniel Henrique Barboza
2022-08-31 18:50 ` [PULL 36/60] ppc/ppc405: QOM'ify CPU Daniel Henrique Barboza
` (25 subsequent siblings)
60 siblings, 0 replies; 63+ messages in thread
From: Daniel Henrique Barboza @ 2022-08-31 18:50 UTC (permalink / raw)
To: qemu-devel
Cc: qemu-ppc, danielhb413, peter.maydell, richard.henderson,
Cédric Le Goater, BALATON Zoltan
From: Cédric Le Goater <clg@kaod.org>
This moves all the code previously done in the ppc405ep_init() routine
under ppc405_soc_realize(). We can also adjust the number of banks now
that we have control on ppc4xx_sdram_init().
Signed-off-by: Cédric Le Goater <clg@kaod.org>
Reviewed-by: BALATON Zoltan <balaton@eik.bme.hu>
Message-Id: <20220809153904.485018-7-clg@kaod.org>
Signed-off-by: Daniel Henrique Barboza <danielhb413@gmail.com>
---
hw/ppc/ppc405.h | 12 ++--
hw/ppc/ppc405_boards.c | 12 ++--
hw/ppc/ppc405_uc.c | 124 ++++++++++++++++++++---------------------
3 files changed, 71 insertions(+), 77 deletions(-)
diff --git a/hw/ppc/ppc405.h b/hw/ppc/ppc405.h
index 66dc21cdfe..dc862bc861 100644
--- a/hw/ppc/ppc405.h
+++ b/hw/ppc/ppc405.h
@@ -73,9 +73,14 @@ struct Ppc405SoCState {
/* Public */
MemoryRegion ram_banks[2];
hwaddr ram_bases[2], ram_sizes[2];
+ bool do_dram_init;
MemoryRegion *dram_mr;
hwaddr ram_size;
+
+ uint32_t sysclk;
+ PowerPCCPU *cpu;
+ DeviceState *uic;
};
/* PowerPC 405 core */
@@ -84,11 +89,4 @@ ram_addr_t ppc405_set_bootinfo(CPUPPCState *env, ram_addr_t ram_size);
void ppc4xx_plb_init(CPUPPCState *env);
void ppc405_ebc_init(CPUPPCState *env);
-PowerPCCPU *ppc405ep_init(MemoryRegion *address_space_mem,
- MemoryRegion ram_memories[2],
- hwaddr ram_bases[2],
- hwaddr ram_sizes[2],
- uint32_t sysclk, DeviceState **uicdev,
- int do_init);
-
#endif /* PPC405_H */
diff --git a/hw/ppc/ppc405_boards.c b/hw/ppc/ppc405_boards.c
index f029d6f415..b93e85b5d9 100644
--- a/hw/ppc/ppc405_boards.c
+++ b/hw/ppc/ppc405_boards.c
@@ -237,9 +237,7 @@ static void ppc405_init(MachineState *machine)
Ppc405MachineState *ppc405 = PPC405_MACHINE(machine);
MachineClass *mc = MACHINE_GET_CLASS(machine);
const char *kernel_filename = machine->kernel_filename;
- PowerPCCPU *cpu;
MemoryRegion *sysmem = get_system_memory();
- DeviceState *uicdev;
if (machine->ram_size != mc->default_ram_size) {
char *sz = size_to_str(mc->default_ram_size);
@@ -254,12 +252,12 @@ static void ppc405_init(MachineState *machine)
machine->ram_size, &error_fatal);
object_property_set_link(OBJECT(&ppc405->soc), "dram",
OBJECT(machine->ram), &error_abort);
+ object_property_set_bool(OBJECT(&ppc405->soc), "dram-init",
+ kernel_filename != NULL, &error_abort);
+ object_property_set_uint(OBJECT(&ppc405->soc), "sys-clk", 33333333,
+ &error_abort);
qdev_realize(DEVICE(&ppc405->soc), NULL, &error_fatal);
- cpu = ppc405ep_init(sysmem, ppc405->soc.ram_banks, ppc405->soc.ram_bases,
- ppc405->soc.ram_sizes,
- 33333333, &uicdev, kernel_filename == NULL ? 0 : 1);
-
/* allocate and load BIOS */
if (machine->firmware) {
MemoryRegion *bios = g_new(MemoryRegion, 1);
@@ -315,7 +313,7 @@ static void ppc405_init(MachineState *machine)
/* Load ELF kernel and rootfs.cpio */
} else if (kernel_filename && !machine->firmware) {
- boot_from_kernel(machine, cpu);
+ boot_from_kernel(machine, ppc405->soc.cpu);
}
}
diff --git a/hw/ppc/ppc405_uc.c b/hw/ppc/ppc405_uc.c
index adadb3a0ae..c05ab60436 100644
--- a/hw/ppc/ppc405_uc.c
+++ b/hw/ppc/ppc405_uc.c
@@ -1432,121 +1432,118 @@ static void ppc405ep_cpc_init (CPUPPCState *env, clk_setup_t clk_setup[8],
#endif
}
-PowerPCCPU *ppc405ep_init(MemoryRegion *address_space_mem,
- MemoryRegion ram_memories[2],
- hwaddr ram_bases[2],
- hwaddr ram_sizes[2],
- uint32_t sysclk, DeviceState **uicdevp,
- int do_init)
+static void ppc405_soc_realize(DeviceState *dev, Error **errp)
{
+ Ppc405SoCState *s = PPC405_SOC(dev);
clk_setup_t clk_setup[PPC405EP_CLK_NB], tlb_clk_setup;
qemu_irq dma_irqs[4], gpt_irqs[5], mal_irqs[4];
- PowerPCCPU *cpu;
CPUPPCState *env;
- DeviceState *uicdev;
- SysBusDevice *uicsbd;
memset(clk_setup, 0, sizeof(clk_setup));
+
/* init CPUs */
- cpu = ppc4xx_init(POWERPC_CPU_TYPE_NAME("405ep"),
+ s->cpu = ppc4xx_init(POWERPC_CPU_TYPE_NAME("405ep"),
&clk_setup[PPC405EP_CPU_CLK],
- &tlb_clk_setup, sysclk);
- env = &cpu->env;
+ &tlb_clk_setup, s->sysclk);
+ env = &s->cpu->env;
clk_setup[PPC405EP_CPU_CLK].cb = tlb_clk_setup.cb;
clk_setup[PPC405EP_CPU_CLK].opaque = tlb_clk_setup.opaque;
- /* Internal devices init */
- /* Memory mapped devices registers */
+
+ /* CPU control */
+ ppc405ep_cpc_init(env, clk_setup, s->sysclk);
+
/* PLB arbitrer */
ppc4xx_plb_init(env);
+
/* PLB to OPB bridge */
ppc4xx_pob_init(env);
+
/* OBP arbitrer */
ppc4xx_opba_init(0xef600600);
+
/* Universal interrupt controller */
- uicdev = qdev_new(TYPE_PPC_UIC);
- uicsbd = SYS_BUS_DEVICE(uicdev);
+ s->uic = qdev_new(TYPE_PPC_UIC);
- object_property_set_link(OBJECT(uicdev), "cpu", OBJECT(cpu),
+ object_property_set_link(OBJECT(s->uic), "cpu", OBJECT(s->cpu),
&error_fatal);
- sysbus_realize_and_unref(uicsbd, &error_fatal);
-
- sysbus_connect_irq(uicsbd, PPCUIC_OUTPUT_INT,
- qdev_get_gpio_in(DEVICE(cpu), PPC40x_INPUT_INT));
- sysbus_connect_irq(uicsbd, PPCUIC_OUTPUT_CINT,
- qdev_get_gpio_in(DEVICE(cpu), PPC40x_INPUT_CINT));
+ if (!sysbus_realize(SYS_BUS_DEVICE(s->uic), errp)) {
+ return;
+ }
- *uicdevp = uicdev;
+ sysbus_connect_irq(SYS_BUS_DEVICE(s->uic), PPCUIC_OUTPUT_INT,
+ qdev_get_gpio_in(DEVICE(s->cpu), PPC40x_INPUT_INT));
+ sysbus_connect_irq(SYS_BUS_DEVICE(s->uic), PPCUIC_OUTPUT_CINT,
+ qdev_get_gpio_in(DEVICE(s->cpu), PPC40x_INPUT_CINT));
/* SDRAM controller */
/* XXX 405EP has no ECC interrupt */
- ppc4xx_sdram_init(env, qdev_get_gpio_in(uicdev, 17), 2, ram_memories,
- ram_bases, ram_sizes, do_init);
+ s->ram_bases[0] = 0;
+ s->ram_sizes[0] = s->ram_size;
+ memory_region_init_alias(&s->ram_banks[0], OBJECT(s),
+ "ppc405.sdram0", s->dram_mr,
+ s->ram_bases[0], s->ram_sizes[0]);
+
+ ppc4xx_sdram_init(env, qdev_get_gpio_in(s->uic, 17), 1,
+ s->ram_banks, s->ram_bases, s->ram_sizes,
+ s->do_dram_init);
+
/* External bus controller */
ppc405_ebc_init(env);
+
/* DMA controller */
- dma_irqs[0] = qdev_get_gpio_in(uicdev, 5);
- dma_irqs[1] = qdev_get_gpio_in(uicdev, 6);
- dma_irqs[2] = qdev_get_gpio_in(uicdev, 7);
- dma_irqs[3] = qdev_get_gpio_in(uicdev, 8);
+ dma_irqs[0] = qdev_get_gpio_in(s->uic, 5);
+ dma_irqs[1] = qdev_get_gpio_in(s->uic, 6);
+ dma_irqs[2] = qdev_get_gpio_in(s->uic, 7);
+ dma_irqs[3] = qdev_get_gpio_in(s->uic, 8);
ppc405_dma_init(env, dma_irqs);
- /* IIC controller */
+
+ /* I2C controller */
sysbus_create_simple(TYPE_PPC4xx_I2C, 0xef600500,
- qdev_get_gpio_in(uicdev, 2));
+ qdev_get_gpio_in(s->uic, 2));
/* GPIO */
ppc405_gpio_init(0xef600700);
+
/* Serial ports */
if (serial_hd(0) != NULL) {
- serial_mm_init(address_space_mem, 0xef600300, 0,
- qdev_get_gpio_in(uicdev, 0),
+ serial_mm_init(get_system_memory(), 0xef600300, 0,
+ qdev_get_gpio_in(s->uic, 0),
PPC_SERIAL_MM_BAUDBASE, serial_hd(0),
DEVICE_BIG_ENDIAN);
}
if (serial_hd(1) != NULL) {
- serial_mm_init(address_space_mem, 0xef600400, 0,
- qdev_get_gpio_in(uicdev, 1),
+ serial_mm_init(get_system_memory(), 0xef600400, 0,
+ qdev_get_gpio_in(s->uic, 1),
PPC_SERIAL_MM_BAUDBASE, serial_hd(1),
DEVICE_BIG_ENDIAN);
}
+
/* OCM */
ppc405_ocm_init(env);
+
/* GPT */
- gpt_irqs[0] = qdev_get_gpio_in(uicdev, 19);
- gpt_irqs[1] = qdev_get_gpio_in(uicdev, 20);
- gpt_irqs[2] = qdev_get_gpio_in(uicdev, 21);
- gpt_irqs[3] = qdev_get_gpio_in(uicdev, 22);
- gpt_irqs[4] = qdev_get_gpio_in(uicdev, 23);
+ gpt_irqs[0] = qdev_get_gpio_in(s->uic, 19);
+ gpt_irqs[1] = qdev_get_gpio_in(s->uic, 20);
+ gpt_irqs[2] = qdev_get_gpio_in(s->uic, 21);
+ gpt_irqs[3] = qdev_get_gpio_in(s->uic, 22);
+ gpt_irqs[4] = qdev_get_gpio_in(s->uic, 23);
ppc4xx_gpt_init(0xef600000, gpt_irqs);
- /* PCI */
- /* Uses UIC IRQs 3, 16, 18 */
+
/* MAL */
- mal_irqs[0] = qdev_get_gpio_in(uicdev, 11);
- mal_irqs[1] = qdev_get_gpio_in(uicdev, 12);
- mal_irqs[2] = qdev_get_gpio_in(uicdev, 13);
- mal_irqs[3] = qdev_get_gpio_in(uicdev, 14);
+ mal_irqs[0] = qdev_get_gpio_in(s->uic, 11);
+ mal_irqs[1] = qdev_get_gpio_in(s->uic, 12);
+ mal_irqs[2] = qdev_get_gpio_in(s->uic, 13);
+ mal_irqs[3] = qdev_get_gpio_in(s->uic, 14);
ppc4xx_mal_init(env, 4, 2, mal_irqs);
+
/* Ethernet */
/* Uses UIC IRQs 9, 15, 17 */
- /* CPU control */
- ppc405ep_cpc_init(env, clk_setup, sysclk);
-
- return cpu;
-}
-
-static void ppc405_soc_realize(DeviceState *dev, Error **errp)
-{
- Ppc405SoCState *s = PPC405_SOC(dev);
-
- /* Initialize only one bank */
- s->ram_bases[0] = 0;
- s->ram_sizes[0] = s->ram_size;
- memory_region_init_alias(&s->ram_banks[0], OBJECT(s),
- "ppc405.sdram0", s->dram_mr,
- s->ram_bases[0], s->ram_sizes[0]);
}
static Property ppc405_soc_properties[] = {
DEFINE_PROP_LINK("dram", Ppc405SoCState, dram_mr, TYPE_MEMORY_REGION,
MemoryRegion *),
+ DEFINE_PROP_UINT32("sys-clk", Ppc405SoCState, sysclk, 0),
+ DEFINE_PROP_BOOL("dram-init", Ppc405SoCState, do_dram_init, 0),
DEFINE_PROP_UINT64("ram-size", Ppc405SoCState, ram_size, 0),
DEFINE_PROP_END_OF_LIST(),
};
@@ -1556,6 +1553,7 @@ static void ppc405_soc_class_init(ObjectClass *oc, void *data)
DeviceClass *dc = DEVICE_CLASS(oc);
dc->realize = ppc405_soc_realize;
+ /* Reason: only works as part of a ppc405 board/machine */
dc->user_creatable = false;
device_class_set_props(dc, ppc405_soc_properties);
}
--
2.37.2
^ permalink raw reply related [flat|nested] 63+ messages in thread
* [PULL 36/60] ppc/ppc405: QOM'ify CPU
2022-08-31 18:49 [PULL 00/60] ppc queue Daniel Henrique Barboza
` (34 preceding siblings ...)
2022-08-31 18:50 ` [PULL 35/60] ppc/ppc405: Start QOMification of the SoC Daniel Henrique Barboza
@ 2022-08-31 18:50 ` Daniel Henrique Barboza
2022-08-31 18:50 ` [PULL 37/60] ppc/ppc4xx: Introduce a DCR device model Daniel Henrique Barboza
` (24 subsequent siblings)
60 siblings, 0 replies; 63+ messages in thread
From: Daniel Henrique Barboza @ 2022-08-31 18:50 UTC (permalink / raw)
To: qemu-devel
Cc: qemu-ppc, danielhb413, peter.maydell, richard.henderson,
Cédric Le Goater, BALATON Zoltan
From: Cédric Le Goater <clg@kaod.org>
Drop the use of ppc4xx_init() and duplicate a bit of code related to
clocks in the SoC realize routine. We will clean that up in the
following patches.
ppc_dcr_init() simply allocates default DCR handlers for the CPU. Maybe
this could be done in model initializer of the CPU families needing it.
Reviewed-by: Daniel Henrique Barboza <danielhb413@gmail.com>
Signed-off-by: Cédric Le Goater <clg@kaod.org>
Reviewed-by: BALATON Zoltan <balaton@eik.bme.hu>
Message-Id: <20220809153904.485018-8-clg@kaod.org>
Signed-off-by: Daniel Henrique Barboza <danielhb413@gmail.com>
---
hw/ppc/ppc405.h | 2 +-
hw/ppc/ppc405_boards.c | 2 +-
hw/ppc/ppc405_uc.c | 40 ++++++++++++++++++++++++++++++----------
hw/ppc/ppc4xx_devs.c | 32 --------------------------------
include/hw/ppc/ppc4xx.h | 5 -----
5 files changed, 32 insertions(+), 49 deletions(-)
diff --git a/hw/ppc/ppc405.h b/hw/ppc/ppc405.h
index dc862bc861..8cc76cc8b3 100644
--- a/hw/ppc/ppc405.h
+++ b/hw/ppc/ppc405.h
@@ -79,7 +79,7 @@ struct Ppc405SoCState {
hwaddr ram_size;
uint32_t sysclk;
- PowerPCCPU *cpu;
+ PowerPCCPU cpu;
DeviceState *uic;
};
diff --git a/hw/ppc/ppc405_boards.c b/hw/ppc/ppc405_boards.c
index b93e85b5d9..3677793adc 100644
--- a/hw/ppc/ppc405_boards.c
+++ b/hw/ppc/ppc405_boards.c
@@ -313,7 +313,7 @@ static void ppc405_init(MachineState *machine)
/* Load ELF kernel and rootfs.cpio */
} else if (kernel_filename && !machine->firmware) {
- boot_from_kernel(machine, ppc405->soc.cpu);
+ boot_from_kernel(machine, &ppc405->soc.cpu);
}
}
diff --git a/hw/ppc/ppc405_uc.c b/hw/ppc/ppc405_uc.c
index c05ab60436..14a525b2eb 100644
--- a/hw/ppc/ppc405_uc.c
+++ b/hw/ppc/ppc405_uc.c
@@ -1432,22 +1432,41 @@ static void ppc405ep_cpc_init (CPUPPCState *env, clk_setup_t clk_setup[8],
#endif
}
+static void ppc405_soc_instance_init(Object *obj)
+{
+ Ppc405SoCState *s = PPC405_SOC(obj);
+
+ object_initialize_child(obj, "cpu", &s->cpu,
+ POWERPC_CPU_TYPE_NAME("405ep"));
+}
+
+static void ppc405_reset(void *opaque)
+{
+ cpu_reset(CPU(opaque));
+}
+
static void ppc405_soc_realize(DeviceState *dev, Error **errp)
{
Ppc405SoCState *s = PPC405_SOC(dev);
- clk_setup_t clk_setup[PPC405EP_CLK_NB], tlb_clk_setup;
+ clk_setup_t clk_setup[PPC405EP_CLK_NB];
qemu_irq dma_irqs[4], gpt_irqs[5], mal_irqs[4];
CPUPPCState *env;
memset(clk_setup, 0, sizeof(clk_setup));
/* init CPUs */
- s->cpu = ppc4xx_init(POWERPC_CPU_TYPE_NAME("405ep"),
- &clk_setup[PPC405EP_CPU_CLK],
- &tlb_clk_setup, s->sysclk);
- env = &s->cpu->env;
- clk_setup[PPC405EP_CPU_CLK].cb = tlb_clk_setup.cb;
- clk_setup[PPC405EP_CPU_CLK].opaque = tlb_clk_setup.opaque;
+ if (!qdev_realize(DEVICE(&s->cpu), NULL, errp)) {
+ return;
+ }
+ qemu_register_reset(ppc405_reset, &s->cpu);
+
+ env = &s->cpu.env;
+
+ clk_setup[PPC405EP_CPU_CLK].cb =
+ ppc_40x_timers_init(env, s->sysclk, PPC_INTERRUPT_PIT);
+ clk_setup[PPC405EP_CPU_CLK].opaque = env;
+
+ ppc_dcr_init(env, NULL, NULL);
/* CPU control */
ppc405ep_cpc_init(env, clk_setup, s->sysclk);
@@ -1464,16 +1483,16 @@ static void ppc405_soc_realize(DeviceState *dev, Error **errp)
/* Universal interrupt controller */
s->uic = qdev_new(TYPE_PPC_UIC);
- object_property_set_link(OBJECT(s->uic), "cpu", OBJECT(s->cpu),
+ object_property_set_link(OBJECT(s->uic), "cpu", OBJECT(&s->cpu),
&error_fatal);
if (!sysbus_realize(SYS_BUS_DEVICE(s->uic), errp)) {
return;
}
sysbus_connect_irq(SYS_BUS_DEVICE(s->uic), PPCUIC_OUTPUT_INT,
- qdev_get_gpio_in(DEVICE(s->cpu), PPC40x_INPUT_INT));
+ qdev_get_gpio_in(DEVICE(&s->cpu), PPC40x_INPUT_INT));
sysbus_connect_irq(SYS_BUS_DEVICE(s->uic), PPCUIC_OUTPUT_CINT,
- qdev_get_gpio_in(DEVICE(s->cpu), PPC40x_INPUT_CINT));
+ qdev_get_gpio_in(DEVICE(&s->cpu), PPC40x_INPUT_CINT));
/* SDRAM controller */
/* XXX 405EP has no ECC interrupt */
@@ -1563,6 +1582,7 @@ static const TypeInfo ppc405_types[] = {
.name = TYPE_PPC405_SOC,
.parent = TYPE_DEVICE,
.instance_size = sizeof(Ppc405SoCState),
+ .instance_init = ppc405_soc_instance_init,
.class_init = ppc405_soc_class_init,
}
};
diff --git a/hw/ppc/ppc4xx_devs.c b/hw/ppc/ppc4xx_devs.c
index 737c0896b4..069b511951 100644
--- a/hw/ppc/ppc4xx_devs.c
+++ b/hw/ppc/ppc4xx_devs.c
@@ -37,38 +37,6 @@
#include "qapi/error.h"
#include "trace.h"
-static void ppc4xx_reset(void *opaque)
-{
- PowerPCCPU *cpu = opaque;
-
- cpu_reset(CPU(cpu));
-}
-
-/*****************************************************************************/
-/* Generic PowerPC 4xx processor instantiation */
-PowerPCCPU *ppc4xx_init(const char *cpu_type,
- clk_setup_t *cpu_clk, clk_setup_t *tb_clk,
- uint32_t sysclk)
-{
- PowerPCCPU *cpu;
- CPUPPCState *env;
-
- /* init CPUs */
- cpu = POWERPC_CPU(cpu_create(cpu_type));
- env = &cpu->env;
-
- cpu_clk->cb = NULL; /* We don't care about CPU clock frequency changes */
- cpu_clk->opaque = env;
- /* Set time-base frequency to sysclk */
- tb_clk->cb = ppc_40x_timers_init(env, sysclk, PPC_INTERRUPT_PIT);
- tb_clk->opaque = env;
- ppc_dcr_init(env, NULL, NULL);
- /* Register qemu callbacks */
- qemu_register_reset(ppc4xx_reset, cpu);
-
- return cpu;
-}
-
/*****************************************************************************/
/* SDRAM controller */
typedef struct ppc4xx_sdram_t ppc4xx_sdram_t;
diff --git a/include/hw/ppc/ppc4xx.h b/include/hw/ppc/ppc4xx.h
index 980f964b5a..591e2421a3 100644
--- a/include/hw/ppc/ppc4xx.h
+++ b/include/hw/ppc/ppc4xx.h
@@ -28,11 +28,6 @@
#include "hw/ppc/ppc.h"
#include "exec/memory.h"
-/* PowerPC 4xx core initialization */
-PowerPCCPU *ppc4xx_init(const char *cpu_model,
- clk_setup_t *cpu_clk, clk_setup_t *tb_clk,
- uint32_t sysclk);
-
void ppc4xx_sdram_banks(MemoryRegion *ram, int nr_banks,
MemoryRegion ram_memories[],
hwaddr ram_bases[], hwaddr ram_sizes[],
--
2.37.2
^ permalink raw reply related [flat|nested] 63+ messages in thread
* [PULL 37/60] ppc/ppc4xx: Introduce a DCR device model
2022-08-31 18:49 [PULL 00/60] ppc queue Daniel Henrique Barboza
` (35 preceding siblings ...)
2022-08-31 18:50 ` [PULL 36/60] ppc/ppc405: QOM'ify CPU Daniel Henrique Barboza
@ 2022-08-31 18:50 ` Daniel Henrique Barboza
2022-08-31 18:50 ` [PULL 38/60] ppc/ppc405: QOM'ify CPC Daniel Henrique Barboza
` (23 subsequent siblings)
60 siblings, 0 replies; 63+ messages in thread
From: Daniel Henrique Barboza @ 2022-08-31 18:50 UTC (permalink / raw)
To: qemu-devel
Cc: qemu-ppc, danielhb413, peter.maydell, richard.henderson,
Cédric Le Goater
From: Cédric Le Goater <clg@kaod.org>
The Device Control Registers (DCR) of on-SoC devices are accessed by
software through the use of the mtdcr and mfdcr instructions. These
are converted in transactions on a side band bus, the DCR bus, which
connects the on-SoC devices to the CPU.
Ideally, we should model these accesses with a DCR namespace and DCR
memory regions but today the DCR handlers are installed in a DCR table
under the CPU. Instead, introduce a little device model wrapper to hold
a CPU link and handle registration of DCR handlers.
The DCR device inherits from SysBus because most of these devices also
have MMIO regions and/or IRQs. Being a SysBusDevice makes things easier
to install the device model in the overall SoC.
Reviewed-by: Daniel Henrique Barboza <danielhb413@gmail.com>
Signed-off-by: Cédric Le Goater <clg@kaod.org>
[balaton: Explicit opaque parameter for dcr callbacks]
Signed-off-by: BALATON Zoltan <balaton@eik.bme.hu>
Message-Id: <9b21bdf55e0a728f093bad299e030d98f302ded0.1660746880.git.balaton@eik.bme.hu>
Signed-off-by: Daniel Henrique Barboza <danielhb413@gmail.com>
---
hw/ppc/ppc4xx_devs.c | 41 +++++++++++++++++++++++++++++++++++++++++
include/hw/ppc/ppc4xx.h | 17 +++++++++++++++++
2 files changed, 58 insertions(+)
diff --git a/hw/ppc/ppc4xx_devs.c b/hw/ppc/ppc4xx_devs.c
index 069b511951..f4d7ae9567 100644
--- a/hw/ppc/ppc4xx_devs.c
+++ b/hw/ppc/ppc4xx_devs.c
@@ -664,3 +664,44 @@ void ppc4xx_mal_init(CPUPPCState *env, uint8_t txcnum, uint8_t rxcnum,
mal, &dcr_read_mal, &dcr_write_mal);
}
}
+
+/* PPC4xx_DCR_DEVICE */
+
+void ppc4xx_dcr_register(Ppc4xxDcrDeviceState *dev, int dcrn, void *opaque,
+ dcr_read_cb dcr_read, dcr_write_cb dcr_write)
+{
+ assert(dev->cpu);
+ ppc_dcr_register(&dev->cpu->env, dcrn, opaque, dcr_read, dcr_write);
+}
+
+bool ppc4xx_dcr_realize(Ppc4xxDcrDeviceState *dev, PowerPCCPU *cpu,
+ Error **errp)
+{
+ object_property_set_link(OBJECT(dev), "cpu", OBJECT(cpu), &error_abort);
+ return sysbus_realize(SYS_BUS_DEVICE(dev), errp);
+}
+
+static Property ppc4xx_dcr_properties[] = {
+ DEFINE_PROP_LINK("cpu", Ppc4xxDcrDeviceState, cpu, TYPE_POWERPC_CPU,
+ PowerPCCPU *),
+ DEFINE_PROP_END_OF_LIST(),
+};
+
+static void ppc4xx_dcr_class_init(ObjectClass *oc, void *data)
+{
+ DeviceClass *dc = DEVICE_CLASS(oc);
+
+ device_class_set_props(dc, ppc4xx_dcr_properties);
+}
+
+static const TypeInfo ppc4xx_types[] = {
+ {
+ .name = TYPE_PPC4xx_DCR_DEVICE,
+ .parent = TYPE_SYS_BUS_DEVICE,
+ .instance_size = sizeof(Ppc4xxDcrDeviceState),
+ .class_init = ppc4xx_dcr_class_init,
+ .abstract = true,
+ }
+};
+
+DEFINE_TYPES(ppc4xx_types)
diff --git a/include/hw/ppc/ppc4xx.h b/include/hw/ppc/ppc4xx.h
index 591e2421a3..a537a5567b 100644
--- a/include/hw/ppc/ppc4xx.h
+++ b/include/hw/ppc/ppc4xx.h
@@ -27,6 +27,7 @@
#include "hw/ppc/ppc.h"
#include "exec/memory.h"
+#include "hw/sysbus.h"
void ppc4xx_sdram_banks(MemoryRegion *ram, int nr_banks,
MemoryRegion ram_memories[],
@@ -44,4 +45,20 @@ void ppc4xx_mal_init(CPUPPCState *env, uint8_t txcnum, uint8_t rxcnum,
#define TYPE_PPC4xx_PCI_HOST_BRIDGE "ppc4xx-pcihost"
+/*
+ * Generic DCR device
+ */
+#define TYPE_PPC4xx_DCR_DEVICE "ppc4xx-dcr-device"
+OBJECT_DECLARE_SIMPLE_TYPE(Ppc4xxDcrDeviceState, PPC4xx_DCR_DEVICE);
+struct Ppc4xxDcrDeviceState {
+ SysBusDevice parent_obj;
+
+ PowerPCCPU *cpu;
+};
+
+void ppc4xx_dcr_register(Ppc4xxDcrDeviceState *dev, int dcrn, void *opaque,
+ dcr_read_cb dcr_read, dcr_write_cb dcr_write);
+bool ppc4xx_dcr_realize(Ppc4xxDcrDeviceState *dev, PowerPCCPU *cpu,
+ Error **errp);
+
#endif /* PPC4XX_H */
--
2.37.2
^ permalink raw reply related [flat|nested] 63+ messages in thread
* [PULL 38/60] ppc/ppc405: QOM'ify CPC
2022-08-31 18:49 [PULL 00/60] ppc queue Daniel Henrique Barboza
` (36 preceding siblings ...)
2022-08-31 18:50 ` [PULL 37/60] ppc/ppc4xx: Introduce a DCR device model Daniel Henrique Barboza
@ 2022-08-31 18:50 ` Daniel Henrique Barboza
2022-08-31 18:50 ` [PULL 39/60] ppc/ppc405: QOM'ify GPT Daniel Henrique Barboza
` (22 subsequent siblings)
60 siblings, 0 replies; 63+ messages in thread
From: Daniel Henrique Barboza @ 2022-08-31 18:50 UTC (permalink / raw)
To: qemu-devel
Cc: qemu-ppc, danielhb413, peter.maydell, richard.henderson,
Cédric Le Goater
From: Cédric Le Goater <clg@kaod.org>
The CPC controller is currently modeled as a DCR device.
Now that all clock settings are handled at the CPC level, change the
SoC "sys-clk" property to be an alias on the same property in the CPC
model.
Reviewed-by: Daniel Henrique Barboza <danielhb413@gmail.com>
Signed-off-by: Cédric Le Goater <clg@kaod.org>
[balaton: ppc4xx_dcr_register changes]
Signed-off-by: BALATON Zoltan <balaton@eik.bme.hu>
Message-Id: <23393cb91a2c6c560a4461b3e9d1baa48ae28f74.1660746880.git.balaton@eik.bme.hu>
Signed-off-by: Daniel Henrique Barboza <danielhb413@gmail.com>
---
hw/ppc/ppc405.h | 35 ++++++++++-
hw/ppc/ppc405_uc.c | 141 ++++++++++++++++++++-------------------------
2 files changed, 95 insertions(+), 81 deletions(-)
diff --git a/hw/ppc/ppc405.h b/hw/ppc/ppc405.h
index 8cc76cc8b3..2ba829988d 100644
--- a/hw/ppc/ppc405.h
+++ b/hw/ppc/ppc405.h
@@ -63,6 +63,39 @@ struct ppc4xx_bd_info_t {
uint32_t bi_iic_fast[2];
};
+#define TYPE_PPC405_CPC "ppc405-cpc"
+OBJECT_DECLARE_SIMPLE_TYPE(Ppc405CpcState, PPC405_CPC);
+
+enum {
+ PPC405EP_CPU_CLK = 0,
+ PPC405EP_PLB_CLK = 1,
+ PPC405EP_OPB_CLK = 2,
+ PPC405EP_EBC_CLK = 3,
+ PPC405EP_MAL_CLK = 4,
+ PPC405EP_PCI_CLK = 5,
+ PPC405EP_UART0_CLK = 6,
+ PPC405EP_UART1_CLK = 7,
+ PPC405EP_CLK_NB = 8,
+};
+
+struct Ppc405CpcState {
+ Ppc4xxDcrDeviceState parent_obj;
+
+ uint32_t sysclk;
+ clk_setup_t clk_setup[PPC405EP_CLK_NB];
+ uint32_t boot;
+ uint32_t epctl;
+ uint32_t pllmr[2];
+ uint32_t ucr;
+ uint32_t srr;
+ uint32_t jtagid;
+ uint32_t pci;
+ /* Clock and power management */
+ uint32_t er;
+ uint32_t fr;
+ uint32_t sr;
+};
+
#define TYPE_PPC405_SOC "ppc405-soc"
OBJECT_DECLARE_SIMPLE_TYPE(Ppc405SoCState, PPC405_SOC);
@@ -78,9 +111,9 @@ struct Ppc405SoCState {
MemoryRegion *dram_mr;
hwaddr ram_size;
- uint32_t sysclk;
PowerPCCPU cpu;
DeviceState *uic;
+ Ppc405CpcState cpc;
};
/* PowerPC 405 core */
diff --git a/hw/ppc/ppc405_uc.c b/hw/ppc/ppc405_uc.c
index 14a525b2eb..ec83c292a5 100644
--- a/hw/ppc/ppc405_uc.c
+++ b/hw/ppc/ppc405_uc.c
@@ -1178,36 +1178,7 @@ enum {
#endif
};
-enum {
- PPC405EP_CPU_CLK = 0,
- PPC405EP_PLB_CLK = 1,
- PPC405EP_OPB_CLK = 2,
- PPC405EP_EBC_CLK = 3,
- PPC405EP_MAL_CLK = 4,
- PPC405EP_PCI_CLK = 5,
- PPC405EP_UART0_CLK = 6,
- PPC405EP_UART1_CLK = 7,
- PPC405EP_CLK_NB = 8,
-};
-
-typedef struct ppc405ep_cpc_t ppc405ep_cpc_t;
-struct ppc405ep_cpc_t {
- uint32_t sysclk;
- clk_setup_t clk_setup[PPC405EP_CLK_NB];
- uint32_t boot;
- uint32_t epctl;
- uint32_t pllmr[2];
- uint32_t ucr;
- uint32_t srr;
- uint32_t jtagid;
- uint32_t pci;
- /* Clock and power management */
- uint32_t er;
- uint32_t fr;
- uint32_t sr;
-};
-
-static void ppc405ep_compute_clocks (ppc405ep_cpc_t *cpc)
+static void ppc405ep_compute_clocks(Ppc405CpcState *cpc)
{
uint32_t CPU_clk, PLB_clk, OPB_clk, EBC_clk, MAL_clk, PCI_clk;
uint32_t UART0_clk, UART1_clk;
@@ -1300,12 +1271,11 @@ static void ppc405ep_compute_clocks (ppc405ep_cpc_t *cpc)
clk_setup(&cpc->clk_setup[PPC405EP_UART1_CLK], UART1_clk);
}
-static uint32_t dcr_read_epcpc (void *opaque, int dcrn)
+static uint32_t dcr_read_epcpc(void *opaque, int dcrn)
{
- ppc405ep_cpc_t *cpc;
+ Ppc405CpcState *cpc = opaque;
uint32_t ret;
- cpc = opaque;
switch (dcrn) {
case PPC405EP_CPC0_BOOT:
ret = cpc->boot;
@@ -1340,11 +1310,10 @@ static uint32_t dcr_read_epcpc (void *opaque, int dcrn)
return ret;
}
-static void dcr_write_epcpc (void *opaque, int dcrn, uint32_t val)
+static void dcr_write_epcpc(void *opaque, int dcrn, uint32_t val)
{
- ppc405ep_cpc_t *cpc;
+ Ppc405CpcState *cpc = opaque;
- cpc = opaque;
switch (dcrn) {
case PPC405EP_CPC0_BOOT:
/* Read-only register */
@@ -1377,9 +1346,9 @@ static void dcr_write_epcpc (void *opaque, int dcrn, uint32_t val)
}
}
-static void ppc405ep_cpc_reset (void *opaque)
+static void ppc405_cpc_reset(DeviceState *dev)
{
- ppc405ep_cpc_t *cpc = opaque;
+ Ppc405CpcState *cpc = PPC405_CPC(dev);
cpc->boot = 0x00000010; /* Boot from PCI - IIC EEPROM disabled */
cpc->epctl = 0x00000000;
@@ -1391,53 +1360,66 @@ static void ppc405ep_cpc_reset (void *opaque)
cpc->er = 0x00000000;
cpc->fr = 0x00000000;
cpc->sr = 0x00000000;
+ cpc->jtagid = 0x20267049;
ppc405ep_compute_clocks(cpc);
}
/* XXX: sysclk should be between 25 and 100 MHz */
-static void ppc405ep_cpc_init (CPUPPCState *env, clk_setup_t clk_setup[8],
- uint32_t sysclk)
+static void ppc405_cpc_realize(DeviceState *dev, Error **errp)
{
- ppc405ep_cpc_t *cpc;
+ Ppc405CpcState *cpc = PPC405_CPC(dev);
+ Ppc4xxDcrDeviceState *dcr = PPC4xx_DCR_DEVICE(dev);
+
+ assert(dcr->cpu);
+ cpc->clk_setup[PPC405EP_CPU_CLK].cb =
+ ppc_40x_timers_init(&dcr->cpu->env, cpc->sysclk, PPC_INTERRUPT_PIT);
+ cpc->clk_setup[PPC405EP_CPU_CLK].opaque = &dcr->cpu->env;
+
+ ppc4xx_dcr_register(dcr, PPC405EP_CPC0_BOOT, cpc,
+ &dcr_read_epcpc, &dcr_write_epcpc);
+ ppc4xx_dcr_register(dcr, PPC405EP_CPC0_EPCTL, cpc,
+ &dcr_read_epcpc, &dcr_write_epcpc);
+ ppc4xx_dcr_register(dcr, PPC405EP_CPC0_PLLMR0, cpc,
+ &dcr_read_epcpc, &dcr_write_epcpc);
+ ppc4xx_dcr_register(dcr, PPC405EP_CPC0_PLLMR1, cpc,
+ &dcr_read_epcpc, &dcr_write_epcpc);
+ ppc4xx_dcr_register(dcr, PPC405EP_CPC0_UCR, cpc,
+ &dcr_read_epcpc, &dcr_write_epcpc);
+ ppc4xx_dcr_register(dcr, PPC405EP_CPC0_SRR, cpc,
+ &dcr_read_epcpc, &dcr_write_epcpc);
+ ppc4xx_dcr_register(dcr, PPC405EP_CPC0_JTAGID, cpc,
+ &dcr_read_epcpc, &dcr_write_epcpc);
+ ppc4xx_dcr_register(dcr, PPC405EP_CPC0_PCI, cpc,
+ &dcr_read_epcpc, &dcr_write_epcpc);
+}
- cpc = g_new0(ppc405ep_cpc_t, 1);
- memcpy(cpc->clk_setup, clk_setup,
- PPC405EP_CLK_NB * sizeof(clk_setup_t));
- cpc->jtagid = 0x20267049;
- cpc->sysclk = sysclk;
- qemu_register_reset(&ppc405ep_cpc_reset, cpc);
- ppc_dcr_register(env, PPC405EP_CPC0_BOOT, cpc,
- &dcr_read_epcpc, &dcr_write_epcpc);
- ppc_dcr_register(env, PPC405EP_CPC0_EPCTL, cpc,
- &dcr_read_epcpc, &dcr_write_epcpc);
- ppc_dcr_register(env, PPC405EP_CPC0_PLLMR0, cpc,
- &dcr_read_epcpc, &dcr_write_epcpc);
- ppc_dcr_register(env, PPC405EP_CPC0_PLLMR1, cpc,
- &dcr_read_epcpc, &dcr_write_epcpc);
- ppc_dcr_register(env, PPC405EP_CPC0_UCR, cpc,
- &dcr_read_epcpc, &dcr_write_epcpc);
- ppc_dcr_register(env, PPC405EP_CPC0_SRR, cpc,
- &dcr_read_epcpc, &dcr_write_epcpc);
- ppc_dcr_register(env, PPC405EP_CPC0_JTAGID, cpc,
- &dcr_read_epcpc, &dcr_write_epcpc);
- ppc_dcr_register(env, PPC405EP_CPC0_PCI, cpc,
- &dcr_read_epcpc, &dcr_write_epcpc);
-#if 0
- ppc_dcr_register(env, PPC405EP_CPC0_ER, cpc,
- &dcr_read_epcpc, &dcr_write_epcpc);
- ppc_dcr_register(env, PPC405EP_CPC0_FR, cpc,
- &dcr_read_epcpc, &dcr_write_epcpc);
- ppc_dcr_register(env, PPC405EP_CPC0_SR, cpc,
- &dcr_read_epcpc, &dcr_write_epcpc);
-#endif
+static Property ppc405_cpc_properties[] = {
+ DEFINE_PROP_UINT32("sys-clk", Ppc405CpcState, sysclk, 0),
+ DEFINE_PROP_END_OF_LIST(),
+};
+
+static void ppc405_cpc_class_init(ObjectClass *oc, void *data)
+{
+ DeviceClass *dc = DEVICE_CLASS(oc);
+
+ dc->realize = ppc405_cpc_realize;
+ dc->reset = ppc405_cpc_reset;
+ /* Reason: only works as function of a ppc4xx SoC */
+ dc->user_creatable = false;
+ device_class_set_props(dc, ppc405_cpc_properties);
}
+/* PPC405_SOC */
+
static void ppc405_soc_instance_init(Object *obj)
{
Ppc405SoCState *s = PPC405_SOC(obj);
object_initialize_child(obj, "cpu", &s->cpu,
POWERPC_CPU_TYPE_NAME("405ep"));
+
+ object_initialize_child(obj, "cpc", &s->cpc, TYPE_PPC405_CPC);
+ object_property_add_alias(obj, "sys-clk", OBJECT(&s->cpc), "sys-clk");
}
static void ppc405_reset(void *opaque)
@@ -1448,12 +1430,9 @@ static void ppc405_reset(void *opaque)
static void ppc405_soc_realize(DeviceState *dev, Error **errp)
{
Ppc405SoCState *s = PPC405_SOC(dev);
- clk_setup_t clk_setup[PPC405EP_CLK_NB];
qemu_irq dma_irqs[4], gpt_irqs[5], mal_irqs[4];
CPUPPCState *env;
- memset(clk_setup, 0, sizeof(clk_setup));
-
/* init CPUs */
if (!qdev_realize(DEVICE(&s->cpu), NULL, errp)) {
return;
@@ -1462,14 +1441,12 @@ static void ppc405_soc_realize(DeviceState *dev, Error **errp)
env = &s->cpu.env;
- clk_setup[PPC405EP_CPU_CLK].cb =
- ppc_40x_timers_init(env, s->sysclk, PPC_INTERRUPT_PIT);
- clk_setup[PPC405EP_CPU_CLK].opaque = env;
-
ppc_dcr_init(env, NULL, NULL);
/* CPU control */
- ppc405ep_cpc_init(env, clk_setup, s->sysclk);
+ if (!ppc4xx_dcr_realize(PPC4xx_DCR_DEVICE(&s->cpc), &s->cpu, errp)) {
+ return;
+ }
/* PLB arbitrer */
ppc4xx_plb_init(env);
@@ -1561,7 +1538,6 @@ static void ppc405_soc_realize(DeviceState *dev, Error **errp)
static Property ppc405_soc_properties[] = {
DEFINE_PROP_LINK("dram", Ppc405SoCState, dram_mr, TYPE_MEMORY_REGION,
MemoryRegion *),
- DEFINE_PROP_UINT32("sys-clk", Ppc405SoCState, sysclk, 0),
DEFINE_PROP_BOOL("dram-init", Ppc405SoCState, do_dram_init, 0),
DEFINE_PROP_UINT64("ram-size", Ppc405SoCState, ram_size, 0),
DEFINE_PROP_END_OF_LIST(),
@@ -1579,6 +1555,11 @@ static void ppc405_soc_class_init(ObjectClass *oc, void *data)
static const TypeInfo ppc405_types[] = {
{
+ .name = TYPE_PPC405_CPC,
+ .parent = TYPE_PPC4xx_DCR_DEVICE,
+ .instance_size = sizeof(Ppc405CpcState),
+ .class_init = ppc405_cpc_class_init,
+ }, {
.name = TYPE_PPC405_SOC,
.parent = TYPE_DEVICE,
.instance_size = sizeof(Ppc405SoCState),
--
2.37.2
^ permalink raw reply related [flat|nested] 63+ messages in thread
* [PULL 39/60] ppc/ppc405: QOM'ify GPT
2022-08-31 18:49 [PULL 00/60] ppc queue Daniel Henrique Barboza
` (37 preceding siblings ...)
2022-08-31 18:50 ` [PULL 38/60] ppc/ppc405: QOM'ify CPC Daniel Henrique Barboza
@ 2022-08-31 18:50 ` Daniel Henrique Barboza
2022-08-31 18:50 ` [PULL 40/60] ppc/ppc405: QOM'ify OCM Daniel Henrique Barboza
` (21 subsequent siblings)
60 siblings, 0 replies; 63+ messages in thread
From: Daniel Henrique Barboza @ 2022-08-31 18:50 UTC (permalink / raw)
To: qemu-devel
Cc: qemu-ppc, danielhb413, peter.maydell, richard.henderson,
Cédric Le Goater
From: Cédric Le Goater <clg@kaod.org>
The GPT controller is currently modeled as a SysBus device with a
unique memory region, a couple of IRQs and a timer.
Reviewed-by: Daniel Henrique Barboza <danielhb413@gmail.com>
Signed-off-by: Cédric Le Goater <clg@kaod.org>
[balaton: ppc4xx_dcr_register changes, add finalize method]
Signed-off-by: BALATON Zoltan <balaton@eik.bme.hu>
Message-Id: <8950ab26e78173f94ba65bc61bcfd0631de1fe61.1660746880.git.balaton@eik.bme.hu>
[danielhb: check if timer != NULL in ppc405_gpt_finalize()]
Signed-off-by: Daniel Henrique Barboza <danielhb413@gmail.com>
---
hw/ppc/ppc405.h | 22 ++++++++++
hw/ppc/ppc405_uc.c | 102 ++++++++++++++++++++++++--------------------
hw/ppc/trace-events | 1 -
3 files changed, 78 insertions(+), 47 deletions(-)
diff --git a/hw/ppc/ppc405.h b/hw/ppc/ppc405.h
index 2ba829988d..bcf55e4f6b 100644
--- a/hw/ppc/ppc405.h
+++ b/hw/ppc/ppc405.h
@@ -63,6 +63,27 @@ struct ppc4xx_bd_info_t {
uint32_t bi_iic_fast[2];
};
+/* General purpose timers */
+#define TYPE_PPC405_GPT "ppc405-gpt"
+OBJECT_DECLARE_SIMPLE_TYPE(Ppc405GptState, PPC405_GPT);
+struct Ppc405GptState {
+ SysBusDevice parent_obj;
+
+ MemoryRegion iomem;
+
+ int64_t tb_offset;
+ uint32_t tb_freq;
+ QEMUTimer *timer;
+ qemu_irq irqs[5];
+ uint32_t oe;
+ uint32_t ol;
+ uint32_t im;
+ uint32_t is;
+ uint32_t ie;
+ uint32_t comp[5];
+ uint32_t mask[5];
+};
+
#define TYPE_PPC405_CPC "ppc405-cpc"
OBJECT_DECLARE_SIMPLE_TYPE(Ppc405CpcState, PPC405_CPC);
@@ -114,6 +135,7 @@ struct Ppc405SoCState {
PowerPCCPU cpu;
DeviceState *uic;
Ppc405CpcState cpc;
+ Ppc405GptState gpt;
};
/* PowerPC 405 core */
diff --git a/hw/ppc/ppc405_uc.c b/hw/ppc/ppc405_uc.c
index ec83c292a5..1994801abe 100644
--- a/hw/ppc/ppc405_uc.c
+++ b/hw/ppc/ppc405_uc.c
@@ -926,34 +926,18 @@ static void ppc405_ocm_init(CPUPPCState *env)
/*****************************************************************************/
/* General purpose timers */
-typedef struct ppc4xx_gpt_t ppc4xx_gpt_t;
-struct ppc4xx_gpt_t {
- MemoryRegion iomem;
- int64_t tb_offset;
- uint32_t tb_freq;
- QEMUTimer *timer;
- qemu_irq irqs[5];
- uint32_t oe;
- uint32_t ol;
- uint32_t im;
- uint32_t is;
- uint32_t ie;
- uint32_t comp[5];
- uint32_t mask[5];
-};
-
-static int ppc4xx_gpt_compare (ppc4xx_gpt_t *gpt, int n)
+static int ppc4xx_gpt_compare(Ppc405GptState *gpt, int n)
{
/* XXX: TODO */
return 0;
}
-static void ppc4xx_gpt_set_output (ppc4xx_gpt_t *gpt, int n, int level)
+static void ppc4xx_gpt_set_output(Ppc405GptState *gpt, int n, int level)
{
/* XXX: TODO */
}
-static void ppc4xx_gpt_set_outputs (ppc4xx_gpt_t *gpt)
+static void ppc4xx_gpt_set_outputs(Ppc405GptState *gpt)
{
uint32_t mask;
int i;
@@ -974,7 +958,7 @@ static void ppc4xx_gpt_set_outputs (ppc4xx_gpt_t *gpt)
}
}
-static void ppc4xx_gpt_set_irqs (ppc4xx_gpt_t *gpt)
+static void ppc4xx_gpt_set_irqs(Ppc405GptState *gpt)
{
uint32_t mask;
int i;
@@ -989,14 +973,14 @@ static void ppc4xx_gpt_set_irqs (ppc4xx_gpt_t *gpt)
}
}
-static void ppc4xx_gpt_compute_timer (ppc4xx_gpt_t *gpt)
+static void ppc4xx_gpt_compute_timer(Ppc405GptState *gpt)
{
/* XXX: TODO */
}
static uint64_t ppc4xx_gpt_read(void *opaque, hwaddr addr, unsigned size)
{
- ppc4xx_gpt_t *gpt = opaque;
+ Ppc405GptState *gpt = opaque;
uint32_t ret;
int idx;
@@ -1050,7 +1034,7 @@ static uint64_t ppc4xx_gpt_read(void *opaque, hwaddr addr, unsigned size)
static void ppc4xx_gpt_write(void *opaque, hwaddr addr, uint64_t value,
unsigned size)
{
- ppc4xx_gpt_t *gpt = opaque;
+ Ppc405GptState *gpt = opaque;
int idx;
trace_ppc4xx_gpt_write(addr, size, value);
@@ -1114,22 +1098,20 @@ static const MemoryRegionOps gpt_ops = {
.endianness = DEVICE_NATIVE_ENDIAN,
};
-static void ppc4xx_gpt_cb (void *opaque)
+static void ppc4xx_gpt_cb(void *opaque)
{
- ppc4xx_gpt_t *gpt;
+ Ppc405GptState *gpt = opaque;
- gpt = opaque;
ppc4xx_gpt_set_irqs(gpt);
ppc4xx_gpt_set_outputs(gpt);
ppc4xx_gpt_compute_timer(gpt);
}
-static void ppc4xx_gpt_reset (void *opaque)
+static void ppc405_gpt_reset(DeviceState *dev)
{
- ppc4xx_gpt_t *gpt;
+ Ppc405GptState *gpt = PPC405_GPT(dev);
int i;
- gpt = opaque;
timer_del(gpt->timer);
gpt->oe = 0x00000000;
gpt->ol = 0x00000000;
@@ -1142,21 +1124,37 @@ static void ppc4xx_gpt_reset (void *opaque)
}
}
-static void ppc4xx_gpt_init(hwaddr base, qemu_irq irqs[5])
+static void ppc405_gpt_realize(DeviceState *dev, Error **errp)
{
- ppc4xx_gpt_t *gpt;
+ Ppc405GptState *s = PPC405_GPT(dev);
+ SysBusDevice *sbd = SYS_BUS_DEVICE(dev);
int i;
- trace_ppc4xx_gpt_init(base);
+ s->timer = timer_new_ns(QEMU_CLOCK_VIRTUAL, &ppc4xx_gpt_cb, s);
+ memory_region_init_io(&s->iomem, OBJECT(s), &gpt_ops, s, "gpt", 0xd4);
+ sysbus_init_mmio(sbd, &s->iomem);
- gpt = g_new0(ppc4xx_gpt_t, 1);
- for (i = 0; i < 5; i++) {
- gpt->irqs[i] = irqs[i];
+ for (i = 0; i < ARRAY_SIZE(s->irqs); i++) {
+ sysbus_init_irq(sbd, &s->irqs[i]);
+ }
+}
+
+static void ppc405_gpt_finalize(Object *obj)
+{
+ /* timer will be NULL if the GPT wasn't realized */
+ if (PPC405_GPT(obj)->timer) {
+ timer_del(PPC405_GPT(obj)->timer);
}
- gpt->timer = timer_new_ns(QEMU_CLOCK_VIRTUAL, &ppc4xx_gpt_cb, gpt);
- memory_region_init_io(&gpt->iomem, NULL, &gpt_ops, gpt, "gpt", 0x0d4);
- memory_region_add_subregion(get_system_memory(), base, &gpt->iomem);
- qemu_register_reset(ppc4xx_gpt_reset, gpt);
+}
+
+static void ppc405_gpt_class_init(ObjectClass *oc, void *data)
+{
+ DeviceClass *dc = DEVICE_CLASS(oc);
+
+ dc->realize = ppc405_gpt_realize;
+ dc->reset = ppc405_gpt_reset;
+ /* Reason: only works as function of a ppc4xx SoC */
+ dc->user_creatable = false;
}
/*****************************************************************************/
@@ -1420,6 +1418,8 @@ static void ppc405_soc_instance_init(Object *obj)
object_initialize_child(obj, "cpc", &s->cpc, TYPE_PPC405_CPC);
object_property_add_alias(obj, "sys-clk", OBJECT(&s->cpc), "sys-clk");
+
+ object_initialize_child(obj, "gpt", &s->gpt, TYPE_PPC405_GPT);
}
static void ppc405_reset(void *opaque)
@@ -1430,8 +1430,10 @@ static void ppc405_reset(void *opaque)
static void ppc405_soc_realize(DeviceState *dev, Error **errp)
{
Ppc405SoCState *s = PPC405_SOC(dev);
- qemu_irq dma_irqs[4], gpt_irqs[5], mal_irqs[4];
+ qemu_irq dma_irqs[4], mal_irqs[4];
CPUPPCState *env;
+ SysBusDevice *sbd;
+ int i;
/* init CPUs */
if (!qdev_realize(DEVICE(&s->cpu), NULL, errp)) {
@@ -1517,12 +1519,14 @@ static void ppc405_soc_realize(DeviceState *dev, Error **errp)
ppc405_ocm_init(env);
/* GPT */
- gpt_irqs[0] = qdev_get_gpio_in(s->uic, 19);
- gpt_irqs[1] = qdev_get_gpio_in(s->uic, 20);
- gpt_irqs[2] = qdev_get_gpio_in(s->uic, 21);
- gpt_irqs[3] = qdev_get_gpio_in(s->uic, 22);
- gpt_irqs[4] = qdev_get_gpio_in(s->uic, 23);
- ppc4xx_gpt_init(0xef600000, gpt_irqs);
+ sbd = SYS_BUS_DEVICE(&s->gpt);
+ if (!sysbus_realize(sbd, errp)) {
+ return;
+ }
+ sysbus_mmio_map(sbd, 0, 0xef600000);
+ for (i = 0; i < ARRAY_SIZE(s->gpt.irqs); i++) {
+ sysbus_connect_irq(sbd, i, qdev_get_gpio_in(s->uic, 19 + i));
+ }
/* MAL */
mal_irqs[0] = qdev_get_gpio_in(s->uic, 11);
@@ -1555,6 +1559,12 @@ static void ppc405_soc_class_init(ObjectClass *oc, void *data)
static const TypeInfo ppc405_types[] = {
{
+ .name = TYPE_PPC405_GPT,
+ .parent = TYPE_SYS_BUS_DEVICE,
+ .instance_size = sizeof(Ppc405GptState),
+ .instance_finalize = ppc405_gpt_finalize,
+ .class_init = ppc405_gpt_class_init,
+ }, {
.name = TYPE_PPC405_CPC,
.parent = TYPE_PPC4xx_DCR_DEVICE,
.instance_size = sizeof(Ppc405CpcState),
diff --git a/hw/ppc/trace-events b/hw/ppc/trace-events
index f6990439d1..8d35521bf7 100644
--- a/hw/ppc/trace-events
+++ b/hw/ppc/trace-events
@@ -173,7 +173,6 @@ ocm_unmap(const char* prefix, uint32_t isarc) "OCM unmap %s 0x%08" PRIx32
ppc4xx_gpt_read(uint64_t addr, uint32_t size) "addr 0x%" PRIx64 " size %d"
ppc4xx_gpt_write(uint64_t addr, uint32_t size, uint64_t val) "addr 0x%" PRIx64 " size %d = 0x%" PRIx64
-ppc4xx_gpt_init(uint64_t addr) "offet 0x%" PRIx64
ppc405ep_clocks_compute(const char *param, uint32_t param2, uint32_t val) "%s 0x%1" PRIx32 " %d"
ppc405ep_clocks_setup(const char *trace) "%s"
--
2.37.2
^ permalink raw reply related [flat|nested] 63+ messages in thread
* [PULL 40/60] ppc/ppc405: QOM'ify OCM
2022-08-31 18:49 [PULL 00/60] ppc queue Daniel Henrique Barboza
` (38 preceding siblings ...)
2022-08-31 18:50 ` [PULL 39/60] ppc/ppc405: QOM'ify GPT Daniel Henrique Barboza
@ 2022-08-31 18:50 ` Daniel Henrique Barboza
2022-08-31 18:50 ` [PULL 41/60] ppc/ppc405: QOM'ify GPIO Daniel Henrique Barboza
` (20 subsequent siblings)
60 siblings, 0 replies; 63+ messages in thread
From: Daniel Henrique Barboza @ 2022-08-31 18:50 UTC (permalink / raw)
To: qemu-devel
Cc: qemu-ppc, danielhb413, peter.maydell, richard.henderson,
Cédric Le Goater
From: Cédric Le Goater <clg@kaod.org>
The OCM controller is currently modeled as a simple DCR device with
a couple of memory regions.
Reviewed-by: Daniel Henrique Barboza <danielhb413@gmail.com>
Signed-off-by: Cédric Le Goater <clg@kaod.org>
[balaton: ppc4xx_dcr_register changes]
Signed-off-by: BALATON Zoltan <balaton@eik.bme.hu>
Message-Id: <ecb93d2d5993bb7a970365744c7d342d4abcb017.1660746880.git.balaton@eik.bme.hu>
Signed-off-by: Daniel Henrique Barboza <danielhb413@gmail.com>
---
hw/ppc/ppc405.h | 16 ++++++++++
hw/ppc/ppc405_uc.c | 77 +++++++++++++++++++++++-----------------------
2 files changed, 55 insertions(+), 38 deletions(-)
diff --git a/hw/ppc/ppc405.h b/hw/ppc/ppc405.h
index bcf55e4f6b..a5b493d3e7 100644
--- a/hw/ppc/ppc405.h
+++ b/hw/ppc/ppc405.h
@@ -63,6 +63,21 @@ struct ppc4xx_bd_info_t {
uint32_t bi_iic_fast[2];
};
+/* On Chip Memory */
+#define TYPE_PPC405_OCM "ppc405-ocm"
+OBJECT_DECLARE_SIMPLE_TYPE(Ppc405OcmState, PPC405_OCM);
+struct Ppc405OcmState {
+ Ppc4xxDcrDeviceState parent_obj;
+
+ MemoryRegion ram;
+ MemoryRegion isarc_ram;
+ MemoryRegion dsarc_ram;
+ uint32_t isarc;
+ uint32_t isacntl;
+ uint32_t dsarc;
+ uint32_t dsacntl;
+};
+
/* General purpose timers */
#define TYPE_PPC405_GPT "ppc405-gpt"
OBJECT_DECLARE_SIMPLE_TYPE(Ppc405GptState, PPC405_GPT);
@@ -136,6 +151,7 @@ struct Ppc405SoCState {
DeviceState *uic;
Ppc405CpcState cpc;
Ppc405GptState gpt;
+ Ppc405OcmState ocm;
};
/* PowerPC 405 core */
diff --git a/hw/ppc/ppc405_uc.c b/hw/ppc/ppc405_uc.c
index 1994801abe..8ee0357ac3 100644
--- a/hw/ppc/ppc405_uc.c
+++ b/hw/ppc/ppc405_uc.c
@@ -773,20 +773,9 @@ enum {
OCM0_DSACNTL = 0x01B,
};
-typedef struct ppc405_ocm_t ppc405_ocm_t;
-struct ppc405_ocm_t {
- MemoryRegion ram;
- MemoryRegion isarc_ram;
- MemoryRegion dsarc_ram;
- uint32_t isarc;
- uint32_t isacntl;
- uint32_t dsarc;
- uint32_t dsacntl;
-};
-
-static void ocm_update_mappings (ppc405_ocm_t *ocm,
- uint32_t isarc, uint32_t isacntl,
- uint32_t dsarc, uint32_t dsacntl)
+static void ocm_update_mappings(Ppc405OcmState *ocm,
+ uint32_t isarc, uint32_t isacntl,
+ uint32_t dsarc, uint32_t dsacntl)
{
trace_ocm_update_mappings(isarc, isacntl, dsarc, dsacntl, ocm->isarc,
ocm->isacntl, ocm->dsarc, ocm->dsacntl);
@@ -828,12 +817,11 @@ static void ocm_update_mappings (ppc405_ocm_t *ocm,
}
}
-static uint32_t dcr_read_ocm (void *opaque, int dcrn)
+static uint32_t dcr_read_ocm(void *opaque, int dcrn)
{
- ppc405_ocm_t *ocm;
+ Ppc405OcmState *ocm = opaque;
uint32_t ret;
- ocm = opaque;
switch (dcrn) {
case OCM0_ISARC:
ret = ocm->isarc;
@@ -855,12 +843,11 @@ static uint32_t dcr_read_ocm (void *opaque, int dcrn)
return ret;
}
-static void dcr_write_ocm (void *opaque, int dcrn, uint32_t val)
+static void dcr_write_ocm(void *opaque, int dcrn, uint32_t val)
{
- ppc405_ocm_t *ocm;
+ Ppc405OcmState *ocm = opaque;
uint32_t isarc, dsarc, isacntl, dsacntl;
- ocm = opaque;
isarc = ocm->isarc;
dsarc = ocm->dsarc;
isacntl = ocm->isacntl;
@@ -886,12 +873,11 @@ static void dcr_write_ocm (void *opaque, int dcrn, uint32_t val)
ocm->dsacntl = dsacntl;
}
-static void ocm_reset (void *opaque)
+static void ppc405_ocm_reset(DeviceState *dev)
{
- ppc405_ocm_t *ocm;
+ Ppc405OcmState *ocm = PPC405_OCM(dev);
uint32_t isarc, dsarc, isacntl, dsacntl;
- ocm = opaque;
isarc = 0x00000000;
isacntl = 0x00000000;
dsarc = 0x00000000;
@@ -903,25 +889,31 @@ static void ocm_reset (void *opaque)
ocm->dsacntl = dsacntl;
}
-static void ppc405_ocm_init(CPUPPCState *env)
+static void ppc405_ocm_realize(DeviceState *dev, Error **errp)
{
- ppc405_ocm_t *ocm;
+ Ppc405OcmState *ocm = PPC405_OCM(dev);
+ Ppc4xxDcrDeviceState *dcr = PPC4xx_DCR_DEVICE(dev);
- ocm = g_new0(ppc405_ocm_t, 1);
/* XXX: Size is 4096 or 0x04000000 */
- memory_region_init_ram(&ocm->isarc_ram, NULL, "ppc405.ocm", 4 * KiB,
+ memory_region_init_ram(&ocm->isarc_ram, OBJECT(ocm), "ppc405.ocm", 4 * KiB,
&error_fatal);
- memory_region_init_alias(&ocm->dsarc_ram, NULL, "ppc405.dsarc",
+ memory_region_init_alias(&ocm->dsarc_ram, OBJECT(ocm), "ppc405.dsarc",
&ocm->isarc_ram, 0, 4 * KiB);
- qemu_register_reset(&ocm_reset, ocm);
- ppc_dcr_register(env, OCM0_ISARC,
- ocm, &dcr_read_ocm, &dcr_write_ocm);
- ppc_dcr_register(env, OCM0_ISACNTL,
- ocm, &dcr_read_ocm, &dcr_write_ocm);
- ppc_dcr_register(env, OCM0_DSARC,
- ocm, &dcr_read_ocm, &dcr_write_ocm);
- ppc_dcr_register(env, OCM0_DSACNTL,
- ocm, &dcr_read_ocm, &dcr_write_ocm);
+
+ ppc4xx_dcr_register(dcr, OCM0_ISARC, ocm, &dcr_read_ocm, &dcr_write_ocm);
+ ppc4xx_dcr_register(dcr, OCM0_ISACNTL, ocm, &dcr_read_ocm, &dcr_write_ocm);
+ ppc4xx_dcr_register(dcr, OCM0_DSARC, ocm, &dcr_read_ocm, &dcr_write_ocm);
+ ppc4xx_dcr_register(dcr, OCM0_DSACNTL, ocm, &dcr_read_ocm, &dcr_write_ocm);
+}
+
+static void ppc405_ocm_class_init(ObjectClass *oc, void *data)
+{
+ DeviceClass *dc = DEVICE_CLASS(oc);
+
+ dc->realize = ppc405_ocm_realize;
+ dc->reset = ppc405_ocm_reset;
+ /* Reason: only works as function of a ppc4xx SoC */
+ dc->user_creatable = false;
}
/*****************************************************************************/
@@ -1420,6 +1412,8 @@ static void ppc405_soc_instance_init(Object *obj)
object_property_add_alias(obj, "sys-clk", OBJECT(&s->cpc), "sys-clk");
object_initialize_child(obj, "gpt", &s->gpt, TYPE_PPC405_GPT);
+
+ object_initialize_child(obj, "ocm", &s->ocm, TYPE_PPC405_OCM);
}
static void ppc405_reset(void *opaque)
@@ -1516,7 +1510,9 @@ static void ppc405_soc_realize(DeviceState *dev, Error **errp)
}
/* OCM */
- ppc405_ocm_init(env);
+ if (!ppc4xx_dcr_realize(PPC4xx_DCR_DEVICE(&s->ocm), &s->cpu, errp)) {
+ return;
+ }
/* GPT */
sbd = SYS_BUS_DEVICE(&s->gpt);
@@ -1559,6 +1555,11 @@ static void ppc405_soc_class_init(ObjectClass *oc, void *data)
static const TypeInfo ppc405_types[] = {
{
+ .name = TYPE_PPC405_OCM,
+ .parent = TYPE_PPC4xx_DCR_DEVICE,
+ .instance_size = sizeof(Ppc405OcmState),
+ .class_init = ppc405_ocm_class_init,
+ }, {
.name = TYPE_PPC405_GPT,
.parent = TYPE_SYS_BUS_DEVICE,
.instance_size = sizeof(Ppc405GptState),
--
2.37.2
^ permalink raw reply related [flat|nested] 63+ messages in thread
* [PULL 41/60] ppc/ppc405: QOM'ify GPIO
2022-08-31 18:49 [PULL 00/60] ppc queue Daniel Henrique Barboza
` (39 preceding siblings ...)
2022-08-31 18:50 ` [PULL 40/60] ppc/ppc405: QOM'ify OCM Daniel Henrique Barboza
@ 2022-08-31 18:50 ` Daniel Henrique Barboza
2022-08-31 18:50 ` [PULL 42/60] ppc/ppc405: QOM'ify DMA Daniel Henrique Barboza
` (19 subsequent siblings)
60 siblings, 0 replies; 63+ messages in thread
From: Daniel Henrique Barboza @ 2022-08-31 18:50 UTC (permalink / raw)
To: qemu-devel
Cc: qemu-ppc, danielhb413, peter.maydell, richard.henderson,
Cédric Le Goater
From: Cédric Le Goater <clg@kaod.org>
The GPIO controller is currently modeled as a simple SysBus device
with a unique memory region.
Reviewed-by: Daniel Henrique Barboza <danielhb413@gmail.com>
Signed-off-by: Cédric Le Goater <clg@kaod.org>
[balaton: Simplify sysbus device casts for readability]
Signed-off-by: BALATON Zoltan <balaton@eik.bme.hu>
Message-Id: <e95d7849f3768e1f9a2846c4b282392750678b3e.1660746880.git.balaton@eik.bme.hu>
Signed-off-by: Daniel Henrique Barboza <danielhb413@gmail.com>
---
hw/ppc/ppc405.h | 21 +++++++++++++++++++
hw/ppc/ppc405_uc.c | 50 ++++++++++++++++++++++-----------------------
hw/ppc/trace-events | 1 -
3 files changed, 45 insertions(+), 27 deletions(-)
diff --git a/hw/ppc/ppc405.h b/hw/ppc/ppc405.h
index a5b493d3e7..21f6cb3585 100644
--- a/hw/ppc/ppc405.h
+++ b/hw/ppc/ppc405.h
@@ -63,6 +63,26 @@ struct ppc4xx_bd_info_t {
uint32_t bi_iic_fast[2];
};
+/* GPIO */
+#define TYPE_PPC405_GPIO "ppc405-gpio"
+OBJECT_DECLARE_SIMPLE_TYPE(Ppc405GpioState, PPC405_GPIO);
+struct Ppc405GpioState {
+ SysBusDevice parent_obj;
+
+ MemoryRegion io;
+ uint32_t or;
+ uint32_t tcr;
+ uint32_t osrh;
+ uint32_t osrl;
+ uint32_t tsrh;
+ uint32_t tsrl;
+ uint32_t odr;
+ uint32_t ir;
+ uint32_t rr1;
+ uint32_t isr1h;
+ uint32_t isr1l;
+};
+
/* On Chip Memory */
#define TYPE_PPC405_OCM "ppc405-ocm"
OBJECT_DECLARE_SIMPLE_TYPE(Ppc405OcmState, PPC405_OCM);
@@ -152,6 +172,7 @@ struct Ppc405SoCState {
Ppc405CpcState cpc;
Ppc405GptState gpt;
Ppc405OcmState ocm;
+ Ppc405GpioState gpio;
};
/* PowerPC 405 core */
diff --git a/hw/ppc/ppc405_uc.c b/hw/ppc/ppc405_uc.c
index 8ee0357ac3..3f4a5b36f5 100644
--- a/hw/ppc/ppc405_uc.c
+++ b/hw/ppc/ppc405_uc.c
@@ -714,22 +714,6 @@ static void ppc405_dma_init(CPUPPCState *env, qemu_irq irqs[4])
/*****************************************************************************/
/* GPIO */
-typedef struct ppc405_gpio_t ppc405_gpio_t;
-struct ppc405_gpio_t {
- MemoryRegion io;
- uint32_t or;
- uint32_t tcr;
- uint32_t osrh;
- uint32_t osrl;
- uint32_t tsrh;
- uint32_t tsrl;
- uint32_t odr;
- uint32_t ir;
- uint32_t rr1;
- uint32_t isr1h;
- uint32_t isr1l;
-};
-
static uint64_t ppc405_gpio_read(void *opaque, hwaddr addr, unsigned size)
{
trace_ppc405_gpio_read(addr, size);
@@ -748,20 +732,22 @@ static const MemoryRegionOps ppc405_gpio_ops = {
.endianness = DEVICE_NATIVE_ENDIAN,
};
-static void ppc405_gpio_reset (void *opaque)
+static void ppc405_gpio_realize(DeviceState *dev, Error **errp)
{
+ Ppc405GpioState *s = PPC405_GPIO(dev);
+
+ memory_region_init_io(&s->io, OBJECT(s), &ppc405_gpio_ops, s, "gpio",
+ 0x38);
+ sysbus_init_mmio(SYS_BUS_DEVICE(s), &s->io);
}
-static void ppc405_gpio_init(hwaddr base)
+static void ppc405_gpio_class_init(ObjectClass *oc, void *data)
{
- ppc405_gpio_t *gpio;
-
- trace_ppc405_gpio_init(base);
+ DeviceClass *dc = DEVICE_CLASS(oc);
- gpio = g_new0(ppc405_gpio_t, 1);
- memory_region_init_io(&gpio->io, NULL, &ppc405_gpio_ops, gpio, "pgio", 0x038);
- memory_region_add_subregion(get_system_memory(), base, &gpio->io);
- qemu_register_reset(&ppc405_gpio_reset, gpio);
+ dc->realize = ppc405_gpio_realize;
+ /* Reason: only works as function of a ppc4xx SoC */
+ dc->user_creatable = false;
}
/*****************************************************************************/
@@ -1414,6 +1400,8 @@ static void ppc405_soc_instance_init(Object *obj)
object_initialize_child(obj, "gpt", &s->gpt, TYPE_PPC405_GPT);
object_initialize_child(obj, "ocm", &s->ocm, TYPE_PPC405_OCM);
+
+ object_initialize_child(obj, "gpio", &s->gpio, TYPE_PPC405_GPIO);
}
static void ppc405_reset(void *opaque)
@@ -1492,8 +1480,13 @@ static void ppc405_soc_realize(DeviceState *dev, Error **errp)
/* I2C controller */
sysbus_create_simple(TYPE_PPC4xx_I2C, 0xef600500,
qdev_get_gpio_in(s->uic, 2));
+
/* GPIO */
- ppc405_gpio_init(0xef600700);
+ sbd = SYS_BUS_DEVICE(&s->gpio);
+ if (!sysbus_realize(sbd, errp)) {
+ return;
+ }
+ sysbus_mmio_map(sbd, 0, 0xef600700);
/* Serial ports */
if (serial_hd(0) != NULL) {
@@ -1555,6 +1548,11 @@ static void ppc405_soc_class_init(ObjectClass *oc, void *data)
static const TypeInfo ppc405_types[] = {
{
+ .name = TYPE_PPC405_GPIO,
+ .parent = TYPE_SYS_BUS_DEVICE,
+ .instance_size = sizeof(Ppc405GpioState),
+ .class_init = ppc405_gpio_class_init,
+ }, {
.name = TYPE_PPC405_OCM,
.parent = TYPE_PPC4xx_DCR_DEVICE,
.instance_size = sizeof(Ppc405OcmState),
diff --git a/hw/ppc/trace-events b/hw/ppc/trace-events
index 8d35521bf7..69a95f9f57 100644
--- a/hw/ppc/trace-events
+++ b/hw/ppc/trace-events
@@ -165,7 +165,6 @@ opba_init(uint64_t addr) "offet 0x%" PRIx64
ppc405_gpio_read(uint64_t addr, uint32_t size) "addr 0x%" PRIx64 " size %d"
ppc405_gpio_write(uint64_t addr, uint32_t size, uint64_t val) "addr 0x%" PRIx64 " size %d = 0x%" PRIx64
-ppc405_gpio_init(uint64_t addr) "offet 0x%" PRIx64
ocm_update_mappings(uint32_t isarc, uint32_t isacntl, uint32_t dsarc, uint32_t dsacntl, uint32_t ocm_isarc, uint32_t ocm_isacntl, uint32_t ocm_dsarc, uint32_t ocm_dsacntl) "OCM update ISA 0x%08" PRIx32 " 0x%08" PRIx32 " (0x%08" PRIx32" 0x%08" PRIx32 ") DSA 0x%08" PRIx32 " 0x%08" PRIx32" (0x%08" PRIx32 " 0x%08" PRIx32 ")"
ocm_map(const char* prefix, uint32_t isarc) "OCM map %s 0x%08" PRIx32
--
2.37.2
^ permalink raw reply related [flat|nested] 63+ messages in thread
* [PULL 42/60] ppc/ppc405: QOM'ify DMA
2022-08-31 18:49 [PULL 00/60] ppc queue Daniel Henrique Barboza
` (40 preceding siblings ...)
2022-08-31 18:50 ` [PULL 41/60] ppc/ppc405: QOM'ify GPIO Daniel Henrique Barboza
@ 2022-08-31 18:50 ` Daniel Henrique Barboza
2022-08-31 18:50 ` [PULL 43/60] ppc/ppc405: QOM'ify EBC Daniel Henrique Barboza
` (18 subsequent siblings)
60 siblings, 0 replies; 63+ messages in thread
From: Daniel Henrique Barboza @ 2022-08-31 18:50 UTC (permalink / raw)
To: qemu-devel
Cc: qemu-ppc, danielhb413, peter.maydell, richard.henderson,
Cédric Le Goater
From: Cédric Le Goater <clg@kaod.org>
The DMA controller is currently modeled as a DCR device with a couple
of IRQs.
Reviewed-by: Daniel Henrique Barboza <danielhb413@gmail.com>
Signed-off-by: Cédric Le Goater <clg@kaod.org>
[balaton: ppc4xx_dcr_register changes]
Signed-off-by: BALATON Zoltan <balaton@eik.bme.hu>
Message-Id: <4738b3c7cf18c328f05aaaddc555a46219431335.1660746880.git.balaton@eik.bme.hu>
Signed-off-by: Daniel Henrique Barboza <danielhb413@gmail.com>
---
hw/ppc/ppc405.h | 19 ++++++
hw/ppc/ppc405_uc.c | 141 ++++++++++++++++++++-------------------------
2 files changed, 81 insertions(+), 79 deletions(-)
diff --git a/hw/ppc/ppc405.h b/hw/ppc/ppc405.h
index 21f6cb3585..c75e4c7cb5 100644
--- a/hw/ppc/ppc405.h
+++ b/hw/ppc/ppc405.h
@@ -63,6 +63,24 @@ struct ppc4xx_bd_info_t {
uint32_t bi_iic_fast[2];
};
+/* DMA controller */
+#define TYPE_PPC405_DMA "ppc405-dma"
+OBJECT_DECLARE_SIMPLE_TYPE(Ppc405DmaState, PPC405_DMA);
+struct Ppc405DmaState {
+ Ppc4xxDcrDeviceState parent_obj;
+
+ qemu_irq irqs[4];
+ uint32_t cr[4];
+ uint32_t ct[4];
+ uint32_t da[4];
+ uint32_t sa[4];
+ uint32_t sg[4];
+ uint32_t sr;
+ uint32_t sgc;
+ uint32_t slp;
+ uint32_t pol;
+};
+
/* GPIO */
#define TYPE_PPC405_GPIO "ppc405-gpio"
OBJECT_DECLARE_SIMPLE_TYPE(Ppc405GpioState, PPC405_GPIO);
@@ -173,6 +191,7 @@ struct Ppc405SoCState {
Ppc405GptState gpt;
Ppc405OcmState ocm;
Ppc405GpioState gpio;
+ Ppc405DmaState dma;
};
/* PowerPC 405 core */
diff --git a/hw/ppc/ppc405_uc.c b/hw/ppc/ppc405_uc.c
index 3f4a5b36f5..3845c0fec1 100644
--- a/hw/ppc/ppc405_uc.c
+++ b/hw/ppc/ppc405_uc.c
@@ -613,35 +613,20 @@ enum {
DMA0_POL = 0x126,
};
-typedef struct ppc405_dma_t ppc405_dma_t;
-struct ppc405_dma_t {
- qemu_irq irqs[4];
- uint32_t cr[4];
- uint32_t ct[4];
- uint32_t da[4];
- uint32_t sa[4];
- uint32_t sg[4];
- uint32_t sr;
- uint32_t sgc;
- uint32_t slp;
- uint32_t pol;
-};
-
-static uint32_t dcr_read_dma (void *opaque, int dcrn)
+static uint32_t dcr_read_dma(void *opaque, int dcrn)
{
return 0;
}
-static void dcr_write_dma (void *opaque, int dcrn, uint32_t val)
+static void dcr_write_dma(void *opaque, int dcrn, uint32_t val)
{
}
-static void ppc405_dma_reset (void *opaque)
+static void ppc405_dma_reset(DeviceState *dev)
{
- ppc405_dma_t *dma;
+ Ppc405DmaState *dma = PPC405_DMA(dev);
int i;
- dma = opaque;
for (i = 0; i < 4; i++) {
dma->cr[i] = 0x00000000;
dma->ct[i] = 0x00000000;
@@ -655,61 +640,50 @@ static void ppc405_dma_reset (void *opaque)
dma->pol = 0x00000000;
}
-static void ppc405_dma_init(CPUPPCState *env, qemu_irq irqs[4])
+static void ppc405_dma_realize(DeviceState *dev, Error **errp)
+{
+ Ppc405DmaState *dma = PPC405_DMA(dev);
+ Ppc4xxDcrDeviceState *dcr = PPC4xx_DCR_DEVICE(dev);
+ int i;
+
+ for (i = 0; i < ARRAY_SIZE(dma->irqs); i++) {
+ sysbus_init_irq(SYS_BUS_DEVICE(dma), &dma->irqs[i]);
+ }
+
+ ppc4xx_dcr_register(dcr, DMA0_CR0, dma, &dcr_read_dma, &dcr_write_dma);
+ ppc4xx_dcr_register(dcr, DMA0_CT0, dma, &dcr_read_dma, &dcr_write_dma);
+ ppc4xx_dcr_register(dcr, DMA0_DA0, dma, &dcr_read_dma, &dcr_write_dma);
+ ppc4xx_dcr_register(dcr, DMA0_SA0, dma, &dcr_read_dma, &dcr_write_dma);
+ ppc4xx_dcr_register(dcr, DMA0_SG0, dma, &dcr_read_dma, &dcr_write_dma);
+ ppc4xx_dcr_register(dcr, DMA0_CR1, dma, &dcr_read_dma, &dcr_write_dma);
+ ppc4xx_dcr_register(dcr, DMA0_CT1, dma, &dcr_read_dma, &dcr_write_dma);
+ ppc4xx_dcr_register(dcr, DMA0_DA1, dma, &dcr_read_dma, &dcr_write_dma);
+ ppc4xx_dcr_register(dcr, DMA0_SA1, dma, &dcr_read_dma, &dcr_write_dma);
+ ppc4xx_dcr_register(dcr, DMA0_SG1, dma, &dcr_read_dma, &dcr_write_dma);
+ ppc4xx_dcr_register(dcr, DMA0_CR2, dma, &dcr_read_dma, &dcr_write_dma);
+ ppc4xx_dcr_register(dcr, DMA0_CT2, dma, &dcr_read_dma, &dcr_write_dma);
+ ppc4xx_dcr_register(dcr, DMA0_DA2, dma, &dcr_read_dma, &dcr_write_dma);
+ ppc4xx_dcr_register(dcr, DMA0_SA2, dma, &dcr_read_dma, &dcr_write_dma);
+ ppc4xx_dcr_register(dcr, DMA0_SG2, dma, &dcr_read_dma, &dcr_write_dma);
+ ppc4xx_dcr_register(dcr, DMA0_CR3, dma, &dcr_read_dma, &dcr_write_dma);
+ ppc4xx_dcr_register(dcr, DMA0_CT3, dma, &dcr_read_dma, &dcr_write_dma);
+ ppc4xx_dcr_register(dcr, DMA0_DA3, dma, &dcr_read_dma, &dcr_write_dma);
+ ppc4xx_dcr_register(dcr, DMA0_SA3, dma, &dcr_read_dma, &dcr_write_dma);
+ ppc4xx_dcr_register(dcr, DMA0_SG3, dma, &dcr_read_dma, &dcr_write_dma);
+ ppc4xx_dcr_register(dcr, DMA0_SR, dma, &dcr_read_dma, &dcr_write_dma);
+ ppc4xx_dcr_register(dcr, DMA0_SGC, dma, &dcr_read_dma, &dcr_write_dma);
+ ppc4xx_dcr_register(dcr, DMA0_SLP, dma, &dcr_read_dma, &dcr_write_dma);
+ ppc4xx_dcr_register(dcr, DMA0_POL, dma, &dcr_read_dma, &dcr_write_dma);
+}
+
+static void ppc405_dma_class_init(ObjectClass *oc, void *data)
{
- ppc405_dma_t *dma;
-
- dma = g_new0(ppc405_dma_t, 1);
- memcpy(dma->irqs, irqs, 4 * sizeof(qemu_irq));
- qemu_register_reset(&ppc405_dma_reset, dma);
- ppc_dcr_register(env, DMA0_CR0,
- dma, &dcr_read_dma, &dcr_write_dma);
- ppc_dcr_register(env, DMA0_CT0,
- dma, &dcr_read_dma, &dcr_write_dma);
- ppc_dcr_register(env, DMA0_DA0,
- dma, &dcr_read_dma, &dcr_write_dma);
- ppc_dcr_register(env, DMA0_SA0,
- dma, &dcr_read_dma, &dcr_write_dma);
- ppc_dcr_register(env, DMA0_SG0,
- dma, &dcr_read_dma, &dcr_write_dma);
- ppc_dcr_register(env, DMA0_CR1,
- dma, &dcr_read_dma, &dcr_write_dma);
- ppc_dcr_register(env, DMA0_CT1,
- dma, &dcr_read_dma, &dcr_write_dma);
- ppc_dcr_register(env, DMA0_DA1,
- dma, &dcr_read_dma, &dcr_write_dma);
- ppc_dcr_register(env, DMA0_SA1,
- dma, &dcr_read_dma, &dcr_write_dma);
- ppc_dcr_register(env, DMA0_SG1,
- dma, &dcr_read_dma, &dcr_write_dma);
- ppc_dcr_register(env, DMA0_CR2,
- dma, &dcr_read_dma, &dcr_write_dma);
- ppc_dcr_register(env, DMA0_CT2,
- dma, &dcr_read_dma, &dcr_write_dma);
- ppc_dcr_register(env, DMA0_DA2,
- dma, &dcr_read_dma, &dcr_write_dma);
- ppc_dcr_register(env, DMA0_SA2,
- dma, &dcr_read_dma, &dcr_write_dma);
- ppc_dcr_register(env, DMA0_SG2,
- dma, &dcr_read_dma, &dcr_write_dma);
- ppc_dcr_register(env, DMA0_CR3,
- dma, &dcr_read_dma, &dcr_write_dma);
- ppc_dcr_register(env, DMA0_CT3,
- dma, &dcr_read_dma, &dcr_write_dma);
- ppc_dcr_register(env, DMA0_DA3,
- dma, &dcr_read_dma, &dcr_write_dma);
- ppc_dcr_register(env, DMA0_SA3,
- dma, &dcr_read_dma, &dcr_write_dma);
- ppc_dcr_register(env, DMA0_SG3,
- dma, &dcr_read_dma, &dcr_write_dma);
- ppc_dcr_register(env, DMA0_SR,
- dma, &dcr_read_dma, &dcr_write_dma);
- ppc_dcr_register(env, DMA0_SGC,
- dma, &dcr_read_dma, &dcr_write_dma);
- ppc_dcr_register(env, DMA0_SLP,
- dma, &dcr_read_dma, &dcr_write_dma);
- ppc_dcr_register(env, DMA0_POL,
- dma, &dcr_read_dma, &dcr_write_dma);
+ DeviceClass *dc = DEVICE_CLASS(oc);
+
+ dc->realize = ppc405_dma_realize;
+ dc->reset = ppc405_dma_reset;
+ /* Reason: only works as function of a ppc4xx SoC */
+ dc->user_creatable = false;
}
/*****************************************************************************/
@@ -1402,6 +1376,8 @@ static void ppc405_soc_instance_init(Object *obj)
object_initialize_child(obj, "ocm", &s->ocm, TYPE_PPC405_OCM);
object_initialize_child(obj, "gpio", &s->gpio, TYPE_PPC405_GPIO);
+
+ object_initialize_child(obj, "dma", &s->dma, TYPE_PPC405_DMA);
}
static void ppc405_reset(void *opaque)
@@ -1412,7 +1388,7 @@ static void ppc405_reset(void *opaque)
static void ppc405_soc_realize(DeviceState *dev, Error **errp)
{
Ppc405SoCState *s = PPC405_SOC(dev);
- qemu_irq dma_irqs[4], mal_irqs[4];
+ qemu_irq mal_irqs[4];
CPUPPCState *env;
SysBusDevice *sbd;
int i;
@@ -1471,11 +1447,13 @@ static void ppc405_soc_realize(DeviceState *dev, Error **errp)
ppc405_ebc_init(env);
/* DMA controller */
- dma_irqs[0] = qdev_get_gpio_in(s->uic, 5);
- dma_irqs[1] = qdev_get_gpio_in(s->uic, 6);
- dma_irqs[2] = qdev_get_gpio_in(s->uic, 7);
- dma_irqs[3] = qdev_get_gpio_in(s->uic, 8);
- ppc405_dma_init(env, dma_irqs);
+ if (!ppc4xx_dcr_realize(PPC4xx_DCR_DEVICE(&s->dma), &s->cpu, errp)) {
+ return;
+ }
+ sbd = SYS_BUS_DEVICE(&s->dma);
+ for (i = 0; i < ARRAY_SIZE(s->dma.irqs); i++) {
+ sysbus_connect_irq(sbd, i, qdev_get_gpio_in(s->uic, 5 + i));
+ }
/* I2C controller */
sysbus_create_simple(TYPE_PPC4xx_I2C, 0xef600500,
@@ -1548,6 +1526,11 @@ static void ppc405_soc_class_init(ObjectClass *oc, void *data)
static const TypeInfo ppc405_types[] = {
{
+ .name = TYPE_PPC405_DMA,
+ .parent = TYPE_PPC4xx_DCR_DEVICE,
+ .instance_size = sizeof(Ppc405DmaState),
+ .class_init = ppc405_dma_class_init,
+ }, {
.name = TYPE_PPC405_GPIO,
.parent = TYPE_SYS_BUS_DEVICE,
.instance_size = sizeof(Ppc405GpioState),
--
2.37.2
^ permalink raw reply related [flat|nested] 63+ messages in thread
* [PULL 43/60] ppc/ppc405: QOM'ify EBC
2022-08-31 18:49 [PULL 00/60] ppc queue Daniel Henrique Barboza
` (41 preceding siblings ...)
2022-08-31 18:50 ` [PULL 42/60] ppc/ppc405: QOM'ify DMA Daniel Henrique Barboza
@ 2022-08-31 18:50 ` Daniel Henrique Barboza
2022-08-31 18:50 ` [PULL 44/60] ppc/ppc405: QOM'ify OPBA Daniel Henrique Barboza
` (17 subsequent siblings)
60 siblings, 0 replies; 63+ messages in thread
From: Daniel Henrique Barboza @ 2022-08-31 18:50 UTC (permalink / raw)
To: qemu-devel
Cc: qemu-ppc, danielhb413, peter.maydell, richard.henderson,
Cédric Le Goater
From: Cédric Le Goater <clg@kaod.org>
EBC is currently modeled as a DCR device. Also drop the ppc405_ebc_init()
helper and adapt the sam460ex machine.
Reviewed-by: Daniel Henrique Barboza <danielhb413@gmail.com>
Signed-off-by: Cédric Le Goater <clg@kaod.org>
[balaton: ppc4xx_dcr_register changes]
Signed-off-by: BALATON Zoltan <balaton@eik.bme.hu>
Message-Id: <51a0769ab605c5158f4f2f1c896725d5fe7a073b.1660746880.git.balaton@eik.bme.hu>
Signed-off-by: Daniel Henrique Barboza <danielhb413@gmail.com>
---
hw/ppc/ppc405.h | 17 ++++++++++++-
hw/ppc/ppc405_uc.c | 62 ++++++++++++++++++++++++----------------------
hw/ppc/sam460ex.c | 4 ++-
3 files changed, 51 insertions(+), 32 deletions(-)
diff --git a/hw/ppc/ppc405.h b/hw/ppc/ppc405.h
index c75e4c7cb5..82bf8dae93 100644
--- a/hw/ppc/ppc405.h
+++ b/hw/ppc/ppc405.h
@@ -63,6 +63,21 @@ struct ppc4xx_bd_info_t {
uint32_t bi_iic_fast[2];
};
+/* Peripheral controller */
+#define TYPE_PPC405_EBC "ppc405-ebc"
+OBJECT_DECLARE_SIMPLE_TYPE(Ppc405EbcState, PPC405_EBC);
+struct Ppc405EbcState {
+ Ppc4xxDcrDeviceState parent_obj;
+
+ uint32_t addr;
+ uint32_t bcr[8];
+ uint32_t bap[8];
+ uint32_t bear;
+ uint32_t besr0;
+ uint32_t besr1;
+ uint32_t cfg;
+};
+
/* DMA controller */
#define TYPE_PPC405_DMA "ppc405-dma"
OBJECT_DECLARE_SIMPLE_TYPE(Ppc405DmaState, PPC405_DMA);
@@ -192,12 +207,12 @@ struct Ppc405SoCState {
Ppc405OcmState ocm;
Ppc405GpioState gpio;
Ppc405DmaState dma;
+ Ppc405EbcState ebc;
};
/* PowerPC 405 core */
ram_addr_t ppc405_set_bootinfo(CPUPPCState *env, ram_addr_t ram_size);
void ppc4xx_plb_init(CPUPPCState *env);
-void ppc405_ebc_init(CPUPPCState *env);
#endif /* PPC405_H */
diff --git a/hw/ppc/ppc405_uc.c b/hw/ppc/ppc405_uc.c
index 3845c0fec1..ff81fb3e20 100644
--- a/hw/ppc/ppc405_uc.c
+++ b/hw/ppc/ppc405_uc.c
@@ -393,28 +393,16 @@ static void ppc4xx_opba_init(hwaddr base)
/*****************************************************************************/
/* Peripheral controller */
-typedef struct ppc4xx_ebc_t ppc4xx_ebc_t;
-struct ppc4xx_ebc_t {
- uint32_t addr;
- uint32_t bcr[8];
- uint32_t bap[8];
- uint32_t bear;
- uint32_t besr0;
- uint32_t besr1;
- uint32_t cfg;
-};
-
enum {
EBC0_CFGADDR = 0x012,
EBC0_CFGDATA = 0x013,
};
-static uint32_t dcr_read_ebc (void *opaque, int dcrn)
+static uint32_t dcr_read_ebc(void *opaque, int dcrn)
{
- ppc4xx_ebc_t *ebc;
+ Ppc405EbcState *ebc = opaque;
uint32_t ret;
- ebc = opaque;
switch (dcrn) {
case EBC0_CFGADDR:
ret = ebc->addr;
@@ -494,11 +482,10 @@ static uint32_t dcr_read_ebc (void *opaque, int dcrn)
return ret;
}
-static void dcr_write_ebc (void *opaque, int dcrn, uint32_t val)
+static void dcr_write_ebc(void *opaque, int dcrn, uint32_t val)
{
- ppc4xx_ebc_t *ebc;
+ Ppc405EbcState *ebc = opaque;
- ebc = opaque;
switch (dcrn) {
case EBC0_CFGADDR:
ebc->addr = val;
@@ -554,12 +541,11 @@ static void dcr_write_ebc (void *opaque, int dcrn, uint32_t val)
}
}
-static void ebc_reset (void *opaque)
+static void ppc405_ebc_reset(DeviceState *dev)
{
- ppc4xx_ebc_t *ebc;
+ Ppc405EbcState *ebc = PPC405_EBC(dev);
int i;
- ebc = opaque;
ebc->addr = 0x00000000;
ebc->bap[0] = 0x7F8FFE80;
ebc->bcr[0] = 0xFFE28000;
@@ -572,16 +558,23 @@ static void ebc_reset (void *opaque)
ebc->cfg = 0x80400000;
}
-void ppc405_ebc_init(CPUPPCState *env)
+static void ppc405_ebc_realize(DeviceState *dev, Error **errp)
{
- ppc4xx_ebc_t *ebc;
-
- ebc = g_new0(ppc4xx_ebc_t, 1);
- qemu_register_reset(&ebc_reset, ebc);
- ppc_dcr_register(env, EBC0_CFGADDR,
- ebc, &dcr_read_ebc, &dcr_write_ebc);
- ppc_dcr_register(env, EBC0_CFGDATA,
- ebc, &dcr_read_ebc, &dcr_write_ebc);
+ Ppc405EbcState *ebc = PPC405_EBC(dev);
+ Ppc4xxDcrDeviceState *dcr = PPC4xx_DCR_DEVICE(dev);
+
+ ppc4xx_dcr_register(dcr, EBC0_CFGADDR, ebc, &dcr_read_ebc, &dcr_write_ebc);
+ ppc4xx_dcr_register(dcr, EBC0_CFGDATA, ebc, &dcr_read_ebc, &dcr_write_ebc);
+}
+
+static void ppc405_ebc_class_init(ObjectClass *oc, void *data)
+{
+ DeviceClass *dc = DEVICE_CLASS(oc);
+
+ dc->realize = ppc405_ebc_realize;
+ dc->reset = ppc405_ebc_reset;
+ /* Reason: only works as function of a ppc4xx SoC */
+ dc->user_creatable = false;
}
/*****************************************************************************/
@@ -1378,6 +1371,8 @@ static void ppc405_soc_instance_init(Object *obj)
object_initialize_child(obj, "gpio", &s->gpio, TYPE_PPC405_GPIO);
object_initialize_child(obj, "dma", &s->dma, TYPE_PPC405_DMA);
+
+ object_initialize_child(obj, "ebc", &s->ebc, TYPE_PPC405_EBC);
}
static void ppc405_reset(void *opaque)
@@ -1444,7 +1439,9 @@ static void ppc405_soc_realize(DeviceState *dev, Error **errp)
s->do_dram_init);
/* External bus controller */
- ppc405_ebc_init(env);
+ if (!ppc4xx_dcr_realize(PPC4xx_DCR_DEVICE(&s->ebc), &s->cpu, errp)) {
+ return;
+ }
/* DMA controller */
if (!ppc4xx_dcr_realize(PPC4xx_DCR_DEVICE(&s->dma), &s->cpu, errp)) {
@@ -1526,6 +1523,11 @@ static void ppc405_soc_class_init(ObjectClass *oc, void *data)
static const TypeInfo ppc405_types[] = {
{
+ .name = TYPE_PPC405_EBC,
+ .parent = TYPE_PPC4xx_DCR_DEVICE,
+ .instance_size = sizeof(Ppc405EbcState),
+ .class_init = ppc405_ebc_class_init,
+ }, {
.name = TYPE_PPC405_DMA,
.parent = TYPE_PPC4xx_DCR_DEVICE,
.instance_size = sizeof(Ppc405DmaState),
diff --git a/hw/ppc/sam460ex.c b/hw/ppc/sam460ex.c
index 0357ee077f..320c61a7f3 100644
--- a/hw/ppc/sam460ex.c
+++ b/hw/ppc/sam460ex.c
@@ -371,7 +371,9 @@ static void sam460ex_init(MachineState *machine)
qdev_get_gpio_in(uic[0], 3));
/* External bus controller */
- ppc405_ebc_init(env);
+ dev = qdev_new(TYPE_PPC405_EBC);
+ ppc4xx_dcr_realize(PPC4xx_DCR_DEVICE(dev), cpu, &error_fatal);
+ object_unref(OBJECT(dev));
/* CPR */
ppc4xx_cpr_init(env);
--
2.37.2
^ permalink raw reply related [flat|nested] 63+ messages in thread
* [PULL 44/60] ppc/ppc405: QOM'ify OPBA
2022-08-31 18:49 [PULL 00/60] ppc queue Daniel Henrique Barboza
` (42 preceding siblings ...)
2022-08-31 18:50 ` [PULL 43/60] ppc/ppc405: QOM'ify EBC Daniel Henrique Barboza
@ 2022-08-31 18:50 ` Daniel Henrique Barboza
2022-08-31 18:50 ` [PULL 45/60] ppc/ppc405: QOM'ify POB Daniel Henrique Barboza
` (16 subsequent siblings)
60 siblings, 0 replies; 63+ messages in thread
From: Daniel Henrique Barboza @ 2022-08-31 18:50 UTC (permalink / raw)
To: qemu-devel
Cc: qemu-ppc, danielhb413, peter.maydell, richard.henderson,
Cédric Le Goater
From: Cédric Le Goater <clg@kaod.org>
The OPB arbitrer is currently modeled as a simple SysBus device with a
unique memory region.
Reviewed-by: Daniel Henrique Barboza <danielhb413@gmail.com>
Signed-off-by: Cédric Le Goater <clg@kaod.org>
[balaton: ppc4xx_dcr_register changes]
Signed-off-by: BALATON Zoltan <balaton@eik.bme.hu>
Message-Id: <38476bc43d2332db2f09dbede9eff5234d6ce217.1660746880.git.balaton@eik.bme.hu>
Signed-off-by: Daniel Henrique Barboza <danielhb413@gmail.com>
---
hw/ppc/ppc405.h | 12 +++++++++++
hw/ppc/ppc405_uc.c | 49 +++++++++++++++++++++++++++------------------
hw/ppc/trace-events | 1 -
3 files changed, 41 insertions(+), 21 deletions(-)
diff --git a/hw/ppc/ppc405.h b/hw/ppc/ppc405.h
index 82bf8dae93..d63c2acdc7 100644
--- a/hw/ppc/ppc405.h
+++ b/hw/ppc/ppc405.h
@@ -63,6 +63,17 @@ struct ppc4xx_bd_info_t {
uint32_t bi_iic_fast[2];
};
+/* OPB arbitrer */
+#define TYPE_PPC405_OPBA "ppc405-opba"
+OBJECT_DECLARE_SIMPLE_TYPE(Ppc405OpbaState, PPC405_OPBA);
+struct Ppc405OpbaState {
+ SysBusDevice parent_obj;
+
+ MemoryRegion io;
+ uint8_t cr;
+ uint8_t pr;
+};
+
/* Peripheral controller */
#define TYPE_PPC405_EBC "ppc405-ebc"
OBJECT_DECLARE_SIMPLE_TYPE(Ppc405EbcState, PPC405_EBC);
@@ -208,6 +219,7 @@ struct Ppc405SoCState {
Ppc405GpioState gpio;
Ppc405DmaState dma;
Ppc405EbcState ebc;
+ Ppc405OpbaState opba;
};
/* PowerPC 405 core */
diff --git a/hw/ppc/ppc405_uc.c b/hw/ppc/ppc405_uc.c
index ff81fb3e20..2c482bc25c 100644
--- a/hw/ppc/ppc405_uc.c
+++ b/hw/ppc/ppc405_uc.c
@@ -310,16 +310,9 @@ static void ppc4xx_pob_init(CPUPPCState *env)
/*****************************************************************************/
/* OPB arbitrer */
-typedef struct ppc4xx_opba_t ppc4xx_opba_t;
-struct ppc4xx_opba_t {
- MemoryRegion io;
- uint8_t cr;
- uint8_t pr;
-};
-
static uint64_t opba_readb(void *opaque, hwaddr addr, unsigned size)
{
- ppc4xx_opba_t *opba = opaque;
+ Ppc405OpbaState *opba = opaque;
uint32_t ret;
switch (addr) {
@@ -341,7 +334,7 @@ static uint64_t opba_readb(void *opaque, hwaddr addr, unsigned size)
static void opba_writeb(void *opaque, hwaddr addr, uint64_t value,
unsigned size)
{
- ppc4xx_opba_t *opba = opaque;
+ Ppc405OpbaState *opba = opaque;
trace_opba_writeb(addr, value);
@@ -366,25 +359,30 @@ static const MemoryRegionOps opba_ops = {
.endianness = DEVICE_BIG_ENDIAN,
};
-static void ppc4xx_opba_reset (void *opaque)
+static void ppc405_opba_reset(DeviceState *dev)
{
- ppc4xx_opba_t *opba;
+ Ppc405OpbaState *opba = PPC405_OPBA(dev);
- opba = opaque;
opba->cr = 0x00; /* No dynamic priorities - park disabled */
opba->pr = 0x11;
}
-static void ppc4xx_opba_init(hwaddr base)
+static void ppc405_opba_realize(DeviceState *dev, Error **errp)
{
- ppc4xx_opba_t *opba;
+ Ppc405OpbaState *s = PPC405_OPBA(dev);
+
+ memory_region_init_io(&s->io, OBJECT(s), &opba_ops, s, "opba", 2);
+ sysbus_init_mmio(SYS_BUS_DEVICE(s), &s->io);
+}
- trace_opba_init(base);
+static void ppc405_opba_class_init(ObjectClass *oc, void *data)
+{
+ DeviceClass *dc = DEVICE_CLASS(oc);
- opba = g_new0(ppc4xx_opba_t, 1);
- memory_region_init_io(&opba->io, NULL, &opba_ops, opba, "opba", 0x002);
- memory_region_add_subregion(get_system_memory(), base, &opba->io);
- qemu_register_reset(ppc4xx_opba_reset, opba);
+ dc->realize = ppc405_opba_realize;
+ dc->reset = ppc405_opba_reset;
+ /* Reason: only works as function of a ppc4xx SoC */
+ dc->user_creatable = false;
}
/*****************************************************************************/
@@ -1373,6 +1371,8 @@ static void ppc405_soc_instance_init(Object *obj)
object_initialize_child(obj, "dma", &s->dma, TYPE_PPC405_DMA);
object_initialize_child(obj, "ebc", &s->ebc, TYPE_PPC405_EBC);
+
+ object_initialize_child(obj, "opba", &s->opba, TYPE_PPC405_OPBA);
}
static void ppc405_reset(void *opaque)
@@ -1410,7 +1410,11 @@ static void ppc405_soc_realize(DeviceState *dev, Error **errp)
ppc4xx_pob_init(env);
/* OBP arbitrer */
- ppc4xx_opba_init(0xef600600);
+ sbd = SYS_BUS_DEVICE(&s->opba);
+ if (!sysbus_realize(sbd, errp)) {
+ return;
+ }
+ sysbus_mmio_map(sbd, 0, 0xef600600);
/* Universal interrupt controller */
s->uic = qdev_new(TYPE_PPC_UIC);
@@ -1523,6 +1527,11 @@ static void ppc405_soc_class_init(ObjectClass *oc, void *data)
static const TypeInfo ppc405_types[] = {
{
+ .name = TYPE_PPC405_OPBA,
+ .parent = TYPE_SYS_BUS_DEVICE,
+ .instance_size = sizeof(Ppc405OpbaState),
+ .class_init = ppc405_opba_class_init,
+ }, {
.name = TYPE_PPC405_EBC,
.parent = TYPE_PPC4xx_DCR_DEVICE,
.instance_size = sizeof(Ppc405EbcState),
diff --git a/hw/ppc/trace-events b/hw/ppc/trace-events
index 69a95f9f57..a07d5aca0f 100644
--- a/hw/ppc/trace-events
+++ b/hw/ppc/trace-events
@@ -161,7 +161,6 @@ ppc440_pcix_reg_write(uint64_t addr, uint32_t val, uint32_t size) "addr 0x%" PRI
# ppc405_boards.c
opba_readb(uint64_t addr, uint32_t val) "addr 0x%" PRIx64 " = 0x%" PRIx32
opba_writeb(uint64_t addr, uint64_t val) "addr 0x%" PRIx64 " = 0x%" PRIx64
-opba_init(uint64_t addr) "offet 0x%" PRIx64
ppc405_gpio_read(uint64_t addr, uint32_t size) "addr 0x%" PRIx64 " size %d"
ppc405_gpio_write(uint64_t addr, uint32_t size, uint64_t val) "addr 0x%" PRIx64 " size %d = 0x%" PRIx64
--
2.37.2
^ permalink raw reply related [flat|nested] 63+ messages in thread
* [PULL 45/60] ppc/ppc405: QOM'ify POB
2022-08-31 18:49 [PULL 00/60] ppc queue Daniel Henrique Barboza
` (43 preceding siblings ...)
2022-08-31 18:50 ` [PULL 44/60] ppc/ppc405: QOM'ify OPBA Daniel Henrique Barboza
@ 2022-08-31 18:50 ` Daniel Henrique Barboza
2022-08-31 18:50 ` [PULL 46/60] ppc/ppc405: QOM'ify PLB Daniel Henrique Barboza
` (15 subsequent siblings)
60 siblings, 0 replies; 63+ messages in thread
From: Daniel Henrique Barboza @ 2022-08-31 18:50 UTC (permalink / raw)
To: qemu-devel
Cc: qemu-ppc, danielhb413, peter.maydell, richard.henderson,
Cédric Le Goater
From: Cédric Le Goater <clg@kaod.org>
POB is currently modeled as a simple DCR device.
Reviewed-by: Daniel Henrique Barboza <danielhb413@gmail.com>
Signed-off-by: Cédric Le Goater <clg@kaod.org>
[balaton: ppc4xx_dcr_register changes]
Signed-off-by: BALATON Zoltan <balaton@eik.bme.hu>
Message-Id: <2bb1a89182523059ecb0e8d20c22a293534dec17.1660746880.git.balaton@eik.bme.hu>
Signed-off-by: Daniel Henrique Barboza <danielhb413@gmail.com>
---
hw/ppc/ppc405.h | 12 ++++++++++
hw/ppc/ppc405_uc.c | 56 ++++++++++++++++++++++++++--------------------
2 files changed, 44 insertions(+), 24 deletions(-)
diff --git a/hw/ppc/ppc405.h b/hw/ppc/ppc405.h
index d63c2acdc7..4140e811d5 100644
--- a/hw/ppc/ppc405.h
+++ b/hw/ppc/ppc405.h
@@ -63,6 +63,17 @@ struct ppc4xx_bd_info_t {
uint32_t bi_iic_fast[2];
};
+/* PLB to OPB bridge */
+#define TYPE_PPC405_POB "ppc405-pob"
+OBJECT_DECLARE_SIMPLE_TYPE(Ppc405PobState, PPC405_POB);
+struct Ppc405PobState {
+ Ppc4xxDcrDeviceState parent_obj;
+
+ uint32_t bear;
+ uint32_t besr0;
+ uint32_t besr1;
+};
+
/* OPB arbitrer */
#define TYPE_PPC405_OPBA "ppc405-opba"
OBJECT_DECLARE_SIMPLE_TYPE(Ppc405OpbaState, PPC405_OPBA);
@@ -220,6 +231,7 @@ struct Ppc405SoCState {
Ppc405DmaState dma;
Ppc405EbcState ebc;
Ppc405OpbaState opba;
+ Ppc405PobState pob;
};
/* PowerPC 405 core */
diff --git a/hw/ppc/ppc405_uc.c b/hw/ppc/ppc405_uc.c
index 2c482bc25c..e5604c3421 100644
--- a/hw/ppc/ppc405_uc.c
+++ b/hw/ppc/ppc405_uc.c
@@ -234,19 +234,11 @@ enum {
POB0_BEAR = 0x0A4,
};
-typedef struct ppc4xx_pob_t ppc4xx_pob_t;
-struct ppc4xx_pob_t {
- uint32_t bear;
- uint32_t besr0;
- uint32_t besr1;
-};
-
-static uint32_t dcr_read_pob (void *opaque, int dcrn)
+static uint32_t dcr_read_pob(void *opaque, int dcrn)
{
- ppc4xx_pob_t *pob;
+ Ppc405PobState *pob = opaque;
uint32_t ret;
- pob = opaque;
switch (dcrn) {
case POB0_BEAR:
ret = pob->bear;
@@ -266,11 +258,10 @@ static uint32_t dcr_read_pob (void *opaque, int dcrn)
return ret;
}
-static void dcr_write_pob (void *opaque, int dcrn, uint32_t val)
+static void dcr_write_pob(void *opaque, int dcrn, uint32_t val)
{
- ppc4xx_pob_t *pob;
+ Ppc405PobState *pob = opaque;
- pob = opaque;
switch (dcrn) {
case POB0_BEAR:
/* Read only */
@@ -286,26 +277,34 @@ static void dcr_write_pob (void *opaque, int dcrn, uint32_t val)
}
}
-static void ppc4xx_pob_reset (void *opaque)
+static void ppc405_pob_reset(DeviceState *dev)
{
- ppc4xx_pob_t *pob;
+ Ppc405PobState *pob = PPC405_POB(dev);
- pob = opaque;
/* No error */
pob->bear = 0x00000000;
pob->besr0 = 0x0000000;
pob->besr1 = 0x0000000;
}
-static void ppc4xx_pob_init(CPUPPCState *env)
+static void ppc405_pob_realize(DeviceState *dev, Error **errp)
+{
+ Ppc405PobState *pob = PPC405_POB(dev);
+ Ppc4xxDcrDeviceState *dcr = PPC4xx_DCR_DEVICE(dev);
+
+ ppc4xx_dcr_register(dcr, POB0_BEAR, pob, &dcr_read_pob, &dcr_write_pob);
+ ppc4xx_dcr_register(dcr, POB0_BESR0, pob, &dcr_read_pob, &dcr_write_pob);
+ ppc4xx_dcr_register(dcr, POB0_BESR1, pob, &dcr_read_pob, &dcr_write_pob);
+}
+
+static void ppc405_pob_class_init(ObjectClass *oc, void *data)
{
- ppc4xx_pob_t *pob;
+ DeviceClass *dc = DEVICE_CLASS(oc);
- pob = g_new0(ppc4xx_pob_t, 1);
- ppc_dcr_register(env, POB0_BEAR, pob, &dcr_read_pob, &dcr_write_pob);
- ppc_dcr_register(env, POB0_BESR0, pob, &dcr_read_pob, &dcr_write_pob);
- ppc_dcr_register(env, POB0_BESR1, pob, &dcr_read_pob, &dcr_write_pob);
- qemu_register_reset(ppc4xx_pob_reset, pob);
+ dc->realize = ppc405_pob_realize;
+ dc->reset = ppc405_pob_reset;
+ /* Reason: only works as function of a ppc4xx SoC */
+ dc->user_creatable = false;
}
/*****************************************************************************/
@@ -1373,6 +1372,8 @@ static void ppc405_soc_instance_init(Object *obj)
object_initialize_child(obj, "ebc", &s->ebc, TYPE_PPC405_EBC);
object_initialize_child(obj, "opba", &s->opba, TYPE_PPC405_OPBA);
+
+ object_initialize_child(obj, "pob", &s->pob, TYPE_PPC405_POB);
}
static void ppc405_reset(void *opaque)
@@ -1407,7 +1408,9 @@ static void ppc405_soc_realize(DeviceState *dev, Error **errp)
ppc4xx_plb_init(env);
/* PLB to OPB bridge */
- ppc4xx_pob_init(env);
+ if (!ppc4xx_dcr_realize(PPC4xx_DCR_DEVICE(&s->pob), &s->cpu, errp)) {
+ return;
+ }
/* OBP arbitrer */
sbd = SYS_BUS_DEVICE(&s->opba);
@@ -1527,6 +1530,11 @@ static void ppc405_soc_class_init(ObjectClass *oc, void *data)
static const TypeInfo ppc405_types[] = {
{
+ .name = TYPE_PPC405_POB,
+ .parent = TYPE_PPC4xx_DCR_DEVICE,
+ .instance_size = sizeof(Ppc405PobState),
+ .class_init = ppc405_pob_class_init,
+ }, {
.name = TYPE_PPC405_OPBA,
.parent = TYPE_SYS_BUS_DEVICE,
.instance_size = sizeof(Ppc405OpbaState),
--
2.37.2
^ permalink raw reply related [flat|nested] 63+ messages in thread
* [PULL 46/60] ppc/ppc405: QOM'ify PLB
2022-08-31 18:49 [PULL 00/60] ppc queue Daniel Henrique Barboza
` (44 preceding siblings ...)
2022-08-31 18:50 ` [PULL 45/60] ppc/ppc405: QOM'ify POB Daniel Henrique Barboza
@ 2022-08-31 18:50 ` Daniel Henrique Barboza
2022-08-31 18:50 ` [PULL 47/60] ppc/ppc405: QOM'ify MAL Daniel Henrique Barboza
` (14 subsequent siblings)
60 siblings, 0 replies; 63+ messages in thread
From: Daniel Henrique Barboza @ 2022-08-31 18:50 UTC (permalink / raw)
To: qemu-devel
Cc: qemu-ppc, danielhb413, peter.maydell, richard.henderson,
Cédric Le Goater
From: Cédric Le Goater <clg@kaod.org>
PLB is currently modeled as a simple DCR device. Also drop the
ppc4xx_plb_init() helper and adapt the sam460ex machine.
Reviewed-by: Daniel Henrique Barboza <danielhb413@gmail.com>
Signed-off-by: Cédric Le Goater <clg@kaod.org>
[balaton: ppc4xx_dcr_register changes]
Signed-off-by: BALATON Zoltan <balaton@eik.bme.hu>
Message-Id: <c4256d1bffca86fe1d696aa9c56732e5f563e114.1660746880.git.balaton@eik.bme.hu>
Signed-off-by: Daniel Henrique Barboza <danielhb413@gmail.com>
---
hw/ppc/ppc405.h | 14 ++++++++--
hw/ppc/ppc405_uc.c | 64 ++++++++++++++++++++++++++--------------------
hw/ppc/sam460ex.c | 4 ++-
3 files changed, 51 insertions(+), 31 deletions(-)
diff --git a/hw/ppc/ppc405.h b/hw/ppc/ppc405.h
index 4140e811d5..cb34792daf 100644
--- a/hw/ppc/ppc405.h
+++ b/hw/ppc/ppc405.h
@@ -63,6 +63,17 @@ struct ppc4xx_bd_info_t {
uint32_t bi_iic_fast[2];
};
+/* Peripheral local bus arbitrer */
+#define TYPE_PPC405_PLB "ppc405-plb"
+OBJECT_DECLARE_SIMPLE_TYPE(Ppc405PlbState, PPC405_PLB);
+struct Ppc405PlbState {
+ Ppc4xxDcrDeviceState parent_obj;
+
+ uint32_t acr;
+ uint32_t bear;
+ uint32_t besr;
+};
+
/* PLB to OPB bridge */
#define TYPE_PPC405_POB "ppc405-pob"
OBJECT_DECLARE_SIMPLE_TYPE(Ppc405PobState, PPC405_POB);
@@ -232,11 +243,10 @@ struct Ppc405SoCState {
Ppc405EbcState ebc;
Ppc405OpbaState opba;
Ppc405PobState pob;
+ Ppc405PlbState plb;
};
/* PowerPC 405 core */
ram_addr_t ppc405_set_bootinfo(CPUPPCState *env, ram_addr_t ram_size);
-void ppc4xx_plb_init(CPUPPCState *env);
-
#endif /* PPC405_H */
diff --git a/hw/ppc/ppc405_uc.c b/hw/ppc/ppc405_uc.c
index e5604c3421..9ed3ce4ebe 100644
--- a/hw/ppc/ppc405_uc.c
+++ b/hw/ppc/ppc405_uc.c
@@ -148,19 +148,11 @@ enum {
PLB4A1_ACR = 0x089,
};
-typedef struct ppc4xx_plb_t ppc4xx_plb_t;
-struct ppc4xx_plb_t {
- uint32_t acr;
- uint32_t bear;
- uint32_t besr;
-};
-
-static uint32_t dcr_read_plb (void *opaque, int dcrn)
+static uint32_t dcr_read_plb(void *opaque, int dcrn)
{
- ppc4xx_plb_t *plb;
+ Ppc405PlbState *plb = opaque;
uint32_t ret;
- plb = opaque;
switch (dcrn) {
case PLB0_ACR:
ret = plb->acr;
@@ -180,11 +172,10 @@ static uint32_t dcr_read_plb (void *opaque, int dcrn)
return ret;
}
-static void dcr_write_plb (void *opaque, int dcrn, uint32_t val)
+static void dcr_write_plb(void *opaque, int dcrn, uint32_t val)
{
- ppc4xx_plb_t *plb;
+ Ppc405PlbState *plb = opaque;
- plb = opaque;
switch (dcrn) {
case PLB0_ACR:
/* We don't care about the actual parameters written as
@@ -202,28 +193,36 @@ static void dcr_write_plb (void *opaque, int dcrn, uint32_t val)
}
}
-static void ppc4xx_plb_reset (void *opaque)
+static void ppc405_plb_reset(DeviceState *dev)
{
- ppc4xx_plb_t *plb;
+ Ppc405PlbState *plb = PPC405_PLB(dev);
- plb = opaque;
plb->acr = 0x00000000;
plb->bear = 0x00000000;
plb->besr = 0x00000000;
}
-void ppc4xx_plb_init(CPUPPCState *env)
+static void ppc405_plb_realize(DeviceState *dev, Error **errp)
+{
+ Ppc405PlbState *plb = PPC405_PLB(dev);
+ Ppc4xxDcrDeviceState *dcr = PPC4xx_DCR_DEVICE(dev);
+
+ ppc4xx_dcr_register(dcr, PLB3A0_ACR, plb, &dcr_read_plb, &dcr_write_plb);
+ ppc4xx_dcr_register(dcr, PLB4A0_ACR, plb, &dcr_read_plb, &dcr_write_plb);
+ ppc4xx_dcr_register(dcr, PLB0_ACR, plb, &dcr_read_plb, &dcr_write_plb);
+ ppc4xx_dcr_register(dcr, PLB0_BEAR, plb, &dcr_read_plb, &dcr_write_plb);
+ ppc4xx_dcr_register(dcr, PLB0_BESR, plb, &dcr_read_plb, &dcr_write_plb);
+ ppc4xx_dcr_register(dcr, PLB4A1_ACR, plb, &dcr_read_plb, &dcr_write_plb);
+}
+
+static void ppc405_plb_class_init(ObjectClass *oc, void *data)
{
- ppc4xx_plb_t *plb;
-
- plb = g_new0(ppc4xx_plb_t, 1);
- ppc_dcr_register(env, PLB3A0_ACR, plb, &dcr_read_plb, &dcr_write_plb);
- ppc_dcr_register(env, PLB4A0_ACR, plb, &dcr_read_plb, &dcr_write_plb);
- ppc_dcr_register(env, PLB0_ACR, plb, &dcr_read_plb, &dcr_write_plb);
- ppc_dcr_register(env, PLB0_BEAR, plb, &dcr_read_plb, &dcr_write_plb);
- ppc_dcr_register(env, PLB0_BESR, plb, &dcr_read_plb, &dcr_write_plb);
- ppc_dcr_register(env, PLB4A1_ACR, plb, &dcr_read_plb, &dcr_write_plb);
- qemu_register_reset(ppc4xx_plb_reset, plb);
+ DeviceClass *dc = DEVICE_CLASS(oc);
+
+ dc->realize = ppc405_plb_realize;
+ dc->reset = ppc405_plb_reset;
+ /* Reason: only works as function of a ppc4xx SoC */
+ dc->user_creatable = false;
}
/*****************************************************************************/
@@ -1374,6 +1373,8 @@ static void ppc405_soc_instance_init(Object *obj)
object_initialize_child(obj, "opba", &s->opba, TYPE_PPC405_OPBA);
object_initialize_child(obj, "pob", &s->pob, TYPE_PPC405_POB);
+
+ object_initialize_child(obj, "plb", &s->plb, TYPE_PPC405_PLB);
}
static void ppc405_reset(void *opaque)
@@ -1405,7 +1406,9 @@ static void ppc405_soc_realize(DeviceState *dev, Error **errp)
}
/* PLB arbitrer */
- ppc4xx_plb_init(env);
+ if (!ppc4xx_dcr_realize(PPC4xx_DCR_DEVICE(&s->plb), &s->cpu, errp)) {
+ return;
+ }
/* PLB to OPB bridge */
if (!ppc4xx_dcr_realize(PPC4xx_DCR_DEVICE(&s->pob), &s->cpu, errp)) {
@@ -1530,6 +1533,11 @@ static void ppc405_soc_class_init(ObjectClass *oc, void *data)
static const TypeInfo ppc405_types[] = {
{
+ .name = TYPE_PPC405_PLB,
+ .parent = TYPE_PPC4xx_DCR_DEVICE,
+ .instance_size = sizeof(Ppc405PlbState),
+ .class_init = ppc405_plb_class_init,
+ }, {
.name = TYPE_PPC405_POB,
.parent = TYPE_PPC4xx_DCR_DEVICE,
.instance_size = sizeof(Ppc405PobState),
diff --git a/hw/ppc/sam460ex.c b/hw/ppc/sam460ex.c
index 320c61a7f3..31139c1554 100644
--- a/hw/ppc/sam460ex.c
+++ b/hw/ppc/sam460ex.c
@@ -309,7 +309,9 @@ static void sam460ex_init(MachineState *machine)
ppc_dcr_init(env, NULL, NULL);
/* PLB arbitrer */
- ppc4xx_plb_init(env);
+ dev = qdev_new(TYPE_PPC405_PLB);
+ ppc4xx_dcr_realize(PPC4xx_DCR_DEVICE(dev), cpu, &error_fatal);
+ object_unref(OBJECT(dev));
/* interrupt controllers */
for (i = 0; i < ARRAY_SIZE(uic); i++) {
--
2.37.2
^ permalink raw reply related [flat|nested] 63+ messages in thread
* [PULL 47/60] ppc/ppc405: QOM'ify MAL
2022-08-31 18:49 [PULL 00/60] ppc queue Daniel Henrique Barboza
` (45 preceding siblings ...)
2022-08-31 18:50 ` [PULL 46/60] ppc/ppc405: QOM'ify PLB Daniel Henrique Barboza
@ 2022-08-31 18:50 ` Daniel Henrique Barboza
2022-08-31 18:50 ` [PULL 48/60] ppc4xx: Move PLB model to ppc4xx_devs.c Daniel Henrique Barboza
` (13 subsequent siblings)
60 siblings, 0 replies; 63+ messages in thread
From: Daniel Henrique Barboza @ 2022-08-31 18:50 UTC (permalink / raw)
To: qemu-devel
Cc: qemu-ppc, danielhb413, peter.maydell, richard.henderson,
Cédric Le Goater
From: Cédric Le Goater <clg@kaod.org>
The Memory Access Layer (MAL) controller is currently modeled as a DCR
device with 4 IRQs. Also drop the ppc4xx_mal_init() helper and adapt
the sam460ex machine.
Reviewed-by: Daniel Henrique Barboza <danielhb413@gmail.com>
Signed-off-by: Cédric Le Goater <clg@kaod.org>
[balaton: ppc4xx_dcr_register changes, add finalize method]
Signed-off-by: BALATON Zoltan <balaton@eik.bme.hu>
Message-Id: <d54a243dff94d95ba30dbcc09c27700a90ade932.1660746880.git.balaton@eik.bme.hu>
Signed-off-by: Daniel Henrique Barboza <danielhb413@gmail.com>
---
hw/ppc/ppc405.h | 1 +
hw/ppc/ppc405_uc.c | 17 +++--
hw/ppc/ppc4xx_devs.c | 145 ++++++++++++++++++++--------------------
hw/ppc/sam460ex.c | 12 ++--
include/hw/ppc/ppc4xx.h | 28 +++++++-
5 files changed, 117 insertions(+), 86 deletions(-)
diff --git a/hw/ppc/ppc405.h b/hw/ppc/ppc405.h
index cb34792daf..31c94e4742 100644
--- a/hw/ppc/ppc405.h
+++ b/hw/ppc/ppc405.h
@@ -244,6 +244,7 @@ struct Ppc405SoCState {
Ppc405OpbaState opba;
Ppc405PobState pob;
Ppc405PlbState plb;
+ Ppc4xxMalState mal;
};
/* PowerPC 405 core */
diff --git a/hw/ppc/ppc405_uc.c b/hw/ppc/ppc405_uc.c
index 9ed3ce4ebe..b02dab05b3 100644
--- a/hw/ppc/ppc405_uc.c
+++ b/hw/ppc/ppc405_uc.c
@@ -1375,6 +1375,8 @@ static void ppc405_soc_instance_init(Object *obj)
object_initialize_child(obj, "pob", &s->pob, TYPE_PPC405_POB);
object_initialize_child(obj, "plb", &s->plb, TYPE_PPC405_PLB);
+
+ object_initialize_child(obj, "mal", &s->mal, TYPE_PPC4xx_MAL);
}
static void ppc405_reset(void *opaque)
@@ -1385,7 +1387,6 @@ static void ppc405_reset(void *opaque)
static void ppc405_soc_realize(DeviceState *dev, Error **errp)
{
Ppc405SoCState *s = PPC405_SOC(dev);
- qemu_irq mal_irqs[4];
CPUPPCState *env;
SysBusDevice *sbd;
int i;
@@ -1503,11 +1504,15 @@ static void ppc405_soc_realize(DeviceState *dev, Error **errp)
}
/* MAL */
- mal_irqs[0] = qdev_get_gpio_in(s->uic, 11);
- mal_irqs[1] = qdev_get_gpio_in(s->uic, 12);
- mal_irqs[2] = qdev_get_gpio_in(s->uic, 13);
- mal_irqs[3] = qdev_get_gpio_in(s->uic, 14);
- ppc4xx_mal_init(env, 4, 2, mal_irqs);
+ object_property_set_int(OBJECT(&s->mal), "txc-num", 4, &error_abort);
+ object_property_set_int(OBJECT(&s->mal), "rxc-num", 2, &error_abort);
+ if (!ppc4xx_dcr_realize(PPC4xx_DCR_DEVICE(&s->mal), &s->cpu, errp)) {
+ return;
+ }
+ sbd = SYS_BUS_DEVICE(&s->mal);
+ for (i = 0; i < ARRAY_SIZE(s->mal.irqs); i++) {
+ sysbus_connect_irq(sbd, i, qdev_get_gpio_in(s->uic, 11 + i));
+ }
/* Ethernet */
/* Uses UIC IRQs 9, 15, 17 */
diff --git a/hw/ppc/ppc4xx_devs.c b/hw/ppc/ppc4xx_devs.c
index f4d7ae9567..7d40c1b68a 100644
--- a/hw/ppc/ppc4xx_devs.c
+++ b/hw/ppc/ppc4xx_devs.c
@@ -459,32 +459,10 @@ enum {
MAL0_RCBS1 = 0x1E1,
};
-typedef struct ppc4xx_mal_t ppc4xx_mal_t;
-struct ppc4xx_mal_t {
- qemu_irq irqs[4];
- uint32_t cfg;
- uint32_t esr;
- uint32_t ier;
- uint32_t txcasr;
- uint32_t txcarr;
- uint32_t txeobisr;
- uint32_t txdeir;
- uint32_t rxcasr;
- uint32_t rxcarr;
- uint32_t rxeobisr;
- uint32_t rxdeir;
- uint32_t *txctpr;
- uint32_t *rxctpr;
- uint32_t *rcbs;
- uint8_t txcnum;
- uint8_t rxcnum;
-};
-
-static void ppc4xx_mal_reset(void *opaque)
+static void ppc4xx_mal_reset(DeviceState *dev)
{
- ppc4xx_mal_t *mal;
+ Ppc4xxMalState *mal = PPC4xx_MAL(dev);
- mal = opaque;
mal->cfg = 0x0007C000;
mal->esr = 0x00000000;
mal->ier = 0x00000000;
@@ -498,10 +476,9 @@ static void ppc4xx_mal_reset(void *opaque)
static uint32_t dcr_read_mal(void *opaque, int dcrn)
{
- ppc4xx_mal_t *mal;
+ Ppc4xxMalState *mal = opaque;
uint32_t ret;
- mal = opaque;
switch (dcrn) {
case MAL0_CFG:
ret = mal->cfg;
@@ -555,13 +532,12 @@ static uint32_t dcr_read_mal(void *opaque, int dcrn)
static void dcr_write_mal(void *opaque, int dcrn, uint32_t val)
{
- ppc4xx_mal_t *mal;
+ Ppc4xxMalState *mal = opaque;
- mal = opaque;
switch (dcrn) {
case MAL0_CFG:
if (val & 0x80000000) {
- ppc4xx_mal_reset(mal);
+ ppc4xx_mal_reset(DEVICE(mal));
}
mal->cfg = val & 0x00FFC087;
break;
@@ -612,59 +588,76 @@ static void dcr_write_mal(void *opaque, int dcrn, uint32_t val)
}
}
-void ppc4xx_mal_init(CPUPPCState *env, uint8_t txcnum, uint8_t rxcnum,
- qemu_irq irqs[4])
+static void ppc4xx_mal_realize(DeviceState *dev, Error **errp)
{
- ppc4xx_mal_t *mal;
+ Ppc4xxMalState *mal = PPC4xx_MAL(dev);
+ Ppc4xxDcrDeviceState *dcr = PPC4xx_DCR_DEVICE(dev);
int i;
- assert(txcnum <= 32 && rxcnum <= 32);
- mal = g_malloc0(sizeof(*mal));
- mal->txcnum = txcnum;
- mal->rxcnum = rxcnum;
- mal->txctpr = g_new0(uint32_t, txcnum);
- mal->rxctpr = g_new0(uint32_t, rxcnum);
- mal->rcbs = g_new0(uint32_t, rxcnum);
- for (i = 0; i < 4; i++) {
- mal->irqs[i] = irqs[i];
+ if (mal->txcnum > 32 || mal->rxcnum > 32) {
+ error_setg(errp, "invalid TXC/RXC number");
+ return;
+ }
+
+ mal->txctpr = g_new0(uint32_t, mal->txcnum);
+ mal->rxctpr = g_new0(uint32_t, mal->rxcnum);
+ mal->rcbs = g_new0(uint32_t, mal->rxcnum);
+
+ for (i = 0; i < ARRAY_SIZE(mal->irqs); i++) {
+ sysbus_init_irq(SYS_BUS_DEVICE(dev), &mal->irqs[i]);
}
- qemu_register_reset(&ppc4xx_mal_reset, mal);
- ppc_dcr_register(env, MAL0_CFG,
- mal, &dcr_read_mal, &dcr_write_mal);
- ppc_dcr_register(env, MAL0_ESR,
- mal, &dcr_read_mal, &dcr_write_mal);
- ppc_dcr_register(env, MAL0_IER,
- mal, &dcr_read_mal, &dcr_write_mal);
- ppc_dcr_register(env, MAL0_TXCASR,
- mal, &dcr_read_mal, &dcr_write_mal);
- ppc_dcr_register(env, MAL0_TXCARR,
- mal, &dcr_read_mal, &dcr_write_mal);
- ppc_dcr_register(env, MAL0_TXEOBISR,
- mal, &dcr_read_mal, &dcr_write_mal);
- ppc_dcr_register(env, MAL0_TXDEIR,
- mal, &dcr_read_mal, &dcr_write_mal);
- ppc_dcr_register(env, MAL0_RXCASR,
- mal, &dcr_read_mal, &dcr_write_mal);
- ppc_dcr_register(env, MAL0_RXCARR,
- mal, &dcr_read_mal, &dcr_write_mal);
- ppc_dcr_register(env, MAL0_RXEOBISR,
- mal, &dcr_read_mal, &dcr_write_mal);
- ppc_dcr_register(env, MAL0_RXDEIR,
- mal, &dcr_read_mal, &dcr_write_mal);
- for (i = 0; i < txcnum; i++) {
- ppc_dcr_register(env, MAL0_TXCTP0R + i,
- mal, &dcr_read_mal, &dcr_write_mal);
+
+ ppc4xx_dcr_register(dcr, MAL0_CFG, mal, &dcr_read_mal, &dcr_write_mal);
+ ppc4xx_dcr_register(dcr, MAL0_ESR, mal, &dcr_read_mal, &dcr_write_mal);
+ ppc4xx_dcr_register(dcr, MAL0_IER, mal, &dcr_read_mal, &dcr_write_mal);
+ ppc4xx_dcr_register(dcr, MAL0_TXCASR, mal, &dcr_read_mal, &dcr_write_mal);
+ ppc4xx_dcr_register(dcr, MAL0_TXCARR, mal, &dcr_read_mal, &dcr_write_mal);
+ ppc4xx_dcr_register(dcr, MAL0_TXEOBISR, mal, &dcr_read_mal, &dcr_write_mal);
+ ppc4xx_dcr_register(dcr, MAL0_TXDEIR, mal, &dcr_read_mal, &dcr_write_mal);
+ ppc4xx_dcr_register(dcr, MAL0_RXCASR, mal, &dcr_read_mal, &dcr_write_mal);
+ ppc4xx_dcr_register(dcr, MAL0_RXCARR, mal, &dcr_read_mal, &dcr_write_mal);
+ ppc4xx_dcr_register(dcr, MAL0_RXEOBISR, mal, &dcr_read_mal, &dcr_write_mal);
+ ppc4xx_dcr_register(dcr, MAL0_RXDEIR, mal, &dcr_read_mal, &dcr_write_mal);
+ for (i = 0; i < mal->txcnum; i++) {
+ ppc4xx_dcr_register(dcr, MAL0_TXCTP0R + i,
+ mal, &dcr_read_mal, &dcr_write_mal);
}
- for (i = 0; i < rxcnum; i++) {
- ppc_dcr_register(env, MAL0_RXCTP0R + i,
- mal, &dcr_read_mal, &dcr_write_mal);
+ for (i = 0; i < mal->rxcnum; i++) {
+ ppc4xx_dcr_register(dcr, MAL0_RXCTP0R + i,
+ mal, &dcr_read_mal, &dcr_write_mal);
}
- for (i = 0; i < rxcnum; i++) {
- ppc_dcr_register(env, MAL0_RCBS0 + i,
- mal, &dcr_read_mal, &dcr_write_mal);
+ for (i = 0; i < mal->rxcnum; i++) {
+ ppc4xx_dcr_register(dcr, MAL0_RCBS0 + i,
+ mal, &dcr_read_mal, &dcr_write_mal);
}
}
+static void ppc4xx_mal_finalize(Object *obj)
+{
+ Ppc4xxMalState *mal = PPC4xx_MAL(obj);
+
+ g_free(mal->rcbs);
+ g_free(mal->rxctpr);
+ g_free(mal->txctpr);
+}
+
+static Property ppc4xx_mal_properties[] = {
+ DEFINE_PROP_UINT8("txc-num", Ppc4xxMalState, txcnum, 0),
+ DEFINE_PROP_UINT8("rxc-num", Ppc4xxMalState, rxcnum, 0),
+ DEFINE_PROP_END_OF_LIST(),
+};
+
+static void ppc4xx_mal_class_init(ObjectClass *oc, void *data)
+{
+ DeviceClass *dc = DEVICE_CLASS(oc);
+
+ dc->realize = ppc4xx_mal_realize;
+ dc->reset = ppc4xx_mal_reset;
+ /* Reason: only works as function of a ppc4xx SoC */
+ dc->user_creatable = false;
+ device_class_set_props(dc, ppc4xx_mal_properties);
+}
+
/* PPC4xx_DCR_DEVICE */
void ppc4xx_dcr_register(Ppc4xxDcrDeviceState *dev, int dcrn, void *opaque,
@@ -696,6 +689,12 @@ static void ppc4xx_dcr_class_init(ObjectClass *oc, void *data)
static const TypeInfo ppc4xx_types[] = {
{
+ .name = TYPE_PPC4xx_MAL,
+ .parent = TYPE_PPC4xx_DCR_DEVICE,
+ .instance_size = sizeof(Ppc4xxMalState),
+ .instance_finalize = ppc4xx_mal_finalize,
+ .class_init = ppc4xx_mal_class_init,
+ }, {
.name = TYPE_PPC4xx_DCR_DEVICE,
.parent = TYPE_SYS_BUS_DEVICE,
.instance_size = sizeof(Ppc4xxDcrDeviceState),
diff --git a/hw/ppc/sam460ex.c b/hw/ppc/sam460ex.c
index 31139c1554..c16303462d 100644
--- a/hw/ppc/sam460ex.c
+++ b/hw/ppc/sam460ex.c
@@ -280,7 +280,6 @@ static void sam460ex_init(MachineState *machine)
hwaddr ram_sizes[SDRAM_NR_BANKS] = {0};
MemoryRegion *l2cache_ram = g_new(MemoryRegion, 1);
DeviceState *uic[4];
- qemu_irq mal_irqs[4];
int i;
PCIBus *pci_bus;
PowerPCCPU *cpu;
@@ -387,10 +386,15 @@ static void sam460ex_init(MachineState *machine)
ppc4xx_sdr_init(env);
/* MAL */
- for (i = 0; i < ARRAY_SIZE(mal_irqs); i++) {
- mal_irqs[i] = qdev_get_gpio_in(uic[2], 3 + i);
+ dev = qdev_new(TYPE_PPC4xx_MAL);
+ qdev_prop_set_uint32(dev, "txc-num", 4);
+ qdev_prop_set_uint32(dev, "rxc-num", 16);
+ ppc4xx_dcr_realize(PPC4xx_DCR_DEVICE(dev), cpu, &error_fatal);
+ object_unref(OBJECT(dev));
+ sbdev = SYS_BUS_DEVICE(dev);
+ for (i = 0; i < ARRAY_SIZE(PPC4xx_MAL(dev)->irqs); i++) {
+ sysbus_connect_irq(sbdev, i, qdev_get_gpio_in(uic[2], 3 + i));
}
- ppc4xx_mal_init(env, 4, 16, mal_irqs);
/* DMA */
ppc4xx_dma_init(env, 0x200);
diff --git a/include/hw/ppc/ppc4xx.h b/include/hw/ppc/ppc4xx.h
index a537a5567b..f40bd49bc7 100644
--- a/include/hw/ppc/ppc4xx.h
+++ b/include/hw/ppc/ppc4xx.h
@@ -40,9 +40,6 @@ void ppc4xx_sdram_init (CPUPPCState *env, qemu_irq irq, int nbanks,
hwaddr *ram_sizes,
int do_init);
-void ppc4xx_mal_init(CPUPPCState *env, uint8_t txcnum, uint8_t rxcnum,
- qemu_irq irqs[4]);
-
#define TYPE_PPC4xx_PCI_HOST_BRIDGE "ppc4xx-pcihost"
/*
@@ -61,4 +58,29 @@ void ppc4xx_dcr_register(Ppc4xxDcrDeviceState *dev, int dcrn, void *opaque,
bool ppc4xx_dcr_realize(Ppc4xxDcrDeviceState *dev, PowerPCCPU *cpu,
Error **errp);
+/* Memory Access Layer (MAL) */
+#define TYPE_PPC4xx_MAL "ppc4xx-mal"
+OBJECT_DECLARE_SIMPLE_TYPE(Ppc4xxMalState, PPC4xx_MAL);
+struct Ppc4xxMalState {
+ Ppc4xxDcrDeviceState parent_obj;
+
+ qemu_irq irqs[4];
+ uint32_t cfg;
+ uint32_t esr;
+ uint32_t ier;
+ uint32_t txcasr;
+ uint32_t txcarr;
+ uint32_t txeobisr;
+ uint32_t txdeir;
+ uint32_t rxcasr;
+ uint32_t rxcarr;
+ uint32_t rxeobisr;
+ uint32_t rxdeir;
+ uint32_t *txctpr;
+ uint32_t *rxctpr;
+ uint32_t *rcbs;
+ uint8_t txcnum;
+ uint8_t rxcnum;
+};
+
#endif /* PPC4XX_H */
--
2.37.2
^ permalink raw reply related [flat|nested] 63+ messages in thread
* [PULL 48/60] ppc4xx: Move PLB model to ppc4xx_devs.c
2022-08-31 18:49 [PULL 00/60] ppc queue Daniel Henrique Barboza
` (46 preceding siblings ...)
2022-08-31 18:50 ` [PULL 47/60] ppc/ppc405: QOM'ify MAL Daniel Henrique Barboza
@ 2022-08-31 18:50 ` Daniel Henrique Barboza
2022-08-31 18:50 ` [PULL 49/60] ppc4xx: Rename ppc405-plb to ppc4xx-plb Daniel Henrique Barboza
` (12 subsequent siblings)
60 siblings, 0 replies; 63+ messages in thread
From: Daniel Henrique Barboza @ 2022-08-31 18:50 UTC (permalink / raw)
To: qemu-devel
Cc: qemu-ppc, danielhb413, peter.maydell, richard.henderson,
BALATON Zoltan
From: BALATON Zoltan <balaton@eik.bme.hu>
The PLB is shared between 405 and 440 so move it to the shared file.
Reviewed-by: Daniel Henrique Barboza <danielhb413@gmail.com>
Signed-off-by: BALATON Zoltan <balaton@eik.bme.hu>
Message-Id: <2498384bf3e18959ee8cb984d72fb66b8a6ecadc.1660746880.git.balaton@eik.bme.hu>
Signed-off-by: Daniel Henrique Barboza <danielhb413@gmail.com>
---
hw/ppc/ppc405.h | 11 -----
hw/ppc/ppc405_uc.c | 93 ----------------------------------------
hw/ppc/ppc4xx_devs.c | 94 +++++++++++++++++++++++++++++++++++++++++
include/hw/ppc/ppc4xx.h | 11 +++++
4 files changed, 105 insertions(+), 104 deletions(-)
diff --git a/hw/ppc/ppc405.h b/hw/ppc/ppc405.h
index 31c94e4742..d85c595f9d 100644
--- a/hw/ppc/ppc405.h
+++ b/hw/ppc/ppc405.h
@@ -63,17 +63,6 @@ struct ppc4xx_bd_info_t {
uint32_t bi_iic_fast[2];
};
-/* Peripheral local bus arbitrer */
-#define TYPE_PPC405_PLB "ppc405-plb"
-OBJECT_DECLARE_SIMPLE_TYPE(Ppc405PlbState, PPC405_PLB);
-struct Ppc405PlbState {
- Ppc4xxDcrDeviceState parent_obj;
-
- uint32_t acr;
- uint32_t bear;
- uint32_t besr;
-};
-
/* PLB to OPB bridge */
#define TYPE_PPC405_POB "ppc405-pob"
OBJECT_DECLARE_SIMPLE_TYPE(Ppc405PobState, PPC405_POB);
diff --git a/hw/ppc/ppc405_uc.c b/hw/ppc/ppc405_uc.c
index b02dab05b3..3382ed3252 100644
--- a/hw/ppc/ppc405_uc.c
+++ b/hw/ppc/ppc405_uc.c
@@ -137,94 +137,6 @@ ram_addr_t ppc405_set_bootinfo(CPUPPCState *env, ram_addr_t ram_size)
/*****************************************************************************/
/* Shared peripherals */
-/*****************************************************************************/
-/* Peripheral local bus arbitrer */
-enum {
- PLB3A0_ACR = 0x077,
- PLB4A0_ACR = 0x081,
- PLB0_BESR = 0x084,
- PLB0_BEAR = 0x086,
- PLB0_ACR = 0x087,
- PLB4A1_ACR = 0x089,
-};
-
-static uint32_t dcr_read_plb(void *opaque, int dcrn)
-{
- Ppc405PlbState *plb = opaque;
- uint32_t ret;
-
- switch (dcrn) {
- case PLB0_ACR:
- ret = plb->acr;
- break;
- case PLB0_BEAR:
- ret = plb->bear;
- break;
- case PLB0_BESR:
- ret = plb->besr;
- break;
- default:
- /* Avoid gcc warning */
- ret = 0;
- break;
- }
-
- return ret;
-}
-
-static void dcr_write_plb(void *opaque, int dcrn, uint32_t val)
-{
- Ppc405PlbState *plb = opaque;
-
- switch (dcrn) {
- case PLB0_ACR:
- /* We don't care about the actual parameters written as
- * we don't manage any priorities on the bus
- */
- plb->acr = val & 0xF8000000;
- break;
- case PLB0_BEAR:
- /* Read only */
- break;
- case PLB0_BESR:
- /* Write-clear */
- plb->besr &= ~val;
- break;
- }
-}
-
-static void ppc405_plb_reset(DeviceState *dev)
-{
- Ppc405PlbState *plb = PPC405_PLB(dev);
-
- plb->acr = 0x00000000;
- plb->bear = 0x00000000;
- plb->besr = 0x00000000;
-}
-
-static void ppc405_plb_realize(DeviceState *dev, Error **errp)
-{
- Ppc405PlbState *plb = PPC405_PLB(dev);
- Ppc4xxDcrDeviceState *dcr = PPC4xx_DCR_DEVICE(dev);
-
- ppc4xx_dcr_register(dcr, PLB3A0_ACR, plb, &dcr_read_plb, &dcr_write_plb);
- ppc4xx_dcr_register(dcr, PLB4A0_ACR, plb, &dcr_read_plb, &dcr_write_plb);
- ppc4xx_dcr_register(dcr, PLB0_ACR, plb, &dcr_read_plb, &dcr_write_plb);
- ppc4xx_dcr_register(dcr, PLB0_BEAR, plb, &dcr_read_plb, &dcr_write_plb);
- ppc4xx_dcr_register(dcr, PLB0_BESR, plb, &dcr_read_plb, &dcr_write_plb);
- ppc4xx_dcr_register(dcr, PLB4A1_ACR, plb, &dcr_read_plb, &dcr_write_plb);
-}
-
-static void ppc405_plb_class_init(ObjectClass *oc, void *data)
-{
- DeviceClass *dc = DEVICE_CLASS(oc);
-
- dc->realize = ppc405_plb_realize;
- dc->reset = ppc405_plb_reset;
- /* Reason: only works as function of a ppc4xx SoC */
- dc->user_creatable = false;
-}
-
/*****************************************************************************/
/* PLB to OPB bridge */
enum {
@@ -1538,11 +1450,6 @@ static void ppc405_soc_class_init(ObjectClass *oc, void *data)
static const TypeInfo ppc405_types[] = {
{
- .name = TYPE_PPC405_PLB,
- .parent = TYPE_PPC4xx_DCR_DEVICE,
- .instance_size = sizeof(Ppc405PlbState),
- .class_init = ppc405_plb_class_init,
- }, {
.name = TYPE_PPC405_POB,
.parent = TYPE_PPC4xx_DCR_DEVICE,
.instance_size = sizeof(Ppc405PobState),
diff --git a/hw/ppc/ppc4xx_devs.c b/hw/ppc/ppc4xx_devs.c
index 7d40c1b68a..843d759b1b 100644
--- a/hw/ppc/ppc4xx_devs.c
+++ b/hw/ppc/ppc4xx_devs.c
@@ -658,6 +658,95 @@ static void ppc4xx_mal_class_init(ObjectClass *oc, void *data)
device_class_set_props(dc, ppc4xx_mal_properties);
}
+/*****************************************************************************/
+/* Peripheral local bus arbitrer */
+enum {
+ PLB3A0_ACR = 0x077,
+ PLB4A0_ACR = 0x081,
+ PLB0_BESR = 0x084,
+ PLB0_BEAR = 0x086,
+ PLB0_ACR = 0x087,
+ PLB4A1_ACR = 0x089,
+};
+
+static uint32_t dcr_read_plb(void *opaque, int dcrn)
+{
+ Ppc405PlbState *plb = opaque;
+ uint32_t ret;
+
+ switch (dcrn) {
+ case PLB0_ACR:
+ ret = plb->acr;
+ break;
+ case PLB0_BEAR:
+ ret = plb->bear;
+ break;
+ case PLB0_BESR:
+ ret = plb->besr;
+ break;
+ default:
+ /* Avoid gcc warning */
+ ret = 0;
+ break;
+ }
+
+ return ret;
+}
+
+static void dcr_write_plb(void *opaque, int dcrn, uint32_t val)
+{
+ Ppc405PlbState *plb = opaque;
+
+ switch (dcrn) {
+ case PLB0_ACR:
+ /*
+ * We don't care about the actual parameters written as
+ * we don't manage any priorities on the bus
+ */
+ plb->acr = val & 0xF8000000;
+ break;
+ case PLB0_BEAR:
+ /* Read only */
+ break;
+ case PLB0_BESR:
+ /* Write-clear */
+ plb->besr &= ~val;
+ break;
+ }
+}
+
+static void ppc405_plb_reset(DeviceState *dev)
+{
+ Ppc405PlbState *plb = PPC405_PLB(dev);
+
+ plb->acr = 0x00000000;
+ plb->bear = 0x00000000;
+ plb->besr = 0x00000000;
+}
+
+static void ppc405_plb_realize(DeviceState *dev, Error **errp)
+{
+ Ppc405PlbState *plb = PPC405_PLB(dev);
+ Ppc4xxDcrDeviceState *dcr = PPC4xx_DCR_DEVICE(dev);
+
+ ppc4xx_dcr_register(dcr, PLB3A0_ACR, plb, &dcr_read_plb, &dcr_write_plb);
+ ppc4xx_dcr_register(dcr, PLB4A0_ACR, plb, &dcr_read_plb, &dcr_write_plb);
+ ppc4xx_dcr_register(dcr, PLB0_ACR, plb, &dcr_read_plb, &dcr_write_plb);
+ ppc4xx_dcr_register(dcr, PLB0_BEAR, plb, &dcr_read_plb, &dcr_write_plb);
+ ppc4xx_dcr_register(dcr, PLB0_BESR, plb, &dcr_read_plb, &dcr_write_plb);
+ ppc4xx_dcr_register(dcr, PLB4A1_ACR, plb, &dcr_read_plb, &dcr_write_plb);
+}
+
+static void ppc405_plb_class_init(ObjectClass *oc, void *data)
+{
+ DeviceClass *dc = DEVICE_CLASS(oc);
+
+ dc->realize = ppc405_plb_realize;
+ dc->reset = ppc405_plb_reset;
+ /* Reason: only works as function of a ppc4xx SoC */
+ dc->user_creatable = false;
+}
+
/* PPC4xx_DCR_DEVICE */
void ppc4xx_dcr_register(Ppc4xxDcrDeviceState *dev, int dcrn, void *opaque,
@@ -694,6 +783,11 @@ static const TypeInfo ppc4xx_types[] = {
.instance_size = sizeof(Ppc4xxMalState),
.instance_finalize = ppc4xx_mal_finalize,
.class_init = ppc4xx_mal_class_init,
+ }, {
+ .name = TYPE_PPC405_PLB,
+ .parent = TYPE_PPC4xx_DCR_DEVICE,
+ .instance_size = sizeof(Ppc405PlbState),
+ .class_init = ppc405_plb_class_init,
}, {
.name = TYPE_PPC4xx_DCR_DEVICE,
.parent = TYPE_SYS_BUS_DEVICE,
diff --git a/include/hw/ppc/ppc4xx.h b/include/hw/ppc/ppc4xx.h
index f40bd49bc7..e696e159f3 100644
--- a/include/hw/ppc/ppc4xx.h
+++ b/include/hw/ppc/ppc4xx.h
@@ -83,4 +83,15 @@ struct Ppc4xxMalState {
uint8_t rxcnum;
};
+/* Peripheral local bus arbitrer */
+#define TYPE_PPC405_PLB "ppc405-plb"
+OBJECT_DECLARE_SIMPLE_TYPE(Ppc405PlbState, PPC405_PLB);
+struct Ppc405PlbState {
+ Ppc4xxDcrDeviceState parent_obj;
+
+ uint32_t acr;
+ uint32_t bear;
+ uint32_t besr;
+};
+
#endif /* PPC4XX_H */
--
2.37.2
^ permalink raw reply related [flat|nested] 63+ messages in thread
* [PULL 49/60] ppc4xx: Rename ppc405-plb to ppc4xx-plb
2022-08-31 18:49 [PULL 00/60] ppc queue Daniel Henrique Barboza
` (47 preceding siblings ...)
2022-08-31 18:50 ` [PULL 48/60] ppc4xx: Move PLB model to ppc4xx_devs.c Daniel Henrique Barboza
@ 2022-08-31 18:50 ` Daniel Henrique Barboza
2022-08-31 18:50 ` [PULL 50/60] ppc4xx: Move EBC model to ppc4xx_devs.c Daniel Henrique Barboza
` (11 subsequent siblings)
60 siblings, 0 replies; 63+ messages in thread
From: Daniel Henrique Barboza @ 2022-08-31 18:50 UTC (permalink / raw)
To: qemu-devel
Cc: qemu-ppc, danielhb413, peter.maydell, richard.henderson,
BALATON Zoltan
From: BALATON Zoltan <balaton@eik.bme.hu>
This device is shared between different 4xx socs.
Reviewed-by: Daniel Henrique Barboza <danielhb413@gmail.com>
Signed-off-by: BALATON Zoltan <balaton@eik.bme.hu>
Message-Id: <5b13ebfd12a71a28035bed5a915cbeee81cf21d1.1660746880.git.balaton@eik.bme.hu>
Signed-off-by: Daniel Henrique Barboza <danielhb413@gmail.com>
---
hw/ppc/ppc405.h | 2 +-
hw/ppc/ppc405_uc.c | 2 +-
hw/ppc/ppc4xx_devs.c | 12 ++++++------
hw/ppc/sam460ex.c | 2 +-
include/hw/ppc/ppc4xx.h | 6 +++---
5 files changed, 12 insertions(+), 12 deletions(-)
diff --git a/hw/ppc/ppc405.h b/hw/ppc/ppc405.h
index d85c595f9d..8521be317d 100644
--- a/hw/ppc/ppc405.h
+++ b/hw/ppc/ppc405.h
@@ -232,7 +232,7 @@ struct Ppc405SoCState {
Ppc405EbcState ebc;
Ppc405OpbaState opba;
Ppc405PobState pob;
- Ppc405PlbState plb;
+ Ppc4xxPlbState plb;
Ppc4xxMalState mal;
};
diff --git a/hw/ppc/ppc405_uc.c b/hw/ppc/ppc405_uc.c
index 3382ed3252..b7f6d1c9c1 100644
--- a/hw/ppc/ppc405_uc.c
+++ b/hw/ppc/ppc405_uc.c
@@ -1286,7 +1286,7 @@ static void ppc405_soc_instance_init(Object *obj)
object_initialize_child(obj, "pob", &s->pob, TYPE_PPC405_POB);
- object_initialize_child(obj, "plb", &s->plb, TYPE_PPC405_PLB);
+ object_initialize_child(obj, "plb", &s->plb, TYPE_PPC4xx_PLB);
object_initialize_child(obj, "mal", &s->mal, TYPE_PPC4xx_MAL);
}
diff --git a/hw/ppc/ppc4xx_devs.c b/hw/ppc/ppc4xx_devs.c
index 843d759b1b..3baa2fa2b3 100644
--- a/hw/ppc/ppc4xx_devs.c
+++ b/hw/ppc/ppc4xx_devs.c
@@ -671,7 +671,7 @@ enum {
static uint32_t dcr_read_plb(void *opaque, int dcrn)
{
- Ppc405PlbState *plb = opaque;
+ Ppc4xxPlbState *plb = opaque;
uint32_t ret;
switch (dcrn) {
@@ -695,7 +695,7 @@ static uint32_t dcr_read_plb(void *opaque, int dcrn)
static void dcr_write_plb(void *opaque, int dcrn, uint32_t val)
{
- Ppc405PlbState *plb = opaque;
+ Ppc4xxPlbState *plb = opaque;
switch (dcrn) {
case PLB0_ACR:
@@ -717,7 +717,7 @@ static void dcr_write_plb(void *opaque, int dcrn, uint32_t val)
static void ppc405_plb_reset(DeviceState *dev)
{
- Ppc405PlbState *plb = PPC405_PLB(dev);
+ Ppc4xxPlbState *plb = PPC4xx_PLB(dev);
plb->acr = 0x00000000;
plb->bear = 0x00000000;
@@ -726,7 +726,7 @@ static void ppc405_plb_reset(DeviceState *dev)
static void ppc405_plb_realize(DeviceState *dev, Error **errp)
{
- Ppc405PlbState *plb = PPC405_PLB(dev);
+ Ppc4xxPlbState *plb = PPC4xx_PLB(dev);
Ppc4xxDcrDeviceState *dcr = PPC4xx_DCR_DEVICE(dev);
ppc4xx_dcr_register(dcr, PLB3A0_ACR, plb, &dcr_read_plb, &dcr_write_plb);
@@ -784,9 +784,9 @@ static const TypeInfo ppc4xx_types[] = {
.instance_finalize = ppc4xx_mal_finalize,
.class_init = ppc4xx_mal_class_init,
}, {
- .name = TYPE_PPC405_PLB,
+ .name = TYPE_PPC4xx_PLB,
.parent = TYPE_PPC4xx_DCR_DEVICE,
- .instance_size = sizeof(Ppc405PlbState),
+ .instance_size = sizeof(Ppc4xxPlbState),
.class_init = ppc405_plb_class_init,
}, {
.name = TYPE_PPC4xx_DCR_DEVICE,
diff --git a/hw/ppc/sam460ex.c b/hw/ppc/sam460ex.c
index c16303462d..6b1c843eeb 100644
--- a/hw/ppc/sam460ex.c
+++ b/hw/ppc/sam460ex.c
@@ -308,7 +308,7 @@ static void sam460ex_init(MachineState *machine)
ppc_dcr_init(env, NULL, NULL);
/* PLB arbitrer */
- dev = qdev_new(TYPE_PPC405_PLB);
+ dev = qdev_new(TYPE_PPC4xx_PLB);
ppc4xx_dcr_realize(PPC4xx_DCR_DEVICE(dev), cpu, &error_fatal);
object_unref(OBJECT(dev));
diff --git a/include/hw/ppc/ppc4xx.h b/include/hw/ppc/ppc4xx.h
index e696e159f3..b19e59271b 100644
--- a/include/hw/ppc/ppc4xx.h
+++ b/include/hw/ppc/ppc4xx.h
@@ -84,9 +84,9 @@ struct Ppc4xxMalState {
};
/* Peripheral local bus arbitrer */
-#define TYPE_PPC405_PLB "ppc405-plb"
-OBJECT_DECLARE_SIMPLE_TYPE(Ppc405PlbState, PPC405_PLB);
-struct Ppc405PlbState {
+#define TYPE_PPC4xx_PLB "ppc4xx-plb"
+OBJECT_DECLARE_SIMPLE_TYPE(Ppc4xxPlbState, PPC4xx_PLB);
+struct Ppc4xxPlbState {
Ppc4xxDcrDeviceState parent_obj;
uint32_t acr;
--
2.37.2
^ permalink raw reply related [flat|nested] 63+ messages in thread
* [PULL 50/60] ppc4xx: Move EBC model to ppc4xx_devs.c
2022-08-31 18:49 [PULL 00/60] ppc queue Daniel Henrique Barboza
` (48 preceding siblings ...)
2022-08-31 18:50 ` [PULL 49/60] ppc4xx: Rename ppc405-plb to ppc4xx-plb Daniel Henrique Barboza
@ 2022-08-31 18:50 ` Daniel Henrique Barboza
2022-08-31 18:50 ` [PULL 51/60] ppc4xx: Rename ppc405-ebc to ppc4xx-ebc Daniel Henrique Barboza
` (10 subsequent siblings)
60 siblings, 0 replies; 63+ messages in thread
From: Daniel Henrique Barboza @ 2022-08-31 18:50 UTC (permalink / raw)
To: qemu-devel
Cc: qemu-ppc, danielhb413, peter.maydell, richard.henderson,
BALATON Zoltan
From: BALATON Zoltan <balaton@eik.bme.hu>
The EBC is shared between 405 and 440 so move it to shared file.
Reviewed-by: Daniel Henrique Barboza <danielhb413@gmail.com>
Signed-off-by: BALATON Zoltan <balaton@eik.bme.hu>
Message-Id: <10eae70509ca4bd74858fc2c0a0f0e4eb9330199.1660746880.git.balaton@eik.bme.hu>
Signed-off-by: Daniel Henrique Barboza <danielhb413@gmail.com>
---
hw/ppc/ppc405.h | 15 ----
hw/ppc/ppc405_uc.c | 191 ----------------------------------------
hw/ppc/ppc4xx_devs.c | 191 ++++++++++++++++++++++++++++++++++++++++
include/hw/ppc/ppc4xx.h | 15 ++++
4 files changed, 206 insertions(+), 206 deletions(-)
diff --git a/hw/ppc/ppc405.h b/hw/ppc/ppc405.h
index 8521be317d..57e1494b05 100644
--- a/hw/ppc/ppc405.h
+++ b/hw/ppc/ppc405.h
@@ -85,21 +85,6 @@ struct Ppc405OpbaState {
uint8_t pr;
};
-/* Peripheral controller */
-#define TYPE_PPC405_EBC "ppc405-ebc"
-OBJECT_DECLARE_SIMPLE_TYPE(Ppc405EbcState, PPC405_EBC);
-struct Ppc405EbcState {
- Ppc4xxDcrDeviceState parent_obj;
-
- uint32_t addr;
- uint32_t bcr[8];
- uint32_t bap[8];
- uint32_t bear;
- uint32_t besr0;
- uint32_t besr1;
- uint32_t cfg;
-};
-
/* DMA controller */
#define TYPE_PPC405_DMA "ppc405-dma"
OBJECT_DECLARE_SIMPLE_TYPE(Ppc405DmaState, PPC405_DMA);
diff --git a/hw/ppc/ppc405_uc.c b/hw/ppc/ppc405_uc.c
index b7f6d1c9c1..c7bc40ba08 100644
--- a/hw/ppc/ppc405_uc.c
+++ b/hw/ppc/ppc405_uc.c
@@ -299,192 +299,6 @@ static void ppc405_opba_class_init(ObjectClass *oc, void *data)
/* Code decompression controller */
/* XXX: TODO */
-/*****************************************************************************/
-/* Peripheral controller */
-enum {
- EBC0_CFGADDR = 0x012,
- EBC0_CFGDATA = 0x013,
-};
-
-static uint32_t dcr_read_ebc(void *opaque, int dcrn)
-{
- Ppc405EbcState *ebc = opaque;
- uint32_t ret;
-
- switch (dcrn) {
- case EBC0_CFGADDR:
- ret = ebc->addr;
- break;
- case EBC0_CFGDATA:
- switch (ebc->addr) {
- case 0x00: /* B0CR */
- ret = ebc->bcr[0];
- break;
- case 0x01: /* B1CR */
- ret = ebc->bcr[1];
- break;
- case 0x02: /* B2CR */
- ret = ebc->bcr[2];
- break;
- case 0x03: /* B3CR */
- ret = ebc->bcr[3];
- break;
- case 0x04: /* B4CR */
- ret = ebc->bcr[4];
- break;
- case 0x05: /* B5CR */
- ret = ebc->bcr[5];
- break;
- case 0x06: /* B6CR */
- ret = ebc->bcr[6];
- break;
- case 0x07: /* B7CR */
- ret = ebc->bcr[7];
- break;
- case 0x10: /* B0AP */
- ret = ebc->bap[0];
- break;
- case 0x11: /* B1AP */
- ret = ebc->bap[1];
- break;
- case 0x12: /* B2AP */
- ret = ebc->bap[2];
- break;
- case 0x13: /* B3AP */
- ret = ebc->bap[3];
- break;
- case 0x14: /* B4AP */
- ret = ebc->bap[4];
- break;
- case 0x15: /* B5AP */
- ret = ebc->bap[5];
- break;
- case 0x16: /* B6AP */
- ret = ebc->bap[6];
- break;
- case 0x17: /* B7AP */
- ret = ebc->bap[7];
- break;
- case 0x20: /* BEAR */
- ret = ebc->bear;
- break;
- case 0x21: /* BESR0 */
- ret = ebc->besr0;
- break;
- case 0x22: /* BESR1 */
- ret = ebc->besr1;
- break;
- case 0x23: /* CFG */
- ret = ebc->cfg;
- break;
- default:
- ret = 0x00000000;
- break;
- }
- break;
- default:
- ret = 0x00000000;
- break;
- }
-
- return ret;
-}
-
-static void dcr_write_ebc(void *opaque, int dcrn, uint32_t val)
-{
- Ppc405EbcState *ebc = opaque;
-
- switch (dcrn) {
- case EBC0_CFGADDR:
- ebc->addr = val;
- break;
- case EBC0_CFGDATA:
- switch (ebc->addr) {
- case 0x00: /* B0CR */
- break;
- case 0x01: /* B1CR */
- break;
- case 0x02: /* B2CR */
- break;
- case 0x03: /* B3CR */
- break;
- case 0x04: /* B4CR */
- break;
- case 0x05: /* B5CR */
- break;
- case 0x06: /* B6CR */
- break;
- case 0x07: /* B7CR */
- break;
- case 0x10: /* B0AP */
- break;
- case 0x11: /* B1AP */
- break;
- case 0x12: /* B2AP */
- break;
- case 0x13: /* B3AP */
- break;
- case 0x14: /* B4AP */
- break;
- case 0x15: /* B5AP */
- break;
- case 0x16: /* B6AP */
- break;
- case 0x17: /* B7AP */
- break;
- case 0x20: /* BEAR */
- break;
- case 0x21: /* BESR0 */
- break;
- case 0x22: /* BESR1 */
- break;
- case 0x23: /* CFG */
- break;
- default:
- break;
- }
- break;
- default:
- break;
- }
-}
-
-static void ppc405_ebc_reset(DeviceState *dev)
-{
- Ppc405EbcState *ebc = PPC405_EBC(dev);
- int i;
-
- ebc->addr = 0x00000000;
- ebc->bap[0] = 0x7F8FFE80;
- ebc->bcr[0] = 0xFFE28000;
- for (i = 0; i < 8; i++) {
- ebc->bap[i] = 0x00000000;
- ebc->bcr[i] = 0x00000000;
- }
- ebc->besr0 = 0x00000000;
- ebc->besr1 = 0x00000000;
- ebc->cfg = 0x80400000;
-}
-
-static void ppc405_ebc_realize(DeviceState *dev, Error **errp)
-{
- Ppc405EbcState *ebc = PPC405_EBC(dev);
- Ppc4xxDcrDeviceState *dcr = PPC4xx_DCR_DEVICE(dev);
-
- ppc4xx_dcr_register(dcr, EBC0_CFGADDR, ebc, &dcr_read_ebc, &dcr_write_ebc);
- ppc4xx_dcr_register(dcr, EBC0_CFGDATA, ebc, &dcr_read_ebc, &dcr_write_ebc);
-}
-
-static void ppc405_ebc_class_init(ObjectClass *oc, void *data)
-{
- DeviceClass *dc = DEVICE_CLASS(oc);
-
- dc->realize = ppc405_ebc_realize;
- dc->reset = ppc405_ebc_reset;
- /* Reason: only works as function of a ppc4xx SoC */
- dc->user_creatable = false;
-}
-
/*****************************************************************************/
/* DMA controller */
enum {
@@ -1459,11 +1273,6 @@ static const TypeInfo ppc405_types[] = {
.parent = TYPE_SYS_BUS_DEVICE,
.instance_size = sizeof(Ppc405OpbaState),
.class_init = ppc405_opba_class_init,
- }, {
- .name = TYPE_PPC405_EBC,
- .parent = TYPE_PPC4xx_DCR_DEVICE,
- .instance_size = sizeof(Ppc405EbcState),
- .class_init = ppc405_ebc_class_init,
}, {
.name = TYPE_PPC405_DMA,
.parent = TYPE_PPC4xx_DCR_DEVICE,
diff --git a/hw/ppc/ppc4xx_devs.c b/hw/ppc/ppc4xx_devs.c
index 3baa2fa2b3..00bb3fe974 100644
--- a/hw/ppc/ppc4xx_devs.c
+++ b/hw/ppc/ppc4xx_devs.c
@@ -747,6 +747,192 @@ static void ppc405_plb_class_init(ObjectClass *oc, void *data)
dc->user_creatable = false;
}
+/*****************************************************************************/
+/* Peripheral controller */
+enum {
+ EBC0_CFGADDR = 0x012,
+ EBC0_CFGDATA = 0x013,
+};
+
+static uint32_t dcr_read_ebc(void *opaque, int dcrn)
+{
+ Ppc405EbcState *ebc = opaque;
+ uint32_t ret;
+
+ switch (dcrn) {
+ case EBC0_CFGADDR:
+ ret = ebc->addr;
+ break;
+ case EBC0_CFGDATA:
+ switch (ebc->addr) {
+ case 0x00: /* B0CR */
+ ret = ebc->bcr[0];
+ break;
+ case 0x01: /* B1CR */
+ ret = ebc->bcr[1];
+ break;
+ case 0x02: /* B2CR */
+ ret = ebc->bcr[2];
+ break;
+ case 0x03: /* B3CR */
+ ret = ebc->bcr[3];
+ break;
+ case 0x04: /* B4CR */
+ ret = ebc->bcr[4];
+ break;
+ case 0x05: /* B5CR */
+ ret = ebc->bcr[5];
+ break;
+ case 0x06: /* B6CR */
+ ret = ebc->bcr[6];
+ break;
+ case 0x07: /* B7CR */
+ ret = ebc->bcr[7];
+ break;
+ case 0x10: /* B0AP */
+ ret = ebc->bap[0];
+ break;
+ case 0x11: /* B1AP */
+ ret = ebc->bap[1];
+ break;
+ case 0x12: /* B2AP */
+ ret = ebc->bap[2];
+ break;
+ case 0x13: /* B3AP */
+ ret = ebc->bap[3];
+ break;
+ case 0x14: /* B4AP */
+ ret = ebc->bap[4];
+ break;
+ case 0x15: /* B5AP */
+ ret = ebc->bap[5];
+ break;
+ case 0x16: /* B6AP */
+ ret = ebc->bap[6];
+ break;
+ case 0x17: /* B7AP */
+ ret = ebc->bap[7];
+ break;
+ case 0x20: /* BEAR */
+ ret = ebc->bear;
+ break;
+ case 0x21: /* BESR0 */
+ ret = ebc->besr0;
+ break;
+ case 0x22: /* BESR1 */
+ ret = ebc->besr1;
+ break;
+ case 0x23: /* CFG */
+ ret = ebc->cfg;
+ break;
+ default:
+ ret = 0x00000000;
+ break;
+ }
+ break;
+ default:
+ ret = 0x00000000;
+ break;
+ }
+
+ return ret;
+}
+
+static void dcr_write_ebc(void *opaque, int dcrn, uint32_t val)
+{
+ Ppc405EbcState *ebc = opaque;
+
+ switch (dcrn) {
+ case EBC0_CFGADDR:
+ ebc->addr = val;
+ break;
+ case EBC0_CFGDATA:
+ switch (ebc->addr) {
+ case 0x00: /* B0CR */
+ break;
+ case 0x01: /* B1CR */
+ break;
+ case 0x02: /* B2CR */
+ break;
+ case 0x03: /* B3CR */
+ break;
+ case 0x04: /* B4CR */
+ break;
+ case 0x05: /* B5CR */
+ break;
+ case 0x06: /* B6CR */
+ break;
+ case 0x07: /* B7CR */
+ break;
+ case 0x10: /* B0AP */
+ break;
+ case 0x11: /* B1AP */
+ break;
+ case 0x12: /* B2AP */
+ break;
+ case 0x13: /* B3AP */
+ break;
+ case 0x14: /* B4AP */
+ break;
+ case 0x15: /* B5AP */
+ break;
+ case 0x16: /* B6AP */
+ break;
+ case 0x17: /* B7AP */
+ break;
+ case 0x20: /* BEAR */
+ break;
+ case 0x21: /* BESR0 */
+ break;
+ case 0x22: /* BESR1 */
+ break;
+ case 0x23: /* CFG */
+ break;
+ default:
+ break;
+ }
+ break;
+ default:
+ break;
+ }
+}
+
+static void ppc405_ebc_reset(DeviceState *dev)
+{
+ Ppc405EbcState *ebc = PPC405_EBC(dev);
+ int i;
+
+ ebc->addr = 0x00000000;
+ ebc->bap[0] = 0x7F8FFE80;
+ ebc->bcr[0] = 0xFFE28000;
+ for (i = 0; i < 8; i++) {
+ ebc->bap[i] = 0x00000000;
+ ebc->bcr[i] = 0x00000000;
+ }
+ ebc->besr0 = 0x00000000;
+ ebc->besr1 = 0x00000000;
+ ebc->cfg = 0x80400000;
+}
+
+static void ppc405_ebc_realize(DeviceState *dev, Error **errp)
+{
+ Ppc405EbcState *ebc = PPC405_EBC(dev);
+ Ppc4xxDcrDeviceState *dcr = PPC4xx_DCR_DEVICE(dev);
+
+ ppc4xx_dcr_register(dcr, EBC0_CFGADDR, ebc, &dcr_read_ebc, &dcr_write_ebc);
+ ppc4xx_dcr_register(dcr, EBC0_CFGDATA, ebc, &dcr_read_ebc, &dcr_write_ebc);
+}
+
+static void ppc405_ebc_class_init(ObjectClass *oc, void *data)
+{
+ DeviceClass *dc = DEVICE_CLASS(oc);
+
+ dc->realize = ppc405_ebc_realize;
+ dc->reset = ppc405_ebc_reset;
+ /* Reason: only works as function of a ppc4xx SoC */
+ dc->user_creatable = false;
+}
+
/* PPC4xx_DCR_DEVICE */
void ppc4xx_dcr_register(Ppc4xxDcrDeviceState *dev, int dcrn, void *opaque,
@@ -788,6 +974,11 @@ static const TypeInfo ppc4xx_types[] = {
.parent = TYPE_PPC4xx_DCR_DEVICE,
.instance_size = sizeof(Ppc4xxPlbState),
.class_init = ppc405_plb_class_init,
+ }, {
+ .name = TYPE_PPC405_EBC,
+ .parent = TYPE_PPC4xx_DCR_DEVICE,
+ .instance_size = sizeof(Ppc405EbcState),
+ .class_init = ppc405_ebc_class_init,
}, {
.name = TYPE_PPC4xx_DCR_DEVICE,
.parent = TYPE_SYS_BUS_DEVICE,
diff --git a/include/hw/ppc/ppc4xx.h b/include/hw/ppc/ppc4xx.h
index b19e59271b..4472ec254e 100644
--- a/include/hw/ppc/ppc4xx.h
+++ b/include/hw/ppc/ppc4xx.h
@@ -94,4 +94,19 @@ struct Ppc4xxPlbState {
uint32_t besr;
};
+/* Peripheral controller */
+#define TYPE_PPC405_EBC "ppc405-ebc"
+OBJECT_DECLARE_SIMPLE_TYPE(Ppc405EbcState, PPC405_EBC);
+struct Ppc405EbcState {
+ Ppc4xxDcrDeviceState parent_obj;
+
+ uint32_t addr;
+ uint32_t bcr[8];
+ uint32_t bap[8];
+ uint32_t bear;
+ uint32_t besr0;
+ uint32_t besr1;
+ uint32_t cfg;
+};
+
#endif /* PPC4XX_H */
--
2.37.2
^ permalink raw reply related [flat|nested] 63+ messages in thread
* [PULL 51/60] ppc4xx: Rename ppc405-ebc to ppc4xx-ebc
2022-08-31 18:49 [PULL 00/60] ppc queue Daniel Henrique Barboza
` (49 preceding siblings ...)
2022-08-31 18:50 ` [PULL 50/60] ppc4xx: Move EBC model to ppc4xx_devs.c Daniel Henrique Barboza
@ 2022-08-31 18:50 ` Daniel Henrique Barboza
2022-08-31 18:50 ` [PULL 52/60] ppc/ppc405: Use an embedded PPCUIC model in SoC state Daniel Henrique Barboza
` (9 subsequent siblings)
60 siblings, 0 replies; 63+ messages in thread
From: Daniel Henrique Barboza @ 2022-08-31 18:50 UTC (permalink / raw)
To: qemu-devel
Cc: qemu-ppc, danielhb413, peter.maydell, richard.henderson,
BALATON Zoltan
From: BALATON Zoltan <balaton@eik.bme.hu>
This device is shared between different 4xx socs.
Reviewed-by: Daniel Henrique Barboza <danielhb413@gmail.com>
Signed-off-by: BALATON Zoltan <balaton@eik.bme.hu>
Message-Id: <63d9b14c8ff5f73e35bffca1036394b5235735ee.1660746880.git.balaton@eik.bme.hu>
Signed-off-by: Daniel Henrique Barboza <danielhb413@gmail.com>
---
hw/ppc/ppc405.h | 2 +-
hw/ppc/ppc405_uc.c | 2 +-
hw/ppc/ppc4xx_devs.c | 12 ++++++------
hw/ppc/sam460ex.c | 2 +-
include/hw/ppc/ppc4xx.h | 6 +++---
5 files changed, 12 insertions(+), 12 deletions(-)
diff --git a/hw/ppc/ppc405.h b/hw/ppc/ppc405.h
index 57e1494b05..343a84c98e 100644
--- a/hw/ppc/ppc405.h
+++ b/hw/ppc/ppc405.h
@@ -214,7 +214,7 @@ struct Ppc405SoCState {
Ppc405OcmState ocm;
Ppc405GpioState gpio;
Ppc405DmaState dma;
- Ppc405EbcState ebc;
+ Ppc4xxEbcState ebc;
Ppc405OpbaState opba;
Ppc405PobState pob;
Ppc4xxPlbState plb;
diff --git a/hw/ppc/ppc405_uc.c b/hw/ppc/ppc405_uc.c
index c7bc40ba08..247c4f3fa8 100644
--- a/hw/ppc/ppc405_uc.c
+++ b/hw/ppc/ppc405_uc.c
@@ -1094,7 +1094,7 @@ static void ppc405_soc_instance_init(Object *obj)
object_initialize_child(obj, "dma", &s->dma, TYPE_PPC405_DMA);
- object_initialize_child(obj, "ebc", &s->ebc, TYPE_PPC405_EBC);
+ object_initialize_child(obj, "ebc", &s->ebc, TYPE_PPC4xx_EBC);
object_initialize_child(obj, "opba", &s->opba, TYPE_PPC405_OPBA);
diff --git a/hw/ppc/ppc4xx_devs.c b/hw/ppc/ppc4xx_devs.c
index 00bb3fe974..fbfb21c8e8 100644
--- a/hw/ppc/ppc4xx_devs.c
+++ b/hw/ppc/ppc4xx_devs.c
@@ -756,7 +756,7 @@ enum {
static uint32_t dcr_read_ebc(void *opaque, int dcrn)
{
- Ppc405EbcState *ebc = opaque;
+ Ppc4xxEbcState *ebc = opaque;
uint32_t ret;
switch (dcrn) {
@@ -840,7 +840,7 @@ static uint32_t dcr_read_ebc(void *opaque, int dcrn)
static void dcr_write_ebc(void *opaque, int dcrn, uint32_t val)
{
- Ppc405EbcState *ebc = opaque;
+ Ppc4xxEbcState *ebc = opaque;
switch (dcrn) {
case EBC0_CFGADDR:
@@ -899,7 +899,7 @@ static void dcr_write_ebc(void *opaque, int dcrn, uint32_t val)
static void ppc405_ebc_reset(DeviceState *dev)
{
- Ppc405EbcState *ebc = PPC405_EBC(dev);
+ Ppc4xxEbcState *ebc = PPC4xx_EBC(dev);
int i;
ebc->addr = 0x00000000;
@@ -916,7 +916,7 @@ static void ppc405_ebc_reset(DeviceState *dev)
static void ppc405_ebc_realize(DeviceState *dev, Error **errp)
{
- Ppc405EbcState *ebc = PPC405_EBC(dev);
+ Ppc4xxEbcState *ebc = PPC4xx_EBC(dev);
Ppc4xxDcrDeviceState *dcr = PPC4xx_DCR_DEVICE(dev);
ppc4xx_dcr_register(dcr, EBC0_CFGADDR, ebc, &dcr_read_ebc, &dcr_write_ebc);
@@ -975,9 +975,9 @@ static const TypeInfo ppc4xx_types[] = {
.instance_size = sizeof(Ppc4xxPlbState),
.class_init = ppc405_plb_class_init,
}, {
- .name = TYPE_PPC405_EBC,
+ .name = TYPE_PPC4xx_EBC,
.parent = TYPE_PPC4xx_DCR_DEVICE,
- .instance_size = sizeof(Ppc405EbcState),
+ .instance_size = sizeof(Ppc4xxEbcState),
.class_init = ppc405_ebc_class_init,
}, {
.name = TYPE_PPC4xx_DCR_DEVICE,
diff --git a/hw/ppc/sam460ex.c b/hw/ppc/sam460ex.c
index 6b1c843eeb..0d9259f0f2 100644
--- a/hw/ppc/sam460ex.c
+++ b/hw/ppc/sam460ex.c
@@ -372,7 +372,7 @@ static void sam460ex_init(MachineState *machine)
qdev_get_gpio_in(uic[0], 3));
/* External bus controller */
- dev = qdev_new(TYPE_PPC405_EBC);
+ dev = qdev_new(TYPE_PPC4xx_EBC);
ppc4xx_dcr_realize(PPC4xx_DCR_DEVICE(dev), cpu, &error_fatal);
object_unref(OBJECT(dev));
diff --git a/include/hw/ppc/ppc4xx.h b/include/hw/ppc/ppc4xx.h
index 4472ec254e..a1781afa8e 100644
--- a/include/hw/ppc/ppc4xx.h
+++ b/include/hw/ppc/ppc4xx.h
@@ -95,9 +95,9 @@ struct Ppc4xxPlbState {
};
/* Peripheral controller */
-#define TYPE_PPC405_EBC "ppc405-ebc"
-OBJECT_DECLARE_SIMPLE_TYPE(Ppc405EbcState, PPC405_EBC);
-struct Ppc405EbcState {
+#define TYPE_PPC4xx_EBC "ppc4xx-ebc"
+OBJECT_DECLARE_SIMPLE_TYPE(Ppc4xxEbcState, PPC4xx_EBC);
+struct Ppc4xxEbcState {
Ppc4xxDcrDeviceState parent_obj;
uint32_t addr;
--
2.37.2
^ permalink raw reply related [flat|nested] 63+ messages in thread
* [PULL 52/60] ppc/ppc405: Use an embedded PPCUIC model in SoC state
2022-08-31 18:49 [PULL 00/60] ppc queue Daniel Henrique Barboza
` (50 preceding siblings ...)
2022-08-31 18:50 ` [PULL 51/60] ppc4xx: Rename ppc405-ebc to ppc4xx-ebc Daniel Henrique Barboza
@ 2022-08-31 18:50 ` Daniel Henrique Barboza
2022-08-31 18:50 ` [PULL 53/60] hw/intc/ppc-uic: Convert ppc-uic to a PPC4xx DCR device Daniel Henrique Barboza
` (8 subsequent siblings)
60 siblings, 0 replies; 63+ messages in thread
From: Daniel Henrique Barboza @ 2022-08-31 18:50 UTC (permalink / raw)
To: qemu-devel
Cc: qemu-ppc, danielhb413, peter.maydell, richard.henderson,
Cédric Le Goater
From: Cédric Le Goater <clg@kaod.org>
Reviewed-by: Daniel Henrique Barboza <danielhb413@gmail.com>
Signed-off-by: Cédric Le Goater <clg@kaod.org>
[balaton: Simplify sysbus device casts for readability]
Signed-off-by: BALATON Zoltan <balaton@eik.bme.hu>
Message-Id: <ac5f010f4eb3ade061c65bc39a049f231f75574a.1660746880.git.balaton@eik.bme.hu>
Signed-off-by: Daniel Henrique Barboza <danielhb413@gmail.com>
---
hw/ppc/ppc405.h | 3 ++-
hw/ppc/ppc405_uc.c | 28 ++++++++++++++--------------
2 files changed, 16 insertions(+), 15 deletions(-)
diff --git a/hw/ppc/ppc405.h b/hw/ppc/ppc405.h
index 343a84c98e..67f4c14f50 100644
--- a/hw/ppc/ppc405.h
+++ b/hw/ppc/ppc405.h
@@ -27,6 +27,7 @@
#include "qom/object.h"
#include "hw/ppc/ppc4xx.h"
+#include "hw/intc/ppc-uic.h"
#define PPC405EP_SDRAM_BASE 0x00000000
#define PPC405EP_NVRAM_BASE 0xF0000000
@@ -208,7 +209,7 @@ struct Ppc405SoCState {
hwaddr ram_size;
PowerPCCPU cpu;
- DeviceState *uic;
+ PPCUIC uic;
Ppc405CpcState cpc;
Ppc405GptState gpt;
Ppc405OcmState ocm;
diff --git a/hw/ppc/ppc405_uc.c b/hw/ppc/ppc405_uc.c
index 247c4f3fa8..47bb9f534a 100644
--- a/hw/ppc/ppc405_uc.c
+++ b/hw/ppc/ppc405_uc.c
@@ -1083,6 +1083,8 @@ static void ppc405_soc_instance_init(Object *obj)
object_initialize_child(obj, "cpu", &s->cpu,
POWERPC_CPU_TYPE_NAME("405ep"));
+ object_initialize_child(obj, "uic", &s->uic, TYPE_PPC_UIC);
+
object_initialize_child(obj, "cpc", &s->cpc, TYPE_PPC405_CPC);
object_property_add_alias(obj, "sys-clk", OBJECT(&s->cpc), "sys-clk");
@@ -1150,17 +1152,15 @@ static void ppc405_soc_realize(DeviceState *dev, Error **errp)
sysbus_mmio_map(sbd, 0, 0xef600600);
/* Universal interrupt controller */
- s->uic = qdev_new(TYPE_PPC_UIC);
-
- object_property_set_link(OBJECT(s->uic), "cpu", OBJECT(&s->cpu),
+ object_property_set_link(OBJECT(&s->uic), "cpu", OBJECT(&s->cpu),
&error_fatal);
- if (!sysbus_realize(SYS_BUS_DEVICE(s->uic), errp)) {
+ sbd = SYS_BUS_DEVICE(&s->uic);
+ if (!sysbus_realize(sbd, errp)) {
return;
}
-
- sysbus_connect_irq(SYS_BUS_DEVICE(s->uic), PPCUIC_OUTPUT_INT,
+ sysbus_connect_irq(sbd, PPCUIC_OUTPUT_INT,
qdev_get_gpio_in(DEVICE(&s->cpu), PPC40x_INPUT_INT));
- sysbus_connect_irq(SYS_BUS_DEVICE(s->uic), PPCUIC_OUTPUT_CINT,
+ sysbus_connect_irq(sbd, PPCUIC_OUTPUT_CINT,
qdev_get_gpio_in(DEVICE(&s->cpu), PPC40x_INPUT_CINT));
/* SDRAM controller */
@@ -1171,7 +1171,7 @@ static void ppc405_soc_realize(DeviceState *dev, Error **errp)
"ppc405.sdram0", s->dram_mr,
s->ram_bases[0], s->ram_sizes[0]);
- ppc4xx_sdram_init(env, qdev_get_gpio_in(s->uic, 17), 1,
+ ppc4xx_sdram_init(env, qdev_get_gpio_in(DEVICE(&s->uic), 17), 1,
s->ram_banks, s->ram_bases, s->ram_sizes,
s->do_dram_init);
@@ -1186,12 +1186,12 @@ static void ppc405_soc_realize(DeviceState *dev, Error **errp)
}
sbd = SYS_BUS_DEVICE(&s->dma);
for (i = 0; i < ARRAY_SIZE(s->dma.irqs); i++) {
- sysbus_connect_irq(sbd, i, qdev_get_gpio_in(s->uic, 5 + i));
+ sysbus_connect_irq(sbd, i, qdev_get_gpio_in(DEVICE(&s->uic), 5 + i));
}
/* I2C controller */
sysbus_create_simple(TYPE_PPC4xx_I2C, 0xef600500,
- qdev_get_gpio_in(s->uic, 2));
+ qdev_get_gpio_in(DEVICE(&s->uic), 2));
/* GPIO */
sbd = SYS_BUS_DEVICE(&s->gpio);
@@ -1203,13 +1203,13 @@ static void ppc405_soc_realize(DeviceState *dev, Error **errp)
/* Serial ports */
if (serial_hd(0) != NULL) {
serial_mm_init(get_system_memory(), 0xef600300, 0,
- qdev_get_gpio_in(s->uic, 0),
+ qdev_get_gpio_in(DEVICE(&s->uic), 0),
PPC_SERIAL_MM_BAUDBASE, serial_hd(0),
DEVICE_BIG_ENDIAN);
}
if (serial_hd(1) != NULL) {
serial_mm_init(get_system_memory(), 0xef600400, 0,
- qdev_get_gpio_in(s->uic, 1),
+ qdev_get_gpio_in(DEVICE(&s->uic), 1),
PPC_SERIAL_MM_BAUDBASE, serial_hd(1),
DEVICE_BIG_ENDIAN);
}
@@ -1226,7 +1226,7 @@ static void ppc405_soc_realize(DeviceState *dev, Error **errp)
}
sysbus_mmio_map(sbd, 0, 0xef600000);
for (i = 0; i < ARRAY_SIZE(s->gpt.irqs); i++) {
- sysbus_connect_irq(sbd, i, qdev_get_gpio_in(s->uic, 19 + i));
+ sysbus_connect_irq(sbd, i, qdev_get_gpio_in(DEVICE(&s->uic), 19 + i));
}
/* MAL */
@@ -1237,7 +1237,7 @@ static void ppc405_soc_realize(DeviceState *dev, Error **errp)
}
sbd = SYS_BUS_DEVICE(&s->mal);
for (i = 0; i < ARRAY_SIZE(s->mal.irqs); i++) {
- sysbus_connect_irq(sbd, i, qdev_get_gpio_in(s->uic, 11 + i));
+ sysbus_connect_irq(sbd, i, qdev_get_gpio_in(DEVICE(&s->uic), 11 + i));
}
/* Ethernet */
--
2.37.2
^ permalink raw reply related [flat|nested] 63+ messages in thread
* [PULL 53/60] hw/intc/ppc-uic: Convert ppc-uic to a PPC4xx DCR device
2022-08-31 18:49 [PULL 00/60] ppc queue Daniel Henrique Barboza
` (51 preceding siblings ...)
2022-08-31 18:50 ` [PULL 52/60] ppc/ppc405: Use an embedded PPCUIC model in SoC state Daniel Henrique Barboza
@ 2022-08-31 18:50 ` Daniel Henrique Barboza
2022-08-31 18:50 ` [PULL 54/60] ppc/ppc405: Use an explicit I2C object Daniel Henrique Barboza
` (7 subsequent siblings)
60 siblings, 0 replies; 63+ messages in thread
From: Daniel Henrique Barboza @ 2022-08-31 18:50 UTC (permalink / raw)
To: qemu-devel
Cc: qemu-ppc, danielhb413, peter.maydell, richard.henderson,
BALATON Zoltan, Cédric Le Goater
From: BALATON Zoltan <balaton@eik.bme.hu>
Make ppc-uic a subclass of ppc4xx-dcr-device which will handle the cpu
link and make it uniform with the other PPC4xx devices.
Signed-off-by: BALATON Zoltan <balaton@eik.bme.hu>
Reviewed-by: Cédric Le Goater <clg@kaod.org>
Message-Id: <eb548130cf60aea8a6ea4dba4dee1686b3cabc3d.1660746880.git.balaton@eik.bme.hu>
Signed-off-by: Daniel Henrique Barboza <danielhb413@gmail.com>
---
hw/intc/ppc-uic.c | 26 ++++++--------------------
hw/ppc/ppc405_uc.c | 6 ++----
hw/ppc/ppc440_bamboo.c | 7 ++-----
hw/ppc/ppc4xx_devs.c | 1 -
hw/ppc/sam460ex.c | 17 +++++++----------
hw/ppc/virtex_ml507.c | 7 ++-----
include/hw/intc/ppc-uic.h | 6 ++----
7 files changed, 21 insertions(+), 49 deletions(-)
diff --git a/hw/intc/ppc-uic.c b/hw/intc/ppc-uic.c
index 60013f2dde..dcf5de5d43 100644
--- a/hw/intc/ppc-uic.c
+++ b/hw/intc/ppc-uic.c
@@ -25,11 +25,8 @@
#include "qemu/osdep.h"
#include "hw/intc/ppc-uic.h"
#include "hw/irq.h"
-#include "cpu.h"
-#include "hw/ppc/ppc.h"
#include "hw/qdev-properties.h"
#include "migration/vmstate.h"
-#include "qapi/error.h"
enum {
DCR_UICSR = 0x000,
@@ -105,10 +102,9 @@ static void ppcuic_trigger_irq(PPCUIC *uic)
static void ppcuic_set_irq(void *opaque, int irq_num, int level)
{
- PPCUIC *uic;
+ PPCUIC *uic = opaque;
uint32_t mask, sr;
- uic = opaque;
mask = 1U << (31 - irq_num);
LOG_UIC("%s: irq %d level %d uicsr %08" PRIx32
" mask %08" PRIx32 " => %08" PRIx32 " %08" PRIx32 "\n",
@@ -144,10 +140,9 @@ static void ppcuic_set_irq(void *opaque, int irq_num, int level)
static uint32_t dcr_read_uic(void *opaque, int dcrn)
{
- PPCUIC *uic;
+ PPCUIC *uic = opaque;
uint32_t ret;
- uic = opaque;
dcrn -= uic->dcr_base;
switch (dcrn) {
case DCR_UICSR:
@@ -192,9 +187,8 @@ static uint32_t dcr_read_uic(void *opaque, int dcrn)
static void dcr_write_uic(void *opaque, int dcrn, uint32_t val)
{
- PPCUIC *uic;
+ PPCUIC *uic = opaque;
- uic = opaque;
dcrn -= uic->dcr_base;
LOG_UIC("%s: dcr %d val 0x%x\n", __func__, dcrn, val);
switch (dcrn) {
@@ -251,19 +245,12 @@ static void ppc_uic_reset(DeviceState *dev)
static void ppc_uic_realize(DeviceState *dev, Error **errp)
{
PPCUIC *uic = PPC_UIC(dev);
+ Ppc4xxDcrDeviceState *dcr = PPC4xx_DCR_DEVICE(dev);
SysBusDevice *sbd = SYS_BUS_DEVICE(dev);
- PowerPCCPU *cpu;
int i;
- if (!uic->cpu) {
- /* This is a programming error in the code using this device */
- error_setg(errp, "ppc-uic 'cpu' link property was not set");
- return;
- }
-
- cpu = POWERPC_CPU(uic->cpu);
for (i = 0; i < DCR_UICMAX; i++) {
- ppc_dcr_register(&cpu->env, uic->dcr_base + i, uic,
+ ppc4xx_dcr_register(dcr, uic->dcr_base + i, uic,
&dcr_read_uic, &dcr_write_uic);
}
@@ -273,7 +260,6 @@ static void ppc_uic_realize(DeviceState *dev, Error **errp)
}
static Property ppc_uic_properties[] = {
- DEFINE_PROP_LINK("cpu", PPCUIC, cpu, TYPE_CPU, CPUState *),
DEFINE_PROP_UINT32("dcr-base", PPCUIC, dcr_base, 0xc0),
DEFINE_PROP_BOOL("use-vectors", PPCUIC, use_vectors, true),
DEFINE_PROP_END_OF_LIST()
@@ -308,7 +294,7 @@ static void ppc_uic_class_init(ObjectClass *klass, void *data)
static const TypeInfo ppc_uic_info = {
.name = TYPE_PPC_UIC,
- .parent = TYPE_SYS_BUS_DEVICE,
+ .parent = TYPE_PPC4xx_DCR_DEVICE,
.instance_size = sizeof(PPCUIC),
.class_init = ppc_uic_class_init,
};
diff --git a/hw/ppc/ppc405_uc.c b/hw/ppc/ppc405_uc.c
index 47bb9f534a..dc17d5bdb5 100644
--- a/hw/ppc/ppc405_uc.c
+++ b/hw/ppc/ppc405_uc.c
@@ -1152,12 +1152,10 @@ static void ppc405_soc_realize(DeviceState *dev, Error **errp)
sysbus_mmio_map(sbd, 0, 0xef600600);
/* Universal interrupt controller */
- object_property_set_link(OBJECT(&s->uic), "cpu", OBJECT(&s->cpu),
- &error_fatal);
- sbd = SYS_BUS_DEVICE(&s->uic);
- if (!sysbus_realize(sbd, errp)) {
+ if (!ppc4xx_dcr_realize(PPC4xx_DCR_DEVICE(&s->uic), &s->cpu, errp)) {
return;
}
+ sbd = SYS_BUS_DEVICE(&s->uic);
sysbus_connect_irq(sbd, PPCUIC_OUTPUT_INT,
qdev_get_gpio_in(DEVICE(&s->cpu), PPC40x_INPUT_INT));
sysbus_connect_irq(sbd, PPCUIC_OUTPUT_CINT,
diff --git a/hw/ppc/ppc440_bamboo.c b/hw/ppc/ppc440_bamboo.c
index 873f930c77..b14a9ef776 100644
--- a/hw/ppc/ppc440_bamboo.c
+++ b/hw/ppc/ppc440_bamboo.c
@@ -193,12 +193,9 @@ static void bamboo_init(MachineState *machine)
/* interrupt controller */
uicdev = qdev_new(TYPE_PPC_UIC);
+ ppc4xx_dcr_realize(PPC4xx_DCR_DEVICE(uicdev), cpu, &error_fatal);
+ object_unref(OBJECT(uicdev));
uicsbd = SYS_BUS_DEVICE(uicdev);
-
- object_property_set_link(OBJECT(uicdev), "cpu", OBJECT(cpu),
- &error_fatal);
- sysbus_realize_and_unref(uicsbd, &error_fatal);
-
sysbus_connect_irq(uicsbd, PPCUIC_OUTPUT_INT,
qdev_get_gpio_in(DEVICE(cpu), PPC40x_INPUT_INT));
sysbus_connect_irq(uicsbd, PPCUIC_OUTPUT_CINT,
diff --git a/hw/ppc/ppc4xx_devs.c b/hw/ppc/ppc4xx_devs.c
index fbfb21c8e8..37e3b87c2e 100644
--- a/hw/ppc/ppc4xx_devs.c
+++ b/hw/ppc/ppc4xx_devs.c
@@ -29,7 +29,6 @@
#include "hw/irq.h"
#include "hw/ppc/ppc.h"
#include "hw/ppc/ppc4xx.h"
-#include "hw/intc/ppc-uic.h"
#include "hw/qdev-properties.h"
#include "qemu/log.h"
#include "exec/address-spaces.h"
diff --git a/hw/ppc/sam460ex.c b/hw/ppc/sam460ex.c
index 0d9259f0f2..348ed27211 100644
--- a/hw/ppc/sam460ex.c
+++ b/hw/ppc/sam460ex.c
@@ -314,7 +314,6 @@ static void sam460ex_init(MachineState *machine)
/* interrupt controllers */
for (i = 0; i < ARRAY_SIZE(uic); i++) {
- SysBusDevice *sbd;
/*
* UICs 1, 2 and 3 are cascaded through UIC 0.
* input_ints[n] is the interrupt number on UIC 0 which
@@ -326,22 +325,20 @@ static void sam460ex_init(MachineState *machine)
const int input_ints[] = { -1, 30, 10, 16 };
uic[i] = qdev_new(TYPE_PPC_UIC);
- sbd = SYS_BUS_DEVICE(uic[i]);
-
qdev_prop_set_uint32(uic[i], "dcr-base", 0xc0 + i * 0x10);
- object_property_set_link(OBJECT(uic[i]), "cpu", OBJECT(cpu),
- &error_fatal);
- sysbus_realize_and_unref(sbd, &error_fatal);
+ ppc4xx_dcr_realize(PPC4xx_DCR_DEVICE(uic[i]), cpu, &error_fatal);
+ object_unref(OBJECT(uic[i]));
+ sbdev = SYS_BUS_DEVICE(uic[i]);
if (i == 0) {
- sysbus_connect_irq(sbd, PPCUIC_OUTPUT_INT,
+ sysbus_connect_irq(sbdev, PPCUIC_OUTPUT_INT,
qdev_get_gpio_in(DEVICE(cpu), PPC40x_INPUT_INT));
- sysbus_connect_irq(sbd, PPCUIC_OUTPUT_CINT,
+ sysbus_connect_irq(sbdev, PPCUIC_OUTPUT_CINT,
qdev_get_gpio_in(DEVICE(cpu), PPC40x_INPUT_CINT));
} else {
- sysbus_connect_irq(sbd, PPCUIC_OUTPUT_INT,
+ sysbus_connect_irq(sbdev, PPCUIC_OUTPUT_INT,
qdev_get_gpio_in(uic[0], input_ints[i]));
- sysbus_connect_irq(sbd, PPCUIC_OUTPUT_CINT,
+ sysbus_connect_irq(sbdev, PPCUIC_OUTPUT_CINT,
qdev_get_gpio_in(uic[0], input_ints[i] + 1));
}
}
diff --git a/hw/ppc/virtex_ml507.c b/hw/ppc/virtex_ml507.c
index 53b126ff48..493ea0c19f 100644
--- a/hw/ppc/virtex_ml507.c
+++ b/hw/ppc/virtex_ml507.c
@@ -104,12 +104,9 @@ static PowerPCCPU *ppc440_init_xilinx(const char *cpu_type, uint32_t sysclk)
/* interrupt controller */
uicdev = qdev_new(TYPE_PPC_UIC);
+ ppc4xx_dcr_realize(PPC4xx_DCR_DEVICE(uicdev), cpu, &error_fatal);
+ object_unref(OBJECT(uicdev));
uicsbd = SYS_BUS_DEVICE(uicdev);
-
- object_property_set_link(OBJECT(uicdev), "cpu", OBJECT(cpu),
- &error_fatal);
- sysbus_realize_and_unref(uicsbd, &error_fatal);
-
sysbus_connect_irq(uicsbd, PPCUIC_OUTPUT_INT,
qdev_get_gpio_in(DEVICE(cpu), PPC40x_INPUT_INT));
sysbus_connect_irq(uicsbd, PPCUIC_OUTPUT_CINT,
diff --git a/include/hw/intc/ppc-uic.h b/include/hw/intc/ppc-uic.h
index 22dd5e5ac2..4d82e9a3c6 100644
--- a/include/hw/intc/ppc-uic.h
+++ b/include/hw/intc/ppc-uic.h
@@ -25,8 +25,7 @@
#ifndef HW_INTC_PPC_UIC_H
#define HW_INTC_PPC_UIC_H
-#include "hw/sysbus.h"
-#include "qom/object.h"
+#include "hw/ppc/ppc4xx.h"
#define TYPE_PPC_UIC "ppc-uic"
OBJECT_DECLARE_SIMPLE_TYPE(PPCUIC, PPC_UIC)
@@ -56,14 +55,13 @@ enum {
struct PPCUIC {
/*< private >*/
- SysBusDevice parent_obj;
+ Ppc4xxDcrDeviceState parent_obj;
/*< public >*/
qemu_irq output_int;
qemu_irq output_cint;
/* properties */
- CPUState *cpu;
uint32_t dcr_base;
bool use_vectors;
--
2.37.2
^ permalink raw reply related [flat|nested] 63+ messages in thread
* [PULL 54/60] ppc/ppc405: Use an explicit I2C object
2022-08-31 18:49 [PULL 00/60] ppc queue Daniel Henrique Barboza
` (52 preceding siblings ...)
2022-08-31 18:50 ` [PULL 53/60] hw/intc/ppc-uic: Convert ppc-uic to a PPC4xx DCR device Daniel Henrique Barboza
@ 2022-08-31 18:50 ` Daniel Henrique Barboza
2022-08-31 18:50 ` [PULL 55/60] ppc/ppc405: QOM'ify FPGA Daniel Henrique Barboza
` (6 subsequent siblings)
60 siblings, 0 replies; 63+ messages in thread
From: Daniel Henrique Barboza @ 2022-08-31 18:50 UTC (permalink / raw)
To: qemu-devel
Cc: qemu-ppc, danielhb413, peter.maydell, richard.henderson,
Cédric Le Goater
From: Cédric Le Goater <clg@kaod.org>
Having an explicit I2C model object will help if one day we want to
add I2C devices on the bus from the machine init routine.
Reviewed-by: Daniel Henrique Barboza <danielhb413@gmail.com>
Signed-off-by: Cédric Le Goater <clg@kaod.org>
[balaton: Symplify sysbus device casts for readibility]
Signed-off-by: BALATON Zoltan <balaton@eik.bme.hu>
Message-Id: <68eb8b5ac408ca8cc981ebf53a3e154c0d34c7f6.1660746880.git.balaton@eik.bme.hu>
Signed-off-by: Daniel Henrique Barboza <danielhb413@gmail.com>
---
hw/ppc/ppc405.h | 2 ++
hw/ppc/ppc405_uc.c | 10 ++++++++--
2 files changed, 10 insertions(+), 2 deletions(-)
diff --git a/hw/ppc/ppc405.h b/hw/ppc/ppc405.h
index 67f4c14f50..efa29fdfb1 100644
--- a/hw/ppc/ppc405.h
+++ b/hw/ppc/ppc405.h
@@ -28,6 +28,7 @@
#include "qom/object.h"
#include "hw/ppc/ppc4xx.h"
#include "hw/intc/ppc-uic.h"
+#include "hw/i2c/ppc4xx_i2c.h"
#define PPC405EP_SDRAM_BASE 0x00000000
#define PPC405EP_NVRAM_BASE 0xF0000000
@@ -215,6 +216,7 @@ struct Ppc405SoCState {
Ppc405OcmState ocm;
Ppc405GpioState gpio;
Ppc405DmaState dma;
+ PPC4xxI2CState i2c;
Ppc4xxEbcState ebc;
Ppc405OpbaState opba;
Ppc405PobState pob;
diff --git a/hw/ppc/ppc405_uc.c b/hw/ppc/ppc405_uc.c
index dc17d5bdb5..189f49a138 100644
--- a/hw/ppc/ppc405_uc.c
+++ b/hw/ppc/ppc405_uc.c
@@ -1096,6 +1096,8 @@ static void ppc405_soc_instance_init(Object *obj)
object_initialize_child(obj, "dma", &s->dma, TYPE_PPC405_DMA);
+ object_initialize_child(obj, "i2c", &s->i2c, TYPE_PPC4xx_I2C);
+
object_initialize_child(obj, "ebc", &s->ebc, TYPE_PPC4xx_EBC);
object_initialize_child(obj, "opba", &s->opba, TYPE_PPC405_OPBA);
@@ -1188,8 +1190,12 @@ static void ppc405_soc_realize(DeviceState *dev, Error **errp)
}
/* I2C controller */
- sysbus_create_simple(TYPE_PPC4xx_I2C, 0xef600500,
- qdev_get_gpio_in(DEVICE(&s->uic), 2));
+ sbd = SYS_BUS_DEVICE(&s->i2c);
+ if (!sysbus_realize(sbd, errp)) {
+ return;
+ }
+ sysbus_mmio_map(sbd, 0, 0xef600500);
+ sysbus_connect_irq(sbd, 0, qdev_get_gpio_in(DEVICE(&s->uic), 2));
/* GPIO */
sbd = SYS_BUS_DEVICE(&s->gpio);
--
2.37.2
^ permalink raw reply related [flat|nested] 63+ messages in thread
* [PULL 55/60] ppc/ppc405: QOM'ify FPGA
2022-08-31 18:49 [PULL 00/60] ppc queue Daniel Henrique Barboza
` (53 preceding siblings ...)
2022-08-31 18:50 ` [PULL 54/60] ppc/ppc405: Use an explicit I2C object Daniel Henrique Barboza
@ 2022-08-31 18:50 ` Daniel Henrique Barboza
2022-08-31 18:50 ` [PULL 56/60] ppc405: Move machine specific code to ppc405_boards.c Daniel Henrique Barboza
` (5 subsequent siblings)
60 siblings, 0 replies; 63+ messages in thread
From: Daniel Henrique Barboza @ 2022-08-31 18:50 UTC (permalink / raw)
To: qemu-devel
Cc: qemu-ppc, danielhb413, peter.maydell, richard.henderson,
Cédric Le Goater
From: Cédric Le Goater <clg@kaod.org>
Reviewed-by: Daniel Henrique Barboza <danielhb413@gmail.com>
Signed-off-by: Cédric Le Goater <clg@kaod.org>
Signed-off-by: BALATON Zoltan <balaton@eik.bme.hu>
Message-Id: <ed6ff1705dadb46b456e424aa0f0420f1d18d92c.1660746880.git.balaton@eik.bme.hu>
Signed-off-by: Daniel Henrique Barboza <danielhb413@gmail.com>
---
hw/ppc/ppc405_boards.c | 56 +++++++++++++++++++++++++++++-------------
1 file changed, 39 insertions(+), 17 deletions(-)
diff --git a/hw/ppc/ppc405_boards.c b/hw/ppc/ppc405_boards.c
index 3677793adc..7af0d7feef 100644
--- a/hw/ppc/ppc405_boards.c
+++ b/hw/ppc/ppc405_boards.c
@@ -71,18 +71,23 @@ struct Ppc405MachineState {
* - NVRAM (0xF0000000)
* - FPGA (0xF0300000)
*/
-typedef struct ref405ep_fpga_t ref405ep_fpga_t;
-struct ref405ep_fpga_t {
+
+#define TYPE_REF405EP_FPGA "ref405ep-fpga"
+OBJECT_DECLARE_SIMPLE_TYPE(Ref405epFpgaState, REF405EP_FPGA);
+struct Ref405epFpgaState {
+ SysBusDevice parent_obj;
+
+ MemoryRegion iomem;
+
uint8_t reg0;
uint8_t reg1;
};
static uint64_t ref405ep_fpga_readb(void *opaque, hwaddr addr, unsigned size)
{
- ref405ep_fpga_t *fpga;
+ Ref405epFpgaState *fpga = opaque;
uint32_t ret;
- fpga = opaque;
switch (addr) {
case 0x0:
ret = fpga->reg0;
@@ -101,9 +106,8 @@ static uint64_t ref405ep_fpga_readb(void *opaque, hwaddr addr, unsigned size)
static void ref405ep_fpga_writeb(void *opaque, hwaddr addr, uint64_t value,
unsigned size)
{
- ref405ep_fpga_t *fpga;
+ Ref405epFpgaState *fpga = opaque;
- fpga = opaque;
switch (addr) {
case 0x0:
/* Read only */
@@ -126,27 +130,40 @@ static const MemoryRegionOps ref405ep_fpga_ops = {
.endianness = DEVICE_BIG_ENDIAN,
};
-static void ref405ep_fpga_reset (void *opaque)
+static void ref405ep_fpga_reset(DeviceState *dev)
{
- ref405ep_fpga_t *fpga;
+ Ref405epFpgaState *fpga = REF405EP_FPGA(dev);
- fpga = opaque;
fpga->reg0 = 0x00;
fpga->reg1 = 0x0F;
}
-static void ref405ep_fpga_init(MemoryRegion *sysmem, uint32_t base)
+static void ref405ep_fpga_realize(DeviceState *dev, Error **errp)
{
- ref405ep_fpga_t *fpga;
- MemoryRegion *fpga_memory = g_new(MemoryRegion, 1);
+ Ref405epFpgaState *s = REF405EP_FPGA(dev);
- fpga = g_new0(ref405ep_fpga_t, 1);
- memory_region_init_io(fpga_memory, NULL, &ref405ep_fpga_ops, fpga,
+ memory_region_init_io(&s->iomem, OBJECT(s), &ref405ep_fpga_ops, s,
"fpga", 0x00000100);
- memory_region_add_subregion(sysmem, base, fpga_memory);
- qemu_register_reset(&ref405ep_fpga_reset, fpga);
+ sysbus_init_mmio(SYS_BUS_DEVICE(s), &s->iomem);
+}
+
+static void ref405ep_fpga_class_init(ObjectClass *oc, void *data)
+{
+ DeviceClass *dc = DEVICE_CLASS(oc);
+
+ dc->realize = ref405ep_fpga_realize;
+ dc->reset = ref405ep_fpga_reset;
+ /* Reason: only works as part of a ppc405 board */
+ dc->user_creatable = false;
}
+static const TypeInfo ref405ep_fpga_type = {
+ .name = TYPE_REF405EP_FPGA,
+ .parent = TYPE_SYS_BUS_DEVICE,
+ .instance_size = sizeof(Ref405epFpgaState),
+ .class_init = ref405ep_fpga_class_init,
+};
+
/*
* CPU reset handler when booting directly from a loaded kernel
*/
@@ -331,7 +348,11 @@ static void ref405ep_init(MachineState *machine)
memory_region_add_subregion(get_system_memory(), PPC405EP_SRAM_BASE, sram);
/* Register FPGA */
- ref405ep_fpga_init(get_system_memory(), PPC405EP_FPGA_BASE);
+ dev = qdev_new(TYPE_REF405EP_FPGA);
+ object_property_add_child(OBJECT(machine), "fpga", OBJECT(dev));
+ sysbus_realize_and_unref(SYS_BUS_DEVICE(dev), &error_fatal);
+ sysbus_mmio_map(SYS_BUS_DEVICE(dev), 0, PPC405EP_FPGA_BASE);
+
/* Register NVRAM */
dev = qdev_new("sysbus-m48t08");
qdev_prop_set_int32(dev, "base-year", 1968);
@@ -376,6 +397,7 @@ static void ppc405_machine_init(void)
{
type_register_static(&ppc405_machine_type);
type_register_static(&ref405ep_type);
+ type_register_static(&ref405ep_fpga_type);
}
type_init(ppc405_machine_init)
--
2.37.2
^ permalink raw reply related [flat|nested] 63+ messages in thread
* [PULL 56/60] ppc405: Move machine specific code to ppc405_boards.c
2022-08-31 18:49 [PULL 00/60] ppc queue Daniel Henrique Barboza
` (54 preceding siblings ...)
2022-08-31 18:50 ` [PULL 55/60] ppc/ppc405: QOM'ify FPGA Daniel Henrique Barboza
@ 2022-08-31 18:50 ` Daniel Henrique Barboza
2022-08-31 18:50 ` [PULL 57/60] hw/ppc/sam3460ex: Remove PPC405 dependency from sam460ex Daniel Henrique Barboza
` (4 subsequent siblings)
60 siblings, 0 replies; 63+ messages in thread
From: Daniel Henrique Barboza @ 2022-08-31 18:50 UTC (permalink / raw)
To: qemu-devel
Cc: qemu-ppc, danielhb413, peter.maydell, richard.henderson,
BALATON Zoltan, Cédric Le Goater
From: BALATON Zoltan <balaton@eik.bme.hu>
These are only used by the board code so move out from the shared SoC
model and put it in the boards file.
Signed-off-by: BALATON Zoltan <balaton@eik.bme.hu>
Reviewed-by: Cédric Le Goater <clg@kaod.org>
Message-Id: <2b23bcaaf191f96b217cbd06a6038694024862c3.1660746880.git.balaton@eik.bme.hu>
Signed-off-by: Daniel Henrique Barboza <danielhb413@gmail.com>
---
hw/ppc/ppc405.h | 38 -----
hw/ppc/ppc405_boards.c | 375 +++++++++++++++++++++++++++--------------
hw/ppc/ppc405_uc.c | 92 ----------
3 files changed, 251 insertions(+), 254 deletions(-)
diff --git a/hw/ppc/ppc405.h b/hw/ppc/ppc405.h
index efa29fdfb1..1e558c7831 100644
--- a/hw/ppc/ppc405.h
+++ b/hw/ppc/ppc405.h
@@ -30,41 +30,6 @@
#include "hw/intc/ppc-uic.h"
#include "hw/i2c/ppc4xx_i2c.h"
-#define PPC405EP_SDRAM_BASE 0x00000000
-#define PPC405EP_NVRAM_BASE 0xF0000000
-#define PPC405EP_FPGA_BASE 0xF0300000
-#define PPC405EP_SRAM_BASE 0xFFF00000
-#define PPC405EP_SRAM_SIZE (512 * KiB)
-#define PPC405EP_FLASH_BASE 0xFFF80000
-
-/* Bootinfo as set-up by u-boot */
-typedef struct ppc4xx_bd_info_t ppc4xx_bd_info_t;
-struct ppc4xx_bd_info_t {
- uint32_t bi_memstart;
- uint32_t bi_memsize;
- uint32_t bi_flashstart;
- uint32_t bi_flashsize;
- uint32_t bi_flashoffset; /* 0x10 */
- uint32_t bi_sramstart;
- uint32_t bi_sramsize;
- uint32_t bi_bootflags;
- uint32_t bi_ipaddr; /* 0x20 */
- uint8_t bi_enetaddr[6];
- uint16_t bi_ethspeed;
- uint32_t bi_intfreq;
- uint32_t bi_busfreq; /* 0x30 */
- uint32_t bi_baudrate;
- uint8_t bi_s_version[4];
- uint8_t bi_r_version[32];
- uint32_t bi_procfreq;
- uint32_t bi_plb_busfreq;
- uint32_t bi_pci_busfreq;
- uint8_t bi_pci_enetaddr[6];
- uint8_t bi_pci_enetaddr2[6]; /* PPC405EP specific */
- uint32_t bi_opbfreq;
- uint32_t bi_iic_fast[2];
-};
-
/* PLB to OPB bridge */
#define TYPE_PPC405_POB "ppc405-pob"
OBJECT_DECLARE_SIMPLE_TYPE(Ppc405PobState, PPC405_POB);
@@ -224,7 +189,4 @@ struct Ppc405SoCState {
Ppc4xxMalState mal;
};
-/* PowerPC 405 core */
-ram_addr_t ppc405_set_bootinfo(CPUPPCState *env, ram_addr_t ram_size);
-
#endif /* PPC405_H */
diff --git a/hw/ppc/ppc405_boards.c b/hw/ppc/ppc405_boards.c
index 7af0d7feef..083f12b23e 100644
--- a/hw/ppc/ppc405_boards.c
+++ b/hw/ppc/ppc405_boards.c
@@ -48,6 +48,10 @@
#define KERNEL_LOAD_ADDR 0x01000000
#define INITRD_LOAD_ADDR 0x01800000
+#define PPC405EP_SDRAM_BASE 0x00000000
+#define PPC405EP_SRAM_BASE 0xFFF00000
+#define PPC405EP_SRAM_SIZE (512 * KiB)
+
#define USE_FLASH_BIOS
#define TYPE_PPC405_MACHINE MACHINE_TYPE_NAME("ppc405")
@@ -61,112 +65,7 @@ struct Ppc405MachineState {
Ppc405SoCState soc;
};
-/*****************************************************************************/
-/* PPC405EP reference board (IBM) */
-/* Standalone board with:
- * - PowerPC 405EP CPU
- * - SDRAM (0x00000000)
- * - Flash (0xFFF80000)
- * - SRAM (0xFFF00000)
- * - NVRAM (0xF0000000)
- * - FPGA (0xF0300000)
- */
-
-#define TYPE_REF405EP_FPGA "ref405ep-fpga"
-OBJECT_DECLARE_SIMPLE_TYPE(Ref405epFpgaState, REF405EP_FPGA);
-struct Ref405epFpgaState {
- SysBusDevice parent_obj;
-
- MemoryRegion iomem;
-
- uint8_t reg0;
- uint8_t reg1;
-};
-
-static uint64_t ref405ep_fpga_readb(void *opaque, hwaddr addr, unsigned size)
-{
- Ref405epFpgaState *fpga = opaque;
- uint32_t ret;
-
- switch (addr) {
- case 0x0:
- ret = fpga->reg0;
- break;
- case 0x1:
- ret = fpga->reg1;
- break;
- default:
- ret = 0;
- break;
- }
-
- return ret;
-}
-
-static void ref405ep_fpga_writeb(void *opaque, hwaddr addr, uint64_t value,
- unsigned size)
-{
- Ref405epFpgaState *fpga = opaque;
-
- switch (addr) {
- case 0x0:
- /* Read only */
- break;
- case 0x1:
- fpga->reg1 = value;
- break;
- default:
- break;
- }
-}
-
-static const MemoryRegionOps ref405ep_fpga_ops = {
- .read = ref405ep_fpga_readb,
- .write = ref405ep_fpga_writeb,
- .impl.min_access_size = 1,
- .impl.max_access_size = 1,
- .valid.min_access_size = 1,
- .valid.max_access_size = 4,
- .endianness = DEVICE_BIG_ENDIAN,
-};
-
-static void ref405ep_fpga_reset(DeviceState *dev)
-{
- Ref405epFpgaState *fpga = REF405EP_FPGA(dev);
-
- fpga->reg0 = 0x00;
- fpga->reg1 = 0x0F;
-}
-
-static void ref405ep_fpga_realize(DeviceState *dev, Error **errp)
-{
- Ref405epFpgaState *s = REF405EP_FPGA(dev);
-
- memory_region_init_io(&s->iomem, OBJECT(s), &ref405ep_fpga_ops, s,
- "fpga", 0x00000100);
- sysbus_init_mmio(SYS_BUS_DEVICE(s), &s->iomem);
-}
-
-static void ref405ep_fpga_class_init(ObjectClass *oc, void *data)
-{
- DeviceClass *dc = DEVICE_CLASS(oc);
-
- dc->realize = ref405ep_fpga_realize;
- dc->reset = ref405ep_fpga_reset;
- /* Reason: only works as part of a ppc405 board */
- dc->user_creatable = false;
-}
-
-static const TypeInfo ref405ep_fpga_type = {
- .name = TYPE_REF405EP_FPGA,
- .parent = TYPE_SYS_BUS_DEVICE,
- .instance_size = sizeof(Ref405epFpgaState),
- .class_init = ref405ep_fpga_class_init,
-};
-
-/*
- * CPU reset handler when booting directly from a loaded kernel
- */
+/* CPU reset handler when booting directly from a loaded kernel */
static struct boot_info {
uint32_t entry;
uint32_t bdloc;
@@ -197,6 +96,126 @@ static void main_cpu_reset(void *opaque)
env->nip = bi->entry;
}
+/* Bootinfo as set-up by u-boot */
+typedef struct {
+ uint32_t bi_memstart;
+ uint32_t bi_memsize;
+ uint32_t bi_flashstart;
+ uint32_t bi_flashsize;
+ uint32_t bi_flashoffset; /* 0x10 */
+ uint32_t bi_sramstart;
+ uint32_t bi_sramsize;
+ uint32_t bi_bootflags;
+ uint32_t bi_ipaddr; /* 0x20 */
+ uint8_t bi_enetaddr[6];
+ uint16_t bi_ethspeed;
+ uint32_t bi_intfreq;
+ uint32_t bi_busfreq; /* 0x30 */
+ uint32_t bi_baudrate;
+ uint8_t bi_s_version[4];
+ uint8_t bi_r_version[32];
+ uint32_t bi_procfreq;
+ uint32_t bi_plb_busfreq;
+ uint32_t bi_pci_busfreq;
+ uint8_t bi_pci_enetaddr[6];
+ uint8_t bi_pci_enetaddr2[6]; /* PPC405EP specific */
+ uint32_t bi_opbfreq;
+ uint32_t bi_iic_fast[2];
+} ppc4xx_bd_info_t;
+
+static void ppc405_set_default_bootinfo(ppc4xx_bd_info_t *bd,
+ ram_addr_t ram_size)
+{
+ memset(bd, 0, sizeof(*bd));
+
+ bd->bi_memstart = PPC405EP_SDRAM_BASE;
+ bd->bi_memsize = ram_size;
+ bd->bi_sramstart = PPC405EP_SRAM_BASE;
+ bd->bi_sramsize = PPC405EP_SRAM_SIZE;
+ bd->bi_bootflags = 0;
+ bd->bi_intfreq = 133333333;
+ bd->bi_busfreq = 33333333;
+ bd->bi_baudrate = 115200;
+ bd->bi_s_version[0] = 'Q';
+ bd->bi_s_version[1] = 'M';
+ bd->bi_s_version[2] = 'U';
+ bd->bi_s_version[3] = '\0';
+ bd->bi_r_version[0] = 'Q';
+ bd->bi_r_version[1] = 'E';
+ bd->bi_r_version[2] = 'M';
+ bd->bi_r_version[3] = 'U';
+ bd->bi_r_version[4] = '\0';
+ bd->bi_procfreq = 133333333;
+ bd->bi_plb_busfreq = 33333333;
+ bd->bi_pci_busfreq = 33333333;
+ bd->bi_opbfreq = 33333333;
+}
+
+static ram_addr_t __ppc405_set_bootinfo(CPUPPCState *env, ppc4xx_bd_info_t *bd)
+{
+ CPUState *cs = env_cpu(env);
+ ram_addr_t bdloc;
+ int i, n;
+
+ /* We put the bd structure at the top of memory */
+ if (bd->bi_memsize >= 0x01000000UL) {
+ bdloc = 0x01000000UL - sizeof(ppc4xx_bd_info_t);
+ } else {
+ bdloc = bd->bi_memsize - sizeof(ppc4xx_bd_info_t);
+ }
+ stl_be_phys(cs->as, bdloc + 0x00, bd->bi_memstart);
+ stl_be_phys(cs->as, bdloc + 0x04, bd->bi_memsize);
+ stl_be_phys(cs->as, bdloc + 0x08, bd->bi_flashstart);
+ stl_be_phys(cs->as, bdloc + 0x0C, bd->bi_flashsize);
+ stl_be_phys(cs->as, bdloc + 0x10, bd->bi_flashoffset);
+ stl_be_phys(cs->as, bdloc + 0x14, bd->bi_sramstart);
+ stl_be_phys(cs->as, bdloc + 0x18, bd->bi_sramsize);
+ stl_be_phys(cs->as, bdloc + 0x1C, bd->bi_bootflags);
+ stl_be_phys(cs->as, bdloc + 0x20, bd->bi_ipaddr);
+ for (i = 0; i < 6; i++) {
+ stb_phys(cs->as, bdloc + 0x24 + i, bd->bi_enetaddr[i]);
+ }
+ stw_be_phys(cs->as, bdloc + 0x2A, bd->bi_ethspeed);
+ stl_be_phys(cs->as, bdloc + 0x2C, bd->bi_intfreq);
+ stl_be_phys(cs->as, bdloc + 0x30, bd->bi_busfreq);
+ stl_be_phys(cs->as, bdloc + 0x34, bd->bi_baudrate);
+ for (i = 0; i < 4; i++) {
+ stb_phys(cs->as, bdloc + 0x38 + i, bd->bi_s_version[i]);
+ }
+ for (i = 0; i < 32; i++) {
+ stb_phys(cs->as, bdloc + 0x3C + i, bd->bi_r_version[i]);
+ }
+ stl_be_phys(cs->as, bdloc + 0x5C, bd->bi_procfreq);
+ stl_be_phys(cs->as, bdloc + 0x60, bd->bi_plb_busfreq);
+ stl_be_phys(cs->as, bdloc + 0x64, bd->bi_pci_busfreq);
+ for (i = 0; i < 6; i++) {
+ stb_phys(cs->as, bdloc + 0x68 + i, bd->bi_pci_enetaddr[i]);
+ }
+ n = 0x70; /* includes 2 bytes hole */
+ for (i = 0; i < 6; i++) {
+ stb_phys(cs->as, bdloc + n++, bd->bi_pci_enetaddr2[i]);
+ }
+ stl_be_phys(cs->as, bdloc + n, bd->bi_opbfreq);
+ n += 4;
+ for (i = 0; i < 2; i++) {
+ stl_be_phys(cs->as, bdloc + n, bd->bi_iic_fast[i]);
+ n += 4;
+ }
+
+ return bdloc;
+}
+
+static ram_addr_t ppc405_set_bootinfo(CPUPPCState *env, ram_addr_t ram_size)
+{
+ ppc4xx_bd_info_t bd;
+
+ memset(&bd, 0, sizeof(bd));
+
+ ppc405_set_default_bootinfo(&bd, ram_size);
+
+ return __ppc405_set_bootinfo(env, &bd);
+}
+
static void boot_from_kernel(MachineState *machine, PowerPCCPU *cpu)
{
CPUPPCState *env = &cpu->env;
@@ -334,6 +353,132 @@ static void ppc405_init(MachineState *machine)
}
}
+static void ppc405_machine_class_init(ObjectClass *oc, void *data)
+{
+ MachineClass *mc = MACHINE_CLASS(oc);
+
+ mc->desc = "PPC405 generic machine";
+ mc->init = ppc405_init;
+ mc->default_ram_size = 128 * MiB;
+ mc->default_ram_id = "ppc405.ram";
+}
+
+static const TypeInfo ppc405_machine_type = {
+ .name = TYPE_PPC405_MACHINE,
+ .parent = TYPE_MACHINE,
+ .instance_size = sizeof(Ppc405MachineState),
+ .class_init = ppc405_machine_class_init,
+ .abstract = true,
+};
+
+/*****************************************************************************/
+/* PPC405EP reference board (IBM) */
+/*
+ * Standalone board with:
+ * - PowerPC 405EP CPU
+ * - SDRAM (0x00000000)
+ * - Flash (0xFFF80000)
+ * - SRAM (0xFFF00000)
+ * - NVRAM (0xF0000000)
+ * - FPGA (0xF0300000)
+ */
+
+#define PPC405EP_NVRAM_BASE 0xF0000000
+#define PPC405EP_FPGA_BASE 0xF0300000
+#define PPC405EP_FLASH_BASE 0xFFF80000
+
+#define TYPE_REF405EP_FPGA "ref405ep-fpga"
+OBJECT_DECLARE_SIMPLE_TYPE(Ref405epFpgaState, REF405EP_FPGA);
+struct Ref405epFpgaState {
+ SysBusDevice parent_obj;
+
+ MemoryRegion iomem;
+
+ uint8_t reg0;
+ uint8_t reg1;
+};
+
+static uint64_t ref405ep_fpga_readb(void *opaque, hwaddr addr, unsigned size)
+{
+ Ref405epFpgaState *fpga = opaque;
+ uint32_t ret;
+
+ switch (addr) {
+ case 0x0:
+ ret = fpga->reg0;
+ break;
+ case 0x1:
+ ret = fpga->reg1;
+ break;
+ default:
+ ret = 0;
+ break;
+ }
+
+ return ret;
+}
+
+static void ref405ep_fpga_writeb(void *opaque, hwaddr addr, uint64_t value,
+ unsigned size)
+{
+ Ref405epFpgaState *fpga = opaque;
+
+ switch (addr) {
+ case 0x0:
+ /* Read only */
+ break;
+ case 0x1:
+ fpga->reg1 = value;
+ break;
+ default:
+ break;
+ }
+}
+
+static const MemoryRegionOps ref405ep_fpga_ops = {
+ .read = ref405ep_fpga_readb,
+ .write = ref405ep_fpga_writeb,
+ .impl.min_access_size = 1,
+ .impl.max_access_size = 1,
+ .valid.min_access_size = 1,
+ .valid.max_access_size = 4,
+ .endianness = DEVICE_BIG_ENDIAN,
+};
+
+static void ref405ep_fpga_reset(DeviceState *dev)
+{
+ Ref405epFpgaState *fpga = REF405EP_FPGA(dev);
+
+ fpga->reg0 = 0x00;
+ fpga->reg1 = 0x0F;
+}
+
+static void ref405ep_fpga_realize(DeviceState *dev, Error **errp)
+{
+ Ref405epFpgaState *s = REF405EP_FPGA(dev);
+
+ memory_region_init_io(&s->iomem, OBJECT(s), &ref405ep_fpga_ops, s,
+ "fpga", 0x00000100);
+ sysbus_init_mmio(SYS_BUS_DEVICE(s), &s->iomem);
+}
+
+static void ref405ep_fpga_class_init(ObjectClass *oc, void *data)
+{
+ DeviceClass *dc = DEVICE_CLASS(oc);
+
+ dc->realize = ref405ep_fpga_realize;
+ dc->reset = ref405ep_fpga_reset;
+ /* Reason: only works as part of a ppc405 board */
+ dc->user_creatable = false;
+}
+
+static const TypeInfo ref405ep_fpga_type = {
+ .name = TYPE_REF405EP_FPGA,
+ .parent = TYPE_SYS_BUS_DEVICE,
+ .instance_size = sizeof(Ref405epFpgaState),
+ .class_init = ref405ep_fpga_class_init,
+};
+
static void ref405ep_init(MachineState *machine)
{
DeviceState *dev;
@@ -375,24 +520,6 @@ static const TypeInfo ref405ep_type = {
.class_init = ref405ep_class_init,
};
-static void ppc405_machine_class_init(ObjectClass *oc, void *data)
-{
- MachineClass *mc = MACHINE_CLASS(oc);
-
- mc->desc = "PPC405 generic machine";
- mc->init = ppc405_init;
- mc->default_ram_size = 128 * MiB;
- mc->default_ram_id = "ppc405.ram";
-}
-
-static const TypeInfo ppc405_machine_type = {
- .name = TYPE_PPC405_MACHINE,
- .parent = TYPE_MACHINE,
- .instance_size = sizeof(Ppc405MachineState),
- .class_init = ppc405_machine_class_init,
- .abstract = true,
-};
-
static void ppc405_machine_init(void)
{
type_register_static(&ppc405_machine_type);
diff --git a/hw/ppc/ppc405_uc.c b/hw/ppc/ppc405_uc.c
index 189f49a138..74d27250a7 100644
--- a/hw/ppc/ppc405_uc.c
+++ b/hw/ppc/ppc405_uc.c
@@ -42,98 +42,6 @@
#include "qapi/error.h"
#include "trace.h"
-static void ppc405_set_default_bootinfo(ppc4xx_bd_info_t *bd,
- ram_addr_t ram_size)
-{
- memset(bd, 0, sizeof(*bd));
-
- bd->bi_memstart = PPC405EP_SDRAM_BASE;
- bd->bi_memsize = ram_size;
- bd->bi_sramstart = PPC405EP_SRAM_BASE;
- bd->bi_sramsize = PPC405EP_SRAM_SIZE;
- bd->bi_bootflags = 0;
- bd->bi_intfreq = 133333333;
- bd->bi_busfreq = 33333333;
- bd->bi_baudrate = 115200;
- bd->bi_s_version[0] = 'Q';
- bd->bi_s_version[1] = 'M';
- bd->bi_s_version[2] = 'U';
- bd->bi_s_version[3] = '\0';
- bd->bi_r_version[0] = 'Q';
- bd->bi_r_version[1] = 'E';
- bd->bi_r_version[2] = 'M';
- bd->bi_r_version[3] = 'U';
- bd->bi_r_version[4] = '\0';
- bd->bi_procfreq = 133333333;
- bd->bi_plb_busfreq = 33333333;
- bd->bi_pci_busfreq = 33333333;
- bd->bi_opbfreq = 33333333;
-}
-
-static ram_addr_t __ppc405_set_bootinfo(CPUPPCState *env, ppc4xx_bd_info_t *bd)
-{
- CPUState *cs = env_cpu(env);
- ram_addr_t bdloc;
- int i, n;
-
- /* We put the bd structure at the top of memory */
- if (bd->bi_memsize >= 0x01000000UL)
- bdloc = 0x01000000UL - sizeof(struct ppc4xx_bd_info_t);
- else
- bdloc = bd->bi_memsize - sizeof(struct ppc4xx_bd_info_t);
- stl_be_phys(cs->as, bdloc + 0x00, bd->bi_memstart);
- stl_be_phys(cs->as, bdloc + 0x04, bd->bi_memsize);
- stl_be_phys(cs->as, bdloc + 0x08, bd->bi_flashstart);
- stl_be_phys(cs->as, bdloc + 0x0C, bd->bi_flashsize);
- stl_be_phys(cs->as, bdloc + 0x10, bd->bi_flashoffset);
- stl_be_phys(cs->as, bdloc + 0x14, bd->bi_sramstart);
- stl_be_phys(cs->as, bdloc + 0x18, bd->bi_sramsize);
- stl_be_phys(cs->as, bdloc + 0x1C, bd->bi_bootflags);
- stl_be_phys(cs->as, bdloc + 0x20, bd->bi_ipaddr);
- for (i = 0; i < 6; i++) {
- stb_phys(cs->as, bdloc + 0x24 + i, bd->bi_enetaddr[i]);
- }
- stw_be_phys(cs->as, bdloc + 0x2A, bd->bi_ethspeed);
- stl_be_phys(cs->as, bdloc + 0x2C, bd->bi_intfreq);
- stl_be_phys(cs->as, bdloc + 0x30, bd->bi_busfreq);
- stl_be_phys(cs->as, bdloc + 0x34, bd->bi_baudrate);
- for (i = 0; i < 4; i++) {
- stb_phys(cs->as, bdloc + 0x38 + i, bd->bi_s_version[i]);
- }
- for (i = 0; i < 32; i++) {
- stb_phys(cs->as, bdloc + 0x3C + i, bd->bi_r_version[i]);
- }
- stl_be_phys(cs->as, bdloc + 0x5C, bd->bi_procfreq);
- stl_be_phys(cs->as, bdloc + 0x60, bd->bi_plb_busfreq);
- stl_be_phys(cs->as, bdloc + 0x64, bd->bi_pci_busfreq);
- for (i = 0; i < 6; i++) {
- stb_phys(cs->as, bdloc + 0x68 + i, bd->bi_pci_enetaddr[i]);
- }
- n = 0x70; /* includes 2 bytes hole */
- for (i = 0; i < 6; i++) {
- stb_phys(cs->as, bdloc + n++, bd->bi_pci_enetaddr2[i]);
- }
- stl_be_phys(cs->as, bdloc + n, bd->bi_opbfreq);
- n += 4;
- for (i = 0; i < 2; i++) {
- stl_be_phys(cs->as, bdloc + n, bd->bi_iic_fast[i]);
- n += 4;
- }
-
- return bdloc;
-}
-
-ram_addr_t ppc405_set_bootinfo(CPUPPCState *env, ram_addr_t ram_size)
-{
- ppc4xx_bd_info_t bd;
-
- memset(&bd, 0, sizeof(bd));
-
- ppc405_set_default_bootinfo(&bd, ram_size);
-
- return __ppc405_set_bootinfo(env, &bd);
-}
-
/*****************************************************************************/
/* Shared peripherals */
--
2.37.2
^ permalink raw reply related [flat|nested] 63+ messages in thread
* [PULL 57/60] hw/ppc/sam3460ex: Remove PPC405 dependency from sam460ex
2022-08-31 18:49 [PULL 00/60] ppc queue Daniel Henrique Barboza
` (55 preceding siblings ...)
2022-08-31 18:50 ` [PULL 56/60] ppc405: Move machine specific code to ppc405_boards.c Daniel Henrique Barboza
@ 2022-08-31 18:50 ` Daniel Henrique Barboza
2022-08-31 18:50 ` [PULL 58/60] hw/ppc/Kconfig: Move imply before select Daniel Henrique Barboza
` (3 subsequent siblings)
60 siblings, 0 replies; 63+ messages in thread
From: Daniel Henrique Barboza @ 2022-08-31 18:50 UTC (permalink / raw)
To: qemu-devel
Cc: qemu-ppc, danielhb413, peter.maydell, richard.henderson,
BALATON Zoltan, Cédric Le Goater
From: BALATON Zoltan <balaton@eik.bme.hu>
Now that shared PPC4xx devices are separated from PPC405 ones we can
drop this depencency.
Signed-off-by: BALATON Zoltan <balaton@eik.bme.hu>
Reviewed-by: Cédric Le Goater <clg@kaod.org>
Message-Id: <cf6c1d280f830beeea41128595c8c026d5126d2b.1660762465.git.balaton@eik.bme.hu>
Signed-off-by: Daniel Henrique Barboza <danielhb413@gmail.com>
---
hw/ppc/Kconfig | 1 -
hw/ppc/sam460ex.c | 1 -
2 files changed, 2 deletions(-)
diff --git a/hw/ppc/Kconfig b/hw/ppc/Kconfig
index 400511c6b7..205f9f98d7 100644
--- a/hw/ppc/Kconfig
+++ b/hw/ppc/Kconfig
@@ -58,7 +58,6 @@ config PPC4XX
config SAM460EX
bool
- select PPC405
select PFLASH_CFI01
select IDE_SII3112
select M41T80
diff --git a/hw/ppc/sam460ex.c b/hw/ppc/sam460ex.c
index 348ed27211..850bb3b817 100644
--- a/hw/ppc/sam460ex.c
+++ b/hw/ppc/sam460ex.c
@@ -25,7 +25,6 @@
#include "elf.h"
#include "exec/memory.h"
#include "ppc440.h"
-#include "ppc405.h"
#include "hw/block/flash.h"
#include "sysemu/sysemu.h"
#include "sysemu/reset.h"
--
2.37.2
^ permalink raw reply related [flat|nested] 63+ messages in thread
* [PULL 58/60] hw/ppc/Kconfig: Move imply before select
2022-08-31 18:49 [PULL 00/60] ppc queue Daniel Henrique Barboza
` (56 preceding siblings ...)
2022-08-31 18:50 ` [PULL 57/60] hw/ppc/sam3460ex: Remove PPC405 dependency from sam460ex Daniel Henrique Barboza
@ 2022-08-31 18:50 ` Daniel Henrique Barboza
2022-08-31 18:50 ` [PULL 59/60] ppc/ppc4xx: Fix sdram trace events Daniel Henrique Barboza
` (2 subsequent siblings)
60 siblings, 0 replies; 63+ messages in thread
From: Daniel Henrique Barboza @ 2022-08-31 18:50 UTC (permalink / raw)
To: qemu-devel
Cc: qemu-ppc, danielhb413, peter.maydell, richard.henderson,
BALATON Zoltan, Cédric Le Goater
From: BALATON Zoltan <balaton@eik.bme.hu>
In pegasos2 section move imply before select to match other sections.
Signed-off-by: BALATON Zoltan <balaton@eik.bme.hu>
Reviewed-by: Cédric Le Goater <clg@kaod.org>
Message-Id: <4d46dde64c2e5df6db3f92426fb3ae885939c2b0.1660746880.git.balaton@eik.bme.hu>
Signed-off-by: Daniel Henrique Barboza <danielhb413@gmail.com>
---
hw/ppc/Kconfig | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/hw/ppc/Kconfig b/hw/ppc/Kconfig
index 205f9f98d7..3a4418a69e 100644
--- a/hw/ppc/Kconfig
+++ b/hw/ppc/Kconfig
@@ -71,6 +71,7 @@ config SAM460EX
config PEGASOS2
bool
+ imply ATI_VGA
select MV64361
select VT82C686
select IDE_VIA
@@ -78,7 +79,6 @@ config PEGASOS2
select VOF
# This should come with VT82C686
select ACPI_X86
- imply ATI_VGA
config PREP
bool
--
2.37.2
^ permalink raw reply related [flat|nested] 63+ messages in thread
* [PULL 59/60] ppc/ppc4xx: Fix sdram trace events
2022-08-31 18:49 [PULL 00/60] ppc queue Daniel Henrique Barboza
` (57 preceding siblings ...)
2022-08-31 18:50 ` [PULL 58/60] hw/ppc/Kconfig: Move imply before select Daniel Henrique Barboza
@ 2022-08-31 18:50 ` Daniel Henrique Barboza
2022-08-31 18:50 ` [PULL 60/60] ppc4xx: Fix code style problems reported by checkpatch Daniel Henrique Barboza
2022-08-31 19:37 ` [PULL 00/60] ppc queue BALATON Zoltan
60 siblings, 0 replies; 63+ messages in thread
From: Daniel Henrique Barboza @ 2022-08-31 18:50 UTC (permalink / raw)
To: qemu-devel
Cc: qemu-ppc, danielhb413, peter.maydell, richard.henderson,
Cédric Le Goater
From: Cédric Le Goater <clg@kaod.org>
Reviewed-by: Daniel Henrique Barboza <danielhb413@gmail.com>
Signed-off-by: Cédric Le Goater <clg@kaod.org>
Signed-off-by: BALATON Zoltan <balaton@eik.bme.hu>
Message-Id: <0a3e454eb7fd5f2b807a9c752c28693f27829f1d.1660746880.git.balaton@eik.bme.hu>
Signed-off-by: Daniel Henrique Barboza <danielhb413@gmail.com>
---
hw/ppc/ppc4xx_devs.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/hw/ppc/ppc4xx_devs.c b/hw/ppc/ppc4xx_devs.c
index 37e3b87c2e..27ebbb2ffc 100644
--- a/hw/ppc/ppc4xx_devs.c
+++ b/hw/ppc/ppc4xx_devs.c
@@ -142,7 +142,7 @@ static void sdram_set_bcr(ppc4xx_sdram_t *sdram, int i,
}
sdram->bcr[i] = bcr & 0xFFDEE001;
if (enabled && (bcr & 0x00000001)) {
- trace_ppc4xx_sdram_unmap(sdram_base(bcr), sdram_size(bcr));
+ trace_ppc4xx_sdram_map(sdram_base(bcr), sdram_size(bcr));
memory_region_init(&sdram->containers[i], NULL, "sdram-containers",
sdram_size(bcr));
memory_region_add_subregion(&sdram->containers[i], 0,
--
2.37.2
^ permalink raw reply related [flat|nested] 63+ messages in thread
* [PULL 60/60] ppc4xx: Fix code style problems reported by checkpatch
2022-08-31 18:49 [PULL 00/60] ppc queue Daniel Henrique Barboza
` (58 preceding siblings ...)
2022-08-31 18:50 ` [PULL 59/60] ppc/ppc4xx: Fix sdram trace events Daniel Henrique Barboza
@ 2022-08-31 18:50 ` Daniel Henrique Barboza
2022-08-31 19:37 ` [PULL 00/60] ppc queue BALATON Zoltan
60 siblings, 0 replies; 63+ messages in thread
From: Daniel Henrique Barboza @ 2022-08-31 18:50 UTC (permalink / raw)
To: qemu-devel
Cc: qemu-ppc, danielhb413, peter.maydell, richard.henderson,
BALATON Zoltan, Cédric Le Goater
From: BALATON Zoltan <balaton@eik.bme.hu>
Signed-off-by: BALATON Zoltan <balaton@eik.bme.hu>
Reviewed-by: Cédric Le Goater <clg@kaod.org>
Message-Id: <62798fbe9c200da3e0c870601ed9162b1c3a50a5.1660746880.git.balaton@eik.bme.hu>
Signed-off-by: Daniel Henrique Barboza <danielhb413@gmail.com>
---
hw/ppc/ppc405_uc.c | 5 +++--
hw/ppc/ppc440_bamboo.c | 27 ++++++++++++++----------
hw/ppc/ppc440_uc.c | 3 ++-
hw/ppc/ppc4xx_devs.c | 48 +++++++++++++++++++++++-------------------
hw/ppc/ppc4xx_pci.c | 31 +++++++++++++++++----------
5 files changed, 67 insertions(+), 47 deletions(-)
diff --git a/hw/ppc/ppc405_uc.c b/hw/ppc/ppc405_uc.c
index 74d27250a7..2ca42fdef6 100644
--- a/hw/ppc/ppc405_uc.c
+++ b/hw/ppc/ppc405_uc.c
@@ -540,10 +540,11 @@ static void ppc4xx_gpt_set_irqs(Ppc405GptState *gpt)
mask = 0x00008000;
for (i = 0; i < 5; i++) {
- if (gpt->is & gpt->im & mask)
+ if (gpt->is & gpt->im & mask) {
qemu_irq_raise(gpt->irqs[i]);
- else
+ } else {
qemu_irq_lower(gpt->irqs[i]);
+ }
mask = mask >> 1;
}
}
diff --git a/hw/ppc/ppc440_bamboo.c b/hw/ppc/ppc440_bamboo.c
index b14a9ef776..ea945a1c99 100644
--- a/hw/ppc/ppc440_bamboo.c
+++ b/hw/ppc/ppc440_bamboo.c
@@ -84,27 +84,30 @@ static int bamboo_load_device_tree(hwaddr addr,
ret = qemu_fdt_setprop(fdt, "/memory", "reg", mem_reg_property,
sizeof(mem_reg_property));
- if (ret < 0)
+ if (ret < 0) {
fprintf(stderr, "couldn't set /memory/reg\n");
-
+ }
ret = qemu_fdt_setprop_cell(fdt, "/chosen", "linux,initrd-start",
initrd_base);
- if (ret < 0)
+ if (ret < 0) {
fprintf(stderr, "couldn't set /chosen/linux,initrd-start\n");
-
+ }
ret = qemu_fdt_setprop_cell(fdt, "/chosen", "linux,initrd-end",
(initrd_base + initrd_size));
- if (ret < 0)
+ if (ret < 0) {
fprintf(stderr, "couldn't set /chosen/linux,initrd-end\n");
-
+ }
ret = qemu_fdt_setprop_string(fdt, "/chosen", "bootargs",
kernel_cmdline);
- if (ret < 0)
+ if (ret < 0) {
fprintf(stderr, "couldn't set /chosen/bootargs\n");
+ }
- /* Copy data from the host device tree into the guest. Since the guest can
+ /*
+ * Copy data from the host device tree into the guest. Since the guest can
* directly access the timebase without host involvement, we must expose
- * the correct frequencies. */
+ * the correct frequencies.
+ */
if (kvm_enabled()) {
tb_freq = kvmppc_get_tbfreq();
clock_freq = kvmppc_get_clockfreq();
@@ -246,8 +249,10 @@ static void bamboo_init(MachineState *machine)
if (pcibus) {
/* Register network interfaces. */
for (i = 0; i < nb_nics; i++) {
- /* There are no PCI NICs on the Bamboo board, but there are
- * PCI slots, so we can pick whatever default model we want. */
+ /*
+ * There are no PCI NICs on the Bamboo board, but there are
+ * PCI slots, so we can pick whatever default model we want.
+ */
pci_nic_init_nofail(&nd_table[i], pcibus, "e1000", NULL);
}
}
diff --git a/hw/ppc/ppc440_uc.c b/hw/ppc/ppc440_uc.c
index 11fdb88c22..53e981ddf4 100644
--- a/hw/ppc/ppc440_uc.c
+++ b/hw/ppc/ppc440_uc.c
@@ -1028,7 +1028,8 @@ void ppc4xx_dma_init(CPUPPCState *env, int dcr_base)
/*****************************************************************************/
/* PCI Express controller */
-/* FIXME: This is not complete and does not work, only implemented partially
+/*
+ * FIXME: This is not complete and does not work, only implemented partially
* to allow firmware and guests to find an empty bus. Cards should use PCI.
*/
#include "hw/pci/pcie_host.h"
diff --git a/hw/ppc/ppc4xx_devs.c b/hw/ppc/ppc4xx_devs.c
index 27ebbb2ffc..ce38ae65e6 100644
--- a/hw/ppc/ppc4xx_devs.c
+++ b/hw/ppc/ppc4xx_devs.c
@@ -65,12 +65,12 @@ enum {
SDRAM0_CFGDATA = 0x011,
};
-/* XXX: TOFIX: some patches have made this code become inconsistent:
+/*
+ * XXX: TOFIX: some patches have made this code become inconsistent:
* there are type inconsistencies, mixing hwaddr, target_ulong
* and uint32_t
*/
-static uint32_t sdram_bcr (hwaddr ram_base,
- hwaddr ram_size)
+static uint32_t sdram_bcr(hwaddr ram_base, hwaddr ram_size)
{
uint32_t bcr;
@@ -113,16 +113,17 @@ static inline hwaddr sdram_base(uint32_t bcr)
return bcr & 0xFF800000;
}
-static target_ulong sdram_size (uint32_t bcr)
+static target_ulong sdram_size(uint32_t bcr)
{
target_ulong size;
int sh;
sh = (bcr >> 17) & 0x7;
- if (sh == 7)
+ if (sh == 7) {
size = -1;
- else
+ } else {
size = (4 * MiB) << sh;
+ }
return size;
}
@@ -153,7 +154,7 @@ static void sdram_set_bcr(ppc4xx_sdram_t *sdram, int i,
}
}
-static void sdram_map_bcr (ppc4xx_sdram_t *sdram)
+static void sdram_map_bcr(ppc4xx_sdram_t *sdram)
{
int i;
@@ -167,7 +168,7 @@ static void sdram_map_bcr (ppc4xx_sdram_t *sdram)
}
}
-static void sdram_unmap_bcr (ppc4xx_sdram_t *sdram)
+static void sdram_unmap_bcr(ppc4xx_sdram_t *sdram)
{
int i;
@@ -179,7 +180,7 @@ static void sdram_unmap_bcr (ppc4xx_sdram_t *sdram)
}
}
-static uint32_t dcr_read_sdram (void *opaque, int dcrn)
+static uint32_t dcr_read_sdram(void *opaque, int dcrn)
{
ppc4xx_sdram_t *sdram;
uint32_t ret;
@@ -247,7 +248,7 @@ static uint32_t dcr_read_sdram (void *opaque, int dcrn)
return ret;
}
-static void dcr_write_sdram (void *opaque, int dcrn, uint32_t val)
+static void dcr_write_sdram(void *opaque, int dcrn, uint32_t val)
{
ppc4xx_sdram_t *sdram;
@@ -280,10 +281,11 @@ static void dcr_write_sdram (void *opaque, int dcrn, uint32_t val)
sdram_unmap_bcr(sdram);
sdram->status |= 0x80000000;
}
- if (!(sdram->cfg & 0x40000000) && (val & 0x40000000))
+ if (!(sdram->cfg & 0x40000000) && (val & 0x40000000)) {
sdram->status |= 0x40000000;
- else if ((sdram->cfg & 0x40000000) && !(val & 0x40000000))
+ } else if ((sdram->cfg & 0x40000000) && !(val & 0x40000000)) {
sdram->status &= ~0x40000000;
+ }
sdram->cfg = val;
break;
case 0x24: /* SDRAM_STATUS */
@@ -315,10 +317,11 @@ static void dcr_write_sdram (void *opaque, int dcrn, uint32_t val)
break;
case 0x98: /* SDRAM_ECCESR */
val &= 0xFFF0F000;
- if (sdram->eccesr == 0 && val != 0)
+ if (sdram->eccesr == 0 && val != 0) {
qemu_irq_raise(sdram->irq);
- else if (sdram->eccesr != 0 && val == 0)
+ } else if (sdram->eccesr != 0 && val == 0) {
qemu_irq_lower(sdram->irq);
+ }
sdram->eccesr = val;
break;
default: /* Error */
@@ -328,7 +331,7 @@ static void dcr_write_sdram (void *opaque, int dcrn, uint32_t val)
}
}
-static void sdram_reset (void *opaque)
+static void sdram_reset(void *opaque)
{
ppc4xx_sdram_t *sdram;
@@ -348,11 +351,11 @@ static void sdram_reset (void *opaque)
sdram->cfg = 0x00800000;
}
-void ppc4xx_sdram_init (CPUPPCState *env, qemu_irq irq, int nbanks,
- MemoryRegion *ram_memories,
- hwaddr *ram_bases,
- hwaddr *ram_sizes,
- int do_init)
+void ppc4xx_sdram_init(CPUPPCState *env, qemu_irq irq, int nbanks,
+ MemoryRegion *ram_memories,
+ hwaddr *ram_bases,
+ hwaddr *ram_sizes,
+ int do_init)
{
ppc4xx_sdram_t *sdram;
@@ -371,8 +374,9 @@ void ppc4xx_sdram_init (CPUPPCState *env, qemu_irq irq, int nbanks,
sdram, &dcr_read_sdram, &dcr_write_sdram);
ppc_dcr_register(env, SDRAM0_CFGDATA,
sdram, &dcr_read_sdram, &dcr_write_sdram);
- if (do_init)
+ if (do_init) {
sdram_map_bcr(sdram);
+ }
}
/*
@@ -429,7 +433,7 @@ void ppc4xx_sdram_banks(MemoryRegion *ram, int nr_banks,
}
error_report("at most %d bank%s of %s MiB each supported",
nr_banks, nr_banks == 1 ? "" : "s", s->str);
- error_printf("Possible valid RAM size: %" PRIi64 " MiB \n",
+ error_printf("Possible valid RAM size: %" PRIi64 " MiB\n",
used_size ? used_size / MiB : sdram_bank_sizes[i - 1] / MiB);
g_string_free(s, true);
diff --git a/hw/ppc/ppc4xx_pci.c b/hw/ppc/ppc4xx_pci.c
index 5df97e6d15..8642b96455 100644
--- a/hw/ppc/ppc4xx_pci.c
+++ b/hw/ppc/ppc4xx_pci.c
@@ -16,8 +16,10 @@
* Authors: Hollis Blanchard <hollisb@us.ibm.com>
*/
-/* This file implements emulation of the 32-bit PCI controller found in some
- * 4xx SoCs, such as the 440EP. */
+/*
+ * This file implements emulation of the 32-bit PCI controller found in some
+ * 4xx SoCs, such as the 440EP.
+ */
#include "qemu/osdep.h"
#include "qemu/log.h"
@@ -65,8 +67,10 @@ struct PPC4xxPCIState {
#define PCIC0_CFGADDR 0x0
#define PCIC0_CFGDATA 0x4
-/* PLB Memory Map (PMM) registers specify which PLB addresses are translated to
- * PCI accesses. */
+/*
+ * PLB Memory Map (PMM) registers specify which PLB addresses are translated to
+ * PCI accesses.
+ */
#define PCIL0_PMM0LA 0x0
#define PCIL0_PMM0MA 0x4
#define PCIL0_PMM0PCILA 0x8
@@ -80,8 +84,10 @@ struct PPC4xxPCIState {
#define PCIL0_PMM2PCILA 0x28
#define PCIL0_PMM2PCIHA 0x2c
-/* PCI Target Map (PTM) registers specify which PCI addresses are translated to
- * PLB accesses. */
+/*
+ * PCI Target Map (PTM) registers specify which PCI addresses are translated to
+ * PLB accesses.
+ */
#define PCIL0_PTM1MS 0x30
#define PCIL0_PTM1LA 0x34
#define PCIL0_PTM2MS 0x38
@@ -96,9 +102,10 @@ static void ppc4xx_pci_reg_write4(void *opaque, hwaddr offset,
{
struct PPC4xxPCIState *pci = opaque;
- /* We ignore all target attempts at PCI configuration, effectively
- * assuming a bidirectional 1:1 mapping of PLB and PCI space. */
-
+ /*
+ * We ignore all target attempts at PCI configuration, effectively
+ * assuming a bidirectional 1:1 mapping of PLB and PCI space.
+ */
switch (offset) {
case PCIL0_PMM0LA:
pci->pmm[0].la = value;
@@ -243,8 +250,10 @@ static void ppc4xx_pci_reset(void *opaque)
memset(pci->ptm, 0, sizeof(pci->ptm));
}
-/* On Bamboo, all pins from each slot are tied to a single board IRQ. This
- * may need further refactoring for other boards. */
+/*
+ * On Bamboo, all pins from each slot are tied to a single board IRQ.
+ * This may need further refactoring for other boards.
+ */
static int ppc4xx_pci_map_irq(PCIDevice *pci_dev, int irq_num)
{
int slot = PCI_SLOT(pci_dev->devfn);
--
2.37.2
^ permalink raw reply related [flat|nested] 63+ messages in thread
* Re: [PULL 00/60] ppc queue
2022-08-31 18:49 [PULL 00/60] ppc queue Daniel Henrique Barboza
` (59 preceding siblings ...)
2022-08-31 18:50 ` [PULL 60/60] ppc4xx: Fix code style problems reported by checkpatch Daniel Henrique Barboza
@ 2022-08-31 19:37 ` BALATON Zoltan
2022-08-31 20:27 ` Daniel Henrique Barboza
60 siblings, 1 reply; 63+ messages in thread
From: BALATON Zoltan @ 2022-08-31 19:37 UTC (permalink / raw)
To: Daniel Henrique Barboza
Cc: qemu-devel, qemu-ppc, peter.maydell, richard.henderson
[-- Attachment #1: Type: text/plain, Size: 6317 bytes --]
On Wed, 31 Aug 2022, Daniel Henrique Barboza wrote:
> The following changes since commit 93fac696d241dccb04ebb9d23da55fc1e9d8ee36:
>
> Open 7.2 development tree (2022-08-30 09:40:41 -0700)
>
> are available in the Git repository at:
>
> https://gitlab.com/danielhb/qemu.git tags/pull-ppc-20220831
>
> for you to fetch changes up to 2d9c27ac5c035823315f68c227ca1cc6313e9842:
>
> ppc4xx: Fix code style problems reported by checkpatch (2022-08-31 14:08:06 -0300)
>
> ----------------------------------------------------------------
> ppc patch queue for 2022-08-31:
>
> In the first 7.2 queue we have changes in the powernv pnv-phb handling,
> the start of the QOMification of the ppc405 model, the removal of the
> taihu machine, a new SLOF image and others.
>
> ----------------------------------------------------------------
> Alexey Kardashevskiy (1):
> pseries: Update SLOF firmware image
>
> BALATON Zoltan (9):
> ppc4xx: Move PLB model to ppc4xx_devs.c
> ppc4xx: Rename ppc405-plb to ppc4xx-plb
> ppc4xx: Move EBC model to ppc4xx_devs.c
> ppc4xx: Rename ppc405-ebc to ppc4xx-ebc
> hw/intc/ppc-uic: Convert ppc-uic to a PPC4xx DCR device
> ppc405: Move machine specific code to ppc405_boards.c
> hw/ppc/sam3460ex: Remove PPC405 dependency from sam460ex
Seems like we have a typo in this patch title, sam3460ex should be sam460ex
Regards,
BALATON Zoltan
> hw/ppc/Kconfig: Move imply before select
> ppc4xx: Fix code style problems reported by checkpatch
>
> Cédric Le Goater (22):
> ppc/ppc405: Remove taihu machine
> ppc/ppc405: Introduce a PPC405 generic machine
> ppc/ppc405: Move devices under the ref405ep machine
> ppc/ppc405: Move SRAM under the ref405ep machine
> ppc/ppc405: Introduce a PPC405 SoC
> ppc/ppc405: Start QOMification of the SoC
> ppc/ppc405: QOM'ify CPU
> ppc/ppc4xx: Introduce a DCR device model
> ppc/ppc405: QOM'ify CPC
> ppc/ppc405: QOM'ify GPT
> ppc/ppc405: QOM'ify OCM
> ppc/ppc405: QOM'ify GPIO
> ppc/ppc405: QOM'ify DMA
> ppc/ppc405: QOM'ify EBC
> ppc/ppc405: QOM'ify OPBA
> ppc/ppc405: QOM'ify POB
> ppc/ppc405: QOM'ify PLB
> ppc/ppc405: QOM'ify MAL
> ppc/ppc405: Use an embedded PPCUIC model in SoC state
> ppc/ppc405: Use an explicit I2C object
> ppc/ppc405: QOM'ify FPGA
> ppc/ppc4xx: Fix sdram trace events
>
> Daniel Henrique Barboza (24):
> ppc/pnv: add PHB3 bus init helper
> ppc/pnv: add PnvPHB base/proxy device
> ppc/pnv: turn PnvPHB3 into a PnvPHB backend
> ppc/pnv: add PHB4 bus init helper
> ppc/pnv: turn PnvPHB4 into a PnvPHB backend
> ppc/pnv: add pnv-phb-root-port device
> ppc/pnv: remove pnv-phb3-root-port
> ppc/pnv: remove pnv-phb4-root-port
> ppc/pnv: remove root port name from pnv_phb_attach_root_port()
> ppc/pnv: remove pecc->rp_model
> ppc/pnv: remove PnvPHB4.version
> ppc/pnv: move attach_root_port helper to pnv-phb.c
> ppc/pnv: add phb-id/chip-id PnvPHB3RootBus properties
> ppc/pnv: add phb-id/chip-id PnvPHB4RootBus properties
> ppc/pnv: set root port chassis and slot using Bus properties
> ppc/pnv: add helpers for pnv-phb user devices
> ppc/pnv: turn chip8->phbs[] into a PnvPHB* array
> ppc/pnv: enable user created pnv-phb for powernv8
> ppc/pnv: add PHB4 helpers for user created pnv-phb
> ppc/pnv: enable user created pnv-phb for powernv9
> ppc/pnv: change pnv_phb4_get_pec() to also retrieve chip10->pecs
> ppc/pnv: user creatable pnv-phb for powernv10
> ppc/pnv: consolidate pnv_parent_*_fixup() helpers
> ppc/pnv: fix QOM parenting of user creatable root ports
>
> Lucas Mateus Castro (alqotel) (2):
> fpu: Add rebias bool, value and operation
> target/ppc: Bugfix FP when OE/UE are set
>
> Nicholas Piggin (2):
> target/ppc: Fix host PVR matching for KVM
> ppc/pnv: Add initial P9/10 SBE model
>
> MAINTAINERS | 2 +-
> docs/about/deprecated.rst | 9 -
> docs/about/removed-features.rst | 6 +
> docs/system/ppc/embedded.rst | 1 -
> docs/system/ppc/pseries.rst | 2 +-
> fpu/softfloat-parts.c.inc | 21 +-
> fpu/softfloat.c | 2 +
> hw/intc/ppc-uic.c | 26 +-
> hw/pci-host/meson.build | 3 +-
> hw/pci-host/pnv_phb.c | 337 ++++++++++++
> hw/pci-host/pnv_phb.h | 55 ++
> hw/pci-host/pnv_phb3.c | 152 +++--
> hw/pci-host/pnv_phb4.c | 191 +++----
> hw/pci-host/pnv_phb4_pec.c | 11 +-
> hw/ppc/Kconfig | 3 +-
> hw/ppc/meson.build | 1 +
> hw/ppc/pnv.c | 188 +++++--
> hw/ppc/pnv_sbe.c | 414 ++++++++++++++
> hw/ppc/pnv_xscom.c | 3 +
> hw/ppc/ppc405.h | 200 +++++--
> hw/ppc/ppc405_boards.c | 552 +++++++++----------
> hw/ppc/ppc405_uc.c | 1156 ++++++++++++++-------------------------
> hw/ppc/ppc440_bamboo.c | 34 +-
> hw/ppc/ppc440_uc.c | 3 +-
> hw/ppc/ppc4xx_devs.c | 554 ++++++++++++++-----
> hw/ppc/ppc4xx_pci.c | 31 +-
> hw/ppc/sam460ex.c | 38 +-
> hw/ppc/trace-events | 14 +-
> hw/ppc/virtex_ml507.c | 7 +-
> include/fpu/softfloat-types.h | 4 +
> include/hw/intc/ppc-uic.h | 6 +-
> include/hw/pci-host/pnv_phb3.h | 19 +-
> include/hw/pci-host/pnv_phb4.h | 22 +-
> include/hw/ppc/pnv.h | 13 +-
> include/hw/ppc/pnv_sbe.h | 55 ++
> include/hw/ppc/pnv_xscom.h | 12 +
> include/hw/ppc/ppc4xx.h | 76 ++-
> pc-bios/README | 2 +-
> pc-bios/slof.bin | Bin 992384 -> 995176 bytes
> roms/SLOF | 2 +-
> target/ppc/cpu-qom.h | 6 +-
> target/ppc/cpu.c | 2 +
> target/ppc/cpu_init.c | 91 ++-
> target/ppc/fpu_helper.c | 2 -
> target/ppc/machine.c | 2 +-
> 45 files changed, 2736 insertions(+), 1594 deletions(-)
> create mode 100644 hw/pci-host/pnv_phb.c
> create mode 100644 hw/pci-host/pnv_phb.h
> create mode 100644 hw/ppc/pnv_sbe.c
> create mode 100644 include/hw/ppc/pnv_sbe.h
>
>
^ permalink raw reply [flat|nested] 63+ messages in thread
* Re: [PULL 00/60] ppc queue
2022-08-31 19:37 ` [PULL 00/60] ppc queue BALATON Zoltan
@ 2022-08-31 20:27 ` Daniel Henrique Barboza
0 siblings, 0 replies; 63+ messages in thread
From: Daniel Henrique Barboza @ 2022-08-31 20:27 UTC (permalink / raw)
To: BALATON Zoltan; +Cc: qemu-devel, qemu-ppc, peter.maydell, richard.henderson
On 8/31/22 16:37, BALATON Zoltan wrote:
> On Wed, 31 Aug 2022, Daniel Henrique Barboza wrote:
>> The following changes since commit 93fac696d241dccb04ebb9d23da55fc1e9d8ee36:
>>
>> Open 7.2 development tree (2022-08-30 09:40:41 -0700)
>>
>> are available in the Git repository at:
>>
>> https://gitlab.com/danielhb/qemu.git tags/pull-ppc-20220831
>>
>> for you to fetch changes up to 2d9c27ac5c035823315f68c227ca1cc6313e9842:
>>
>> ppc4xx: Fix code style problems reported by checkpatch (2022-08-31 14:08:06 -0300)
>>
>> ----------------------------------------------------------------
>> ppc patch queue for 2022-08-31:
>>
>> In the first 7.2 queue we have changes in the powernv pnv-phb handling,
>> the start of the QOMification of the ppc405 model, the removal of the
>> taihu machine, a new SLOF image and others.
>>
>> ----------------------------------------------------------------
>> Alexey Kardashevskiy (1):
>> pseries: Update SLOF firmware image
>>
>> BALATON Zoltan (9):
>> ppc4xx: Move PLB model to ppc4xx_devs.c
>> ppc4xx: Rename ppc405-plb to ppc4xx-plb
>> ppc4xx: Move EBC model to ppc4xx_devs.c
>> ppc4xx: Rename ppc405-ebc to ppc4xx-ebc
>> hw/intc/ppc-uic: Convert ppc-uic to a PPC4xx DCR device
>> ppc405: Move machine specific code to ppc405_boards.c
>> hw/ppc/sam3460ex: Remove PPC405 dependency from sam460ex
>
> Seems like we have a typo in this patch title, sam3460ex should be sam460ex
That completely went under the radar during 2-3 reviewed versions. Impressive :)
Richard/Peter, I've fixed the commit name and recreated the tag. I'll
send just the cover-letter as a v2 since there were no code changes
made.
Thanks,
Daniel
>
> Regards,
> BALATON Zoltan
>
>> hw/ppc/Kconfig: Move imply before select
>> ppc4xx: Fix code style problems reported by checkpatch
>>
>> Cédric Le Goater (22):
>> ppc/ppc405: Remove taihu machine
>> ppc/ppc405: Introduce a PPC405 generic machine
>> ppc/ppc405: Move devices under the ref405ep machine
>> ppc/ppc405: Move SRAM under the ref405ep machine
>> ppc/ppc405: Introduce a PPC405 SoC
>> ppc/ppc405: Start QOMification of the SoC
>> ppc/ppc405: QOM'ify CPU
>> ppc/ppc4xx: Introduce a DCR device model
>> ppc/ppc405: QOM'ify CPC
>> ppc/ppc405: QOM'ify GPT
>> ppc/ppc405: QOM'ify OCM
>> ppc/ppc405: QOM'ify GPIO
>> ppc/ppc405: QOM'ify DMA
>> ppc/ppc405: QOM'ify EBC
>> ppc/ppc405: QOM'ify OPBA
>> ppc/ppc405: QOM'ify POB
>> ppc/ppc405: QOM'ify PLB
>> ppc/ppc405: QOM'ify MAL
>> ppc/ppc405: Use an embedded PPCUIC model in SoC state
>> ppc/ppc405: Use an explicit I2C object
>> ppc/ppc405: QOM'ify FPGA
>> ppc/ppc4xx: Fix sdram trace events
>>
>> Daniel Henrique Barboza (24):
>> ppc/pnv: add PHB3 bus init helper
>> ppc/pnv: add PnvPHB base/proxy device
>> ppc/pnv: turn PnvPHB3 into a PnvPHB backend
>> ppc/pnv: add PHB4 bus init helper
>> ppc/pnv: turn PnvPHB4 into a PnvPHB backend
>> ppc/pnv: add pnv-phb-root-port device
>> ppc/pnv: remove pnv-phb3-root-port
>> ppc/pnv: remove pnv-phb4-root-port
>> ppc/pnv: remove root port name from pnv_phb_attach_root_port()
>> ppc/pnv: remove pecc->rp_model
>> ppc/pnv: remove PnvPHB4.version
>> ppc/pnv: move attach_root_port helper to pnv-phb.c
>> ppc/pnv: add phb-id/chip-id PnvPHB3RootBus properties
>> ppc/pnv: add phb-id/chip-id PnvPHB4RootBus properties
>> ppc/pnv: set root port chassis and slot using Bus properties
>> ppc/pnv: add helpers for pnv-phb user devices
>> ppc/pnv: turn chip8->phbs[] into a PnvPHB* array
>> ppc/pnv: enable user created pnv-phb for powernv8
>> ppc/pnv: add PHB4 helpers for user created pnv-phb
>> ppc/pnv: enable user created pnv-phb for powernv9
>> ppc/pnv: change pnv_phb4_get_pec() to also retrieve chip10->pecs
>> ppc/pnv: user creatable pnv-phb for powernv10
>> ppc/pnv: consolidate pnv_parent_*_fixup() helpers
>> ppc/pnv: fix QOM parenting of user creatable root ports
>>
>> Lucas Mateus Castro (alqotel) (2):
>> fpu: Add rebias bool, value and operation
>> target/ppc: Bugfix FP when OE/UE are set
>>
>> Nicholas Piggin (2):
>> target/ppc: Fix host PVR matching for KVM
>> ppc/pnv: Add initial P9/10 SBE model
>>
>> MAINTAINERS | 2 +-
>> docs/about/deprecated.rst | 9 -
>> docs/about/removed-features.rst | 6 +
>> docs/system/ppc/embedded.rst | 1 -
>> docs/system/ppc/pseries.rst | 2 +-
>> fpu/softfloat-parts.c.inc | 21 +-
>> fpu/softfloat.c | 2 +
>> hw/intc/ppc-uic.c | 26 +-
>> hw/pci-host/meson.build | 3 +-
>> hw/pci-host/pnv_phb.c | 337 ++++++++++++
>> hw/pci-host/pnv_phb.h | 55 ++
>> hw/pci-host/pnv_phb3.c | 152 +++--
>> hw/pci-host/pnv_phb4.c | 191 +++----
>> hw/pci-host/pnv_phb4_pec.c | 11 +-
>> hw/ppc/Kconfig | 3 +-
>> hw/ppc/meson.build | 1 +
>> hw/ppc/pnv.c | 188 +++++--
>> hw/ppc/pnv_sbe.c | 414 ++++++++++++++
>> hw/ppc/pnv_xscom.c | 3 +
>> hw/ppc/ppc405.h | 200 +++++--
>> hw/ppc/ppc405_boards.c | 552 +++++++++----------
>> hw/ppc/ppc405_uc.c | 1156 ++++++++++++++-------------------------
>> hw/ppc/ppc440_bamboo.c | 34 +-
>> hw/ppc/ppc440_uc.c | 3 +-
>> hw/ppc/ppc4xx_devs.c | 554 ++++++++++++++-----
>> hw/ppc/ppc4xx_pci.c | 31 +-
>> hw/ppc/sam460ex.c | 38 +-
>> hw/ppc/trace-events | 14 +-
>> hw/ppc/virtex_ml507.c | 7 +-
>> include/fpu/softfloat-types.h | 4 +
>> include/hw/intc/ppc-uic.h | 6 +-
>> include/hw/pci-host/pnv_phb3.h | 19 +-
>> include/hw/pci-host/pnv_phb4.h | 22 +-
>> include/hw/ppc/pnv.h | 13 +-
>> include/hw/ppc/pnv_sbe.h | 55 ++
>> include/hw/ppc/pnv_xscom.h | 12 +
>> include/hw/ppc/ppc4xx.h | 76 ++-
>> pc-bios/README | 2 +-
>> pc-bios/slof.bin | Bin 992384 -> 995176 bytes
>> roms/SLOF | 2 +-
>> target/ppc/cpu-qom.h | 6 +-
>> target/ppc/cpu.c | 2 +
>> target/ppc/cpu_init.c | 91 ++-
>> target/ppc/fpu_helper.c | 2 -
>> target/ppc/machine.c | 2 +-
>> 45 files changed, 2736 insertions(+), 1594 deletions(-)
>> create mode 100644 hw/pci-host/pnv_phb.c
>> create mode 100644 hw/pci-host/pnv_phb.h
>> create mode 100644 hw/ppc/pnv_sbe.c
>> create mode 100644 include/hw/ppc/pnv_sbe.h
>>
>>
^ permalink raw reply [flat|nested] 63+ messages in thread
end of thread, other threads:[~2022-08-31 20:28 UTC | newest]
Thread overview: 63+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-08-31 18:49 [PULL 00/60] ppc queue Daniel Henrique Barboza
2022-08-31 18:49 ` [PULL 01/60] pseries: Update SLOF firmware image Daniel Henrique Barboza
2022-08-31 18:49 ` [PULL 02/60] target/ppc: Fix host PVR matching for KVM Daniel Henrique Barboza
2022-08-31 18:49 ` [PULL 03/60] ppc/pnv: Add initial P9/10 SBE model Daniel Henrique Barboza
2022-08-31 18:49 ` [PULL 04/60] fpu: Add rebias bool, value and operation Daniel Henrique Barboza
2022-08-31 18:49 ` [PULL 05/60] target/ppc: Bugfix FP when OE/UE are set Daniel Henrique Barboza
2022-08-31 18:49 ` [PULL 06/60] ppc/pnv: add PHB3 bus init helper Daniel Henrique Barboza
2022-08-31 18:49 ` [PULL 07/60] ppc/pnv: add PnvPHB base/proxy device Daniel Henrique Barboza
2022-08-31 18:49 ` [PULL 08/60] ppc/pnv: turn PnvPHB3 into a PnvPHB backend Daniel Henrique Barboza
2022-08-31 18:49 ` [PULL 09/60] ppc/pnv: add PHB4 bus init helper Daniel Henrique Barboza
2022-08-31 18:49 ` [PULL 10/60] ppc/pnv: turn PnvPHB4 into a PnvPHB backend Daniel Henrique Barboza
2022-08-31 18:49 ` [PULL 11/60] ppc/pnv: add pnv-phb-root-port device Daniel Henrique Barboza
2022-08-31 18:49 ` [PULL 12/60] ppc/pnv: remove pnv-phb3-root-port Daniel Henrique Barboza
2022-08-31 18:49 ` [PULL 13/60] ppc/pnv: remove pnv-phb4-root-port Daniel Henrique Barboza
2022-08-31 18:49 ` [PULL 14/60] ppc/pnv: remove root port name from pnv_phb_attach_root_port() Daniel Henrique Barboza
2022-08-31 18:49 ` [PULL 15/60] ppc/pnv: remove pecc->rp_model Daniel Henrique Barboza
2022-08-31 18:49 ` [PULL 16/60] ppc/pnv: remove PnvPHB4.version Daniel Henrique Barboza
2022-08-31 18:49 ` [PULL 17/60] ppc/pnv: move attach_root_port helper to pnv-phb.c Daniel Henrique Barboza
2022-08-31 18:49 ` [PULL 18/60] ppc/pnv: add phb-id/chip-id PnvPHB3RootBus properties Daniel Henrique Barboza
2022-08-31 18:49 ` [PULL 19/60] ppc/pnv: add phb-id/chip-id PnvPHB4RootBus properties Daniel Henrique Barboza
2022-08-31 18:49 ` [PULL 20/60] ppc/pnv: set root port chassis and slot using Bus properties Daniel Henrique Barboza
2022-08-31 18:49 ` [PULL 21/60] ppc/pnv: add helpers for pnv-phb user devices Daniel Henrique Barboza
2022-08-31 18:49 ` [PULL 22/60] ppc/pnv: turn chip8->phbs[] into a PnvPHB* array Daniel Henrique Barboza
2022-08-31 18:49 ` [PULL 23/60] ppc/pnv: enable user created pnv-phb for powernv8 Daniel Henrique Barboza
2022-08-31 18:49 ` [PULL 24/60] ppc/pnv: add PHB4 helpers for user created pnv-phb Daniel Henrique Barboza
2022-08-31 18:49 ` [PULL 25/60] ppc/pnv: enable user created pnv-phb for powernv9 Daniel Henrique Barboza
2022-08-31 18:50 ` [PULL 26/60] ppc/pnv: change pnv_phb4_get_pec() to also retrieve chip10->pecs Daniel Henrique Barboza
2022-08-31 18:50 ` [PULL 27/60] ppc/pnv: user creatable pnv-phb for powernv10 Daniel Henrique Barboza
2022-08-31 18:50 ` [PULL 28/60] ppc/pnv: consolidate pnv_parent_*_fixup() helpers Daniel Henrique Barboza
2022-08-31 18:50 ` [PULL 29/60] ppc/pnv: fix QOM parenting of user creatable root ports Daniel Henrique Barboza
2022-08-31 18:50 ` [PULL 30/60] ppc/ppc405: Remove taihu machine Daniel Henrique Barboza
2022-08-31 18:50 ` [PULL 31/60] ppc/ppc405: Introduce a PPC405 generic machine Daniel Henrique Barboza
2022-08-31 18:50 ` [PULL 32/60] ppc/ppc405: Move devices under the ref405ep machine Daniel Henrique Barboza
2022-08-31 18:50 ` [PULL 33/60] ppc/ppc405: Move SRAM " Daniel Henrique Barboza
2022-08-31 18:50 ` [PULL 34/60] ppc/ppc405: Introduce a PPC405 SoC Daniel Henrique Barboza
2022-08-31 18:50 ` [PULL 35/60] ppc/ppc405: Start QOMification of the SoC Daniel Henrique Barboza
2022-08-31 18:50 ` [PULL 36/60] ppc/ppc405: QOM'ify CPU Daniel Henrique Barboza
2022-08-31 18:50 ` [PULL 37/60] ppc/ppc4xx: Introduce a DCR device model Daniel Henrique Barboza
2022-08-31 18:50 ` [PULL 38/60] ppc/ppc405: QOM'ify CPC Daniel Henrique Barboza
2022-08-31 18:50 ` [PULL 39/60] ppc/ppc405: QOM'ify GPT Daniel Henrique Barboza
2022-08-31 18:50 ` [PULL 40/60] ppc/ppc405: QOM'ify OCM Daniel Henrique Barboza
2022-08-31 18:50 ` [PULL 41/60] ppc/ppc405: QOM'ify GPIO Daniel Henrique Barboza
2022-08-31 18:50 ` [PULL 42/60] ppc/ppc405: QOM'ify DMA Daniel Henrique Barboza
2022-08-31 18:50 ` [PULL 43/60] ppc/ppc405: QOM'ify EBC Daniel Henrique Barboza
2022-08-31 18:50 ` [PULL 44/60] ppc/ppc405: QOM'ify OPBA Daniel Henrique Barboza
2022-08-31 18:50 ` [PULL 45/60] ppc/ppc405: QOM'ify POB Daniel Henrique Barboza
2022-08-31 18:50 ` [PULL 46/60] ppc/ppc405: QOM'ify PLB Daniel Henrique Barboza
2022-08-31 18:50 ` [PULL 47/60] ppc/ppc405: QOM'ify MAL Daniel Henrique Barboza
2022-08-31 18:50 ` [PULL 48/60] ppc4xx: Move PLB model to ppc4xx_devs.c Daniel Henrique Barboza
2022-08-31 18:50 ` [PULL 49/60] ppc4xx: Rename ppc405-plb to ppc4xx-plb Daniel Henrique Barboza
2022-08-31 18:50 ` [PULL 50/60] ppc4xx: Move EBC model to ppc4xx_devs.c Daniel Henrique Barboza
2022-08-31 18:50 ` [PULL 51/60] ppc4xx: Rename ppc405-ebc to ppc4xx-ebc Daniel Henrique Barboza
2022-08-31 18:50 ` [PULL 52/60] ppc/ppc405: Use an embedded PPCUIC model in SoC state Daniel Henrique Barboza
2022-08-31 18:50 ` [PULL 53/60] hw/intc/ppc-uic: Convert ppc-uic to a PPC4xx DCR device Daniel Henrique Barboza
2022-08-31 18:50 ` [PULL 54/60] ppc/ppc405: Use an explicit I2C object Daniel Henrique Barboza
2022-08-31 18:50 ` [PULL 55/60] ppc/ppc405: QOM'ify FPGA Daniel Henrique Barboza
2022-08-31 18:50 ` [PULL 56/60] ppc405: Move machine specific code to ppc405_boards.c Daniel Henrique Barboza
2022-08-31 18:50 ` [PULL 57/60] hw/ppc/sam3460ex: Remove PPC405 dependency from sam460ex Daniel Henrique Barboza
2022-08-31 18:50 ` [PULL 58/60] hw/ppc/Kconfig: Move imply before select Daniel Henrique Barboza
2022-08-31 18:50 ` [PULL 59/60] ppc/ppc4xx: Fix sdram trace events Daniel Henrique Barboza
2022-08-31 18:50 ` [PULL 60/60] ppc4xx: Fix code style problems reported by checkpatch Daniel Henrique Barboza
2022-08-31 19:37 ` [PULL 00/60] ppc queue BALATON Zoltan
2022-08-31 20:27 ` Daniel Henrique Barboza
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).