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

 };