Line 275... |
Line 275... |
|
|
neorv32_uart_printf("\n\n<<< Processor Configuration Overview >>>\n");
|
neorv32_uart_printf("\n\n<<< Processor Configuration Overview >>>\n");
|
|
|
// Processor - general stuff
|
// Processor - general stuff
|
neorv32_uart0_printf("\n=== << General >> ===\n"
|
neorv32_uart0_printf("\n=== << General >> ===\n"
|
"Clock: %u Hz\n"
|
"Clock speed: %u Hz\n", SYSINFO_CLK);
|
"User ID: 0x%x\n", SYSINFO_CLK, SYSINFO_USER_CODE);
|
|
neorv32_uart0_printf("Full HW reset: "); __neorv32_rte_print_true_false(SYSINFO_FEATURES & (1 << SYSINFO_FEATURES_HW_RESET));
|
neorv32_uart0_printf("Full HW reset: "); __neorv32_rte_print_true_false(SYSINFO_FEATURES & (1 << SYSINFO_FEATURES_HW_RESET));
|
neorv32_uart0_printf("Boot Config.: Boot ");
|
neorv32_uart0_printf("Boot Config.: Boot ");
|
if (SYSINFO_FEATURES & (1 << SYSINFO_FEATURES_BOOTLOADER)) {
|
if (SYSINFO_FEATURES & (1 << SYSINFO_FEATURES_BOOTLOADER)) {
|
neorv32_uart0_printf("via Bootloader\n");
|
neorv32_uart0_printf("via Bootloader\n");
|
}
|
}
|
Line 328... |
Line 327... |
neorv32_uart0_putc(c);
|
neorv32_uart0_putc(c);
|
neorv32_uart0_putc(' ');
|
neorv32_uart0_putc(' ');
|
}
|
}
|
}
|
}
|
|
|
// Z* CPU extensions (from custom "mzext" CSR)
|
// Z* CPU extensions
|
tmp = neorv32_cpu_csr_read(CSR_MZEXT);
|
tmp = SYSINFO_CPU;
|
if (tmp & (1<<CSR_MZEXT_ZICSR)) {
|
if (tmp & (1<<SYSINFO_CPU_ZICSR)) {
|
neorv32_uart0_printf("Zicsr ");
|
neorv32_uart0_printf("Zicsr ");
|
}
|
}
|
if (tmp & (1<<CSR_MZEXT_ZIFENCEI)) {
|
if (tmp & (1<<SYSINFO_CPU_ZIFENCEI)) {
|
neorv32_uart0_printf("Zifencei ");
|
neorv32_uart0_printf("Zifencei ");
|
}
|
}
|
if (tmp & (1<<CSR_MZEXT_ZMMUL)) {
|
if (tmp & (1<<SYSINFO_CPU_ZMMUL)) {
|
neorv32_uart0_printf("Zmmul ");
|
neorv32_uart0_printf("Zmmul ");
|
}
|
}
|
|
if (tmp & (1<<SYSINFO_CPU_ZBB)) {
|
|
neorv32_uart0_printf("Zbb ");
|
|
}
|
|
|
if (tmp & (1<<CSR_MZEXT_ZFINX)) {
|
if (tmp & (1<<SYSINFO_CPU_ZFINX)) {
|
neorv32_uart0_printf("Zfinx ");
|
neorv32_uart0_printf("Zfinx ");
|
}
|
}
|
if (tmp & (1<<CSR_MZEXT_ZXNOCNT)) {
|
if (tmp & (1<<SYSINFO_CPU_ZXNOCNT)) {
|
neorv32_uart0_printf("Zxnocnt(!) ");
|
neorv32_uart0_printf("Zxnocnt(!) ");
|
}
|
}
|
if (tmp & (1<<CSR_MZEXT_ZXSCNT)) {
|
if (tmp & (1<<SYSINFO_CPU_ZXSCNT)) {
|
neorv32_uart0_printf("Zxscnt(!) ");
|
neorv32_uart0_printf("Zxscnt(!) ");
|
}
|
}
|
if (tmp & (1<<CSR_MZEXT_DEBUGMODE)) {
|
if (tmp & (1<<SYSINFO_CPU_DEBUGMODE)) {
|
neorv32_uart0_printf("Debug-Mode ");
|
neorv32_uart0_printf("Debug-Mode ");
|
}
|
}
|
|
|
|
if (tmp & (1<<SYSINFO_CPU_FASTMUL)) {
|
|
neorv32_uart0_printf("FAST_MUL ");
|
|
}
|
|
if (tmp & (1<<SYSINFO_CPU_FASTSHIFT)) {
|
|
neorv32_uart0_printf("FAST_SHIFT ");
|
|
}
|
|
|
// check physical memory protection
|
// check physical memory protection
|
neorv32_uart0_printf("\nPMP: ");
|
neorv32_uart0_printf("\nPMP: ");
|
uint32_t pmp_num_regions = neorv32_cpu_pmp_get_num_regions();
|
uint32_t pmp_num_regions = neorv32_cpu_pmp_get_num_regions();
|
if (pmp_num_regions != 0) {
|
if (pmp_num_regions != 0) {
|
neorv32_uart0_printf("%u regions, %u bytes minimal granularity\n", pmp_num_regions, neorv32_cpu_pmp_get_granularity());
|
neorv32_uart0_printf("%u regions, %u bytes minimal granularity\n", pmp_num_regions, neorv32_cpu_pmp_get_granularity());
|