diff --git a/XilinxProcessorIPLib/drivers/uartps/src/xuartps.c b/XilinxProcessorIPLib/drivers/uartps/src/xuartps.c index 0671a144..8108194b 100755 --- a/XilinxProcessorIPLib/drivers/uartps/src/xuartps.c +++ b/XilinxProcessorIPLib/drivers/uartps/src/xuartps.c @@ -43,6 +43,8 @@ * Ver Who Date Changes * ----- ------ -------- ---------------------------------------------- * 1.00 drg/jz 01/13/10 First Release +* 2.2 hk 06/23/14 SW reset of RX and TX should be done when changing +* baud rate. CR# 804281. * * *****************************************************************************/ @@ -624,6 +626,12 @@ int XUartPs_SetBaudRate(XUartPs *InstancePtr, u32 BaudRate) XUartPs_WriteReg(InstancePtr->Config.BaseAddress, XUARTPS_BAUDDIV_OFFSET, Best_BAUDDIV); + /* + * RX and TX SW reset + */ + XUartPs_WriteReg(InstancePtr->Config.BaseAddress, XUARTPS_CR_OFFSET, + XUARTPS_CR_TXRST | XUARTPS_CR_RXRST); + /* * Enable device */ diff --git a/XilinxProcessorIPLib/drivers/uartps/src/xuartps.h b/XilinxProcessorIPLib/drivers/uartps/src/xuartps.h index 39585d59..4f2f1f9e 100755 --- a/XilinxProcessorIPLib/drivers/uartps/src/xuartps.h +++ b/XilinxProcessorIPLib/drivers/uartps/src/xuartps.h @@ -150,6 +150,8 @@ * constant definitions. * 2.0 hk 03/07/14 Version number revised. * 2.1 hk 04/16/14 Change XUARTPS_MAX_RATE to 921600. CR# 780625. +* 2.2 hk 06/23/14 SW reset of RX and TX should be done when changing +* baud rate. CR# 804281. * * *