On Tue, Feb 04, 2025 at 09:17:09PM -0500, Gregory Price wrote: > > Platform / BIOS / EFI Configuraiton > =================================== > --------------------------------------- > Step 1: BIOS-time hardware programming. > --------------------------------------- > > I don't want to focus on platform specifics, so really all you need > to know about this phase for the purpose of MM is that platforms may > program the CXL device heirarchy and lock the configuration. > This question can be very naive, what's the meaning of 'MM' here? And since I am not familiar with cxl bios configurations, based on my understanding of its acpi results, there are roughly two configuration schemes in my analysis: a) users should enter some configuration information manually (like region base/size). b) bios could provide a recommendatory configuration by device information. Is my understanding right? > In practice it means you probably can't reconfigure things after boot > without doing major teardowns of the devices and resetting them - > assuming the platform doesn't have major quirks that prevent this. > > This has implications for Hotplug, Interleave, and RAS, but we'll > cover those explicitly elsewhere. Otherwise, if something gets mucked > up at this stage - complain to your platform / hardware vendor. > > > ------------------------------------------------------------------ > Step 2: BIOS / EFI generates the CEDT (CXL Early Detection Table). > ------------------------------------------------------------------ > > This table is responsible for reporting each "CXL Host Bridge" and > "CXL Fixed Memory Window" present at boot - which enables early boot > software to manage those devices and the memory capacity presented > by those devices. > > Example CEDT Entries (truncated) > Subtable Type : 00 [CXL Host Bridge Structure] > Reserved : 00 > Length : 0020 > Associated host bridge : 00000005 > > Subtable Type : 01 [CXL Fixed Memory Window Structure] > Reserved : 00 > Length : 002C > Reserved : 00000000 > Window base address : 000000C050000000 > Window size : 0000003CA0000000 > > If this memory is NOT marked "Special Purpose" by BIOS (next section), > you should find a matching entry EFI Memory Map and /proc/iomem > > BIOS-e820: [mem 0x000000c050000000-0x000000fcefffffff] usable > /proc/iomem: c050000000-fcefffffff : System RAM >