[RFC PATCH 2/3] ARM: mvebu: restore uncompress.h
Stephen Warren
swarren at wwwdotorg.org
Tue Sep 25 18:46:51 EDT 2012
From: Stephen Warren <swarren at nvidia.com>
Now that we have a way to provide uncompress.h in a multi-platform zImage,
re-instate mvebu's uncompress.h. This was originally removed as part of
commit 387798b "ARM: initial multiplatform support". Note that actually
enabling this via DEBUG_LL still entails the restrictions outlined for
that option.
Cc: Gregory CLEMENT <gregory.clement at free-electrons.com>
Cc: Thomas Petazzoni <thomas.petazzoni at free-electrons.com>
Cc: Lior Amsalem <alior at marvell.com>
Cc: Andrew Lunn <andrew at lunn.ch>
Cc: Yehuda Yitschak <yehuday at marvell.com>
Signed-off-by: Stephen Warren <swarren at nvidia.com>
---
arch/arm/Kconfig.debug | 3 +-
arch/arm/include/debug/mvebu-uncompress.h | 43 +++++++++++++++++++++++++++++
2 files changed, 45 insertions(+), 1 deletions(-)
create mode 100644 arch/arm/include/debug/mvebu-uncompress.h
diff --git a/arch/arm/Kconfig.debug b/arch/arm/Kconfig.debug
index 0daec3d..af34a43 100644
--- a/arch/arm/Kconfig.debug
+++ b/arch/arm/Kconfig.debug
@@ -423,8 +423,9 @@ config DEBUG_LL_INCLUDE
config UNCOMPRESS_INCLUDE
string
default "debug/icedcc-uncompress.h" if DEBUG_ICEDCC
+ default "debug/mvebu-uncompress.h" if DEBUG_MVEBU_UART
default "debug/none-uncompress.h" if ARCH_MULTIPLATFORM || \
- DEBUG_HIGHBANK_UART || DEBUG_MVEBU_UART || \
+ DEBUG_HIGHBANK_UART || \
DEBUG_PICOXCELL_UART || DEBUG_SOCFPGA_UART || \
DEBUG_VEXPRESS_UART0_DETECT || DEBUG_VEXPRESS_UART0_CA9 || \
DEBUG_VEXPRESS_UART0_RS1
diff --git a/arch/arm/include/debug/mvebu-uncompress.h b/arch/arm/include/debug/mvebu-uncompress.h
new file mode 100644
index 0000000..df3bd6b
--- /dev/null
+++ b/arch/arm/include/debug/mvebu-uncompress.h
@@ -0,0 +1,43 @@
+/*
+ * Marvell Armada SoC kernel uncompression UART routines
+ *
+ * Copyright (C) 2012 Marvell
+ *
+ * Lior Amsalem <alior at marvell.com>
+ *
+ * This file is licensed under the terms of the GNU General Public
+ * License version 2. This program is licensed "as is" without any
+ * warranty of any kind, whether express or implied.
+ */
+
+#define ARMADA_370_XP_REGS_PHYS_BASE 0xd0000000
+
+#define UART_THR ((volatile unsigned char *)(ARMADA_370_XP_REGS_PHYS_BASE\
+ + 0x12000))
+#define UART_LSR ((volatile unsigned char *)(ARMADA_370_XP_REGS_PHYS_BASE\
+ + 0x12014))
+
+#define LSR_THRE 0x20
+
+static void putc(const char c)
+{
+ int i;
+
+ for (i = 0; i < 0x1000; i++) {
+ /* Transmit fifo not full? */
+ if (*UART_LSR & LSR_THRE)
+ break;
+ }
+
+ *UART_THR = c;
+}
+
+static void flush(void)
+{
+}
+
+/*
+ * nothing to do
+ */
+#define arch_decomp_setup()
+#define arch_decomp_wdog()
--
1.7.0.4
More information about the linux-arm-kernel
mailing list