]>
Commit | Line | Data |
---|---|---|
83d290c5 | 1 | // SPDX-License-Identifier: GPL-2.0+ |
cdbb0cf8 VZ |
2 | /* |
3 | * Copyright (C) 2016 Vladimir Zapolskiy <[email protected]> | |
cdbb0cf8 VZ |
4 | */ |
5 | ||
6 | #include <common.h> | |
94133872 | 7 | #include <init.h> |
401d1c4f | 8 | #include <asm/global_data.h> |
cdbb0cf8 VZ |
9 | |
10 | DECLARE_GLOBAL_DATA_PTR; | |
11 | ||
12 | int dram_init(void) | |
13 | { | |
14 | gd->ram_size = get_ram_size((long *)CONFIG_SYS_SDRAM_BASE, | |
15 | CONFIG_SYS_SDRAM_SIZE); | |
16 | ||
17 | return 0; | |
18 | } | |
bccf09e0 VZ |
19 | |
20 | void relocate_code(ulong start_addr_sp, gd_t *new_gd, ulong relocaddr) | |
21 | { | |
22 | void (*reloc_board_init_r)(gd_t *gd, ulong dest) = board_init_r; | |
23 | ||
24 | if (new_gd->reloc_off) { | |
25 | memcpy((void *)new_gd->relocaddr, | |
26 | (void *)(new_gd->relocaddr - new_gd->reloc_off), | |
27 | new_gd->mon_len); | |
28 | ||
29 | reloc_board_init_r += new_gd->reloc_off; | |
30 | } | |
31 | ||
32 | __asm__ __volatile__("mov.l %0, r15\n" : : "m" (new_gd->start_addr_sp)); | |
33 | ||
34 | while (1) | |
35 | reloc_board_init_r(new_gd, 0x0); | |
36 | } |