.physical       = IXP4XX_PCI_CFG_BASE_PHYS,
                .length         = IXP4XX_PCI_CFG_REGION_SIZE,
                .type           = MT_DEVICE
+       },
+#ifdef CONFIG_DEBUG_LL
+       {       /* Debug UART mapping */
+               .virtual        = IXP4XX_DEBUG_UART_BASE_VIRT,
+               .physical       = IXP4XX_DEBUG_UART_BASE_PHYS,
+               .length         = IXP4XX_DEBUG_UART_REGION_SIZE,
+               .type           = MT_DEVICE
        }
+#endif
 };
 
 void __init ixp4xx_map_io(void)
 
                 mrc     p15, 0, \rx, c1, c0
                 tst     \rx, #1                 @ MMU enabled?
                 moveq   \rx, #0xc8000000
+               orrne   \rx, \rx, #0x00b00000
                 movne   \rx, #0xff000000
                 add     \rx,\rx,#3              @ Uart regs are at off set of 3 if
                                                @ byte writes used - Big Endian.
 
 #define IXP4XX_PERIPHERAL_BASE_VIRT    (0xFFBF2000)
 #define IXP4XX_PERIPHERAL_REGION_SIZE  (0x0000C000)
 
+/*
+ * Debug UART
+ *
+ * This is basically a remap of UART1 into a region that is section
+ * aligned so that it * can be used with the low-level debug code.
+ */
+#define        IXP4XX_DEBUG_UART_BASE_PHYS     (0xC8000000)
+#define        IXP4XX_DEBUG_UART_BASE_VIRT     (0xffb00000)
+#define        IXP4XX_DEBUG_UART_REGION_SIZE   (0x00001000)
+
 #define IXP4XX_EXP_CS0_OFFSET  0x00
 #define IXP4XX_EXP_CS1_OFFSET   0x04
 #define IXP4XX_EXP_CS2_OFFSET   0x08