[PATCH 1/2] common: oftree: Pass bootsource and bootsource instance to kernel
Andrey Smirnov
andrew.smirnov at gmail.com
Tue May 8 14:21:24 PDT 2018
Pass barebox-detected bootsource and bootsource instance to Linux to
make it availible to Linux userspace. We use put the version under
/chosen/bootsource and it can be read under Linux in
/sys/firmware/devicetree/base/chosen/bootsource
and
/sys/firmware/devicetree/base/chosen/bootsource-instance.
Signed-off-by: Andrey Smirnov <andrew.smirnov at gmail.com>
---
common/oftree.c | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/common/oftree.c b/common/oftree.c
index 8a2ede4c6..9c94ca116 100644
--- a/common/oftree.c
+++ b/common/oftree.c
@@ -11,6 +11,7 @@
#include <getopt.h>
#include <init.h>
#include <boot.h>
+#include <bootsource.h>
#include <i2c/i2c.h>
#define MAX_LEVEL 32 /* how deeply nested we will go */
@@ -118,6 +119,7 @@ static int of_fixup_bootargs(struct device_node *root, void *unused)
{
struct device_node *node;
const char *str;
+ int instance;
int err;
str = linux_bootargs_get();
@@ -130,6 +132,12 @@ static int of_fixup_bootargs(struct device_node *root, void *unused)
of_property_write_string(node, "barebox-version", release_string);
+ of_property_write_string(node, "bootsource", getenv("bootsource"));
+ instance = bootsource_get_instance();
+ of_property_write_u32(node, "bootsource-instance",
+ (instance == BOOTSOURCE_INSTANCE_UNKNOWN) ?
+ 0 : instance);
+
err = of_property_write_string(node, "bootargs", str);
return err;
--
2.17.0
More information about the barebox
mailing list