mirror of https://github.com/acidanthera/audk.git
139 lines
3.5 KiB
C
139 lines
3.5 KiB
C
/** @file
|
|
This header file declares functions and structures.
|
|
|
|
Copyright (c) 2023, Intel Corporation. All rights reserved.<BR>
|
|
|
|
SPDX-License-Identifier: BSD-2-Clause-Patent
|
|
|
|
**/
|
|
|
|
#ifndef MIPI_SYST_PLATFORM_H_
|
|
#define MIPI_SYST_PLATFORM_H_
|
|
|
|
typedef struct {
|
|
UINT64 MmioAddr;
|
|
} TRACE_HUB_PLATFORM_SYST_DATA;
|
|
|
|
struct mipi_syst_platform_handle {
|
|
TRACE_HUB_PLATFORM_SYST_DATA TraceHubPlatformData;
|
|
};
|
|
|
|
/**
|
|
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
|
|
);
|
|
|
|
/**
|
|
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
|
|
);
|
|
|
|
/**
|
|
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
|
|
);
|
|
|
|
/**
|
|
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
|
|
);
|
|
|
|
/**
|
|
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
|
|
);
|
|
|
|
/**
|
|
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
|
|
);
|
|
|
|
/**
|
|
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
|
|
);
|
|
|
|
/**
|
|
Clear data in Trace Hub MMIO addr + 0x30.
|
|
|
|
@param[in] MipiSystHandle A pointer to MIPI_SYST_HANDLE structure.
|
|
**/
|
|
VOID
|
|
EFIAPI
|
|
MipiSystWriteFlag (
|
|
IN VOID *MipiSystHandle
|
|
);
|
|
|
|
#define MIPI_SYST_PLATFORM_CLOCK() 1000 // (unit: MicroSecond)
|
|
|
|
#ifndef MIPI_SYST_PCFG_ENABLE_PLATFORM_STATE_DATA
|
|
#define MIPI_SYST_OUTPUT_D32TS(MipiSystHandle, Data) MipiSystWriteD32Ts ((MipiSystHandle), (Data))
|
|
#define MIPI_SYST_OUTPUT_D32MTS(MipiSystHandle, Data) MipiSystWriteD32Mts ((MipiSystHandle), (Data))
|
|
#define MIPI_SYST_OUTPUT_D64MTS(MipiSystHandle, Data) MipiSystWriteD64Mts ((MipiSystHandle), (Data))
|
|
#define MIPI_SYST_OUTPUT_D8(MipiSystHandle, Data) MipiSystWriteD8 ((MipiSystHandle), (Data))
|
|
#define MIPI_SYST_OUTPUT_D16(MipiSystHandle, Data) MipiSystWriteD16 ((MipiSystHandle), (Data))
|
|
#define MIPI_SYST_OUTPUT_D32(MipiSystHandle, Data) MipiSystWriteD32 ((MipiSystHandle), (Data))
|
|
#if defined (MIPI_SYST_PCFG_ENABLE_64BIT_IO)
|
|
#define MIPI_SYST_OUTPUT_D64(MipiSystHandle, Data) MipiSystWriteD64 ((MipiSystHandle), (Data))
|
|
#endif
|
|
#define MIPI_SYST_OUTPUT_FLAG(MipiSystHandle) MipiSystWriteFlag ((MipiSystHandle))
|
|
#endif
|
|
|
|
#endif // MIPI_SYST_PLATFORM_H_
|