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 31 static 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 46 U_BOOT_CMD( 47 enterrcm, 1, 0, do_enterrcm, 48 "reset Tegra and enter USB Recovery Mode", 49 "" 50 ); 51