On Fri, Oct 5, 2018 at 3:27 PM Nico Huber nico.h@gmx.de wrote:
On 10/5/18 4:43 PM, Zheng Bao wrote:
I transfer all the GPIO setting to my code.
What do you mean? did you have wrong GPIO settings before?
After this, the linux can turn the monitor on, but in BIOS stage, monitor can not be turn on. Is that the way it is? Can BIOS turn the display on?
What exactly do you mean with BIOS? a VGA BIOS? it should work with the correct VBT. Same with a GOP driver. I'll add Matt in CC who has more experience with the proprietary graphics solutions.
Personally, I would just implement the backlight control in coreboot and use libgfxinit as open-source solution. Register documentation can be found here [1][2] and soc/intel/broadwell/igd.c:311..344 as example how it worked on older platforms. Everything else you need are the correct settings for your board/panel which you can find by decoding the VBT or just dump the registers when Linux initialized it.
that's certainly the ideal way to do it, but using the FSP GOP init with the VBT extracted from the vendor UEFI firmware should work as well (ASCII search for $VBT, it's a 4-5kb file), combined with SeaVGABIOS and using SeaBIOS master (I pushed a few fixes for SeaVGABIOS recently). This is what we're currently testing on the Purism Librem laptops; the current release firmware uses a VBIOS (extracted from another Skylake proprietary firmware) which is executed by SeaBIOS, but seems to have some artifacting issues for some users.
Nico
[1] BLC_PWM_(CTL|DATA) in
https://01.org/sites/default/files/documentation/intel-gfx-prm-osrc-skl-vol0...
[2] PP_* and SBLC_PWM_CTL[12] in
https://01.org/sites/default/files/documentation/intel-gfx-prm-osrc-skl-vol0...