From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from cam-smtp0.cambridge.arm.com (fw-tnat.cambridge.arm.com [217.140.96.140]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id 5A4AE20945B80 for ; Fri, 22 Sep 2017 09:15:07 -0700 (PDT) Received: from E111747.Emea.Arm.com (e111747.emea.arm.com [10.1.28.16]) by cam-smtp0.cambridge.arm.com (8.13.8/8.13.8) with ESMTP id v8MGICfe017591; Fri, 22 Sep 2017 17:18:12 +0100 From: evan.lloyd@arm.com To: edk2-devel@lists.01.org Cc: "ard.biesheuvel@linaro.org"@arm.com, "leif.lindholm@linaro.org"@arm.com, "Arvind.Chauhan@arm.com"@arm.com, "Daniil.Egranov@arm.com"@arm.com, "thomas.abraham@arm.com"@arm.com, "nd@arm.com"@arm.com Date: Fri, 22 Sep 2017 17:18:06 +0100 Message-Id: <20170922161807.11756-2-evan.lloyd@arm.com> X-Mailer: git-send-email 2.14.1 In-Reply-To: <20170922161807.11756-1-evan.lloyd@arm.com> References: <20170922161807.11756-1-evan.lloyd@arm.com> Subject: [PATCH 1/2] ArmPlatformPkg: Store initial timer value X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 22 Sep 2017 16:15:07 -0000 From: Alexei Fedorov This commit adds support for storing initial timer value logged at the beginning of firmware image execution. This timer value is required for firmware basic boot performance data record referenced by Firmware Performance Data Table (FPDT). Change-Id: Ic93bd3e509053e818187bcc153de493050e794aa Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Alexei Fedorov --- ArmPlatformPkg/PrePi/PeiMPCore.inf | 3 ++- ArmPlatformPkg/PrePi/PeiUniCore.inf | 3 ++- ArmPlatformPkg/PrePi/PrePi.c | 10 +++++++++- 3 files changed, 13 insertions(+), 3 deletions(-) diff --git a/ArmPlatformPkg/PrePi/PeiMPCore.inf b/ArmPlatformPkg/PrePi/PeiMPCore.inf index 4ce4a52784726a89fd09228fcd52aa1e6f87c85f..636049d4f44d29092bc9748caa99371d6538c554 100644 --- a/ArmPlatformPkg/PrePi/PeiMPCore.inf +++ b/ArmPlatformPkg/PrePi/PeiMPCore.inf @@ -1,7 +1,7 @@ #/** @file # # (C) Copyright 2015 Hewlett-Packard Development Company, L.P.
-# Copyright (c) 2011-2014, ARM Ltd. All rights reserved.
+# Copyright (c) 2011-2017, ARM Ltd. All rights reserved.
# # This program and the accompanying materials # are licensed and made available under the terms and conditions of the BSD License @@ -68,6 +68,7 @@ [Ppis] [Guids] gArmMpCoreInfoGuid + gEfiFirmwarePerformanceGuid [FeaturePcd] gEmbeddedTokenSpaceGuid.PcdPrePiProduceMemoryTypeInformationHob diff --git a/ArmPlatformPkg/PrePi/PeiUniCore.inf b/ArmPlatformPkg/PrePi/PeiUniCore.inf index 85114af7d1a8c37ea941a0714de697dc2bef754d..f37ddec9d13dad75882a186816b5ecb8856c7c86 100644 --- a/ArmPlatformPkg/PrePi/PeiUniCore.inf +++ b/ArmPlatformPkg/PrePi/PeiUniCore.inf @@ -1,7 +1,7 @@ #/** @file # # (C) Copyright 2015 Hewlett-Packard Development Company, L.P.
-# Copyright (c) 2011-2014, ARM Ltd. All rights reserved.
+# Copyright (c) 2011-2017, ARM Ltd. All rights reserved.
# # This program and the accompanying materials # are licensed and made available under the terms and conditions of the BSD License @@ -67,6 +67,7 @@ [Ppis] [Guids] gArmMpCoreInfoGuid + gEfiFirmwarePerformanceGuid [FeaturePcd] gEmbeddedTokenSpaceGuid.PcdPrePiProduceMemoryTypeInformationHob diff --git a/ArmPlatformPkg/PrePi/PrePi.c b/ArmPlatformPkg/PrePi/PrePi.c index e548ccace09730b78851b987d7b902a5bb7a84c5..e5016ea45359f74e7688adb2504784070dde0dce 100644 --- a/ArmPlatformPkg/PrePi/PrePi.c +++ b/ArmPlatformPkg/PrePi/PrePi.c @@ -1,6 +1,6 @@ /** @file * -* Copyright (c) 2011-2014, ARM Limited. All rights reserved. +* Copyright (c) 2011-2017, ARM Limited. All rights reserved. * * This program and the accompanying materials * are licensed and made available under the terms and conditions of the BSD License @@ -24,6 +24,7 @@ #include #include +#include #include #include "PrePi.h" @@ -86,6 +87,7 @@ PrePiMain ( CHAR8 Buffer[100]; UINTN CharCount; UINTN StacksSize; + FIRMWARE_SEC_PERFORMANCE Performance; // If ensure the FD is either part of the System Memory or totally outside of the System Memory (XIP) ASSERT (IS_XIP() || @@ -146,6 +148,12 @@ PrePiMain ( } } + // Store timer value logged at the beginning of firmware image execution + Performance.ResetEnd = GetTimeInNanoSecond (StartTimeStamp); + + // Build SEC Performance Data Hob + BuildGuidDataHob (&gEfiFirmwarePerformanceGuid, &Performance, sizeof (Performance)); + // Set the Boot Mode SetBootMode (ArmPlatformGetBootMode ()); -- Guid("CE165669-3EF3-493F-B85D-6190EE5B9759")