uboot/cmd/sb.c
<<
>>
Prefs
   1// SPDX-License-Identifier: GPL-2.0+
   2/*
   3 * Copyright 2018, Google Inc.
   4 * Written by Simon Glass <sjg@chromium.org>
   5 */
   6
   7#include <common.h>
   8#include <command.h>
   9#include <dm.h>
  10#include <spl.h>
  11#include <asm/global_data.h>
  12#include <asm/state.h>
  13
  14static int do_sb_handoff(struct cmd_tbl *cmdtp, int flag, int argc,
  15                         char *const argv[])
  16{
  17#if CONFIG_IS_ENABLED(HANDOFF)
  18        if (gd->spl_handoff)
  19                printf("SPL handoff magic %lx\n", gd->spl_handoff->arch.magic);
  20        else
  21                printf("SPL handoff info not received\n");
  22
  23        return 0;
  24#else
  25        printf("Command not supported\n");
  26
  27        return CMD_RET_USAGE;
  28#endif
  29}
  30
  31static int do_sb_state(struct cmd_tbl *cmdtp, int flag, int argc,
  32                       char *const argv[])
  33{
  34        struct sandbox_state *state;
  35
  36        state = state_get_current();
  37        state_show(state);
  38
  39        return 0;
  40}
  41
  42static struct cmd_tbl cmd_sb_sub[] = {
  43        U_BOOT_CMD_MKENT(handoff, 1, 0, do_sb_handoff, "", ""),
  44        U_BOOT_CMD_MKENT(state, 1, 0, do_sb_state, "", ""),
  45};
  46
  47static int do_sb(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[])
  48{
  49        struct cmd_tbl *c;
  50
  51        /* Skip past 'sb' */
  52        argc--;
  53        argv++;
  54
  55        c = find_cmd_tbl(argv[0], cmd_sb_sub, ARRAY_SIZE(cmd_sb_sub));
  56        if (c)
  57                return c->cmd(cmdtp, flag, argc, argv);
  58        else
  59                return CMD_RET_USAGE;
  60}
  61
  62U_BOOT_CMD(
  63        sb,     8,      1,      do_sb,
  64        "Sandbox status commands",
  65        "handoff     - Show handoff data received from SPL\n"
  66        "sb state       - Show sandbox state"
  67);
  68