Marvell 64360, MPSC Serial Console Problem

Suresh Chandra Mannava msuresh at
Thu Apr 21 04:44:48 EST 2005

Dear Mr. Mark,

We designed a board with PPC 7410 and Marvell 64360 bridge.  We  
successfully  ported u-boot and Linux on to this board.

Thanks for your support.

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;

After this modification, we got beautiful serial console working fine.

Here is the part of the code from "mpsc.c"

Function name "mpsc_init_rings"

    for (i = 0; i < MPSC_RXR_ENTRIES; i++) {
        rxre = (struct mpsc_rx_desc *)dp;

    /*    rxre->bufsize = cpu_to_be16(MPSC_RXBE_SIZE);*/ 
        rxre->bufsize = 1;  /* Modified Line*/
        rxre->bytecnt = cpu_to_be16(0);
        rxre->cmdstat = cpu_to_be32(SDMA_DESC_CMDSTAT_O |
                        SDMA_DESC_CMDSTAT_EI |
                        SDMA_DESC_CMDSTAT_F |
        rxre->link = cpu_to_be32(dp_p + MPSC_RXRE_SIZE);
        rxre->buf_ptr = cpu_to_be32(bp_p);

        dp += MPSC_RXRE_SIZE;
        dp_p += MPSC_RXRE_SIZE;
        bp += MPSC_RXBE_SIZE;
        bp_p += MPSC_RXBE_SIZE;

Once again thank you very much for your support.

Suresh Chandra Mannava

More information about the Linuxppc-embedded mailing list