[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [RFC PATCH V1 2/2] arm_boot: conditionalised dtb comman
From: |
Peter Crosthwaite |
Subject: |
Re: [Qemu-devel] [RFC PATCH V1 2/2] arm_boot: conditionalised dtb command line update |
Date: |
Fri, 1 Jun 2012 11:56:14 +1000 |
On Fri, Jun 1, 2012 at 11:44 AM, Peter Maydell <address@hidden> wrote:
> On 1 June 2012 02:16, Peter A. G. Crosthwaite
> <address@hidden> wrote:
>> @@ -240,10 +241,13 @@ static int load_dtb(target_phys_addr_t addr, const
>> struct arm_boot_info *binfo)
>> fprintf(stderr, "couldn't set /memory/reg\n");
>> }
>>
>> - rc = qemu_devtree_setprop_string(fdt, "/chosen", "bootargs",
>> - binfo->kernel_cmdline);
>> - if (rc < 0) {
>> - fprintf(stderr, "couldn't set /chosen/bootargs\n");
>> + machine_opts = qemu_opts_find(qemu_find_opts("machine"), 0);
>> + if (machine_opts && qemu_opt_get(machine_opts, "append")) {
>> + rc = qemu_devtree_setprop_string(fdt, "/chosen", "bootargs",
>> + binfo->kernel_cmdline);
>> + if (rc < 0) {
>> + fprintf(stderr, "couldn't set /chosen/bootargs\n");
>> + }
>> }
>
> Can you just check for binfo->kernel_cmdline being NULL or not
> rather than rereading the option via qemu_opt_get? The latter
> seems pretty ugly.
>
No, it wont work,
vl.c will populate it with "\"\"":
if (machine_opts) {
...
kernel_cmdline = qemu_opt_get(machine_opts, "append");
} else {
kernel_filename = initrd_filename = kernel_cmdline = NULL;
}
if (!kernel_cmdline) {
kernel_cmdline = "";
}
binfo->kernel_cmdline will not be null on the omission of -append.
I did it this way as its the only way I can see where you can
determine whether or not -apend happened. You could strcmp with "\"\""
and use that as your condition, but then you have a possibly piece of
policy that an empty command means no update (i.e. you should still be
able to explictly -apend "\"\"" to wipe out the dtb command line).
Regards,
Peter
> -- PMM