]> git.ipfire.org Git - people/ms/u-boot.git/blame - arch/nds32/cpu/n1213/ag102/cpu.c
Add GPL-2.0+ SPDX-License-Identifier to source files
[people/ms/u-boot.git] / arch / nds32 / cpu / n1213 / ag102 / cpu.c
CommitLineData
cf141230
ML
1/*
2 * (C) Copyright 2002
3 * Sysgo Real-Time Solutions, GmbH <www.elinos.com>
4 * Marius Groeger <mgroeger@sysgo.de>
5 *
6 * (C) Copyright 2002
7 * Gary Jennejohn, DENX Software Engineering, <gj@denx.de>
8 *
9 * Copyright (C) 2011 Andes Technology Corporation
10 * Shawn Lin, Andes Technology Corporation <nobuhiro@andestech.com>
11 * Macpaul Lin, Andes Technology Corporation <macpaul@andestech.com>
12 *
1a459660 13 * SPDX-License-Identifier: GPL-2.0+
cf141230
ML
14 */
15
16/* CPU specific code */
17#include <common.h>
18#include <command.h>
19#include <watchdog.h>
20#include <asm/cache.h>
21
22#include <faraday/ftwdt010_wdt.h>
23
24/*
25 * cleanup_before_linux() is called just before we call linux
26 * it prepares the processor for linux
27 *
28 * we disable interrupt and caches.
29 */
30int cleanup_before_linux(void)
31{
32 disable_interrupts();
33
34#ifdef CONFIG_MMU
35 /* turn off I/D-cache */
36 icache_disable();
37 dcache_disable();
38
39 /* flush I/D-cache */
40 invalidate_icac();
41 invalidate_dcac();
42#endif
43
44 return 0;
45}
46
47int do_reset(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
48{
49 disable_interrupts();
50
51 /*
52 * reset to the base addr of andesboot.
53 * currently no ROM loader at addr 0.
54 * do not use reset_cpu(0);
55 */
56#ifdef CONFIG_FTWDT010_WATCHDOG
57 /*
58 * workaround: if we use CONFIG_HW_WATCHDOG with ftwdt010, will lead
59 * automatic hardware reset when booting Linux.
60 * Please do not use CONFIG_HW_WATCHDOG and WATCHDOG_RESET() here.
61 */
62 ftwdt010_wdt_reset();
63#endif /* CONFIG_FTWDT010_WATCHDOG */
64 hang();
65
66 /*NOTREACHED*/
67}