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

From: Jonathan Cameron
Date: Thu Feb 20 2025 - 11:33:07 EST



>
> 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),

Specific purpose. You don't want to know how long that term took to
agree on...

> you should find a matching entry EFI Memory Map and /proc/iomem
>
> BIOS-e820: [mem 0x000000c050000000-0x000000fcefffffff] usable

Trivial but that's not the EFI memory map, that's the e820.
On some architectures this really will be coming from the EFI memory map.


> /proc/iomem: c050000000-fcefffffff : System RAM


>
>
> ---------------------------------------------------------------
> Step 3: EFI_MEMORY_SP - Deferring Management to the CXL Driver.
> ---------------------------------------------------------------
>
> Assuming you DON'T want CXL memory to default to SystemRAM and prefer
> NOT to have your kernel allocate arbitrary resources on CXL, you
> probably want to defer managing these memory regions to the CXL driver.
>
> The mechanism for is setting EFI_MEMORY_SP bit on CXL memory in BIOS.
> This will mark the memory "Special Purpose".

Specific purpose if we are keeping the UEFI naming.