uboot/arch/arm/mach-tegra/cmd_enterrcm.c
<<
>>
Prefs
   1/*
   2 * Copyright (c) 2012, NVIDIA CORPORATION.  All rights reserved.
   3 *
   4 * Derived from code (arch/arm/lib/reset.c) that is:
   5 *
   6 * (C) Copyright 2002
   7 * Sysgo Real-Time Solutions, GmbH <www.elinos.com>
   8 * Marius Groeger <mgroeger@sysgo.de>
   9 *
  10 * (C) Copyright 2002
  11 * Sysgo Real-Time Solutions, GmbH <www.elinos.com>
  12 * Alex Zuepke <azu@sysgo.de>
  13 *
  14 * (C) Copyright 2002
  15 * Gary Jennejohn, DENX Software Engineering, <garyj@denx.de>
  16 *
  17 * (C) Copyright 2004
  18 * DAVE Srl
  19 * http://www.dave-tech.it
  20 * http://www.wawnet.biz
  21 * mailto:info@wawnet.biz
  22 *
  23 * (C) Copyright 2004 Texas Insturments
  24 *
  25 * SPDX-License-Identifier:     GPL-2.0+
  26 */
  27
  28#include <common.h>
  29#include <asm/arch/tegra.h>
  30#include <asm/arch-tegra/pmc.h>
  31
  32static int do_enterrcm(cmd_tbl_t *cmdtp, int flag, int argc,
  33                       char * const argv[])
  34{
  35        struct pmc_ctlr *pmc = (struct pmc_ctlr *)NV_PA_PMC_BASE;
  36
  37        puts("Entering RCM...\n");
  38        udelay(50000);
  39
  40        pmc->pmc_scratch0 = 2;
  41        disable_interrupts();
  42        reset_cpu(0);
  43
  44        return 0;
  45}
  46
  47U_BOOT_CMD(
  48        enterrcm, 1, 0, do_enterrcm,
  49        "reset Tegra and enter USB Recovery Mode",
  50        ""
  51);
  52