Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

Merge remote-tracking branch 'korg_arm-soc/devel/debug_ll_init' into for-3.8/single-zimage

+37
+7
arch/arm/include/asm/mach/map.h
··· 40 40 extern void vm_reserve_area_early(unsigned long addr, unsigned long size, 41 41 void *caller); 42 42 43 + #ifdef CONFIG_DEBUG_LL 44 + extern void debug_ll_addr(unsigned long *paddr, unsigned long *vaddr); 45 + extern void debug_ll_io_init(void); 46 + #else 47 + static inline void debug_ll_io_init(void) {} 48 + #endif 49 + 43 50 struct mem_type; 44 51 extern const struct mem_type *get_mem_type(unsigned int type); 45 52 /*
+14
arch/arm/kernel/debug.S
··· 100 100 b 1b 101 101 ENDPROC(printch) 102 102 103 + ENTRY(debug_ll_addr) 104 + addruart r2, r3, ip 105 + str r2, [r0] 106 + str r3, [r1] 107 + mov pc, lr 108 + ENDPROC(debug_ll_addr) 109 + 103 110 #else 104 111 105 112 ENTRY(printascii) ··· 125 118 THUMB( svc #0xab ) 126 119 mov pc, lr 127 120 ENDPROC(printch) 121 + 122 + ENTRY(debug_ll_addr) 123 + mov r2, #0 124 + str r2, [r0] 125 + str r2, [r1] 126 + mov pc, lr 127 + ENDPROC(debug_ll_addr) 128 128 129 129 #endif
+16
arch/arm/mm/mmu.c
··· 876 876 #define pci_reserve_io() do { } while (0) 877 877 #endif 878 878 879 + #ifdef CONFIG_DEBUG_LL 880 + void __init debug_ll_io_init(void) 881 + { 882 + struct map_desc map; 883 + 884 + debug_ll_addr(&map.pfn, &map.virtual); 885 + if (!map.pfn || !map.virtual) 886 + return; 887 + map.pfn = __phys_to_pfn(map.pfn); 888 + map.virtual &= PAGE_MASK; 889 + map.length = PAGE_SIZE; 890 + map.type = MT_DEVICE; 891 + create_mapping(&map); 892 + } 893 + #endif 894 + 879 895 static void * __initdata vmalloc_min = 880 896 (void *)(VMALLOC_END - (240 << 20) - VMALLOC_OFFSET); 881 897