CFLAGS-$(CONFIG_PPC32) += $(call cc-option,-mno-readonly-in-sdata)
 
 ifeq ($(CONFIG_PPC_BOOK3S_64),y)
+ifeq ($(CONFIG_CPU_LITTLE_ENDIAN),y)
+CFLAGS-$(CONFIG_GENERIC_CPU) += -mcpu=power8
+CFLAGS-$(CONFIG_GENERIC_CPU) += $(call cc-option,-mtune=power8)
+else
 CFLAGS-$(CONFIG_GENERIC_CPU) += $(call cc-option,-mtune=power7,$(call cc-option,-mtune=power5))
 CFLAGS-$(CONFIG_GENERIC_CPU) += $(call cc-option,-mcpu=power5,-mcpu=power4)
+endif
 else
 CFLAGS-$(CONFIG_GENERIC_CPU) += -mcpu=powerpc64
 endif
 
 choice
        prompt "CPU selection"
        depends on PPC64
-       default POWER8_CPU if CPU_LITTLE_ENDIAN
        default GENERIC_CPU
        help
          This will create a kernel which is optimised for a particular CPU.
          If unsure, select Generic.
 
 config GENERIC_CPU
-       bool "Generic"
+       bool "Generic (POWER4 and above)"
        depends on !CPU_LITTLE_ENDIAN
 
+config GENERIC_CPU
+       bool "Generic (POWER8 and above)"
+       depends on CPU_LITTLE_ENDIAN
+       select ARCH_HAS_FAST_MULTIPLIER
+
 config CELL_CPU
        bool "Cell Broadband Engine"
        depends on PPC_BOOK3S_64 && !CPU_LITTLE_ENDIAN