Instead of setting a counter of the number of secondaries to start, have platform or target code pass in a list of harts to start instead. This allows for there to be discontinuties in the layout of the cpu harts, or in the case of some sifive based hardware, hart 0 is otherwise offline.