This is the mail archive of the ecos-discuss@sourceware.cygnus.com mailing list for the eCos project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: SMC2 - no interrupts?


>>>>> "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

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]