coreboot/src/ec
Peter Marheine b97ec4f016 chromeec: support reading long battery strings
The Chrome EC currently supports two ways to read battery strings on
ACPI platforms:

 * Read up to 8 bytes from EC shared memory BMFG, BMOD, ...
 * Send a EC_CMD_BATTERY_GET_STATIC host command and read strings from
   the response. This is assumed to be exclusively controlled by the OS,
   because host commands' use of buffers is prone to race conditions.

To support readout of longer strings via ACPI mechanisms, this change
adds support for EC_ACPI_MEM_STRINGS_FIFO (https://crrev.com/c/5581473)
and allows ACPI firmware to read strings of arbitrary length (currently
limited to 64 characters in the implementation) from the EC and to
determine whether this function is supported by the EC (falling back to
shared memory if not).

BUG=b:339171261
TEST=on yaviks, the EC console logs FIFO readout messages when used in
     ACPI and correct strings are shown in the OS. If EC support is
     removed, correct strings are still shown in the OS.
BRANCH=nissa

Change-Id: Ia29cacb7d86402490f9ac458f0be50e3f2192b04
Signed-off-by: Peter Marheine <pmarheine@chromium.org>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/82775
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
2024-07-08 13:01:39 +00:00
..
51nb/npce985la0dx include/device/device.h: Remove CHIP_NAME() macro 2024-01-31 09:51:58 +00:00
acpi ec, lib, security, sb: Add SPDX license headers to Kconfig files 2024-02-18 02:00:21 +00:00
apple/acpi tree: Replace ShiftLeft(a,b) with ASL 2.0 syntax 2022-12-23 08:30:39 +00:00
clevo/it5570e tree: Use <stdio.h> for snprintf 2024-05-29 10:33:54 +00:00
compal/ene932 ec, lib, security, sb: Add SPDX license headers to Kconfig files 2024-02-18 02:00:21 +00:00
dasharo/ec ec/dasharo/ec: Add initial copy of ec/system76/ec 2024-06-03 16:45:20 +00:00
dell/mec5035 include/device/device.h: Remove CHIP_NAME() macro 2024-01-31 09:51:58 +00:00
google chromeec: support reading long battery strings 2024-07-08 13:01:39 +00:00
hp/kbc1126 ec/hp/kbc1126/acpi: Drop unnecessary _STA methods 2024-03-16 15:20:04 +00:00
intel ec: Rename Makefiles from .inc to .mk 2024-01-24 08:35:25 +00:00
kontron ec, lib, security, sb: Add SPDX license headers to Kconfig files 2024-02-18 02:00:21 +00:00
lenovo tree: Use <stdio.h> for snprintf 2024-05-29 10:33:54 +00:00
purism tree: Remove unused <stddef.h> 2024-05-29 02:51:20 +00:00
quanta ec, lib, security, sb: Add SPDX license headers to Kconfig files 2024-02-18 02:00:21 +00:00
roda/it8518 include/device/device.h: Remove CHIP_NAME() macro 2024-01-31 09:51:58 +00:00
smsc/mec1308 ec, lib, security, sb: Add SPDX license headers to Kconfig files 2024-02-18 02:00:21 +00:00
starlabs/merlin ec/starlabs/merlin/battery: Calculate unknown values 2024-06-07 18:54:13 +00:00
system76/ec ec, lib, security, sb: Add SPDX license headers to Kconfig files 2024-02-18 02:00:21 +00:00
ec.h