[ECOS] SMC2 - no interrupts?

Jesper Skov jskov@cygnus.co.uk
Wed Nov 10 00:57:00 GMT 1999


>>>>> "Jamie" == Jamie Guinan <guinan@bluebutton.com> writes:

Jamie> Is there anything else I need to do to get the interrupts into
Jamie> operation?  Maybe its a cache issue?

It's a long shot, but you may have to prime the transmitter. See the
cogent serial driver:

// Enable the transmitter on the device
static void
cogent_serial_start_xmit(serial_channel *chan)
{
    cogent_serial_info *cogent_chan = (cogent_serial_info *)chan->dev_priv;
    cyg_addrword_t port = cogent_chan->base;
    cyg_uint8 _ier;

    HAL_READ_UINT8(port+SER_16550_IER, _ier);
    _ier |= IER_XMT;                    // Enable xmit interrupt
    HAL_WRITE_UINT8(port+SER_16550_IER, _ier);

    (chan->callbacks->xmt_char)(chan);
}


The last line loads the first character into the transmit
buffer. Reason being that the TX interrupt doesn't happen until the TX
buffer goes from full->empty.

This is also done in the quicc_smc(1?) driver so if your are using the
same sources it's probably something else.

Jesper


More information about the Ecos-discuss mailing list