Browse Source

Merge tag 'microblaze-4.16-rc1' of git://git.monstr.eu/linux-2.6-microblaze

Pull microblaze updates from Michal Simek:

 - Fix endian handling and Kconfig dependency

 - Fix iounmap prototype

* tag 'microblaze-4.16-rc1' of git://git.monstr.eu/linux-2.6-microblaze:
  microblaze: Setup proper dependency for optimized lib functions
  microblaze: fix iounmap prototype
  microblaze: fix endian handling
Linus Torvalds 7 years ago
parent
commit
44644391ff

+ 1 - 0
arch/microblaze/Kconfig.platform

@@ -8,6 +8,7 @@ menu "Platform options"
 
 
 config OPT_LIB_FUNCTION
 config OPT_LIB_FUNCTION
 	bool "Optimalized lib function"
 	bool "Optimalized lib function"
+	depends on CPU_LITTLE_ENDIAN
 	default y
 	default y
 	help
 	help
 	  Allows turn on optimalized library function (memcpy and memmove).
 	  Allows turn on optimalized library function (memcpy and memmove).

+ 11 - 6
arch/microblaze/Makefile

@@ -36,16 +36,21 @@ endif
 CPUFLAGS-$(CONFIG_XILINX_MICROBLAZE0_USE_DIV) += -mno-xl-soft-div
 CPUFLAGS-$(CONFIG_XILINX_MICROBLAZE0_USE_DIV) += -mno-xl-soft-div
 CPUFLAGS-$(CONFIG_XILINX_MICROBLAZE0_USE_BARREL) += -mxl-barrel-shift
 CPUFLAGS-$(CONFIG_XILINX_MICROBLAZE0_USE_BARREL) += -mxl-barrel-shift
 CPUFLAGS-$(CONFIG_XILINX_MICROBLAZE0_USE_PCMP_INSTR) += -mxl-pattern-compare
 CPUFLAGS-$(CONFIG_XILINX_MICROBLAZE0_USE_PCMP_INSTR) += -mxl-pattern-compare
-CPUFLAGS-$(CONFIG_BIG_ENDIAN) += -mbig-endian
-CPUFLAGS-$(CONFIG_LITTLE_ENDIAN) += -mlittle-endian
+
+ifdef CONFIG_CPU_BIG_ENDIAN
+KBUILD_CFLAGS += -mbig-endian
+KBUILD_AFLAGS += -mbig-endian
+LD += -EB
+else
+KBUILD_CFLAGS += -mlittle-endian
+KBUILD_AFLAGS += -mlittle-endian
+LD += -EL
+endif
 
 
 CPUFLAGS-1 += $(call cc-option,-mcpu=v$(CPU_VER))
 CPUFLAGS-1 += $(call cc-option,-mcpu=v$(CPU_VER))
 
 
 # r31 holds current when in kernel mode
 # r31 holds current when in kernel mode
-KBUILD_CFLAGS += -ffixed-r31 $(CPUFLAGS-1) $(CPUFLAGS-2)
-
-LDFLAGS		:=
-LDFLAGS_vmlinux	:=
+KBUILD_CFLAGS += -ffixed-r31 $(CPUFLAGS-y) $(CPUFLAGS-1) $(CPUFLAGS-2)
 
 
 head-y := arch/microblaze/kernel/head.o
 head-y := arch/microblaze/kernel/head.o
 libs-y += arch/microblaze/lib/
 libs-y += arch/microblaze/lib/

+ 1 - 1
arch/microblaze/include/asm/io.h

@@ -36,7 +36,7 @@ extern resource_size_t isa_mem_base;
 #ifdef CONFIG_MMU
 #ifdef CONFIG_MMU
 #define page_to_bus(page)	(page_to_phys(page))
 #define page_to_bus(page)	(page_to_phys(page))
 
 
-extern void iounmap(void __iomem *addr);
+extern void iounmap(volatile void __iomem *addr);
 
 
 extern void __iomem *ioremap(phys_addr_t address, unsigned long size);
 extern void __iomem *ioremap(phys_addr_t address, unsigned long size);
 #define ioremap_nocache(addr, size)		ioremap((addr), (size))
 #define ioremap_nocache(addr, size)		ioremap((addr), (size))

+ 1 - 1
arch/microblaze/mm/pgtable.c

@@ -127,7 +127,7 @@ void __iomem *ioremap(phys_addr_t addr, unsigned long size)
 }
 }
 EXPORT_SYMBOL(ioremap);
 EXPORT_SYMBOL(ioremap);
 
 
-void iounmap(void __iomem *addr)
+void iounmap(volatile void __iomem *addr)
 {
 {
 	if ((__force void *)addr > high_memory &&
 	if ((__force void *)addr > high_memory &&
 					(unsigned long) addr < ioremap_bot)
 					(unsigned long) addr < ioremap_bot)