Merge remote-tracking branch 'korg_arm-soc/devel/debug_ll_init' into for-3.8/single...
authorStephen Warren <swarren@nvidia.com>
Fri, 16 Nov 2012 19:21:10 +0000 (12:21 -0700)
committerStephen Warren <swarren@nvidia.com>
Fri, 16 Nov 2012 19:21:10 +0000 (12:21 -0700)
arch/arm/include/asm/mach/map.h
arch/arm/kernel/debug.S
arch/arm/mm/mmu.c

index 195ac2f9d3d3b1eaaebca8a2b5260fb41f4e27e0..2fe141fcc8d63311b63a2be06a0289a31b0174a3 100644 (file)
@@ -40,6 +40,13 @@ extern void iotable_init(struct map_desc *, int);
 extern void vm_reserve_area_early(unsigned long addr, unsigned long size,
                                  void *caller);
 
+#ifdef CONFIG_DEBUG_LL
+extern void debug_ll_addr(unsigned long *paddr, unsigned long *vaddr);
+extern void debug_ll_io_init(void);
+#else
+static inline void debug_ll_io_init(void) {}
+#endif
+
 struct mem_type;
 extern const struct mem_type *get_mem_type(unsigned int type);
 /*
index 66f711b2e0e856fa6485f96bc26f32f3c661c767..6809200c31fb73349df3af95cd737c0e70293ada 100644 (file)
@@ -100,6 +100,13 @@ ENTRY(printch)
                b       1b
 ENDPROC(printch)
 
+ENTRY(debug_ll_addr)
+               addruart r2, r3, ip
+               str     r2, [r0]
+               str     r3, [r1]
+               mov     pc, lr
+ENDPROC(debug_ll_addr)
+
 #else
 
 ENTRY(printascii)
@@ -119,4 +126,11 @@ ENTRY(printch)
                mov     pc, lr
 ENDPROC(printch)
 
+ENTRY(debug_ll_addr)
+               mov     r2, #0
+               str     r2, [r0]
+               str     r2, [r1]
+               mov     pc, lr
+ENDPROC(debug_ll_addr)
+
 #endif
index 941dfb9e9a78635680d85225169d0edd187aea8c..39719bb93caab493bc2e71ab5c86c20b955d6b13 100644 (file)
@@ -876,6 +876,22 @@ static void __init pci_reserve_io(void)
 #define pci_reserve_io() do { } while (0)
 #endif
 
+#ifdef CONFIG_DEBUG_LL
+void __init debug_ll_io_init(void)
+{
+       struct map_desc map;
+
+       debug_ll_addr(&map.pfn, &map.virtual);
+       if (!map.pfn || !map.virtual)
+               return;
+       map.pfn = __phys_to_pfn(map.pfn);
+       map.virtual &= PAGE_MASK;
+       map.length = PAGE_SIZE;
+       map.type = MT_DEVICE;
+       create_mapping(&map);
+}
+#endif
+
 static void * __initdata vmalloc_min =
        (void *)(VMALLOC_END - (240 << 20) - VMALLOC_OFFSET);
 
This page took 0.040292 seconds and 5 git commands to generate.