if (!(scratch->options & SBI_SCRATCH_NO_BOOT_PRINTS))
sbi_boot_prints(scratch, hartid);
- if (!sbi_platform_has_hart_hotplug(plat))
- sbi_hart_wake_coldboot_harts(scratch, hartid);
+ sbi_hart_wake_coldboot_harts(scratch, hartid);
+
sbi_hart_mark_available(hartid);
+
sbi_hart_switch_mode(hartid, scratch->next_arg1, scratch->next_addr,
scratch->next_mode, FALSE);
}
int rc;
const struct sbi_platform *plat = sbi_platform_ptr(scratch);
- if (!sbi_platform_has_hart_hotplug(plat))
- sbi_hart_wait_for_coldboot(scratch, hartid);
-
- if (sbi_platform_hart_disabled(plat, hartid))
- sbi_hart_hang();
+ sbi_hart_wait_for_coldboot(scratch, hartid);
rc = sbi_system_early_init(scratch, FALSE);
if (rc)
sbi_hart_mark_available(hartid);
- if (sbi_platform_has_hart_hotplug(plat))
- /* TODO: To be implemented in-future. */
- sbi_hart_hang();
- else
- sbi_hart_switch_mode(hartid, scratch->next_arg1,
- scratch->next_addr,
- scratch->next_mode, FALSE);
+ sbi_hart_switch_mode(hartid, scratch->next_arg1,
+ scratch->next_addr,
+ scratch->next_mode, FALSE);
}
static atomic_t coldboot_lottery = ATOMIC_INITIALIZER(0);