[ARM] S3C64XX: Add <mach/debug-macro.S>
authorBen Dooks <ben-linux@fluff.org>
Tue, 21 Oct 2008 13:06:42 +0000 (14:06 +0100)
committerBen Dooks <ben-linux@fluff.org>
Mon, 15 Dec 2008 21:47:31 +0000 (21:47 +0000)
Add the necessary support for the kernel low-level
debug macros via <mach/debug-macro.S>

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
arch/arm/mach-s3c6400/include/mach/debug-macro.S [new file with mode: 0644]
arch/arm/mach-s3c6400/include/mach/hardware.h [new file with mode: 0644]
arch/arm/mach-s3c6400/include/mach/map.h [new file with mode: 0644]

diff --git a/arch/arm/mach-s3c6400/include/mach/debug-macro.S b/arch/arm/mach-s3c6400/include/mach/debug-macro.S
new file mode 100644 (file)
index 0000000..b18ac52
--- /dev/null
@@ -0,0 +1,39 @@
+/* arch/arm/mach-s3c6400/include/mach/debug-macro.S
+ *
+ * Copyright 2008 Openmoko, Inc.
+ * Copyright 2008 Simtec Electronics
+ *     http://armlinux.simtec.co.uk/
+ *     Ben Dooks <ben@simtec.co.uk>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+*/
+
+/* pull in the relevant register and map files. */
+
+#include <mach/map.h>
+#include <plat/regs-serial.h>
+
+       /* note, for the boot process to work we have to keep the UART
+        * virtual address aligned to an 1MiB boundary for the L1
+        * mapping the head code makes. We keep the UART virtual address
+        * aligned and add in the offset when we load the value here.
+        */
+
+       .macro addruart, rx
+               mrc     p15, 0, \rx, c1, c0
+               tst     \rx, #1
+               ldreq   \rx, = S3C_PA_UART
+               ldrne   \rx, = (S3C_VA_UART + S3C_PA_UART & 0xfffff)
+#if CONFIG_DEBUG_S3C_UART != 0
+               add     \rx, \rx, #(0x400 * CONFIG_DEBUG_S3C_UART)
+#endif
+       .endm
+
+/* include the reset of the code which will do the work, we're only
+ * compiling for a single cpu processor type so the default of s3c2440
+ * will be fine with us.
+ */
+
+#include <plat/debug-macro.S>
diff --git a/arch/arm/mach-s3c6400/include/mach/hardware.h b/arch/arm/mach-s3c6400/include/mach/hardware.h
new file mode 100644 (file)
index 0000000..862d033
--- /dev/null
@@ -0,0 +1,16 @@
+/* linux/arch/arm/mach-s3c6400/include/mach/hardware.h
+ *
+ * Copyright 2008 Openmoko, Inc.
+ * Copyright 2008 Simtec Electronics
+ *      Ben Dooks <ben@simtec.co.uk>
+ *      http://armlinux.simtec.co.uk/
+ *
+ * S3C6400 - Hardware support
+ */
+
+#ifndef __ASM_ARCH_HARDWARE_H
+#define __ASM_ARCH_HARDWARE_H __FILE__
+
+/* currently nothing here, placeholder */
+
+#endif /* __ASM_ARCH_IRQ_H */
diff --git a/arch/arm/mach-s3c6400/include/mach/map.h b/arch/arm/mach-s3c6400/include/mach/map.h
new file mode 100644 (file)
index 0000000..0ee6be0
--- /dev/null
@@ -0,0 +1,40 @@
+/* linux/arch/arm/mach-s3c6400/include/mach/map.h
+ *
+ * Copyright 2008 Openmoko, Inc.
+ * Copyright 2008 Simtec Electronics
+ *     http://armlinux.simtec.co.uk/
+ *     Ben Dooks <ben@simtec.co.uk>
+ *
+ * S3C64XX - Memory map definitions
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+*/
+
+#ifndef __ASM_ARCH_MAP_H
+#define __ASM_ARCH_MAP_H __FILE__
+
+#include <plat/map-base.h>
+
+#define S3C_PA_UART            (0x7F005000)
+#define S3C_PA_UART0           (S3C_PA_UART + 0x00)
+#define S3C_PA_UART1           (S3C_PA_UART + 0x400)
+#define S3C_PA_UART2           (S3C_PA_UART + 0x800)
+#define S3C_PA_UART3           (S3C_PA_UART + 0xC00)
+#define S3C_UART_OFFSET                (0x400)
+
+#define S3C64XX_PA_TIMER       (0x7F006000)
+
+#define S3C64XX_PA_SDRAM       (0x50000000)
+#define S3C64XX_PA_VIC0                (0x71200000)
+#define S3C64XX_PA_VIC1                (0x71300000)
+
+/* place VICs close together */
+#define S3C_VA_VIC0            (S3C_VA_IRQ + 0x00)
+#define S3C_VA_VIC1            (S3C_VA_IRQ + 0x10000)
+
+/* compatibiltiy defines. */
+#define S3C_PA_TIMER           S3C64XX_PA_TIMER
+
+#endif /* __ASM_ARCH_6400_MAP_H */