diff options
author | Ye Li <ye.li@nxp.com> | 2017-10-13 04:23:20 -0500 |
---|---|---|
committer | Ye Li <ye.li@nxp.com> | 2017-10-15 21:19:48 -0500 |
commit | 7953d472a0baa9aa9222241a67d5feec8444ca5c (patch) | |
tree | 473fdf3caf9fc4008fda6a3285f2b888b0b0ff41 | |
parent | 642172bbb73faa5302bf83bbcd01e190f00bbd62 (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.c | 35 |
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: |