summaryrefslogtreecommitdiffstats
path: root/arch/arm
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
parentad208d03a5a32957a419eb1a473aa96ff4da45ca (diff)
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')
-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 ab81ea91a7c..6732924a5fe 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[] = {