1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 |
- /** @file
- Common EC commands.
- Copyright (c) 2019 - 2021, Intel Corporation. All rights reserved.<BR>
- SPDX-License-Identifier: BSD-2-Clause-Patent
- **/
- #include <Base.h>
- #include <Uefi.h>
- #include <Library/EcLib.h>
- /**
- Read a byte of EC RAM.
- @param[in] Address Address to read
- @param[out] Data Data received
- @retval EFI_SUCCESS Command success
- @retval EFI_INVALID_PARAMETER Data is NULL
- @retval EFI_DEVICE_ERROR Command error
- @retval EFI_TIMEOUT Command timeout
- **/
- EFI_STATUS
- EcRead (
- IN UINT8 Address,
- OUT UINT8 *Data
- )
- {
- UINT8 DataSize;
- UINT8 DataBuffer[1];
- EFI_STATUS Status;
- if (Data == NULL) {
- return EFI_INVALID_PARAMETER;
- }
- // Prepare arguments for LpcEcInterface()
- DataSize = 1;
- DataBuffer[0] = Address;
- Status = LpcEcInterface (EC_C_ACPI_READ, &DataSize, DataBuffer);
- if (EFI_ERROR(Status)) {
- return Status;
- }
- // Write caller's pointer from returned data and return success
- *Data = DataBuffer[0];
- return EFI_SUCCESS;
- }
- /**
- Write a byte of EC RAM.
- @param[in] Address Address to write
- @param[in] Data Data to write
- @retval EFI_SUCCESS Command success
- @retval EFI_DEVICE_ERROR Command error
- @retval EFI_TIMEOUT Command timeout
- **/
- EFI_STATUS
- EcWrite (
- IN UINT8 Address,
- IN UINT8 Data
- )
- {
- UINT8 DataSize;
- UINT8 DataBuffer[2];
- // Prepare arguments for LpcEcInterface()
- DataSize = 2;
- DataBuffer[0] = Address;
- DataBuffer[1] = Data;
- return LpcEcInterface (EC_C_ACPI_WRITE, &DataSize, DataBuffer);
- }
|