I’m working bare metal and booting from the SD card into my own code. So my code replaces the BBL and this runs hart 0 fine.
I’d like to find a way to use harts 1 to 4 but I can’t see a way. They are sitting in a loop around 0x00010086 in Mask ROM.
Sometimes when I reset, harts 1 to 4 may have their interrupts enabled after reset. If this is the case I can software interrupt from hart 0 and reset hart 1 to 4’s mepc to my code and use whichever hart 1 to 4 whose interrupts were enabled on reset, but it seems arbitrary for any given reset which harts 1 to 4 have interrupts enabled or not. Sometimes they all have interrupts enabled and sometimes none of them.
So, I can’t see any way to reliably get harts 1 to 4 out of Mask ROM and actually use them.
Is there a mechanism which would allow me to do this?