]> git.kernelconcepts.de Git - karo-tx-uboot.git/blob - arch/arm/cpu/armv7/tegra-common/cmd_enterrcm.c
Merge branch 'u-boot/master' into u-boot-arm/master
[karo-tx-uboot.git] / arch / arm / cpu / armv7 / tegra-common / cmd_enterrcm.c
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
32 static 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
47 U_BOOT_CMD(
48         enterrcm, 1, 0, do_enterrcm,
49         "reset Tegra and enter USB Recovery Mode",
50         ""
51 );