]>
Commit | Line | Data |
---|---|---|
435199f3 HS |
1 | /* |
2 | * Copyright (C) 2011 | |
3 | * Heiko Schocher, DENX Software Engineering, hs@denx.de. | |
4 | * | |
1a459660 | 5 | * SPDX-License-Identifier: GPL-2.0+ |
435199f3 HS |
6 | */ |
7 | #include <common.h> | |
3f7f2414 TR |
8 | #include <config.h> |
9 | #include <spl.h> | |
435199f3 HS |
10 | #include <asm/u-boot.h> |
11 | #include <asm/utils.h> | |
12 | #include <nand.h> | |
13 | #include <asm/arch/dm365_lowlevel.h> | |
14 | #include <ns16550.h> | |
620fd27c CR |
15 | #include <malloc.h> |
16 | #include <spi_flash.h> | |
0d986e61 | 17 | #include <mmc.h> |
620fd27c | 18 | |
8f743140 | 19 | DECLARE_GLOBAL_DATA_PTR; |
435199f3 | 20 | |
3f7f2414 | 21 | #ifndef CONFIG_SPL_LIBCOMMON_SUPPORT |
435199f3 HS |
22 | void puts(const char *str) |
23 | { | |
24 | while (*str) | |
25 | putc(*str++); | |
26 | } | |
27 | ||
28 | void putc(char c) | |
29 | { | |
30 | if (c == '\n') | |
31 | NS16550_putc((NS16550_t)(CONFIG_SYS_NS16550_COM1), '\r'); | |
32 | ||
33 | NS16550_putc((NS16550_t)(CONFIG_SYS_NS16550_COM1), c); | |
34 | } | |
620fd27c CR |
35 | #endif /* CONFIG_SPL_LIBCOMMON_SUPPORT */ |
36 | ||
435199f3 HS |
37 | void board_init_f(ulong dummy) |
38 | { | |
3f7f2414 TR |
39 | /* First, setup our stack pointer. */ |
40 | asm volatile("mov sp, %0\n" : : "r"(CONFIG_SPL_STACK)); | |
41 | ||
42 | /* Second, perform our low-level init. */ | |
620fd27c | 43 | #ifdef CONFIG_SOC_DM365 |
435199f3 | 44 | dm36x_lowlevel_init(0); |
620fd27c CR |
45 | #endif |
46 | #ifdef CONFIG_SOC_DA8XX | |
47 | arch_cpu_init(); | |
48 | #endif | |
435199f3 | 49 | |
3f7f2414 | 50 | /* Third, we clear the BSS. */ |
3929fb0a | 51 | memset(__bss_start, 0, __bss_end - __bss_start); |
620fd27c | 52 | |
3f7f2414 | 53 | /* Finally, setup gd and move to the next step. */ |
620fd27c | 54 | gd = &gdata; |
3f7f2414 TR |
55 | board_init_r(NULL, 0); |
56 | } | |
620fd27c | 57 | |
3f7f2414 TR |
58 | void spl_board_init(void) |
59 | { | |
60 | preloader_console_init(); | |
61 | } | |
560e69bf | 62 | |
3f7f2414 TR |
63 | u32 spl_boot_mode(void) |
64 | { | |
65 | return MMCSD_MODE_RAW; | |
66 | } | |
67 | ||
68 | u32 spl_boot_device(void) | |
69 | { | |
70 | #ifdef CONFIG_SPL_NAND_SIMPLE | |
71 | return BOOT_DEVICE_NAND; | |
72 | #elif defined(CONFIG_SPL_SPI_LOAD) | |
73 | return BOOT_DEVICE_SPI; | |
74 | #elif defined(CONFIG_SPL_MMC_LOAD) | |
75 | return BOOT_DEVICE_MMC1; | |
76 | #else | |
77 | puts("Unknown boot device\n"); | |
78 | hang(); | |
0d986e61 | 79 | #endif |
435199f3 | 80 | } |