1description: >
2    Implement to provide CPU attributes.
3properties:
4    - name: Socket
5      type: string
6      description: >
7          Processor Socket designation on MotherBoard.
8      default: ""
9    - name: Family
10      type: string
11      description: >
12          A free form string indicates processor family type.
13          For example, values can be "Intel Xeon
14          processor", "AS400 Family", etc.
15      default: ""
16    - name: EffectiveFamily
17      type: uint16
18      description: >
19          The effective Family information as provided by the
20          manufacturer of this processor in unsigned integer.
21          Default set to 0x02 which is defined as "Unknown" Processor
22          Family in DSP0134 section 7.5.2.
23      default: 0x02
24    - name: EffectiveModel
25      type: uint16
26      description: >
27          The effective Model information as provided by the
28          manufacturer of this processor in unsigned integer.
29      default: 0
30    - name: Id
31      type: uint64
32      description: >
33          This Processor ID field contains processor-specific information
34          that describes the processor's features. Details depend on
35          processor architecture.
36          For x86 and ARM processors, DMTF DSP0134 Section 7.5.3 is used.
37      default: 0
38    - name: MaxSpeedInMhz
39      type: uint32
40      description: >
41          Max Speed in megahertz the CPU can support.
42    - name: Characteristics
43      type: array[enum[self.Capability]]
44      description: >
45          The set of boolean flags for processor's capability, such as
46          64-bit Capable, Multi-Core, Hardware Thread, Execute Protection,
47          Enhanced Virtualization, Power/Performance Control etc.
48    - name: CoreCount
49      type: uint16
50      description: >
51          The number of cores in the processor.
52    - name: ThreadCount
53      type: uint16
54      description: >
55          The maximum number of threads the processor can support.
56    - name: Step
57      type: uint16
58      description: >
59          The step value for this processor
60      default: 0
61    - name: Microcode
62      type: uint32
63      description: >
64          The microcode information for this processor
65      default: 0
66
67enumerations:
68    - name: Capability
69      description: >
70          List of capabilities that a processor can support.
71          Values are based off DMTF DSP0134 specification.
72      values:
73          - name: Capable64bit
74            description: >
75                Capable of 64-bit.
76          - name: MultiCore
77            description: >
78                Support multi-core.
79          - name: HardwareThread
80            description: >
81                Support hardware thread.
82          - name: ExecuteProtection
83            description: >
84                Support execute protection.
85          - name: EnhancedVirtualization
86            description: >
87                Support enhanced virtualization.
88          - name: PowerPerformanceControl
89            description: >
90                Support power/performance control.
91
92associations:
93    - name: associated_pcie_slots
94      description: >
95          Objects that implement Cpu can optionally implement the
96          associated_pcie_slots association to provide a link to one or more
97          PCIe slots.
98      reverse_names:
99          - upstream_processor
100      required_endpoint_interfaces:
101          - xyz.openbmc_project.Inventory.Item.PCIeSlot
102