TianoCore EDK2 master
|
#include <Base.h>
#include <Uefi.h>
#include <Pi/PiBootMode.h>
#include <Pi/PiHob.h>
#include <Library/BaseLib.h>
#include <Library/BaseMemoryLib.h>
#include <Library/DebugLib.h>
#include <Library/HobLib.h>
#include <Library/IoLib.h>
#include <Library/QemuFwCfgLib.h>
#include <Library/UefiBootServicesTableLib.h>
#include <Protocol/FdtClient.h>
#include "QemuFwCfgLibMmioInternal.h"
Go to the source code of this file.
Functions | |
VOID | QemuBuildFwCfgResourceHob (IN QEMU_FW_CFG_RESOURCE *FwCfgResource) |
QEMU_FW_CFG_RESOURCE * | QemuGetFwCfgResourceHob (VOID) |
BOOLEAN EFIAPI | QemuFwCfgIsAvailable (VOID) |
VOID EFIAPI | QemuFwCfgSelectItem (IN FIRMWARE_CONFIG_ITEM QemuFwCfgItem) |
VOID EFIAPI | MmioReadBytes (IN UINTN Size, IN VOID *Buffer OPTIONAL) |
VOID | DmaTransferBytes (IN UINTN Size, IN OUT VOID *Buffer OPTIONAL, IN UINT32 Control) |
VOID EFIAPI | DmaReadBytes (IN UINTN Size, IN VOID *Buffer OPTIONAL) |
VOID EFIAPI | QemuFwCfgReadBytes (IN UINTN Size, IN VOID *Buffer) |
VOID EFIAPI | MmioWriteBytes (IN UINTN Size, IN VOID *Buffer OPTIONAL) |
VOID EFIAPI | DmaWriteBytes (IN UINTN Size, IN VOID *Buffer OPTIONAL) |
VOID EFIAPI | QemuFwCfgWriteBytes (IN UINTN Size, IN VOID *Buffer) |
VOID EFIAPI | MmioSkipBytes (IN UINTN Size) |
VOID EFIAPI | DmaSkipBytes (IN UINTN Size) |
VOID EFIAPI | QemuFwCfgSkipBytes (IN UINTN Size) |
UINT8 EFIAPI | QemuFwCfgRead8 (VOID) |
UINT16 EFIAPI | QemuFwCfgRead16 (VOID) |
UINT32 EFIAPI | QemuFwCfgRead32 (VOID) |
UINT64 EFIAPI | QemuFwCfgRead64 (VOID) |
RETURN_STATUS EFIAPI | QemuFwCfgFindFile (IN CONST CHAR8 *Name, OUT FIRMWARE_CONFIG_ITEM *Item, OUT UINTN *Size) |
Variables | |
READ_BYTES_FUNCTION * | InternalQemuFwCfgReadBytes = MmioReadBytes |
WRITE_BYTES_FUNCTION * | InternalQemuFwCfgWriteBytes = MmioWriteBytes |
SKIP_BYTES_FUNCTION * | InternalQemuFwCfgSkipBytes = MmioSkipBytes |
Copyright (C) 2013 - 2014, Red Hat, Inc. Copyright (c) 2011 - 2013, Intel Corporation. All rights reserved.
(C) Copyright 2021 Hewlett Packard Enterprise Development LP
Copyright (c) 2024 Loongson Technology Corporation Limited. All rights reserved.
SPDX-License-Identifier: BSD-2-Clause-Patent
Definition in file QemuFwCfgLibMmio.c.
Fast READ_BYTES_FUNCTION.
Definition at line 247 of file QemuFwCfgLibMmio.c.
Fast SKIP_BYTES_FUNCTION.
Definition at line 362 of file QemuFwCfgLibMmio.c.
Transfer an array of bytes, or skip a number of bytes, using the DMA interface.
[in] | Size | Size in bytes to transfer or skip. |
[in,out] | Buffer | Buffer to read data into or write data from. Ignored, and may be NULL, if Size is zero, or Control is FW_CFG_DMA_CTL_SKIP. |
[in] | Control | One of the following: FW_CFG_DMA_CTL_WRITE - write to fw_cfg from Buffer. FW_CFG_DMA_CTL_READ - read from fw_cfg into Buffer. FW_CFG_DMA_CTL_SKIP - skip bytes in fw_cfg. |
Definition at line 188 of file QemuFwCfgLibMmio.c.
Fast WRITE_BYTES_FUNCTION.
Definition at line 301 of file QemuFwCfgLibMmio.c.
Slow READ_BYTES_FUNCTION.
Definition at line 124 of file QemuFwCfgLibMmio.c.
Slow SKIP_BYTES_FUNCTION.
Definition at line 336 of file QemuFwCfgLibMmio.c.
Slow WRITE_BYTES_FUNCTION.
Definition at line 284 of file QemuFwCfgLibMmio.c.
VOID QemuBuildFwCfgResourceHob | ( | IN QEMU_FW_CFG_RESOURCE * | FwCfgResource | ) |
Build firmware configure resource HOB.
[in] | FwCfgResource | A pointer to firmware configure resource. |
VOID |
Definition at line 44 of file QemuFwCfgLibMmio.c.
RETURN_STATUS EFIAPI QemuFwCfgFindFile | ( | IN CONST CHAR8 * | Name, |
OUT FIRMWARE_CONFIG_ITEM * | Item, | ||
OUT UINTN * | Size | ||
) |
Find the configuration item corresponding to the firmware configuration file.
[in] | Name | Name of file to look up. |
[out] | Item | Configuration item corresponding to the file, to be passed to QemuFwCfgSelectItem (). |
[out] | Size | Number of bytes in the file. |
RETURN_SUCCESS | If file is found. |
RETURN_NOT_FOUND | If file is not found. |
RETURN_UNSUPPORTED | If firmware configuration is unavailable. |
Definition at line 476 of file QemuFwCfgLibMmio.c.
BOOLEAN EFIAPI QemuFwCfgIsAvailable | ( | VOID | ) |
Returns a boolean indicating if the firmware configuration interface is available or not.
This function may change fw_cfg state.
TRUE | The interface is available |
FALSE | The interface is not available |
Definition at line 92 of file QemuFwCfgLibMmio.c.
UINT16 EFIAPI QemuFwCfgRead16 | ( | VOID | ) |
Reads a UINT16 firmware configuration value
Definition at line 415 of file QemuFwCfgLibMmio.c.
UINT32 EFIAPI QemuFwCfgRead32 | ( | VOID | ) |
Reads a UINT32 firmware configuration value
Definition at line 433 of file QemuFwCfgLibMmio.c.
UINT64 EFIAPI QemuFwCfgRead64 | ( | VOID | ) |
Reads a UINT64 firmware configuration value
Definition at line 451 of file QemuFwCfgLibMmio.c.
UINT8 EFIAPI QemuFwCfgRead8 | ( | VOID | ) |
Reads a UINT8 firmware configuration value
Definition at line 397 of file QemuFwCfgLibMmio.c.
Reads firmware configuration bytes into a buffer
If called multiple times, then the data read will continue at the offset of the firmware configuration item where the previous read ended.
[in] | Size | Size in bytes to read |
[in] | Buffer | Buffer to store data into |
Definition at line 267 of file QemuFwCfgLibMmio.c.
VOID EFIAPI QemuFwCfgSelectItem | ( | IN FIRMWARE_CONFIG_ITEM | QemuFwCfgItem | ) |
Selects a firmware configuration item for reading.
Following this call, any data read from this item will start from the beginning of the configuration item's data.
[in] | QemuFwCfgItem | Firmware Configuration item to read |
Definition at line 110 of file QemuFwCfgLibMmio.c.
Skip bytes in the firmware configuration item.
Increase the offset of the firmware configuration item without transferring bytes between the item and a caller-provided buffer. Subsequent read, write or skip operations will commence at the increased offset.
[in] | Size | Number of bytes to skip. |
Definition at line 380 of file QemuFwCfgLibMmio.c.
Write firmware configuration bytes from a buffer
If called multiple times, then the data written will continue at the offset of the firmware configuration item where the previous write ended.
[in] | Size | Size in bytes to write |
[in] | Buffer | Buffer to read data from |
Definition at line 321 of file QemuFwCfgLibMmio.c.
QEMU_FW_CFG_RESOURCE * QemuGetFwCfgResourceHob | ( | VOID | ) |
Get firmware configure resource in HOB.
VOID |
non-NULL | The firmware configure resource in HOB. NULL The firmware configure resource not found. |
Definition at line 64 of file QemuFwCfgLibMmio.c.
READ_BYTES_FUNCTION* InternalQemuFwCfgReadBytes = MmioReadBytes |
Definition at line 32 of file QemuFwCfgLibMmio.c.
SKIP_BYTES_FUNCTION* InternalQemuFwCfgSkipBytes = MmioSkipBytes |
Definition at line 34 of file QemuFwCfgLibMmio.c.
WRITE_BYTES_FUNCTION* InternalQemuFwCfgWriteBytes = MmioWriteBytes |
Definition at line 33 of file QemuFwCfgLibMmio.c.