diff options
| author | kx <kx@radix.pro> | 2024-06-04 06:43:08 +0300 |
|---|---|---|
| committer | kx <kx@radix.pro> | 2024-06-04 06:43:08 +0300 |
| commit | 7e2ccccace24636f29ddc210b94606abd4c7e42b (patch) | |
| tree | 545d43ea12671048956cafeb12303e84d601e571 /MdeModulePkg/Library/TraceHubDebugSysTLib/PeiTraceHubDebugSysTLib.c | |
| parent | 27b044605cd5f6b33a3d231576003850b3fe305b (diff) | |
| download | edk2-trunk.tar.xz | |
Renormalized end-of-lines from master@27b044605cd5f6b33a3d231576003850b3fe305btrunk
Diffstat (limited to 'MdeModulePkg/Library/TraceHubDebugSysTLib/PeiTraceHubDebugSysTLib.c')
| -rw-r--r-- | MdeModulePkg/Library/TraceHubDebugSysTLib/PeiTraceHubDebugSysTLib.c | 564 |
1 files changed, 282 insertions, 282 deletions
diff --git a/MdeModulePkg/Library/TraceHubDebugSysTLib/PeiTraceHubDebugSysTLib.c b/MdeModulePkg/Library/TraceHubDebugSysTLib/PeiTraceHubDebugSysTLib.c index e68fb8b242..22edd98f05 100644 --- a/MdeModulePkg/Library/TraceHubDebugSysTLib/PeiTraceHubDebugSysTLib.c +++ b/MdeModulePkg/Library/TraceHubDebugSysTLib/PeiTraceHubDebugSysTLib.c @@ -1,282 +1,282 @@ -/** @file
-System prints Trace Hub message in PEI based on fixed PCDs and HOB.
-System applies Trace Hub HOB once it detect gTraceHubDebugInfoHobGuid HOB.
-Trace Hub PCDs will be applied if no HOB exist.
-
-Copyright (c) 2023, Intel Corporation. All rights reserved.<BR>
-
-SPDX-License-Identifier: BSD-2-Clause-Patent
-
-**/
-
-#include <Base.h>
-#include <Library/BaseLib.h>
-#include <Library/PcdLib.h>
-#include <Library/HobLib.h>
-#include <Library/BaseMemoryLib.h>
-#include <Library/MemoryAllocationLib.h>
-#include <Library/TraceHubDebugSysTLib.h>
-#include <Library/MipiSysTLib.h>
-#include <Library/MipiSysTLib/mipi_syst.h>
-#include <Guid/TraceHubDebugInfoHob.h>
-#include "InternalTraceHubApiCommon.h"
-#include "InternalTraceHubApi.h"
-
-/**
- Write debug string to specified Trace Hub MMIO address.
-
- @param[in] SeverityType Severity type of input message.
- @param[in] Buffer A pointer to the data buffer.
- @param[in] NumberOfBytes The size of data buffer.
-
- @retval RETURN_SUCCESS Data was written to Trace Hub.
- @retval Other Failed to output Trace Hub message.
-**/
-RETURN_STATUS
-EFIAPI
-TraceHubSysTDebugWrite (
- IN TRACE_HUB_SEVERITY_TYPE SeverityType,
- IN UINT8 *Buffer,
- IN UINTN NumberOfBytes
- )
-{
- MIPI_SYST_HANDLE MipiSystHandle;
- MIPI_SYST_HEADER MipiSystHeader;
- RETURN_STATUS Status;
- UINT8 *DbgContext;
- UINTN Index;
- UINT32 DbgInstCount;
- UINT8 *ThDebugInfo;
-
- if (NumberOfBytes == 0) {
- //
- // No data need to be written to Trace Hub
- //
- return RETURN_SUCCESS;
- }
-
- if (Buffer == NULL) {
- return RETURN_INVALID_PARAMETER;
- }
-
- DbgInstCount = CountThDebugInstance ();
-
- ZeroMem (&MipiSystHandle, sizeof (MIPI_SYST_HANDLE));
- MipiSystHandle.systh_header = &MipiSystHeader;
-
- Status = InitMipiSystHandle (&MipiSystHandle);
- if (RETURN_ERROR (Status)) {
- return Status;
- }
-
- DbgContext = (UINT8 *)GetFirstGuidHob (&gTraceHubDebugInfoHobGuid);
- if (DbgContext != NULL) {
- ThDebugInfo = GET_GUID_HOB_DATA (DbgContext);
- } else {
- ThDebugInfo = NULL;
- }
-
- for (Index = 0; Index < DbgInstCount; Index++) {
- Status = CheckWhetherToOutputMsg (
- &MipiSystHandle,
- ThDebugInfo,
- SeverityType,
- TraceHubDebugType
- );
- if (!RETURN_ERROR (Status)) {
- Status = MipiSystWriteDebug (
- &MipiSystHandle,
- SeverityType,
- (UINT16)NumberOfBytes,
- (CHAR8 *)Buffer
- );
- if (RETURN_ERROR (Status)) {
- break;
- }
- }
-
- if (DbgContext != NULL) {
- DbgContext = (UINT8 *)GetNextGuidHob (&gTraceHubDebugInfoHobGuid, GET_NEXT_HOB (DbgContext));
- if (DbgContext == NULL) {
- break;
- }
-
- ThDebugInfo = GET_GUID_HOB_DATA (DbgContext);
- }
- }
-
- return Status;
-}
-
-/**
- Write catalog status code message to specified Trace Hub MMIO address.
-
- @param[in] SeverityType Severity type of input message.
- @param[in] Id Catalog ID.
- @param[in] Guid Driver Guid.
-
- @retval RETURN_SUCCESS Data was written to Trace Hub.
- @retval Other Failed to output Trace Hub message.
-**/
-RETURN_STATUS
-EFIAPI
-TraceHubSysTWriteCataLog64StatusCode (
- IN TRACE_HUB_SEVERITY_TYPE SeverityType,
- IN UINT64 Id,
- IN GUID *Guid
- )
-{
- MIPI_SYST_HANDLE MipiSystHandle;
- MIPI_SYST_HEADER MipiSystHeader;
- UINT32 DbgInstCount;
- UINT8 *DbgContext;
- RETURN_STATUS Status;
- UINTN Index;
- UINT8 *ThDebugInfo;
-
- DbgInstCount = CountThDebugInstance ();
-
- ZeroMem (&MipiSystHandle, sizeof (MIPI_SYST_HANDLE));
- MipiSystHandle.systh_header = &MipiSystHeader;
-
- Status = InitMipiSystHandle (&MipiSystHandle);
- if (RETURN_ERROR (Status)) {
- return Status;
- }
-
- if (Guid != NULL) {
- SwapBytesGuid (Guid, (GUID *)(VOID *)&MipiSystHandle.systh_guid);
- MipiSystHandle.systh_tag.et_guid = 1;
- } else {
- MipiSystHandle.systh_tag.et_modunit = 2;
- MipiSystHandle.systh_tag.et_guid = 0;
- }
-
- DbgContext = (UINT8 *)GetFirstGuidHob (&gTraceHubDebugInfoHobGuid);
- if (DbgContext != NULL) {
- ThDebugInfo = GET_GUID_HOB_DATA (DbgContext);
- } else {
- ThDebugInfo = NULL;
- }
-
- for (Index = 0; Index < DbgInstCount; Index++) {
- Status = CheckWhetherToOutputMsg (
- &MipiSystHandle,
- ThDebugInfo,
- SeverityType,
- TraceHubCatalogType
- );
- if (!RETURN_ERROR (Status)) {
- Status = MipiSystWriteCatalog (
- &MipiSystHandle,
- SeverityType,
- Id
- );
- if (RETURN_ERROR (Status)) {
- break;
- }
- }
-
- if (DbgContext != NULL) {
- DbgContext = (UINT8 *)GetNextGuidHob (&gTraceHubDebugInfoHobGuid, GET_NEXT_HOB (DbgContext));
- if (DbgContext == NULL) {
- break;
- }
-
- ThDebugInfo = GET_GUID_HOB_DATA (DbgContext);
- }
- }
-
- return Status;
-}
-
-/**
- Write catalog message to specified Trace Hub MMIO address.
-
- @param[in] SeverityType Severity type of input message.
- @param[in] Id Catalog ID.
- @param[in] NumberOfParams Number of entries in argument list.
- @param[in] ... Catalog message parameters.
-
- @retval RETURN_SUCCESS Data was written to Trace Hub.
- @retval Other Failed to output Trace Hub message.
-**/
-RETURN_STATUS
-EFIAPI
-TraceHubSysTWriteCataLog64 (
- IN TRACE_HUB_SEVERITY_TYPE SeverityType,
- IN UINT64 Id,
- IN UINTN NumberOfParams,
- ...
- )
-{
- MIPI_SYST_HANDLE MipiSystHandle;
- MIPI_SYST_HEADER MipiSystHeader;
- VA_LIST Args;
- UINTN Index;
- UINT32 DbgInstCount;
- UINT8 *DbgContext;
- RETURN_STATUS Status;
- UINT8 *ThDebugInfo;
-
- DbgInstCount = 0;
-
- if (NumberOfParams > sizeof (MipiSystHandle.systh_param) / sizeof (UINT32)) {
- return RETURN_INVALID_PARAMETER;
- }
-
- DbgInstCount = CountThDebugInstance ();
-
- ZeroMem (&MipiSystHandle, sizeof (MIPI_SYST_HANDLE));
- MipiSystHandle.systh_header = &MipiSystHeader;
-
- Status = InitMipiSystHandle (&MipiSystHandle);
- if (RETURN_ERROR (Status)) {
- return Status;
- }
-
- MipiSystHandle.systh_param_count = (UINT32)NumberOfParams;
- VA_START (Args, NumberOfParams);
- for (Index = 0; Index < NumberOfParams; Index++) {
- MipiSystHandle.systh_param[Index] = VA_ARG (Args, UINT32);
- }
-
- VA_END (Args);
-
- DbgContext = (UINT8 *)GetFirstGuidHob (&gTraceHubDebugInfoHobGuid);
- if (DbgContext != NULL) {
- ThDebugInfo = GET_GUID_HOB_DATA (DbgContext);
- } else {
- ThDebugInfo = NULL;
- }
-
- for (Index = 0; Index < DbgInstCount; Index++) {
- Status = CheckWhetherToOutputMsg (
- &MipiSystHandle,
- ThDebugInfo,
- SeverityType,
- TraceHubCatalogType
- );
- if (!RETURN_ERROR (Status)) {
- Status = MipiSystWriteCatalog (
- &MipiSystHandle,
- SeverityType,
- Id
- );
- if (RETURN_ERROR (Status)) {
- break;
- }
- }
-
- if (DbgContext != NULL) {
- DbgContext = (UINT8 *)GetNextGuidHob (&gTraceHubDebugInfoHobGuid, GET_NEXT_HOB (DbgContext));
- if (DbgContext == NULL) {
- break;
- }
-
- ThDebugInfo = GET_GUID_HOB_DATA (DbgContext);
- }
- }
-
- return Status;
-}
+/** @file +System prints Trace Hub message in PEI based on fixed PCDs and HOB. +System applies Trace Hub HOB once it detect gTraceHubDebugInfoHobGuid HOB. +Trace Hub PCDs will be applied if no HOB exist. + +Copyright (c) 2023, Intel Corporation. All rights reserved.<BR> + +SPDX-License-Identifier: BSD-2-Clause-Patent + +**/ + +#include <Base.h> +#include <Library/BaseLib.h> +#include <Library/PcdLib.h> +#include <Library/HobLib.h> +#include <Library/BaseMemoryLib.h> +#include <Library/MemoryAllocationLib.h> +#include <Library/TraceHubDebugSysTLib.h> +#include <Library/MipiSysTLib.h> +#include <Library/MipiSysTLib/mipi_syst.h> +#include <Guid/TraceHubDebugInfoHob.h> +#include "InternalTraceHubApiCommon.h" +#include "InternalTraceHubApi.h" + +/** + Write debug string to specified Trace Hub MMIO address. + + @param[in] SeverityType Severity type of input message. + @param[in] Buffer A pointer to the data buffer. + @param[in] NumberOfBytes The size of data buffer. + + @retval RETURN_SUCCESS Data was written to Trace Hub. + @retval Other Failed to output Trace Hub message. +**/ +RETURN_STATUS +EFIAPI +TraceHubSysTDebugWrite ( + IN TRACE_HUB_SEVERITY_TYPE SeverityType, + IN UINT8 *Buffer, + IN UINTN NumberOfBytes + ) +{ + MIPI_SYST_HANDLE MipiSystHandle; + MIPI_SYST_HEADER MipiSystHeader; + RETURN_STATUS Status; + UINT8 *DbgContext; + UINTN Index; + UINT32 DbgInstCount; + UINT8 *ThDebugInfo; + + if (NumberOfBytes == 0) { + // + // No data need to be written to Trace Hub + // + return RETURN_SUCCESS; + } + + if (Buffer == NULL) { + return RETURN_INVALID_PARAMETER; + } + + DbgInstCount = CountThDebugInstance (); + + ZeroMem (&MipiSystHandle, sizeof (MIPI_SYST_HANDLE)); + MipiSystHandle.systh_header = &MipiSystHeader; + + Status = InitMipiSystHandle (&MipiSystHandle); + if (RETURN_ERROR (Status)) { + return Status; + } + + DbgContext = (UINT8 *)GetFirstGuidHob (&gTraceHubDebugInfoHobGuid); + if (DbgContext != NULL) { + ThDebugInfo = GET_GUID_HOB_DATA (DbgContext); + } else { + ThDebugInfo = NULL; + } + + for (Index = 0; Index < DbgInstCount; Index++) { + Status = CheckWhetherToOutputMsg ( + &MipiSystHandle, + ThDebugInfo, + SeverityType, + TraceHubDebugType + ); + if (!RETURN_ERROR (Status)) { + Status = MipiSystWriteDebug ( + &MipiSystHandle, + SeverityType, + (UINT16)NumberOfBytes, + (CHAR8 *)Buffer + ); + if (RETURN_ERROR (Status)) { + break; + } + } + + if (DbgContext != NULL) { + DbgContext = (UINT8 *)GetNextGuidHob (&gTraceHubDebugInfoHobGuid, GET_NEXT_HOB (DbgContext)); + if (DbgContext == NULL) { + break; + } + + ThDebugInfo = GET_GUID_HOB_DATA (DbgContext); + } + } + + return Status; +} + +/** + Write catalog status code message to specified Trace Hub MMIO address. + + @param[in] SeverityType Severity type of input message. + @param[in] Id Catalog ID. + @param[in] Guid Driver Guid. + + @retval RETURN_SUCCESS Data was written to Trace Hub. + @retval Other Failed to output Trace Hub message. +**/ +RETURN_STATUS +EFIAPI +TraceHubSysTWriteCataLog64StatusCode ( + IN TRACE_HUB_SEVERITY_TYPE SeverityType, + IN UINT64 Id, + IN GUID *Guid + ) +{ + MIPI_SYST_HANDLE MipiSystHandle; + MIPI_SYST_HEADER MipiSystHeader; + UINT32 DbgInstCount; + UINT8 *DbgContext; + RETURN_STATUS Status; + UINTN Index; + UINT8 *ThDebugInfo; + + DbgInstCount = CountThDebugInstance (); + + ZeroMem (&MipiSystHandle, sizeof (MIPI_SYST_HANDLE)); + MipiSystHandle.systh_header = &MipiSystHeader; + + Status = InitMipiSystHandle (&MipiSystHandle); + if (RETURN_ERROR (Status)) { + return Status; + } + + if (Guid != NULL) { + SwapBytesGuid (Guid, (GUID *)(VOID *)&MipiSystHandle.systh_guid); + MipiSystHandle.systh_tag.et_guid = 1; + } else { + MipiSystHandle.systh_tag.et_modunit = 2; + MipiSystHandle.systh_tag.et_guid = 0; + } + + DbgContext = (UINT8 *)GetFirstGuidHob (&gTraceHubDebugInfoHobGuid); + if (DbgContext != NULL) { + ThDebugInfo = GET_GUID_HOB_DATA (DbgContext); + } else { + ThDebugInfo = NULL; + } + + for (Index = 0; Index < DbgInstCount; Index++) { + Status = CheckWhetherToOutputMsg ( + &MipiSystHandle, + ThDebugInfo, + SeverityType, + TraceHubCatalogType + ); + if (!RETURN_ERROR (Status)) { + Status = MipiSystWriteCatalog ( + &MipiSystHandle, + SeverityType, + Id + ); + if (RETURN_ERROR (Status)) { + break; + } + } + + if (DbgContext != NULL) { + DbgContext = (UINT8 *)GetNextGuidHob (&gTraceHubDebugInfoHobGuid, GET_NEXT_HOB (DbgContext)); + if (DbgContext == NULL) { + break; + } + + ThDebugInfo = GET_GUID_HOB_DATA (DbgContext); + } + } + + return Status; +} + +/** + Write catalog message to specified Trace Hub MMIO address. + + @param[in] SeverityType Severity type of input message. + @param[in] Id Catalog ID. + @param[in] NumberOfParams Number of entries in argument list. + @param[in] ... Catalog message parameters. + + @retval RETURN_SUCCESS Data was written to Trace Hub. + @retval Other Failed to output Trace Hub message. +**/ +RETURN_STATUS +EFIAPI +TraceHubSysTWriteCataLog64 ( + IN TRACE_HUB_SEVERITY_TYPE SeverityType, + IN UINT64 Id, + IN UINTN NumberOfParams, + ... + ) +{ + MIPI_SYST_HANDLE MipiSystHandle; + MIPI_SYST_HEADER MipiSystHeader; + VA_LIST Args; + UINTN Index; + UINT32 DbgInstCount; + UINT8 *DbgContext; + RETURN_STATUS Status; + UINT8 *ThDebugInfo; + + DbgInstCount = 0; + + if (NumberOfParams > sizeof (MipiSystHandle.systh_param) / sizeof (UINT32)) { + return RETURN_INVALID_PARAMETER; + } + + DbgInstCount = CountThDebugInstance (); + + ZeroMem (&MipiSystHandle, sizeof (MIPI_SYST_HANDLE)); + MipiSystHandle.systh_header = &MipiSystHeader; + + Status = InitMipiSystHandle (&MipiSystHandle); + if (RETURN_ERROR (Status)) { + return Status; + } + + MipiSystHandle.systh_param_count = (UINT32)NumberOfParams; + VA_START (Args, NumberOfParams); + for (Index = 0; Index < NumberOfParams; Index++) { + MipiSystHandle.systh_param[Index] = VA_ARG (Args, UINT32); + } + + VA_END (Args); + + DbgContext = (UINT8 *)GetFirstGuidHob (&gTraceHubDebugInfoHobGuid); + if (DbgContext != NULL) { + ThDebugInfo = GET_GUID_HOB_DATA (DbgContext); + } else { + ThDebugInfo = NULL; + } + + for (Index = 0; Index < DbgInstCount; Index++) { + Status = CheckWhetherToOutputMsg ( + &MipiSystHandle, + ThDebugInfo, + SeverityType, + TraceHubCatalogType + ); + if (!RETURN_ERROR (Status)) { + Status = MipiSystWriteCatalog ( + &MipiSystHandle, + SeverityType, + Id + ); + if (RETURN_ERROR (Status)) { + break; + } + } + + if (DbgContext != NULL) { + DbgContext = (UINT8 *)GetNextGuidHob (&gTraceHubDebugInfoHobGuid, GET_NEXT_HOB (DbgContext)); + if (DbgContext == NULL) { + break; + } + + ThDebugInfo = GET_GUID_HOB_DATA (DbgContext); + } + } + + return Status; +} |
