blob: 3a483b6afa610e6dfc545c4705ef15418bd87118 [file] [log] [blame]
Tom Rini10e47792018-05-06 17:58:06 -04001/* SPDX-License-Identifier: GPL-2.0+ */
Troy Kisky0ca618c2012-08-15 10:31:20 +00002/*
3 * Copyright (C) 2012 Boundary Devices Inc.
Troy Kisky0ca618c2012-08-15 10:31:20 +00004 */
5
6#ifndef _ASM_BOOT_MODE_H
7#define _ASM_BOOT_MODE_H
8#define MAKE_CFGVAL(cfg1, cfg2, cfg3, cfg4) \
9 ((cfg4) << 24) | ((cfg3) << 16) | ((cfg2) << 8) | (cfg1)
10
Adrian Alonso2b3d9612015-09-02 13:54:19 -050011enum boot_device {
12 WEIM_NOR_BOOT,
13 ONE_NAND_BOOT,
14 PATA_BOOT,
15 SATA_BOOT,
16 I2C_BOOT,
17 SPI_NOR_BOOT,
18 SD1_BOOT,
19 SD2_BOOT,
20 SD3_BOOT,
21 SD4_BOOT,
22 MMC1_BOOT,
23 MMC2_BOOT,
24 MMC3_BOOT,
25 MMC4_BOOT,
26 NAND_BOOT,
27 QSPI_BOOT,
Peng Fan0576f9b2018-10-18 14:28:13 +020028 FLEXSPI_BOOT,
Peng Fanbad55092018-01-10 13:20:24 +080029 USB_BOOT,
Adrian Alonso2b3d9612015-09-02 13:54:19 -050030 UNKNOWN_BOOT,
31 BOOT_DEV_NUM = UNKNOWN_BOOT,
32};
33
Peng Fand64a3c52018-01-10 13:20:34 +080034/* Boot device type */
35#define BOOT_TYPE_SD 0x1
36#define BOOT_TYPE_MMC 0x2
37#define BOOT_TYPE_NAND 0x3
38#define BOOT_TYPE_QSPI 0x4
39#define BOOT_TYPE_WEIM 0x5
40#define BOOT_TYPE_SPINOR 0x6
41#define BOOT_TYPE_USB 0xF
42
Troy Kisky0ca618c2012-08-15 10:31:20 +000043struct boot_mode {
44 const char *name;
45 unsigned cfg_val;
46};
47
48void add_board_boot_modes(const struct boot_mode *p);
49void boot_mode_apply(unsigned cfg_val);
50extern const struct boot_mode soc_boot_modes[];
51#endif