For UART communication, both ends need to run at the same baud rate, ±3% or so for most cases. 3% error allows for ¼ bit time error in the middle of the 8th data bit.
While the UART baud rate is usually derived from the main oscillator of a processor, there is usually the opportunity to divide it down to select 16x the desired baud rate. For common UART hardware, the internal clock to the UART would therefore need be 16 MHz to achieve 1 MBaud.
Note that neither 100 MHz nor 125 MHz can be divided by a integer and result in 16 MHz ±3%. You need to check the documentation that what you are trying to do is really possible with the hardware you have. It could be that neither processor is really running its UART at 1 MBaud. You likely need a much slower baud rate where 16x the baud rate can be achieved by dividing both the clocks by a integer.
Even if you really are getting 1 MBaud from both ends, keep in mind that such a fast signal won't make it thru common RS-232 converter chips. Basically, these are just ordinary digital signals between two chips on the same board.