Tom Rini | 10e4779 | 2018-05-06 17:58:06 -0400 | [diff] [blame] | 1 | /* SPDX-License-Identifier: GPL-2.0+ */ |
Troy Kisky | 0ca618c | 2012-08-15 10:31:20 +0000 | [diff] [blame] | 2 | /* |
| 3 | * Copyright (C) 2012 Boundary Devices Inc. |
Troy Kisky | 0ca618c | 2012-08-15 10:31:20 +0000 | [diff] [blame] | 4 | */ |
| 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 Alonso | 2b3d961 | 2015-09-02 13:54:19 -0500 | [diff] [blame] | 11 | enum 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 Fan | bad5509 | 2018-01-10 13:20:24 +0800 | [diff] [blame] | 28 | USB_BOOT, |
Adrian Alonso | 2b3d961 | 2015-09-02 13:54:19 -0500 | [diff] [blame] | 29 | UNKNOWN_BOOT, |
| 30 | BOOT_DEV_NUM = UNKNOWN_BOOT, |
| 31 | }; |
| 32 | |
Peng Fan | d64a3c5 | 2018-01-10 13:20:34 +0800 | [diff] [blame] | 33 | /* Boot device type */ |
| 34 | #define BOOT_TYPE_SD 0x1 |
| 35 | #define BOOT_TYPE_MMC 0x2 |
| 36 | #define BOOT_TYPE_NAND 0x3 |
| 37 | #define BOOT_TYPE_QSPI 0x4 |
| 38 | #define BOOT_TYPE_WEIM 0x5 |
| 39 | #define BOOT_TYPE_SPINOR 0x6 |
| 40 | #define BOOT_TYPE_USB 0xF |
| 41 | |
Troy Kisky | 0ca618c | 2012-08-15 10:31:20 +0000 | [diff] [blame] | 42 | struct boot_mode { |
| 43 | const char *name; |
| 44 | unsigned cfg_val; |
| 45 | }; |
| 46 | |
| 47 | void add_board_boot_modes(const struct boot_mode *p); |
| 48 | void boot_mode_apply(unsigned cfg_val); |
| 49 | extern const struct boot_mode soc_boot_modes[]; |
| 50 | #endif |