kexec for powerpc mpc85xx processors
Matthew McClintock
msm at freescale.com
Sun Jul 11 12:53:58 EDT 2010
On Sat, 2010-07-10 at 14:38 +0530, krish wrote:
> Hi,
>
> I have gone through the kexec syscall implementation in kernel in the
> view of mpc83xx processor. Currently, I am testing for mpc83xx based
> card.
Which are we talking about? You said mpc85xx NOT mpc83xx first, right?
>
> The compile error i got was:
> kexec/arch/ppc/Makefile:4: kexec/arch/ppc/libfdt/Makefile.libfdt: No
> such file or directory
Well, does this file exist? If not you might not have a complete
kexec-tools package.
> make: *** No rule to make target
> `kexec/arch/ppc/libfdt/Makefile.libfdt'. Stop.
>
> I have commented the rule to include Makefile.libfdt in
> "kexec/arch/ppc/Makefile", becuase the rules to compile source files
> of libfdt folder are already present in the arch/ppc/Makefile.
>
> then i got following compile error:
> /opt/ELDK41/usr/bin/ppc_6xx-gcc -g -O2 -fno-strict-aliasing -Wall
> -Wstrict-prototypes -I./include -I./util_lib/include -Iinclude/
> -I./kexec/arch/ppc/libfdt -I./kexec/arch/ppc/include -c -MD -o
> kexec/arch/ppc/kexec-ppc.o kexec/arch/ppc/kexec-ppc.c
> kexec/arch/ppc/kexec-ppc.c:24:31: error: crashdump-powerpc.h: No such
> file or directory
> kexec/arch/ppc/kexec-ppc.c: In function 'get_devtree_details':
> kexec/arch/ppc/kexec-ppc.c:389: warning: implicit declaration of
> function 'add_usable_mem_rgns'
> kexec/arch/ppc/kexec-ppc.c:390: error: 'KDUMP_BACKUP_LIMIT' undeclared
> (first use in this function)
> kexec/arch/ppc/kexec-ppc.c:390: error: (Each undeclared identifier is
> reported only once
> kexec/arch/ppc/kexec-ppc.c:390: error: for each function it appears
> in.)
>
>
> Below is the full dump of configure and make commands.
> ==================================================================
> [krishna at Amru kexec-tools-2.0.2-rc1]$ ./configure
> --prefix=/home/krishna/work/KEXEC/kexec-tools-2.0.2-rc1/
> CC=/opt/ELDK41/usr/bin/ppc_6xx-gcc LD=/opt/ELDK41/usr/bin/ppc_6xx-ld
> BUILD_CC=/usr/bin/gcc --target=ppc --host=i686
> TARGET_CC=/opt/ELDK41/usr/bin/ppc_6xx-gcc
> configure: WARNING: If you wanted to set the --build type, don't use
> --host.
> If a cross compiler is detected then cross compile mode will be
> used.
> checking build system type... i686-pc-linux-gnu
> checking host system type... i686-pc-none
> checking target system type... powerpc-unknown-none
> checking for i686-gcc... /opt/ELDK41/usr/bin/ppc_6xx-gcc
> checking whether the C compiler works... yes
> checking for C compiler default output file name... a.out
> checking for suffix of executables...
> checking whether we are cross compiling... yes
> checking for suffix of object files... o
> checking whether we are using the GNU C compiler... yes
> checking whether /opt/ELDK41/usr/bin/ppc_6xx-gcc accepts -g... yes
> checking for /opt/ELDK41/usr/bin/ppc_6xx-gcc option to accept ISO
> C89... none needed
> checking for -gcc... /usr/bin/gcc
> checking how to run the C
> preprocessor... /opt/ELDK41/usr/bin/ppc_6xx-gcc -E
> checking for i686-ld... /opt/ELDK41/usr/bin/ppc_6xx-ld
> checking for i686-as... no
> checking for as... as
> configure: WARNING: using cross tools not prefixed with host triplet
> checking for i686-objcopy... no
> checking for objcopy... objcopy
> checking for i686-ar... no
> checking for ar... ar
> checking for ppc-gcc... /opt/ELDK41/usr/bin/ppc_6xx-gcc
> checking for ppc-ld... no
> checking for powerpc-unknown-none-ld... no
> checking for ld... ld
> checking whether /opt/ELDK41/usr/bin/ppc_6xx-gcc accepts
> -fno-zero-initialized-in-bss... Yes
> checking for a BSD-compatible install... /usr/bin/install -c
> checking for mkdir... mkdir
> checking for rm... rm
> checking for cp... cp
> checking for ln... ln
> checking for tar... tar
> checking for rpmbuild... rpmbuild
> checking for sed... sed
> checking for find... find
> checking for xargs... xargs
> checking for dirname... dirname
> checking for grep that handles long lines and -e... /bin/grep
> checking for egrep... /bin/grep -E
> checking for ANSI C header files... yes
> checking for sys/types.h... yes
> checking for sys/stat.h... yes
> checking for stdlib.h... yes
> checking for string.h... yes
> checking for memory.h... yes
> checking for strings.h... yes
> checking for inttypes.h... yes
> checking for stdint.h... yes
> checking for unistd.h... yes
> checking zlib.h usability... yes
> checking zlib.h presence... yes
> checking for zlib.h... yes
> checking for inflateInit_ in -lz... yes
> checking lzma.h usability... no
> checking lzma.h presence... no
> checking for lzma.h... no
> checking xenctrl.h usability... no
> checking xenctrl.h presence... no
> checking for xenctrl.h... no
> configure: creating ./config.status
> config.status: creating Makefile
> config.status: creating include/config.h
>
> output of "make" command
> --------------------------------------------------------
> /opt/ELDK41/usr/bin/ppc_6xx-gcc -g -O2 -fno-strict-aliasing -Wall
> -Wstrict-prototypes -I./include -I./util_lib/include -Iinclude/
> -I./kexec/arch/ppc/libfdt -I./kexec/arch/ppc/include -c -MD -o
> kexec/kexec.o kexec/kexec.c
> /opt/ELDK41/usr/bin/ppc_6xx-gcc -g -O2 -fno-strict-aliasing -Wall
> -Wstrict-prototypes -I./include -I./util_lib/include -Iinclude/
> -I./kexec/arch/ppc/libfdt -I./kexec/arch/ppc/include -c -MD -o
> kexec/ifdown.o kexec/ifdown.c
> /opt/ELDK41/usr/bin/ppc_6xx-gcc -g -O2 -fno-strict-aliasing -Wall
> -Wstrict-prototypes -I./include -I./util_lib/include -Iinclude/
> -I./kexec/arch/ppc/libfdt -I./kexec/arch/ppc/include -c -MD -o
> kexec/kexec-elf.o kexec/kexec-elf.c
> /opt/ELDK41/usr/bin/ppc_6xx-gcc -g -O2 -fno-strict-aliasing -Wall
> -Wstrict-prototypes -I./include -I./util_lib/include -Iinclude/
> -I./kexec/arch/ppc/libfdt -I./kexec/arch/ppc/include -c -MD -o
> kexec/kexec-elf-exec.o kexec/kexec-elf-exec.c
> /opt/ELDK41/usr/bin/ppc_6xx-gcc -g -O2 -fno-strict-aliasing -Wall
> -Wstrict-prototypes -I./include -I./util_lib/include -Iinclude/
> -I./kexec/arch/ppc/libfdt -I./kexec/arch/ppc/include -c -MD -o
> kexec/kexec-elf-core.o kexec/kexec-elf-core.c
> /opt/ELDK41/usr/bin/ppc_6xx-gcc -g -O2 -fno-strict-aliasing -Wall
> -Wstrict-prototypes -I./include -I./util_lib/include -Iinclude/
> -I./kexec/arch/ppc/libfdt -I./kexec/arch/ppc/include -c -MD -o
> kexec/kexec-elf-rel.o kexec/kexec-elf-rel.c
> /opt/ELDK41/usr/bin/ppc_6xx-gcc -g -O2 -fno-strict-aliasing -Wall
> -Wstrict-prototypes -I./include -I./util_lib/include -Iinclude/
> -I./kexec/arch/ppc/libfdt -I./kexec/arch/ppc/include -c -MD -o
> kexec/kexec-elf-boot.o kexec/kexec-elf-boot.c
> /opt/ELDK41/usr/bin/ppc_6xx-gcc -g -O2 -fno-strict-aliasing -Wall
> -Wstrict-prototypes -I./include -I./util_lib/include -Iinclude/
> -I./kexec/arch/ppc/libfdt -I./kexec/arch/ppc/include -c -MD -o
> kexec/kexec-iomem.o kexec/kexec-iomem.c
> /opt/ELDK41/usr/bin/ppc_6xx-gcc -g -O2 -fno-strict-aliasing -Wall
> -Wstrict-prototypes -I./include -I./util_lib/include -Iinclude/
> -I./kexec/arch/ppc/libfdt -I./kexec/arch/ppc/include -c -MD -o
> kexec/firmware_memmap.o kexec/firmware_memmap.c
> /opt/ELDK41/usr/bin/ppc_6xx-gcc -g -O2 -fno-strict-aliasing -Wall
> -Wstrict-prototypes -I./include -I./util_lib/include -Iinclude/
> -I./kexec/arch/ppc/libfdt -I./kexec/arch/ppc/include -c -MD -o
> kexec/crashdump.o kexec/crashdump.c
> /opt/ELDK41/usr/bin/ppc_6xx-gcc -g -O2 -fno-strict-aliasing -Wall
> -Wstrict-prototypes -I./include -I./util_lib/include -Iinclude/
> -I./kexec/arch/ppc/libfdt -I./kexec/arch/ppc/include -c -MD -o
> kexec/crashdump-xen.o kexec/crashdump-xen.c
> /opt/ELDK41/usr/bin/ppc_6xx-gcc -g -O2 -fno-strict-aliasing -Wall
> -Wstrict-prototypes -I./include -I./util_lib/include -Iinclude/
> -I./kexec/arch/ppc/libfdt -I./kexec/arch/ppc/include -c -MD -o
> kexec/phys_arch.o kexec/phys_arch.c
> /opt/ELDK41/usr/bin/ppc_6xx-gcc -g -O2 -fno-strict-aliasing -Wall
> -Wstrict-prototypes -I./include -I./util_lib/include -Iinclude/
> -I./kexec/arch/ppc/libfdt -I./kexec/arch/ppc/include -c -MD -o
> kexec/lzma.o kexec/lzma.c
> /opt/ELDK41/usr/bin/ppc_6xx-gcc -g -O2 -fno-strict-aliasing -Wall
> -Wstrict-prototypes -I./include -I./util_lib/include -Iinclude/
> -I./kexec/arch/ppc/libfdt -I./kexec/arch/ppc/include -c -MD -o
> kexec/zlib.o kexec/zlib.c
> /opt/ELDK41/usr/bin/ppc_6xx-gcc -g -O2 -fno-strict-aliasing -Wall
> -Wstrict-prototypes -I./include -I./util_lib/include -Iinclude/
> -I./kexec/arch/ppc/libfdt -I./kexec/arch/ppc/include -c -MD -o
> kexec/proc_iomem.o kexec/proc_iomem.c
> /opt/ELDK41/usr/bin/ppc_6xx-gcc -g -O2 -fno-strict-aliasing -Wall
> -Wstrict-prototypes -I./include -I./util_lib/include -Iinclude/
> -I./kexec/arch/ppc/libfdt -I./kexec/arch/ppc/include -c -MD -o
> kexec/virt_to_phys.o kexec/virt_to_phys.c
> /opt/ELDK41/usr/bin/ppc_6xx-gcc -g -O2 -fno-strict-aliasing -Wall
> -Wstrict-prototypes -I./include -I./util_lib/include -Iinclude/
> -I./kexec/arch/ppc/libfdt -I./kexec/arch/ppc/include -c -MD -o
> kexec/phys_to_virt.o kexec/phys_to_virt.c
> /opt/ELDK41/usr/bin/ppc_6xx-gcc -g -O2 -fno-strict-aliasing -Wall
> -Wstrict-prototypes -I./include -I./util_lib/include -Iinclude/
> -I./kexec/arch/ppc/libfdt -I./kexec/arch/ppc/include -c -MD -o
> kexec/add_segment.o kexec/add_segment.c
> /opt/ELDK41/usr/bin/ppc_6xx-gcc -g -O2 -fno-strict-aliasing -Wall
> -Wstrict-prototypes -I./include -I./util_lib/include -Iinclude/
> -I./kexec/arch/ppc/libfdt -I./kexec/arch/ppc/include -c -MD -o
> kexec/add_buffer.o kexec/add_buffer.c
> /opt/ELDK41/usr/bin/ppc_6xx-gcc -g -O2 -fno-strict-aliasing -Wall
> -Wstrict-prototypes -I./include -I./util_lib/include -Iinclude/
> -I./kexec/arch/ppc/libfdt -I./kexec/arch/ppc/include -c -MD -o
> kexec/arch_reuse_initrd.o kexec/arch_reuse_initrd.c
> /opt/ELDK41/usr/bin/ppc_6xx-gcc -g -O2 -fno-strict-aliasing -Wall
> -Wstrict-prototypes -I./include -I./util_lib/include -Iinclude/
> -I./kexec/arch/ppc/libfdt -I./kexec/arch/ppc/include -c -MD -o
> kexec/arch_init.o kexec/arch_init.c
> /opt/ELDK41/usr/bin/ppc_6xx-gcc -g -O2 -fno-strict-aliasing -Wall
> -Wstrict-prototypes -I./include -I./util_lib/include -Iinclude/
> -I./kexec/arch/ppc/libfdt -I./kexec/arch/ppc/include -c -MD -o
> kexec/arch/ppc/kexec-ppc.o kexec/arch/ppc/kexec-ppc.c
> kexec/arch/ppc/kexec-ppc.c:24:31: error: crashdump-powerpc.h: No such
> file or directory
> kexec/arch/ppc/kexec-ppc.c: In function 'get_devtree_details':
> kexec/arch/ppc/kexec-ppc.c:389: warning: implicit declaration of
> function 'add_usable_mem_rgns'
> kexec/arch/ppc/kexec-ppc.c:390: error: 'KDUMP_BACKUP_LIMIT' undeclared
> (first use in this function)
> kexec/arch/ppc/kexec-ppc.c:390: error: (Each undeclared identifier is
> reported only once
> kexec/arch/ppc/kexec-ppc.c:390: error: for each function it appears
> in.)
> make: *** [kexec/arch/ppc/kexec-ppc.o] Error 1
> ==============================================================
>
>
> On Sat, Jul 10, 2010 at 12:53 PM, Matthew McClintock
> <msm at freescale.com> wrote:
>
> On Sat, 2010-07-10 at 15:37 +0900, Simon Horman wrote:
> > On Sat, Jul 10, 2010 at 10:14:25AM +0530, krish wrote:
> > > Hi,
> > >
> > > I am using linux-2.6.34.1 version for both mpc83xx and
> mpc85xx processors.
> > > This version of kernel supports kexec for both 83xx and
> 85xx processors.
> > > I have been using ELDK toolchain for PowerPC processors.
> > > I am using u-boot as boot loader and uImage & dtb images
> as Linux images.
> > >
> > > I have downloaded 2.0.2-rc1 package and tried to compile
> for mpc83xx.
> > > I have used following command to configure kexec-tools for
> ppc.
> > > ./configure
> --prefix=/home/krishna/work/kexec-tools-6dd624d/
> > > CC=/opt/ELDK41/usr/bin/ppc_6xx-gcc
> LD=/opt/ELDK41/usr/bin/ppc_6xx-ld
> > > BUILD_CC=/usr/bin/gcc --target=ppc --host=i686
> > > CC=/opt/ELDK41/usr/bin/ppc_6xx-gcc
> > > TARGET_CC=/opt/ELDK41/usr/bin/ppc_6xx-gcc;
> > >
> > > The compilation was broken for PPC.
> >
> > Could you provide the compile errors that you are seeing?
> >
>
>
> Also, how do you know your kernel supports kexec?
>
> -Matthew
>
>
>
>
>
> --
> Regards,
> Radha Krishna
> "Yesterday is history, Tomorrow is mystery, Today is gift"
-M
More information about the kexec
mailing list