Display Driver Release Notes
Version 2.6a
WindowsCE v3.0
January 24, 2001

-----------------------------------------------------------------------------
PRODUCT INFORMATION
-----------------------------------------------------------------------------
This is the National Semiconductor WindowsCE Display Driver Version 2.6a 
It supports Microsoft WindowsCE for x86 CPU's, version 3.0.

Features 
-------- 
1. Display modes supported
	 - 640x480 @ 60, 72, 75, 85Hz , 8 and 16 Bpp
	 - 800x600 @ 60, 72, 75, 85Hz , 8 and 16 Bpp
	 - 1024x768 @ 60, 70, 75, 85Hz , 8 and 16 Bpp
	 - 1280x1024 @ 60, 70, 75, 85Hz, 8 Bpp
	 - 1280x1024 @ 60, 70, 75, 85Hz, 16 Bpp	supported only in Pyramid
2. Display Compression Enabled
3. DDC support (Not avilable on SCx200 based platforms)
4. TFT support
5. DSTN Support
	 - 9210 on Draco
	 - 9211 Rev. A1 on Centaurus
	 - 9211 Rev. C3 on Dorado
6. With or Without DirectDraw support in WinCE v3.0
7. Overlay support
8. AplhaBlend support only in SC1200.

-----------------------------------------------------------------------------
INSTALLATION INSTRUCTIONS
-----------------------------------------------------------------------------
Instalation steps for adding the GxVideo Display Driver to a Windows CE 
developent platform.

1. Copy the GxVideo Source Directory to the following directory
   $(_WINCEROOT)\Platform\<Platform Name>\Drivers\Display

2. Edit the 
   $(_WINCEROOT)\Platform\<Platform Name>\Drivers\Display\Dirs 
   file to add the driver directory.
   Typicaly the file looks like this in $(_WINCEROOT)\Platform\CEPC
	  DIRS= \
		S3trio64 \
		S3ViRGE  \
		vga8bpp  \
		ct6555x  \

	  OPTIONAL_DIRS= \
   Modify it as follows
	  DIRS= \
		GxVideo \
	 OPTIONAL_DIRS= \

3. Edit  
   $(_WINCEROOT)\Platform\<Platform Name>\Files\platform.bib 
   to add the GxVideo driver dll.

IF CEPC_DDI_GX
   ddi.dll         $(_FLATRELEASEDIR)\ddi_gx.dll              NK  SH
ENDIF

   Typicaly $(_WINCEROOT)\Platform\CEPC\Files\platform.bib 
   file has the following lines

;
; MGDI Display driver
; The default display driver is the S3Trio64 display
; To use the 8BPP generic VGA set the environment variable
; CEPC_DDI_VGA8BPP to 1.  To use the CT driver, set
; CEPC_DDI_CT655X to 1. To use the accelerated S3ViRGE driver
; set CEPC_DDI_S3VIRGE to 1.

IF ODO_NODISPLAY !
	IF CEPC_DDI_VGA8BPP
	   ddi.dll   $(_FLATRELEASEDIR)\ddi_vga8.dll   NK  SH
	ENDIF
	IF CEPC_DDI_CT655X
	   ddi.dll   $(_FLATRELEASEDIR)\ddi_ct.dll     NK  SH
	ENDIF
	IF CEPC_DDI_S3VIRGE
	   ddi.dll   $(_FLATRELEASEDIR)\ddi_s3v.dll    NK  SH
	ENDIF
	IF CEPC_DDI_GX
	   ddi.dll         $(_FLATRELEASEDIR)\ddi_gx.dll       NK  SH
	ENDIF

	IF CEPC_DDI_GX !
	    IF CEPC_DDI_S3VIRGE !
		IF CEPC_DDI_CT655X !
		    IF CEPC_DDI_VGA8BPP !
			 ddi.dll $(_FLATRELEASEDIR)\ddi_s364.dll   NK  SH
		    ENDIF
		ENDIF 
	    ENDIF 
	ENDIF
ENDIF

4. Edit  
   $(_WINCEROOT)\Platform\<Platform Name>\Files\platform.reg
   By default the following lines are not present in this file 
   when shipped by Microsoft. The following lines need to be 
   added  in which case. Preferably add to the end of the file.
   Make sure if using 16bit depth frame buffer add "-DFB16BPP" 
   to the CDEFINES variable in Sources file.

   For more information on the registry setting see the "Registry Setting" 
   section later in this document.

IF CEPC_DDI_GX
;1280x1024x8 is supoorted by all CPU's.
;Only Pyramid can support 1280x1024x16. 
;On Non-Pyramid when specified 1280x1024x16 driver defaults to 640x480x16.
[HKEY_LOCAL_MACHINE\Hardware\Microsoft\WBT]
   "Resolutions"=multi_sz:"640 480 60",
		"640 480 72",
		"640 480 75",
		"640 480 85",
		"800 600 60",
		"800 600 72",
		"800 600 75",
		"800 600 85",
		"1024 768 60",
		"1024 768 70",
		"1024 768 75",
		"1024 768 85",
		"1280 1024 60",
		"1280 1024 75",
		"1280 1024 85"

[HKEY_LOCAL_MACHINE\Software\Microsoft\WBT]
   "Resolution"="640 480 60"
   "EnableDDC"=dword:0
;   "EnableDDC"=dword:1
;   "FrameBufferDepth"=dword:8
   "FrameBufferDepth"=dword:10
;   "EnableCompression"=dword:0
   "EnableCompression"=dword:1
   "PanelEnabled"=dword:0
;   "PanelEnabled"=dword:1
   "panelResX"=dword:320    ;800
   "panelResY"=dword:258    ;600			
   "panelType"=dword:0	    ;0 = TFT, 1=SSTN, 2=DSTN
   "panelDepth"=dword:12    ;EITHER 8,0C,10, 12, 18 PANEL DEPTH.	     
   "panelColor"=dword:1     ;1 = COLOR, 0 = MONO		     											
   "panelChip"=dword:0      ;0 = 5530/TFT, 1 = 9210/Draco, 
			     2 = 9211/Centaurus, 3 = 9211/Dorado  		     											
ENDIF

-----------------------------------------------------------------------------
BUILD INSTRUCTIONS
-----------------------------------------------------------------------------
Now you are ready to building the Windows CE OS with a GX Based Display 
Adapter.

Display Driver Requirements
---------------------------
The Display Driver assumes that the Scratchpad has been initialized
in the bootloader. The code which does the initialization in 
bootloader is given below.
Normally GXM_BASE is 0x40000000, but may alter for your implementation.

; initialize the scratch pad for use by video

 mov eax, GXM_BASE
 mov    TR4, eax
 ;
 ; fill set 0 cache lines
 ;
mov eax, ( 00000800h ) or ( 00000001h ) ; 2K of scratch pad
 fillCache:
 mov TR5, eax
 add eax,   10h
 cmp eax, 1001h        ; scratchpad addresses grow up
 jb  fillCache

Registry settings
-----------------
This section explains about the possible registry settings with their options.

The current display driver is set for 640x480 8-Bit depth and 60Hz.
To Select the desired mode search for the following lines in 
platform.reg, which were added during installation step "4".

[HKEY_LOCAL_MACHINE\Hardware\Microsoft\WBT]
   "Resolutions"=multi_sz:"640 480 60",
		"640 480 72",
		"640 480 75",
		"640 480 85",
		"800 600 60",
		"800 600 72",
		"800 600 75",
		"800 600 85",
		"1024 768 60",
		"1024 768 70",
		"1024 768 75",
		"1024 768 85",
		"1280 1024 60",
		"1280 1024 75",
		"1280 1024 85"
	[HKEY_LOCAL_MACHINE\Software\Microsoft\WBT]
   "Resolution"="640 480 60"
Replace the "Resolution"="640 480 60" with one in the supported list above.
Depending upon the bit depth selected.

To Enable CE to look for the best resolution from the monitor
Note: If Resolution and Enable DDC set Resolution takes precedence. 
To Enable DDC Remove "Resolution" entry.
   "EnableDDC"=dword:1

Like to disable DDC (Default when not defined).
   "EnableDDC"=dword:0

To Enable CE to use 16Bpp depth
   "FrameBufferDepth"=dword:10

To default to 8 BPP (Default when not defined).
   "FrameBufferDepth"=dword:8

To Enable Compression 
   "EnableCompression"=dword:1

To Disable Compression (Default when not defined)
   "EnableCompression"=dword:0

To Enable Panel 
   "PanelEnabled"=dword:1

To Disable Panel(Default when not defined) 
   "PanelEnabled"=dword:0

To select the Panel Resolution ( example of 800x600 panel) 
	"panelResX"=dword:320    ;800
	"panelResY"=dword:258    ;600			
To select the Panel Type (example: TFT ) 
	"panelType"=dword:0	     ;0 = TFT, 1=SSTN, 2=DSTN
To select the Panel Depth (example: 18 bit)
	"panelDepth"=dword:12    ;EITHER 8,0C,10, 12, 18 PANEL DEPTH.	     
To select the Panel Color (example: color)
	"panelColor"=dword:1     ;1 = COLOR, 0 = MONO		     											
To select the Panel Chip 
	"panelChip"=dword:0     ;0 = 5530/TFT, 1 = 9210/Draco, 2 = 9211/Centaurus, 3 = 9211/Dorado  		     											

As of now the 9210 chip only works on the Draco board and the 9211 chip works
on Centaurus and Dorado boards. On Centaurus, It has been tested on 9211 
Rev A1 chip and on Dorado 9211 Rev C3.

Environment settings
--------------------
Environments variables required to control the gxvideo behaviour

REM Enbles the base GXvideo 
SET CEPC_DDI_GX=1

REM Adds the directdraw capabilities to the gxvideo
SET CEPC_DDI_GX_DDRAW=1

REM If any of the above Env. variable is not needed DONOT SET.

-----------------------------------------------------------------------------
REVISION HISTORY
-----------------------------------------------------------------------------
12/4/00	Version 2.6a

-----------------------------------------------------------------------------
FUNCTIONAL CHANGES
-----------------------------------------------------------------------------  
Companion Durango Version : 2.14
* In 1024x768 mode, the compression buffer is tot the bottom of the display 
  area. For the compression to work we need to add 16bytes (compression 
  header) more for each 256 bytes. Account for the 16 byte compression header 
  in all the modes. Allocate for CB with 16 byte header but report to CB 
  withhout this 16 byte header. The system assumes the header to be always 
  present. DDC detection changed with all the enabled modes. 	
* Removed Debug messages, Enabled transparency. 
* Add all modes supported in standard, estimated 1, 2 and manual timings into
  a array. Sort the array accodring to Xres and Freq. All the modes are 
  placed in SupportedModes Array with the Current as the count of elements 
  in array. Current is reinit to 0 so that the call to nextFromList returns 
  from the start of the list (0).  Added function checkheader to find if we 
  getting the right data from the monitor.
* Use durango api's to render the solid fill lines.
* Deleted CEDisplayMode struct defining Display mode parameters. This was 
  used in non-durango code.
* Deleted SelectColor, DrawRect, and added Memory used  from Node2D surface.
* Deleted SelectColor, and use durango calls.
* Added VideoMemoryUsed to report Memory available in Node2D. Use durango
  API to set framebuffer offset.AllocOverlaySurface is allocated linearly.
  The overlay surface request can come for 16BPP in 8BPP and 16BPP mode. The 
  Data from *.avi, mpeg and mosquito app. request creation on 16BPP
  overlay surface in 8BPP mode.
* Use DDGEPBlt for bliting instead of HALBlit in DDraw. Use VideoMemoryUsed
  to report correct memory used by DirectDraw. Set the RefreshRate set by
  the SetMode in GPE.
* Deleted the Cursor reinit code, used earlier when cursor memory wasn't
  allocated.
* Include gfx_rtns.h  only if DDSUPPORT enabled. Use durango api to set
  framebuffer offset which can handle compression buffer. Enabled if offset
  is 0 else disabled. Removed preiously commented code for video enable.
* Remove Cursor enable code which is not required. Compression buffer enable
  code deleted and is controlled by durango api when framebuffer set.

-----------------------------------------------------------------------------
DEFECTS CORRECTED
-----------------------------------------------------------------------------
Not available

-----------------------------------------------------------------------------
KNOWN ERRATA
-----------------------------------------------------------------------------
None listed

---------------------------------------------------------------------------
VALIDATION NOTES 
---------------------------------------------------------------------------
The following issues were noted with this release:
* None.

The following previous issues were still seen with this release:
* Partially passed in Toast Direct draw test.
* DDC function fails on Dorado. 
* DDC functionality is not supported on any platform in this release.

The following issues are errata and will not be fixed:
* Video application test failures - Errata 

=============================================================================

10/17/00 Version 2.6 
  
-----------------------------------------------------------------------------
FUNCTIONAL CHANGES
-----------------------------------------------------------------------------	
Companion Durango Version : 2.12
* Moved the corsor anf compression bufffer memory as a part of Gxvideo.
  Init the memory to NULL. Later use the memory address for cursor movement.
* fix for TV support for SC1200
* Use gfx_set_video_enable to enable/disable the video instead of local
  implementation where gxm video is turned off.
* Modified the DDraw setings to reflect the hardware memory. All Overlay are
  alligned to 16 byte boundary. Align source to 8 byte multiple, with no
  boundary src.
* Deleted non Durango based rendering code.
* Deleted unused/commented code.
* fix for playing multiple mpegs
* fix sc1200 vip issues.
* fix for ceplayit. Now mpeg avi and mov clip plays.
* Disabled RetailMessage in EmulatedBltSrcCpy08to16.
* Added 9211 DSTN panel code for Dorado board.

-----------------------------------------------------------------------------
DEFECTS CORRECTED
-----------------------------------------------------------------------------
None

-----------------------------------------------------------------------------
KNOWN ERRATA
-----------------------------------------------------------------------------
None listed

=============================================================================
	
09/15/00 Version 2.5 
  
-----------------------------------------------------------------------------
FUNCTIONAL CHANGES
-----------------------------------------------------------------------------
Companion Durango Version : 2.10
* Added DSTN support on Draco board with 9210 chip.
* Updated this document(doc\readme.txt) file to get information regarding
  panelChip.

-----------------------------------------------------------------------------
DEFECTS CORRECTED
-----------------------------------------------------------------------------
None

-----------------------------------------------------------------------------
KNOWN ERRATA
-----------------------------------------------------------------------------
None listed

=============================================================================

08/09/00 Version 2.4 
  
-----------------------------------------------------------------------------
FUNCTIONAL CHANGES
-----------------------------------------------------------------------------
Companion Durango Version : 2.06
* Added TFT support and DSTN support on centaurus with 9211-A1
* Added alpha blending support
* Updated this document(doc\readme.txt) file to get information regarding 
  paneltype, paneldepth and panelcolor.

-----------------------------------------------------------------------------
DEFECTS CORRECTED
-----------------------------------------------------------------------------
None

-----------------------------------------------------------------------------
KNOWN ERRATA
-----------------------------------------------------------------------------
None listed