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