<feed xmlns='http://www.w3.org/2005/Atom'>
<title>bwlp/qemu.git/target/ppc/cpu-qom.h, branch spice_video_codecs</title>
<subtitle>Experimental fork of QEMU with video encoding patches</subtitle>
<id>https://git.openslx.org/bwlp/qemu.git/atom/target/ppc/cpu-qom.h?h=spice_video_codecs</id>
<link rel='self' href='https://git.openslx.org/bwlp/qemu.git/atom/target/ppc/cpu-qom.h?h=spice_video_codecs'/>
<link rel='alternate' type='text/html' href='https://git.openslx.org/bwlp/qemu.git/'/>
<updated>2022-08-30T19:20:29+00:00</updated>
<entry>
<title>target/ppc: Fix host PVR matching for KVM</title>
<updated>2022-08-30T19:20:29+00:00</updated>
<author>
<name>Nicholas Piggin</name>
</author>
<published>2022-07-31T01:33:58+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/bwlp/qemu.git/commit/?id=21d3a78ed9cf470f87180db62f7aa1296b7b0ee5'/>
<id>urn:sha1:21d3a78ed9cf470f87180db62f7aa1296b7b0ee5</id>
<content type='text'>
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 &lt;npiggin@gmail.com&gt;
Reviewed-by: Daniel Henrique Barboza &lt;danielhb413@gmail.com&gt;
Message-Id: &lt;20220731013358.170187-1-npiggin@gmail.com&gt;
Signed-off-by: Daniel Henrique Barboza &lt;danielhb413@gmail.com&gt;
</content>
</entry>
<entry>
<title>target: Introduce and use OBJECT_DECLARE_CPU_TYPE() macro</title>
<updated>2022-03-06T21:23:09+00:00</updated>
<author>
<name>Philippe Mathieu-Daudé</name>
</author>
<published>2022-02-14T16:08:40+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/bwlp/qemu.git/commit/?id=9295b1aa92d3efb3c08b71ee751fbfd83ea02f4d'/>
<id>urn:sha1:9295b1aa92d3efb3c08b71ee751fbfd83ea02f4d</id>
<content type='text'>
Replace the boilerplate code to declare CPU QOM types
and macros, and forward-declare the CPU instance type.

Reviewed-by: Richard Henderson &lt;richard.henderson@linaro.org&gt;
Signed-off-by: Philippe Mathieu-Daudé &lt;f4bug@amsat.org&gt;
Message-Id: &lt;20220214183144.27402-14-f4bug@amsat.org&gt;
</content>
</entry>
<entry>
<title>target: Use CPUArchState as interface to target-specific CPU state</title>
<updated>2022-03-06T21:23:09+00:00</updated>
<author>
<name>Philippe Mathieu-Daudé</name>
</author>
<published>2022-02-07T12:35:58+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/bwlp/qemu.git/commit/?id=1ea4a06af0f6578e5d0ddcea148503290b1c4907'/>
<id>urn:sha1:1ea4a06af0f6578e5d0ddcea148503290b1c4907</id>
<content type='text'>
While CPUState is our interface with generic code, CPUArchState is
our interface with target-specific code. Use CPUArchState as an
abstract type, defined by each target.

Reviewed-by: Richard Henderson &lt;richard.henderson@linaro.org&gt;
Signed-off-by: Philippe Mathieu-Daudé &lt;f4bug@amsat.org&gt;
Message-Id: &lt;20220214183144.27402-13-f4bug@amsat.org&gt;
</content>
</entry>
<entry>
<title>target/ppc: Merge 7x5 and 7x0 exception model IDs</title>
<updated>2022-02-09T08:08:56+00:00</updated>
<author>
<name>Fabiano Rosas</name>
</author>
<published>2022-02-09T08:08:56+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/bwlp/qemu.git/commit/?id=fd7dc4bb7869e367f5b9c6934abbb13aa04a21f6'/>
<id>urn:sha1:fd7dc4bb7869e367f5b9c6934abbb13aa04a21f6</id>
<content type='text'>
Since we've split the exception code by exception model, the exception
model IDs are becoming less useful. These two can be merged.

Signed-off-by: Fabiano Rosas &lt;farosas@linux.ibm.com&gt;
Message-Id: &lt;20220204173430.1457358-2-farosas@linux.ibm.com&gt;
Signed-off-by: Cédric Le Goater &lt;clg@kaod.org&gt;
</content>
</entry>
<entry>
<title>target/ppc: Merge exception model IDs for 6xx CPUs</title>
<updated>2022-02-09T08:08:55+00:00</updated>
<author>
<name>Fabiano Rosas</name>
</author>
<published>2022-02-09T08:08:55+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/bwlp/qemu.git/commit/?id=9323650f973272c065ea28c8f2864cc30aecc665'/>
<id>urn:sha1:9323650f973272c065ea28c8f2864cc30aecc665</id>
<content type='text'>
We don't need three separate exception model IDs for the 603, 604 and
G2.

Signed-off-by: Fabiano Rosas &lt;farosas@linux.ibm.com&gt;
Message-Id: &lt;20220203200957.1434641-2-farosas@linux.ibm.com&gt;
Signed-off-by: Cédric Le Goater &lt;clg@kaod.org&gt;
</content>
</entry>
<entry>
<title>target/ppc: Remove PowerPC 601 CPUs</title>
<updated>2022-02-09T08:08:55+00:00</updated>
<author>
<name>Cédric Le Goater</name>
</author>
<published>2022-02-09T08:08:55+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/bwlp/qemu.git/commit/?id=005b69fdccd798dd8f0996d0f1c93ff5a4672180'/>
<id>urn:sha1:005b69fdccd798dd8f0996d0f1c93ff5a4672180</id>
<content type='text'>
The PowerPC 601 processor is the first generation of processors to
implement the PowerPC architecture. It was designed as a bridge
processor and also could execute most of the instructions of the
previous POWER architecture. It was found on the first Macs and IBM
RS/6000 workstations.

There is not much interest in keeping the CPU model of this
POWER-PowerPC bridge processor. We have the 603 and 604 CPU models of
the 60x family which implement the complete PowerPC instruction set.

Cc: "Hervé Poussineau" &lt;hpoussin@reactos.org&gt;
Cc: Laurent Vivier &lt;laurent@vivier.eu&gt;
Signed-off-by: Cédric Le Goater &lt;clg@kaod.org&gt;
Reviewed-by: Fabiano Rosas &lt;farosas@linux.ibm.com&gt;
Message-Id: &lt;20220203142756.1302515-1-clg@kaod.org&gt;
Signed-off-by: Cédric Le Goater &lt;clg@kaod.org&gt;
</content>
</entry>
<entry>
<title>target/ppc: remove 401/403 CPUs</title>
<updated>2021-12-17T16:57:16+00:00</updated>
<author>
<name>Cédric Le Goater</name>
</author>
<published>2021-12-17T16:57:16+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/bwlp/qemu.git/commit/?id=c8f49e6b938e72eba2331cfce0ab20c6994ac74d'/>
<id>urn:sha1:c8f49e6b938e72eba2331cfce0ab20c6994ac74d</id>
<content type='text'>
They have been there since 2007 without any board using them, most
were protected by a TODO define. Drop support.

Signed-off-by: Cédric Le Goater &lt;clg@kaod.org&gt;
Reviewed-by: Richard Henderson &lt;richard.henderson@linaro.org&gt;
Reviewed-by: David Gibson &lt;david@gibson.dropbear.id.au&gt;
Reviewed-by: Daniel Henrique Barboza &lt;danielhb413@gmail.com&gt;
Message-Id: &lt;20211202191108.1291515-1-clg@kaod.org&gt;
Signed-off-by: Cédric Le Goater &lt;clg@kaod.org&gt;
</content>
</entry>
<entry>
<title>target/ppc: Remove 603e exception model</title>
<updated>2021-12-17T16:57:16+00:00</updated>
<author>
<name>Fabiano Rosas</name>
</author>
<published>2021-12-17T16:57:16+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/bwlp/qemu.git/commit/?id=fd77f75710c30416d501fa316040290e9a82960f'/>
<id>urn:sha1:fd77f75710c30416d501fa316040290e9a82960f</id>
<content type='text'>
The 603e uses the same exception code as 603 so we don't need a
dedicated entry for it.

This is only a removal of redundant code, no functional change.

Signed-off-by: Fabiano Rosas &lt;farosas@linux.ibm.com&gt;
Reviewed-by: Richard Henderson &lt;richard.henderson@linaro.org&gt;
Reviewed-by: Cédric Le Goater &lt;clg@kaod.org&gt;
Message-Id: &lt;20211208123029.2052625-3-farosas@linux.ibm.com&gt;
Signed-off-by: Cédric Le Goater &lt;clg@kaod.org&gt;
</content>
</entry>
<entry>
<title>target/ppc: Remove the software TLB model of 7450 CPUs</title>
<updated>2021-12-17T16:57:16+00:00</updated>
<author>
<name>Fabiano Rosas</name>
</author>
<published>2021-12-17T16:57:16+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/bwlp/qemu.git/commit/?id=a09410ed1fb80a8d5e624d93b51e46ccdafdea64'/>
<id>urn:sha1:a09410ed1fb80a8d5e624d93b51e46ccdafdea64</id>
<content type='text'>
(Applies to 7441, 7445, 7450, 7451, 7455, 7457, 7447, 7447a and 7448)

The QEMU-side software TLB implementation for the 7450 family of CPUs
is being removed due to lack of known users in the real world. The
last users in the code were removed by the two previous commits.

A brief history:

The feature was added in QEMU by commit 7dbe11acd8 ("Handle all MMU
models in switches...") with the mention that Linux was not able to
handle the TLB miss interrupts and the MMU model would be kept
disabled.

At some point later, commit 8ca3f6c382 ("Allow selection of all
defined PowerPC 74xx (aka G4) CPUs.") enabled the model for the 7450
family without further justification.

We have since the year 2011 [1] been unable to run OpenBIOS in the
7450s and have not heard of any other software that is used with those
CPUs in QEMU. Attempts were made to find a guest OS that implemented
the TLB miss handlers and none were found among Linux 5.15, FreeBSD 13,
MacOS9, MacOSX and MorphOS 3.15.

All CPUs that registered this feature were moved to an MMU model that
replaces the software TLB with a QEMU hardware TLB
implementation. They can now run the same software as the 7400 CPUs,
including the OSes mentioned above.

References:

- https://bugs.launchpad.net/qemu/+bug/812398
  https://gitlab.com/qemu-project/qemu/-/issues/86

- https://lists.nongnu.org/archive/html/qemu-ppc/2021-11/msg00289.html
  message id: 20211119134431.406753-1-farosas@linux.ibm.com

Signed-off-by: Fabiano Rosas &lt;farosas@linux.ibm.com&gt;
Reviewed-by: Cédric Le Goater &lt;clg@kaod.org&gt;
Message-Id: &lt;20211130230123.781844-4-farosas@linux.ibm.com&gt;
Signed-off-by: Cédric Le Goater &lt;clg@kaod.org&gt;
</content>
</entry>
<entry>
<title>target/ppc: Remove PowerPCCPUClass.handle_mmu_fault</title>
<updated>2021-07-09T00:38:18+00:00</updated>
<author>
<name>Richard Henderson</name>
</author>
<published>2021-06-21T12:51:06+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/bwlp/qemu.git/commit/?id=db20cc2c563bfa259f7574a064190cf6456861f6'/>
<id>urn:sha1:db20cc2c563bfa259f7574a064190cf6456861f6</id>
<content type='text'>
Instead, use a switch on env-&gt;mmu_model.  This avoids some
replicated information in cpu setup.

Signed-off-by: Richard Henderson &lt;richard.henderson@linaro.org&gt;
Message-Id: &lt;20210621125115.67717-2-bruno.larsen@eldorado.org.br&gt;
Reviewed-by: Greg Kurz &lt;groug@kaod.org&gt;
Signed-off-by: David Gibson &lt;david@gibson.dropbear.id.au&gt;
</content>
</entry>
</feed>
