OpenCores
URL https://opencores.org/ocsvn/neorv32/neorv32/trunk

Subversion Repositories neorv32

[/] [neorv32/] [trunk/] [sw/] [lib/] [source/] [neorv32_rte.c] - Diff between revs 53 and 56

Go to most recent revision | Show entire file | Details | Blame | View Log

Rev 53 Rev 56
Line 280... Line 280...
  // CPU configuration
  // CPU configuration
  neorv32_uart_printf("\n=== << CPU >> ===\n");
  neorv32_uart_printf("\n=== << CPU >> ===\n");
 
 
  // ID
  // ID
  neorv32_uart_printf("Hart ID:           0x%x\n", neorv32_cpu_csr_read(CSR_MHARTID));
  neorv32_uart_printf("Hart ID:           0x%x\n", neorv32_cpu_csr_read(CSR_MHARTID));
 
 
  neorv32_uart_printf("Vendor ID:         0x%x\n", neorv32_cpu_csr_read(CSR_MVENDORID));
  neorv32_uart_printf("Vendor ID:         0x%x\n", neorv32_cpu_csr_read(CSR_MVENDORID));
 
 
  tmp = neorv32_cpu_csr_read(CSR_MARCHID);
  tmp = neorv32_cpu_csr_read(CSR_MARCHID);
  neorv32_uart_printf("Architecture ID:   0x%x", tmp);
  neorv32_uart_printf("Architecture ID:   0x%x", tmp);
  if (tmp == NEORV32_ARCHID) {
  if (tmp == NEORV32_ARCHID) {
Line 351... Line 350...
    neorv32_uart_printf("Zba ");
    neorv32_uart_printf("Zba ");
  }
  }
  if (tmp & (1<<CSR_MZEXT_ZFINX)) {
  if (tmp & (1<<CSR_MZEXT_ZFINX)) {
    neorv32_uart_printf("Zfinx ");
    neorv32_uart_printf("Zfinx ");
  }
  }
 
  if (tmp & (1<<CSR_MZEXT_ZXNOCNT)) {
 
    neorv32_uart_printf("Zxnocnt(!) ");
 
  }
 
  if (tmp & (1<<CSR_MZEXT_ZXSCNT)) {
 
    neorv32_uart_printf("Zxscnt(!) ");
 
  }
 
 
  // check physical memory protection
  // check physical memory protection
  neorv32_uart_printf("\nPMP:               ");
  neorv32_uart_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)  {
Line 363... Line 368...
  else {
  else {
    neorv32_uart_printf("not implemented\n");
    neorv32_uart_printf("not implemented\n");
  }
  }
 
 
  // check hardware performance monitors
  // check hardware performance monitors
  neorv32_uart_printf("HPM Counters:      %u\n", neorv32_cpu_hpm_get_counters());
  neorv32_uart_printf("HPM Counters:      %ux, %u-bit wide\n", neorv32_cpu_hpm_get_counters(), neorv32_cpu_hpm_get_size());
 
 
 
 
  // Memory configuration
  // Memory configuration
  neorv32_uart_printf("\n=== << Memory Configuration >> ===\n");
  neorv32_uart_printf("\n=== << Memory Configuration >> ===\n");
 
 
  neorv32_uart_printf("Instr. base address:  0x%x\n", SYSINFO_ISPACE_BASE);
  neorv32_uart_printf("Instr. base address:  0x%x\n", SYSINFO_ISPACE_BASE);
 
 
 
  // IMEM
  neorv32_uart_printf("Internal IMEM:        ");
  neorv32_uart_printf("Internal IMEM:        ");
  __neorv32_rte_print_true_false(SYSINFO_FEATURES & (1 << SYSINFO_FEATURES_MEM_INT_IMEM));
  if (SYSINFO_FEATURES & (1 << SYSINFO_FEATURES_MEM_INT_IMEM)) {
  neorv32_uart_printf("IMEM size:            %u bytes\n", SYSINFO_IMEM_SIZE);
    neorv32_uart_printf("yes, %u bytes", SYSINFO_IMEM_SIZE);
  neorv32_uart_printf("Internal IMEM as ROM: ");
    if (SYSINFO_FEATURES & (1 << SYSINFO_FEATURES_MEM_INT_IMEM_ROM)) {
  __neorv32_rte_print_true_false(SYSINFO_FEATURES & (1 << SYSINFO_FEATURES_MEM_INT_IMEM_ROM));
      neorv32_uart_printf(", read-only (ROM)");
 
    }
 
  }
 
  else {
 
    neorv32_uart_printf("no");
 
  }
 
  neorv32_uart_printf("\n");
 
 
 
  // DMEM
  neorv32_uart_printf("Data base address:    0x%x\n", SYSINFO_DSPACE_BASE);
  neorv32_uart_printf("Data base address:    0x%x\n", SYSINFO_DSPACE_BASE);
  neorv32_uart_printf("Internal DMEM:        ");
  neorv32_uart_printf("Internal DMEM:        ");
  __neorv32_rte_print_true_false(SYSINFO_FEATURES & (1 << SYSINFO_FEATURES_MEM_INT_DMEM));
  if (SYSINFO_FEATURES & (1 << SYSINFO_FEATURES_MEM_INT_DMEM)) { neorv32_uart_printf("yes, %u bytes\n", SYSINFO_DMEM_SIZE); }
  neorv32_uart_printf("DMEM size:            %u bytes\n", SYSINFO_DMEM_SIZE);
  else {  neorv32_uart_printf("no\n"); }
 
 
 
  // i-cache
  neorv32_uart_printf("Internal i-cache:     ");
  neorv32_uart_printf("Internal i-cache:     ");
  __neorv32_rte_print_true_false(SYSINFO_FEATURES & (1 << SYSINFO_FEATURES_ICACHE));
  __neorv32_rte_print_true_false(SYSINFO_FEATURES & (1 << SYSINFO_FEATURES_ICACHE));
  if (SYSINFO_FEATURES & (1 << SYSINFO_FEATURES_ICACHE)) {
  if (SYSINFO_FEATURES & (1 << SYSINFO_FEATURES_ICACHE)) {
    neorv32_uart_printf("- ");
    neorv32_uart_printf("- ");
 
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.