summaryrefslogtreecommitdiff
path: root/arch/arm/mach-meson
diff options
context:
space:
mode:
authorAlexey Romanov <avromanov@sberdevices.ru>2023-01-10 13:56:47 +0300
committerNeil Armstrong <neil.armstrong@linaro.org>2023-01-10 15:27:17 +0100
commit311106a1c6eebdc5d0284faae30bf9087227a6c1 (patch)
tree4d9402d3702895e4e802bef995ddad73fa53756a /arch/arm/mach-meson
parent12d782734927818b9d2f197e3905410632b01fcc (diff)
downloadu-boot-311106a1c6eebdc5d0284faae30bf9087227a6c1.tar.gz
arm/mach-meson: move smc commands in cmd/meson
It is incorrect to keep commands in the arch/ folder. Signed-off-by: Alexey Romanov <avromanov@sberdevices.ru> Reviewed-by: Mattijs Korpershoek <mkorpershoek@baylibre.com> Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org> Link: https://lore.kernel.org/r/20230110105650.54580-3-avromanov@sberdevices.ru [narmstrong: moved after cmd/sound in index.rst] Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
Diffstat (limited to 'arch/arm/mach-meson')
-rw-r--r--arch/arm/mach-meson/sm.c144
1 files changed, 0 insertions, 144 deletions
diff --git a/arch/arm/mach-meson/sm.c b/arch/arm/mach-meson/sm.c
index d6eb910689..f2ca7e7693 100644
--- a/arch/arm/mach-meson/sm.c
+++ b/arch/arm/mach-meson/sm.c
@@ -6,8 +6,6 @@
*/
#include <common.h>
-#include <command.h>
-#include <env.h>
#include <log.h>
#include <asm/arch/sm.h>
#include <asm/cache.h>
@@ -139,145 +137,3 @@ int meson_sm_get_reboot_reason(void)
/* The SMC call is not used, we directly use AO_SEC_SD_CFG15 */
return FIELD_GET(REBOOT_REASON_MASK, reason);
}
-
-static int do_sm_serial(struct cmd_tbl *cmdtp, int flag, int argc,
- char *const argv[])
-{
- ulong address;
- int ret;
-
- if (argc < 2)
- return CMD_RET_USAGE;
-
- address = simple_strtoul(argv[1], NULL, 0);
-
- ret = meson_sm_get_serial((void *)address, SM_CHIP_ID_SIZE);
- if (ret)
- return CMD_RET_FAILURE;
-
- return CMD_RET_SUCCESS;
-}
-
-#define MAX_REBOOT_REASONS 14
-
-static const char *reboot_reasons[MAX_REBOOT_REASONS] = {
- [REBOOT_REASON_COLD] = "cold_boot",
- [REBOOT_REASON_NORMAL] = "normal",
- [REBOOT_REASON_RECOVERY] = "recovery",
- [REBOOT_REASON_UPDATE] = "update",
- [REBOOT_REASON_FASTBOOT] = "fastboot",
- [REBOOT_REASON_SUSPEND_OFF] = "suspend_off",
- [REBOOT_REASON_HIBERNATE] = "hibernate",
- [REBOOT_REASON_BOOTLOADER] = "bootloader",
- [REBOOT_REASON_SHUTDOWN_REBOOT] = "shutdown_reboot",
- [REBOOT_REASON_RPMBP] = "rpmbp",
- [REBOOT_REASON_CRASH_DUMP] = "crash_dump",
- [REBOOT_REASON_KERNEL_PANIC] = "kernel_panic",
- [REBOOT_REASON_WATCHDOG_REBOOT] = "watchdog_reboot",
-};
-
-static int do_sm_reboot_reason(struct cmd_tbl *cmdtp, int flag, int argc,
- char *const argv[])
-{
- const char *reason_str;
- char *destarg = NULL;
- int reason;
-
- if (argc > 1)
- destarg = argv[1];
-
- reason = meson_sm_get_reboot_reason();
- if (reason < 0)
- return CMD_RET_FAILURE;
-
- if (reason >= MAX_REBOOT_REASONS ||
- !reboot_reasons[reason])
- reason_str = "unknown";
- else
- reason_str = reboot_reasons[reason];
-
- if (destarg)
- env_set(destarg, reason_str);
- else
- printf("reboot reason: %s (%x)\n", reason_str, reason);
-
- return CMD_RET_SUCCESS;
-}
-
-static int do_efuse_read(struct cmd_tbl *cmdtp, int flag, int argc,
- char *const argv[])
-{
- ulong address, offset, size;
- int ret;
-
- if (argc < 4)
- return CMD_RET_USAGE;
-
- offset = simple_strtoul(argv[1], NULL, 0);
- size = simple_strtoul(argv[2], NULL, 0);
-
- address = simple_strtoul(argv[3], NULL, 0);
-
- ret = meson_sm_read_efuse(offset, (void *)address, size);
- if (ret != size)
- return CMD_RET_FAILURE;
-
- return CMD_RET_SUCCESS;
-}
-
-static int do_efuse_write(struct cmd_tbl *cmdtp, int flag, int argc,
- char *const argv[])
-{
- ulong address, offset, size;
- int ret;
-
- if (argc < 4)
- return CMD_RET_USAGE;
-
- offset = simple_strtoul(argv[1], NULL, 0);
- size = simple_strtoul(argv[2], NULL, 0);
-
- address = simple_strtoul(argv[3], NULL, 0);
-
- ret = meson_sm_write_efuse(offset, (void *)address, size);
- if (ret != size)
- return CMD_RET_FAILURE;
-
- return CMD_RET_SUCCESS;
-}
-
-static struct cmd_tbl cmd_sm_sub[] = {
- U_BOOT_CMD_MKENT(serial, 2, 1, do_sm_serial, "", ""),
- U_BOOT_CMD_MKENT(reboot_reason, 1, 1, do_sm_reboot_reason, "", ""),
- U_BOOT_CMD_MKENT(efuseread, 4, 1, do_efuse_read, "", ""),
- U_BOOT_CMD_MKENT(efusewrite, 4, 0, do_efuse_write, "", ""),
-};
-
-static int do_sm(struct cmd_tbl *cmdtp, int flag, int argc,
- char *const argv[])
-{
- struct cmd_tbl *c;
-
- if (argc < 2)
- return CMD_RET_USAGE;
-
- /* Strip off leading 'sm' command argument */
- argc--;
- argv++;
-
- c = find_cmd_tbl(argv[0], &cmd_sm_sub[0], ARRAY_SIZE(cmd_sm_sub));
-
- if (c)
- return c->cmd(cmdtp, flag, argc, argv);
- else
- return CMD_RET_USAGE;
-}
-
-U_BOOT_CMD(
- sm, 5, 0, do_sm,
- "Secure Monitor Control",
- "serial <address> - read chip unique id to memory address\n"
- "sm reboot_reason [name] - get reboot reason and store to to environment\n"
- "sm efuseread <offset> <size> <address> - read efuse to memory address\n"
- "sm efusewrite <offset> <size> <address> - write into efuse from memory address"
-);