summary refs log tree commit diff
path: root/arch/arm/mach-socfpga
diff options
context:
space:
mode:
authorPavel Machek <pavel@denx.de>2012-10-29 01:27:24 +0100
committerOlof Johansson <olof@lixom.net>2012-11-05 09:17:20 -0800
commitef21b491bfe0ddf2b61f1804271b0d2cc58e19f2 (patch)
tree3e3d635815338b7380c8a578d5a4e61ee5ea9ccf /arch/arm/mach-socfpga
parentad208d03a5a32957a419eb1a473aa96ff4da45ca (diff)
downloadlinux-ef21b491bfe0ddf2b61f1804271b0d2cc58e19f2.tar.gz
socfpga: map uart into virtual address space so that early_printk() works
Early printk code needs UART to be mapped early during
boot. early_printk() is left there during the start-up; it is useful
as our emulators are fairly slow.

Signed-off-by: Pavel Machek <pavel@denx.de>
Acked-by: Dinh Nguyen <dinguyen@altera.com>
[olof: removed redundant newlines]
Signed-off-by: Olof Johansson <olof@lixom.net>
Diffstat (limited to 'arch/arm/mach-socfpga')
-rw-r--r--arch/arm/mach-socfpga/socfpga.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/arch/arm/mach-socfpga/socfpga.c b/arch/arm/mach-socfpga/socfpga.c
index ab81ea91a7c4..6732924a5fee 100644
--- a/arch/arm/mach-socfpga/socfpga.c
+++ b/arch/arm/mach-socfpga/socfpga.c
@@ -37,6 +37,13 @@ static struct map_desc scu_io_desc __initdata = {
 	.type		= MT_DEVICE,
 };
 
+static struct map_desc uart_io_desc __initdata = {
+	.virtual	= 0xfec02000,
+	.pfn		= __phys_to_pfn(0xffc02000),
+	.length		= SZ_8K,
+	.type		= MT_DEVICE,
+};
+
 static void __init socfpga_scu_map_io(void)
 {
 	unsigned long base;
@@ -51,6 +58,8 @@ static void __init socfpga_scu_map_io(void)
 static void __init socfpga_map_io(void)
 {
 	socfpga_scu_map_io();
+	iotable_init(&uart_io_desc, 1);
+	early_printk("Early printk initialized\n");
 }
 
 const static struct of_device_id irq_match[] = {