Hi,

Any feedback on this topic ?

I made some significant changes and made sure to cover all the cases
we identified including non-XIP stages. Cf. 
<https://review.coreboot.org/q/topic:x86-pre-ram-data-section>

Thanks,
Jeremy

"Compostella, Jeremy" <jeremy.composte...@intel.com> writes:
> Dear coreboot community,
>
> I am looking for feedback on the following topic.
>
> x86 Pre-memory stages do not support the `.data' section and as a result
> developers are required to include runtime initialization code instead
> of relying on C global variable definition.
>
> To illustrate the impact of this lack of .data section support, here
> are two limitations I personally ran into:
> 1. The inclusion of libgfxinit in romstage last year has required some
>    changes in libgfxinit to ensure data is initialized at runtime. In
>    addition, we had to manually map some .data symbols in the _bss
>    region.
> 2. CBFS cache is currently not supported in pre-memory stages and
>    enabling it would require to add an initialization function and
>    find a generic spot to call it.
>
> Instead of going though these workarounds and as it was suggested on
> [[RFC] VGA Text mode in romstage] last year, I believe we could add
> support for a `.data' section. I have been working on a solution for
> eXecute-In-Place (XIP) pre-memory stages (`bootblock', `verstage' and
> `romstage') which deliver good results
> (cf. <https://review.coreboot.org/c/coreboot/+/77289>).
>
> In short this patch:
> 1. creates a new ELF segment to hold the `.data' section
> 2. creates a `.data' section with its Virtual Memory Address (VMA)
>    within Cache-as-RAM (CAR) boundaries and its Load Memory Address
>    (LMA) following the .text section (at `_etext').
>
> cbfstools is also updated:
> - To process this new segment and `.data' section
> - To place the .data section content right after the
>   code (cf. `parse_elf_to_xip_stage' function)
>
> At the moment, this patch makes cbfstool detects the presence of the
> segment automatically and assume this is a "data" segment. But we
> could add a new parameter to make this new behavior less automatic if
> you think this would be better.
>
> This patch also adds a piece of assembly code (or C-code for
> bootblock) to copy the `.data' section content to Cache-As-RAM at
> runtime.
>
> Regards,
_______________________________________________
coreboot mailing list -- coreboot@coreboot.org
To unsubscribe send an email to coreboot-le...@coreboot.org

Reply via email to