[oe] arm kexec commandline support

Bob Dunlop rdunlop at guralp.com
Thu Sep 27 16:20:40 UTC 2007


Hans Henry von Tresckow wrote:
>On 6/7/07, Thomas Kunze <thommycheck at gmx.de> wrote:
...
>> I have written a quick hack to support custom commandlines for arm with
>> kexec. You need:
>>
>>
>> http://www2.informatik.hu-berlin.de/~tkunze/zaurus/patches/kexec_commandline-3.patch
>>
>> and:
>>
>>
>> http://www2.informatik.hu-berlin.de/~tkunze/zaurus/patches/atag_support.patch
>>
>> (from lak)
...
>
>I  tested this  with linux-rp-2.6.20 on poodle. The kernel will boot and I
>can kexec other kernels with built in cmdlines. If I try to set a new
>cmdline however, it segfaults. Here is the crash dump:
>
><0>Starting new kernel
><1>Unable to handle kernel paging request at virtual address e0000100

I to am searching for a kexec solution (for a Compulab CM-X270)

I can progress this code a little further and eliminate the segfault with
the following patch, but still nothing after the final Bye! message :(


--- linux-2.6.22.9/arch/arm/kernel/setup.c-orig 2007-09-27 15:23:22.000000000 +0100
+++ linux-2.6.22.9/arch/arm/kernel/setup.c      2007-09-27 16:57:17.000000000 +0100
@@ -769,6 +769,8 @@
 }
 arch_initcall(customize_machine);
 
+extern unsigned long kexec_atag_list;
+
 void __init setup_arch(char **cmdline_p)
 {
        struct tag *tags = (struct tag *)&init_tags;
@@ -782,10 +784,18 @@
        if (mdesc->soft_reboot)
                reboot_setup("s");
 
+       printk(KERN_INFO "__atags_pointer %x, mdesc->boot_params %x\n",
+                                       __atags_pointer, mdesc->boot_params);
        if (__atags_pointer)
+       {
                tags = phys_to_virt(__atags_pointer);
+               kexec_atag_list = __atags_pointer;
+       }
        else if (mdesc->boot_params)
+       {
                tags = phys_to_virt(mdesc->boot_params);
+               kexec_atag_list = mdesc->boot_params;
+       }
 
        /*
         * If we have the old style parameters, convert them to

-- 
        Bob Dunlop




More information about the Openembedded-devel mailing list