This is the mail archive of the 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]
Other format: [Raw text]

MPC8xx Quicc SMC Driver Lockup


I have found an issue with the SMC (and SCC) quicc serial driver where if the CPM is under heavy load, the serial driver will stop transmitting any data which can lead to the serial driver locking up (if using buffered serial driver and blocking writes). This issue shows up when the Serial driver is re-configured.

This is caused by the CPM CP access code within the SMC/SCC serial driver not checking for the Busy flag (FLG) to be clear before continuing. This means that if the SMC is re-configured it may not be restarted. The attached patch performs a wait while the busy flag is active. 

I have also changed the sequence of the SMC UART set-up so the STOP TRANSMIT command is executed before the SMCMR[TEN] bit is cleared. Reading the MPC850 user manual suggests that this is the "more correct" way of performing a re-configuration of the SMC, it would be useful to get other peoples feedback on this change, I am not sure it will make a difference. 

Thanks in advance
Mark Retallack 

Attachment: quiccWaitCP.patch
Description: quiccWaitCP.patch

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