Attention is currently required from: Tarun Tuli, Martin L Roth, Jérémy Compostella, Angel Pons, Andrey Petrov.
Nico Huber has posted comments on this change. ( https://review.coreboot.org/c/coreboot/+/69757 )
Change subject: [RFC] Pull ligfxinit in romstage ......................................................................
Patch Set 1:
(3 comments)
Patchset:
PS1: Very nice to see such quick progress! :D
File src/arch/x86/car.ld:
https://review.coreboot.org/c/coreboot/+/69757/comment/b6a5ab07_c326512a PS1, Line 122:
This "illegal globals" check is because global variables in these sections don't get initialized in […]
From the GNAT reference manual (`info gnat_rm`, 2.97 Pragma Linker_Section):
The compiler normally places library-level entities in standard sections depending on the class: procedures and functions generally go in the ‘.text’ section, initialized variables in the ‘.data’ section and uninitialized variables in the ‘.bss’ section.
So the problem is not only the initial value but having an initialization (not having one might drive human readers and GNATprove crazy) even if it's `0` or `False`. Not sure if there is linker magic to filter 0-data from `.data`?
File src/drivers/intel/fsp2_0/memory_init.c:
https://review.coreboot.org/c/coreboot/+/69757/comment/f1b69ec8_35936498 PS1, Line 348: gma_gfxinit(&lightup_ok);
We might need to make this more flexible, so that you can initialize a VGA textmode framebuffer in r […]
That's assuming we'd want to continue booting. But let's assume we do. The best thing to do would be to pass the state `GMA.Pipe_Configs` to ramstage, so it doesn't have to start from scratch. But for a start it would suffice to give `GMA.Initialize()` a `Clean_State => True` in ramstage if it already ran in romstage.