cmd: fdt: Use start/size for chosen instead of start/end
authorSean Anderson <sean.anderson@seco.com>
Tue, 22 Mar 2022 20:59:21 +0000 (16:59 -0400)
committerTom Rini <trini@konsulko.com>
Fri, 1 Apr 2022 19:03:13 +0000 (15:03 -0400)
Most U-Boot command deal with start/size instead of start/end. Convert
the "fdt chosen" command to use these semantics as well. The only user
of this subcommand is vexpress, so convert the smhload command to use
this as well. We don't bother renaming the variable in vexpress64's
bootcommand, since it will be rewritten in the next commit.

Signed-off-by: Sean Anderson <sean.anderson@seco.com>
arch/arm/lib/semihosting.c
cmd/fdt.c

index d08003c..45cd566 100644 (file)
@@ -171,7 +171,7 @@ long smh_seek(long fd, long pos)
 }
 
 static int smh_load_file(const char * const name, ulong load_addr,
-                        ulong *end_addr)
+                        ulong *size)
 {
        long fd;
        long len;
@@ -191,11 +191,11 @@ static int smh_load_file(const char * const name, ulong load_addr,
        smh_close(fd);
 
        if (ret == len) {
-               *end_addr = load_addr + len - 1;
+               *size = len;
                printf("loaded file %s from %08lX to %08lX, %08lX bytes\n",
                       name,
                       load_addr,
-                      *end_addr,
+                      load_addr + len - 1,
                       len);
        } else if (ret >= 0) {
                ret = -EAGAIN;
@@ -214,22 +214,22 @@ static int do_smhload(struct cmd_tbl *cmdtp, int flag, int argc,
 {
        if (argc == 3 || argc == 4) {
                ulong load_addr;
-               ulong end_addr = 0;
+               ulong size = 0;
                int ret;
-               char end_str[64];
+               char size_str[64];
 
                load_addr = hextoul(argv[2], NULL);
                if (!load_addr)
                        return -1;
 
-               ret = smh_load_file(argv[1], load_addr, &end_addr);
+               ret = smh_load_file(argv[1], load_addr, &size);
                if (ret < 0)
                        return CMD_RET_FAILURE;
 
                /* Optionally save returned end to the environment */
                if (argc == 4) {
-                       sprintf(end_str, "0x%08lx", end_addr);
-                       env_set(argv[3], end_str);
+                       sprintf(size_str, "0x%08lx", size);
+                       env_set(argv[3], size_str);
                }
        } else {
                return CMD_RET_USAGE;
index 2a207bf..7d7cae8 100644 (file)
--- a/cmd/fdt.c
+++ b/cmd/fdt.c
@@ -638,7 +638,7 @@ static int do_fdt(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[])
 
                if (argc == 4) {
                        initrd_start = hextoul(argv[2], NULL);
-                       initrd_end = hextoul(argv[3], NULL);
+                       initrd_end = initrd_start + hextoul(argv[3], NULL) - 1;
                }
 
                fdt_chosen(working_fdt);
@@ -1083,8 +1083,8 @@ static char fdt_help_text[] =
        "fdt rsvmem print                    - Show current mem reserves\n"
        "fdt rsvmem add <addr> <size>        - Add a mem reserve\n"
        "fdt rsvmem delete <index>           - Delete a mem reserves\n"
-       "fdt chosen [<start> <end>]          - Add/update the /chosen branch in the tree\n"
-       "                                        <start>/<end> - initrd start/end addr\n"
+       "fdt chosen [<start> <size>]         - Add/update the /chosen branch in the tree\n"
+       "                                        <start>/<size> - initrd start addr/size\n"
 #if defined(CONFIG_FIT_SIGNATURE)
        "fdt checksign [<addr>]              - check FIT signature\n"
        "                                        <start> - addr of key blob\n"