Subject: Re: Marvell 64360, MPSC Serial Console Problem

From: "Mark A. Greer" <[email-masked]>
Date: Wed, 20 Apr 2005 12:41:54 -0700

Suresh Chandra Mannava wrote:

> <snip>
>
> We faced a problem in MPSC serial console part.  The problem is,  in 
> Serial console data is received once after 32 characters are typed.
>
> Any thing less than  32 characters  is not  echoed or not transmitted 
> till the 32 character count is reached.
>
> After carefully reviewing the code. We found that the receive buffer 
> size is initialised to 32 bytes.
> We made a small correction in the code by making the receive buffer 
> size to 1
> rxre->bufsize = 1;

<snip>

Suresh,

I think you fixed a symptom but not the problem.  By default, the rx 
buffers are indeed 32 bytes long (i.e., a cacheline in size).  When 
receiving, the mpsc will generate an interrupt when there is an error, 
when the buffer is full (32 bytes--unlikely if you're typing), or after 
a timeout.  I suspect your timeout value is bogus so you don't get the 
interrupt until you fill the buffer with 32 bytes.  Please compare the 
platform_data that you pass to the mpsc driver to other, working systems 
that use the mpsc (e.g., katana and cpci690).  In particular, look at 
your 'max_idle' value.

Mark