|
@@ -15,27 +15,32 @@
|
|
|
#ifndef __MACH_XILINX_SOC_H__
|
|
|
#define __MACH_XILINX_SOC_H__
|
|
|
|
|
|
+#include <asm/pgtable.h>
|
|
|
+
|
|
|
#define PERIPHERAL_CLOCK_RATE 2500000
|
|
|
|
|
|
-/* For now, all mappings are flat (physical = virtual)
|
|
|
+/* Static peripheral mappings are mapped at the top of the vmalloc region. The
|
|
|
+ * early uart mapping causes intermediate problems/failure at certain
|
|
|
+ * addresses, including the very top of the vmalloc region. Map it at an
|
|
|
+ * address that is known to work.
|
|
|
*/
|
|
|
-#define UART0_PHYS 0xE0000000
|
|
|
-#define UART0_VIRT UART0_PHYS
|
|
|
+#define UART0_PHYS 0xE0000000
|
|
|
+#define UART0_SIZE SZ_4K
|
|
|
+#define UART0_VIRT 0xF0001000
|
|
|
|
|
|
-#define TTC0_PHYS 0xF8001000
|
|
|
-#define TTC0_VIRT TTC0_PHYS
|
|
|
+#define TTC0_PHYS 0xF8001000
|
|
|
+#define TTC0_SIZE SZ_4K
|
|
|
+#define TTC0_VIRT (VMALLOC_END - TTC0_SIZE)
|
|
|
|
|
|
-#define SCU_PERIPH_PHYS 0xF8F00000
|
|
|
-#define SCU_PERIPH_VIRT SCU_PERIPH_PHYS
|
|
|
+#define SCU_PERIPH_PHYS 0xF8F00000
|
|
|
+#define SCU_PERIPH_SIZE SZ_8K
|
|
|
+#define SCU_PERIPH_VIRT (TTC0_VIRT - SCU_PERIPH_SIZE)
|
|
|
|
|
|
/* The following are intended for the devices that are mapped early */
|
|
|
|
|
|
#define TTC0_BASE IOMEM(TTC0_VIRT)
|
|
|
#define SCU_PERIPH_BASE IOMEM(SCU_PERIPH_VIRT)
|
|
|
|
|
|
-/*
|
|
|
- * Mandatory for CONFIG_LL_DEBUG, UART is mapped virtual = physical
|
|
|
- */
|
|
|
#define LL_UART_PADDR UART0_PHYS
|
|
|
#define LL_UART_VADDR UART0_VIRT
|
|
|
|