Hi Jorge,
Am 12.11.19 um 15:12 schrieb Jorge Fernandez Monteagudo:
I have a little problem trying to get a vesa framebuffer when booting my system. I have the system with the original bios and the vesa fb working. These are the relevant dmesg traces:
...
With the sytem and my modified coreboot I can get a vesa fb working and I get no image on screen until the amdgpu driver is loaded and the Xorg is running. The suspicious dmesg traces are:
... [ 0.253533] pci_bus 0000:00: root bus resource [mem 0xd0000000-0xffffffff] ... [ 0.253658] pci 0000:00:01.0: reg 0x10: [mem 0xe0000000-0xefffffff 64bit pref] ... [ 0.267043] pci_bus 0000:00: resource 8 [mem 0xd0000000-0xffffffff]
In this case the resource 10 related to the mem address 0xe0000000 is not int the pci_bus 0000:00: root bus resource list and is not in pci_bus 0000:00: resourceX
but it is. It's part of 0xd0000000-0xffffffff.
Beside little SMM and some ACPI, coreboot is no resident firmware like a BIOS that leaves some code to call into. Hence, if you run the VBIOS inside coreboot, it will also leave nothing for the OS to query the framebuffer info.
You have to make use of the framebuffer info coreboot leaves in it's own tables. With the current payload loading (I assume the kernel is wrapped into a SELF binary), this information is not handed over to the kernel (it could, though). So you need a driver that can fetch it. Have a look into drivers/firmware/google/ in the kernel. GOOGLE_ FRAMEBUFFER_COREBOOT=y should do the trick.
Nico