diff options
Diffstat (limited to '0003-cmd_pxe.c-add-any-option-for-filesystem-with-sysboot.patch')
-rw-r--r-- | 0003-cmd_pxe.c-add-any-option-for-filesystem-with-sysboot.patch | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/0003-cmd_pxe.c-add-any-option-for-filesystem-with-sysboot.patch b/0003-cmd_pxe.c-add-any-option-for-filesystem-with-sysboot.patch new file mode 100644 index 0000000..7c461b8 --- /dev/null +++ b/0003-cmd_pxe.c-add-any-option-for-filesystem-with-sysboot.patch @@ -0,0 +1,66 @@ +From 75a1606b62bce11e2dc981357da4d7f7a6402971 Mon Sep 17 00:00:00 2001 +From: Dennis Gilmore <dennis@ausil.us> +Date: Tue, 4 Feb 2014 05:25:46 -0600 +Subject: [PATCH 03/13] cmd_pxe.c add any option for filesystem with sysboot + uses generic load + +Signed-off-by: Dennis Gilmore <dennis@ausil.us> +--- + common/cmd_pxe.c | 22 +++++++++++++++++++--- + 1 file changed, 19 insertions(+), 3 deletions(-) + +diff --git a/common/cmd_pxe.c b/common/cmd_pxe.c +index 2bd572d..29e48db 100644 +--- a/common/cmd_pxe.c ++++ b/common/cmd_pxe.c +@@ -11,6 +11,7 @@ + #include <linux/ctype.h> + #include <errno.h> + #include <linux/list.h> ++#include <fs.h> + + #include "menu.h" + +@@ -160,6 +161,19 @@ static int do_get_fat(cmd_tbl_t *cmdtp, const char *file_path, char *file_addr) + return -ENOENT; + } + ++static int do_get_any(cmd_tbl_t *cmdtp, const char *file_path, char *file_addr) ++{ ++#ifdef CONFIG_CMD_FS_GENERIC ++ fs_argv[0] = "load"; ++ fs_argv[3] = file_addr; ++ fs_argv[4] = (void *)file_path; ++ ++ if (!do_load(cmdtp, 0, 5, fs_argv, FS_TYPE_ANY)) ++ return 1; ++#endif ++ return -ENOENT; ++} ++ + /* + * As in pxelinux, paths to files referenced from files we retrieve are + * relative to the location of bootfile. get_relfile takes such a path and +@@ -1606,6 +1620,8 @@ int do_sysboot(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]) + do_getfile = do_get_ext2; + else if (strstr(argv[3], "fat")) + do_getfile = do_get_fat; ++ else if (strstr(argv[3], "any")) ++ do_getfile = do_get_any; + else { + printf("Invalid filesystem: %s\n", argv[3]); + return 1; +@@ -1643,7 +1659,7 @@ int do_sysboot(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]) + U_BOOT_CMD( + sysboot, 7, 1, do_sysboot, + "command to get and boot from syslinux files", +- "[-p] <interface> <dev[:part]> <ext2|fat> [addr] [filename]\n" +- " - load and parse syslinux menu file 'filename' from ext2 or fat\n" +- " filesystem on 'dev' on 'interface' to address 'addr'" ++ "[-p] <interface> <dev[:part]> <ext2|fat|any> [addr] [filename]\n" ++ " - load and parse syslinux menu file 'filename' from ext2, fat\n" ++ " or any filesystem on 'dev' on 'interface' to address 'addr'" + ); +-- +1.8.5.3 + |