diff --git a/openpower/package/petitboot/0015-discover-grub2-implement-source-command.patch b/openpower/package/petitboot/0015-discover-grub2-implement-source-command.patch
new file mode 100644
index 0000000..e9f55ed
--- /dev/null
+++ b/openpower/package/petitboot/0015-discover-grub2-implement-source-command.patch
@@ -0,0 +1,352 @@
+From 772139fd8f8d8b290a5c0a320d88a896b628624b Mon Sep 17 00:00:00 2001
+From: Jeremy Kerr <jk@ozlabs.org>
+Date: Thu, 14 Nov 2019 15:06:26 +0800
+Subject: [PATCH 15/18] discover/grub2: implement 'source' command
+
+This change add support for the grub2 'source' command, executing a
+referenced script in the current parse context.
+
+We impose a limit of 10 (concurrent) source commands, to prevent
+infinite recursion.
+
+Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
+(cherry picked from commit 967cfa7e5c1bfb4d2cf78bb3de3dc6d36b78c440)
+Signed-off-by: Klaus Heinrich Kiwi <klaus@linux.vnet.ibm.com>
+---
+ discover/grub2/builtins.c                     | 51 +++++++++++++++-
+ discover/grub2/grub2.h                        |  1 +
+ test/parser/Makefile.am                       |  4 ++
+ test/parser/test-grub2-source-functions.c     | 46 +++++++++++++++
+ .../test-grub2-source-recursion-infinite.c    | 43 ++++++++++++++
+ test/parser/test-grub2-source-recursion.c     | 58 +++++++++++++++++++
+ test/parser/test-grub2-source.c               | 54 +++++++++++++++++
+ 7 files changed, 256 insertions(+), 1 deletion(-)
+ create mode 100644 test/parser/test-grub2-source-functions.c
+ create mode 100644 test/parser/test-grub2-source-recursion-infinite.c
+ create mode 100644 test/parser/test-grub2-source-recursion.c
+ create mode 100644 test/parser/test-grub2-source.c
+
+diff --git a/discover/grub2/builtins.c b/discover/grub2/builtins.c
+index c726216..ab1407a 100644
+--- a/discover/grub2/builtins.c
++++ b/discover/grub2/builtins.c
+@@ -401,6 +401,51 @@ static int builtin_test(struct grub2_script *script,
+ 	return rc ? 0 : 1;
+ }
+ 
++static int builtin_source(struct grub2_script *script,
++		void *data __attribute__((unused)),
++		int argc, char *argv[])
++{
++	struct grub2_statements *statements;
++	struct discover_device *dev;
++	const char *filename;
++	char *path, *buf;
++	int rc, len;
++
++	if (argc != 2)
++		return false;
++
++	/* limit script recursion */
++	if (script->include_depth >= 10)
++		return false;
++
++	rc = parse_to_device_path(script, argv[1], &dev, &path);
++	if (rc)
++		return false;
++
++	rc = parser_request_file(script->ctx, dev, path, &buf, &len);
++	if (rc)
++		return false;
++
++	/* save current script state */
++	statements = script->statements;
++	filename = script->filename;
++	script->include_depth++;
++
++	rc = grub2_parser_parse(script->parser, argv[1], buf, len);
++
++	if (!rc)
++		statements_execute(script, script->statements);
++
++	talloc_free(script->statements);
++
++	/* restore state */
++	script->statements = statements;
++	script->filename = filename;
++	script->include_depth--;
++
++	return !rc;
++}
++
+ static int builtin_true(struct grub2_script *script __attribute__((unused)),
+ 		void *data __attribute__((unused)),
+ 		int argc __attribute__((unused)),
+@@ -491,7 +536,11 @@ static struct {
+ 	{
+ 		.name = "blscfg",
+ 		.fn = builtin_blscfg,
+-	}
++	},
++	{
++		.name = "source",
++		.fn = builtin_source,
++	},
+ };
+ 
+ static const char *nops[] = {
+diff --git a/discover/grub2/grub2.h b/discover/grub2/grub2.h
+index deaf976..75f6aa0 100644
+--- a/discover/grub2/grub2.h
++++ b/discover/grub2/grub2.h
+@@ -100,6 +100,7 @@ struct grub2_script {
+ 	const char			*filename;
+ 	unsigned int			n_options;
+ 	struct list			options;
++	int				include_depth;
+ };
+ 
+ struct grub2_parser {
+diff --git a/test/parser/Makefile.am b/test/parser/Makefile.am
+index c8e059b..5f1a93b 100644
+--- a/test/parser/Makefile.am
++++ b/test/parser/Makefile.am
+@@ -46,6 +46,10 @@ parser_TESTS = \
+ 	test/parser/test-grub2-lexer-error \
+ 	test/parser/test-grub2-parser-error \
+ 	test/parser/test-grub2-test-file-ops \
++	test/parser/test-grub2-source \
++	test/parser/test-grub2-source-functions \
++	test/parser/test-grub2-source-recursion \
++	test/parser/test-grub2-source-recursion-infinite \
+ 	test/parser/test-grub2-single-yocto \
+ 	test/parser/test-grub2-blscfg-default-filename \
+ 	test/parser/test-grub2-blscfg-default-index \
+diff --git a/test/parser/test-grub2-source-functions.c b/test/parser/test-grub2-source-functions.c
+new file mode 100644
+index 0000000..a9da934
+--- /dev/null
++++ b/test/parser/test-grub2-source-functions.c
+@@ -0,0 +1,46 @@
++
++/* check that we can source other scripts, and functions can be defined
++ * and called across sourced scripts */
++
++#include "parser-test.h"
++
++#if 0 /* PARSER_EMBEDDED_CONFIG */
++
++function f1 {
++	menuentry "f1$1" { linux $2 }
++}
++
++source /grub/2.cfg
++
++f2 a /vmlinux
++
++#endif
++
++void run_test(struct parser_test *test)
++{
++	struct discover_boot_option *opt;
++	struct discover_context *ctx;
++	struct discover_device *dev;
++
++	ctx = test->ctx;
++	dev = ctx->device;
++
++	test_read_conf_embedded(test, "/grub/grub.cfg");
++
++	test_add_file_string(test, dev,
++			"/grub/2.cfg",
++			"function f2 { menuentry \"f2$1\" { linux $2 } }\n"
++			"f1 a /vmlinux\n");
++
++	test_run_parser(test, "grub2");
++
++	check_boot_option_count(ctx, 2);
++
++	opt = get_boot_option(ctx, 0);
++	check_name(opt, "f1a");
++	check_resolved_local_resource(opt->boot_image, dev, "/vmlinux");
++
++	opt = get_boot_option(ctx, 1);
++	check_name(opt, "f2a");
++	check_resolved_local_resource(opt->boot_image, dev, "/vmlinux");
++}
+diff --git a/test/parser/test-grub2-source-recursion-infinite.c b/test/parser/test-grub2-source-recursion-infinite.c
+new file mode 100644
+index 0000000..fbcc5a3
+--- /dev/null
++++ b/test/parser/test-grub2-source-recursion-infinite.c
+@@ -0,0 +1,43 @@
++
++/* check that have a maximum source recursion limit */
++
++#include "parser-test.h"
++
++#if 0 /* PARSER_EMBEDDED_CONFIG */
++
++name=a$name
++
++menuentry $name {
++	linux /a
++}
++
++source /grub/grub.cfg
++
++#endif
++
++void run_test(struct parser_test *test)
++{
++	struct discover_boot_option *opt;
++	struct discover_context *ctx;
++	struct discover_device *dev;
++
++	ctx = test->ctx;
++	dev = ctx->device;
++
++	test_read_conf_embedded(test, "/grub/grub.cfg");
++
++	test_run_parser(test, "grub2");
++
++	/* we error out after 10 levels, but we should still have
++	 * parse results up to that point
++	 */
++	check_boot_option_count(ctx, 11);
++
++	opt = get_boot_option(ctx, 0);
++	check_name(opt, "a");
++	check_resolved_local_resource(opt->boot_image, dev, "/a");
++
++	opt = get_boot_option(ctx,10);
++	check_name(opt, "aaaaaaaaaaa");
++	check_resolved_local_resource(opt->boot_image, dev, "/a");
++}
+diff --git a/test/parser/test-grub2-source-recursion.c b/test/parser/test-grub2-source-recursion.c
+new file mode 100644
+index 0000000..21b6bd2
+--- /dev/null
++++ b/test/parser/test-grub2-source-recursion.c
+@@ -0,0 +1,58 @@
++/* check that we can source other files recursively */
++
++#include "parser-test.h"
++
++#if 0 /* PARSER_EMBEDDED_CONFIG */
++
++menuentry a {
++	linux /a
++}
++
++source /grub/2.cfg
++
++menuentry c {
++	linux /c
++}
++
++#endif
++
++void run_test(struct parser_test *test)
++{
++	struct discover_boot_option *opt;
++	struct discover_context *ctx;
++	struct discover_device *dev;
++
++	ctx = test->ctx;
++	dev = ctx->device;
++
++	test_read_conf_embedded(test, "/grub/grub.cfg");
++
++	/* four levels of config files, the last defining a boot option */
++	test_add_file_string(test, dev,
++			"/grub/2.cfg",
++			"source /grub/3.cfg\n");
++
++	test_add_file_string(test, dev,
++			"/grub/3.cfg",
++			"source /grub/4.cfg\n");
++
++	test_add_file_string(test, dev,
++			"/grub/4.cfg",
++			"menuentry b { linux /b }\n");
++
++	test_run_parser(test, "grub2");
++
++	check_boot_option_count(ctx, 3);
++
++	opt = get_boot_option(ctx, 0);
++	check_name(opt, "a");
++	check_resolved_local_resource(opt->boot_image, dev, "/a");
++
++	opt = get_boot_option(ctx, 1);
++	check_name(opt, "b");
++	check_resolved_local_resource(opt->boot_image, dev, "/b");
++
++	opt = get_boot_option(ctx, 2);
++	check_name(opt, "c");
++	check_resolved_local_resource(opt->boot_image, dev, "/c");
++}
+diff --git a/test/parser/test-grub2-source.c b/test/parser/test-grub2-source.c
+new file mode 100644
+index 0000000..a14bef7
+--- /dev/null
++++ b/test/parser/test-grub2-source.c
+@@ -0,0 +1,54 @@
++
++/* check that we can source other scripts, and variables get passed
++ * in to and out of sourced scripts */
++
++#include "parser-test.h"
++
++#if 0 /* PARSER_EMBEDDED_CONFIG */
++
++menuentry a {
++	linux /a
++}
++
++# var: outer -> inner -> outer
++v=b
++
++source /grub/2.cfg
++
++menuentry $v {
++	linux /c
++}
++
++#endif
++
++void run_test(struct parser_test *test)
++{
++	struct discover_boot_option *opt;
++	struct discover_context *ctx;
++	struct discover_device *dev;
++
++	ctx = test->ctx;
++	dev = ctx->device;
++
++	test_read_conf_embedded(test, "/grub/grub.cfg");
++
++	test_add_file_string(test, dev,
++			"/grub/2.cfg",
++			"menuentry $v { linux /b }\nv=c\n");
++
++	test_run_parser(test, "grub2");
++
++	check_boot_option_count(ctx, 3);
++
++	opt = get_boot_option(ctx, 0);
++	check_name(opt, "a");
++	check_resolved_local_resource(opt->boot_image, dev, "/a");
++
++	opt = get_boot_option(ctx, 1);
++	check_name(opt, "b");
++	check_resolved_local_resource(opt->boot_image, dev, "/b");
++
++	opt = get_boot_option(ctx, 2);
++	check_name(opt, "c");
++	check_resolved_local_resource(opt->boot_image, dev, "/c");
++}
+-- 
+2.17.1
+
