From ef21b491bfe0ddf2b61f1804271b0d2cc58e19f2 Mon Sep 17 00:00:00 2001 From: Pavel Machek Date: Mon, 29 Oct 2012 01:27:24 +0100 Subject: [PATCH] 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 Acked-by: Dinh Nguyen [olof: removed redundant newlines] Signed-off-by: Olof Johansson --- arch/arm/mach-socfpga/socfpga.c | 9 +++++++++ 1 file changed, 9 insertions(+) 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[] = { -- 2.39.5