Nico Huber has posted comments on this change. ( https://review.coreboot.org/c/coreboot/+/36136 )
Change subject: soc/intel: skl,cnl,icl: rely on TOLUM as cbmem_top returned by FSP ......................................................................
Patch Set 17:
(1 comment)
Some thoughts: Some things do not need to be guessed an can be directly read from hardware registers (SA_BASE, TSEG, BDSM, GSM, ...) other things rely on guessing what the FSP did. Why not keep the calculation for things that are most certainly valid (hardware registers) and use the FSP HOB information to fill in gaps for things that cannot be read back (PRMRR?)? That allows to properly know the memory map, while still provide a correct result wrt the top of usable lower memory.
The thing is, the only way to get cbmem_top() without guessing is using the TOLUM HOB. And that already gives us cbmem_top() exactly, without having to query any of the easy registers.
We still use some of the specific locations btw. TSEG, BGSM, for instance, they show up here and there.
https://review.coreboot.org/c/coreboot/+/36136/11/src/soc/intel/skylake/memm... File src/soc/intel/skylake/memmap.c:
https://review.coreboot.org/c/coreboot/+/36136/11/src/soc/intel/skylake/memm... PS11, Line 54: * +--------------------------+ ME Stolen
this is caused by moving the skylake memmap there, we just need to find the correct one out of that […]
Found it somewhere else, both are the same thing, probably an implementation detail? I have no idea, actually, but maybe TraceHub is implemented in the ME or something?
I would prefer to keep the "Trace" name. ME stolen memory is too easily confused with the ME UMA. "Probeless Trace" btw. is also what it says in the integration guides.