doc: Update EC terms

Add more EC definitions. Correct the named anchors in the USB-C
markdown.  And a link from the main EC readme.

BUG=none
BRANCH=none
TEST=none

Change-Id: Ica7e7c270373589d850166539fb1b13b1ddbd7e0
Signed-off-by: Keith Short <keithshort@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/1758826
Reviewed-by: Edward Hill <ecgh@chromium.org>
This commit is contained in:
Keith Short 2019-08-13 17:07:04 -06:00 committed by Commit Bot
parent 0393557c98
commit 0596ecd75a
3 changed files with 47 additions and 13 deletions

View File

@ -45,6 +45,9 @@ running on several different MCUs on Chrome OS devices with various tweaks
confusing, so try to be specific and use terms like FPMCU to distinguish the
fingerprint MCU from "the EC".
See the [EC Acronyms and Technologies](./docs/ec_terms.md) for a more complete
glossary.
## Getting the EC code
The code for the EC is open source and is included in the Chromium OS

View File

@ -1,6 +1,10 @@
# EC Acronyms and Technologies
## Glossary
* **8042 Interface**{#8042}
Interface for sending keyboard events to the [AP](#ap) and for receiving
commands from the AP. Only supported by x86 based APs.
* **ACCEL - Accelerometer**{#accel}
@ -109,6 +113,20 @@
Also contains multiple peripheral interfaces, including GPIO, I2C buses, SPI
buses, ADC, PWM, etc.
* **MKBP - Matrix Keyboard Protocol**{#mkbp}
Message based protocol for communicating asynchronous events from the
[EC](#ec) to the [AP](#ap). Events are not limited to keyboard events with
the sensor subsystem as one of the main users. An EC board implementation
can be configured to send keyboard events through MKBP or using the [8042
interface](#8042). This is the [EC MKBP driver] implementation.
* **MST - Multi Stream Transport**{#mst}
Part of the Display Port 1.2 standard, used to drive multiple independent
video streams from a single display port. The EC code is typically
responsible for enabling and disabling the MST hub chipset.
* **PD - USB Power Delivery**{#pd}
See the [USB-C documentation](./usb-c.md#pd) for more details.
@ -137,6 +155,10 @@
more bytes on the MISO signal, and de-assertion of the chip select. The
contents of a SPI frame varies based on the SPI slave type.
* **SVDM - Structured Vendor Defined Messages**{#svdm}
See the [USB-C documentation](./usb-c.md#svdm) for more details.
* **TCPC - USB Type-C Port Controller**{#tcpc}
See the [USB-C documentation](./usb-c.md#tcpc) for more details.
@ -157,3 +179,4 @@
[eSPI Specification]: <https://www.intel.com/content/dam/support/us/en/documents/software/chipset-software/327432-004_espi_base_specification_rev1.0.pdf>
[I2C Specification]: <https://www.nxp.com/docs/en/user-guide/UM10204.pdf>
[RS-232]: <https://en.wikipedia.org/wiki/RS-232>
[EC MKBP driver]: <https://chromium.googlesource.com/chromiumos/platform/ec/+/refs/heads/master/common/keyboard_mkbp.c>

View File

@ -25,10 +25,12 @@ Modes in the EC codebase.
## Glossary
* PD{#pd}
* PD {#pd}
* Power Delivery. Protocol over USB-C connector that allows up to 100W of
power. Not supported on USB-A or USB-B connectors.
* TCPC{#tcpc}
power. Not supported on USB-A or USB-B connectors. A good overview of
USB PD is found in the [Introduction to USB Power Delivery] application
note.
* TCPC {#tcpc}
* Type-C Port Controller. Typically a separate IC connected through I2C,
sometimes embedded within the EC as a hardware sub module. The TCPC
interprets physical layer signals on CC lines and Vbus, and sends that
@ -37,34 +39,39 @@ Modes in the EC codebase.
that communicated with the main EC (also running this codebase), which
acted as the TCPM. More info in the official
[TCPC spec][USB TCPM Spec Id].
* TCPM{#tcpm}
* TCPM {#tcpm}
* Type-C Port Manager. Manages the state of the USB-C connection. Makes
decisions about what state to transition to. This is the code running on
the EC itself.
* PE
* PE {#pe}
* Policy Engine. According to the [TypeC spec][USB TC Spec Id], the policy
engine is the state machine that decides how the USB-C connection
progresses through different states and which USB-C PD features are
available, such as Try.SRC
* TC
* TC {#tc}
* Type-C physical layer.
* PPC{#ppc}
* PPC {#ppc}
* Power Path Controller. An optional, separate IC that isolates various
USB-C signals from each other and the rest of the board. This IC should
prevent shorts and over current/voltage scenarios for Vbus. Some PPCs
will protect signals other than Vbus as well.
* SSMUX
* SSMUX {#ssmux}
* SuperSpeed Mux. This is typically the same IC as the TCPC; it enables
the mirrored orientation of the USB-C cable to go to the correct pins on
SoC. Also, allows the SuperSpeed signal to be used for different
purposes, such as USB data or DisplayPort.
* DRP
* SVDM {#svdm}
* Structured Vendor Defined Messages are a class of [USB PD](#pd) messages
to enable non-power related communication between port partners. SVDMs
are used to negotiate and set the display port mode on a USB-C
connection.
* DRP {#drp}
* Dual Role Power Port. A USB-C port that can act as either a power Source
or power Sink.
* UFP
* UFP {#ufp}
* Upstream Facing Port. The USB data role that is typical for a peripheral
(e.g. HID keyboard).
* DFP
* DFP {#dfp}
* Downstream Facing Port. The USB Data role that is typical for a host
machine (e.g. device running ChromeOS).
@ -187,14 +194,15 @@ full descriptions see [config.h][config header link]
## Interactions with other tasks
TODO(crbug.com/974302): mention `USB_CHG_P#` and `CHARGER`
TODO(https://crbug.com/974302): mention `USB_CHG_P#` and `CHARGER`
## Upgrading FW for TCPCs
TODO(crbug.com/974302): Mention how this works even though it is in depthcharge.
TODO(https://crbug.com/974302): Mention how this works even though it is in depthcharge.
Probing now. Need new driver in depthcharge
[USB PD Spec Id]: https://www.usb.org/document-library/usb-power-delivery
[Introduction to USB Power Delivery]: https://www.microchip.com/wwwAppNotes/AppNotes.aspx?appnote=en575003
[USB TCPM Spec Id]: https://www.usb.org/document-library/usb-type-ctm-port-controller-interface-specification
[USB TC Spec Id]: https://www.usb.org/document-library/usb-type-ctm-cable-and-connector-specification-revision-14-march-29-2019
[config header link]: ../include/config.h