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. For example,
13          values can be "Intel Xeon processor", "AS400 Family", etc.
14      default: ""
15    - name: EffectiveFamily
16      type: uint16
17      description: >
18          The effective Family information as provided by the manufacturer of
19          this processor in unsigned integer. Default set to 0x02 which is
20          defined as "Unknown" Processor 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 manufacturer of
26          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 that
32          describes the processor's features. Details depend on processor
33          architecture. For x86 and ARM processors, DMTF DSP0134 Section 7.5.3
34          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 64-bit
44          Capable, Multi-Core, Hardware Thread, Execute Protection, Enhanced
45          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: maxint
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. Values are based
69          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