From mboxrd@z Thu Jan 1 00:00:00 1970 Authentication-Results: mx.groups.io; dkim=missing; spf=pass (domain: intel.com, ip: 192.55.52.115, mailfrom: michael.a.kubacki@intel.com) Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by groups.io with SMTP; Thu, 12 Sep 2019 14:25:27 -0700 X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga001.jf.intel.com ([10.7.209.18]) by fmsmga103.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 12 Sep 2019 14:25:26 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.64,492,1559545200"; d="scan'208";a="269215904" Received: from makuback-desk1.amr.corp.intel.com ([10.7.159.162]) by orsmga001.jf.intel.com with ESMTP; 12 Sep 2019 14:25:26 -0700 From: "Kubacki, Michael A" To: devel@edk2.groups.io Cc: Dandan Bi , Sai Chaganty , Liming Gao Subject: [edk2-platforms][PATCH V2 1/1] AdvancedFeaturePkg/Ipmi: Fix GCC Build Failures Date: Thu, 12 Sep 2019 14:24:18 -0700 Message-Id: <20190912212418.33316-1-michael.a.kubacki@intel.com> X-Mailer: git-send-email 2.16.2.windows.1 REF:https://bugzilla.tianocore.org/show_bug.cgi?id=2059 These build failures can be reproduced simply by building the AdvancedFeaturePkg.dsc file in GCC5. To build the whole package DSC (not pull individual features into other packages), set the WORKSPACE variable to the edk2 directory in the workspace as is done by executing edksetup.sh then create the PACKAGES_PATH variable and add the Platform/Intel and Silicon/Intel directories to the variable value. Then start the build of AdvancedFeaturePkg.dsc: 'build -p AdvancedFeaturePkg/AdvancedFeaturePkg.dsc' This change corrects the following issues reported by GCC: * BmcAcpi.c - Cast the pointer actual parameter types passed to functions to the formal parameter type. * OsWdt.c - Return the Status variable as the function return value in DriverInit (). * PeiIpmiInit.c - Return the Status variable as the function return value in PeimIpmiInterfaceInit () * SolStatus.c - Remove the unused variable SOLEnabled. The variable was not removed after a code refactoring. All future contributions to AdvancedFeaturePkg must successfully build in GCC after this change. Cc: Dandan Bi Cc: Sai Chaganty Cc: Liming Gao Signed-off-by: Michael Kubacki --- Platform/Intel/AdvancedFeaturePkg/Ipmi/BmcAcpi/BmcAcpi.c | 16 +++++++++---- Platform/Intel/AdvancedFeaturePkg/Ipmi/IpmiInit/PeiIpmiInit.c | 15 ++++++------ Platform/Intel/AdvancedFeaturePkg/Ipmi/OsWdt/OsWdt.c | 9 ++++---- Platform/Intel/AdvancedFeaturePkg/Ipmi/SolStatus/SolStatus.c | 24 ++++++++------------ 4 files changed, 35 insertions(+), 29 deletions(-) diff --git a/Platform/Intel/AdvancedFeaturePkg/Ipmi/BmcAcpi/BmcAcpi.c b/Platform/Intel/AdvancedFeaturePkg/Ipmi/BmcAcpi/BmcAcpi.c index 3b330da160..990b4b9e83 100644 --- a/Platform/Intel/AdvancedFeaturePkg/Ipmi/BmcAcpi/BmcAcpi.c +++ b/Platform/Intel/AdvancedFeaturePkg/Ipmi/BmcAcpi/BmcAcpi.c @@ -1,7 +1,7 @@ /** @file BMC ACPI. -Copyright (c) 2018, Intel Corporation. All rights reserved.
+Copyright (c) 2018 - 2019, Intel Corporation. All rights reserved.
SPDX-License-Identifier: BSD-2-Clause-Patent **/ @@ -154,7 +154,7 @@ UpdateDeviceSsdtTable ( IoRsc->BaseAddressMax = PcdGet16(PcdIpmiIoBaseAddress); } } - + return EFI_SUCCESS; } @@ -202,7 +202,7 @@ BmcAcpiEntryPoint ( // // Locate the firmware volume protocol // - Status = LocateSupportProtocol (&gEfiFirmwareVolume2ProtocolGuid, &FwVol, 1); + Status = LocateSupportProtocol (&gEfiFirmwareVolume2ProtocolGuid, (VOID **) &FwVol, 1); if (EFI_ERROR (Status)) { return Status; } @@ -216,7 +216,15 @@ BmcAcpiEntryPoint ( while (!EFI_ERROR (Status)) { CurrentTable = NULL; - Status = FwVol->ReadSection (FwVol, &gEfiCallerIdGuid, EFI_SECTION_RAW, Instance, &CurrentTable, (UINTN *) &Size, &FvStatus); + Status = FwVol->ReadSection ( + FwVol, + &gEfiCallerIdGuid, + EFI_SECTION_RAW, + Instance, + (VOID **) &CurrentTable, + (UINTN *) &Size, + &FvStatus + ); if (!EFI_ERROR (Status)) { // // Perform any table specific updates. diff --git a/Platform/Intel/AdvancedFeaturePkg/Ipmi/IpmiInit/PeiIpmiInit.c b/Platform/Intel/AdvancedFeaturePkg/Ipmi/IpmiInit/PeiIpmiInit.c index 8245aac8e9..062d20c44e 100644 --- a/Platform/Intel/AdvancedFeaturePkg/Ipmi/IpmiInit/PeiIpmiInit.c +++ b/Platform/Intel/AdvancedFeaturePkg/Ipmi/IpmiInit/PeiIpmiInit.c @@ -1,7 +1,7 @@ /** @file - IPMI stack initialization in PEI. + IPMI stack initialization in PEI. -Copyright (c) 2018, Intel Corporation. All rights reserved.
+Copyright (c) 2018 - 2019, Intel Corporation. All rights reserved.
SPDX-License-Identifier: BSD-2-Clause-Patent **/ @@ -27,7 +27,7 @@ Routine Description: Arguments: -Returns: +Returns: Status --*/ @@ -35,7 +35,7 @@ Returns: EFI_STATUS Status; IPMI_GET_DEVICE_ID_RESPONSE BmcInfo; UINT32 Retries; - + // // Set up a loop to retry for up to 30 seconds. Calculate retries not timeout // so that in case KCS is not enabled and EfiIpmiSendCommand() returns @@ -71,9 +71,10 @@ Returns: The entry point of the Ipmi PEIM. @param FileHandle Handle of the file being invoked. - @param PeiServices Describes the list of possible PEI Services. + @param PeiServices Describes the list of possible PEI Services. @retval EFI_SUCCESS Indicates that Ipmi initialization completed successfully. + @retval Others Indicates that Ipmi initialization could not complete successfully. **/ EFI_STATUS EFIAPI @@ -85,11 +86,11 @@ PeimIpmiInterfaceInit ( BOOLEAN UpdateMode; EFI_STATUS Status; - DEBUG((EFI_D_ERROR,"IPMI Peim:Get BMC Device Id\n")); + DEBUG ((DEBUG_INFO, "IPMI Peim:Get BMC Device Id\n")); // // Get the Device ID and check if the system is in Force Update mode. // Status = GetDeviceId (&UpdateMode); - return EFI_SUCCESS; + return Status; } diff --git a/Platform/Intel/AdvancedFeaturePkg/Ipmi/OsWdt/OsWdt.c b/Platform/Intel/AdvancedFeaturePkg/Ipmi/OsWdt/OsWdt.c index c5612d4b6d..25139eadba 100644 --- a/Platform/Intel/AdvancedFeaturePkg/Ipmi/OsWdt/OsWdt.c +++ b/Platform/Intel/AdvancedFeaturePkg/Ipmi/OsWdt/OsWdt.c @@ -1,7 +1,7 @@ /** @file IPMI Os watchdog timer Driver. -Copyright (c) 2018, Intel Corporation. All rights reserved.
+Copyright (c) 2018 - 2019, Intel Corporation. All rights reserved.
SPDX-License-Identifier: BSD-2-Clause-Patent **/ @@ -93,11 +93,12 @@ Arguments: SystemTable - Pointer to the System Table Returns: - EFI_SUCCESS - Protocol successfully started and installed. + @retval EFI_SUCCESS Protocol successfully started and installed. + @retval EFI_OUT_OF_RESOURCES The event could not be allocated. --*/ { - EFI_STATUS Status; + EFI_STATUS Status; Status = gBS->CreateEvent ( EVT_SIGNAL_EXIT_BOOT_SERVICES, @@ -107,5 +108,5 @@ Returns: &mExitBootServicesEvent ); - return EFI_SUCCESS; + return Status; } diff --git a/Platform/Intel/AdvancedFeaturePkg/Ipmi/SolStatus/SolStatus.c b/Platform/Intel/AdvancedFeaturePkg/Ipmi/SolStatus/SolStatus.c index 69479bdbf5..47bec1975a 100644 --- a/Platform/Intel/AdvancedFeaturePkg/Ipmi/SolStatus/SolStatus.c +++ b/Platform/Intel/AdvancedFeaturePkg/Ipmi/SolStatus/SolStatus.c @@ -1,7 +1,7 @@ /** @file IPMI Serial Over Lan Driver. -Copyright (c) 2018, Intel Corporation. All rights reserved.
+Copyright (c) 2018 - 2019, Intel Corporation. All rights reserved.
SPDX-License-Identifier: BSD-2-Clause-Patent **/ @@ -70,7 +70,7 @@ GetSOLStatus ( if (Status == EFI_SUCCESS) { *Data = GetConfigurationParametersResponse.ParameterData[0]; } - + return Status; } @@ -132,11 +132,11 @@ SolStatusEntryPoint ( IN EFI_SYSTEM_TABLE *SystemTable ) /*++ - + Routine Description: This is the standard EFI driver point. This function intitializes the private data required for creating SOL Status Driver. - + Arguments: ImageHandle - Handle for the image of this driver SystemTable - Pointer to the EFI System Table @@ -149,18 +149,14 @@ SolStatusEntryPoint ( { EFI_STATUS Status = EFI_SUCCESS; UINT8 Channel; - BOOLEAN Enabled = FALSE; - BOOLEAN SOLEnabled = FALSE; - - for (Channel = 1; Channel <= PcdGet8(PcdMaxSOLChannels); Channel++) { - Status = GetSOLStatus (Channel, IPMI_SOL_CONFIGURATION_PARAMETER_SOL_ENABLE, &Enabled); + BOOLEAN SolEnabled = FALSE; + + for (Channel = 1; Channel <= PcdGet8 (PcdMaxSOLChannels); Channel++) { + Status = GetSOLStatus (Channel, IPMI_SOL_CONFIGURATION_PARAMETER_SOL_ENABLE, &SolEnabled); if (Status == EFI_SUCCESS) { - if (Enabled == TRUE) { - SOLEnabled = TRUE; - } - DEBUG ((EFI_D_ERROR, "SOL enabling status for channel %x is %x\n", Channel, Enabled)); + DEBUG ((DEBUG_ERROR, "SOL enabling status for channel %x is %x\n", Channel, SolEnabled)); } else { - DEBUG ((EFI_D_ERROR, "Failed to get channel %x SOL status from BMC!, status is %x\n", Channel, Status)); + DEBUG ((DEBUG_ERROR, "Failed to get channel %x SOL status from BMC!, status is %x\n", Channel, Status)); } } -- 2.16.2.windows.1