riscv: Call identify_cpu() earlier for CPU 0
It is advantageous to have knowledge of ISA features as early as possible. For example, the presence of newer virtual memory extensions may be useful to pmap_bootstrap(). To achieve this, split out the printf() parts of identify_cpu() into a separate function, printcpuinfo(). This latter function will be called later in boot after the console has been initialized. Reviewed by: markj MFC after: 2 weeks Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D39810
This commit is contained in:
parent
88b4d124ef
commit
b0d45b023e
@ -90,6 +90,7 @@ void cpu_halt(void) __dead2;
|
||||
void cpu_reset(void) __dead2;
|
||||
void fork_trampoline(void);
|
||||
void identify_cpu(void);
|
||||
void printcpuinfo(void);
|
||||
|
||||
static __inline uint64_t
|
||||
get_cyclecount(void)
|
||||
|
@ -365,6 +365,14 @@ identify_cpu_ids(struct cpu_desc *desc)
|
||||
|
||||
void
|
||||
identify_cpu(void)
|
||||
{
|
||||
struct cpu_desc *desc = &cpu_desc[PCPU_GET(cpuid)];
|
||||
|
||||
identify_cpu_ids(desc);
|
||||
}
|
||||
|
||||
void
|
||||
printcpuinfo(void)
|
||||
{
|
||||
struct cpu_desc *desc;
|
||||
u_int cpu, hart;
|
||||
@ -373,8 +381,6 @@ identify_cpu(void)
|
||||
hart = PCPU_GET(hart);
|
||||
desc = &cpu_desc[cpu];
|
||||
|
||||
identify_cpu_ids(desc);
|
||||
|
||||
/* Print details for boot CPU or if we want verbose output */
|
||||
if (cpu == 0 || bootverbose) {
|
||||
/* Summary line. */
|
||||
|
@ -128,7 +128,7 @@ cpu_startup(void *dummy)
|
||||
{
|
||||
|
||||
sbi_print_version();
|
||||
identify_cpu();
|
||||
printcpuinfo();
|
||||
|
||||
printf("real memory = %ju (%ju MB)\n", ptoa((uintmax_t)realmem),
|
||||
ptoa((uintmax_t)realmem) / (1024 * 1024));
|
||||
@ -536,6 +536,11 @@ initriscv(struct riscv_bootparams *rvbp)
|
||||
physmem_hardware_regions(mem_regions, mem_regions_sz);
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Identify CPU/ISA features.
|
||||
*/
|
||||
identify_cpu();
|
||||
|
||||
/* Do basic tuning, hz etc */
|
||||
init_param1();
|
||||
|
||||
|
@ -255,6 +255,7 @@ init_secondary(uint64_t hart)
|
||||
* runtime chip identification.
|
||||
*/
|
||||
identify_cpu();
|
||||
printcpuinfo();
|
||||
|
||||
/* Enable software interrupts */
|
||||
riscv_unmask_ipi();
|
||||
|
Loading…
Reference in New Issue
Block a user