Message ID | 20111114054129.23410.57513.stgit@suzukikp.in.ibm.com (mailing list archive) |
---|---|
State | Superseded |
Headers | show |
[ Don't know what happened to the Cover message. Resending this again ] The following series implements: * Generic framework for relocatable kernel on PPC32, based on processing the dynamic relocation entries. * Relocatable kernel support for 44x * Kdump support for 44x. Doesn't support 47x yet, as the kexec support is missing. Changes from V2: * Renamed old style mapping based RELOCATABLE on BookE to DYNAMIC_MEMSTART. Suggested by: Scott Wood * Added support for DYNAMIC_MEMSTART on PPC440x * Reverted back to RELOCATABLE and RELOCATABLE_PPC32 from RELOCATABLE_PPC32_PIE * Ensure the modified instructions are flushed and the i-cache invalidated at the end of relocate(). - Reported by : Josh Poimboeuf Changes from V1: * Splitted patch 'Enable CONFIG_RELOCATABLE for PPC44x' to move some of the generic bits to a new patch. * Renamed RELOCATABLE_PPC32 to RELOCATABLE_PPC32_PIE and provided options to retained old style mapping. (Suggested by: Scott Wood) * Added support for avoiding the overlapping of uncompressed kernel with boot wrapper for PPC images. The patches are based on -next tree for ppc. I have tested these patches on Ebony, Sequoia and Virtex(QEMU Emulated). I haven't tested the RELOCATABLE bits on PPC_47x yet, as I don't have access to one. However, it should work fine there as we only depend on the runtime address and the XLAT entry setup by the boot loader. It would be great if somebody could test these patches on a 47x. --- Suzuki K. Poulose (8): [boot] Change the load address for the wrapper to fit the kernel [44x] Enable CRASH_DUMP for 440x [44x] Enable CONFIG_RELOCATABLE for PPC44x [ppc] Define virtual-physical translations for RELOCATABLE [ppc] Process dynamic relocations for kernel [44x] Enable DYNAMIC_MEMSTART for 440x [booke] Rename mapping based RELOCATABLE to DYNAMIC_MEMSTART for BookE [44x] Fix typo in KEXEC Kconfig dependency arch/powerpc/Kconfig | 39 ++++- arch/powerpc/Makefile | 6 - arch/powerpc/boot/wrapper | 20 ++ arch/powerpc/configs/44x/iss476-smp_defconfig | 2 arch/powerpc/include/asm/kdump.h | 5 - arch/powerpc/include/asm/page.h | 89 ++++++++++- arch/powerpc/kernel/Makefile | 2 arch/powerpc/kernel/crash_dump.c | 4 arch/powerpc/kernel/head_44x.S | 100 ++++++++++++ arch/powerpc/kernel/head_fsl_booke.S | 2 arch/powerpc/kernel/machine_kexec.c | 2 arch/powerpc/kernel/prom_init.c | 2 arch/powerpc/kernel/reloc_32.S | 207 +++++++++++++++++++++++++ arch/powerpc/kernel/vmlinux.lds.S | 8 + arch/powerpc/mm/44x_mmu.c | 2 arch/powerpc/mm/init_32.c | 7 + 16 files changed, 470 insertions(+), 27 deletions(-) create mode 100644 arch/powerpc/kernel/reloc_32.S -- Suzuki
On Mon, Nov 14, 2011 at 12:41 AM, Suzuki K. Poulose <suzuki@in.ibm.com> wrote: > Kexec is not supported on 47x. 47x is a variant of 44x with slightly > different MMU and SMP support. There was a typo in the Kconfig > dependency for KEXEC. This patch fixes the same. > > Signed-off-by: Suzuki K. Poulose <suzuki@in.ibm.com> > Cc: Kumar Gala <galak@kernel.crashing.org> > Cc: Josh Boyer <jwboyer@gmail.com> > Cc: linux ppc dev <linuxppc-dev@lists.ozlabs.org> Ben already took this one for 3.2. I should have added my Acked-by a while ago. josh
different MMU and SMP support. There was a typo in the Kconfig dependency for KEXEC. This patch fixes the same. Signed-off-by: Suzuki K. Poulose <suzuki@in.ibm.com> Cc: Kumar Gala <galak@kernel.crashing.org> Cc: Josh Boyer <jwboyer@gmail.com> Cc: linux ppc dev <linuxppc-dev@lists.ozlabs.org> --- arch/powerpc/Kconfig | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig index 8523bd1..d7c2d1a 100644 --- a/arch/powerpc/Kconfig +++ b/arch/powerpc/Kconfig @@ -345,7 +345,7 @@ config ARCH_ENABLE_MEMORY_HOTREMOVE config KEXEC bool "kexec system call (EXPERIMENTAL)" - depends on (PPC_BOOK3S || FSL_BOOKE || (44x && !SMP && !47x)) && EXPERIMENTAL + depends on (PPC_BOOK3S || FSL_BOOKE || (44x && !SMP && !PPC_47x)) && EXPERIMENTAL help kexec is a system call that implements the ability to shutdown your current kernel, and to start another kernel. It is like a reboot