BUG: 32 Bit Kernel kexec hangs on P2020

tiejun.chen tiejun.chen at windriver.com
Thu Jul 11 12:32:30 EST 2013


On 07/10/2013 06:00 PM, Stefani Seibold wrote:
> Am Mittwoch, den 10.07.2013, 16:48 +0800 schrieb tiejun.chen:
>> On 07/10/2013 04:39 PM, Stefani Seibold wrote:
>>> Hi,
>>>
>>> i have tried to kexec a 32 bit kernel on a Freescale P2020 dual core CPU
>>> (e500v2, revison 5.1 - pvr 8021 1051), but Kexec will hang after the
>>> "Bye!".
>>>
>>> The host and the kexec kernel are the same, based on the current kernel
>>> version 3.10.
>>>
>>> I have tried it with kexec-tools 2.0.4.git released 30 June 2013.
>>>
>>> Invoking kexec with
>>>
>>> kexec --command-line "1 maxcpus=1 noirqdistrib reset_devices $(cat /proc/cmdline)" -t elf-ppc --dtb=rs2020.dtb \
>>> --reuse-node="/cpus/PowerPC,P2020 at 0/timebase-frequency" \
>>> --reuse-node="/cpus/PowerPC,P2020 at 0/bus-frequency" \
>>> --reuse-node="/cpus/PowerPC,P2020 at 0/clock-frequency" \
>>> --reuse-node="/cpus/PowerPC,P2020 at 0/next-level-cache" \
>>> --reuse-node="/cpus/PowerPC,P2020 at 1/timebase-frequency" \
>>> --reuse-node="/cpus/PowerPC,P2020 at 1/bus-frequency" \
>>> --reuse-node="/cpus/PowerPC,P2020 at 1/clock-frequency" \
>>> --reuse-node="/cpus/PowerPC,P2020 at 1/next-level-cache" \
>>> --reuse-node="/cpus/PowerPC,P2020 at 1/cpu-release-addr" \
>>> --reuse-node="/cpus/PowerPC,P2020 at 1/enable-method" \
>>> --reuse-node="/soc at ffe00000/bus-frequency" \
>>> --reuse-node="/soc at ffe00000/serial at 4500/clock-frequency" \
>>> --reuse-node="/soc at ffe00000/ethernet at 24000/local-mac-address" \
>>> -d -l -x vmlinux
>>> kexec -e
>>
>> Could you try again with one simple command like,
>>
>> kexec -l vmlinux --append="`cat /proc/cmdline`";kexec -e
>>
>
> Great, this works.
>
> I did more test and the issue for the fail is the passing of the device
> tree. But the device tree is exact the same as the previous used one.
>
> Is passing a new device tree not allowed?

No, I think this is not interdicted.

I suspect you probably don't pass a proper dtb, so you can take a further test 
to figure out this problem.

For example, in the u-boot prompt, you can use the fdt command to get last dtb 
after that board setup from u-boot, then pass that directly to try.

Tiejun



More information about the Linuxppc-dev mailing list