From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from NAM11-BN8-obe.outbound.protection.outlook.com (NAM11-BN8-obe.outbound.protection.outlook.com [40.92.20.18]) by mx.groups.io with SMTP id smtpd.web11.636.1597168007808109734 for ; Tue, 11 Aug 2020 10:46:48 -0700 Authentication-Results: mx.groups.io; dkim=fail reason="body hash did not verify" header.i=@outlook.com header.s=selector1 header.b=R97A4Dub; spf=pass (domain: outlook.com, ip: 40.92.20.18, mailfrom: michael.kubacki@outlook.com) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=hI8mGBqX3ruEVM9EG1j5J/a0W7JLf7pZpKBdgAaN87QRYVA4V2usP79JBq40FThtv98OPcPR7pzH4keeXMNQsQGEwkobF8QrK0PoavvqRJ7STHaQYukiqawyH2LQc67h6Om0h0hgn7G3M/un5w/CiMT72AZaGWrjoMl0p0e0mJ4hUSTgnJxmOxEgUoFO2T9y7OPem8Y9Y88paDuQ/JhzmphdUgxcZvIKk7JZhiM+XLyzuX8Ld3/MvxwbKp/S+B2vjmogUFNkycB6zb+dmxuaFnWw24ByZvR8cVFtArAyAOJWqByf3n+GARNy3ZTHmHDmkCwxAMal3X2UTIIPyPrmgQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=+cI+TzHPZZbn99kSYet5bF6aAtVOderYk/V4X0ZzS4w=; b=ZTZ8oGpW2pllGI+HtOmtZIm3YlkKCRnLz0cTWPFysZGW+jO7scJTLJt1HyHGXqyQ5GYsFrgqzmVGtntZNxVY+ehTdBarUu0kQlsaIKygXrMiHLs2rxoTYEWXdYCcTEuTm5GVyyEDZD7NZogqSvTwBt3LA9LxpxX0yt8g2zf3xxPskVxWNC3/HyLyDf8t56GMHnrdsvWvVPUG4tT4UmHPn+HoKDntGdsd8tHl8rM7EeYEcHvGF6veWHBQwT3smLVqZVZI0A7gybXRPGPIcncTbIo3L0zSYMH68yBEhsjFssRHTsKz9A39UAdtCDz3Ro5c6AOCd+1t86fO7YaGia9Akw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=outlook.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=+cI+TzHPZZbn99kSYet5bF6aAtVOderYk/V4X0ZzS4w=; b=R97A4DubmvCEowl7xZIlr0qEHtMQTq6EQHQI2nL1yyZ74TIoqYdnMwlGMCs7pYBhkhk0do3M1jUUjdQiQ0ufZ+hhFMGZ/YphVA858Vg+R/RLTGUsJiyt23Vk4lo5tdbSJMS8ybsuFUAnQL9lf1+BxLBy5dE7scnxCdfk6juaAG4epmhX61kqkZqiIgXoM6p95cLq0DcoV8kTodp6JnxZoEuP/xFZW7Qu/PA/gm2CVxhE67Z1rccOq4M7lg9pCQriIyutvX7uCMxla4Im8pZmbbEVCyYtacitHx4taZGsEngZtEyHD4v6IozK9t/2UAM+LuK1EEMpzMNo9JW5mSOJsw== Received: from BN8NAM11FT019.eop-nam11.prod.protection.outlook.com (2a01:111:e400:fc4b::46) by BN8NAM11HT190.eop-nam11.prod.protection.outlook.com (2a01:111:e400:fc4b::70) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3261.16; Tue, 11 Aug 2020 17:46:46 +0000 Received: from MWHPR07MB3440.namprd07.prod.outlook.com (2a01:111:e400:fc4b::52) by BN8NAM11FT019.mail.protection.outlook.com (2a01:111:e400:fc4b::158) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3261.16 via Frontend Transport; Tue, 11 Aug 2020 17:46:46 +0000 X-IncomingTopHeaderMarker: OriginalChecksum:CF9E6AD8F02DD79FEF04084E75CAB87D5664C48AAE26133B29A77AC0C81E0AE7;UpperCasedChecksum:4F6D03D0A1936E5DDAE33714699BD39A519CB586A5BD99D811F70EE7CA4D7309;SizeAsReceived:9260;Count:49 Received: from MWHPR07MB3440.namprd07.prod.outlook.com ([fe80::9856:570e:1735:974e]) by MWHPR07MB3440.namprd07.prod.outlook.com ([fe80::9856:570e:1735:974e%7]) with mapi id 15.20.3261.025; Tue, 11 Aug 2020 17:46:46 +0000 Subject: Re: [edk2-devel] [PATCH v2 2/6] FmpDevicePkg: Add LastAttemptStatus.h To: "Desimone, Nathaniel L" , "devel@edk2.groups.io" CC: "Gao, Liming" , "Kinney, Michael D" , "Jiang, Guomin" , "Xu, Wei6" References: <20200810202753.1318-1-michael.kubacki@outlook.com> From: "Michael Kubacki" Message-ID: Date: Tue, 11 Aug 2020 10:46:45 -0700 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:68.0) Gecko/20100101 Thunderbird/68.11.0 In-Reply-To: X-ClientProxiedBy: MWHPR11CA0036.namprd11.prod.outlook.com (2603:10b6:300:115::22) To MWHPR07MB3440.namprd07.prod.outlook.com (2603:10b6:301:69::28) Return-Path: michael.kubacki@outlook.com X-Microsoft-Original-Message-ID: MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from [IPv6:2001:4898:d8:39:d0d9:4dc5:3f5b:4b78] (2001:4898:80e8:a:50f8:4dc5:3f5b:4b78) by MWHPR11CA0036.namprd11.prod.outlook.com (2603:10b6:300:115::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3283.15 via Frontend Transport; Tue, 11 Aug 2020 17:46:44 +0000 X-Microsoft-Original-Message-ID: X-TMN: [PgpaMCUv7zXWXJsVJkQwaJUUnO4iVJNLHvhMfJEOApY+aq8zLkpP8LL/md2kwtK9] X-MS-PublicTrafficType: Email X-IncomingHeaderCount: 49 X-EOPAttributedMessage: 0 X-MS-Office365-Filtering-Correlation-Id: 698d6d0f-cd8c-49bf-4838-08d83e1e838c X-MS-TrafficTypeDiagnostic: BN8NAM11HT190: X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: VQHGV13KpoNp81JFpe49wO1b+eauVaUXtIfYpIGEsB6Lj/lthzxgsgnrE/oHFBzIO+v0Kc1J5AOYb8faz6UMBPPHGBt/foK4rQtaZ/wkvM56luMy4IeJBcuHj1L0bAVdTDd+zg/H924CwDY4PG4DAh3b4neF+E1jNFhGsrGQWMM7K2g3Dk5IwKq2iJeJqV3+oCvz2VyqUO0zYDPcQgM/F9qJeaDLKMLNcJVTBmG9l5sjkHqyN33jAq4cHNCZj76h X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:0;SRV:;IPV:NLI;SFV:NSPM;H:MWHPR07MB3440.namprd07.prod.outlook.com;PTR:;CAT:NONE;SFTY:;SFS:;DIR:OUT;SFP:1901; X-MS-Exchange-AntiSpam-MessageData: h/0m1ynmaz5JbsHwpjbMifEjQZ8jB3mJ7U2kG9seZUoHGKU8Z66Vq9B0cIXzTnh5XbEziFkN+LV25qunxbd7E23YrtD9flwhwXdbAmx+qlejOUYmCjT5S4lT8LFavS6Re6VBTrlSIacmjeKaEPcL5zN7qD9mXEI1maDzAk1OLUzB0ZNEBtfUVXc69++VW7xjFNDMmYsO0tbDVuBRBakUKg== X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 698d6d0f-cd8c-49bf-4838-08d83e1e838c X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Aug 2020 17:46:45.9699 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-CrossTenant-AuthSource: BN8NAM11FT019.eop-nam11.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: Internet X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN8NAM11HT190 Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: quoted-printable #1: In v3, I'm going to split it such that the defines are in the public=20 header and the enum specifying the internal driver and dependency ranges= =20 are in a private header to FmpDevicePkg. Here's the current set of v3 changes to agree upon before sending a series= : 1. Move the defines for the ranges to a public header 2. Move the enum to a private instance file 3. Rename LAST_ATTEMPT_STATUS_LIBRARY_ERROR_MIN_ERROR_CODE to=20 LAST_ATTEMPT_STATUS_DEVICE_LIBRARY_ERROR_MIN_ERROR_CODE 4. Include a comment to explicitly state new codes within a given range=20 must be added at the end of the range Please let me know if there's any further feedback. Thanks, Michael On 8/10/2020 5:31 PM, Desimone, Nathaniel L wrote: > My feedback: >=20 > #1: Why is LastAttemptStatus.h in PrivateInclude? Seems like something y= ou would want to have as a public header. >=20 > #2: If someone inserts a new enum value in the middle of LAST_ATTEMPT_ST= ATUS_EXPANDED_ERROR_LIST it will make it difficult to decode error codes in= the future. Either put a comment that new error code should go on the bott= om. Or add some space between each entry using something like this: >=20 > enum LAST_ATTEMPT_STATUS_EXPANDED_ERROR_LIST > { > LAST_ATTEMPT_STATUS_DRIVER_ERROR_GET_FMP_HEADER =3D LAST_ATTEMPT_STAT= US_ERROR_UNSUCCESSFUL_VENDOR_RANGE_MIN, > LAST_ATTEMPT_STATUS_DRIVER_ERROR_PROGRESS_CALLBACK_ERROR =3D LAST_ATT= EMPT_STATUS_ERROR_UNSUCCESSFUL_VENDOR_RANGE_MIN + 10, > LAST_ATTEMPT_STATUS_DRIVER_ERROR_CHECK_POWER_API =3D LAST_ATTEMPT_STA= TUS_ERROR_UNSUCCESSFUL_VENDOR_RANGE_MIN + 20, > LAST_ATTEMPT_STATUS_DRIVER_ERROR_CHECK_SYS_THERMAL_API =3D LAST_ATTEM= PT_STATUS_ERROR_UNSUCCESSFUL_VENDOR_RANGE_MIN + 30, > LAST_ATTEMPT_STATUS_DRIVER_ERROR_THERMAL =3D LAST_ATTEMPT_STATUS_ERRO= R_UNSUCCESSFUL_VENDOR_RANGE_MIN + 40, > LAST_ATTEMPT_STATUS_DRIVER_ERROR_CHECK_SYS_ENV_API =3D LAST_ATTEMPT_S= TATUS_ERROR_UNSUCCESSFUL_VENDOR_RANGE_MIN + 50, > LAST_ATTEMPT_STATUS_DRIVER_ERROR_SYSTEM_ENV =3D LAST_ATTEMPT_STATUS_E= RROR_UNSUCCESSFUL_VENDOR_RANGE_MIN + 60, >=20 > Then you can insert something in the middle by adding +5. >=20 > Thanks, > Nate >=20 > =EF=BB=BFOn 8/10/20, 1:28 PM, "devel@edk2.groups.io on behalf of Michael= Kubacki" w= rote: >=20 > From: Michael Kubacki >=20 > Introduces a header file to contain Last Attempt Status codes that > define granular FmpDevicePkg usage of the UEFI Specification > defined vendor range. The vendor range is described in UEFI > Specification 2.8A section 23.4. >=20 > With this change, FmpDevicePkg currently defines three subranges of > the Last Attempt Status vendor range: > 1. Driver - Codes returned from operations performed by the > FmpDxe driver. > 2. Dependency - Codes returned from FMP dependency related > functionality (e.g. FmpDependencyLib). > 3. Library - Codes returned from FmpDeviceLib instances. >=20 > Cc: Liming Gao > Cc: Michael D Kinney > Cc: Guomin Jiang > Cc: Wei6 Xu > Signed-off-by: Michael Kubacki > --- > FmpDevicePkg/PrivateInclude/LastAttemptStatus.h | 81 +++++++++++++= +++++++ > 1 file changed, 81 insertions(+) >=20 > diff --git a/FmpDevicePkg/PrivateInclude/LastAttemptStatus.h b/FmpD= evicePkg/PrivateInclude/LastAttemptStatus.h > new file mode 100644 > index 000000000000..01e96b23edad > --- /dev/null > +++ b/FmpDevicePkg/PrivateInclude/LastAttemptStatus.h > @@ -0,0 +1,81 @@ > +/** @file > + Defines last attempt status codes used in FmpDevicePkg. > + > + Copyright (c) Microsoft Corporation.
> + > + SPDX-License-Identifier: BSD-2-Clause-Patent > + > +**/ > + > +#ifndef __FMP_LAST_ATTEMPT_STATUS_H__ > +#define __FMP_LAST_ATTEMPT_STATUS_H__ > + > +// > +// Size of the error code range for FMP driver-specific errors > +// > +#define LAST_ATTEMPT_STATUS_DRIVER_ERROR_COUNT 0x80 > + > +// > +// Size of the error code range for FMP dependency related errors > +// > +#define LAST_ATTEMPT_STATUS_DEPENDENCY_ERROR_COUNT 0x20 > + > +#define LAST_ATTEMPT_STATUS_DRIVER_MAX_ERROR_CODE_VALUE LAST_A= TTEMPT_STATUS_ERROR_UNSUCCESSFUL_VENDOR_RANGE_MIN + \ > + LAST_A= TTEMPT_STATUS_DRIVER_ERROR_COUNT - 1 > + > +#define LAST_ATTEMPT_STATUS_DEPENDENCY_MAX_ERROR_CODE_VALUE LAST_A= TTEMPT_STATUS_DRIVER_MAX_ERROR_CODE_VALUE + \ > + LAST_A= TTEMPT_STATUS_DEPENDENCY_ERROR_COUNT > + > +#define LAST_ATTEMPT_STATUS_LIBRARY_MAX_ERROR_CODE_VALUE LAST_A= TTEMPT_STATUS_ERROR_UNSUCCESSFUL_VENDOR_RANGE_MAX - 1 > + > +// > +// Last attempt status codes defined for additional granularity in= the FMP stack. > +// > +// These codes are defined within the higher-level UEFI specificat= ion defined UNSUCCESSFUL_VENDOR_RANGE. > +// > +// The following last attempt status code ranges are defined for t= he following corresponding component: > +// * LAST_ATTEMPT_STATUS_DRIVER - FMP driver > +// * LAST_ATTEMPT_STATUS_DEPENDENCY - FMP dependency functionali= ty > +// * LAST_ATTEMPT_STATUS_LIBRARY - FMP device library instances > +// > +enum LAST_ATTEMPT_STATUS_EXPANDED_ERROR_LIST > +{ > + LAST_ATTEMPT_STATUS_DRIVER_ERROR_GET_FMP_HEADER = = =3D LAST_ATTEMPT_STATUS_ERROR_UNSUCCESSFUL_VENDOR_RANGE_MIN, > + LAST_ATTEMPT_STATUS_DRIVER_ERROR_PROGRESS_CALLBACK_ERROR = , > + LAST_ATTEMPT_STATUS_DRIVER_ERROR_CHECK_POWER_API = , > + LAST_ATTEMPT_STATUS_DRIVER_ERROR_CHECK_SYS_THERMAL_API = , > + LAST_ATTEMPT_STATUS_DRIVER_ERROR_THERMAL = , > + LAST_ATTEMPT_STATUS_DRIVER_ERROR_CHECK_SYS_ENV_API = , > + LAST_ATTEMPT_STATUS_DRIVER_ERROR_SYSTEM_ENV = , > + LAST_ATTEMPT_STATUS_DRIVER_ERROR_GET_FMP_HEADER_SIZE = , > + LAST_ATTEMPT_STATUS_DRIVER_ERROR_GET_ALL_HEADER_SIZE = , > + LAST_ATTEMPT_STATUS_DRIVER_ERROR_GET_FMP_HEADER_VERSION = , > + LAST_ATTEMPT_STATUS_DRIVER_ERROR_IMAGE_NOT_PROVIDED = , > + LAST_ATTEMPT_STATUS_DRIVER_ERROR_IMAGE_NOT_UPDATABLE = , > + LAST_ATTEMPT_STATUS_DRIVER_ERROR_INVALID_CERTIFICATE = , > + LAST_ATTEMPT_STATUS_DRIVER_ERROR_INVALID_IMAGE_INDEX = , > + LAST_ATTEMPT_STATUS_DRIVER_ERROR_INVALID_KEY_LENGTH = , > + LAST_ATTEMPT_STATUS_DRIVER_ERROR_INVALID_KEY_LENGTH_VALUE = , > + LAST_ATTEMPT_STATUS_DRIVER_ERROR_VERSION_TOO_LOW = , > + LAST_ATTEMPT_STATUS_DRIVER_ERROR_DEVICE_LOCKED = , > + LAST_ATTEMPT_STATUS_DRIVER_ERROR_IMAGE_AUTH_FAILURE = , > + LAST_ATTEMPT_STATUS_DRIVER_ERROR_PROTOCOL_ARG_MISSING = , > + LAST_ATTEMPT_STATUS_DRIVER_ERROR_MAX_ERROR_CODE = = =3D LAST_ATTEMPT_STATUS_DRIVER_MAX_ERROR_CODE_VALUE, > + > + LAST_ATTEMPT_STATUS_DEPENDENCY_ERROR_GET_DEPEX_FAILURE = , > + LAST_ATTEMPT_STATUS_DEPENDENCY_ERROR_NO_END_OPCODE = , > + LAST_ATTEMPT_STATUS_DEPENDENCY_ERROR_UNKNOWN_OPCODE = , > + LAST_ATTEMPT_STATUS_DEPENDENCY_ERROR_MEMORY_ALLOCATION_FAILED = , > + LAST_ATTEMPT_STATUS_DEPENDENCY_ERROR_GUID_BEYOND_DEPEX = , > + LAST_ATTEMPT_STATUS_DEPENDENCY_ERROR_VERSION_BEYOND_DEPEX = , > + LAST_ATTEMPT_STATUS_DEPENDENCY_ERROR_VERSION_STR_BEYOND_DEPEX = , > + LAST_ATTEMPT_STATUS_DEPENDENCY_ERROR_FMP_NOT_FOUND = , > + LAST_ATTEMPT_STATUS_DEPENDENCY_ERROR_PUSH_FAILURE = , > + LAST_ATTEMPT_STATUS_DEPENDENCY_ERROR_POP_FAILURE = , > + LAST_ATTEMPT_STATUS_DEPENDENCY_ERROR_MAX_ERROR_CODE = = =3D LAST_ATTEMPT_STATUS_DEPENDENCY_MAX_ERROR_CODE_VALUE, > + > + LAST_ATTEMPT_STATUS_LIBRARY_ERROR_MIN_ERROR_CODE = , > + LAST_ATTEMPT_STATUS_LIBRARY_ERROR_MAX_ERROR_CODE = = =3D LAST_ATTEMPT_STATUS_LIBRARY_MAX_ERROR_CODE_VALUE > +}; > + > +#endif > -- > 2.28.0.windows.1 >=20 >=20 > >=20 >=20