linuxppc-dev.lists.ozlabs.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] powerpc/476fpe: Add support for kexec
@ 2015-12-14  3:31 Alistair Popple
  2015-12-17 11:57 ` Michael Ellerman
  0 siblings, 1 reply; 2+ messages in thread
From: Alistair Popple @ 2015-12-14  3:31 UTC (permalink / raw)
  To: linuxppc-dev, mpe; +Cc: ivan, Alistair Popple

PPC476FPE has a different PVR from previous PPC476 processors. The
kexec code checks the PVR in order to correctly setup the MMU. When
the initial support for 476FPE processors was added the corresponding
change in the kexec code was missed. This patch simply adds the check
and solves the following bug on kexec:

kexec: Starting new kernel
Bye!
Unable to handle kernel paging request for instruction fetch
Faulting instruction address: 0xee9a50f8
cpu 0x0: Vector: 400 (Instruction Access) at [ee9d7d20]
    pc: ee9a50f8
    lr: ee9a50e4
    sp: ee9d7dd0
    msr: 21020
    current = 0xee40f000
    pid   = 960, comm = kexec
enter ? for help
[link register   ] ee9a50e4
[ee9d7dd0] c0013748 default_machine_kexec+0x58/0x70 (unreliable)
[ee9d7df0] c0012f04 machine_kexec+0x34/0x40
[ee9d7e00] c00aa1ec kernel_kexec+0x9c/0xb0
[ee9d7e20] c005d704 SyS_reboot+0x1f4/0x220
[ee9d7f40] c000db68 ret_from_syscall+0x0/0x3c
--- Exception: c01 (System Call) at b77b69f4
SP (bfc4a670) is in userspace
0:mon>

Signed-off-by: Alistair Popple <alistair@popple.id.au>
Reported-by: Ivan Mikhaylov <ivan@ru.ibm.com>
---
 arch/powerpc/kernel/misc_32.S | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/arch/powerpc/kernel/misc_32.S b/arch/powerpc/kernel/misc_32.S
index ed3ab50..be8edd6 100644
--- a/arch/powerpc/kernel/misc_32.S
+++ b/arch/powerpc/kernel/misc_32.S
@@ -743,6 +743,8 @@ relocate_new_kernel:
 	/* Check for 47x cores */
 	mfspr	r3,SPRN_PVR
 	srwi	r3,r3,16
+	cmplwi	cr0,r3,PVR_476FPE@h
+	beq	setup_map_47x
 	cmplwi	cr0,r3,PVR_476@h
 	beq	setup_map_47x
 	cmplwi	cr0,r3,PVR_476_ISS@h
-- 
2.1.4

^ permalink raw reply related	[flat|nested] 2+ messages in thread

* Re: powerpc/476fpe: Add support for kexec
  2015-12-14  3:31 [PATCH] powerpc/476fpe: Add support for kexec Alistair Popple
@ 2015-12-17 11:57 ` Michael Ellerman
  0 siblings, 0 replies; 2+ messages in thread
From: Michael Ellerman @ 2015-12-17 11:57 UTC (permalink / raw)
  To: Alistair Popple, linuxppc-dev; +Cc: Alistair Popple, ivan

On Mon, 2015-14-12 at 03:31:24 UTC, Alistair Popple wrote:
> PPC476FPE has a different PVR from previous PPC476 processors. The
> kexec code checks the PVR in order to correctly setup the MMU. When
> the initial support for 476FPE processors was added the corresponding
> change in the kexec code was missed. This patch simply adds the check
> and solves the following bug on kexec:
> 
> kexec: Starting new kernel
> Bye!
> Unable to handle kernel paging request for instruction fetch
> Faulting instruction address: 0xee9a50f8
> cpu 0x0: Vector: 400 (Instruction Access) at [ee9d7d20]
>     pc: ee9a50f8
>     lr: ee9a50e4
>     sp: ee9d7dd0
>     msr: 21020
>     current = 0xee40f000
>     pid   = 960, comm = kexec
> enter ? for help
> [link register   ] ee9a50e4
> [ee9d7dd0] c0013748 default_machine_kexec+0x58/0x70 (unreliable)
> [ee9d7df0] c0012f04 machine_kexec+0x34/0x40
> [ee9d7e00] c00aa1ec kernel_kexec+0x9c/0xb0
> [ee9d7e20] c005d704 SyS_reboot+0x1f4/0x220
> [ee9d7f40] c000db68 ret_from_syscall+0x0/0x3c
> --- Exception: c01 (System Call) at b77b69f4
> SP (bfc4a670) is in userspace
> 0:mon>
> 
> Signed-off-by: Alistair Popple <alistair@popple.id.au>
> Reported-by: Ivan Mikhaylov <ivan@ru.ibm.com>

Applied to powerpc next, thanks.

https://git.kernel.org/powerpc/c/4450022b4952ce67d2f3006b4c

cheers

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2015-12-17 11:57 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-12-14  3:31 [PATCH] powerpc/476fpe: Add support for kexec Alistair Popple
2015-12-17 11:57 ` Michael Ellerman

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).