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