<feed xmlns='http://www.w3.org/2005/Atom'>
<title>bwlp/qemu.git/hw/pci-bridge, branch spice_video_codecs</title>
<subtitle>Experimental fork of QEMU with video encoding patches</subtitle>
<id>https://git.openslx.org/bwlp/qemu.git/atom/hw/pci-bridge?h=spice_video_codecs</id>
<link rel='self' href='https://git.openslx.org/bwlp/qemu.git/atom/hw/pci-bridge?h=spice_video_codecs'/>
<link rel='alternate' type='text/html' href='https://git.openslx.org/bwlp/qemu.git/'/>
<updated>2022-11-07T18:12:19+00:00</updated>
<entry>
<title>hw/pci-bridge/cxl-upstream: Add a CDAT table access DOE</title>
<updated>2022-11-07T18:12:19+00:00</updated>
<author>
<name>Jonathan Cameron</name>
</author>
<published>2022-10-14T15:10:45+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/bwlp/qemu.git/commit/?id=882877fc359d24e1563065c5c3887096317ca1ae'/>
<id>urn:sha1:882877fc359d24e1563065c5c3887096317ca1ae</id>
<content type='text'>
This Data Object Exchange Mailbox allows software to query the
latency and bandwidth between ports on the switch. For now
only provide information on routes between the upstream port and
each downstream port (not p2p).

Signed-off-by: Jonathan Cameron &lt;Jonathan.Cameron@huawei.com&gt;

--
Changes since v8: Mostly to match the type 3 equivalent
 - Move enum out of function and give it a more descriptive namespace.
Message-Id: &lt;20221014151045.24781-6-Jonathan.Cameron@huawei.com&gt;
Reviewed-by: Michael S. Tsirkin &lt;mst@redhat.com&gt;
Signed-off-by: Michael S. Tsirkin &lt;mst@redhat.com&gt;
</content>
</entry>
<entry>
<title>pci-bridge/cxl_downstream: Add a CXL switch downstream port</title>
<updated>2022-06-16T16:54:57+00:00</updated>
<author>
<name>Jonathan Cameron</name>
</author>
<published>2022-06-16T14:51:25+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/bwlp/qemu.git/commit/?id=18cef1c6a5a37710a2e5876fed2445849f31e321'/>
<id>urn:sha1:18cef1c6a5a37710a2e5876fed2445849f31e321</id>
<content type='text'>
Emulation of a simple CXL Switch downstream port.
The Device ID has been allocated for this use.

Signed-off-by: Jonathan Cameron &lt;Jonathan.Cameron@huawei.com&gt;
Message-Id: &lt;20220616145126.8002-3-Jonathan.Cameron@huawei.com&gt;
Signed-off-by: Michael S. Tsirkin &lt;mst@redhat.com&gt;
Reviewed-by: Michael S. Tsirkin &lt;mst@redhat.com&gt;
Signed-off-by: Michael S. Tsirkin &lt;mst@redhat.com&gt;
</content>
</entry>
<entry>
<title>pci-bridge/cxl_upstream: Add a CXL switch upstream port</title>
<updated>2022-06-16T16:54:57+00:00</updated>
<author>
<name>Jonathan Cameron</name>
</author>
<published>2022-06-16T14:51:24+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/bwlp/qemu.git/commit/?id=638b752da30a9daffb0c92166937a0cb777f9e23'/>
<id>urn:sha1:638b752da30a9daffb0c92166937a0cb777f9e23</id>
<content type='text'>
An initial simple upstream port emulation to allow the creation
of CXL switches. The Device ID has been allocated for this use.

Signed-off-by: Jonathan Cameron &lt;Jonathan.Cameron@huawei.com&gt;
Message-Id: &lt;20220616145126.8002-2-Jonathan.Cameron@huawei.com&gt;
Signed-off-by: Michael S. Tsirkin &lt;mst@redhat.com&gt;
Reviewed-by: Michael S. Tsirkin &lt;mst@redhat.com&gt;
Signed-off-by: Michael S. Tsirkin &lt;mst@redhat.com&gt;
</content>
</entry>
<entry>
<title>pci/pci_expander_bridge: For CXL HB delay the HB register memory region setup.</title>
<updated>2022-06-09T23:32:49+00:00</updated>
<author>
<name>Jonathan Cameron</name>
</author>
<published>2022-06-08T14:54:37+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/bwlp/qemu.git/commit/?id=7bd1900b365b5e7ae498cf9c915867fcaa5296fc'/>
<id>urn:sha1:7bd1900b365b5e7ae498cf9c915867fcaa5296fc</id>
<content type='text'>
As the CXLState will no long be accessible via MachineState
at time of PXB_CXL realization, come back later from the machine specific
code to fill in the missing memory region setup. Only at this stage
is it possible to check if cxl=on, so that check is moved to this
later point.

Note that for multiple host bridges, the allocation order of the
register spaces is changed. This will be reflected in ACPI CEDT.

Stubs are added to handle case of CONFIG_PXB=n for machines that
call these functions.

The bus walking logic is common to all machines so add a utility
function + stub to cxl-host*.

Signed-off-by: Jonathan Cameron &lt;Jonathan.Cameron@huawei.com&gt;
Reviewed-by: Ben Widawsky &lt;ben@bwidawsk.net&gt;
Message-Id: &lt;20220608145440.26106-6-Jonathan.Cameron@huawei.com&gt;
Reviewed-by: Michael S. Tsirkin &lt;mst@redhat.com&gt;
Signed-off-by: Michael S. Tsirkin &lt;mst@redhat.com&gt;
</content>
</entry>
<entry>
<title>hw/cxl: Make the CXL fixed memory window setup a machine parameter.</title>
<updated>2022-06-09T23:32:49+00:00</updated>
<author>
<name>Jonathan Cameron</name>
</author>
<published>2022-06-08T14:54:33+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/bwlp/qemu.git/commit/?id=03b39fcf64bc958e3223e1d696f9de06de904fc6'/>
<id>urn:sha1:03b39fcf64bc958e3223e1d696f9de06de904fc6</id>
<content type='text'>
Paolo Bonzini requested this change to simplify the ongoing
effort to allow machine setup entirely via RPC.

Includes shortening the command line form cxl-fixed-memory-window
to cxl-fmw as the command lines are extremely long even with this
change.

The json change is needed to ensure that there is
a CXLFixedMemoryWindowOptionsList even though the actual
element in the json is never used. Similar to existing
SgxEpcProperties.

Update qemu-options.hx to reflect that this is now a -machine
parameter.  The bulk of -M / -machine parameters are documented
under machine, so use that in preference to M.

Update cxl-test and bios-tables-test to reflect new parameters.

Signed-off-by: Jonathan Cameron &lt;Jonathan.Cameron@huawei.com&gt;
Reviewed-by: Ben Widawsky &lt;ben@bwidawsk.net&gt;
Reviewed-by: Davidlohr Bueso &lt;dave@stgolabs.net&gt;
Message-Id: &lt;20220608145440.26106-2-Jonathan.Cameron@huawei.com&gt;
Reviewed-by: Michael S. Tsirkin &lt;mst@redhat.com&gt;
Signed-off-by: Michael S. Tsirkin &lt;mst@redhat.com&gt;
</content>
</entry>
<entry>
<title>CXL/cxl_component: Add cxl_get_hb_cstate()</title>
<updated>2022-05-13T11:57:26+00:00</updated>
<author>
<name>Jonathan Cameron</name>
</author>
<published>2022-04-29T14:40:56+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/bwlp/qemu.git/commit/?id=0b4aec246972f238a22d04403289eee97e8c8be6'/>
<id>urn:sha1:0b4aec246972f238a22d04403289eee97e8c8be6</id>
<content type='text'>
Accessor to get hold of the cxl state for a CXL host bridge
without exposing the internals of the implementation.

Signed-off-by: Jonathan Cameron &lt;jonathan.cameron@huawei.com&gt;
Reviewed-by: Alex Bennée &lt;alex.bennee@linaro.org&gt;
Message-Id: &lt;20220429144110.25167-32-Jonathan.Cameron@huawei.com&gt;
Reviewed-by: Michael S. Tsirkin &lt;mst@redhat.com&gt;
Signed-off-by: Michael S. Tsirkin &lt;mst@redhat.com&gt;
</content>
</entry>
<entry>
<title>acpi/cxl: Create the CEDT (9.14.1)</title>
<updated>2022-05-13T10:13:36+00:00</updated>
<author>
<name>Ben Widawsky</name>
</author>
<published>2022-04-29T14:40:50+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/bwlp/qemu.git/commit/?id=3d6a69b6eb973e5761c8dc489990dcd983f6c099'/>
<id>urn:sha1:3d6a69b6eb973e5761c8dc489990dcd983f6c099</id>
<content type='text'>
The CXL Early Discovery Table is defined in the CXL 2.0 specification as
a way for the OS to get CXL specific information from the system
firmware.

CXL 2.0 specification adds an _HID, ACPI0016, for CXL capable host
bridges, with a _CID of PNP0A08 (PCIe host bridge). CXL aware software
is able to use this initiate the proper _OSC method, and get the _UID
which is referenced by the CEDT. Therefore the existence of an ACPI0016
device allows a CXL aware driver perform the necessary actions. For a
CXL capable OS, this works. For a CXL unaware OS, this works.

CEDT awaremess requires more. The motivation for ACPI0017 is to provide
the possibility of having a Linux CXL module that can work on a legacy
Linux kernel. Linux core PCI/ACPI which won't be built as a module,
will see the _CID of PNP0A08 and bind a driver to it. If we later loaded
a driver for ACPI0016, Linux won't be able to bind it to the hardware
because it has already bound the PNP0A08 driver. The ACPI0017 device is
an opportunity to have an object to bind a driver will be used by a
Linux driver to walk the CXL topology and do everything that we would
have preferred to do with ACPI0016.

There is another motivation for an ACPI0017 device which isn't
implemented here. An operating system needs an attach point for a
non-volatile region provider that understands cross-hostbridge
interleaving. Since QEMU emulation doesn't support interleaving yet,
this is more important on the OS side, for now.

As of CXL 2.0 spec, only 1 sub structure is defined, the CXL Host Bridge
Structure (CHBS) which is primarily useful for telling the OS exactly
where the MMIO for the host bridge is.

Link: https://lore.kernel.org/linux-cxl/20210115034911.nkgpzc756d6qmjpl@intel.com/T/#t
Signed-off-by: Ben Widawsky &lt;ben.widawsky@intel.com&gt;
Signed-off-by: Jonathan Cameron &lt;Jonathan.Cameron@huawei.com&gt;
Reviewed-by: Alex Bennée &lt;alex.bennee@linaro.org&gt;
Message-Id: &lt;20220429144110.25167-26-Jonathan.Cameron@huawei.com&gt;
Reviewed-by: Michael S. Tsirkin &lt;mst@redhat.com&gt;
Signed-off-by: Michael S. Tsirkin &lt;mst@redhat.com&gt;
</content>
</entry>
<entry>
<title>hw/cxl/component: Implement host bridge MMIO (8.2.5, table 142)</title>
<updated>2022-05-13T10:13:36+00:00</updated>
<author>
<name>Ben Widawsky</name>
</author>
<published>2022-04-29T14:40:48+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/bwlp/qemu.git/commit/?id=6e4e3ae936e6bc1501fc0d67444738cec7a1e78a'/>
<id>urn:sha1:6e4e3ae936e6bc1501fc0d67444738cec7a1e78a</id>
<content type='text'>
CXL host bridges themselves may have MMIO. Since host bridges don't have
a BAR they are treated as special for MMIO.  This patch includes
i386/pc support.
Also hook up the device reset now that we have have the MMIO
space in which the results are visible.

Note that we duplicate the PCI express case for the aml_build but
the implementations will diverge when the CXL specific _OSC is
introduced.

Signed-off-by: Ben Widawsky &lt;ben.widawsky@intel.com&gt;
Co-developed-by: Jonathan Cameron &lt;Jonathan.Cameron@huawei.com&gt;
Signed-off-by: Jonathan Cameron &lt;Jonathan.Cameron@huawei.com&gt;
Reviewed-by: Alex Bennée &lt;alex.bennee@linaro.org&gt;
Message-Id: &lt;20220429144110.25167-24-Jonathan.Cameron@huawei.com&gt;
Reviewed-by: Michael S. Tsirkin &lt;mst@redhat.com&gt;
Signed-off-by: Michael S. Tsirkin &lt;mst@redhat.com&gt;
</content>
</entry>
<entry>
<title>hw/cxl/rp: Add a root port</title>
<updated>2022-05-13T10:13:36+00:00</updated>
<author>
<name>Ben Widawsky</name>
</author>
<published>2022-04-29T14:40:41+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/bwlp/qemu.git/commit/?id=d86d30192b7bc5a10fa6c82c073f55aea25f9291'/>
<id>urn:sha1:d86d30192b7bc5a10fa6c82c073f55aea25f9291</id>
<content type='text'>
This adds just enough of a root port implementation to be able to
enumerate root ports (creating the required DVSEC entries). What's not
here yet is the MMIO nor the ability to write some of the DVSEC entries.

This can be added with the qemu commandline by adding a rootport to a
specific CXL host bridge. For example:
  -device cxl-rp,id=rp0,bus="cxl.0",addr=0.0,chassis=4

Like the host bridge patch, the ACPI tables aren't generated at this
point and so system software cannot use it.

Signed-off-by: Ben Widawsky &lt;ben.widawsky@intel.com&gt;
Signed-off-by: Jonathan Cameron &lt;Jonathan.Cameron@huawei.com&gt;
Reviewed-by: Alex Bennée &lt;alex.bennee@linaro.org&gt;
Message-Id: &lt;20220429144110.25167-17-Jonathan.Cameron@huawei.com&gt;
Reviewed-by: Michael S. Tsirkin &lt;mst@redhat.com&gt;
Signed-off-by: Michael S. Tsirkin &lt;mst@redhat.com&gt;
</content>
</entry>
<entry>
<title>hw/pxb: Allow creation of a CXL PXB (host bridge)</title>
<updated>2022-05-13T10:13:36+00:00</updated>
<author>
<name>Ben Widawsky</name>
</author>
<published>2022-04-29T14:40:39+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/bwlp/qemu.git/commit/?id=4f8db8711cbd27c9acf17e685987e9e74815e087'/>
<id>urn:sha1:4f8db8711cbd27c9acf17e685987e9e74815e087</id>
<content type='text'>
This works like adding a typical pxb device, except the name is
'pxb-cxl' instead of 'pxb-pcie'. An example command line would be as
follows:
  -device pxb-cxl,id=cxl.0,bus="pcie.0",bus_nr=1

A CXL PXB is backward compatible with PCIe. What this means in practice
is that an operating system that is unaware of CXL should still be able
to enumerate this topology as if it were PCIe.

One can create multiple CXL PXB host bridges, but a host bridge can only
be connected to the main root bus. Host bridges cannot appear elsewhere
in the topology.

Note that as of this patch, the ACPI tables needed for the host bridge
(specifically, an ACPI object in _SB named ACPI0016 and the CEDT) aren't
created. So while this patch internally creates it, it cannot be
properly used by an operating system or other system software.

Also necessary is to add an exception to scripts/device-crash-test
similar to that for exiting pxb as both must created on a PCIexpress
host bus.

Signed-off-by: Ben Widawsky &lt;ben.widawsky@intel.com&gt;
Signed-off-by: Jonathan.Cameron &lt;Jonathan.Cameron@huawei.com&gt;
Reviewed-by: Alex Bennée &lt;alex.bennee@linaro.org&gt;
Message-Id: &lt;20220429144110.25167-15-Jonathan.Cameron@huawei.com&gt;
Reviewed-by: Michael S. Tsirkin &lt;mst@redhat.com&gt;
Signed-off-by: Michael S. Tsirkin &lt;mst@redhat.com&gt;
</content>
</entry>
</feed>
