====================================================================== Release Notes for the Intel(R) Embedded Graphics Drivers with Configuration Editor Package Version 6.1 Release, November 2006 ====================================================================== Contents ======== - New Features - Supported Chipsets - In This Release - VBIOS - Linux - Windows* - Windows CE* 4.2 - Windows CE 5.0 - Software Errata - Software Licenses - Legal / Disclaimers In This Release ================ This is a release of the Intel(R) Embedded Graphics Drivers (IEGD). IEGD is designed specifically to support the unique requirements of embedded applications for Intel chipset-based platforms. This release is a comprehensive package that includes all supported O/S versions of IEGD, and the pre-installation configuration editor (CED) utility. Highlights of the included files/folders are: iegd-ced.exe Configuration EDitor main file License.txt IEGD License \configuration CED main files \features CED copyright, license, and version info \JRE Java engine for CED \Plugins CED program files and support files \plugins\com.intel.iegd.drivers.xxx Individual IEGD drivers \workspace Configured drivers and associated files \workspace\Documentation\RELNOTES.TXT Release Notes \workspace\Documentation\UsersGuide.pdf IEGD User's Guide New Features ============ This release contains the following new features and capabilities: - Intel(R) Q965 Express chipset with "Gen4" graphics capability (2D only) - IEGD Configuration EDitor (CED) as a standard feature (consolidated release) - D3D support on Intel(R) 945G Express chipset and Mobile Intel(R) 945GM Express chipset - Three display capability - Render scaling - Rotation support for Microsoft Windows CE* OS Support Changes: - Damn Small Linux (DSL)* support - Fedora Core 5* support This release also contains fixes for errata. For details on errata, including status information, refer to the Errata document located at the following Web address: www.intel.com/design/intarch/specupdt/309380.htm Supported Chipsets ================== Target system must contain one of the following Intel Chipsets: Intel(R) Q965 Chipset Intel(R) 945G Chipset Intel(R) 945GM Chipset Intel(R) 915GM Chipset Intel(R) 915GV Chipset Intel(R) 855GME Chipset Intel(R) 852GM Chipset Intel(R) 852GME Chipset Intel(R) 845GV Chipset Please check with your system provider to determine Intel Chipset used in your system. ===== VBIOS ===== VBIOS System Requirements ========================= The VBIOS can be built on a host system and moved to the target system. The host system should have installed a 32-bit Windows operating system with the capability to execute DOS commands from a command line window. The Target system should have DOS installed. Supported DOS versions are MS-DOS* 6.22, MS-DOS 7.1 (from Windows 98), or IBM PC DOS 2000*. The Target system should contain a minimum of 64MB of RAM. VBIOS Files =========== The individual Linux install file (for manual access/configuration) is found under the IEGD install directory in \plugins\com.intel.iegd.drivers.xxx\vbios folder (where xxx represents the release version) The following describes the files used for building the VBIOS for each supported platform, where xxx indicates the chipset for which to build the specific Option ROM or TSR. /Driver/xxx/orom/go.bat Batch file used for manual build of VBIOS Option ROM /Driver/xxx/orom/igd_uinit.h Header file containing default initialization settings /Driver/xxx/orom/makefile Makefile used to build VBIOS Option ROM /Driver/xxx/orom/pd_init_all.c??C file containing structures and default initialization settings /Driver/xxx/orom/sample.pcf Sample Parameter Configuration File for use with manual build of VBIOS /Driver/xxx/orom/vga-def.bin Default VBIOS Option ROM for single CRT display /Drivers/xxx/orom/lib/* Library files used to build the VBIOS option ROM libigdpialm.lib For Almador graphics engine based chipsets (845/852/855) libigdpinap.lib For Napa graphics engine based chipsets (915/945) libigdpign4.lib For Gen 4 graphics based chipsets (Q965) /Driver/xxx/tsr/go.bat Batch file used for manual build of VBIOS Terminate and Stay Resident (TSR) program /Driver/xxx/tsr/igd_uinit.h Header file containing default initialization settings /Driver/xxx/tsr/makefile Makefile used to build VBIOS TSR /Driver/xxx/tsr/pd_init_all.c C file containing structures and default initialization settings /Driver/xxx/tsr/sample.pcf Sample Parameter Configuration File for use with manual build of VBIOS /Driver/xxx/tsr/tsr-def.bin Default VBIOS TSR for single CRT display /Drivers/xxx/tsr/lib/* Library files used to build the VBIOS TSR /Utilities/pcf2iegd.exe VBIOS: Building the VBIOS ========================= The Intel Embedded VBIOS should be built using the CED utility. The VBIOS is built based on settings in CED configuration. When directed to do so, CED will automatically build both the VGA.BIN ROM image and a TSR.EXE based on your CED settings. These files are ready to use directly out of the CED. Output will be found under the \workspace folder based on the chipset(s) you built. Details are provided in the User's Guide and in the CED online help. The Intel Embedded VBIOS may also be built using command line utilities. The VBIOS is built based on settings in text configuration files. This system of configuration files and command line utilities is called the "Manual Build" User Build System. The following steps describe how to build a VBIOS utilizing the User Build System. VBIOS: Manual Build Installation -------------------------------- The VBIOS installation is a standard zipped file that should be uncompressed in a folder of your choice on the host platform where you will build the VBIOS. Note that the DOS executable files may not run properly if the package is extracted in a location with a long directory path. To ensure proper operation, it is advised that the files be placed as close as possible to the root directory of your drive. VBIOS: Manual Build Prerequisites --------------------------------- Before building your VBIOS, you must set up your environment with two items: 1. Install Open Watcom compiler The User Build System for the VBIOS relies on the Open Watcom C/C++ compiler to be able to build a 16-bit DOS binary required for the BIOS. The VBIOS has been tested with version 1.2 of the Open Watcom compiler. This can be downloaded from the following location: http://www.openwatcom.com 2. Set up directory paths You must set up the PATH in DOS to be able to execute the Watcom compiler. The directories for the ml.exe and nmake.exe programs should be included in the execution path variable in your DOS environment. In addition, you must set the PATH to execute the Utilities\pcf2iegd.exe program that is included in this VBIOS package. VBIOS: Manual Build- Select Build Folder ---------------------------------------- This release of the VBIOS contains specific folders used for creating a VBIOS that is either an option ROM (OROM) that can be merged with the system BIOS, or an executable Terminate and Stay Resident (TSR) program for debugging purposes. There are also separate directories for the different chipsets that are supported. Depending on which chipset you are using, and whether or not you want an OROM or a TSR, open a DOS command window and move to the appropriate directory. You will execute the build commands in a DOS window from the selected folder. For example, if you are creating a OROM for a platform with an Intel(R) 855GME chipset, you would build the VBIOS from the Driver\855\orom directory. VBIOS: Manual Build - Create PCF File ------------------------------------- This release of the VBIOS now consolidates the configuration into the Parameter Configuration Format that is used for configuration of the driver. You should create your PCF file according to the instructions in the Intel Embedded Graphics Driver and Video BIOS User's Guide. The display settings will be used in the same manner they are used for the driver. In addition, there is a new "vbios" block that is included in each config block of the PCF file with some settings that are specific to the VBIOS. These new settings are below. Please see the file sample.pcf in the release package as an example of these settings. VBIOS: Manual Build the VBIOS ----------------------------- To build the VBIOS, in a DOS command window run the go.bat batch file from the selected build folder (depending on the desired chipset and if you are building the TSR or Option ROM). The go.bat file takes two command line parameters, the name of the PCF configuration file, and the default configuration ID. The configuration ID should match one of the configuration blocks in the specified PCF file. The configuration ID is optional, and if not specified the first configuration in the PCF file will be used as the default. The command line syntax of the go.bat file is as follows: go If you are building a TSR, the resulting file will be TSR.exe. This program can then be copied to the target machine. To run the TSR, boot the target machine with DOS, and then run the TSR.exe from the DOS command line. If you are building an Option ROM, the resulting file will be OROM.exe. From the command prompt on the host machine, run the OROM.exe, which will generate the file TEST1.BIN. The TEST1.BIN is the binary option ROM that can be merged with your system BIOS per the instructions provided by your system BIOS vendor. End VBIOS ********* ===== Linux ===== Linux: System Requirements ========================== This package includes drivers built for the following X servers: XFree86 version 4.2.0 & 4.3.0 X.org version 6.7,6.8 & 7.0 Note the driver requires the official versions from www.Xfree86.org or www.X.org, and may not necessarily operate with versions that are part of your Linux distribution. The drivers provided by this package have been tested using the following firmware version: AMI* BIOS version: 08.00.09 AMI BIOS build date: 05/21/2003 AMI BIOS ID: HLFDB022 The system should contain a minimum of 128MB of RAM. The Linux kernel Accelerated Graphics Port Graphics Address Remapping Table (AGPGART) must support the supported Intel chipsets (see below for more information). Linux: Files ============ The individual Linux install file (for manual access/configuration) is found under the IEGD install directory in \plugins\com.intel.iegd.drivers.xxx\linux folder (where xxx represents the release version). This package contains an XFree86 loadable module device driver for the Intel chipsets supported by this release. The following files are contained in the Linux release: Documents/RELNOTES.txt Release notes Documents/UsersGuide.pdf IEGD User's Guide Documents/Xfree86/intel.4 Man page for display driver - Xfree86 Documents/Xfree86/IntelEscape.3x Intel(R) Escape man page - Xfree86 Documents/Xorg-X11/intel.4 Man page for display driver - X.org Documents/Xorg-X11/IntelEscape.3x Intel(R) Escape man page - X.org License/License.txt License file for display driver Driver/XFree86-4.2/intel_drv.o Intel(R) Embedded Graphics Driver binary Driver/XFree86-4.2/libXiegd_escape.a Intel(R) Escape client library Driver/XFree86-4.2/libXiegd_escape.so.1.0 Intel(R) Escape client shared library Driver/XFree86-4.2/intel_escape.h Intel(R) Escape client include Driver/XFree86-4.2/ch7009.so Chrontel CH7009/7301* TVout/DVI encoder Driver/XFree86-4.2/ch7017.so Chrontel CH7017/7019/7304/7305 TVout/LVDS encoder Driver/XFree86-4.2/fs454.so Focus FS453/454* TVout encoder Driver/XFree86-4.2/lvds.so GMCH Internal LVDS controller Driver/XFree86-4.2/tv.so GMCH Internal TV controller Driver/XFree86-4.2/ns2501.so National Semiconductor NS2501* LVDS controller Driver/XFree86-4.2/ns387.so National Semiconductor NS387R* LVDS controller Driver/XFree86-4.2/sii164.so Silicon Image SiI164* DVI encoder Driver/XFree86-4.2/ti410.so Texas Instruments* TFP410 DVI encoder Driver/XFree86-4.2/th164.so THine TH164* DVI encoder Driver/XFree86-4.2/sdvo.so Serial DVO Devices Driver/XFree86-4.2/softpd.so VCH Devices Driver/XFree86-4.3/intel_drv.o Intel(R) Embedded Graphics Driver binary Driver/XFree86-4.3/libXiegd_escape.a Intel(R) Escape client library. Driver/XFree86-4.3/libXiegd_escape.so.1.0 Intel(R) Escape client shared library Driver/XFree86-4.3/intel_escape.h Intel(R) Escape client include Driver/XFree86-4.3/ch7009.so Chrontel CH7009/7301 TVout/DVI encoder Driver/XFree86-4.3/ch7017.so Chrontel CH7017/7019/7304/7305* TVout/LVDS encoder Driver/XFree86-4.3/fs454.so Focus FS453/454 TVout encoder Driver/XFree86-4.3/lvds.so GMCH Internal LVDS controller Driver/XFree86-4.3/tv.so GMCH Internal TV controller Driver/XFree86-4.3/ns2501.so National Semiconductor NS2501 LVDS controller Driver/XFree86-4.3/ns387.so National Semiconductor NS387R LVDS controller Driver/XFree86-4.3/sii164.so Silicon Image SiI164 DVI encoder Driver/XFree86-4.3/ti410.so Texas Instruments TFP410 DVI encoder Driver/XFree86-4.3/th164.so Thine 164 DVI encoder Driver/XFree86-4.3/sdvo.so Serial DVO Devices Driver/XFree86-4.3/softpd.so VCH Devices Driver/Xorg-X11R6.7/intel_drv.o Intel(R) Embedded Graphics Driver binary Driver/Xorg-X11R6.7/libXiegd_escape.a Intel(R) Escape client library. Driver/Xorg-X11R6.7/libXiegd_escape.so.1.0 Intel(R) Escape client shared library Driver/Xorg-X11R6.7/intel_escape.h Intel(R) Escape client include Driver/Xorg-X11R6.7/ch7009.so Chrontel 7009/7301 TVout/DVI encoder Driver/Xorg-X11R6.7/ch7017.so Chrontel 7017/7019/7304/7305 TVout/LVDS encoder Driver/Xorg-X11R6.7/fs454.so Focus* 453/454 TVout encoder Driver/Xorg-X11R6.7/lvds.so GMCH Internal LVDS controller Driver/Xorg-X11R6.7/tv.so GMCH Internal TV controller Driver/Xorg-X11R6.7/ns2501.so National Semiconductor 2501 LVDS controller Driver/Xorg-X11R6.7/ns387.so National Semiconductor 387R LVDS controller Driver/Xorg-X11R6.7/sii164.so Silicon Image 164 DVI encoder Driver/Xorg-X11R6.7/ti410.so Texas Instruments TFP410 DVI encoder Driver/Xorg-X11R6.7/th164.so Thine 164 DVI encoder Driver/Xorg-X11R6.7/sdvo.so Serial DVO Devices Driver/Xorg-X11R6.7/softpd.so VCH Devices Driver/Xorg-X11R6.8 Xorg-X11R6.8 binaries Driver/Xorg-X11R6.8/libGL.so OpenGL binary Driver/Xorg-X11R6.8/intel_drv.o Intel(R) Embedded Graphics Driver binary Driver/Xorg-X11R6.8/libXiegd_escape.a Intel(R) Escape client library. Driver/Xorg-X11R6.8/libXiegd_escape.so.1.0 Intel(R) Escape client shared library Driver/Xorg-X11R6.8/intel_escape.h Intel(R) Escape client include Driver/Xorg-X11R6.8/ch7009.so Chrontel 7009/7301 TVout/DVI encoder Driver/Xorg-X11R6.8/ch7017.so Chrontel 7017/7019/7304/7305 TVout/LVDS encoder Driver/Xorg-X11R6.8/fs454.so Focus* 453/454 TVout encoder Driver/Xorg-X11R6.8/lvds.so GMCH Internal LVDS controller Driver/Xorg-X11R6.8/tv.so GMCH Internal TV controller Driver/Xorg-X11R6.8/ns2501.so National Semiconductor 2501 LVDS controller Driver/Xorg-X11R6.8/ns387.so National Semiconductor 387R LVDS controller Driver/Xorg-X11R6.8/sii164.so Silicon Image 164 DVI encoder Driver/Xorg-X11R6.8/ti410.so Texas Instruments TFP410 DVI encoder Driver/Xorg-X11R6.8/th164.so Thine 164 DVI encoder Driver/Xorg-X11R6.8/sdvo.so Serial DVO Devices Driver/Xorg-X11R6.8/softpd.so VCH Devices Utilities/gui_lib_setup_linux.txt Instructions for GUI setup Utilities/IEGDGUI Display modes GUI utility Utilities/pcf2iegd Utility for conversion of PCF files The following files are contained in the IEGD_Patches/Driver directory: agpgart.patch-2.4.20 Patch for 2.4.20 kernel agpgart.patch-2.4.20-8 Patch for Red Hat* 2.4.20-8 kernel agpgart.patch-2.4.24 Patch for 2.4.24 kernel agpgart.patch-2.6.5-1.358 Patch for Fedora* 2.6.5-1.358 kernel agpgart.patch-2.6.5-7.191 Patch for SuSE 2.6.5-7.191 kernel agpgart.patch-2.6.13-15 Patch for SuSE 2.6.13-15 kernel COPYING GPL license agreement for patches Source included in this release ------------------------------- None. Linux: Installation =================== Please see the IEGD User's Guide for more detailed installation instructions. Note: Default installation locations can vary so be sure to check your system for the proper path. This is an overview of the install steps: 1) Copy the driver binary (intel_drv.o) to the X server's modules/driver directory. The default installation location is /usr/X11R6/lib/modules/drivers. 2) Copy the necessary port driver files (*.so files) into X server's modules directory. The default installation location is /usr/X11R6/lib/modules. Once copying the required port drivers, specify them in "PortDrivers" option in the Device section of config file. For more information, look for option "PortDrivers" in the man page. 3) Copy the driver man page to the X server's man/man4 directory. The default installation location is /usr/X11R6/man/man4. 4) Modify your X server config file to include a device section for this driver. See the man page for details on the configuration options and example usage. The default location for the config file is /etc/X11 5) Copy the escape client libraries libXiegd_escape.a and libXiegd_escape.so.1.0 to the X server's library directory. Create symbolic links for additional names: ln -s libXiegd_escape.so.1.0 libXiegd_escape.so ln -s libXiegd_escape.so.1.0 libXiegd_escape.so.1 The default installation location is /usr/X11R6/lib. 6) Copy the driver intel_escape.h include file to the X server's include/extensions directory. The default installation location is /usr/X11R6/include/X11. 7) Copy the driver escape man page to the X server's man/man3 directory. The default installation location is /usr/X11R6/man/man3. Linux: Patch Information ======================== Additional kernel patches are needed for the GART driver to support the Intel(R) Embedded Graphics X display driver. Patching instructions using Linux distributions with XFree86: To patch the Linux 2.4.2x and SuSE kernel with the GART changes: 1. cd into the kernel source directory (e.g., /usr/src/linux-2.x.xxx) 2. run 'patch -p1 < .../IEGD_Patches/Driver/agpgart.patch-2.x.xxx' To update the kernel: 1. cd to the kernel source directory (e.g., /usr/src/linux-2.x.xxx) 2. run 'make modules' 3. run 'make modules_install' Patching instructions for Fedora Core 2 --------------------------------------- To patch a Linux 2.6.xxxx kernel with the GART changes for Fedora Core 2 kernels: 1. cd into the kernel source directory (e.g., cd /usr/src/linux-2.6.5-1.358) 2. Execute the patch command as follows: patch -p1 < .../IEGD_Patches/Driver/agpgart.patch-2.6.xxxx To update the kernel: 1. cd to the kernel source directory (e.g., cd /usr/src/linux-2.6.5-1.358) 2. Since the AGPGART is built-in by default in Fedora Core 2, it needs to be configured to be installed as a module before updating the kernel. make menuconfig From the configuration menu, select Device Drivers, then Character Devices. Scroll down to /dev/agpgart. Change the disposition to M (for Module). Exit from the configuration menu and save your changes. 3. Execute the make modules command: make modules 4. Install the modules: make modules_install 5. Build the kernel make install 6. Run the following commands for the linux-2.6.xxxx kernel: modprobe agpgart modprobe intel-agp Also, to ensure the modules are loaded after a reboot, add the following line to the /etc/modprobe.conf file: alias char-major-10-175 intel-agp Linux: OpenGL* ============== OGL Description: ---------------- The OpenGL implementation for IEGD consists of three components. libGL.so: This is the shared library that implements the OpenGL and GLX APIs. It is linked by all OpenGL applications. intel.ko: This is the Direct Rendering Manager (DRM). It is a kernel module that provides the OpenGL application with the permissions necessary to directly access the DMA buffers used by libGL. X Server: The existing IEGD X server driver has been enhanced to communicate with libGL. Installing the IEGD OpenGL driver provides a fully hardware accelerated implementation of the OpenGL library to applications. This implementation makes use of a direct rendering technology, which allows the client to directly write to DMA buffers that are used by the Graphics Hardware. Due to the use of direct rendering technology, system designers should take special care to ensure that only trusted clients are allowed to use the OpenGL library. A malicious application could otherwise use direct rendering to destabilized the graphics hardware or, in theory, elevate their permissions on the system. A system designer can control the access to the direct rendering functionality by limiting the access to the DRI device file located at: /dev/dri/card0 The permissions on this device are set by the X-Server using the information provided in the "DRI" section of the xorg.conf file. OGL Install: ------------ To install the IEGD libGL onto a system copy the libGL.so binary from the package to the standard location. Then compile and install the kernel module from the sources provided. Lastly, enable the DRI option in the X configuration file. Details can be found in the OGL section of the IEGD User's Guide. NOTE: The system likely has a version of libGL already installed. You may want to make a backup copy of the existing library before installing the IEGD library. 1) cd IEGD_x_x_Linux/Driver/Xorg-X11R6.8/ 2) cp libGL.so /usr/X11R6/lib/libGL.so.1.2 3) ln -sfv /usr/X11R6/lib/libGL.so.1.2 libGL.so 4) ln -sfv /usr/X11R6/lib/libGL.so.1.2 libGL.so.1 5) ldconfig 6) cd IEGD_Patches/Drm/ 7) make 8) depmod -Ae 9) modprobe intel Note: to make the DRM always load: 9a) edit modprobe.conf 9b) add the line: install intel /sbin/modprobe intel_agp; /sbin/modprobe -i intel 10) cd /etc/x11 11) Add the following option to the first IEGD device section in the xorg.conf file: Option "DRI" "Yes" 12) restart the X-Server (or reboot) End Linux ********* ======= Windows ======= Windows System Requirements =========================== The development system should have one the following Windows operating systems installed. Microsoft Windows XP* SP2 Microsoft Windows XP Professional* SP2 Microsoft Windows XP Embedded* SP2 Microsoft Windows 2000* SP4 Microsoft WEPOS* The drivers provided by this package have been tested using the following firmware version: AMI BIOS version: 08.00.09 AMI BIOS build date: 05/21/2003 AMI BIOS ID: 049 The system should contain a minimum of 128MB of RAM. Windows Files ============= The individual Linux install file (for manual access/configuration) is found under the IEGD install directory in \plugins\com.intel.iegd.drivers.xxx\windows folder (where xxx represents the release version) The following are found in the Windows Installation: Driver\igdmini.sys Display driver Driver\igddis.dll Hi level Interface Dynamic Link Library Driver\igd3dalm.dll Direct3D support Dynamic Link Library Driver\ssigd.inf Install file for Display driver Driver\ssigd_alm.sld Windows XP* Embedded Component definition file Driver\ch7009.sys Port driver for Chrontel* CH7009/CH7301 encoder Driver\ch7017.sys Port driver for Chrontel CH7017/CH7305 encoder Driver\fs454.sys Port driver for Focus 453/454 TVOut encoder Driver\lvds.sys Port driver for Internal (GMCH) LVDS controller Driver\tv.sys Port driver for Internal (GMCH) TV controller Driver\ns2501.sys Port driver for National Semiconductor* 2501 LVDS controller Driver\ns387.sys Port driver for National Semiconductor 387R LVDS controller Driver\th164.sys Port driver for Thine* 164 encoder Driver\sii164.sys Port driver for Silicon Image* 164 encoder Driver\sdvo.sys Port driver for SDVO devices Driver\ti410.sys Port driver for Texas Instruments* TFP410 encoder Driver\softpd.sys Port driver for VCH devices Utilities\IEGDGUI.dll Library file for display modes GUI Utilities\IEGDGUI.exe Stand-alone display modes GUI executable Utilities\pcf2iegd.exe Utility for conversion of PCF files Utilities\Setup.exe Install/uninstall utility for driver Utilities\display_license.txt License agreement for display driver Installation and De-installation ================================ This release contains an installer/uninstaller utility. This utility does not, however, configure the driver. Please be sure to update your ssigd.inf file with appropriate settings for your display configuration prior to installation. The installation program requires specific file names.If you have a different INF file for driver installation, you must name it ssigd.inf and place it in the Drivers folder prior to running the installation. Do not move or alter the directories after unzipping the release package. The installation utility uses relative path information, and must be run from the Utilities folder, and also requires the Driver folder. If the folders are moved or renamed, the installation utility will not operate properly. Also, be sure to not install this version of the driver with an existing installation of a previous version of the driver. The installation utility will not uninstall previous versions of the Intel Embedded Graphics Driver, and you must begin from a fresh operating system installation. Results are unpredictable if you install over a previous version of the Intel Embedded Graphics Driver. To run the installation, simply run the Setup.exe program located in the Utilities folder of the installation. This must run from the Utilities folder. To uninstall this version of Intel Embedded Graphics Driver, run the Setup.exe program. End Windows *********** ============== WCE 4.2 ======= WCE 4.2: System Requirements ============================ Development systems should have the following software installed on the machine. Windows XP Professional SP1 Platform Builder for Windows CE 4.2 (latest service packs) The target system should contain a minimum of 64MB of RAM. WCE 4.2: Files ============== The individual Linux install file (for manual access/configuration) is found under the IEGD install directory in \plugins\com.intel.iegd.drivers.xxx\WCE42 folder (where xxx represents the release version) This package contains the following drivers, files and documents. Documents\RELNOTES.TXT Release Notes Documents\UsersGuide.pdf IEGD User's Guide License\License.txt License agreement for display driver Driver\DDI_IGD.DLL Display driver binary Driver\DDI_IGD.REL Compilation REL file Driver\igd3dalm.dll Direct3D support Dynamic Link Library Driver\video.reg Registry settings for the platform Driver\config.bib Example memory config file Driver\igdbin.cec Catalogue feature file Driver\ch7009.dll Port driver for Chrontel* CH7009/CH7301 encoder Driver\ch7017.dll Port driver for Chrontel CH7017/CH7305 encoder Driver\fs454.dll Port driver for Focus 453/454 TVOut encoder Driver\lvds.dll Port driver for Internal (GMCH) LVDS controller Driver\tv.dll Port driver for Internal (GMCH) TV controller Driver\ns2501.dll Port driver for National Semiconductor* 2501 LVDS controller Driver\ns387.dll Port driver for National Semiconductor 387R LVDS controller Driver\ti410.dll Port driver for the Texas Instruments* TFP410 encoder Driver\th164.dll Port driver for Thine* 164 encoder Driver\sii164.dll Port driver for Silicon Image* 164 encoder Driver\sdvo.dll Port driver for SDVO devices Driver\softpd.dll Port driver for VCH devices WCE 4.2: Installation ===================== Integration/installation of the driver binaries depends upon the requirements of the target project workspace. If taken directly from this release package, the driver binaries need to be manually integrated into the project workspace on Platform Builder. In your current project workspace, remove the default display device driver. Add a new user feature to the project and browse for the extracted ddi_igd.dll file. When rebuilding your project, Platform Builder will request to select a replacement display device driver to solve dependencies. Select the NULL(Stub) display device driver listed from the menu of choices offered. To install a DVO device port driver, use the platform settings menu and add the desired port driver DLL into the BIB image. The contents of the extracted video.reg file must be copied into the project registry file (project.reg) every time for each new project, or into the platform registry file (platform.reg) if all following projects on your current platform will run on the Intel graphics chipset. WCE 4.2: Mode setting through registry ====================================== The contents of video.reg are the registry entries for this driver and must be present for the driver to work. The current settings in this file are defaults. This version supports setting display configurations through the registry. Refer to the following for details of the configuration options. [HKEY_LOCAL_MACHINE\Drivers\Display\Intel] "Width"=dword:280 (HEX) ;screen width "Height"=dword:1E0 (HEX) ;screen height "Depth"=dword:10 ;screen bit depth (HEX) "Refresh"=dword:3C ;screen refresh rate (HEX) The driver will read these entries at startup and will try to validate it with a list of known good modes. If validation is successful, it will set the mode, otherwise it will default to 640x480x16x60. The following options allow for configuring the video memory location and size to a static location. Modifying these requires strong understanding of the config.bib file. The example config.bib file works with the values being set for these options. If either of the below values is zero or they are not defined, then the dynamic memory allocation method will be used for video memory usage. Thus availability is dependant on system resources. This is compliant with Intel's Dynamic Video Memory Technology. [HKEY_LOCAL_MACHINE\Drivers\Display\Intel] ;"ReservedMemoryBase"=dword:3200000 ; starting physical address of video memory ;"ReservedMemorySize"=dword:0E00000 ; size of video memory (includes stolen memory) NOTE: The above values and current defaults in the video.reg file are configured to use the last 14 of 64MB of RAM on the system. Please refer to the section below on "Determining graphics memory size" for details on this static video memory configuration. For more advanced possibilities of what modes and configurations are available, refer below to section Display Mode Configuration. WCE 4.2: Determining graphics memory size ========================================= This version supports the static as well as dynamic location of graphics memory. For static video memory, the two registry settings ReservedMemoryBase and ReservedMemorySize will denote where and how big this area will be. This portion of memory will be handled by the built-in GART driver. The size should include the stolen memory (BIOS setting, if applicable). If either of these registry settings are zero or not defined in the registry, then dynamic memory allocation will be used for video memory management. The usage will be dependant on system resources. This is compliant with Intel's Dynamic Video Memory Technology. For example of static video memory, if the stolen memory is 8 MB and you want a total of extra 56 MB of graphics memory for a total of 64 Mbytes of graphics memory you would want to have these settings: (On a 128MB machine) [HKEY_LOCAL_MACHINE\Drivers\Display\Intel] "ReservedMemoryBase"=dword:4000000 "ReservedMemorySize"=dword:4000000 Which means that the managed graphics memory pool will begin at physical address 0x4000000 (64MB) and is 64MB of size. Always remember to include the amount of stolen memory in this number! The lower 64MB in the above machine will be used for the NK.bin and RAM, so therefore you must change your config.bib accordingly. The configuration for the given machine is (debug build): NK 80220000 01650000 RAMIMAGE RAM 81700000 02790000 RAM As you see, the NK.BIN image takes 22.3125 MB and the rest of 41.6875 MB is RAM. The release build should have much smaller NK area. For better control, users may turn AUTOSIZE=OFF to calculate exactly where the image and RAM starts and ends followed by the location of the video memory pool with no possibility of runtime deviation. These two settings, together with the registry settings mentioned above, will determine your machine?s memory layout. The example config.bib and the memory configuration settings in the video.reg are validated settings that can be used for static video memory of 16MB in size starting from the 48MB address, thus including the stolen memory. WCE 4.2: Framebuffer and video surface size =========================================== Two more optional registry settings are available to limit the framebuffer size of the display driver and the total size of offscreen video surfaces. The MaxFbSize registry entry will control the maximum size of the framebuffer only. Actual usage will depend on the mode being used. The PageReqLimit registry entry will control the total size in pages (4K) of all video surfaces, buffers allocated for any use. Both of these registry configurations apply to both the static as well as dynamic video memory management explained in the previous section. The default below indicates that a maximum of 2MB's are used for the framebuffer and a maximum of 16MB's are permitted for all offscreen video surface allocations. "MaxFbSize"=dword:200000 "PageReqLimit"=dword:1000 In the case of Windows CE, because the OS does not allow for dynamically setting the framebuffer size, the MaxFbSize can be changed to match the mode setting being used in order to minimize video memory wastage. The following are different suggested values for MaxFbSize for different display modes. These values have not been validated. Note that 640X480 is calculated as 640X512 and 800X600 is calculated as 800X768 for stride alignment purposes. 640X512X16 = A0000 640X512X24 = F0000 640X512X32 = 140000 800X768X16 = 12C000 800X768X24 = 1C2000 800X768X32 = 258000 1024X768X16 = 180000 1024X768X24 = 240000 1024X768X32 = 300000 WCE 4.2: Video surface allocation rule ====================================== Another two optional registries entries determine a minimum width and height dimension that would enable successful video surface allocations. In Windows CE GDI, video surface allocations can happen with a REQUIRE_VIDEO_MEMORY or a PREFER_VIDEO_MEMORY flag. The following options will force surface allocations with the PREFER_VIDEO_MEMORY flag to be allocated in system memory if the width and height are lower than what is stated in the following entries. "MinVidSurfX"=dword:10 "MinVidSurfY"=dword:10 In this example, surfaces allocated with the PREFER_VIDEO_MEMORY, where the width and height are both less than 16 pixels and are forced to be in system memory. WCE 4.2: Driver General Configuration Selection =============================================== The Intel Embedded Graphics Driver allows the system integrator to provide multiple instances of per port platform customizations. There can be up to 16 instances of configurations and a single variable called "ConfigId" will ensure the display driver selects the right instance. Each instance may contain multiple groups of per-config and per-config+per-port platform customizations. "ConfigId"=dword:1 ; 1 = default WCE 4.2: Display Mode Configuration =================================== The "DisplayConfig" registry setting (see below), will let you decide whether you want to configure the display configuration to be in Single, Twin, Clone, or VEXT. (Windows CE 4.2 does not support Extended mode like Windows XP). DisplayConfig is a per-configuration setting, so note that in the registry path the Config number must match what's chosen in ConfigId above. [HKEY_LOCAL_MACHINE\Drivers\Display\Intel\Config\1\General] "DisplayConfig"=dword:1 ; DigitalPort 1 == SINGLE ; DigitalPort 4 == TWIN ; DigitalPort 2 == CLONE ; DigitalPort 5 == VEXT ; (Vertical Extended) The Intel 845GV chipset does not support Clone mode. "DisplayConfig" does not, however, dictate what type of display ports will be used. The setting of "PortOrder" keys ensure the correct display port types are used based on user selection. Again, these are per-configuration settings. The Intel 845GV chipset does not support Clone/VEXT mode. Vertical Extended is like "Extended Desktop" on Windows XP BUT the desktop is not extended horizontally across from left to right but extended vertically across from top to bottom. Overlay will not work in VEXT mode. In VEXT mode, the "Height" settings of the display resolution must be doubled of what each port height will be. Also, both ports must share the same timings. "PortOrder"="54320" PortOrder specifies the actual port that will be used for the primary and secondary ports. I the specified port is unavailable (port driver failed or display detection failed or port is not available on current chipset), then the next port in the above order will be used. PortOrder must be set, based on chipset specifications, for the driver to work properly: WCE 4.2: On Intel915 Express series and later chipsets: ==================================== 1 - Integrated TV Encoder (not supported for now) 2 - DVO B port 3 - DVO C port 4 - Internal LVDS port 5 - Analog port WCE 4.2: On Intel 830/835/845/85x/865 chipsets: ========================================== 1 - DVO A port 2 - DVO B port 3 - DVO C port 4 - Internal LVDS port 5 - Analog port There is also the option to detect the displays before the actual initialization of the display ports to happen. However, this option must be used carefully, displays without EDID tend NOT to be detected. "DisplayDetect"=dword:0 Set DispayDetect to '1' to detect display ports (panel/tv/etc...). BEWARE, setting this to '1' will mean display for the requested port won?t be enabled if detection failed. Use this option wisely. WCE 4.2: Per Port Platform Customization ======================================== The Intel Embedded Graphics Driver provides what's considered the most useful tools to the embedded market. Per port platform customizations. This includes the following: - Defining custom DTD panel timings : PixelClock, HorzActive, HorzSync etc... - Customized GPIO pin selection for I2C and DDC communication with DVO encoders and panels. : I2cPin, I2cDab, I2cSpeed etc... - Flat Panel width and height limitations and power and/or backlight control mechanisms : BkltMethod, BkltT1, BkltT2, GpioPinVdd etc... - Port driver specific attribute settings for initialization at boot time. : Brightness, Contrast, H-Position etc... All of the above can be set for each individual port depending on the maximum number of ports the chipset supports. Also, all of these configurations can be multiply instanced for per-configuration selection. The usage model for these per-config, per-port platform customizations reflect the same options available in Windows XP inf registry settings. Refer to the IEGD User Manual or to the provided registry sample file in the IEGD Windows CE driver package for examples. The following sections provide some details on these configurations. WCE 4.2: Per Port Customization - Custom DTD Mode Timings ========================================================= For each configuration, each port can be added with up to 255 customized DTD modes. The following is an example of adding 800X640 mode to the LVDS port when "Config=1" is used. However, the DTD timings should be preceded with the following keys: - Edid - (1=Read EDID from port, 0=Don?t Read EDID) - UseStdTimings - (whether to add the DTD timings to the internal mode tables or to discard internal modes and replace them with DTD provided modes.) ;[HKEY_LOCAL_MACHINE\Drivers\Display\Intel\Config\1\Port\2\General] ; "Edid"=dword:0 ; "UseStdTimings"=dword:1 ;[HKEY_LOCAL_MACHINE\Drivers\Display\Intel\Config\1\Port\4\DTD\1] ; "PixelClock"=dword:9c40 ; "HorzActive"=dword:320 ; "HorzSync"=dword:28 ; "HorzSyncPulse"=dword:80 ; "HorzBorder"=dword:0 ; "HorzBlank"=dword:100 ; "HorzSize"=dword:0 ; "VertActive"=dword:280 ; "VertSync"=dword:1 ; "VertSyncPulse"=dword:4 ; "VertBorder"=dword:0 ; "VertBlank"=dword:1c ; "VertSize"=dword:0 ; "Flags"=dword:1e * Note for Per-Config, Per-Port configuration, the subkey path includes the correct "Config" and "Port" numbers WCE 4.2: Per Port Customization - Custom DVO GPIO Pin Settings ============================================================== For each configuration, each ports' GPIO pin pair settings can be configured in terms of which physical pins, what I2C slave address the DVO encoder on that port responds to, and what speeds to use. ;[HKEY_LOCAL_MACHINE\Drivers\Display\Intel\Config\1\Port\2\DVO] ; "I2cPin"=dword:2 ; "I2cDab"=dword:70 ; "I2cSpeed"=dword:0 ; "DdcPin"=dword:0 ; "DdcSpeed"=dword:0 * Note for Per-Config, Per-Port configuration, the subkey path includes the correct "Config" and "Port" numbers WCE 4.2: Per Port Customization - Custom Flat Panel Controls ============================================================ Similarly, the flat panel native resolution and power and backlight sequencing controls can also be configured here. ;[HKEY_LOCAL_MACHINE\Drivers\Display\Intel\Config\1\Port\4\FPInfo] ; "Width"=dword:320 ; "Height"=dword:280 ; "BkltMethod"=dword:0 ; "BkltT1"=dword:0 ; "BkltT2"=dword:0 ; "BkltT3"=dword:0 ; "BkltT4"=dword:0 ; "BkltT5"=dword:0 ; "GpioPinVdd"=dword:0 ; "GpioPinVee"=dword:0 ; "GpioPinBklt"=dword:0 ; "BkltEnable"=dword:0 ; "UseGMCHClockPin"=dword:0 ; "UseGMCHDataPin"=dword:0 * Note for Per-Config, Per-Port configuration, the subkey path includes the correct "Config" and "Port" numbers WCE 4.2: Per Port Customization - Attribute Initialization ========================================================== Attributes are also per config and per port. However, the actual keys are dependant on the port driver being used. Below are examples of registry keys associated with initializing attributes for the Conexant Port Driver. Attribute Ranges for the Conexant Port Driver: Brightness 0-100 Contrast 0-7 Flicker Filter 0-4 Saturation 0-7 Hue 0-100 Text Filter 0-3 Macrovision boolean Overscan ratio 1-4 (Low, Std, High, None) TV Format 1, 17, 33 (NTSC-M, NTSC-M-J, NTSC-4.33) TV Output 1-4 (Comp & Svid, Comp, Svid, Comp) * Note for Per-Config, Per-Port configuration, the subkey path includes the correct "Config" and "Port" numbers [HKEY_LOCAL_MACHINE\Drivers\Display\Intel\Config\1\Port\2\Attr] "Brightness"=dword:32 "Contrast"=dword:4 "Flicker Filter"=dword:1 "Saturation"=dword:4 "Hue"=dword:32 "Text Filter"=dword:0 "Macrovision"=dword:0 "Overscan ratio"=dword:1 "TV Format"=dword:1 "TV Output"=dword:1 "Composite and S-Video"=dword:1 WCE 4.2: Escape API =================== Some escape IOCTL code are exposed to user application space in order to control non-mode dependent port device attributes, such as Brightness, Contrast, etc, raw I2C read/write, and port enable/disable. The following escape codes are defined for providing these features: INTEL_ESCAPE_ENABLE_PORT - En/Disables Primary Port INTEL_ESCAPE_GET_NUM_PD_ATTRIBUTES - Returns the number of attributes INTEL_ESCAPE_GET_AVAIL_PD_ATTRIBUTES - Returns the available attributes INTEL_ESCAPE_SET_PD_ATTRIBUTES - Sets attributes INTEL_ESCAPE_I2C_CONFIG - Configures I2C access INTEL_ESCAPE_I2C_ACCESS Besides the above, two Microsoft reserved Windows escape codes are also supported in this release. They are SETPOWERMANAGEMENT and GETPOWERMANAGEMENT. However, in the implementation of GETPOWERMANAGEMENT, all power state requests apart from VideoPowerOn will only equate to powering down of the display ports. Included in this release are some sample source codes to demonstrate how to use the above custom escape codes. WCE 4.2: System To Video Stretch Blit ===================================== System to Video Memory stretch blits are not supported on Intel GMCH devices. This feature allows the end user to enable a soft copy of system surfaces to video surfaces in order to conduct an accelerated stretch blit. The advantage of this is that the stretch blit then utilizes the blend engine and hardware filtering can be applied. The filtering options are listed below under "Blend Filtering". A value of 1 for the "SysToVidStretch" enables system to video stretch blits, as described above, while a value of 0, disables this feature and forwards all system to video stretch blits to the emulator provided by the operating system. [HKEY_LOCAL_MACHINE\Drivers\Display\Intel] "SysToVidStretch"=dword:0 WCE 4.2: Blend Filtering ======================== The blend filtering method can be selected via the BlendFilter registry setting. The filter method chosen will be used for all stretch blit operations, including video to video stretch blits, as well as system to video stretch blits. The default filtering method is Nearest. Available Blend Filter options: 0 == Default == Nearest 1 == Binlinear 2 == Anisotropic 3 == 4x4 [HKEY_LOCAL_MACHINE\Drivers\Display\Intel] "BlendFilter"=dword:2 ; Blend filter to use for all stretch blits ; BlendFilter 0 == NEAREST ; BlendFilter 1 == BILINEAR ; BlendFilter 2 == ANISOTROPIC ; BlendFIlter 3 == 4X4 WCE 4.2: Catalogue Feature File =============================== A Catalogue Feature File has been included in this release, igd.cec. In order to add this driver into Platform Builders catalogue feature list, take the following steps (these will be automated in future): 1. Create the following folder WINCE420 PUBLIC root folder: C:\WINCE420\PUBLIC\COMMON\OAK\DRIVERS\DISPLAY\INTELIGD 2. Copy ddi_igd.dll, ddi_igd.rel and video.reg into that folder 3. Install igd.cec file into Platform Builder by: - From the File menu, choose Manage Catalog Features. - Choose Import. - In the Import Catalog Features dialog box, choose the .cec file, and then choose Open. - From the View menu, choose Catalog to display the Catalog. WCE 4.2: Text Anti-Aliasing =========================== This version supports text anti-aliasing. To switch it on add these registry settings: [HKEY_LOCAL_MACHINE\System\GDI\Fontsmoothing] [HKEY_LOCAL_MACHINE\System\GDI] "ForceGRAY16"=dword:1 This will enable anti-aliasing. This needs to be on when using a TV display device. WCE 4.2: Dynamic Loading Port Drivers ===================================== This version supports the ability to load the port drivers dynamically. The "PortDrivers" registry setting will decide which port drivers to be dynamically loaded. The port drivers are loaded in the order specified. These DLLs must exist in the /Windows directory. WCE 4.2: NOTEARING support for smooth blits =========================================== This version supports NOTEARING support for flicker-free images. The "TearFB" registry setting enables or disables the tearing option. Default setting is OFF "0", i.e., tearing enabled. Enabling "TearFB" does incur a performance penalty. End WCE 4.2 *********** ============== Windows CE 5.0 ============== WCE 5.0: System Requirements ============================ Development systems should have the following software installed. Windows XP Professional SP1 Platform Builder for Windows CE 5.0 (latest service packs) The target system should contain a minimum of 64MB of RAM. WCE 5.0: Files =================================== The individual Linux install file (for manual access/configuration) is found under the IEGD install directory in \plugins\com.intel.iegd.drivers.xxx\WCE50 folder (where xxx represents the release version) This package contains the following drivers, files, and documents. Documents\RELNOTES.TXT Release Notes Documents\UsersGuide.pdf IEGD User's Guide License\License.txt License agreement for display driver Driver\DDI_IGD.DLL Display driver binary Driver\DDI_IGD.REL Compilation REL file Driver\video.reg Registry settings for the platform Driver\config.bib Example memory config file Driver\igd_Wince50.cec Catalogue feature file Driver\ch7009.dll Port driver for Chrontel CH7009/CH7301 encoder Driver\ch7009.rel File required for Chrontel CH7009/CH7301 build process Driver\ch7017.dll Port driver for Chrontel CH7017/CH7305 encoder Driver\ch7017.rel File required for Chrontel CH7017/CH7305 build process Driver\fs454.dll Port driver for Focus 453/454 TVOut encoder Driver\fs454.rel File required for Focus 453/454 build process Driver\lvds.dll Port driver for Internal (GMCH) LVDS controller Driver\lvds.rel File required for Internal (GMCH) LVDS build process Driver\tv.dll Port driver for Internal (GMCH) TV controller Driver\tv.rel File required for Internal (GMCH) TV build process Driver\ns2501.dll Port driver for National Semiconductor* 2501 LVDS controller Driver\ns2501.rel File required for National Semiconductor 2501 LVDS build process Driver\ns387.dll Port driver for National 387R LVDS controller Driver\ns387.rel File required for National Semiconductor 387R LVDS build process Driver\ti410.dll Port driver for Texas Instruments* TFP410 encoder Driver\ti410.rel File required for TFP410 encoder build process Driver\th164.dll Port driver for Thine* 164 encoder Driver\th164.rel File required for Thine 164 build process Driver\sii164.dll Port driver for Silicon Image* 164 encoder Driver\sii164.rel File required for Silicon Image 164 build process Driver\sdvo.dll Port driver for SDVO devices Driver\sdvo.rel File required for SDVO encoder build process Driver\softpd.dll Port driver for VCH devices Driver\softpd.rel File required for VCH encoder build process WCE 5.0: Installation ===================== Integration/installation of the driver binaries depends upon the requirements of the target project workspace. If taken directly from this release package, the driver binaries need to be manually integrated into the project workspace on Platform Builder. In your current project workspace, remove the default display device driver. Add a new user feature to the project and browse for the extracted ddi_igd.dll file. When rebuilding your project, Platform Builder will request to select a replacement display device driver to solve dependencies. Select the NULL(Stub) display device driver listed from the menu of choices offered. To install a DVO device port driver, use the platform settings menu and add the desired port driver DLL into the BIB image. The contents of the extracted video.reg file must be copied into the project registry file (project.reg) every time for each new project, or into the platform registry file (platform.reg) if all following projects on your current platform will run on the Intel graphics chipset. WCE 5.0: Mode setting through registry ====================================== The contents of video.reg are the registry entries for this driver and must be present for the driver to work. The current settings in this file are defaults. This version supports setting display configurations through the registry. Refer to the following for details of the configuration options. [HKEY_LOCAL_MACHINE\Drivers\Display\Intel] "Width"=dword:280 (HEX) ;screen width "Height"=dword:1E0 (HEX) ;screen height "Depth"=dword:10 ;screen bit depth (HEX) "Refresh"=dword:3C ;screen refresh rate (HEX) The driver will read these entries at startup and will try to validate it with a list of known good modes. If validation is successful, it will set the mode, otherwise it will default to 640x480x16x60. The following options allow for configuring the video memory location and size to a static location. Modifying these requires strong understanding of the config.bib file. The example config.bib file works with the values being set for these options. If either of below values is zero or they are not defined, then dynamic memory allocation method will be used for video memory usage. Thus availability is dependant on system resources. This is compliant with Intel's Dynamic Video Memory Technology. [HKEY_LOCAL_MACHINE\Drivers\Display\Intel] ;"ReservedMemoryBase"=dword:3200000 ; starting physical address of video memory ;"ReservedMemorySize"=dword:0E00000 ; size of video memory (includes stolen memory) NOTE: The above values and current defaults in the video.reg file are configured to use the last 14 of 64MB of RAM on the system. Please refer to the section below on "Determining graphics memory size" for details on this static video memory configuration. For more advanced possibilities of what modes and configurations are available, please refer below to the section titled ?Display Mode Configuration?. WCE 5.0: Determining graphics memory size ========================================= This version supports the static as well as dynamic location of graphics memory. For static video memory, the two registry settings ReservedMemoryBase and ReservedMemorySize will denote where and how big this area will be. This portion of memory will be taken care off by the built in GART driver. The size should include the stolen memory (BIOS setting, if applicable). If either of these registry settings are zero or not defined in the registry, then dynamic memory allocation will be used for video memory management. The usage will be dependant on system resources. This is in line with Intel's Dynamic Video Memory Technology. For example of static video memory, if the stolen memory is 8 MB and you want a total of extra 56 MB of graphics memory for a total of 64 Mbytes of graphics memory you would want to have these settings: (On a 128MB machine) [HKEY_LOCAL_MACHINE\Drivers\Display\Intel] "ReservedMemoryBase"=dword:4000000 "ReservedMemorySize"=dword:4000000 Which means that the managed graphics memory pool will begin at physical address 0x4000000 (64MB) and is 64MB of size. Always remember to include the amount of stolen memory in this number! The lower 64MB in the above machine will be used for the NK.bin and RAM, so therefore you must change your config.bib accordingly The configuration for the given machine is (debug build): NK 80220000 01650000 RAMIMAGE RAM 81700000 02790000 RAM As you see, the NK.BIN image takes 22.3125 MB and the rest of 41.6875 MB is RAM. The release build should have much smaller NK area. For better control, users may turn AUTOSIZE=OFF to calculate exactly where the image and RAM starts and ends followed by the location of the video memory pool with no possibility of runtime deviation. These two settings, together with the registry settings mentioned above will decide what your machines memory layout will look like. The example config.bib and the memory configuration settings in the video.reg are validated settings that can be used for static video memory of 16MB in size starting from the 48MB address, thus including the stolen memory. WCE 5.0: Framebuffer and video surface size =========================================== 2 more optional registry settings are available to limit the Framebuffer size of the display driver and the total size of offscreen video surfaces. The MaxFbSize registry entry will control the maximum size of the framebuffer only. Actual usage will depend on the mode being used. The PageReqLimit registry entry will control the total size in pages (4K) of all video surfaces, buffers allocated for any use. Both of these registry configurations apply to both the static as well as dynamic video memory management explained in the previous section. The default below indicates that a maximum of 2MB's are used for the framebuffer and a maximum of 16MB's are permitted for all offscreen video surface allocations. "MaxFbSize"=dword:200000 "PageReqLimit"=dword:1000 In the case of Windows CE, because the OS does not allow for dynamically setting the framebuffer size, the MaxFbSize can be changed to match the mode setting being used in order to minimize on video memory wastage. The following are different suggested values for MaxFbSize for different display modes. These values have not been validated. Note that 640X480 is calculated as 640X512 and 800X600 is calculated as 800X768 for stride alignment purposes. 640X512X16 = A0000 640X512X24 = F0000 640X512X32 = 140000 800X768X16 = 12C000 800X768X24 = 1C2000 800X768X32 = 258000 1024X768X16 = 180000 1024X768X24 = 240000 1024X768X32 = 300000 WCE 5.0: Video surface allocation rule ====================================== Another two optional registries entries determine a minimum width and height dimension that would enable successful video surface allocations. In Windows CE GDI, video surface allocations can happen with a REQUIRE_VIDEO_MEMORY or a PREFER_VIDEO_MEMORY flag. The following options will force surface allocations with the PREFER_VIDEO_MEMORY flag to be allocated in system memory if the width and height are lower then what is stated in the following entries. "MinVidSurfX"=dword:10 "MinVidSurfY"=dword:10 In this example, surfaces allocated with the PREFER_VIDEO_MEMORY where the width and height are both less than 16 pixels are forced to be in system memory. WCE 5.0: Driver General Configuration Selection =============================================== The Intel Embedded Graphics Driver allows the system integrator to provide multiple instances of per-port platform customizations. There can be up to 16 instances of configurations and a single variable called "ConfigId" will ensure the display driver selects the right instance. Each instance may contain multiple groups of per-config and per-config+per-port platform customizations. "ConfigId"=dword:1 ; 1 = default WCE 5.0: Display Mode Configuration =================================== The "DisplayConfig" registry setting (see below), will let you decide whether you want to configure the display configuration to be in Single, Twin, Clone or VEXT. (Windows CE. NET 4.2 does not support Extended mode like Windows XP). DisplayConfig is a per configuration setting, so note the registry path that the Config number must match what's chosen in ConfigId above. [HKEY_LOCAL_MACHINE\Drivers\Display\Intel\Config\1\General] "DisplayConfig"=dword:1 ; DigitalPort 1 == SINGLE ; DigitalPort 4 == TWIN ; DigitalPort 2 == CLONE ; DigitalPort 5 == VEXT ; (Vertical Extended) The Intel 845 chipset does not support Clone mode. "DisplayConfig" does not however dictate what type of display ports will be used. The setting of "PortOrder" keys ensure the correct display port types are used based on user selection. ΤAgain, these are per-configuration settings. The 845 chipset does not support Clone/VEXT mode. Vertical Extended is like "Extended Desktop" on Windows XP BUT the desktop is not extended horizontally across from left to right but extended vertically across from top to bottom. Overlay will not work in vertical extended mode. In VEXT mode, the "Height" settings of the display resolution must be doubled of what each port height will be. Also, both ports must share the same timings. "PortOrder"="54320" PortOrder specifies the actual port that will be used for the primary and secondary ports. IF specified port is unavailable (port driver failed or display detection failed or port is not available on current chipset), then the next port in the above order will be used. PortOrder must be set, based on chipset specifications, for driver to work properly: WCE 5.0: On Intel 915 Express and later chipsets: ==================================== 1 - Integrated TV Encoder (not supported for now) 2 - DVO B port 3 - DVO C port 4 - Internal LVDS port 5 - Analog port WCE 5.0: On Intel830/835/845/85x/865 chipsets: ========================================== 1 - DVO A port 2 - DVO B port 3 - DVO C port 4 - Internal LVDS port 5 - Analog port There is also an option to detect the displays before the actual initialization of the display ports to happen. However, this option must be used carefully, displays without EDID tend NOT to be detected. "DisplayDetect"=dword:0 Set DispayDetect to '1' to detect display ports (panel/tv/etc...). BEWARE, setting °·this to '1' will mean display for the requested port wont be enabled if detection failed. Use this option wisely. WCE 5.0: Per Port Platform Customization ======================================== The Intel Embedded Graphics Driver provides what's considered the most useful tools to the embedded market. Per port platform customizations. This includes the following: - Defining custom DTD panel timings : PixelClock, HorzActive, HorzSync etc... - Customized GPIO pin selection for I2C and DDC communication with DVO encoders and panels. : I2cPin, I2cDab, I2cSpeed etc... - Flat Panel width and height limitations and power and/or backlight control mechanisms : BkltMethod, BkltT1, BkltT2, GpioPinVdd etc... - Port driver specific attribute settings for initialization at boot time. : Brightness, Contrast, H-Position etc... All of the above can be set for each individual port depending on the maximum number of ports the chipset supports. Also, all of these configurations can be multiply instanced for per-configuration selection. The usage model for these per-config, per-port platform customizations reflect the same options available in Windows XP inf registry settings. Refer to the IEGD User's Manual or to the provided registry sample file in the IEGD Windows CE driver package for examples. The following sections provide some understanding on these configurations. WCE 5.0: Per Port Customization - Custom DTD Mode Timings ========================================================= For each configuration, each port can be added with up to 255 customized DTD modes. The following is an example of adding 800X640 mode to the LVDS port when "Config=1" is used. However, the DTD timings should be preceded with the following keys: - Edid - (1=Read EDID from port, 0=Dont Read EDID) - UseStdTimings - (whether to add the DTD timings to the internal mode tables or to discard internal modes and replace them with DTD provided modes.) ;[HKEY_LOCAL_MACHINE\Drivers\Display\Intel\Config\1\Port\2\General] ; "Edid"=dword:0 ; "UseStdTimings"=dword:1 ;[HKEY_LOCAL_MACHINE\Drivers\Display\Intel\Config\1\Port\4\DTD\1] ; "PixelClock"=dword:9c40 ; "HorzActive"=dword:320 ; "HorzSync"=dword:28 ; "HorzSyncPulse"=dword:80 ; "HorzBorder"=dword:0 ; "HorzBlank"=dword:100 ; "HorzSize"=dword:0 ; "VertActive"=dword:280 ; "VertSync"=dword:1 ; "VertSyncPulse"=dword:4 ; "VertBorder"=dword:0 ; "VertBlank"=dword:1c ; "VertSize"=dword:0 ; "Flags"=dword:1e * Note for Per-Config, Per-Port configuration, the subkey path includes the correct "Config" and "Port" numbers WCE 5.0: Per Port Customization - Custom DVO GPIO Pin Settings ============================================================== For each configuration, each ports' GPIO pin pair settings can be configured in terms of which physical pins, what I2C slave address the DVO encoder on that port responds to and what speeds to use. ;[HKEY_LOCAL_MACHINE\Drivers\Display\Intel\Config\1\Port\2\DVO] ; "I2cPin"=dword:2 ; "I2cDab"=dword:70 ; "I2cSpeed"=dword:0 ; "DdcPin"=dword:0 ; "DdcSpeed"=dword:0 * Note for Per-Config, Per-Port configuration, the subkey path includes the correct "Config" and "Port" numbers WCE 5.0: Per Port Customization - Custom Flat Panel Controls ============================================================ Similarly, the flat panel native resolution and power and backlight sequencing controls can also be configured here. ;[HKEY_LOCAL_MACHINE\Drivers\Display\Intel\Config\1\Port\4\FPInfo] ; "Width"=dword:320 ; "Height"=dword:280 ; "BkltMethod"=dword:0 ; "BkltT1"=dword:0 ; "BkltT2"=dword:0 ; "BkltT3"=dword:0 ; "BkltT4"=dword:0 ; "BkltT5"=dword:0 ; "GpioPinVdd"=dword:0 ; "GpioPinVee"=dword:0 ; "GpioPinBklt"=dword:0 ; "BkltEnable"=dword:0 ; "UseGMCHClockPin"=dword:0 ; "UseGMCHDataPin"=dword:0 * Note for Per-Config, Per-Port configuration, the subkey path includes the correct "Config" and "Port" numbers WCE 5.0: Per Port Customization - Attribute Initialization ========================================================== Attributes are also per config and per port. However, the actual keys are dependant on the port driver being used. Below are examples of registry keys associated with initializing attributes for the Conexant Port Driver specific. Attribute Ranges for the Conexant Port Driver: Brightness 0-100 Contrast 0-7 Flicker Filter 0-4 Saturation 0-7 Hue 0-100 Text Filter 0-3 Macrovision* boolean Overscan ratio 1-4 (Low, Std, High, None) TV Format 1, 17, 33 (NTSC-M, NTSC-M-J, NTSC-4.33) TV Output 1-4 (Comp & Svid, Comp, Svid, Comp) * Note for Per-Config, Per-Port configuration, the subkey path includes the correct "Config" and "Port" numbers [HKEY_LOCAL_MACHINE\Drivers\Display\Intel\Config\1\Port\2\Attr] "Brightness"=dword:32 "Contrast"=dword:4 "Flicker Filter"=dword:1 "Saturation"=dword:4 "Hue"=dword:32 "Text Filter"=dword:0 "Macrovision"=dword:0 "Overscan ratio"=dword:1 "TV Format"=dword:1 "TV Output"=dword:1 "Composite and S-Video"=dword:1 WCE 5.0: Escape API =================== Some escape IOCTL code are exposed to user application space in order to control non-mode-dependent port device attributes, such as Brightness, Contrast, etc, raw I2C read/write, and port enable/disable. The following escape codes are defined for providing these features: INTEL_ESCAPE_ENABLE_PORT - En/Disables Primary Port INTEL_ESCAPE_GET_NUM_PD_ATTRIBUTES - Returns the number of attributes INTEL_ESCAPE_GET_AVAIL_PD_ATTRIBUTES - Returns the available attributes INTEL_ESCAPE_SET_PD_ATTRIBUTES - Sets attributes INTEL_ESCAPE_I2C_CONFIG - Configures I2C access INTEL_ESCAPE_I2C_ACCESS In addition to the above, two Microsoft reserved Windows escape codes are also supported in this release. They are SETPOWERMANAGEMENT and GETPOWERMANAGEMENT. However, in the implementation of GETPOWERMANAGEMENT, all power state requests apart from VideoPowerOn will only equate to powering down of the display ports. Included in this release are some sample source codes to demonstrate how to use the above custom escape codes. WCE 5.0: System To Video Stretch Blit ===================================== System to Video Memory stretch blits are not supported on Intel GMCH devices. This feature allows the end user to enable a soft copy of system surfaces to video surfaces in order to conduct an accelerated stretch blit. The advantage of this is that the stretch blit then utilizes the blend engine and hardware filtering can be applied. The filtering options are listed below under "Blend Filtering". A value of 1 for the "SysToVidStretch" enables system to video stretch blits, as described above, while a value of 0 disables this feature and forwards all system to video stretch blits to the emulator provided by the operating system. [HKEY_LOCAL_MACHINE\Drivers\Display\Intel] "SysToVidStretch"=dword:0 WCE 5.0: Blend Filtering ======================== The blend filtering method can be selected via the BlendFilter registry setting. The filter method chosen will be used for all stretch blit operations, including video to video stretch blits, as well as system to video stretch blits. The default filtering method is Nearest. Available Blend Filter options: 0 == Default == Nearest 1 == Binlinear 2 == Anisotropic 3 == 4x4 [HKEY_LOCAL_MACHINE\Drivers\Display\Intel] "BlendFilter"=dword:2 ; Blend filter to use for all stretch blits ; BlendFilter 0 == NEAREST ; BlendFilter 1 == BILINEAR ; BlendFilter 2 == ANISOTROPIC ; BlendFIlter 3 == 4X4 WCE 5.0: Catalogue Feature File =============================== A Catalogue Feature File has been included in this release, igd.cec. In order to add this driver into the Platform Builder?s catalogue feature list, complete the following steps (these will be automated in future): 1. Create the following folder WINCE420 PUBLIC root folder: C:\WINCE420\PUBLIC\COMMON\OAK\DRIVERS\DISPLAY\INTELIGD 2. Copy ddi_igd.dll, ddi_igd.rel and video.reg into that folder 3. Install igd.cec file into Platform Builder by: - From the File menu, choose Manage Catalog Features. - Choose Import. - In the Import Catalog Features dialog box, choose the .cec file, and then choose Open. - From the View menu, choose Catalog to display the Catalog. WCE 5.0: Text Anti-Aliasing =========================== This version supports text anti-aliasing. To switch it on, add these registry settings: [HKEY_LOCAL_MACHINE\System\GDI\Fontsmoothing] [HKEY_LOCAL_MACHINE\System\GDI] "ForceGRAY16"=dword:1 This will enable anti-aliasing. This needs to be on when using a TV display device. WCE 5.0: Dynamic Loading Port Drivers ===================================== This version supports the ability to load the port drivers dynamically. The "PortDrivers" registry setting will decide which port drivers to be dynamically loaded. The port drivers are loaded in the order specified. These DLLs must exist in the /Windows directory. WCE 5.0: NOTEARING support for smooth blits =========================================== This version supports NOTEARING to provide a flicker-free image. The "TearFB" registry setting enables or disables the tearing option. Default setting is OFF "0", i.e., tearing enabled. Enabling "TearFB" does incur a performance penalty. WCE 5.0: Functions Supported ============================ 1. Mode setting 2. Hardware cursor 3. GDI Line Acceleration 4. Mode setting thru registry 5. 8, 16, and 32 bit color modes 6. All supported modes available 7. GDI blitting acceleration (colorfill, stretched, source) 8. DirectDraw support (overlay, blitting, flipping, etc) 9. Text AA 10. DVO port support 11. ACSFL support 12. Attribute control 13. Twin, Clone and Vertical Extended modes 14. Optional sys-to-video stretch blit 15. Blend filter options 16. Dynamic Video Memory Technology 17. Minimum dimension video surface allocation rule 18. NOTEARING support added 19. Per port Custom DTD support. 20. Per port GPIO I2C configuration. 21. Per port FP Native Resolution, Power & Backlight controls. 22. Per port Attribute initialization via registry End WCE 5.0 *********** Software Errata =============== This release also contains fixes for errata. For details on the errata, including status information, refer to the Errata document located at the following Web address: www.intel.com/design/intarch/specupdt/309380.htm Software Licenses ================= The Intel Embedded Graphics Drivers are subject to the terms of the license agreement located in the license file in this distribution package. Please read, understand, and agree to the terms before using the IEGD drivers or the IEGD Configuration Editor. Legal / Disclaimers =================== INFORMATION IN THIS DOCUMENT IS PROVIDED IN CONNECTION WITH INTEL(R) PRODUCTS. NO LICENSE, EXPRESS OR IMPLIED, BY ESTOPPEL OR OTHERWISE, TO ANY INTELLECTUAL PROPERTY RIGHTS IS GRANTED BY THIS DOCUMENT. EXCEPT AS PROVIDED IN INTEL'S TERMS AND CONDITIONS OF SALE FOR SUCH PRODUCTS, INTEL ASSUMES NO LIABILITY WHATSOEVER, AND INTEL DISCLAIMS ANY EXPRESS OR IMPLIED WARRANTY, RELATING TO SALE AND/OR USE OF INTEL PRODUCTS INCLUDING LIABILITY OR WARRANTIES RELATING TO FITNESS FOR A PARTICULAR PURPOSE, MERCHANTABILITY, OR INFRINGEMENT OF ANY PATENT, COPYRIGHT OR OTHER INTELLECTUAL PROPERTY RIGHT. Intel products are not intended for use in medical, life saving, life sustaining, critical control or safety systems, or in nuclear facility applications. Intel may make changes to specifications and product descriptions at any time, without notice. (C) Intel Corporation 2006 * Other names and brands may be claimed as the property of others. ================================================================================