]>
Commit | Line | Data |
---|---|---|
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 | */ | |
30 | int 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 | ||
47 | int 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 | } |