boot_mode.h 951 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. /* SPDX-License-Identifier: GPL-2.0+ */
  2. /*
  3. * Copyright (C) 2012 Boundary Devices Inc.
  4. */
  5. #ifndef _ASM_BOOT_MODE_H
  6. #define _ASM_BOOT_MODE_H
  7. #define MAKE_CFGVAL(cfg1, cfg2, cfg3, cfg4) \
  8. ((cfg4) << 24) | ((cfg3) << 16) | ((cfg2) << 8) | (cfg1)
  9. enum boot_device {
  10. WEIM_NOR_BOOT,
  11. ONE_NAND_BOOT,
  12. PATA_BOOT,
  13. SATA_BOOT,
  14. I2C_BOOT,
  15. SPI_NOR_BOOT,
  16. SD1_BOOT,
  17. SD2_BOOT,
  18. SD3_BOOT,
  19. SD4_BOOT,
  20. MMC1_BOOT,
  21. MMC2_BOOT,
  22. MMC3_BOOT,
  23. MMC4_BOOT,
  24. NAND_BOOT,
  25. QSPI_BOOT,
  26. USB_BOOT,
  27. UNKNOWN_BOOT,
  28. BOOT_DEV_NUM = UNKNOWN_BOOT,
  29. };
  30. /* Boot device type */
  31. #define BOOT_TYPE_SD 0x1
  32. #define BOOT_TYPE_MMC 0x2
  33. #define BOOT_TYPE_NAND 0x3
  34. #define BOOT_TYPE_QSPI 0x4
  35. #define BOOT_TYPE_WEIM 0x5
  36. #define BOOT_TYPE_SPINOR 0x6
  37. #define BOOT_TYPE_USB 0xF
  38. struct boot_mode {
  39. const char *name;
  40. unsigned cfg_val;
  41. };
  42. void add_board_boot_modes(const struct boot_mode *p);
  43. void boot_mode_apply(unsigned cfg_val);
  44. extern const struct boot_mode soc_boot_modes[];
  45. #endif