xref: /openbmc/qemu/qapi/machine-common.json (revision 63dc36944383f70f1c7a20f6104966d8560300fa)
15de1aff2SPierre Morel# -*- Mode: Python -*-
25de1aff2SPierre Morel# vim: filetype=python
35de1aff2SPierre Morel#
45de1aff2SPierre Morel# This work is licensed under the terms of the GNU GPL, version 2 or later.
55de1aff2SPierre Morel# See the COPYING file in the top-level directory.
65de1aff2SPierre Morel
75de1aff2SPierre Morel##
8e823ebe7SZhao Liu# = Common machine types
95de1aff2SPierre Morel##
105de1aff2SPierre Morel
115de1aff2SPierre Morel##
1232cfefb9SMarkus Armbruster# @S390CpuEntitlement:
135de1aff2SPierre Morel#
145de1aff2SPierre Morel# An enumeration of CPU entitlements that can be assumed by a virtual
155de1aff2SPierre Morel# S390 CPU
165de1aff2SPierre Morel#
175de1aff2SPierre Morel# Since: 8.2
185de1aff2SPierre Morel##
1932cfefb9SMarkus Armbruster{ 'enum': 'S390CpuEntitlement',
205de1aff2SPierre Morel  'data': [ 'auto', 'low', 'medium', 'high' ] }
21e823ebe7SZhao Liu
22e823ebe7SZhao Liu##
23e823ebe7SZhao Liu# @CpuTopologyLevel:
24e823ebe7SZhao Liu#
25e823ebe7SZhao Liu# An enumeration of CPU topology levels.
26e823ebe7SZhao Liu#
27e823ebe7SZhao Liu# @thread: thread level, which would also be called SMT level or
28e823ebe7SZhao Liu#     logical processor level.  The @threads option in
29e823ebe7SZhao Liu#     SMPConfiguration is used to configure the topology of this
30e823ebe7SZhao Liu#     level.
31e823ebe7SZhao Liu#
32e823ebe7SZhao Liu# @core: core level.  The @cores option in SMPConfiguration is used
33e823ebe7SZhao Liu#     to configure the topology of this level.
34e823ebe7SZhao Liu#
35e823ebe7SZhao Liu# @module: module level.  The @modules option in SMPConfiguration is
36e823ebe7SZhao Liu#     used to configure the topology of this level.
37e823ebe7SZhao Liu#
38e823ebe7SZhao Liu# @cluster: cluster level.  The @clusters option in SMPConfiguration
39e823ebe7SZhao Liu#     is used to configure the topology of this level.
40e823ebe7SZhao Liu#
41e823ebe7SZhao Liu# @die: die level.  The @dies option in SMPConfiguration is used to
42e823ebe7SZhao Liu#     configure the topology of this level.
43e823ebe7SZhao Liu#
44e823ebe7SZhao Liu# @socket: socket level, which would also be called package level.
45e823ebe7SZhao Liu#     The @sockets option in SMPConfiguration is used to configure
46e823ebe7SZhao Liu#     the topology of this level.
47e823ebe7SZhao Liu#
48e823ebe7SZhao Liu# @book: book level.  The @books option in SMPConfiguration is used
49e823ebe7SZhao Liu#     to configure the topology of this level.
50e823ebe7SZhao Liu#
51e823ebe7SZhao Liu# @drawer: drawer level.  The @drawers option in SMPConfiguration is
52e823ebe7SZhao Liu#     used to configure the topology of this level.
53e823ebe7SZhao Liu#
54e823ebe7SZhao Liu# @default: default level.  Some architectures will have default
55e823ebe7SZhao Liu#     topology settings (e.g., cache topology), and this special
56e823ebe7SZhao Liu#     level means following the architecture-specific settings.
57e823ebe7SZhao Liu#
58e823ebe7SZhao Liu# Since: 9.2
59e823ebe7SZhao Liu##
60e823ebe7SZhao Liu{ 'enum': 'CpuTopologyLevel',
61e823ebe7SZhao Liu  'data': [ 'thread', 'core', 'module', 'cluster', 'die',
62e823ebe7SZhao Liu            'socket', 'book', 'drawer', 'default' ] }
63*4e88e7e3SZhao Liu
64*4e88e7e3SZhao Liu##
65*4e88e7e3SZhao Liu# @CacheLevelAndType:
66*4e88e7e3SZhao Liu#
67*4e88e7e3SZhao Liu# Caches a system may have.  The enumeration value here is the
68*4e88e7e3SZhao Liu# combination of cache level and cache type.
69*4e88e7e3SZhao Liu#
70*4e88e7e3SZhao Liu# @l1d: L1 data cache.
71*4e88e7e3SZhao Liu#
72*4e88e7e3SZhao Liu# @l1i: L1 instruction cache.
73*4e88e7e3SZhao Liu#
74*4e88e7e3SZhao Liu# @l2: L2 (unified) cache.
75*4e88e7e3SZhao Liu#
76*4e88e7e3SZhao Liu# @l3: L3 (unified) cache
77*4e88e7e3SZhao Liu#
78*4e88e7e3SZhao Liu# Since: 9.2
79*4e88e7e3SZhao Liu##
80*4e88e7e3SZhao Liu{ 'enum': 'CacheLevelAndType',
81*4e88e7e3SZhao Liu  'data': [ 'l1d', 'l1i', 'l2', 'l3' ] }
82*4e88e7e3SZhao Liu
83*4e88e7e3SZhao Liu##
84*4e88e7e3SZhao Liu# @SmpCacheProperties:
85*4e88e7e3SZhao Liu#
86*4e88e7e3SZhao Liu# Cache information for SMP system.
87*4e88e7e3SZhao Liu#
88*4e88e7e3SZhao Liu# @cache: Cache name, which is the combination of cache level
89*4e88e7e3SZhao Liu#     and cache type.
90*4e88e7e3SZhao Liu#
91*4e88e7e3SZhao Liu# @topology: Cache topology level.  It accepts the CPU topology
92*4e88e7e3SZhao Liu#     enumeration as the parameter, i.e., CPUs in the same
93*4e88e7e3SZhao Liu#     topology container share the same cache.
94*4e88e7e3SZhao Liu#
95*4e88e7e3SZhao Liu# Since: 9.2
96*4e88e7e3SZhao Liu##
97*4e88e7e3SZhao Liu{ 'struct': 'SmpCacheProperties',
98*4e88e7e3SZhao Liu  'data': {
99*4e88e7e3SZhao Liu  'cache': 'CacheLevelAndType',
100*4e88e7e3SZhao Liu  'topology': 'CpuTopologyLevel' } }
101*4e88e7e3SZhao Liu
102*4e88e7e3SZhao Liu##
103*4e88e7e3SZhao Liu# @SmpCachePropertiesWrapper:
104*4e88e7e3SZhao Liu#
105*4e88e7e3SZhao Liu# List wrapper of SmpCacheProperties.
106*4e88e7e3SZhao Liu#
107*4e88e7e3SZhao Liu# @caches: the list of SmpCacheProperties.
108*4e88e7e3SZhao Liu#
109*4e88e7e3SZhao Liu# Since 9.2
110*4e88e7e3SZhao Liu##
111*4e88e7e3SZhao Liu{ 'struct': 'SmpCachePropertiesWrapper',
112*4e88e7e3SZhao Liu  'data': { 'caches': ['SmpCacheProperties'] } }
113