Hi, 

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

Reply via email to