Perform ISA parsing per-CPU.riscv: rework CPU identification [3/6]
We currently perform per-CPU ISA parsing all in one go, inPerform all parsing+reporting on CPU 0.
Make use of the SMP hooks cpu_mp_start() and cpu_mp_announce() to
fill_elf_hwcap() at SI_SUB_CPU. Insteadidentify and print secondary CPU info, let's have each CPU call this
(renamed) function as part of identify_cpu()respectively.
This makes some additions to this code simpler,Eliminate the SYSINIT from identcpu.c. and allows featureWe still need to walk the /cpus
parsing for the BSP to take place much earlier.list in the device tree, but now do this one CPU at a time, It also ensures we willas a step in
only perform tthe identify_cpu() procedure. This parsing for enabled CPUs.is slightly less error prone, Currently the loop does notand
guard against harts which will never enter the kernel, such as theallows us to parse ISA features for CPU 0 much earlier.
This causes secondary processor identification to be printed much
management hart on the HiFive Unmatched which has no MMUearlier in boot; everything is done by SI_SUB_CPU, SI_ORDER_THIRD.
Adjust some other printf calls so that we get enough useful info to
debug under bootverbose.