| To: | linux-mips@linux-mips.org |
|---|---|
| Subject: | [RFC 09/13] MIPS: JZ4750D: Add prom support |
| From: | Antony Pavlov <antonynpavlov@gmail.com> |
| Date: | Tue, 23 Oct 2012 21:43:57 +0400 |
| Cc: | Ralf Baechle <ralf@linux-mips.org>, Lars-Peter Clausen <lars@metafoo.de>, Maarten ter Huurne <maarten@treewalker.org>, Antony Pavlov <antonynpavlov@gmail.com> |
| Dkim-signature: | v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:to:cc:subject:date:message-id:x-mailer:in-reply-to:references; bh=97x/32vcnAk3o5auve0uP+xao8Ot/MW5S6zglfxU3g8=; b=k6LJwCJ4CEMZBXPzvqH4T1b7WHNG4wiKBJkSUPTnNeDpktg6jLtvLG56pxsv1cBsCp zY9SmoHcF63EfgbH8fu9cOeMCcKx9r3fJQtKX7oA8wVzSUntg55X0cPcUtVszJFMtg19 P6JxLcTeezJAPUDbwqd/rkSt0QOkdBUO9rvKzvlAwIwFDM7GPC8821JK/rxZCg5t6PsA FKlmsfxATAb6KWfXttfb8qLmyRUo0xHHeuqsVFDbpJ5QO6MrYJ6TPdPmwChlIbuWINsR E2fiA27UHiw4hoYVvzk/Z5lADPDS2WW2CSzFyf90aRy/FZTdxXc+jqvp3R1HyRomAmVF 12HQ== |
| In-reply-to: | <1351014241-3207-1-git-send-email-antonynpavlov@gmail.com> |
| List-archive: | <http://www.linux-mips.org/archives/linux-mips/> |
| List-help: | <mailto:ecartis@linux-mips.org?Subject=help> |
| List-id: | linux-mips <linux-mips.eddie.linux-mips.org> |
| List-owner: | <mailto:ralf@linux-mips.org> |
| List-post: | <mailto:linux-mips@linux-mips.org> |
| List-software: | Ecartis version 1.0.0 |
| List-subscribe: | <mailto:ecartis@linux-mips.org?subject=subscribe%20linux-mips> |
| List-unsubscribe: | <mailto:ecartis@linux-mips.org?subject=unsubscribe%20linux-mips> |
| References: | <1351014241-3207-1-git-send-email-antonynpavlov@gmail.com> |
| Sender: | linux-mips-bounce@linux-mips.org |
Add support for initializing arcs_cmdline on JZ4750D based machines and
provides a prom_putchar implementation.
Signed-off-by: Antony Pavlov <antonynpavlov@gmail.com>
---
arch/mips/jz4750d/prom.c | 67 ++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 67 insertions(+)
create mode 100644 arch/mips/jz4750d/prom.c
diff --git a/arch/mips/jz4750d/prom.c b/arch/mips/jz4750d/prom.c
new file mode 100644
index 0000000..60cd1fc
--- /dev/null
+++ b/arch/mips/jz4750d/prom.c
@@ -0,0 +1,67 @@
+/*
+ * Copyright (C) 2012, Antony Pavlov <antonynpavlov@gmail.com>
+ * JZ4750D SoC prom code
+ *
+ * based on JZ4740 SoC prom code
+ * Copyright (C) 2010, Lars-Peter Clausen <lars@metafoo.de>
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the
+ * Free Software Foundation; either version 2 of the License, or (at your
+ * option) any later version.
+ *
+ */
+
+#include <linux/module.h>
+#include <linux/kernel.h>
+#include <linux/init.h>
+#include <linux/string.h>
+
+#include <linux/serial_reg.h>
+
+#include <asm/bootinfo.h>
+#include <asm/mach-jz4750d/base.h>
+
+static __init void jz4750d_init_cmdline(int argc, char *argv[])
+{
+ unsigned int count = COMMAND_LINE_SIZE - 1;
+ int i;
+ char *dst = &(arcs_cmdline[0]);
+ char *src;
+
+ for (i = 1; i < argc && count; ++i) {
+ src = argv[i];
+ while (*src && count) {
+ *dst++ = *src++;
+ --count;
+ }
+ *dst++ = ' ';
+ }
+ if (i > 1)
+ --dst;
+
+ *dst = 0;
+}
+
+void __init prom_init(void)
+{
+ jz4750d_init_cmdline((int)fw_arg0, (char **)fw_arg1);
+ mips_machtype = MACH_INGENIC_JZ4750D;
+}
+
+void __init prom_free_prom_memory(void)
+{
+}
+
+#define UART_REG(_reg) ((void __iomem *)CKSEG1ADDR(JZ4750D_UART1_BASE_ADDR +
(_reg << 2)))
+
+void prom_putchar(char c)
+{
+ uint8_t lsr;
+
+ do {
+ lsr = readb(UART_REG(UART_LSR));
+ } while ((lsr & UART_LSR_TEMT) == 0);
+
+ writeb(c, UART_REG(UART_TX));
+}
--
1.7.10.4
|
| Previous by Date: | [RFC 04/13] MIPS: JZ4750D: Add timer support, Antony Pavlov |
|---|---|
| Next by Date: | [RFC 10/13] MIPS: JZ4750D: Add platform UART devices, Antony Pavlov |
| Previous by Thread: | [RFC 04/13] MIPS: JZ4750D: Add timer support, Antony Pavlov |
| Next by Thread: | [RFC 10/13] MIPS: JZ4750D: Add platform UART devices, Antony Pavlov |
| Indexes: | [Date] [Thread] [Top] [All Lists] |