[ECOS] MPC8xx SMC serial problem

Will Wagner will_wagner@carallon.com
Fri Jan 27 13:35:00 GMT 2006



Gary Thomas wrote:
> On Fri, 2006-01-27 at 13:00 +0000, Will Wagner wrote:
>> Hi All,
>>
>> Been testing serial comms with parity enabled. Always get the data sent 
>> but occasionally (~25%) I get spurious data as well.
>>
>> Looking at it in the debugger it appears the buffer descriptor doesn't 
>> hold valid data but it is being passed to the driver anyway. The control 
>> flags of the buffer descriptor show that there has been a parity error 
>> but this is never checked in the function quicc_smc_serial_DSR, it only 
>> checks that the buffer is ready for processing not that there wasn't an 
>> error.
>>
>> I think a change like this would fix the problem:
>>
>> while (rxbd != rxlast) {
>>      if ((rxbd->ctrl & (QUICC_BD_CTL_Ready | QUICC_BD_CTL_Frame | 
>> QUICC_BD_CTL_Parity)) == 0) { // Check if data error
>>          for (i = 0;  i < rxbd->length;  i++) {
>>              (chan->callbacks->rcv_char)(chan, rxbd->buffer[i]);
>>          }
>>
> 
> I don't see how this adds any protection/testing, unless Ready/Frame are
> *not* set when Parity is.  (I've never seen parity errors on this 
> interface, so I'm not sure)

Indeed I'm seeing the ready bit not set (Which is really badly named and 
should be labeled not empty), but the parity error bit set.

> 
> Do you really want to pass in bogus data if there were errors?

No and I believe my change prevents this.

> 
>> Also need to add QUICC_BD_CTL_Frame & QUICC_BD_CTL_Parity to the list of 
>> defines in ppc8xx.h
>>
>> Does this make sense? Has anyone else seen this problem? Presumably need 
>> to apply the same change to the SCC DSR?
> 
> If you do get this worked out, a proper patch would be in order.  Prose
> quoting of modified code doesn't help much (and typically won't be moved
> into the repository)

Will test my changes and try to build a patch.

> 
> Also, just out of curiosity, what platform/target is this on?

It's a custom 133MHz 866 board.

> 

-- 
------------------------------------------------------------------------
Will Wagner                                     will_wagner@carallon.com
Senior Project Engineer                        Office Tel: 0207 371 2032
Carallon Ltd, Studio G20, Shepherds Building, Rockley Rd, London W14 0DA
------------------------------------------------------------------------


-- 
Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos
and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss



More information about the Ecos-discuss mailing list