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

Configure Feed

Select the types of activity you want to include in your feed.

Merge branch 'next' of git://git.monstr.eu/linux-2.6-microblaze

Pull microblaze updates from Michal Simek.

* 'next' of git://git.monstr.eu/linux-2.6-microblaze:
microblaze: Enable IRQ in arch_cpu_idle
microblaze: Fix uaccess_ok macro
microblaze: Add support for new cpu versions and target architecture
microblaze: Do not select OPT_LIB_ASM by default
microblaze: Fix initrd support
microblaze: Do not use r6 in head.S
microblaze: pci: Remove duplicated header
microblaze: Set the default irq_domain
microblaze: pci: Remove duplicated include from pci-common.c

+45 -28
-1
arch/microblaze/configs/mmu_defconfig
··· 17 17 # CONFIG_BLK_DEV_BSG is not set 18 18 CONFIG_PARTITION_ADVANCED=y 19 19 # CONFIG_EFI_PARTITION is not set 20 - CONFIG_OPT_LIB_ASM=y 21 20 CONFIG_XILINX_MICROBLAZE0_USE_MSR_INSTR=1 22 21 CONFIG_XILINX_MICROBLAZE0_USE_PCMP_INSTR=1 23 22 CONFIG_XILINX_MICROBLAZE0_USE_BARREL=1
-2
arch/microblaze/include/asm/pci.h
··· 153 153 static inline void __init xilinx_pci_init(void) { return; } 154 154 #endif 155 155 156 - #include <asm-generic/pci-dma-compat.h> 157 - 158 156 #endif /* __KERNEL__ */ 159 157 #endif /* __ASM_MICROBLAZE_PCI_H */
+18 -10
arch/microblaze/include/asm/uaccess.h
··· 90 90 91 91 #else 92 92 93 - /* 94 - * Address is valid if: 95 - * - "addr", "addr + size" and "size" are all below the limit 96 - */ 97 - #define access_ok(type, addr, size) \ 98 - (get_fs().seg >= (((unsigned long)(addr)) | \ 99 - (size) | ((unsigned long)(addr) + (size)))) 93 + static inline int access_ok(int type, const void __user *addr, 94 + unsigned long size) 95 + { 96 + if (!size) 97 + goto ok; 100 98 101 - /* || printk("access_ok failed for %s at 0x%08lx (size %d), seg 0x%08x\n", 102 - type?"WRITE":"READ",addr,size,get_fs().seg)) */ 103 - 99 + if ((get_fs().seg < ((unsigned long)addr)) || 100 + (get_fs().seg < ((unsigned long)addr + size - 1))) { 101 + pr_debug("ACCESS fail: %s at 0x%08x (size 0x%x), seg 0x%08x\n", 102 + type ? "WRITE" : "READ ", (u32)addr, (u32)size, 103 + (u32)get_fs().seg); 104 + return 0; 105 + } 106 + ok: 107 + pr_debug("ACCESS OK: %s at 0x%08x (size 0x%x), seg 0x%08x\n", 108 + type ? "WRITE" : "READ ", (u32)addr, (u32)size, 109 + (u32)get_fs().seg); 110 + return 1; 111 + } 104 112 #endif 105 113 106 114 #ifdef CONFIG_MMU
+5
arch/microblaze/kernel/cpu/cpuinfo.c
··· 37 37 {"8.20.a", 0x15}, 38 38 {"8.20.b", 0x16}, 39 39 {"8.30.a", 0x17}, 40 + {"8.40.a", 0x18}, 41 + {"8.40.b", 0x19}, 40 42 {NULL, 0}, 41 43 }; 42 44 ··· 59 57 {"virtex6", 0xe}, 60 58 /* FIXME There is no key code defined for spartan2 */ 61 59 {"spartan2", 0xf0}, 60 + {"kintex7", 0x10}, 61 + {"artix7", 0x11}, 62 + {"zynq7000", 0x12}, 62 63 {NULL, 0}, 63 64 }; 64 65
+10 -10
arch/microblaze/kernel/head.S
··· 112 112 * copy command line directly to cmd_line placed in data section. 113 113 */ 114 114 beqid r5, skip /* Skip if NULL pointer */ 115 - or r6, r0, r0 /* incremment */ 115 + or r11, r0, r0 /* incremment */ 116 116 ori r4, r0, cmd_line /* load address of command line */ 117 117 tophys(r4,r4) /* convert to phys address */ 118 118 ori r3, r0, COMMAND_LINE_SIZE - 1 /* number of loops */ 119 119 _copy_command_line: 120 120 /* r2=r5+r6 - r5 contain pointer to command line */ 121 - lbu r2, r5, r6 121 + lbu r2, r5, r11 122 122 beqid r2, skip /* Skip if no data */ 123 - sb r2, r4, r6 /* addr[r4+r6]= r2*/ 124 - addik r6, r6, 1 /* increment counting */ 123 + sb r2, r4, r11 /* addr[r4+r6]= r2 */ 124 + addik r11, r11, 1 /* increment counting */ 125 125 bgtid r3, _copy_command_line /* loop for all entries */ 126 126 addik r3, r3, -1 /* decrement loop */ 127 127 addik r5, r4, 0 /* add new space for command line */ ··· 131 131 132 132 #ifdef NOT_COMPILE 133 133 /* save bram context */ 134 - or r6, r0, r0 /* incremment */ 134 + or r11, r0, r0 /* incremment */ 135 135 ori r4, r0, TOPHYS(_bram_load_start) /* save bram context */ 136 136 ori r3, r0, (LMB_SIZE - 4) 137 137 _copy_bram: 138 - lw r7, r0, r6 /* r7 = r0 + r6 */ 139 - sw r7, r4, r6 /* addr[r4 + r6] = r7*/ 140 - addik r6, r6, 4 /* increment counting */ 138 + lw r7, r0, r11 /* r7 = r0 + r6 */ 139 + sw r7, r4, r11 /* addr[r4 + r6] = r7 */ 140 + addik r11, r11, 4 /* increment counting */ 141 141 bgtid r3, _copy_bram /* loop for all entries */ 142 142 addik r3, r3, -4 /* descrement loop */ 143 143 #endif ··· 303 303 * the exception vectors, using a 4k real==virtual mapping. 304 304 */ 305 305 /* Use temporary TLB_ID for LMB - clear this temporary mapping later */ 306 - ori r6, r0, MICROBLAZE_LMB_TLB_ID 307 - mts rtlbx,r6 306 + ori r11, r0, MICROBLAZE_LMB_TLB_ID 307 + mts rtlbx,r11 308 308 309 309 ori r4,r0,(TLB_WR | TLB_EX) 310 310 ori r3,r0,(TLB_VALID | TLB_PAGESZ(PAGESZ_4K))
+2
arch/microblaze/kernel/intc.c
··· 172 172 * and commits this patch. ~~gcl */ 173 173 root_domain = irq_domain_add_linear(intc, nr_irq, &xintc_irq_domain_ops, 174 174 (void *)intr_mask); 175 + 176 + irq_set_default_host(root_domain); 175 177 }
+5
arch/microblaze/kernel/process.c
··· 160 160 return 0; /* MicroBlaze has no separate FPU registers */ 161 161 } 162 162 #endif /* CONFIG_MMU */ 163 + 164 + void arch_cpu_idle(void) 165 + { 166 + local_irq_enable(); 167 + }
+5 -4
arch/microblaze/mm/init.c
··· 404 404 405 405 #if defined(CONFIG_BLK_DEV_INITRD) 406 406 /* Remove the init RAM disk from the available memory. */ 407 - /* if (initrd_start) { 408 - mem_pieces_remove(&phys_avail, __pa(initrd_start), 409 - initrd_end - initrd_start, 1); 410 - }*/ 407 + if (initrd_start) { 408 + unsigned long size; 409 + size = initrd_end - initrd_start; 410 + memblock_reserve(virt_to_phys(initrd_start), size); 411 + } 411 412 #endif /* CONFIG_BLK_DEV_INITRD */ 412 413 413 414 /* Initialize the MMU hardware */
-1
arch/microblaze/pci/pci-common.c
··· 30 30 #include <linux/of.h> 31 31 #include <linux/of_address.h> 32 32 #include <linux/of_pci.h> 33 - #include <linux/pci.h> 34 33 #include <linux/export.h> 35 34 36 35 #include <asm/processor.h>