Re: [LSF/MM] CXL Boot to Bash - Section 4: Interleave
From: Gregory Price
Date: Wed Mar 26 2025 - 08:53:28 EST
On Wed, Mar 26, 2025 at 05:28:00PM +0800, Yuquan Wang wrote:
> >
> > Notice at both the root and the host bridge, the Interleave Ways is 2.
> > There are two targets at each level. The host bridge has a granularity
> > of 512 to capture its parent's ways and granularity (`2*256`).
> >
> > Each decoder is programmed with the total number of targets (4) and the
> > overall granularity (256B).
> >
>
> Sorry, I tried to set this topology on Qemu Virt and used:
> "cxl create-region -d decoder0.0 -t ram -m mem0,mem1,mem2,mem3"
>
> but it failed with:
> "cxl region: validate_ways: Interleave ways 2 is less than number of memdevs specified: 4"
>
> It seems like the CFMWs IW should be 4?
>
It has been a while since i've interacted with QEMU's interleave stuff,
but IIRC (at least back when I was working on it) most configurations
had 1 device per host bridge - in which case the CFMWS IW should be 4
with each of the host bridges described in it.
I'm not sure you can do multiple devices per host bridge without a
switch setup.
~Gregory