]>
Commit | Line | Data |
---|---|---|
98f99e9f SR |
1 | /* |
2 | * Copyright (C) 2013 Stefan Roese <sr@denx.de> | |
3 | * | |
4 | * See file CREDITS for list of people who contributed to this | |
5 | * project. | |
6 | * | |
7 | * This program is free software; you can redistribute it and/or | |
8 | * modify it under the terms of the GNU General Public License as | |
9 | * published by the Free Software Foundation; either version 2 of | |
10 | * the License, or (at your option) any later version. | |
11 | * | |
12 | * This program is distributed in the hope that it will be useful, | |
13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
15 | * GNU General Public License for more details. | |
16 | */ | |
17 | ||
18 | #include <common.h> | |
19 | #include <spl.h> | |
20 | ||
21 | DECLARE_GLOBAL_DATA_PTR; | |
22 | ||
23 | /* | |
24 | * Return selected boot device. On PPC4xx its only NOR flash right now. | |
25 | */ | |
26 | u32 spl_boot_device(void) | |
27 | { | |
28 | return BOOT_DEVICE_NOR; | |
29 | } | |
30 | ||
31 | /* | |
32 | * SPL version of board_init_f() | |
33 | */ | |
34 | void board_init_f(ulong bootflag) | |
35 | { | |
36 | /* | |
37 | * First we need to initialize the SDRAM, so that the real | |
38 | * U-Boot or the OS (Linux) can be loaded | |
39 | */ | |
40 | initdram(0); | |
41 | ||
42 | /* Clear bss */ | |
43 | memset(__bss_start, '\0', __bss_end - __bss_start); | |
44 | ||
45 | /* | |
46 | * Init global_data pointer. Has to be done before calling | |
47 | * get_clocks(), as it stores some clock values into gd needed | |
48 | * later on in the serial driver. | |
49 | */ | |
50 | /* Pointer is writable since we allocated a register for it */ | |
51 | gd = (gd_t *)(CONFIG_SYS_INIT_RAM_ADDR + CONFIG_SYS_GBL_DATA_OFFSET); | |
52 | /* Clear initial global data */ | |
53 | memset((void *)gd, 0, sizeof(gd_t)); | |
54 | ||
55 | /* | |
56 | * get_clocks() needs to be called so that the serial driver | |
57 | * works correctly | |
58 | */ | |
59 | get_clocks(); | |
60 | ||
61 | /* | |
62 | * Do rudimental console / serial setup | |
63 | */ | |
64 | preloader_console_init(); | |
65 | ||
66 | /* | |
67 | * Call board_init_r() (SPL framework version) to load and boot | |
68 | * real U-Boot or OS | |
69 | */ | |
70 | board_init_r(NULL, 0); | |
71 | /* Does not return!!! */ | |
72 | } |