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)