kexec for powerpc mpc85xx processors

krish radhakrishna.p at gmail.com
Sat Jul 10 05:08:14 EDT 2010


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.

The compile error i got was:
kexec/arch/ppc/Makefile:4: kexec/arch/ppc/libfdt/Makefile.libfdt: No such
file or directory
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"
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.infradead.org/pipermail/kexec/attachments/20100710/86f15241/attachment-0001.html>


More information about the kexec mailing list