Add profiles for Microsoft Windows Dev Kit 2023 and Ampere Altra
GitOrigin-RevId: bc7c739f80abeb6e58898417e280d532c1fe7ba6
Change-Id: I9c70ddd8ef7c6ffb1c77fe5fc1cacf91796889a8
diff --git a/include/cpuinfo.h b/include/cpuinfo.h
index 1972309..a7f17c2 100644
--- a/include/cpuinfo.h
+++ b/include/cpuinfo.h
@@ -188,6 +188,8 @@
* Processors are variants of AMD cores.
*/
cpuinfo_vendor_hygon = 16,
+ /** Ampere Computing LLC. Vendor of ARM64 processor microarchitectures. */
+ cpuinfo_vendor_ampere = 17,
/* Active vendors of embedded CPUs */
diff --git a/src/arm/windows/init-by-logical-sys-info.c b/src/arm/windows/init-by-logical-sys-info.c
index f088011..fe2611c 100644
--- a/src/arm/windows/init-by-logical-sys-info.c
+++ b/src/arm/windows/init-by-logical-sys-info.c
@@ -689,7 +689,7 @@
current_cache->flags = CPUINFO_CACHE_UNIFIED;
}
- for (uint32_t i = 0; i <= info->Cache.GroupCount; i++) {
+ for (uint32_t i = 0; i < info->Cache.GroupCount; i++) {
/* Zero GroupCount is valid, GroupMask still can store bits set. */
const uint32_t group_id = info->Cache.GroupMasks[i].Group;
/* Bitmask representing processors in this group belonging to this package */
diff --git a/src/arm/windows/init.c b/src/arm/windows/init.c
index 8effc15..2d25e95 100644
--- a/src/arm/windows/init.c
+++ b/src/arm/windows/init.c
@@ -30,6 +30,10 @@
{
"Qualcomm",
cpuinfo_vendor_qualcomm
+ },
+ {
+ "Ampere(R)",
+ cpuinfo_vendor_ampere
}
};
@@ -64,6 +68,32 @@
3150000000
}
}
+ },
+ /* Microsoft Windows Dev Kit 2023 */
+ {
+ "Snapdragon (TM) 8cx Gen 3 @ 3.0 GHz",
+ woa_chip_name_microsoft_sq_3,
+ {
+ {
+ cpuinfo_uarch_cortex_a78,
+ 2420000000,
+ },
+ {
+ cpuinfo_uarch_cortex_x1,
+ 3000000000
+ }
+ }
+ },
+ /* Ampere Altra */
+ {
+ "Ampere(R) Altra(R) Processor",
+ woa_chip_name_ampere_altra,
+ {
+ {
+ cpuinfo_uarch_neoverse_n1,
+ 3000000000
+ }
+ }
}
};
diff --git a/src/arm/windows/windows-arm-init.h b/src/arm/windows/windows-arm-init.h
index 76cc51e..fcd0f38 100644
--- a/src/arm/windows/windows-arm-init.h
+++ b/src/arm/windows/windows-arm-init.h
@@ -4,7 +4,9 @@
enum woa_chip_name {
woa_chip_name_microsoft_sq_1 = 0,
woa_chip_name_microsoft_sq_2 = 1,
- woa_chip_name_unknown = 2,
+ woa_chip_name_microsoft_sq_3 = 2,
+ woa_chip_name_ampere_altra = 3,
+ woa_chip_name_unknown = 4,
woa_chip_name_last = woa_chip_name_unknown
};