[PATCH] pb-discover: add dtb support for PXE config

Oliver O'Halloran oohall at gmail.com
Mon May 9 15:38:47 AEST 2016


Currently there is no way to manually specify a DTB file when with a PXE
network boot configuration file. This makes it difficult when you need
to work with or emulate a special snowflake machines with special snowflake
hardware.

Some ARM systems provide this feature with the "fdt" option so this patch
adds support for using the ftd or dtb configuration options to the PXE
config parser.

Signed-off-by: Oliver O'Halloran <oohall at gmail.com>
---
 discover/pxe-parser.c         | 4 ++++
 test/parser/test-pxe-single.c | 3 +++
 2 files changed, 7 insertions(+)

diff --git a/discover/pxe-parser.c b/discover/pxe-parser.c
index 95547c389799..4812c374d199 100644
--- a/discover/pxe-parser.c
+++ b/discover/pxe-parser.c
@@ -189,6 +189,10 @@ static void pxe_process_pair(struct conf_context *ctx,
 		type = strtoul(value, &end, 10);
 		if (end != value && !(*end))
 			pxe_process_sysappend(ctx->dc, opt, type);
+
+	} else if (streq(name, "DTB") || streq(name, "FDT")) {
+		url = pxe_url_join(ctx->dc, ctx->dc->conf_url, value);
+		opt->dtb = create_url_resource(opt, url);
 	}
 
 }
diff --git a/test/parser/test-pxe-single.c b/test/parser/test-pxe-single.c
index 56c404cd9820..3c3ab2b9beae 100644
--- a/test/parser/test-pxe-single.c
+++ b/test/parser/test-pxe-single.c
@@ -8,6 +8,7 @@ label linux
 kernel ./pxe/de-ad-de-ad-be-ef.vmlinuz
 append command line
 initrd=./pxe/de-ad-de-ad-be-ef.initrd
+dtb ./pxe/de-ad-de-ad-be-ef.dtb
 #endif
 
 void run_test(struct parser_test *test)
@@ -35,4 +36,6 @@ void run_test(struct parser_test *test)
 			"tftp://host/dir/./pxe/de-ad-de-ad-be-ef.vmlinuz");
 	check_resolved_url_resource(opt->initrd,
 			"tftp://host/dir/./pxe/de-ad-de-ad-be-ef.initrd");
+	check_resolved_url_resource(opt->dtb,
+			"tftp://host/dir/./pxe/de-ad-de-ad-be-ef.dtb");
 }
-- 
2.5.5



More information about the Petitboot mailing list