Hide Forgot
Description of problem: CONFIG_TUNE_CELL causes problems on non-Power7 machinesand needs to be disabled. Kernels build with this option won't boot on older PPC machines: 'Illegal Instruction' The offending instruction is ldbrx which is an ISA 2.06 instruction found on power7 in 64-bit mode only. Josh Boyer mentioned on IRC that he's 'pretty sure CONFIG_TUNE_CELL=y is set in the configs. that might be allowing gcc/binutils to generate that instruction' I've done a scratch build of a kernel with TUNE_CELL disabled and it boots where the kernel with TUNE_CELL enabled doesn't boot. Due to the huge initrd we most likely won't be able to install on PS3 with Cell anyway so disabling this should be ok.
config TUNE_CELL bool "Optimize for Cell Broadband Engine" depends on PPC64 && PPC_BOOK3S help Cause the compiler to optimize for the PPE of the Cell Broadband Engine. This will make the code run considerably faster on Cell ===> but somewhat slower on other machines. This option only changes ===> the scheduling of instructions, not the selection of instructions ===> itself, so the resulting kernel will keep running on all other ===> machines. When building a kernel that is supposed to run only on Cell, you should also select the POWER4_ONLY option. So, maybe this is a binutils bug?
Probably -- it's similar to the pentium-versus-586-versus-686 catastrophe on i386. Safest just to turn off the -mtune and not worry about it in the future.
This change was made in f15 and rawhide on Jun 24.