| /* SPDX-License-Identifier: GPL-2.0+ */ |
| /* |
| * Copyright (C) 2012 Boundary Devices Inc. |
| */ |
| |
| #ifndef _ASM_BOOT_MODE_H |
| #define _ASM_BOOT_MODE_H |
| #define MAKE_CFGVAL(cfg1, cfg2, cfg3, cfg4) \ |
| ((cfg4) << 24) | ((cfg3) << 16) | ((cfg2) << 8) | (cfg1) |
| #define MAKE_CFGVAL_PRIMARY_BOOT 0xfffffff0 |
| #define MAKE_CFGVAL_SECONDARY_BOOT 0xffffffff |
| |
| enum boot_device { |
| WEIM_NOR_BOOT, |
| ONE_NAND_BOOT, |
| PATA_BOOT, |
| SATA_BOOT, |
| I2C_BOOT, |
| SPI_NOR_BOOT, |
| SD1_BOOT, |
| SD2_BOOT, |
| SD3_BOOT, |
| SD4_BOOT, |
| MMC1_BOOT, |
| MMC2_BOOT, |
| MMC3_BOOT, |
| MMC4_BOOT, |
| NAND_BOOT, |
| QSPI_BOOT, |
| FLEXSPI_BOOT, |
| USB_BOOT, |
| USB2_BOOT, |
| UNKNOWN_BOOT, |
| BOOT_DEV_NUM = UNKNOWN_BOOT, |
| }; |
| |
| /* Boot device type */ |
| #define BOOT_TYPE_SD 0x1 |
| #define BOOT_TYPE_MMC 0x2 |
| #define BOOT_TYPE_NAND 0x3 |
| #define BOOT_TYPE_QSPI 0x4 |
| #define BOOT_TYPE_WEIM 0x5 |
| #define BOOT_TYPE_SPINOR 0x6 |
| #define BOOT_TYPE_USB 0xF |
| |
| struct boot_mode { |
| const char *name; |
| unsigned cfg_val; |
| }; |
| |
| void add_board_boot_modes(const struct boot_mode *p); |
| void boot_mode_apply(unsigned cfg_val); |
| extern const struct boot_mode soc_boot_modes[]; |
| #endif |