• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 #include <stdint.h>
2 
3 #include <cpuinfo/log.h>
4 #include <riscv/api.h>
5 
cpuinfo_riscv_decode_vendor_uarch(uint32_t vendor_id,uint32_t arch_id,uint32_t imp_id,enum cpuinfo_vendor vendor[restrict static1],enum cpuinfo_uarch uarch[restrict static1])6 void cpuinfo_riscv_decode_vendor_uarch(
7 	uint32_t vendor_id,
8 	uint32_t arch_id,
9 	uint32_t imp_id,
10 	enum cpuinfo_vendor vendor[restrict static 1],
11 	enum cpuinfo_uarch uarch[restrict static 1]) {
12 	/* The vendor ID is sufficient to determine the cpuinfo_vendor. */
13 	switch (vendor_id) {
14 		case cpuinfo_riscv_chipset_vendor_sifive:
15 			*vendor = cpuinfo_vendor_sifive;
16 			break;
17 		default:
18 			*vendor = cpuinfo_vendor_unknown;
19 			cpuinfo_log_warning("unknown vendor ID: %" PRIu32, vendor_id);
20 			break;
21 	}
22 	/**
23 	 * TODO: Add support for parsing chipset architecture and implementation
24 	 * IDs here, when a chipset of interest comes along.
25 	 */
26 	*uarch = cpuinfo_uarch_unknown;
27 }
28