Vikram Pandita <vikram.pandita@xxxxxx> writes: > This patch adds DEBUG_LL interface for Zoom2 board. > The low level debug uart now points corrctly to External Quad uart > controller on detachable debug board. > > The Quad uart is available over GPMC chip select with physical address > 0x10000000. > > This physical address has been mapped to virtual address 0xFB000000 > as per static mapping. I see you dropped the UPF_IOREMAP flag. Why do we need a static mapping here? The early access will be taken care of by the .phys_io field of the mach_desc, no? Kevin > This patch is adapted from a version by Erik Gilling: > http://android.git.kernel.org/?p=kernel/omap.git; > a=commit;h=e9d72efdd88877d2d6ea74a08983ace0dcc771d3 > > Signed-off-by: Vikram Pandita <vikram.pandita@xxxxxx> > Cc: Erik Gilling <konkers@xxxxxxxxxxx> > --- > arch/arm/mach-omap2/board-zoom-debugboard.c | 5 +++-- > arch/arm/mach-omap2/board-zoom2.c | 19 +++++++++++++++++-- > arch/arm/plat-omap/include/mach/io.h | 6 ++++++ > 3 files changed, 26 insertions(+), 4 deletions(-) > > diff --git a/arch/arm/mach-omap2/board-zoom-debugboard.c b/arch/arm/mach-omap2/board-zoom-debugboard.c > index 1f13e2a..70a4bba 100644 > --- a/arch/arm/mach-omap2/board-zoom-debugboard.c > +++ b/arch/arm/mach-omap2/board-zoom-debugboard.c > @@ -82,9 +82,10 @@ static inline void __init zoom2_init_smsc911x(void) > > static struct plat_serial8250_port serial_platform_data[] = { > { > - .mapbase = 0x10000000, > + .membase = IOMEM(ZOOM2_EXT_QUART_VIRT), > + .mapbase = ZOOM2_EXT_QUART_PHYS, > .irq = OMAP_GPIO_IRQ(102), > - .flags = UPF_BOOT_AUTOCONF|UPF_IOREMAP|UPF_SHARE_IRQ, > + .flags = UPF_BOOT_AUTOCONF|UPF_SHARE_IRQ, > .irqflags = IRQF_SHARED | IRQF_TRIGGER_RISING, > .iotype = UPIO_MEM, > .regshift = 1, > diff --git a/arch/arm/mach-omap2/board-zoom2.c b/arch/arm/mach-omap2/board-zoom2.c > index 324009e..467e961 100644 > --- a/arch/arm/mach-omap2/board-zoom2.c > +++ b/arch/arm/mach-omap2/board-zoom2.c > @@ -19,10 +19,12 @@ > > #include <asm/mach-types.h> > #include <asm/mach/arch.h> > +#include <asm/mach/map.h> > > #include <mach/common.h> > #include <mach/usb.h> > #include <mach/keypad.h> > +#include <mach/uncompress.h> > > #include "mmc-twl4030.h" > > @@ -269,15 +271,28 @@ static void __init omap_zoom2_init(void) > usb_musb_init(); > } > > +static struct map_desc zoom2_io_desc[] __initdata = { > + { > + .virtual = ZOOM2_EXT_QUART_VIRT, > + .pfn = __phys_to_pfn(ZOOM2_EXT_QUART_PHYS), > + .length = ZOOM2_EXT_QUART_SIZE, > + .type = MT_DEVICE > + } > +}; > + > static void __init omap_zoom2_map_io(void) > { > omap2_set_globals_343x(); > + > + /* Map external quad UART virt to phy mapping */ > + iotable_init(zoom2_io_desc, ARRAY_SIZE(zoom2_io_desc)); > + > omap2_map_common_io(); > } > > MACHINE_START(OMAP_ZOOM2, "OMAP Zoom2 board") > - .phys_io = 0x48000000, > - .io_pg_offst = ((0xd8000000) >> 18) & 0xfffc, > + .phys_io = ZOOM2_EXT_QUART_PHYS, > + .io_pg_offst = ((ZOOM2_EXT_QUART_VIRT) >> 18) & 0xfffc, > .boot_params = 0x80000100, > .map_io = omap_zoom2_map_io, > .init_irq = omap_zoom2_init_irq, > diff --git a/arch/arm/plat-omap/include/mach/io.h b/arch/arm/plat-omap/include/mach/io.h > index 8d32df3..d67f06c 100644 > --- a/arch/arm/plat-omap/include/mach/io.h > +++ b/arch/arm/plat-omap/include/mach/io.h > @@ -169,6 +169,12 @@ > #define DSP_MMU_34XX_VIRT 0xe2000000 > #define DSP_MMU_34XX_SIZE SZ_4K > > +/* Map External Quad UART for Zoom2 board */ > +#define ZOOM2_EXT_QUART_PHYS 0x10000000 /* PHY address if fixed */ > +#define ZOOM2_EXT_QUART_PHY_TO_VIRT_OFF 0xEB000000 > +#define ZOOM2_EXT_QUART_VIRT 0xFB000000 > +#define ZOOM2_EXT_QUART_SIZE SZ_16 > + > /* > * ---------------------------------------------------------------------------- > * Omap4 specific IO mapping > -- > 1.6.3.3.334.g916e1 > > -- > To unsubscribe from this list: send the line "unsubscribe linux-omap" in > the body of a message to majordomo@xxxxxxxxxxxxxxx > More majordomo info at http://vger.kernel.org/majordomo-info.html -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html