8xx: i2c-algo-8xx - fixed timeout detection and transmission errors

cajus.hahn at de.abb.com cajus.hahn at de.abb.com
Fri Aug 12 18:21:14 EST 2005





My description seems to be a little misleading.
WITHOUT the force_reinit() my SPI driver reports transmission errors if the
I2C bus has longer disturbances.
WITH the force_reinit() my SPI driver works fine.
This sounds like the I2C allocates a new buffer for every timed-out
transmision. If all I2C buffers are full, the SPI buffers get overwritten
!?
I did not really trace back the problem, this is only my suspicion.
Because the  force_reinit() resets all the buffer pointer to their init
values the problem with the SPI does not occur.

Cajus



Message from Wolfgang Denk <wd at denx.de>@denx.de received on 12.08.2005
10:01
                                                                                                                                        
                                                                                                                                        
                12.08.2005        Wolfgang Denk <wd at denx.de>@denx.de                                                                    
                  10:01                                                                                                                 
                                  Sent by wd at denx.de                                                                                    
                                                                                                                                        
                                                                                                                                        

                                                                                                                                      
                                                                                                                                      
                               To:       Cajus Hahn/DEAPR/ABB at ABB_DE01                                                                
                               cc:       linuxppc-embedded at ozlabs.org                                                                 
                               Subject:  Re: 8xx: i2c-algo-8xx - fixed timeout detection and transmission errors                      
                                                                                                                                      



In message
<OF29EF0D8D.F0A40A5C-ONC125705B.0028FA70-C125705B.002AF212 at de.abb.com> you
wrote:
>
> Then I set the SCL line to ground to simulate a longer bus disturbance.
> After some timeouts my SPI bus, yes the SPI bus, reportet transmission
> errors. Both bus-interfaces use the CPM. It looks like the SPI buffer
gets
> garbaged by the I2C interface.

This is "normal". We see similar problems even with  perfectly  legal
operations  on  the CPM. The SPI is running at lowest priority on the
CPM, and anything that  causes  higher  CPM  load  will  starve  SPI.
Obviously  your  operation  causes  the  CPM  to go into some strange
state.

Best regards,

Wolfgang Denk

--
Software Engineering:  Embedded and Realtime Systems,  Embedded Linux
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
There are certain things men must do to remain men.
             -- Kirk, "The Ultimate Computer", stardate 4929.4





More information about the Linuxppc-embedded mailing list