]>
Commit | Line | Data |
---|---|---|
4b0730d2 SG |
1 | /* |
2 | * Copyright (c) 2011 The Chromium OS Authors. | |
1a459660 | 3 | * SPDX-License-Identifier: GPL-2.0+ |
4b0730d2 SG |
4 | */ |
5 | ||
6 | #include <common.h> | |
61336833 | 7 | #include <dm/root.h> |
7a9219c1 | 8 | #include <os.h> |
5c2859cd | 9 | #include <asm/state.h> |
4b0730d2 SG |
10 | |
11 | DECLARE_GLOBAL_DATA_PTR; | |
12 | ||
88bd0e9d | 13 | void reset_cpu(ulong ignored) |
4b0730d2 | 14 | { |
5c2859cd SG |
15 | if (state_uninit()) |
16 | os_exit(2); | |
17 | ||
61336833 SG |
18 | if (dm_uninit()) |
19 | os_exit(2); | |
20 | ||
7a9219c1 SG |
21 | /* This is considered normal termination for now */ |
22 | os_exit(0); | |
88bd0e9d SG |
23 | } |
24 | ||
25 | int do_reset(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]) | |
26 | { | |
27 | reset_cpu(0); | |
28 | ||
4b0730d2 SG |
29 | return 0; |
30 | } | |
31 | ||
32 | /* delay x useconds */ | |
33 | void __udelay(unsigned long usec) | |
34 | { | |
d99a6874 | 35 | os_usleep(usec); |
4b0730d2 SG |
36 | } |
37 | ||
e2ee100f | 38 | unsigned long __attribute__((no_instrument_function)) timer_get_us(void) |
4b0730d2 | 39 | { |
d99a6874 | 40 | return os_get_nsec() / 1000; |
4b0730d2 SG |
41 | } |
42 | ||
43 | int do_bootm_linux(int flag, int argc, char *argv[], bootm_headers_t *images) | |
44 | { | |
88bd0e9d SG |
45 | if (flag & (BOOTM_STATE_OS_GO | BOOTM_STATE_OS_FAKE_GO)) { |
46 | bootstage_mark(BOOTSTAGE_ID_RUN_OS); | |
47 | printf("## Transferring control to Linux (at address %08lx)...\n", | |
48 | images->ep); | |
49 | reset_cpu(0); | |
50 | } | |
51 | ||
52 | return 0; | |
4b0730d2 SG |
53 | } |
54 | ||
55 | int cleanup_before_linux(void) | |
56 | { | |
57 | return 0; | |
58 | } | |
59 | ||
60 | void *map_physmem(phys_addr_t paddr, unsigned long len, unsigned long flags) | |
61 | { | |
8ee666a7 | 62 | return (void *)(gd->arch.ram_buf + paddr); |
4b0730d2 SG |
63 | } |
64 | ||
66bd1cff | 65 | phys_addr_t map_to_sysmem(const void *ptr) |
781adb57 SG |
66 | { |
67 | return (u8 *)ptr - gd->arch.ram_buf; | |
68 | } | |
69 | ||
4b0730d2 SG |
70 | void flush_dcache_range(unsigned long start, unsigned long stop) |
71 | { | |
72 | } |