From: David Vrabel <david.vrabel@citrix.com>
To: Ian Campbell <ian.campbell@citrix.com>
Cc: xen-devel@lists.xen.org
Subject: Re: [PATCH 16/16] arm: use /chosen/module1-args for domain 0 command line
Date: Thu, 6 Sep 2012 15:19:21 +0100 [thread overview]
Message-ID: <5048B0E9.4010706@citrix.com> (raw)
In-Reply-To: <1346679056-8108-16-git-send-email-ian.campbell@citrix.com>
On 03/09/12 14:30, Ian Campbell wrote:
> Ideally this would use module1-args iff the kernel came from
> module1-{start,end} and the existing xen,dom0-bootargs if the kernel
> came from flash, but this approach is simpler and has the sme effect
> in practice.
Is module1-args defined in a spec somewhere?
If the DT has xen,dom0-bootargs followed by module1-args you will end up
with two bootargs nodes. Suggest preferring the first one found and
discard the other.
> Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
> ---
> xen/arch/arm/domain_build.c | 23 ++++++++++++++++++++---
> 1 files changed, 20 insertions(+), 3 deletions(-)
>
> diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
> index e96ed10..2b65637 100644
> --- a/xen/arch/arm/domain_build.c
> +++ b/xen/arch/arm/domain_build.c
> @@ -88,6 +88,8 @@ static int write_properties(struct domain *d, struct kernel_info *kinfo,
> {
> int prop;
>
> + int had_mod1_args = 0;
> +
> for ( prop = fdt_first_property_offset(fdt, node);
> prop >= 0;
> prop = fdt_next_property_offset(fdt, prop) )
> @@ -104,15 +106,30 @@ static int write_properties(struct domain *d, struct kernel_info *kinfo,
> prop_len = fdt32_to_cpu(p->len);
>
> /*
> - * In chosen node: replace bootargs with value from
> - * xen,dom0-bootargs.
> + * In chosen node:
> + *
> + * * replace bootargs with value from module1-args, falling
> + * back to xen,dom0-bootargs if not present.
> + * * remove all other module*.
> */
> if ( device_tree_node_matches(fdt, node, "chosen") )
> {
> if ( strcmp(prop_name, "bootargs") == 0 )
> continue;
> - if ( strcmp(prop_name, "xen,dom0-bootargs") == 0 )
> + if ( strncmp(prop_name, "module", strlen("module")) == 0 )
> + continue;
Clearer to write this as:
if ( strncmp(prop_name, "module", strlen("module")) == 0 )
if ( strcmp(prop_name, "module1-args") == 0 )
{
prop_name = "bootargs";
had_mod1_args = 1;
}
else
continue;
}
> + if ( strcmp(prop_name, "xen,dom0-bootargs") == 0 )
> + {
> + if ( had_mod1_args )
> + continue;
> + else
> + prop_name = "bootargs";
> + }
> }
> /*
> * In a memory node: adjust reg property.
next prev parent reply other threads:[~2012-09-06 14:19 UTC|newest]
Thread overview: 47+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-09-03 13:28 [PATCH 0/16] arm: support for initial modules (e.g. dom0) and DTB supplied in RAM Ian Campbell
2012-09-03 13:30 ` [PATCH 01/16] arm: Zero the BSS at start of day Ian Campbell
2012-09-06 9:56 ` Tim Deegan
2012-09-03 13:30 ` [PATCH 02/16] Create a raw binary target Ian Campbell
2012-09-06 10:01 ` Tim Deegan
2012-09-06 10:29 ` Ian Campbell
2012-09-03 13:30 ` [PATCH 03/16] arm: make virtual address defines unsigned Ian Campbell
2012-09-06 10:02 ` Tim Deegan
2012-09-03 13:30 ` [PATCH 04/16] arm: handle xenheap which isn't at the start of RAM Ian Campbell
2012-09-06 11:36 ` Tim Deegan
2012-09-03 13:30 ` [PATCH 05/16] arm: move get_paddr_function to arch setup.c from device_tree.c Ian Campbell
2012-09-06 11:40 ` Tim Deegan
2012-09-03 13:30 ` [PATCH 06/16] arm: parse modules from DT during early boot Ian Campbell
2012-09-06 11:47 ` Tim Deegan
2012-09-06 11:53 ` Ian Campbell
2012-11-30 14:58 ` Stefano Stabellini
2012-09-03 13:30 ` [PATCH 07/16] arm: avoid placing Xen over any modules Ian Campbell
2012-09-06 12:01 ` Tim Deegan
2012-09-03 13:30 ` [PATCH 08/16] arm: really allocate boot frametable pages with 32M alignment Ian Campbell
2012-09-06 12:04 ` Tim Deegan
2012-09-03 13:30 ` [PATCH 09/16] arm: avoid allocating the heaps over modules or xen itself Ian Campbell
2012-09-06 12:08 ` Tim Deegan
2012-09-03 13:30 ` [PATCH 10/16] arm: print a message if multiple banks of memory are present Ian Campbell
2012-09-06 12:31 ` Tim Deegan
2012-09-03 13:30 ` [PATCH 11/16] arm: mark heap and frametable limits as read mostly Ian Campbell
2012-09-06 13:29 ` Tim Deegan
2012-09-03 13:30 ` [PATCH 12/16] arm: const-correctness in virt_to_maddr Ian Campbell
2012-09-06 13:33 ` Tim Deegan
2012-09-03 13:30 ` [PATCH 13/16] device-tree: get_val cannot cope with cells > 2, add a BUG Ian Campbell
2012-09-06 13:35 ` Tim Deegan
2012-09-03 13:30 ` [PATCH 14/16] arm: load dom0 kernel from first boot module Ian Campbell
2012-09-06 13:44 ` Tim Deegan
2012-09-03 13:30 ` [PATCH 15/16] arm: discard boot modules after building domain 0 Ian Campbell
2012-09-06 13:53 ` Tim Deegan
2012-09-06 13:57 ` Ian Campbell
2012-09-06 14:03 ` Tim Deegan
2012-09-03 13:30 ` [PATCH 16/16] arm: use /chosen/module1-args for domain 0 command line Ian Campbell
2012-09-06 13:50 ` Tim Deegan
2012-09-06 13:55 ` Ian Campbell
2012-09-06 13:58 ` Tim Deegan
2012-09-06 13:59 ` Ian Campbell
2012-09-06 14:19 ` David Vrabel [this message]
2012-09-06 14:28 ` Ian Campbell
2012-09-06 14:46 ` [PATCH 0/16] arm: support for initial modules (e.g. dom0) and DTB supplied in RAM David Vrabel
2012-09-10 16:12 ` Ian Campbell
2012-09-17 11:39 ` Stefano Stabellini
2012-10-11 14:57 ` Ian Campbell
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=5048B0E9.4010706@citrix.com \
--to=david.vrabel@citrix.com \
--cc=ian.campbell@citrix.com \
--cc=xen-devel@lists.xen.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.