Regression: Kirkwood fails to boot because of bf35706f3d0929b
Hi Ard
It seems as thought all Kirkwood boards are dead in v4.1-rc1. They fail to boot with the message:
Starting kernel ...
Uncompressing Linux... done, booting the kernel.
Error: unrecognized/unsupported processor variant (0x56251311).
With a bit of testing, Ezequiel and Florian have found the guilty commit is:
bf35706f3d09 ("ARM: 8314/1: replace PROCINFO embedded branch with relative offset")
Author: Ard Biesheuvel <[email protected]> Date: Wed Mar 18 07:29:32 2015 +0100
ARM: 8314/1: replace PROCINFO embedded branch with relative offset
This patch replaces the 'branch to setup()' instructions embedded in the PROCINFO structs with the offset to that setup function relative to the base of the struct. This preserves the position independent nature of that field, but uses a data item rather than an instruction.
This is mainly done to prevent linker failures on large kernels, where the setup function is out of reach for the branch.
Kirkwood uses arch/arm/mm/proc-feroceon.S.
Please can you have this patch either fixed or reverted. Come by #mvlinux if you want to chat with us, ask for testing, etc.
Thanks
Andrew
Quoted 27 lines · Andrew Lunn
Hi Ard
It seems as thought all Kirkwood boards are dead in v4.1-rc1. They fail to boot with the message:
Starting kernel ...
Uncompressing Linux... done, booting the kernel.
Error: unrecognized/unsupported processor variant (
0x56251311).With a bit of testing, Ezequiel and Florian have found the guilty commit is:
bf35706f3d09("ARM: 8314/1: replace PROCINFO embedded branch with relative offset")Author: Ard Biesheuvel <[email protected]> Date: Wed Mar 18 07:29:32 2015 +0100ARM: 8314/1: replace PROCINFO embedded branch with relative offset
This patch replaces the 'branch to
setup()' instructions embedded in the PROCINFO structs with the offset to that setup function relative to the base of the struct. This preserves the position independent nature of that field, but uses a data item rather than an instruction.
Quoted 9 lines
This is mainly done to prevent linker failures on large kernels, where the setup function is out of reach for the branch.
Kirkwood uses
arch/arm/mm/proc-feroceon.S.Please can you have this patch either fixed or reverted. Come by #mvlinux if you want to chat with us, ask for testing, etc.
Apologies for the breakage. Does this fix it?
arch/arm/mm/proc-feroceon.S +0 -1
@@ -602,7 +602,6 @@ __\name\()_proc_info: PMD_SECT_AP_WRITE | \ PMD_SECT_AP_READ initfn __feroceon_setup, __\name\()_proc_info - .long __feroceon_setup .long cpu_arch_name .long cpu_elf_name .long HWCAP_SWP|HWCAP_HALF|HWCAP_THUMB|HWCAP_FAST_MULT|HWCAP_EDSP
Regards,
Ard.
PATCH 1/1 ARM: proc-feroceon: Fix feroceon_proc_info macro
In reply to Andrew Lunnbf35706f3d09 ("ARM: 8314/1: replace PROCINFO embedded branch with relative offset") broke booting for Kirkwood. The kernel would say:
Starting kernel ...
Uncompressing Linux... done, booting the kernel.
Error: unrecognized/unsupported processor variant (0x56251311).
Fix it by removing the extraneous .long __feroceon_setup from the feroceon_proc_info macro.
--- arch/arm/mm/proc-feroceon.S | 1 - 1 file changed, 1 deletion(-)
arch/arm/mm/proc-feroceon.S +0 -1
@@ -602,7 +602,6 @@ __\name\()_proc_info: PMD_SECT_AP_WRITE | \ PMD_SECT_AP_READ initfn __feroceon_setup, __\name\()_proc_info - .long __feroceon_setup .long cpu_arch_name .long cpu_elf_name .long HWCAP_SWP|HWCAP_HALF|HWCAP_THUMB|HWCAP_FAST_MULT|HWCAP_EDSP
Signature · 1 line
2.1.4
PATCH 1/1 ARM: proc-feroceon: Fix feroceon_proc_info macro
Quoted 9 lines · Andrew Lunn
bf35706f3d09("ARM: 8314/1: replace PROCINFO embedded branch with relative offset") broke booting for Kirkwood. The kernel would say:Starting kernel ...
Uncompressing Linux... done, booting the kernel.
Error: unrecognized/unsupported processor variant (
0x56251311).
Quoted 8 lines
Fix it by removing the extraneous .long
__feroceon_setupfrom theferoceon_proc_infomacro.Reported-by Florian Fainelli <[email protected]>Suggested-by Arnd Bergmann <[email protected]>Signed-off-by Andrew Lunn <[email protected]>Cc Ard Biesheuvel <[email protected]>Fixes bf35706f3d09 ("ARM: 8314/1: replace PROCINFO embedded branch with relative offset")
Quoted 19 lines
--- arch/arm/mm/proc-feroceon.S | 1 - 1 file changed, 1 deletion(-)arch/arm/mm/proc-feroceon.S +0
-2@@ -602,7 +602,6 @@ __\name\()_proc_info: PMD_SECT_AP_WRITE | \ PMD_SECT_AP_READ initfn __feroceon_setup, __\name\()_proc_info - .long __feroceon_setup .long cpu_arch_name .long cpu_elf_name .long HWCAP_SWP|HWCAP_HALF|HWCAP_THUMB|HWCAP_FAST_MULT|HWCAP_EDSP --2.1.4
PATCH 1/1 ARM: proc-feroceon: Fix feroceon_proc_info macro
In reply to Andrew LunnQuoted 9 lines · Andrew Lunn
bf35706f3d09("ARM: 8314/1: replace PROCINFO embedded branch with relative offset") broke booting for Kirkwood. The kernel would say:Starting kernel ...
Uncompressing Linux... done, booting the kernel.
Error: unrecognized/unsupported processor variant (
0x56251311).
Quoted 7 lines
Fix it by removing the extraneous .long
__feroceon_setupfrom theferoceon_proc_infomacro.Reported-by Florian Fainelli <[email protected]>Suggested-by Arnd Bergmann <[email protected]>Signed-off-by Andrew Lunn <[email protected]>Cc Ard Biesheuvel <[email protected]>
Thanks everyone!
Quoted 18 lines
Fixes bf35706f3d09 ("ARM: 8314/1: replace PROCINFO embedded branch with relative offset")--- arch/arm/mm/proc-feroceon.S | 1 - 1 file changed, 1 deletion(-)arch/arm/mm/proc-feroceon.S +0
-1@@ -602,7 +602,6 @@ __\name\()_proc_info: PMD_SECT_AP_WRITE | \ PMD_SECT_AP_READ initfn __feroceon_setup, __\name\()_proc_info - .long __feroceon_setup .long cpu_arch_name .long cpu_elf_name .long HWCAP_SWP|HWCAP_HALF|HWCAP_THUMB|HWCAP_FAST_MULT|HWCAP_EDSP
Signature · 1 line
Florian
PATCH 1/1 ARM: proc-feroceon: Fix feroceon_proc_info macro
In reply to Andrew LunnHi,
Quoted 9 lines · Andrew Lunn
bf35706f3d09("ARM: 8314/1: replace PROCINFO embedded branch with relative offset") broke booting for Kirkwood. The kernel would say:Starting kernel ...
Uncompressing Linux... done, booting the kernel.
Error: unrecognized/unsupported processor variant (
0x56251311).
Quoted 8 lines
Fix it by removing the extraneous .long
__feroceon_setupfrom theferoceon_proc_infomacro.Reported-by Florian Fainelli <[email protected]>Suggested-by Arnd Bergmann <[email protected]>Signed-off-by Andrew Lunn <[email protected]>Cc Ard Biesheuvel <[email protected]>Fixes bf35706f3d09 ("ARM: 8314/1: replace PROCINFO embedded branch with relative offset")
A.