diff --git a/arch/microblaze/kernel/early_printk.c b/arch/microblaze/kernel/early_printk.c
index e21390da0a4df9ae5db45a77ed5b396986f50d7e..d26d92d47754a067481fa40eb78ef2eadba04317 100644
--- a/arch/microblaze/kernel/early_printk.c
+++ b/arch/microblaze/kernel/early_printk.c
@@ -35,7 +35,7 @@ static void early_printk_uartlite_putc(char c)
 	 * we'll never timeout on a working UART.
 	 */
 
-	unsigned retries = 10000;
+	unsigned retries = 1000000;
 	/* read status bit - 0x8 offset */
 	while (--retries && (in_be32(base_addr + 8) & (1 << 3)))
 		;
diff --git a/arch/microblaze/kernel/prom.c b/arch/microblaze/kernel/prom.c
index 18d9371d9b260b405f47665aebab5c6647c4c8eb..977484add216913f9073841c033ed4abe5b0bd9f 100644
--- a/arch/microblaze/kernel/prom.c
+++ b/arch/microblaze/kernel/prom.c
@@ -88,7 +88,8 @@ int __init early_init_dt_scan_chosen_serial(unsigned long node,
 		}
 		if ((strncmp(p, "xlnx,xps-uartlite", 17) == 0) ||
 				(strncmp(p, "xlnx,opb-uartlite", 17) == 0) ||
-				(strncmp(p, "xlnx,axi-uartlite", 17) == 0)) {
+				(strncmp(p, "xlnx,axi-uartlite", 17) == 0) ||
+				(strncmp(p, "xlnx,mdm", 8) == 0)) {
 			unsigned int *addrp;
 
 			*(u32 *)data = UARTLITE;