Commit | Line | Data |
---|---|---|
0580565d IW |
1 | .. SPDX-License-Identifier: GPL-2.0-only |
2 | ||
3 | ======== | |
4 | Overview | |
5 | ======== | |
6 | ||
7 | The Platform Environment Control Interface (PECI) is a communication | |
8 | interface between Intel processor and management controllers | |
9 | (e.g. Baseboard Management Controller, BMC). | |
10 | PECI provides services that allow the management controller to | |
11 | configure, monitor and debug platform by accessing various registers. | |
12 | It defines a dedicated command protocol, where the management | |
13 | controller is acting as a PECI originator and the processor - as | |
14 | a PECI responder. | |
15 | PECI can be used in both single processor and multiple-processor based | |
16 | systems. | |
17 | ||
18 | NOTE: | |
19 | Intel PECI specification is not released as a dedicated document, | |
20 | instead it is a part of External Design Specification (EDS) for given | |
21 | Intel CPU. External Design Specifications are usually not publicly | |
22 | available. | |
23 | ||
24 | PECI Wire | |
25 | --------- | |
26 | ||
27 | PECI Wire interface uses a single wire for self-clocking and data | |
28 | transfer. It does not require any additional control lines - the | |
29 | physical layer is a self-clocked one-wire bus signal that begins each | |
30 | bit with a driven, rising edge from an idle near zero volts. The | |
31 | duration of the signal driven high allows to determine whether the bit | |
32 | value is logic '0' or logic '1'. PECI Wire also includes variable data | |
33 | rate established with every message. | |
34 | ||
35 | For PECI Wire, each processor package will utilize unique, fixed | |
36 | addresses within a defined range and that address should | |
37 | have a fixed relationship with the processor socket ID - if one of the | |
38 | processors is removed, it does not affect addresses of remaining | |
39 | processors. | |
40 | ||
41 | PECI subsystem internals | |
42 | ------------------------ | |
43 | ||
44 | .. kernel-doc:: include/linux/peci.h | |
45 | .. kernel-doc:: drivers/peci/internal.h | |
46 | .. kernel-doc:: drivers/peci/core.c | |
47 | .. kernel-doc:: drivers/peci/request.c | |
48 | ||
49 | PECI CPU Driver API | |
50 | ------------------- | |
51 | .. kernel-doc:: drivers/peci/cpu.c |