             		SUNIX Serial Card Driver
               For Windows CE 5.0 Installation Guide
                             7/08/2005
             Copyright (C) 2005 SUNIX Technologies, INC.

1. Release note
   The SUNIX Serial Card Driver is for Window CE 5.0,
   The Driver only based on x86 systems.

2. Revision note
    Features supported in Version 1.00 but different from Version 
    BETA are described below:
    
   (1) Support 8 serial port.
   (2) Support PCI Bus Priority.
 
3. Feature
    The Driver supports the following features.

   (1) Support PCI Bus and ISA Bus.
   (2) 16 / 32 Byte FIFO Mode.
   (3) Support 50 ~ 921600 BaudRate.
   (4) Support Auto RTS & CTS Flow control.

4. File description
   The package contains files as described below.

   README.TXT       			this file
   SUN1889.DLL	  			for PCI Bus Driver
   SUN1699.DLL 	  			for ISA and PCI Serial Port Driver
   SerialCardControl.exe		This application can help you change the driver setting 

5. Preparation prior to installation
   Copy driver file into the your platform BSP "File" folder. (SUN1889.DLL,SUN1699.DLL,SunixSerialCardControl.exe)
  
   Path Example : _WINCEROOT\Platform\MyBSP\File\
  
   ("_WINCEROOT" is your platform builder folder name)
   ("MyBSP" is your platform BSP base name)

6. Prepare a hardware target platform
   The platform setting must meet the following requirements.
   
   for ISA:
   (1) If your motherboard have the standard serial port, then,
   	Serial card IRQ and IOBase jump setting don't be like motherboard standard serial port please,
   	(Serial Card jump setting don't like this example :  02F8, 03E8, 02E8... IRQ3, IRQ4, IRQ5)(please reference your motherboard menu)
   	Serial card jump setting can use of the other IOBase and IRQ. 

   (2) In the motherboard BIOS setting, you must be to preserve IRQ  for serial card.
   	Example step (Phoenix - AwardBIOS) (please reference your motherboard menu): 
   	BIOS --> PnP/PCI Configurateions --> Resources Controlled By --> change setting to "Manual".
   	BIOS --> PnP/PCI Configurateions --> IRQ Resources --> IRQ-10 assigned to  --> change setting to "Reserved".
   	BIOS --> PnP/PCI Configurateions --> IRQ Resources --> IRQ-11 assigned to  --> change setting to "Reserved".
   	......

	** Attention !! 
	** If you sure, want use the same motherboard standard serial port IoBase or IRQ( 02F8, 03E8, 02E8... IRQ3, IRQ4, IRQ5)
	** Then, Your motherboard standard serial port must be disabled, 
	** And also need to mark standard serial port registry in the platform.reg
 	** please follow [9.Other information] step(2).
			
7. Install Serial Card Driver for PCI Bus
 
   (1) please following [5. Preparation prior to installation] step, copy file into the directory first.

   (2) Edit the _WINCEROOT\Platform\MyBSP\Files\Platform.bib file,
   	Insert CopyFile command into the MODULES section.
  	("_WINCEROOT" is your platform builder folder name)
   	("MyBSP" is your platform BSP base name)
   	;Example :
	   	
        SUN1699.dll         $(_FLATRELEASEDIR)\SUN1699.dll            NK  SH
        SUN1889.dll          $(_FLATRELEASEDIR)\SUN1889.dll            NK  SH
        SerialDriverControl.exe	   $(_FLATRELEASEDIR)\SerialDriverControl.exe            NK  SH
	   	
   (3) Edit the _WINCEROOT\Platform\MyBSP\Files\Platform.reg file,
	Insert your serial card PCI Bus setting of file end,
	** Property illustration at [9.Other information] step(1).
	("_WINCEROOT" is your platform builder folder name)
	("MyBSP" is your platform BSP base name)

	;Example :
	;-----------------------------------------------------------------------
	; Sun1889 PCI Serial Card Bus Driver Setting
	; Property illustrations at [9.Other information] step(1).
	; Please puts Bus Driver setting in the PCI Template folder,ex:[...Drivers\BuiltIn\PCI\Template\Sunix]	
	[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\PCI\Template\SUN1889]
	   "Prefix"="SUN"	
	   "Dll"="SUN1889.Dll"
	   "Class"=dword:07
	   "SubClass"=dword:00
	   "ProgIF"=dword:02
	   "VendorID"=multi_sz:"1409"
	   "DeviceID"=multi_sz:"7168"
	   "DeviceArrayIndex"=dword:0
	   "IsrDll"="giisr.dll"
	   "IsrHandler"="ISRHandler"
	;-----------------------------------------------------------------------

   (4) Edit the _WINCEROOT\Platform\MyBSP\Files\Platform.reg file,
	Insert your Serial Port setting of file end,
	** Property illustration at [9.Other information] step(2).
	("_WINCEROOT" is your platform builder folder name)
	("MyBSP" is your platform BSP base name)

   	;Example :
	;-----------------------------------------------------------------------
	[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\PCI\Template\SUN1889\MySerial]
	   "Prefix"="COM"	
	   "Dll"="SUN1699.Dll"
	   "Class"=dword:07
	   "SubClass"=dword:00
	   "ProgIF"=dword:02
	   "VendorID"=multi_sz:"1409"
	   "DeviceID"=multi_sz:"7168"
	   "DeviceArrayIndex"=dword:1
	   "UARTIndex"=dword:1
	   "Index"=dword:2
	   "EnableRTSCTSAutoFlowControl"=dword:0
	   "WaterMarkerMode"=dword:1	
	   "WaterMarker"=dword:1C
		
	[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\PCI\Template\SUN1889\MySerial\Unimodem]
	   "Tsp"="Unimodem.dll"
	   "DeviceType"=dword:0
	   "FriendlyName"=LOC_FRIENDLYNAME_SERIAL2
	   "DevConfig"=hex: 10,00, 00,00, 05,00,00,00, 10,01,00,00, 00,4B,00,00, 00,00, 08, 00, 00, 00,00,00,00
	;-----------------------------------------------------------------------

	;Example the second Port
	;-----------------------------------------------------------------------
	[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\PCI\Template\SUN1889\MySerial2]
	   "Prefix"="COM"	
	   "Dll"="SUN1699.Dll"
	   "Class"=dword:07
	   "SubClass"=dword:00
	   "ProgIF"=dword:02
	   "VendorID"=multi_sz:"1409"
	   "DeviceID"=multi_sz:"7168"
	   "DeviceArrayIndex"=dword:2
	   "UARTIndex"=dword:2
	   "Index"=dword:3
	   "EnableRTSCTSAutoFlowControl"=dword:0
	   "WaterMarkerMode"=dword:1	
	   "WaterMarker"=dword:1C
		
	[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\PCI\Template\SUN1889\MySerial2\Unimodem]
	   "Tsp"="Unimodem.dll"
	   "DeviceType"=dword:0
	   "FriendlyName"=LOC_FRIENDLYNAME_SERIAL3
	   "DevConfig"=hex: 10,00, 00,00, 05,00,00,00, 10,01,00,00, 00,4B,00,00, 00,00, 08, 00, 00, 00,00,00,00
	;-----------------------------------------------------------------------				

	;Example the three Port;
	;-----------------------------------------------------------------------
	[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\PCI\Template\SUN1889\MySerial3]
	   "Prefix"="COM"	
	   "Dll"="SUN1699.Dll"
	   "Class"=dword:07
	   "SubClass"=dword:00
	   "ProgIF"=dword:02
	   "VendorID"=multi_sz:"1409"
	   "DeviceID"=multi_sz:"7168"
	   "DeviceArrayIndex"=dword:3
	   "UARTIndex"=dword:3
	   "Index"=dword:4
	   "EnableRTSCTSAutoFlowControl"=dword:0
	   "WaterMarkerMode"=dword:1
	   "WaterMarker"=dword:1C
		
	[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\PCI\Template\SUN1889\MySerial3\Unimodem]
	   "Tsp"="Unimodem.dll"
	   "DeviceType"=dword:0
	   "FriendlyName"=LOC_FRIENDLYNAME_SERIAL4
	   "DevConfig"=hex: 10,00, 00,00, 05,00,00,00, 10,01,00,00, 00,4B,00,00, 00,00, 08, 00, 00, 00,00,00,00
	;-----------------------------------------------------------------------		

   (5) Build your platform system.

8. Install Serial Card Driver for ISA Bus
 
   (1) please following [5. Preparation prior to installation] step, copy file into the directory first.

   (2) Edit the _WINCEROOT\Platform\MyBSP\Files\Platform.bib file,
   	Insert CopyFile command into the MODULES section.
  	("_WINCEROOT" is your platform builder folder name)
   	("MyBSP" is your platform BSP base name)
   	;Example :
	   	
	SUN1699.dll         $(_FLATRELEASEDIR)\SUN1699.dll            NK  SH
        SerialDriverControl.exe	   $(_FLATRELEASEDIR)\SerialDriverControl.exe            NK  SH
	   	
   (3) Edit the _WINCEROOT\Platform\MyBSP\Files\Platform.reg file,
   	Insert your Serial Port setting of file end,you must setting for each port.
   	** Property illustration at [9.Other information] step(2).
  	("_WINCEROOT" is your platform builder folder name)
   	("MyBSP" is your platform BSP base name)

   	;Example :
	;Please puts Bus Driver setting in the PCI Template folder,ex:[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\]	
	;-----------------------------------------------------------------------
	; Sun1699 Serial Port Setting
	[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\MySunSerial]
	   "Prefix"="COM"	
	   "Dll"="SUN1699.Dll"
	   "IoBase"=dword:0258
	   "IoLen"=dword:8
	   "SysIntr"=dword:1A
	   "DeviceArrayIndex"=dword:0
	   "Index"=dword:2
	   "EnableRTSCTSAutoFlowControl"=dword:0
	   "WaterMarkerMode"=dword:1
	   "WaterMarker"=dword:1C
		
	[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\MySunSerial\Unimodem]
	   "Tsp"="Unimodem.dll"
	   "DeviceType"=dword:0
	   "FriendlyName"=LOC_FRIENDLYNAME_SERIAL2
	   "DevConfig"=hex: 10,00, 00,00, 05,00,00,00, 10,01,00,00, 00,4B,00,00, 00,00, 08, 00, 00, 00,00,00,00
	;-----------------------------------------------------------------------

	;Example the second Port
	;-----------------------------------------------------------------------
	; Sun1699 Comm Card Driver Setting
	[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\MySunSerial2]
	   "Prefix"="COM"	
	   "Dll"="SUN1699.Dll"
	   "IoBase"=dword:0260
	   "IoLen"=dword:8
	   "SysIntr"=dword:1B
	   "DeviceArrayIndex"=dword:1
	   "Index"=dword:3
	   "EnableRTSCTSAutoFlowControl"=dword:0
	   "WaterMarkerMode"=dword:1
	   "WaterMarker"=dword:1C
	
	 [HKEY_LOCAL_MACHINE\Drivers\BuiltIn\MySunSerial2\Unimodem]
	   "Tsp"="Unimodem.dll"
	   "DeviceType"=dword:0
	   "FriendlyName"=LOC_FRIENDLYNAME_SERIAL3
	   "DevConfig"=hex: 10,00, 00,00, 05,00,00,00, 10,01,00,00, 00,4B,00,00, 00,00, 08, 00, 00, 00,00,00,00
	;-----------------------------------------------------------------------				

	;Example the three Port;
	;-----------------------------------------------------------------------
	; Sun1699 Comm Card Driver Setting
	[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\MySunSerial3]
	   "Prefix"="COM"	
	   "Dll"="SUN1699.Dll"
	   "IoBase"=dword:0268
	   "IoLen"=dword:8
	   "SysIntr"=dword:1C
	   "DeviceArrayIndex"=dword:2
	   "Index"=dword:4
	   "EnableRTSCTSAutoFlowControl"=dword:0
	   "WaterMarker"=dword:1C
	   "WaterMarkerMode"=dword:1
	
	[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\MySunSerial3\Unimodem]
	   "Tsp"="Unimodem.dll"
	   "DeviceType"=dword:0
	   "FriendlyName"=LOC_FRIENDLYNAME_SERIAL4
	   "DevConfig"=hex: 10,00, 00,00, 05,00,00,00, 10,01,00,00, 00,4B,00,00, 00,00, 08, 00, 00, 00,00,00,00
	;-----------------------------------------------------------------------		
	
   (4) Build your platform system.
   
9. Other information

   (1)  PCI Bus property :  (to be careful of dword is hexadecimal)
	"Prefix"="SUN"	  			(Set "SUN"))
	"Dll"="SUN1889.Dll"			(Set "SUN1889.Dll))
	"Class"=dword:07			(Serial Card Class Number)
	"SubClass"=dword:00			(Serial Card SubClass Number)
	"ProgIF"=dword:02			(Serial Card ProgIF Number)
	"VendorID"=multi_sz:"1409"		(Serial Card VendorID Number)
	"DeviceID"=multi_sz:"7168"		(Serial Card DeviceID Number)
	"DeviceArrayIndex"=dword:0		(Device Array Index,zero is initializes)
	"IsrDll"="giisr.dll"			(Set "giisr.dll")
	"IsrHandler"="ISRHandler"		(Set "ISRHandler")
	   
	Serial Port property :	 (to be careful of dword is hexadecimal)
	"Prefix"="COM" 				(Set "COM")
	"Dll"="SUN1699.DLL" 			(Set "SUN1699.DLL")
	"IoBase"=dword:0268 			(This is you serial card IoBase jump Setting)
						(How to keeps IoBase.please reference Windows CE menu,Resource manager section)
	"IoLen"=dword:8 			(Set 8)
	"SysIntr"=dword:1C 			(This is you serial card IRQ jump setting value add 16)(example : IRQ = 3, SysIntr = 13)(HEX).
						(How to keeps IRQ.please reference Windows CE menu,Resource manager section)
	"Index"=dword:2 			(This is you serial port number)(this property can be ignored.)
	"EnableRTSCTSAutoFlowControl"=dword:0 	(This property is setting hardware flow control state. this property can be ignored. defauld is disabled.
	"WaterMarkerMode"=dword:1		(This property is setting Buffer Size (16/32 Bytes). this property can be ignored. defauld is 32 Bytes.(16 Bytes : 0,32 Bytes : 1)
	"WaterMarker"=dword:1C			(This property is setting FIFO level. this property can be ignored. defauld is 28bytes.(16 bytes: 1 / 4 / 8 / 15(E), 32 bytes: 1 / 16(10) / 24(18) / 28(1C))
        
	Unimodem property :
	"Tsp"="Unimodem.dll"			(Set "Unimodem.dll")
	"DeviceType"=dword:0			(please reference Windows CE menu)
	"FriendlyName"=LOC_FRIENDLYNAME_SERIAL3	(**Attention!!)
						(if you want use "LOC_FRIENDLYNAME_SERIAL5" ( > 4) key words,
						you maybe need  string define of the language file, 
						please reference Windows CE menu)																							
	"DevConfig"=hex: 10,00, ......  	(please reference Windows CE menu)

    (2)  If you sure, want use the same motherboard standard serial port IoBase or IRQ( 02F8, 03E8, 02E8... IRQ3, IRQ4, IRQ5)
	  Then, Your motherboard standard serial port must be disabled, 
	  And also need to mark standard serial port registry in the platform.reg
 	  please following step.
	  (please reference Windows CE menu)
	         
       (1) Disabled motherboard step.
           BIOS --> CHIPSET FEATURES SETUP --> Onboard Serial Port 1--> change setting to disabled.
	   BIOS --> CHIPSET FEATURES SETUP --> Onboard Serial Port 2--> change setting to disabled.
	   BIOS --> CHIPSET FEATURES SETUP --> Parallel Port --> change setting to disabled.
 
       (2) Mark standard serial port registry. please open platform.reg.
           Find string "[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\Serial]"
           You will find this section.
           		
           ; @CESYSGEN IF CE_MODULES_SERIAL
	   IF BSP_NOSERIAL !
	   [HKEY_LOCAL_MACHINE\Drivers\BuiltIn\Serial]
	   "SysIntr"=dword:13
	   "IoBase"=dword:02F8
	   "IoLen"=dword:8
	   "DeviceArrayIndex"=dword:0
	   "Prefix"="COM"
	   "IClass"="{CC5195AC-BA49-48a0-BE17-DF6D1B0173DD}"
	   "Dll"="Com16550.Dll"
	   "Order"=dword:0
	   "Priority"=dword:0
	   ; Turn on follows for Installable ISR (isr16550 supporting SOFTWARE FIFO
	   ;   "Irq"=dword:3
	   ;   "IsrDll"="isr16550.dll"
	   ;   "IsrHandler"="ISRHandler"
				 
	   [HKEY_LOCAL_MACHINE\Drivers\BuiltIn\Serial\Unimodem]
	   "Tsp"="Unimodem.dll"
	   "DeviceType"=dword:0
	   "FriendlyName"=LOC_FRIENDLYNAME_SERIAL
	   "DevConfig"=hex: 10,00, 00,00, 05,00,00,00, 10,01,00,00, 00,4B,00,00, 00,00, 08, 00, 00, 00,00,00,00
	   ENDIF BSP_NOSERIAL !
				 
	   IF BSP_SERIAL2
	   [HKEY_LOCAL_MACHINE\Drivers\BuiltIn\Serial2]
	   "SysIntr"=dword:14
	   "IoBase"=dword:03E8
	   "IoLen"=dword:8
	   "DeviceArrayIndex"=dword:1
	   "Prefix"="COM"
	   "IClass"="{CC5195AC-BA49-48a0-BE17-DF6D1B0173DD}"
	   "Dll"="Com16550.Dll"
	   "Order"=dword:0
	 
	   [HKEY_LOCAL_MACHINE\Drivers\BuiltIn\Serial2\Unimodem]
	   "Tsp"="Unimodem.dll"
	   "DeviceType"=dword:0
	   "FriendlyName"=LOC_FRIENDLYNAME_SERIAL2
	   "DevConfig"=hex: 10,00, 00,00, 05,00,00,00, 10,01,00,00, 00,4B,00,00, 00,00, 08, 00, 00, 00,00,00,00
	   ENDIF BSP_SERIAL2
				 
	   IF BSP_SERIAL3
	   [HKEY_LOCAL_MACHINE\Drivers\BuiltIn\Serial3]
	   "SysIntr"=dword:15
	   "IoBase"=dword:02E8
	   "IoLen"=dword:8
	   "DeviceArrayIndex"=dword:2
	   "Prefix"="COM"
	   "IClass"="{CC5195AC-BA49-48a0-BE17-DF6D1B0173DD}"
	   "Dll"="Com16550.Dll"
	   "Order"=dword:0
		 
	   [HKEY_LOCAL_MACHINE\Drivers\BuiltIn\Serial3\Unimodem]
	   "Tsp"="Unimodem.dll"
	   "DeviceType"=dword:0
	   "FriendlyName"=LOC_FRIENDLYNAME_SERIAL3
	   "DevConfig"=hex: 10,00, 00,00, 05,00,00,00, 10,01,00,00, 00,4B,00,00, 00,00, 08, 00, 00, 00,00,00,00
	   ENDIF BSP_SERIAL3
				
       (3) Please use ";" character mark all registry.
        		
	   IF BSP_NOSERIAL !
	   ;[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\Serial]
           ;   "SysIntr"=dword:13
	   ;   "IoBase"=dword:02F8
	   ;   "IoLen"=dword:8
	   ;   "DeviceArrayIndex"=dword:0
	   ;   "Prefix"="COM"
	   ;   "IClass"="{CC5195AC-BA49-48a0-BE17-DF6D1B0173DD}"
	   ;   "Dll"="Com16550.Dll"
	   ;   "Order"=dword:0
	   ;   "Priority"=dword:0
	   ;; Turn on follows for Installable ISR (isr16550 supporting SOFTWARE FIFO
	   ;;   "Irq"=dword:3
	   ;;   "IsrDll"="isr16550.dll"
	   ;;   "IsrHandler"="ISRHandler"
	 
	   ;[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\Serial\Unimodem]
	   ;   "Tsp"="Unimodem.dll"
	   ;   "DeviceType"=dword:0
	   ;   "FriendlyName"=LOC_FRIENDLYNAME_SERIAL
	   ;  "DevConfig"=hex: 10,00, 00,00, 05,00,00,00, 10,01,00,00, 00,4B,00,00, 00,00, 08, 00, 00, 00,00,00,00
	   ENDIF BSP_NOSERIAL !
	 
	   IF BSP_SERIAL2
	   ;[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\Serial2]
	   ;   "SysIntr"=dword:14
	   ;   "IoBase"=dword:03E8
	   ;   "IoLen"=dword:8
	   ;   "DeviceArrayIndex"=dword:1
	   ;   "Prefix"="COM"
	   ;   "IClass"="{CC5195AC-BA49-48a0-BE17-DF6D1B0173DD}"
	   ;   "Dll"="Com16550.Dll"
	   ;   "Order"=dword:0
	 
	   ;[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\Serial2\Unimodem]
	   ;   "Tsp"="Unimodem.dll"
	   ;   "DeviceType"=dword:0
	   ;   "FriendlyName"=LOC_FRIENDLYNAME_SERIAL2
	   ;   "DevConfig"=hex: 10,00, 00,00, 05,00,00,00, 10,01,00,00, 00,4B,00,00, 00,00, 08, 00, 00, 00,00,00,00
	   ENDIF BSP_SERIAL2
	 
	   IF BSP_SERIAL3
	   ;[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\Serial3]
	   ;   "SysIntr"=dword:15
	   ;   "IoBase"=dword:02E8
	   ;   "IoLen"=dword:8
	   ;   "DeviceArrayIndex"=dword:2
	   ;   "Prefix"="COM"
	   ;   "IClass"="{CC5195AC-BA49-48a0-BE17-DF6D1B0173DD}"
	   ;   "Dll"="Com16550.Dll"
	   ;   "Order"=dword:0
	 
	   ;[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\Serial3\Unimodem]
	   ;   "Tsp"="Unimodem.dll"
	   ;   "DeviceType"=dword:0
	   ;   "FriendlyName"=LOC_FRIENDLYNAME_SERIAL3
	   ;   "DevConfig"=hex: 10,00, 00,00, 05,00,00,00, 10,01,00,00, 00,4B,00,00, 00,00, 08, 00, 00, 00,00,00,00
	   ENDIF BSP_SERIAL3
		
    (3) SerialDriverControl.exe application reference "Microsoft Foundation Classes (MFC)" Library,
 	your platform must be include this item.(use catalog add this item)
	(please reference Windows CE menu)	
		
