summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYe Li <ye.li@nxp.com>2017-10-13 04:23:20 -0500
committerYe Li <ye.li@nxp.com>2017-10-15 21:19:48 -0500
commit7953d472a0baa9aa9222241a67d5feec8444ca5c (patch)
tree473fdf3caf9fc4008fda6a3285f2b888b0b0ff41
parent642172bbb73faa5302bf83bbcd01e190f00bbd62 (diff)
MLK-16587-2 imx8qm/qxp: Change to use SCFW API to get boot device
Since SCFW has implemented a new API sc_misc_get_boot_dev to get boot device, change u-boot to use this API for QM/QXP, not use ROM INFO. Signed-off-by: Ye Li <ye.li@nxp.com> Reviewed-by: Peng Fan <peng.fan@nxp.com> (cherry picked from commit d9cc34edfa660a33b511db53a9a0cec90ae9ede2)
-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: