The at91_serial_stop_xmit() should be changed to write to IDR: HAL_WRITE_UINT32(base+AT91_US_IDR, AT91_US_IER_TxRDY); Thanks, Jifl for spotting that, now the rx works. Harri