Hi Benjamin,
On 05.01.20 19:30, Benjamin Doron wrote:
Is this laptop using Nvidia Optimus? If so, the displays are only connected to the integrated GPU.
I'm not sure, but the datasheet seems to suggest so, displaying exactly what your conclusion was, that the display is connected only to the SoC. If more proof is needed, where might I find it and what do I do practically?
well, you can boot with the vendor firmware, enable the discrete GPU and check in your OS (xrandr, for instance, I guess) where the display is connected.
Is this ONBOARD_VGA_IS_PRIMARY or is "PrimaryDisplay" "Display_iGFX?" Or is there something else?
*If* it's Optimus:
o You'll have to enabled both integrated and discrete GPUs.
o You'll always use the integrated one to handle displays. PrimaryDisplay = Display_iGFX
o Select ONBOARD_VGA_IS_PRIMARY if you ever want to use open-source gfx init or an Option ROM (for the iGPU). (This is the generic coreboot switch, redundant with the PrimaryDisplay option of FSP. Better keep these settings synchronized.)
o You'll most likely have to figure out how to toggle power to the dGPU. This is mainboard specific, can be a GPIO, for instance. So I suggest to boot with the vendor firmware, dump GPIOs, toggle the dGPU, and dump again. With some luck you'll find a GPIO that changes respec- tively. You can find an example of similar code in src/drivers/lenovo/ hybrid_graphics/.
o You'll have to load the nvidia firmware (extracted from vendor image) in coreboot and make it available to the OS via ACPI. Older devices had Option ROMs (to be run by legacy BIOS) for this, I'm not sure if those are still available on newer devices. - If you have an Option ROM: Add it to CBFS as `pciVVVV,DDDD.rom` where VVVV and DDDD are the vendor and device IDs of your dGPU in hex. coreboot should pick it up and do the rest. - If not: I'd suggest to dig into your vendor firmware's DSDT (and SSDTs) and the Linux kernel driver for your dGPU to figure out what is provided to the OS and how. Please document your findings first, if you go this way, then we can discuss integration into coreboot.
Nico