u32 spl_boot_device(void)
{
+#if IS_ENABLED(CONFIG_SPL_OS_BOOT_SECURE) && !IS_ENABLED(CONFIG_ARM64)
+ return k3_r5_falcon_bootmode();
+#else
return get_boot_device();
+#endif
}
u32 devstat = readl(CTRLMMR_MAIN_DEVSTAT);
u32 bootmedia;
+#if IS_ENABLED(CONFIG_SPL_OS_BOOT_SECURE) && !IS_ENABLED(CONFIG_ARM64)
+ return k3_r5_falcon_bootmode();
+#endif
+
if (bootindex == K3_PRIMARY_BOOTMODE)
bootmedia = __get_primary_bootmedia(devstat);
else
u32 spl_boot_device(void)
{
+#if IS_ENABLED(CONFIG_SPL_OS_BOOT_SECURE) && !IS_ENABLED(CONFIG_ARM64)
+ return k3_r5_falcon_bootmode();
+#else
return get_boot_device();
+#endif
}
#if IS_ENABLED(CONFIG_SPL_OS_BOOT_SECURE) && !IS_ENABLED(CONFIG_ARM64)
int k3_r5_falcon_bootmode(void);
+int k3_r5_falcon_prep(void);
#endif
#if (IS_ENABLED(CONFIG_K3_QOS))
return 0;
}
+int k3_r5_falcon_bootmode(void)
+{
+ char *mmcdev = env_get("mmcdev");
+
+ if (!mmcdev)
+ return BOOT_DEVICE_NOBOOT;
+
+ if (strncmp(mmcdev, "0", sizeof("0")) == 0)
+ return BOOT_DEVICE_MMC1;
+ else if (strncmp(mmcdev, "1", sizeof("1")) == 0)
+ return BOOT_DEVICE_MMC2;
+ else
+ return BOOT_DEVICE_NOBOOT;
+}
+
int k3_r5_falcon_prep(void)
{
struct spl_image_loader *loader, *drv;
memset(&kernel_image, '\0', sizeof(kernel_image));
drv = ll_entry_start(struct spl_image_loader, spl_image_loader);
n_ents = ll_entry_count(struct spl_image_loader, spl_image_loader);
- bootdev.boot_device = spl_boot_device();
+ bootdev.boot_device = k3_r5_falcon_bootmode();
for (loader = drv; loader != drv + n_ents; loader++) {
if (loader && bootdev.boot_device != loader->boot_device)