blob: 935e551472c88369a77153927a550a9ee896c3ea [file] [log] [blame]
Masahiro Yamada323d1f92015-09-22 00:27:39 +09001/*
2 * Copyright (C) 2015 Masahiro Yamada <yamada.masahiro@socionext.com>
3 *
4 * SPDX-License-Identifier: GPL-2.0+
5 */
6
7#include <common.h>
8#include <spl.h>
Masahiro Yamada107b3fb2016-01-09 01:51:13 +09009
10#include "../sbc/sbc-regs.h"
11#include "../soc-info.h"
12#include "boot-device.h"
Masahiro Yamada323d1f92015-09-22 00:27:39 +090013
Masahiro Yamadafec48162016-02-02 21:11:31 +090014u32 spl_boot_device_raw(void)
Masahiro Yamada323d1f92015-09-22 00:27:39 +090015{
16 if (boot_is_swapped())
17 return BOOT_DEVICE_NOR;
18
19 switch (uniphier_get_soc_type()) {
20#if defined(CONFIG_ARCH_UNIPHIER_PH1_SLD3)
21 case SOC_UNIPHIER_PH1_SLD3:
22 return ph1_sld3_boot_device();
23#endif
24#if defined(CONFIG_ARCH_UNIPHIER_PH1_LD4) || \
25 defined(CONFIG_ARCH_UNIPHIER_PH1_PRO4) || \
26 defined(CONFIG_ARCH_UNIPHIER_PH1_SLD8)
27 case SOC_UNIPHIER_PH1_LD4:
28 case SOC_UNIPHIER_PH1_PRO4:
29 case SOC_UNIPHIER_PH1_SLD8:
30 return ph1_ld4_boot_device();
31#endif
Masahiro Yamada28f40d42015-09-22 00:27:40 +090032#if defined(CONFIG_ARCH_UNIPHIER_PH1_PRO5)
33 case SOC_UNIPHIER_PH1_PRO5:
34 return ph1_pro5_boot_device();
35#endif
Masahiro Yamada019df872015-09-22 00:27:41 +090036#if defined(CONFIG_ARCH_UNIPHIER_PROXSTREAM2) || \
37 defined(CONFIG_ARCH_UNIPHIER_PH1_LD6B)
38 case SOC_UNIPHIER_PROXSTREAM2:
39 case SOC_UNIPHIER_PH1_LD6B:
40 return proxstream2_boot_device();
41#endif
Masahiro Yamada323d1f92015-09-22 00:27:39 +090042 default:
43 return BOOT_DEVICE_NONE;
44 }
45}
Masahiro Yamadafec48162016-02-02 21:11:31 +090046
47u32 spl_boot_device(void)
48{
49 u32 ret;
50
51 ret = spl_boot_device_raw();
52
53 return ret == BOOT_DEVICE_USB ? BOOT_DEVICE_NOR : ret;
54}