socfpga: map uart into virtual address space so that early_printk() works
authorPavel Machek <pavel@denx.de>
Mon, 29 Oct 2012 00:27:24 +0000 (01:27 +0100)
committerOlof Johansson <olof@lixom.net>
Mon, 5 Nov 2012 17:17:20 +0000 (09:17 -0800)
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>
arch/arm/mach-socfpga/socfpga.c

index ab81ea91a7c400e739a09e01a677312c56ac0454..6732924a5fee2900fb8b9bc97c39921cd966b136 100644 (file)
@@ -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[] = {