[PATCH 3/3] kexec: pass initrd position by dtb
Wang Nan
wangnan0 at huawei.com
Tue Mar 25 00:09:45 EDT 2014
This patch append the position of initrd to dtb when loading arm kernel
and initrd without using atag.
Signed-off-by: Wang Nan <wangnan0 at huawei.com>
Cc: Simon Horman <horms at verge.net.au>
Cc: Dave Young <dyoung at redhat.com>
Cc: Geng Hui <hui.geng at huawei.com>
---
kexec/arch/arm/kexec-zImage-arm.c | 13 +++++++++++++
1 file changed, 13 insertions(+)
diff --git a/kexec/arch/arm/kexec-zImage-arm.c b/kexec/arch/arm/kexec-zImage-arm.c
index aea1278..bfbf290 100644
--- a/kexec/arch/arm/kexec-zImage-arm.c
+++ b/kexec/arch/arm/kexec-zImage-arm.c
@@ -460,6 +460,19 @@ int zImage_arm_load(int argc, char **argv, const char *buf, off_t len,
if (ramdisk) {
add_segment(info, ramdisk_buf, initrd_size,
initrd_base, initrd_size);
+
+ unsigned long start, end;
+ start = cpu_to_be32((unsigned long)(initrd_base));
+ end = cpu_to_be32((unsigned long)(initrd_base + initrd_size));
+
+ if (setup_dtb_prop(&dtb_buf, &dtb_length, "/chosen",
+ "linux,initrd-start", &start,
+ sizeof(start)))
+ return -1;
+ if (setup_dtb_prop(&dtb_buf, &dtb_length, "/chosen",
+ "linux,initrd-end", &end,
+ sizeof(end)))
+ return -1;
}
/* Stick the dtb at the end of the initrd and page
--
1.8.4
More information about the kexec
mailing list