MdePkg: Add MipiSysTLib library
REF: https://bugzilla.tianocore.org/show_bug.cgi?id=4144 This Library provides functions consuming MIPI SYS-T submodule. Cc: Michael D Kinney <michael.d.kinney@intel.com> Cc: Liming Gao <gaoliming@byosoft.com.cn> Cc: Zhiguang Liu <zhiguang.liu@intel.com> Cc: Guo Gua <gua.guo@intel.com> Cc: Chan Laura <laura.chan@intel.com> Cc: Prakashan Krishnadas Veliyathuparambil <krishnadas.veliyathuparambil.prakashan@intel.com> Cc: K N Karthik <karthik.k.n@intel.com> Signed-off-by: Guo Gua <gua.guo@intel.com> Reviewed-by: Michael D Kinney <michael.d.kinney@intel.com> Reviewed-by: K N Karthik <karthik.k.n@intel.com> Reviewed-by: Chan Laura <laura.chan@intel.com> Acked-by: Liming Gao <gaoliming@byosoft.com.cn>
This commit is contained in:
164
MdePkg/Library/MipiSysTLib/Platform.c
Normal file
164
MdePkg/Library/MipiSysTLib/Platform.c
Normal file
@@ -0,0 +1,164 @@
|
||||
/** @file
|
||||
This file defines functions that output Trace Hub message.
|
||||
|
||||
Copyright (c) 2023, Intel Corporation. All rights reserved.<BR>
|
||||
|
||||
SPDX-License-Identifier: BSD-2-Clause-Patent
|
||||
|
||||
**/
|
||||
|
||||
#include <Base.h>
|
||||
#include <Library/IoLib.h>
|
||||
#include <Library/BaseMemoryLib.h>
|
||||
#include "mipi_syst.h"
|
||||
|
||||
/**
|
||||
Write 4 bytes to Trace Hub MMIO addr + 0x10.
|
||||
|
||||
@param[in] MipiSystHandle A pointer to MIPI_SYST_HANDLE structure.
|
||||
@param[in] Data Data to be written.
|
||||
**/
|
||||
VOID
|
||||
EFIAPI
|
||||
MipiSystWriteD32Ts (
|
||||
IN VOID *MipiSystHandle,
|
||||
IN UINT32 Data
|
||||
)
|
||||
{
|
||||
MIPI_SYST_HANDLE *MipiSystH;
|
||||
|
||||
MipiSystH = (MIPI_SYST_HANDLE *)MipiSystHandle;
|
||||
MmioWrite32 ((UINTN)(MipiSystH->systh_platform.TraceHubPlatformData.MmioAddr + 0x10), Data);
|
||||
}
|
||||
|
||||
/**
|
||||
Write 4 bytes to Trace Hub MMIO addr + 0x18.
|
||||
|
||||
@param[in] MipiSystHandle A pointer to MIPI_SYST_HANDLE structure.
|
||||
@param[in] Data Data to be written.
|
||||
**/
|
||||
VOID
|
||||
EFIAPI
|
||||
MipiSystWriteD32Mts (
|
||||
IN VOID *MipiSystHandle,
|
||||
IN UINT32 Data
|
||||
)
|
||||
{
|
||||
MIPI_SYST_HANDLE *MipiSystH;
|
||||
|
||||
MipiSystH = (MIPI_SYST_HANDLE *)MipiSystHandle;
|
||||
MmioWrite32 ((UINTN)(MipiSystH->systh_platform.TraceHubPlatformData.MmioAddr + 0x18), Data);
|
||||
}
|
||||
|
||||
/**
|
||||
Write 8 bytes to Trace Hub MMIO addr + 0x18.
|
||||
|
||||
@param[in] MipiSystHandle A pointer to MIPI_SYST_HANDLE structure.
|
||||
@param[in] Data Data to be written.
|
||||
**/
|
||||
VOID
|
||||
EFIAPI
|
||||
MipiSystWriteD64Mts (
|
||||
IN VOID *MipiSystHandle,
|
||||
IN UINT64 Data
|
||||
)
|
||||
{
|
||||
MIPI_SYST_HANDLE *MipiSystH;
|
||||
|
||||
MipiSystH = (MIPI_SYST_HANDLE *)MipiSystHandle;
|
||||
MmioWrite64 ((UINTN)(MipiSystH->systh_platform.TraceHubPlatformData.MmioAddr + 0x18), Data);
|
||||
}
|
||||
|
||||
/**
|
||||
Write 1 byte to Trace Hub MMIO addr + 0x0.
|
||||
|
||||
@param[in] MipiSystHandle A pointer to MIPI_SYST_HANDLE structure.
|
||||
@param[in] Data Data to be written.
|
||||
**/
|
||||
VOID
|
||||
EFIAPI
|
||||
MipiSystWriteD8 (
|
||||
IN VOID *MipiSystHandle,
|
||||
IN UINT8 Data
|
||||
)
|
||||
{
|
||||
MIPI_SYST_HANDLE *MipiSystH;
|
||||
|
||||
MipiSystH = (MIPI_SYST_HANDLE *)MipiSystHandle;
|
||||
MmioWrite8 ((UINTN)(MipiSystH->systh_platform.TraceHubPlatformData.MmioAddr + 0x0), Data);
|
||||
}
|
||||
|
||||
/**
|
||||
Write 2 bytes to Trace Hub MMIO mmio addr + 0x0.
|
||||
|
||||
@param[in] MipiSystHandle A pointer to MIPI_SYST_HANDLE structure.
|
||||
@param[in] Data Data to be written.
|
||||
**/
|
||||
VOID
|
||||
EFIAPI
|
||||
MipiSystWriteD16 (
|
||||
IN VOID *MipiSystHandle,
|
||||
IN UINT16 Data
|
||||
)
|
||||
{
|
||||
MIPI_SYST_HANDLE *MipiSystH;
|
||||
|
||||
MipiSystH = (MIPI_SYST_HANDLE *)MipiSystHandle;
|
||||
MmioWrite16 ((UINTN)(MipiSystH->systh_platform.TraceHubPlatformData.MmioAddr + 0x0), Data);
|
||||
}
|
||||
|
||||
/**
|
||||
Write 4 bytes to Trace Hub MMIO addr + 0x0.
|
||||
|
||||
@param[in] MipiSystHandle A pointer to MIPI_SYST_HANDLE structure.
|
||||
@param[in] Data Data to be written.
|
||||
**/
|
||||
VOID
|
||||
EFIAPI
|
||||
MipiSystWriteD32 (
|
||||
IN VOID *MipiSystHandle,
|
||||
IN UINT32 Data
|
||||
)
|
||||
{
|
||||
MIPI_SYST_HANDLE *MipiSystH;
|
||||
|
||||
MipiSystH = (MIPI_SYST_HANDLE *)MipiSystHandle;
|
||||
MmioWrite32 ((UINTN)(MipiSystH->systh_platform.TraceHubPlatformData.MmioAddr + 0x0), Data);
|
||||
}
|
||||
|
||||
/**
|
||||
Write 8 bytes to Trace Hub MMIO addr + 0x0.
|
||||
|
||||
@param[in] MipiSystHandle A pointer to MIPI_SYST_HANDLE structure.
|
||||
@param[in] Data Data to be written.
|
||||
**/
|
||||
VOID
|
||||
EFIAPI
|
||||
MipiSystWriteD64 (
|
||||
IN VOID *MipiSystHandle,
|
||||
IN UINT64 Data
|
||||
)
|
||||
{
|
||||
MIPI_SYST_HANDLE *MipiSystH;
|
||||
|
||||
MipiSystH = (MIPI_SYST_HANDLE *)MipiSystHandle;
|
||||
MmioWrite64 ((UINTN)(MipiSystH->systh_platform.TraceHubPlatformData.MmioAddr + 0x0), Data);
|
||||
}
|
||||
|
||||
/**
|
||||
Clear data in Trace Hub MMIO addr + 0x30.
|
||||
|
||||
@param[in] MipiSystHandle A pointer to MIPI_SYST_HANDLE structure.
|
||||
**/
|
||||
VOID
|
||||
EFIAPI
|
||||
MipiSystWriteFlag (
|
||||
IN VOID *MipiSystHandle
|
||||
)
|
||||
{
|
||||
MIPI_SYST_HANDLE *MipiSystH;
|
||||
|
||||
MipiSystH = (MIPI_SYST_HANDLE *)MipiSystHandle;
|
||||
|
||||
MmioWrite32 ((UINTN)(MipiSystH->systh_platform.TraceHubPlatformData.MmioAddr + 0x30), 0x0);
|
||||
}
|
Reference in New Issue
Block a user