I have a serial port IRQ problem

From: Vincent Hung (VincentHung_at_discussions.microsoft.com)
Date: 07/29/04


Date: Wed, 28 Jul 2004 19:05:02 -0700

My target device is based on X86 which has four serial ports.
 (the com1 port (03F8h) is not used)

Under the following condition
 com2 port IO base is 02F8h and IRQ is 03h
 com3 port IO base is 03E8h and IRQ is 05h
the connection between host and target is normal.

If we want to utilize the com4 port, the configuration should be
 com2 port IO base is 02F8h and IRQ is 03h(serial 1)
 com3 port IO base is 03E8h and IRQ is 05h(serial 2)
 com4 port IO base is 02E8h and IRQ is 08h(serial 3)
Unfortunately, only com4 port is failed..
At once the com4 port IRQ is changed as 05h
             the com3 port IRQ is changed as 08h
com2 and com4 are ok, com3 is failed.

I had ever tried to use com3 IRQ 10 and com4 IRQ 11
 or com3 IRQ 11 com4 IRQ 10.
com3 and com4 are still failed.
In other word, we just use IRQ 5 on com3 or com4.
but IRQ5 can not be shared.

It's clear that com2 com3 com4 are normal on different OS environments.
ex. windows 2000, windows xp.
under windows 2000
We can tranfer files and receive from seral ports normally.
where io base and IRQ configuration are
com2 02F8h IRQ 3
com3 03E8 IRQ 10
com4 02E8h IRQ 11

My registry setting in CE platform builder is shown below..
IF BSP_NOSERIAL !
[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\Serial]
   "SysIntr"=dword:13
   "IoBase"=dword:02F8
   "IoLen"=dword:8
   "DeviceArrayIndex"=dword:0
   "Prefix"="COM"
   "Dll"="Com16550.Dll"
   "Order"=dword:0
[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:1a
   "IoBase"=dword:03E8
   "IoLen"=dword:8
   "DeviceArrayIndex"=dword:2
   "Prefix"="COM"
   "Dll"="Com16550.Dll"
   "Order"=dword:0

[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\Serial2\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_SERIAL2

IF BSP_SERIAL3
[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\Serial3]
   "SysIntr"=dword:1b
   "IoBase"=dword:02E8
   "IoLen"=dword:8
   "DeviceArrayIndex"=dword:3
   "Prefix"="COM"
   "Dll"="Com16550.Dll"
   "Order"=dword:0

[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\Serial3\Unimodem]
   "Tsp"="Unimodem.dll"
   "DeviceType"=dword:0
   "FriendlyName"="Serial Cable on COM4:"
   "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

May somebody help me..
Thanks so much....



Relevant Pages