summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--arch/arm/cpu/armv8/imx8/cpu.c35
1 files changed, 20 insertions, 15 deletions
diff --git a/arch/arm/cpu/armv8/imx8/cpu.c b/arch/arm/cpu/armv8/imx8/cpu.c
index eae935b320..9f290258b8 100644
--- a/arch/arm/cpu/armv8/imx8/cpu.c
+++ b/arch/arm/cpu/armv8/imx8/cpu.c
@@ -599,33 +599,38 @@ void arch_preboot_os(void)
#endif
}
-
enum boot_device get_boot_device(void)
{
- struct rom_sw_info_t **p =
- (struct rom_sw_info_t **)ROM_SW_INFO_ADDR;
-
enum boot_device boot_dev = SD1_BOOT;
- uint8_t boot_type = (*p)->boot_dev_info.dev_type;
- uint8_t boot_instance = (*p)->boot_dev_info.instance;
- switch (boot_type) {
- case FLASH_TYPE_SD:
- boot_dev = boot_instance + SD1_BOOT;
+ sc_ipc_t ipcHndl = 0;
+ sc_rsrc_t dev_rsrc;
+
+ ipcHndl = gd->arch.ipc_channel_handle;
+ sc_misc_get_boot_dev(ipcHndl, &dev_rsrc);
+
+ switch (dev_rsrc) {
+ case SC_R_SDHC_0:
+ boot_dev = MMC1_BOOT;
+ break;
+ case SC_R_SDHC_1:
+ boot_dev = SD2_BOOT;
break;
- case FLASH_TYPE_MMC:
- boot_dev = boot_instance + MMC1_BOOT;
+ case SC_R_SDHC_2:
+ boot_dev = SD3_BOOT;
break;
- case FLASH_TYPE_NAND:
+ case SC_R_NAND:
boot_dev = NAND_BOOT;
break;
- case FLASH_TYPE_FLEXSPINOR:
+ case SC_R_FSPI_0:
boot_dev = QSPI_BOOT;
break;
- case BT_DEV_TYPE_SATA_DISK:
+ case SC_R_SATA_0:
boot_dev = SATA_BOOT;
break;
- case BT_DEV_TYPE_USB:
+ case SC_R_USB_0:
+ case SC_R_USB_1:
+ case SC_R_USB_2:
boot_dev = USB_BOOT;
break;
default: