linux-mips
[Top] [All Lists]

[RFC 09/13] MIPS: JZ4750D: Add prom support

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


<Prev in Thread] Current Thread [Next in Thread>