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>
		
			
				
	
	
		
			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_
 |