Odd Serial Port Problem - VxWorks

This is a discussion on Odd Serial Port Problem - VxWorks ; I'm using a RTD CM313HR 4-port board, strapped for COM3-6, with a pc486 BSP. This is a PC104 board, so all the ports are on the ISA bus. I've got the ports strapped as follows: COM3 3e8, IRQ5 COM4 2e8, ...

+ Reply to Thread
Results 1 to 2 of 2

Thread: Odd Serial Port Problem

  1. Odd Serial Port Problem

    I'm using a RTD CM313HR 4-port board, strapped for COM3-6, with a pc486
    BSP. This is a PC104 board, so all the ports are on the ISA bus.

    I've got the ports strapped as follows:
    COM3 3e8, IRQ5
    COM4 2e8, IRQ9
    COM5 280, IRQ7
    COM6,288, IRQ10

    There is nothing else on any of these IRQs.

    I've modified configInum.h as follows:

    #define INT_NUM_COM3 (INT_NUM_IOAPIC_IRQ5)
    #define INT_NUM_COM4 (INT_NUM_IOAPIC_IRQ9)
    #define INT_NUM_COM5 (INT_NUM_IOAPIC_IRQ7)
    #define INT_NUM_COM6 (INT_NUM_IOAPIC_IRQA)
    #define INT_NUM_COM3 (INT_NUM_IRQ0 + COM3_INT_LVL)
    #define INT_NUM_COM4 (INT_NUM_IRQ0 + COM4_INT_LVL)
    #define INT_NUM_COM5 (INT_NUM_IRQ0 + COM5_INT_LVL)
    #define INT_NUM_COM6 (INT_NUM_IRQ0 + COM6_INT_LVL)

    And pc.h as follows:

    #define COM3_BASE_ADR 0x3e8
    #define COM4_BASE_ADR 0x2e8
    #define COM5_BASE_ADR 0x280
    #define COM6_BASE_ADR 0x288
    #define COM3_INT_LVL 0x05
    #define COM4_INT_LVL 0x09
    #define COM5_INT_LVL 0x07
    #define COM6_INT_LVL 0x0A

    and sysSerial.c by removing the ifdef in devParas[], and adding/tweaking
    the following members of devParas[]:

    ,{INT_NUM_COM3,COM3_BASE_ADR,UART_REG_ADDR_INTERVA L,COM3_INT_LVL}
    ,{INT_NUM_COM4,COM4_BASE_ADR,UART_REG_ADDR_INTERVA L,COM4_INT_LVL}
    ,{INT_NUM_COM5,COM5_BASE_ADR,UART_REG_ADDR_INTERVA L,COM5_INT_LVL}
    ,{INT_NUM_COM6,COM6_BASE_ADR,UART_REG_ADDR_INTERVA L,COM6_INT_LVL}

    It appears that COM3 and COM6 work properly, but that COM4 and COM5 do
    not receive interrupts. I've checked the ports with the manufacturers
    diagnostics, and they appear to work properly.

    Does anyone have experience with either this particular hardware, or
    upper COM ports on a pc{486,pentium,...}?

    Some advice would be much appreciated.

    Thanks,

  2. Re: Odd Serial Port Problem

    red floyd wrote:
    > I'm using a RTD CM313HR 4-port board, strapped for COM3-6, with a pc486
    > BSP. This is a PC104 board, so all the ports are on the ISA bus.
    >
    > I've got the ports strapped as follows:
    > COM3 3e8, IRQ5
    > COM4 2e8, IRQ9
    > COM5 280, IRQ7
    > COM6,288, IRQ10
    >
    > There is nothing else on any of these IRQs.
    >
    > I've modified configInum.h as follows:
    >
    > #define INT_NUM_COM3 (INT_NUM_IOAPIC_IRQ5)
    > #define INT_NUM_COM4 (INT_NUM_IOAPIC_IRQ9)
    > #define INT_NUM_COM5 (INT_NUM_IOAPIC_IRQ7)
    > #define INT_NUM_COM6 (INT_NUM_IOAPIC_IRQA)
    > #define INT_NUM_COM3 (INT_NUM_IRQ0 + COM3_INT_LVL)
    > #define INT_NUM_COM4 (INT_NUM_IRQ0 + COM4_INT_LVL)
    > #define INT_NUM_COM5 (INT_NUM_IRQ0 + COM5_INT_LVL)
    > #define INT_NUM_COM6 (INT_NUM_IRQ0 + COM6_INT_LVL)
    >
    > And pc.h as follows:
    >
    > #define COM3_BASE_ADR 0x3e8
    > #define COM4_BASE_ADR 0x2e8
    > #define COM5_BASE_ADR 0x280
    > #define COM6_BASE_ADR 0x288
    > #define COM3_INT_LVL 0x05
    > #define COM4_INT_LVL 0x09
    > #define COM5_INT_LVL 0x07
    > #define COM6_INT_LVL 0x0A
    >
    > and sysSerial.c by removing the ifdef in devParas[], and adding/tweaking
    > the following members of devParas[]:
    >
    > ,{INT_NUM_COM3,COM3_BASE_ADR,UART_REG_ADDR_INTERVA L,COM3_INT_LVL}
    > ,{INT_NUM_COM4,COM4_BASE_ADR,UART_REG_ADDR_INTERVA L,COM4_INT_LVL}
    > ,{INT_NUM_COM5,COM5_BASE_ADR,UART_REG_ADDR_INTERVA L,COM5_INT_LVL}
    > ,{INT_NUM_COM6,COM6_BASE_ADR,UART_REG_ADDR_INTERVA L,COM6_INT_LVL}
    >
    > It appears that COM3 and COM6 work properly, but that COM4 and COM5 do
    > not receive interrupts. I've checked the ports with the manufacturers
    > diagnostics, and they appear to work properly.
    >
    > Does anyone have experience with either this particular hardware, or
    > upper COM ports on a pc{486,pentium,...}?


    Apparently, the pc486 BSP automatically configures IRQ7 to a stray
    interrupt... *** AFTER calling sysSerialHwInit2 ***. This is ungood. I
    commented out the offending line in sysLib.c, and COM5 now works (on
    IRQ7), but I'm still having problems with IRQ9. It looks like pc486
    assumes IRQ9 is the second ATA port instead of IRQ15. I've adjusted
    that in my configInum.h and pc.h as needed, but still have problem.

    In my BIOS, I have IRQs 3,4,5,6,7,9 and 10 configured as Legacy ISA so
    the PCI won't grab them.

    I can't seem to find any other clobber of IRQ9 after serial port init.
    Any ideas?

    Thanks

+ Reply to Thread