Skip to contentSkip to conversation

Regression: Kirkwood fails to boot because of bf35706f3d0929b

PATCH New Andrew Lunn 4 participants 6 messages Apr 29, 2015 – May 2, 2015 Arm (32-bit)

lore
Share & tools
lore
#0 lore raw

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

#1 lore raw
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 +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.

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
index e494d6d6acbe..92e08bf37aad 100644
@@ -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.

#2 lore raw

PATCH 1/1 ARM: proc-feroceon: Fix feroceon_proc_info macro

In reply to 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).

Fix it by removing the extraneous .long __feroceon_setup from the feroceon_proc_info macro.

Cc Ard Biesheuvel <[email protected]>
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
index e494d6d6acbe..92e08bf37aad 100644
@@ -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
#3 lore raw

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_setup from the feroceon_proc_info macro.

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
index e494d6d6acbe..92e08bf37aad 100644
@@ -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

#4 lore raw

PATCH 1/1 ARM: proc-feroceon: Fix feroceon_proc_info macro

In reply to Andrew Lunn
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 7 lines

Fix it by removing the extraneous .long __feroceon_setup from the feroceon_proc_info macro.

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
index e494d6d6acbe..92e08bf37aad 100644
@@ -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
#5 lore raw

PATCH 1/1 ARM: proc-feroceon: Fix feroceon_proc_info macro

In reply to Andrew Lunn

Hi,

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_setup from the feroceon_proc_info macro.

Cc Ard Biesheuvel <[email protected]>
Fixes bf35706f3d09 ("ARM: 8314/1: replace PROCINFO embedded branch with relative offset")

A.