//
// This file contains 'Framework Code' and is licensed as such
// under the terms of your license agreement with Intel or your
// vendor. This file may not be modified, except as allowed by
// additional terms of your license agreement.
//
/** @file
Implementation of TraceHub Filter.
INTEL CONFIDENTIAL
Copyright (c) 2017 - 2019, Intel Corporation. All rights reserved.
This software and associated documentation (if any) is furnished
under a license and may only be used or copied in accordance
with the terms of the license. Except as permitted by such
license, no part of this software or documentation may be
reproduced, stored in a retrieval system, or transmitted in any
form or by any means without the express written consent of
Intel Corporation.
**/
#include
#include
#include
#include "EnableTraceHubData.h"
/**
Determine whether to enable BIOS Debug Message tracing to Trace Hub.
@param SeverityType The severity level of data.
@retval TRUE Enable trace hub data.
@retval FALSE Disable trace hub data.
**/
BOOLEAN
EFIAPI
EnableTraceHubData (
IN TRACE_HUB_SEVERITY_TYPE SeverityType
)
{
UINT8 RegValue;
RETURN_STATUS Status;
UINT8 Routing;
UINT8 DebugLevel;
BOOLEAN Enable;
//
// ScratchPad2 Register is not found. The message will always be enabled.
//
RegValue = 0;
Status = TraceHubScratchPad2RegValue (&RegValue);
if (RETURN_ERROR (Status)) {
return FALSE;
}
Routing = RegValue & BIT0;
if (Routing == TraceHubRoutingDisable) {
return FALSE;
}
Enable = FALSE;
DebugLevel = (RegValue & (BIT1 | BIT2)) >> 1;
if (DebugLevel == TraceHubDebugLevelError) {
if ((SeverityType == SeverityFatal || SeverityType == SeverityError)) {
Enable = TRUE;
}
} else if (DebugLevel == TraceHubDebugLevelErrorWarning) {
if ((SeverityType == SeverityFatal ||
SeverityType == SeverityError ||
SeverityType == SeverityWarning)) {
Enable = TRUE;
}
} else if (DebugLevel == TraceHubDebugLevelErrorWarningInfo) {
if ((SeverityType == SeverityFatal ||
SeverityType == SeverityError ||
SeverityType == SeverityWarning ||
SeverityType == SeverityNormal)) {
Enable = TRUE;
}
} else if (DebugLevel == TraceHubDebugLevelErrorWarningInfoVerbose) {
Enable = TRUE;
}
return Enable;
}