Skip to main content

Display Driver Registry Settings

Registry Locations

The Display Driver Settings are located in registry file under the key name mentioned below:

Colibri ModuleWindows CE Image VersionRegistry Location
Colibri PXAxxxbefore V3.0[HKLM\Drivers\Display\PXA27x\Config]
Colibri PXAxxxV3.0 and newer[HKLM\Drivers\Display\Colibri]
Colibri VFxx(all)[HKLM\Drivers\Display\Colibri]
Colibri Txx(all)[HKLM\Software\Nvidia Corporation\NVDDI\LCD]
Colibri iMX6(all)[HKLM\Drivers\Display\Colibri]
Apalis T30(all)[HKLM\Software\Nvidia Corporation\NVDDI\LCD]
Apalis iMX6(all)[HKLM\Drivers\Display\Apalis]
Colibri iMX7(all)[HKLM\Drivers\Display\Colibri]

For PXA and Tegra-based modules, you can use the Colibri Tweak Tool to adjust most of these settings.

For Vybrid, i.MX6 and i.MX7 and Tegra based modules, you can use the Display Tool to adjust most of these settings.

Registry Settings

T20/T30 GPIOs

Whenever a GPIO for the Tegra based modules is used, a special conversion from GPIO name to GPIO number needs to be used:
GPIO A0 0, ... GPIO A7 7
GPIO B0 8, ... GPIO B7 15
GPIO C0 16, ... GPIO C7 23
...

VFXX GPIOs/Pins

On Vybrid-based modules, the BL_GPIO and DISP_GPIO settings use GPIO numbers. If you want to use SO-DIMM pin numbers you can use then BL_PIN and DISP_PIN settings, but those will work only if the corresponding *_GPIO parameter is not set.

IMX6 and IMX7 Pins

On those platforms GPIO numbers are not used, the BL_GPIO and DISP_GPIO settings actually use PIN number (SO-DIMM number for IMX7 and Colibri-IMX6 and MXM3 number for Apalis IMX6). This will make display configuration more compatible across different modules and families.

Settings for all Colibri and Apalis Modules

The table below lists all available registry settings for the display driver.

For the Tegra modules, timings only affect the LCD output. For the other outputs, EDID data is read from the screen, and the most appropriate VESA timings are used.

Registry KeyDescriptionValid SettingsDefault ValueNote
CxScreenHorizontal Screen ResolutionPXA: 1-1024
Tegra: 1-2048
VFxx: 16-1024
iMX6: 16-4096
640
CyScreenVertical Screen ResolutionPXA: 1-1024
Tegra: 1-2048
VFxx: 4-768
iMX6: 16-2048
480
BppFrame Buffer Color Depth16, 32
VFxx,iMX6: 16, 32
Txx: use MainPanelBpp
16
VFxx, iMX6: 32
q w
LDDSNumber of LCD Data Lines used4, 8, 16, 18, 24
VFxx: 15,16,18,24
iMX6: 16,18,24
PCLKPixel clock in HzPXA: 203'000 - 52'000'000
Tegra: 203'000-168'000'000
VFxx:203'000 - 60'000'000
iMX6: 203'000 - 170'000'000u
25'000'000
PCPPixel Clock Polarity0: Data valid on Rising Edge
1: Data valid on Falling Edge
1
OEPOutput Enable Polarityv1: ActiveLow
0: ActiveHigh
0
HSWHorizontal Sync Width in PixelsPXA: 1-64
Tegra: 0-8191
i.MX6: 0-1024
2
BLWBegin of Line Width (Back Porch) in PixelsPXA: 1-256
Tegra: -4096-4095
VFxx: 1-256
iMX6: 0-1024
160
ELWEnd of Line Width (Front Porch) in PixelsPXA: 1-256
Tegra: 0-8191
VFxx: 1-256
iMX6: 0-1024
2
HSPHorizontal Sync Polarity0: Active High
1: Active Low
0
VSWVertical Sync Width in LinesPXA: 1-64
Tegra: 0-8191
VFxx, iMX6: 1-256
45
iMX6: 2
BFWBegin of Frame Width (Back Porch) in LinesPXA: 0-255
Tegra: -4096-4095
VFxx: 1-256
iMX6: 0-1024
0
EFWEnd of Frame Width (Front Porch) in LinesPXA: 0-255
Tegra: 0-8191
VFxx: 1-256
iMX6: 0-1024
0
VSPVertical Sync Polarity0: Active High
1: Active Low
0
BL_GPIOGPIO/Pinx used to Turn On/Off BacklightAny free GPIO/Pin, or -1 for None(SODIMM 71)i
BL_POLPolarity for Backlight GPIO0: ActiveLow
1: ActiveHigh
1
DISP_GPIOGPIO/Pinx used to Turn On/Off Display PowerAny free GPIO/Pin, or -1 for None(SODIMM 71)i
DISP_POLPolarity for Display Power GPIO0: Active Low
1: Active High
1
DispOnDelayDisplay Enable (DISP_GPIO) on delay in ms compared to the LCD data signalsVFxx,iMX6,iMX7 : not supported0b
LCDBSDisplay signal buffer strength. This value could be changed to reduce EMC problems.PXA270: 0-15
PXA3xx: 0-7
VFxx 0-7
Txx: See Note p
iMX6: 0-7
PXA, iMX6 and VFxx: 5
Txx: 0xF1612030
p


Settings for Colibri PXAxxx Modules Only

Registry KeyDescriptionValid SettingsDefault ValueNote
VerbosityBitmask to show additional display driver infos on the debug port.1: Errors
2: Warnings
4: Initialize
8: Allocation
0g
TypeDisplay Type0: Passive
1: Active
-1: LCD unit disabled
1
Colorcolor or Monochrome Selection0: Monochrome
1: Color
1
DualDual or Single Panel Selection0: Single
1: Dual
0
PCLKStallStops the Pixel Clock if a LCD underrun occurs. This can help if your display is connected over TTL0d
VideoRAMSizeoverrides the default value for the video ram. (In bytes)h
UseSRAMReserved internal SRAM for display driver.0: SRAM not used for display driver
1: maximum available SRAM is used
>1: reserved size in bytes
0c g
BlitBlit Hardware Support0: use emulation
1: XScale optimized
2: use 2D acceleration if possible
2
CursorMouse Cursor Mode2: Hardware cursor
1: Software Cursor
0: hide the mouse cursor
2
EdidSlaveAddr7-bit i2c address where the EDID EEPROM containing display timing information is located.0x00-0x7fe f
DispOffDelayDisplay Enable (DISP_GPIO) off delay in ms compared to the LCD data signals0b


Settings for Colibri Txx and Apalis Txx Modules Only

The following registry entries are located at:
[HKLM\Software\Nvidia Corporation\NVDDI]

Registry KeyDescriptionValid SettingsDefault ValueNote
Enable2DEnable hardware 2D acceleration in display driver0: Off
1: On
1
HwCursorMouse Cursor1: Mouse cursor ON
0: Mouse cursor OFF
1
MainPanelBppFrame Buffer Color Depth16, 3216
DesktopWidthFramebuffer Width1-2048640j
DesktopHeightFramebuffer Height1-2048480j
DesktopScaleModeBehavior if Desktop does not match Screen1: Scale, preserve aspect ratio
2: Center the desktop
3: Scale
1
HDMIHotplugBehaviorBehavior of the HotPlug pin1: Connect HDMI on HotPlug interrupt
2: Do not connect HDMI, but update list of available display modes
1
BootupStyleActive Display at startup (bit mask)Active Display
- 0x00001: LCD
- 0x00006: TvOut (NTSC)
- 0x0000a: TvOut (PAL)
- 0x00010: HDMI
- 0x00020: CRT
Additional Flags
- 0x20000: Cinema Mode
- 0x30000: Cinema and Mirror Mode
Colibri: LCD
Apalis: LCD and CRT
since 1.3beta3
k m
HotPlugStyleActive Display while HotPlug pin is active (bit mask)Active Display
- 0x00001: LCD
- 0x00006: TvOut (NTSC)
- 0x0000a: TvOut (PAL)
- 0x00010: HDMI
- 0x00020: CRT
Additional Flags
- 0x20000: Cinema Mode
- 0x30000: Cinema and Mirror Mode
Colibri: LCD and HDMI
Apalis: CRT and HDMI
since 1.3
k m
FilterScaledDesktopsFilter, if display resolution is not equal to desktop resolution0: do not filter
1: activate filter
0
ColorSizeNative display color depth1: 111
2: 222
3: 333
4: 444
5: 555
6: 565
7: 666
8: 332
9: 888
7n
UseSplashSettingsIgnores additional registry parameters and uses the configuration used for the splash screen.0/11ysince 2.2b4

The following registry entries are located at:
[HKLM\Software\Nvidia Corporation\NVDDI\LCD]

Registry KeyDescriptionValid SettingsDefault ValueNote
forcePLLDForce the PLLD to be used as source clk. Use this if you need a more accurate pixel clock. Otherwise the best fitting clock source is chosen by the driver.0: set by driver
1: force PLLD
0since 1.4beta1
LvdsEnableEnable or disable LVDS converter0: Disabled
1: Enabled
0since 2.0beta3, Apalis T30 only.
LvdsModeSingle or dual channel LVDS mode0: Dual channel
1: Single channel
0since 2.0beta3, Apalis T30 only.
LvdsBitMode18 bit (6 bit per colour) or 24 bit (8 bit per colour) mode0: 24 bit
1: 18 bit
0since 2.0beta3, Apalis T30 only.
LvdsMap24 bit / 18 bit compatible (JEIDA) or Common 24 bit colour mode (VESA)0: VESA
1: JEIDA
0since 2.0beta3, Apalis T30 only.
LvdsRSLVDS swing mode: standard LVDS value or reduced swing reduces EMI and power consumption, suitable for short cables0: reduced
1: standard
0since 2.0beta3, Apalis T30 only.

Settings for Colibri VFxx Modules Only

Registry KeyDescriptionValid SettingsDefault ValueNote
UseSplashSettingsIgnores additional registry parameters and uses the configuration used for the splash screen.0/11
VideoRamSizeConfigures the amount of bytes used for display frame buffer, overlays and back buffers0-32MB0x800000-0xC00000
(8-12MB depending on the display resolution)
r
ActivateDisplayEventIf present, this key forces the display to show splash screen until the specified named OS event is set.SYSTEM/ShellAPIReadys
FirstRefreshDelayDelay (in milliseconds) between the driver loading and display initialization,
this may prevent "black screen" between splash screen and desktop/application
0-n10000t
CursorMouse Cursor Mode1: Mouse cursor ON
0: Mouse cursor OFF
2
DISP_PINPIN used to Turn On/Off Display PowerAny free SODIMMif DISP_GPIO is not defined then DISP_PIN is checked
BL_PINPIN used to Turn On/Off Display backlightAny free SODIMMif BL_GPIO is not defined then BL_PIN is checked

Settings for i.MX6 Modules Only

Registry KeyDescriptionValid SettingsDefault ValueNote
UseSplashSettingsIgnores additional registry parameters and uses the configuration used for the splash screen.0/11
OutOutput port, all values are valid on Apalis, on Colibri only 0 and 5 are supported.
0 - VGA on Apalis / Parallel LCD on Colibri
1 - Parallel LCD
2 - LVDS Channel 0
3 - LVDS Channel 1
4 - LVDS dual channel
5 - HDMI/DVI
0-50
CxScreenPhysicalDefines the display physical horizontal resolution0-2047CxScreen must be lower or equal and image will be centered on the screen
CyScreenPhysicalDefines the display physical vertical resolution0-2047CyScreen must be lower or equal and image will be centered on the screen
VideoMemSizeConfigures the amount of bytes used for video memory0-128MB0x800000-0x2000000
(8MB on Colibri-32MB on Apalis)
EdidSlaveAddr7-bit i2c address where the EDID EEPROM containing display timing information is located.0x00-0x7fDefault value 0x50
UseStandardModeMode number of a standard CEA mode that should be used for the display (check iMX6 reference manual for a list of supported CEA modes).0x00-0x7f
DetectModeDefines how the driver behaves when EDID is enabled0-20: Use a mode that matches the configured display resolution
1: Use the standard CEA mode that is closer to the desired resolution and supported by the display
2: Use EDID preferred mode (usually maximum display resolution)
CursorMouse Cursor Mode1: Cursor is visible
0: hide the mouse cursor
UseJeidaMappingUses JEIDA standard mapping for LVDS signals (1=JEIDA).0/10
DisableSyncsBitmask of signals that should be disabled (1=HSYNC,2=VSYNC,4=OE/DE; E.g. Disable HSYNC & VSYNC = 3)0/50
Support for multiple displays

To support an additional display you can create a subkey under the display configuration key. This key is used to specify the additional screen's parameters, using the same entries described above for the main screen. Key can be named "Clone" to have a second display that reproduces the same image of the main one (the image will be centered if the resolution is higher than the main display) or "Secondary" if the display will be independent. It's possible to specify a different pixel clock, polarities, and timings for the additional display. Please consider that some hardware limitations may prevent you from using some pixel clock frequencies combination because none of the additional PLLs used for video may match the range of the clocks.
Make sure that you configure the identical bpp value (16 or 32) for all displays.

To use clone mode: Add the following registry key/value:


[HKLM\Drivers\Display\Colibri\Clone] ;(you need to use Apalis instead of Colibri as the key name on Apalis module)
"Out" = dword:5


To enable extended display: Add the following registry values:


[HKLM\Drivers\Display\Colibri\Secondary] ;(you need to use Apalis instead of Colibri as key name on apalis modules)
"Out"=dword:5

Starting from release 1.2 of the BSP and image the display driver supports multiple displays. If you configured a secondary display (not a clone) you can change


[HKLM\SYSTEM\GDI\Monitors]
"Total Monitors"=dword:2 ; Please note the space character in "Total Monitors" !

After a reboot, Windows CE will use both displays and allows you to move an application from one display to the other. Displays will be aligned side by side, with the main one (configured directly under display) at coordinates 0,0 and the additional one on its right.
Please download the sample registry file.

Solve issues for applications that directly access video memory

Applications that bypass the blitting calls by accessing video memory directly may show some artifacts on screen because this memory is accessed through cache. To prevent this from happening you need to add the following registry entries:


[HKLM\Drivers\Display\Colibri] ;(you need to use Apalis instead of Colibri as the key name on Apalis modules)
"MemoryAttr"=dword:0
"UncachedSurfaces"=dword:1
[HKLM\Drivers\Builtin\IPU1_BASE]
"CacheMode"=dword:2

Settings for i.MX7 Modules Only

Registry KeyDescriptionValid SettingsDefault ValueNote
UseSplashSettingsIgnores additional registry parameters and uses the configuration used for the splash screen.0/11
VideoMemSizeConfigures the amount of bytes used for video memory0-128MB0x800000
(8MB)

Display Timings

The following picture shows the naming convention for display timings in the registry settings.

Front: Beginning of line/frame and is also known as Back Porch in many display datasheets.
Back: End of line/frame and is also known as Front Porch in many display datasheets.



  1. For Txx modules enter the register value of the LCDCFG2 pad control register. More information about this setting can be found in the Technical Reference Manual - Tegra2, Tegra3. To minimize the drive strength try to set lcdbs to 0xF0000000
  2. In PXA Images later than V3.3 negative values allowed. Negative values are not supported in the Bootloader      In Tegra Images supported since V1.3, no negative values allowed
  3. If BL_GPIO and DISP_GPIO are set to the same value, the Display Driver stops the LCD controller when turning off the backlight The default values for BL_GPIO and DISP_GPIO depend on the Colibri module; the default is the GPIO which is routed to SODIMM 71
  4. Some platforms (T20-T20/VFxx) use GPIO number, others (IMX6, IMX7) use connector pin number
  5. Output Enable polarity can't be changed on Vybrid, it's always positive
  6. Actual maximum value may vary depending on memory bandwidth and other factors, please check the processor reference manual for more detailed specifications
  7. Currently maximum display resolution supported on Vybrid VF50 is 1024x768@16BPP (XGA), 32BPP not possible at this resolution
  8. For any dual display configuration on the iMX6 (clone / extended), the bpp value must be identical for all displays
  9. Any value outside this range disables the EDID feature
  10. Available in Image V3.7beta1 and later
  11. PXA320 only
  12. Available in Image V3.4beta2 and later
  13. For more information about using VideoRAMSize (overriding the video RAM size) see VideoRAM
  14. Available in Image V3.6 beta 1 and later
  15. If Splashscreen and Desktop resolution match this settings defaults to 1, if they don't match it defaults to 0
  16. This parameter is located in [HKLM\Software\Nvidia Corporation\NVDDI\LCD]. The display controller uses dithering to emulate the color depth given in the Bpp parameter
  17. Do a logical OR of 1 or 2 displays. For dual display, optionally add the cinema or mirror bits. The default is mirror mode, i.e. both screen show the same content. In cinema mode, videos are shown on the 2nd display.
    For example 0x20011: LCD and HDMI (Cinema) - The desktop is shown on the LCD output, videos are shown on the HDMI output
  18. Not all combinations are tested
  19. To avoid stretching, we recommend to set the framebuffer resolution identical to the screen resolution
  20. If the ActivateDisplayEvent is used, this value is the timeout used to wait on the event
  21. See Splash Screen for a usage sample
  22. This parameter is considered only if the "UseSplashSettings" parameter is set to 0. The default value is 4 or 8MB, depending on resolution and bit depth


Send Feedback!