arm: smh: Remove smhload command
authorSean Anderson <sean.anderson@seco.com>
Tue, 22 Mar 2022 20:59:22 +0000 (16:59 -0400)
committerTom Rini <trini@konsulko.com>
Fri, 1 Apr 2022 19:03:13 +0000 (15:03 -0400)
This command's functionality is now completely implemented by the
standard fs load command. Convert the vexpress64 boot command (which is
the only user) and remove the implementation.

Signed-off-by: Sean Anderson <sean.anderson@seco.com>
arch/arm/lib/semihosting.c
include/configs/vexpress_aemv8.h

index 45cd566..57ab252 100644 (file)
@@ -10,8 +10,6 @@
  * available in silicon now, fastmodel usage makes less sense for them.
  */
 #include <common.h>
-#include <command.h>
-#include <env.h>
 #include <log.h>
 #include <semihosting.h>
 
@@ -169,77 +167,3 @@ long smh_seek(long fd, long pos)
                return smh_errno();
        return 0;
 }
-
-static int smh_load_file(const char * const name, ulong load_addr,
-                        ulong *size)
-{
-       long fd;
-       long len;
-       long ret;
-
-       fd = smh_open(name, MODE_READ | MODE_BINARY);
-       if (fd < 0)
-               return fd;
-
-       len = smh_flen(fd);
-       if (len < 0) {
-               smh_close(fd);
-               return len;
-       }
-
-       ret = smh_read(fd, (void *)load_addr, len);
-       smh_close(fd);
-
-       if (ret == len) {
-               *size = len;
-               printf("loaded file %s from %08lX to %08lX, %08lX bytes\n",
-                      name,
-                      load_addr,
-                      load_addr + len - 1,
-                      len);
-       } else if (ret >= 0) {
-               ret = -EAGAIN;
-       }
-
-       if (ret < 0) {
-               printf("read failed: %ld\n", ret);
-               return ret;
-       }
-
-       return 0;
-}
-
-static int do_smhload(struct cmd_tbl *cmdtp, int flag, int argc,
-                     char *const argv[])
-{
-       if (argc == 3 || argc == 4) {
-               ulong load_addr;
-               ulong size = 0;
-               int ret;
-               char size_str[64];
-
-               load_addr = hextoul(argv[2], NULL);
-               if (!load_addr)
-                       return -1;
-
-               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(size_str, "0x%08lx", size);
-                       env_set(argv[3], size_str);
-               }
-       } else {
-               return CMD_RET_USAGE;
-       }
-       return 0;
-}
-
-U_BOOT_CMD(smhload, 4, 0, do_smhload, "load a file using semihosting",
-          "<file> 0x<address> [end var]\n"
-          "    - load a semihosted file to the address specified\n"
-          "      if the optional [end var] is specified, the end\n"
-          "      address of the file will be stored in this environment\n"
-          "      variable.\n");
index efffea9..4f0ff23 100644 (file)
  */
 #define BOOTENV_DEV_SMH(devtypeu, devtypel, instance) \
        "bootcmd_smh= "                                                 \
-               "if smhload ${boot_name} ${boot_addr_r}; then"          \
+               "if load hostfs - ${boot_addr_r} ${boot_name}; then"            \
                "  setenv bootargs;"                                    \
                "  abootimg addr ${boot_addr_r};"                       \
                "  abootimg get dtb --index=0 fdt_addr_r;"              \
                "  bootm ${boot_addr_r} ${boot_addr_r} ${fdt_addr_r};"  \
                "else"                                                  \
-               "  if smhload ${kernel_name} ${kernel_addr_r}; then"    \
+               "  if load hostfs - ${kernel_addr_r} ${kernel_name}; then"      \
                "    setenv fdt_high 0xffffffffffffffff;"               \
                "    setenv initrd_high 0xffffffffffffffff;"            \
-               "    smhload ${fdtfile} ${fdt_addr_r};"                 \
-               "    smhload ${ramdisk_name} ${ramdisk_addr_r} ramdisk_end;" \
+               "    load hostfs - ${fdt_addr_r} ${fdtfile};"                   \
+               "    load hostfs - ${ramdisk_addr_r} ${ramdisk_name};" \
                "    fdt addr ${fdt_addr_r};"                           \
                "    fdt resize;"                                       \
-               "    fdt chosen ${ramdisk_addr_r} ${ramdisk_end};"      \
+               "    fdt chosen ${ramdisk_addr_r} ${filesize};" \
                "    booti $kernel_addr_r - $fdt_addr_r;"               \
                "  fi;"                                                 \
                "fi\0"