Display Drivers (ACPI and XML) Configuration Guide - What does DisplayPlatformID and PanelID means?


Hi all,

Was trying to make Dragonboard 410c to support custom graphics resolution with Windows IoT Core.

Starting from the panelcfg.xml approach documented in the display driver document, I somehow managed to fill out the whole display configuration by dump the EDID from the panel, and by reverse engineering the I2C initialization sequence I actually got the ADV7535 to work with the right timing. However, once booted into Windows and the KMD takes control, the OS still gets the wrong resolution and thus causes the screen to malfunction.

With a little bit of experiment, it seems that the resolution that Windows got is determined by the PanelID parameter as in the example panelcfg.xml - however, I do not see any documentation mentioning this parameter. I would appreciate if anyone knows the valid values and their meanings for this parameter, or if there are alternative ways to configure the resolutions that the KMD gets.



Figured this out myself.

As described in the manual, the Windows firmware for DB410c has two different copies of display configuration, one in UEFI for the system to initialize, another one in ACPI configuration that is used by Windows. panelcfg.xml only overrides the UEFI one - to override the ACPI one it seems to be necessary to download the DB410c BSP, change the panelcfg.asl and rebuild ACPI.

Multiple panel configurations are allowed in ACPI, and PanelID here is some kind of argument passed from UEFI to ACPI to select the correct configuration. See display.asl for details.

Now my next question is this: how to change the configuration in UEFI without having to use a SD card?