162306a36Sopenharmony_ci.. SPDX-License-Identifier: GPL-2.0-only 262306a36Sopenharmony_ci 362306a36Sopenharmony_ci======== 462306a36Sopenharmony_ciOverview 562306a36Sopenharmony_ci======== 662306a36Sopenharmony_ci 762306a36Sopenharmony_ciThe Platform Environment Control Interface (PECI) is a communication 862306a36Sopenharmony_ciinterface between Intel processor and management controllers 962306a36Sopenharmony_ci(e.g. Baseboard Management Controller, BMC). 1062306a36Sopenharmony_ciPECI provides services that allow the management controller to 1162306a36Sopenharmony_ciconfigure, monitor and debug platform by accessing various registers. 1262306a36Sopenharmony_ciIt defines a dedicated command protocol, where the management 1362306a36Sopenharmony_cicontroller is acting as a PECI originator and the processor - as 1462306a36Sopenharmony_cia PECI responder. 1562306a36Sopenharmony_ciPECI can be used in both single processor and multiple-processor based 1662306a36Sopenharmony_cisystems. 1762306a36Sopenharmony_ci 1862306a36Sopenharmony_ciNOTE: 1962306a36Sopenharmony_ciIntel PECI specification is not released as a dedicated document, 2062306a36Sopenharmony_ciinstead it is a part of External Design Specification (EDS) for given 2162306a36Sopenharmony_ciIntel CPU. External Design Specifications are usually not publicly 2262306a36Sopenharmony_ciavailable. 2362306a36Sopenharmony_ci 2462306a36Sopenharmony_ciPECI Wire 2562306a36Sopenharmony_ci--------- 2662306a36Sopenharmony_ci 2762306a36Sopenharmony_ciPECI Wire interface uses a single wire for self-clocking and data 2862306a36Sopenharmony_citransfer. It does not require any additional control lines - the 2962306a36Sopenharmony_ciphysical layer is a self-clocked one-wire bus signal that begins each 3062306a36Sopenharmony_cibit with a driven, rising edge from an idle near zero volts. The 3162306a36Sopenharmony_ciduration of the signal driven high allows to determine whether the bit 3262306a36Sopenharmony_civalue is logic '0' or logic '1'. PECI Wire also includes variable data 3362306a36Sopenharmony_cirate established with every message. 3462306a36Sopenharmony_ci 3562306a36Sopenharmony_ciFor PECI Wire, each processor package will utilize unique, fixed 3662306a36Sopenharmony_ciaddresses within a defined range and that address should 3762306a36Sopenharmony_cihave a fixed relationship with the processor socket ID - if one of the 3862306a36Sopenharmony_ciprocessors is removed, it does not affect addresses of remaining 3962306a36Sopenharmony_ciprocessors. 4062306a36Sopenharmony_ci 4162306a36Sopenharmony_ciPECI subsystem internals 4262306a36Sopenharmony_ci------------------------ 4362306a36Sopenharmony_ci 4462306a36Sopenharmony_ci.. kernel-doc:: include/linux/peci.h 4562306a36Sopenharmony_ci.. kernel-doc:: drivers/peci/internal.h 4662306a36Sopenharmony_ci.. kernel-doc:: drivers/peci/core.c 4762306a36Sopenharmony_ci.. kernel-doc:: drivers/peci/request.c 4862306a36Sopenharmony_ci 4962306a36Sopenharmony_ciPECI CPU Driver API 5062306a36Sopenharmony_ci------------------- 5162306a36Sopenharmony_ci.. kernel-doc:: drivers/peci/cpu.c 52