VirtualBox

source: vbox/trunk/src/VBox/VMM/VMMR3/cpus/ARM_Apple_M1.h@ 109050

Last change on this file since 109050 was 109029, checked in by vboxsync, 3 weeks ago

SUP,VBoxCpuReport,VMM/CPUM: Deal with core variations on arm CPUs when generating reports for them. jiraref:VBP-1598

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 3.8 KB
Line 
1/* $Id: ARM_Apple_M1.h 109029 2025-04-20 02:48:56Z vboxsync $ */
2/** @file
3 * CPU database entry "Apple M1".
4 * Handcrafted placeholder.
5 */
6
7/*
8 * Copyright (C) 2025 Oracle and/or its affiliates.
9 *
10 * This file is part of VirtualBox base platform packages, as
11 * available from https://www.virtualbox.org.
12 *
13 * This program is free software; you can redistribute it and/or
14 * modify it under the terms of the GNU General Public License
15 * as published by the Free Software Foundation, in version 3 of the
16 * License.
17 *
18 * This program is distributed in the hope that it will be useful, but
19 * WITHOUT ANY WARRANTY; without even the implied warranty of
20 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
21 * General Public License for more details.
22 *
23 * You should have received a copy of the GNU General Public License
24 * along with this program; if not, see <https://www.gnu.org/licenses>.
25 *
26 * SPDX-License-Identifier: GPL-3.0-only
27 */
28
29#ifndef VBOX_CPUDB_ARM_Apple_M1_h
30#define VBOX_CPUDB_ARM_Apple_M1_h
31#ifndef RT_WITHOUT_PRAGMA_ONCE
32# pragma once
33#endif
34
35
36/**
37 * System/Id Register values for Apple M1.
38 */
39static SUPARMSYSREGVAL const g_aSysRegCmnVals_ARM_Apple_M1[] =
40{
41 { UINT64_C(0x0000000080000000), ARMV8_AARCH64_SYSREG_MPIDR_EL1 },
42 { UINT64_C(0x0000000010305f09), ARMV8_AARCH64_SYSREG_ID_AA64DFR0_EL1 },
43 { UINT64_C(0x0221100110212120), ARMV8_AARCH64_SYSREG_ID_AA64ISAR0_EL1 },
44 { UINT64_C(0x0000011110211202), ARMV8_AARCH64_SYSREG_ID_AA64ISAR1_EL1 },
45};
46
47/**
48 * System/Id Register values for Apple M1 (Icestorm), variant 0.
49 */
50static SUPARMSYSREGVAL const g_aSysRegVals_Var0_ARM_Apple_M1[] =
51{
52 { UINT64_C(0x00000000611f0221), ARMV8_AARCH64_SYSREG_MIDR_EL1 },
53};
54
55/**
56 * System/Id Register values for Apple M1 (Firestorm), variant 0.
57 */
58static SUPARMSYSREGVAL const g_aSysRegVals_Var1_ARM_Apple_M1[] =
59{
60 { UINT64_C(0x00000000611f0231), ARMV8_AARCH64_SYSREG_MIDR_EL1 },
61};
62
63
64/**
65 * Database entry for Apple M1
66 */
67static CPUMDBENTRYARM const g_Entry_ARM_Apple_M1 =
68{
69 {
70 /*.pszName = */ "Apple M1",
71 /*.pszFullName = */ "Apple M1",
72 /*.enmVendor = */ CPUMCPUVENDOR_APPLE,
73 /*.enmMicroarch = */ kCpumMicroarch_Apple_M1,
74 /*.fFlags = */ 0,
75 /*.enmEntryType = */ CPUMDBENTRYTYPE_ARM,
76 },
77
78 /*.paSysRegVals = */ g_aSysRegCmnVals_ARM_Apple_M1,
79 /*.cSysRegVals = */ RT_ELEMENTS(g_aSysRegCmnVals_ARM_Apple_M1),
80 /*.cVariants = */ 2,
81 /*.aVariants = */
82 {
83 /*.aVariants[0] = */
84 {
85 /*.pszName = */ "Apple M1 (Icestorm)",
86 /*.Midr = */
87 {
88 /* .s = */
89 {
90 /*.bRevision = */ 0x1,
91 /*.uPartNum = */ 0x022,
92 /*.bArch = */ 0xf,
93 /*.bVariant = */ 0x1,
94 /*.bImplementer = */ 0x61,
95 }
96 },
97 /*.enmCoreType = */ kCpumCoreType_Performance,
98 /*.cSysRegVals = */ RT_ELEMENTS(g_aSysRegVals_Var0_ARM_Apple_M1),
99 /*.paSysRegVals = */ g_aSysRegVals_Var0_ARM_Apple_M1,
100 },
101 /*.aVariants[1] = */
102 {
103 /*.pszName = */ "Apple M1 (Firestorm)",
104 /*.Midr = */
105 {
106 /* .s = */
107 {
108 /*.bRevision = */ 0x1,
109 /*.uPartNum = */ 0x023,
110 /*.bArch = */ 0xf,
111 /*.bVariant = */ 0x1,
112 /*.bImplementer = */ 0x61,
113 }
114 },
115 /*.enmCoreType = */ kCpumCoreType_Efficiency,
116 /*.cSysRegVals = */ RT_ELEMENTS(g_aSysRegVals_Var1_ARM_Apple_M1),
117 /*.paSysRegVals = */ g_aSysRegVals_Var1_ARM_Apple_M1,
118 },
119 }
120};
121
122#endif /* !VBOX_CPUDB_ARM_Apple_M1_h */
123
Note: See TracBrowser for help on using the repository browser.

© 2025 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette