The 4.22 release is planned for mid-November, 2023
Update this document with changes that should be in the release notes.
Add changes that need a full description here
This section should have full descriptions and can or should have a link to the referenced commits.
x86 pre-memory stages did not support the .data
section and as a result developers were required to include runtime initialization code instead of relying on C global variable definition.
Other platforms do not have that limitation. Hence, resolving it helps to align code and reduce compilation based restriction (cf. the use of ENV_HAS_DATA_SECTION
compilation flag in various places of coreboot code).
There were three types of binary to consider:
bootblock
stage is a bit different as it uses Cache-As-Ram but the memory mapping and its entry code differentCONFIG_NO_XIP_EARLY_STAGES
).eXecute-In-Place pre-memory stages (#1) relies on a new ELF segment as the code segment Virtual Memory Address and Load Memory Address are identical but the data needs to be linked in cache-As-RAM (VMA) but to be stored right after the code (LMA).
bootblock
(#2) also uses this new segment to store the data right after the code and it loads it to Cache-As-RAM at runtime. However, the code involved is different.
Not eXecute-In-Place pre-memory stages (#3) did not really need any special work other than enabling a .data section as the code and data VMA / LMA translation vector is the same.
Related important commits:
The following are changes across a number of patches, or changes worth noting, but not needing a full description.