linuxboot/heads

Workstations support with variable dGPU : SeaBIOS chainloading of Heads needed?

Opened this issue · 2 comments

  • coreboot oprom pci extraction + loading exists, but is not providing VBIOS: SeaBIOS does.
  • coreboot/SeaBIOS seperation of duties prohibit coreboot by ideology from providing VBIOS implementation: SeaBIOS does and is said to do it well.
  • SeaBIOS does more then extract oprom from PCI+loads it, it implements VBIOS dGPU implementation for which oprom IRQ polling results in functional graphic handling.
  • Without VBIOS implementation in firmware provided by SeaBIOS (free or proprietary), oprom alone gives variable dGPU support.
  • So Hypothesis here is that SeaBIOS should be used to chainload Heads payload instead of trying to implement VBIOS+oprom loading inside of coreboot. But to do so well, SeaBIOS should hebable TPM measured boot and read oprom in ram, measure it, extend TPM PCR and then load oprom+offer VBIOS free implementation so IRQ polling is functions.

Traces of discussions (only accessible by current members of D16 club):

Originally posted by @tlaurion in #1792 (comment)

Some more notes:

  • SeaBIOS compressed can be 68kb (references from above discussions a bit down)
  • SeaBIOS would be measured by coreboot and introspection notes available through cbmem logs
  • SeaBIOS implementation thought to currently miss oprom measurement and TPM PCR extend with hash prior of loading (TOCTU possible). To verify and challenge SeaBIOS comunity to provide implementation
  • SeaBIOS provides TPM implementation, test it and see what it does and what it doesn't

Disclaimer: from my limited understanding of the low level interactions happening at VBIOS/oprom/efi level, most of the above could be wrong. This is why "help wanted" lable is put on this issue, and I welcome experts (coreboot devels) to jump in this discsussion up to creating PR to test hypothesis.

Some more discussion trail under https://matrix.to/#/!OkpUfvLEYpLyALVvaW:dodoid.com/$LqiTqBOtSs5v1r8n0s_UNhsVSGO1adNigZeV6Zahn7k?via=dodoid.com&via=matrix.org&via=envs.net for traceability.