Re: [LSF/MM] CXL Boot to Bash - Section 1: BIOS, EFI, and Early Boot

From: Yuquan Wang
Date: Mon Mar 10 2025 - 06:45:42 EST


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
>