From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from NAM11-DM6-obe.outbound.protection.outlook.com (NAM11-DM6-obe.outbound.protection.outlook.com [40.107.223.80]) by mx.groups.io with SMTP id smtpd.web10.14305.1677812332376590368 for ; Thu, 02 Mar 2023 18:58:52 -0800 Authentication-Results: mx.groups.io; dkim=fail reason="body hash did not verify" header.i=@amd.com header.s=selector1 header.b=GX0+rdl+; spf=permerror, err=parse error for token &{10 18 %{i}._ip.%{h}._ehlo.%{d}._spf.vali.email}: invalid domain name (domain: amd.com, ip: 40.107.223.80, mailfrom: abner.chang@amd.com) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=eGVb3M19/ap1FVoP/V37LRAGqEJlMB2bsk7D+79P56lmBMTTxkhh/F8ruiLJpPE3LSilPFKBZKMkwd2l0u1LG0GcX+I/VL/98VIMbXnkWbsPEDCfO8+x8eRmYL/aHX6Ri5vCjm7WDEw7GOsRhKXgbq4BP09CvNDAsz4/aY/uUjZ8lDTt5fuX1+X80MALyf5FCWhASHElMilRSIWV2vq6Nv3SVF2A+gg4scHpA8xiLp+479W3aeY6B06UCjn7+qCcoeulfnqXHikYy8o7NYvbnA30v8c2CMmRb4efYeteu/Jci79z+xlPaQa0/Yek/0C2u9nrdXMzMBtsfKpaYb1+KA== 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-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=H8RACxt8+OvE64qvxl4vhmfP6qrwK6ozVf01c2kM/l8=; b=ZPTkf/w49TSzdbOqjkhQ05qsWr1HBRo8JFy/GP7NTUnLKxwMKaHj1fv/ZY9ECmw4uNnakEz05d37EmrhaDNbiNMGGCDNoWKXLArgnwElIWf6w+rO0StlD8P+TxJS8HmF9Q7fbRKFgmj2sE1DSmqveSRAM+VJF7Y9UvENUt59SdsVJGJxzVqCF4lmJAkiqkRXII4MF10V/xF3dfiTm9nbGOjxN2n+grzXLxMoGxjMX4Nh9FZRBnrpK6bobwpbIQTFxehK84lXRgba4Cpk3J9TvWG1EKvmDB/6XYYy5vt9sTN4ROuYxIfy3btHy+YtbiR9qtbPyxTye3sFgp7KVnDwmg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=edk2.groups.io smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=H8RACxt8+OvE64qvxl4vhmfP6qrwK6ozVf01c2kM/l8=; b=GX0+rdl+P9czix/9WNKaxrKwWNNOkRgjevVH2ehTWCYjH3V4mEeZ+aoC8v4HeUUg0A/tCgxcb19plHxD6f/FutA/+AA2NdjnYvJN742+QdVq44uuFo9Jptte0Ndcmb/4uO/mJfhXdBtNfxUbuamarvZL4oEpA/gH4ovLJWiO30w= Received: from DS7PR06CA0008.namprd06.prod.outlook.com (2603:10b6:8:2a::15) by SA0PR12MB7478.namprd12.prod.outlook.com (2603:10b6:806:24b::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6156.18; Fri, 3 Mar 2023 02:58:50 +0000 Received: from DM6NAM11FT012.eop-nam11.prod.protection.outlook.com (2603:10b6:8:2a:cafe::41) by DS7PR06CA0008.outlook.office365.com (2603:10b6:8:2a::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6156.20 via Frontend Transport; Fri, 3 Mar 2023 02:58:50 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=SATLEXMB04.amd.com; pr=C Received: from SATLEXMB04.amd.com (165.204.84.17) by DM6NAM11FT012.mail.protection.outlook.com (10.13.173.109) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.6156.22 via Frontend Transport; Fri, 3 Mar 2023 02:58:50 +0000 Received: from TPE-L1-ABNCHANG.amd.com (10.180.168.240) by SATLEXMB04.amd.com (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.34; Thu, 2 Mar 2023 20:58:46 -0600 From: "Chang, Abner" To: CC: Michael D Kinney , Liming Gao , Zhiguang Liu , "Nickle Wang" , Igor Kulchytskyy , Isaac Oram , Abdul Lateef Attar Subject: [PATCH] MdePkg/Include: Add DMTF MCTP definitions Date: Fri, 3 Mar 2023 10:58:29 +0800 Message-ID: <20230303025829.78-1-abner.chang@amd.com> X-Mailer: git-send-email 2.37.1.windows.1 MIME-Version: 1.0 Return-Path: Abner.Chang@amd.com X-Originating-IP: [10.180.168.240] X-ClientProxiedBy: SATLEXMB04.amd.com (10.181.40.145) To SATLEXMB04.amd.com (10.181.40.145) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DM6NAM11FT012:EE_|SA0PR12MB7478:EE_ X-MS-Office365-Filtering-Correlation-Id: 2fe5c3cb-7691-44f5-c21d-08db1b93372a X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: XyK5SExZD0DHV+fEnhqrjFiWPvcrqjo/zx5h2tF0z7+Pgs5CsrHyc1Zfyjv953J3AtbZb674zDTcQKyOavBDR+W58dKMC7yO9KcIf+ihc2XAWsUD+QfJroWNamJk9wE0iO6VhFQdLMki/6GIyY4p6xe29A6zCjxY0fmCdNzewuqrBbb9j5t5VvGuXVsGkmlOKkSA8HVMDoXFyDAFabGKpksmswKRpeRpb/tcTtQW4rQ5JiNqYm0NsiLLl+Gkv2aLAPOcrDlWL3OfJakF4QrCDldrkHAoLQpmwH9QxXd1+xGSnZJn/J/KEMYal16MUc5HEpcdhHmImYb1lwzwarNNh9XhMeYnhm8Q1y1Q/MqMQ2x1Y2wHSos6KSFPzUXOzsO6ImjFxw5Xn7ewd0uJQjO3uaeLsdUQdycgXkNlFVbbTF38faxFE7umTWrFJ/fdq8fV7JT8arZDZ4C2vPUA2LFmyLVij49YYQLTRjS5sQhlflfhJYL0BmS+zBbeopgmqLloPO4lFcIOH3lMVO0CYrhSbI0+acAMOK9GBC6AOFSSsB/cuS8W/5sqBC2qBGj35GNnjULLoeImhziT54QWRzkQoJ3tDQTjpR9uGKXZ1W6ThfSVcWtBP+sp32UNRULLySCOEodmAeNQsRYYsEdJiaGdueWlWPZjBgG+PgemNZ0NSFmYvNMaGplNhPrK+9BwN+dPqtRb3nRiUCbXTyEXoTVEGgWwm4fgJYZXePlnDoG6Pcs= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230025)(4636009)(376002)(136003)(39860400002)(396003)(346002)(451199018)(36840700001)(40470700004)(46966006)(70206006)(70586007)(4326008)(6916009)(8676002)(83380400001)(36860700001)(426003)(41300700001)(47076005)(82740400003)(336012)(2616005)(6666004)(36756003)(5660300002)(81166007)(356005)(316002)(82310400005)(54906003)(8936002)(26005)(478600001)(2906002)(7696005)(2876002)(1076003)(86362001)(186003)(16526019)(40480700001)(40460700003)(36900700001);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Mar 2023 02:58:50.1811 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 2fe5c3cb-7691-44f5-c21d-08db1b93372a X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[SATLEXMB04.amd.com] X-MS-Exchange-CrossTenant-AuthSource: DM6NAM11FT012.eop-nam11.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA0PR12MB7478 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain From: Abner Chang BZ #4355 This change adds definitions for DMTF MCTP base specification. Signed-off-by: Abner Chang Cc: Michael D Kinney Cc: Liming Gao Cc: Zhiguang Liu Cc: Nickle Wang Cc: Igor Kulchytskyy Cc: Isaac Oram Cc: Abdul Lateef Attar --- MdePkg/Include/IndustryStandard/Mctp.h | 113 +++++++++++++++++++++++++ 1 file changed, 113 insertions(+) create mode 100644 MdePkg/Include/IndustryStandard/Mctp.h diff --git a/MdePkg/Include/IndustryStandard/Mctp.h b/MdePkg/Include/Indust= ryStandard/Mctp.h new file mode 100644 index 00000000000..45fa63e0435 --- /dev/null +++ b/MdePkg/Include/IndustryStandard/Mctp.h @@ -0,0 +1,113 @@ +/** @file + + The definitions of DMTF Management Component Transport Protocol (MCTP) + Base Specification. + + Copyright (C) 2023 Advanced Micro Devices, Inc. All rights reserved.
+ SPDX-License-Identifier: BSD-2-Clause-Patent + + @par Revision Reference: + DMTF Management Component Transport Protocol (MCTP) Base Specification + Version 1.3.1 +**/ + +#ifndef MCTP_H_ +#define MCTP_H_ + +/// +/// Definitions of endpoint ID +/// +#define MCTP_NULL_DESTINATION_ENDPOINT_ID 0 +#define MCTP_NULL_SOURCE_ENDPOINT_ID 0 +#define MCTP_RESERVED_ENDPOINT_START_ID 1 +#define MCTP_RESERVED_ENDPOINT_END_ID 7 +#define MCTP_BROADCAST_ENDPOINT_ID 0xFF + +// Minimum transmission size is 64 bytes. +#define MCTP_BASELINE_MINIMUM_UNIT_TRANSMISSION_SIZE 0x40 + +/// +/// The 32-bit Header of MCTP packet. +/// +typedef union { + struct { + UINT8 Reserved : 4; ///< Reserved for future definitio= ns. + UINT8 HeaderVersion : 4; ///< The version of header. + UINT8 DestinationEndpointId : 8; ///< Destination endpoint Id (EID)= . + UINT8 SourceEndpointId : 8; ///< Source endpoint Id (EID) + UINT8 StartOfMessage : 1; ///< Indicates the first packet of= message. + UINT8 EndOfMessage : 1; ///< Indicates the last packet of = message. + UINT8 PacketSequence : 2; ///< Sequence number increments mo= dulo 4 on + ///< each packet. + UINT8 TagOwner : 1; ///< Tag owner identifies the mess= age was + ///< originated by the source EID = or + ///< destination EID. + UINT8 MessageTag : 3; ///< Check the MCTP Base specifica= tion for the + ///< usages. + } Bits; + UINT32 Header; +} MCTP_HEADER; + +/// +/// MCTP Control Commands +/// +#define MCTP_CONTROL_RESERVED 0x00 +#define MCTP_CONTROL_SET_ENDPOINT_ID 0x01 +#define MCTP_CONTROL_GET_ENDPOINT_ID 0x02 +#define MCTP_CONTROL_GET_ENDPOINT_UUID 0x03 +#define MCTP_CONTROL_GET_MCTP_VERSION_SUPPORT 0x04 +#define MCTP_CONTROL_GET_MESSAGE_TYPE_SUPPORT 0x05 +#define MCTP_CONTROL_GET_VENDOR_DEFINED_MESSAGE_SUPPORT 0x06 +#define MCTP_CONTROL_RESOLVE_ENDPOINT_ID 0x07 +#define MCTP_CONTROL_ALLOCATE_ENDPOINT_IDS 0x08 +#define MCTP_CONTROL_ROUTING_INFORMATION_UPDATE 0x09 +#define MCTP_CONTROL_GET_ROUTINE_TABLE_ENTRIES 0x0A +#define MCTP_CONTROL_PREPARE_FOR_ENDPOINT_DISCOVERY 0x0B +#define MCTP_CONTROL_ENDPOINT_DISCOVERY 0x0C +#define MCTP_CONTROL_DISCOVERY_NOTIFY 0x0D +#define MCTP_CONTROL_GET_NETWORK_ID 0x0E +#define MCTP_CONTROL_QUERY_HOP 0x0F +#define MCTP_CONTROL_RESOLVE_UUID 0x10 +#define MCTP_CONTROL_QUERY_RATE_LIMIT 0x11 +#define MCTP_CONTROL_REQUEST_TX_RATE_LIMIT 0x12 +#define MCTP_CONTROL_UPDATE_RATE_LIMIT 0x13 +#define MCTP_CONTROL_QUERY_SUPPORTED_INTERFACES 0x14 +#define MCTP_CONTROL_TRANSPORT_SPECIFIC_START 0xF0 +#define MCTP_CONTROL_TRANSPORT_SPECIFIC_END 0xFF + +/// +/// MCTP Control Message Completion Codes +/// +#define MCTP_CONTROL_COMPLETION_CODES_SUCCESS 0x00 +#define MCTP_CONTROL_COMPLETION_CODES_ERROR 0x01 +#define MCTP_CONTROL_COMPLETION_CODES_ERROR_INVALID_DATA 0x02 +#define MCTP_CONTROL_COMPLETION_CODES_ERROR_INVALID_LENGTH 0x03 +#define MCTP_CONTROL_COMPLETION_CODES_ERROR_NOT_READY 0x04 +#define MCTP_CONTROL_COMPLETION_CODES_ERROR_UNSUPPORTED_CMD 0x05 +#define MCTP_CONTROL_COMPLETION_CODES_COMMAND_SPECIFIC_START 0x80 +#define MCTP_CONTROL_COMPLETION_CODES_COMMAND_SPECIFIC_END 0xFF + +/// +/// MCTP Control Message Types +/// +#define MCTP_MESSAGE_TYPE_CONTROL 0x00 +#define MCTP_MESSAGE_TYPE_VENDOR_DEFINED_PCI 0x7E +#define MCTP_MESSAGE_TYPE_VENDOR_DEFINED_IANA 0x7F + +/// +/// MCTP Control Message Format +/// +typedef struct { + struct { + UINT8 IntegrityCheck : 1; ///< Message integrity check. + UINT8 MessageType : 7; ///< Message type. + UINT8 RequestBit : 1; ///< Request bit. + UINT8 DatagramBit : 1; ///< Datagram bit. + UINT8 Reserved : 1; ///< Reserved bit. + UINT8 InstanceId : 5; ///< Instance ID. + UINT8 CommandCode : 8; ///< Command code of request message. + UINT8 CompletionCode : 8; ///< Completion code in response message. + } Bits; + UINT32 BodyHeader; +} MCTP_CONTROL_MESSAGE; +#endif --=20 2.37.1.windows.1