summaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-vexpress/include/mach/debug_ll.h
diff options
context:
space:
mode:
authorJean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>2013-02-11 13:03:26 +0100
committerSascha Hauer <s.hauer@pengutronix.de>2013-02-12 08:49:27 +0100
commit2738f723521e299b38ab882a85e11f246b38dad2 (patch)
treee92bb278f985478922a9f16dff1422b2a0085990 /arch/arm/mach-vexpress/include/mach/debug_ll.h
parent19905efac5ebb268530e43282134f672bc618764 (diff)
downloadbarebox-2738f723521e299b38ab882a85e11f246b38dad2.tar.gz
barebox-2738f723521e299b38ab882a85e11f246b38dad2.tar.xz
arm: add vexpress board support
detect the cpu model to dynamise the periphs mapping currently only tested on qemu but should work on real hardware Cortex-A9 if you use 1GiB of ram you can run the same barebox on Cortex-A15 or Cortex-A9 otherwise use vexpress_ca9_defconfig where the TEXT_BASE is at 0x63f00000 when we will add the relocation support this defconfig will be drop qemu/arm-softmmu/qemu-system-arm -M vexpress-a9 -m 1024 -smp 1 -kernel build/vexpress/barebox -pflash build/vexpress/flash0 -nographic Cortex-A15 qemu/arm-softmmu/qemu-system-arm -M vexpress-a15 -m 1024 -smp 1 -kernel build/vexpress/barebox -pflash build/vexpress/flash0 -nographic Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'arch/arm/mach-vexpress/include/mach/debug_ll.h')
-rw-r--r--arch/arm/mach-vexpress/include/mach/debug_ll.h33
1 files changed, 33 insertions, 0 deletions
diff --git a/arch/arm/mach-vexpress/include/mach/debug_ll.h b/arch/arm/mach-vexpress/include/mach/debug_ll.h
new file mode 100644
index 0000000000..15d6e85239
--- /dev/null
+++ b/arch/arm/mach-vexpress/include/mach/debug_ll.h
@@ -0,0 +1,33 @@
+/*
+ * Copyright 2013 Jean-Christophe PLAGNIOL-VILLARD <plagniol@jcrosoft.com>
+ *
+ * GPLv2 only
+ */
+
+#ifndef __MACH_DEBUG_LL_H__
+#define __MACH_DEBUG_LL_H__
+
+#include <linux/amba/serial.h>
+#include <io.h>
+
+#define DEBUG_LL_PHYS_BASE 0x10000000
+#define DEBUG_LL_PHYS_BASE_RS1 0x1c000000
+
+#ifdef MP
+#define UART_BASE DEBUG_LL_PHYS_BASE
+#else
+#define UART_BASE DEBUG_LL_PHYS_BASE_RS1
+#endif
+
+static inline void PUTC_LL(char c)
+{
+ /* Wait until there is space in the FIFO */
+ while (readl(UART_BASE + UART01x_FR) & UART01x_FR_TXFF);
+
+ /* Send the character */
+ writel(c, UART_BASE + UART01x_DR);
+
+ /* Wait to make sure it hits the line, in case we die too soon. */
+ while (readl(UART_BASE + UART01x_FR) & UART01x_FR_TXFF);
+}
+#endif