xref: /aosp_15_r20/external/cpuinfo/src/arm/windows/windows-arm-init.h (revision 2b54f0db79fd8303838913b20ff3780cddaa909f)
1 #pragma once
2 
3 /* List of known and supported Windows on Arm SoCs/chips. */
4 enum woa_chip_name {
5 	woa_chip_name_microsoft_sq_1 = 0,
6 	woa_chip_name_microsoft_sq_2 = 1,
7 	woa_chip_name_unknown = 2,
8 	woa_chip_name_last = woa_chip_name_unknown
9 };
10 
11 /* Topology information hard-coded by SoC/chip name */
12 struct core_info_by_chip_name {
13 	enum cpuinfo_uarch uarch;
14 	uint64_t frequency; /* Hz */
15 };
16 
17 /* SoC/chip info that's currently not readable by logical system information,
18  * but can be read from registry.
19  */
20 struct woa_chip_info {
21 	char* chip_name_string;
22 	enum woa_chip_name chip_name;
23 	struct core_info_by_chip_name uarchs[woa_chip_name_last];
24 };
25 
26 bool get_core_uarch_for_efficiency(
27 	enum woa_chip_name chip, BYTE EfficiencyClass,
28 	enum cpuinfo_uarch* uarch, uint64_t* frequency);
29 
30 bool cpu_info_init_by_logical_sys_info(
31 	const struct woa_chip_info *chip_info,
32 	enum cpuinfo_vendor vendor);
33