|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH v2 23/41] arm : acpi create chosen node for DOM0
Create a chosen node for DOM0 with
- bootargs
- initrd
Signed-off-by: Naresh Bhat <naresh.bhat@xxxxxxxxxx>
Signed-off-by: Parth Dixit <parth.dixit@xxxxxxxxxx>
---
xen/arch/arm/domain_build.c | 46 +++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 46 insertions(+)
diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
index c830702..e688a78 100644
--- a/xen/arch/arm/domain_build.c
+++ b/xen/arch/arm/domain_build.c
@@ -1219,6 +1219,47 @@ static int handle_node(struct domain *d, struct
kernel_info *kinfo,
return res;
}
#ifdef CONFIG_ACPI
+static int make_chosen_node(struct domain *d, const struct kernel_info *kinfo)
+{
+ int res = 0;
+ const char *bootargs = NULL;
+ const struct bootmodule *mod = kinfo->kernel_bootmodule;
+ void *fdt = kinfo->fdt;
+
+ DPRINT("Create bootargs chosen node\n");
+
+ if ( mod && mod->cmdline[0] )
+ bootargs = &mod->cmdline[0];
+
+ res = fdt_begin_node(fdt, "chosen");
+ if ( res )
+ return res;
+
+ res = fdt_property(fdt, "bootargs", bootargs, (strlen(bootargs)+1));
+ if ( res )
+ return res;
+
+ /*
+ * If the bootloader provides an initrd, we must create a placeholder
+ * for the initrd properties. The values will be replaced later.
+ */
+ if ( mod && mod->size )
+ {
+ u64 a = 0;
+ res = fdt_property(kinfo->fdt, "linux,initrd-start", &a, sizeof(a));
+ if ( res )
+ return res;
+
+ res = fdt_property(kinfo->fdt, "linux,initrd-end", &a, sizeof(a));
+ if ( res )
+ return res;
+ }
+
+ res = fdt_end_node(fdt);
+
+ return res;
+}
+
/*
* Prepare a minimal DTB for DOM0 which contains
* bootargs, initrd, memory information,
@@ -1259,6 +1300,11 @@ static int create_acpi_dtb(struct domain *d, struct
kernel_info *kinfo, struct m
if ( ret )
return ret;
+ /* Create a chosen node for DOM0 */
+ ret = make_chosen_node(d, kinfo);
+ if ( ret )
+ goto err;
+
ret = fdt_end_node(kinfo->fdt);
if ( ret < 0 )
goto err;
--
1.9.1
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |