We use a platform with the Intel Atom Processor E6xx Series and Intel Platform Controller Hub EG20T, with an LVDS display attached to the board. Currently we are trying to setup BLDK to have a basic ROM image for the platform. We have some problems with setting up the graphic driver for the display. With the EMGD Configuration Editor we are able to produce a working graphic driver, but the color-depth does not match the display's color-depth resutling in an ugly contrast. We are now trying to change some graphic settings (resolution, color bit-depth) in the EMGD editor, but it does not seem to have any effect in the resulting BLDK image. I noticed the EMGD editor produces three different files (iegd.efi, iegd.dxe and efi_config.txt). The BLDK project (CrownBayPlatformPkg) only takes the iegd.efi from the GopBinary folder (which I copy there), but the iegd.efi file as produced by EMGD editor does not seem to be changed when trying different settings?
Does anyone know how to change the graphical settings and how to integrate this in the BLDK project? Do I need to use the other files as produced by the EMGD editor (iegd.dxe, efi_config.txt) to be included in the BLDK built?
Sorry for the confusion, there are a lot of "moving pieces" with a BLDK + GOP to get together.
First of all, I am on the graphics driver team and I think we are going to need someone from the BLDK team to help out with the integration of the GOP driver and config with the BLDK. The GOP that CED produces is designed to work in an EFI type environement which later versions of BLDK does support but with differences and I am not skilled on those differences.
Next, we want to be sure we do not confuse the PANEL color capability with the Mode color depth. LVDS panels are designed for either 18 bits of color data (6 bits per color) or 24 bits (8 bits per color). The typical mode will run at 32 bits of color (8 per color + alpha). An 18 bit LVDS panel works with a 32 bit mode but does some interpretations of the colors. Basically the driver maps the upper 6 bits of the 8 bits of color data from the 32 bit mode to the 6 bits of the panel and that works just fine. Yes you do lose some subtlty to the colors but the eye typically cannot regiter it. With a 24 bit LVDS the 8 bit sof color go straight out (and in some cases map back down to 6 bits of color in the hardware of the panel!!). The key is that you do not try to concern the screen mode color depth with the LVDS hardware signaling capability. If you have an 18 bit panel you set the output to 18 bits an the colors should work. Same with a 24 bit LVDS interface. You also need to be concerend with the data type if you are using a 24 bit panel- the is OpenLDI and SPWG type panels and you need to set the driver appropriately to make that work also. When you get "ugly colors" that either means you have the driver doing 18 bits to a 24 bit panel and things looke very dark, OR colrs are whacked out because you have the driver set to the wrong data type (spwg or OpenLDI) and that causes the color data to go out in the wrong order and gets displayed badly.
So get the datasheeet for your panel, and set the driver appropriatley, wit the proper configuration data getting fed into the BLDK and things should work (I know they do!!).
Hope this helps PART of the problem- we will work on getting a BLDK person to chime in here...
Here is some input from the Intel BLDK team.
I found this in the test specification case Appendix b:
1.1 Generating GOP driver using CED tools – Extracted from EMGD 1.8 TCS
1. In CED, create a new configuration.
2. Choose E6xx as Platform chipset and LDVS as port device.
3. In LVDS configuration page, check use user-defined DTDs and choose only ONE DTDs.
4. Go to EFI GOP Configuration Page and verify Splash Screen and Quickboot options are available for GOP EFI.
5. Enable Splash Screen and Quickboot option.
6. Verify Splash Screen BG color and coordination X,Y fields are available.
7. Set Splash Screen BG Color Red =0xGG and verify there is an error message prompt for the correct value range from 0x00 to 0xFF. Repeat with the Splash Screen BG Color Green=0x111 and Splash Screen BG Blue=0xFFF and verify the same error messages prompt up for each setting.
8. Set Splash Screen coordination X=3000 and verify there is an error message prompt for correct value range from -2048 to 2048. Repeat with coordination Y=2049 and verify the same error message prompt up.
9. Reset with the correct values for Splash Screen BG Color Red=0xdd, Green=0xee and Blue=0xaa and coordination X=300 and Y=300 and proceed to create a New Package.
10. In New Package page, verify EFI option is available in OS Target and verify Add Splash Screen field is available.
11. Check the EPOG option for OS Target and Add Splash Screen checkbox. Browse to a file which file size is >50kb. Verify there is an error message prompt for file size should be less than 50kb.
12. Choose a file size less than 50kb (Use SplashScreenTest1.BMP) for Splash Screen and choose only one configuration file.
13. Generate installation package for GOP EFI and verify that iegd.efi is successfully generated.
I hope this helps
J. Felix McNulty
Community Moderator (Intel contractor)
Thanks for the replies.
The LVDS panel we use can display 18 or 24 bit color modes (to be selected by a pin on the LVDS interface), but in our case it is hardwired to use 24 bit color mode. The EMGD driver seems to be in 18-bit color mode, so we have a mismatch in color mode as produced by the EMGD driver (18-bit) and the color mode as consumed by the the LVDS panel (24-bit). I verified this by installing the default BIOS for this board and switching between 18 and 24 bit color, when choosing 18-bit color mode I see the same issue.
For this reason, we want to configure the EMGD driver to produce a 24-bit color mode. I am aware of the CED configuration settings, the problem exists in integrating the CED output files into the BLDK project. The CED produces three different files: iegd.efi, iegd.dxe, efi_config.txt. I copy iegd.efi to ..\CrownBayPlatformPkg\GopBinary\, but this file does not seem to change when trying different settings in CED (I binary compared them).
I would really like to know how I can integrate the CED output files correctly in the BLDK project, so that the settings (like splashscreen and color depth) really apply?
If the GOP or the driver is not getting a required config file it will default to 18 bit.
You also need to be concerned with the "panel type" also as 24 bit panels are a bit inconsistent in their data type so you may be trying to feed OpenLDI data to an SPWG type panel. On the panel datasheet or manufacturere can tell you what they need.
You might want to consider setting the panel to 18bit to see if everything is working like you think BEFORE switching to 24Bit mode and the added configuration difficulties that can bring.
Hope this helps.
Can you please provide some more detail as to how you are rebuilding the BLDK firmware image? Are you using the BLDK Development Application and the steps decribed in the BLKD Getting Started Guide? It is not clear to us if this is a problem in the CED or a problem with the BLDK Development Application.
For building the BLDK firmware I use the Intel BLDK application starting with the "CB-EDKII-PostGold-220.127.116.11" firmware. I noticed today that sometimes I get an error when generating the installation in the EMGD CED:
What is the function of cfg_converter.exe? Could this be the source of the problem, in the sense that the iegd.efi is not updated with the required config file?
I'm running the EMGD CED on Windows 7 Prof (64-bit).
Having the config not working and getting an error in a config converter utility certainly is suspicious. CED was originally designed to run under XP and is not aware of Win7 permissions and such. Try running CED as adminstrator, and also you might try setting the run environment to "XP SP3" for CED as that will allow it to pretend it is running on XP...
Hope that helps.
I tried to run it on an XP machine and this time there is no error when creating the installation package. But, the same issue remains: the generated iegd.efi file is not updated with the configuration settings from CED. I tried different versions of EMGD, v1.10 and v1.14 for WEC7, without success..
Finally, I switched to EMGD v1.14 for Windows XP and this versions seems to be working ok. I tried different settings in CED and the generated iegd.efi is actually updated with the settings (I see binary changes over the different iegd.efi files). I am able to select 24-bits colors now which results in a normal screen perception
Concluding, can we say that there is a bug in the EMGD for WEC7? Since it is not able to update the generated files with the CED settings?