From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from NAM10-MW2-obe.outbound.protection.outlook.com (NAM10-MW2-obe.outbound.protection.outlook.com [52.100.157.233]) by mx.groups.io with SMTP id smtpd.web10.18342.1677829264522531178 for ; Thu, 02 Mar 2023 23:41:04 -0800 Authentication-Results: mx.groups.io; dkim=pass header.i=@amd.com header.s=selector1 header.b=axmHDwX5; spf=permerror, err=parse error for token &{10 18 %{i}._ip.%{h}._ehlo.%{d}._spf.vali.email}: invalid domain name (domain: amd.com, ip: 52.100.157.233, mailfrom: abner.chang@amd.com) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ftnh4a7rR8EOo27uC7Zu4emFwyG0D6d+i+GUrWarPOE9se3nV8V5MSN4QgoFf39rYQMW1f/7/eaieILHgrPBABB/ThGaDLy/uK2vUA+TbFSuQhDIdZJjgZux2ReyeVzXRB9vaK7jgLFL8picufRKjeSTG4p+p4ZzTEEptypO6qvfnOnCGgnFqtsvvrp3c6Gvhsu5ugndeGSy0sE8rtAvMSz9BGtSbH1SCZ2kpa68bIStaD+Uoy1d4fgWPrfHUri8+XtdL6JtKImQErFHQQay/gaS0EGJXRUJefh3KWWOP8Aii+AN9y2U2CKsdmkLCDR8yKPrmCJoiyPAZDor84JsFg== 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=VxespLTM3gJz5p4Kvx6/IaDduo9WO4rlF5mSjpI3Tjs=; b=RiulUxsHeJsBkTe8Wm4Wd5YkqDhQxjVISMK1BQxZDAsbGeAb0ASNXCgm4DKNnjzGtxYOVlRKgsWvCQYD3cQxs2U951tf/30/NZR9itPvH8sriRqxmm1oxyILf481ezTk+be62gKLhwI+UTGXVitcHgeladhow5byS2buIbejH3K290TEQP6tZOVHg4mHrDAfQLneP4VwuOqFHzBpAyWmhKtVagDsQxwUobMDgeubmhDv/hs0WkKQQ55l3zrpzoKrHbHXoJEDjXDjpa+UTLv/I3v8Q8qbw+PkTGVdNETvx34ontjUQzOSCQ586reGnbimjcNX0bhXia09Me4cqvv2gA== 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=VxespLTM3gJz5p4Kvx6/IaDduo9WO4rlF5mSjpI3Tjs=; b=axmHDwX5QDTSpklvJo9y7T98Tdh/Qhi14syguqqG99TU97MRicEmbxfNbQbYfFyL7OKo9T73fIzd9bjIG3npjIXxlOpEdrBkALwQYDjcguyOAO05IGuHYs9kFx5JpX6mvZoB2rN5I1Cc8ooaMsH0iJW+9u2Uo8Rt5sc3y0NyC8Y= Received: from BN9PR03CA0153.namprd03.prod.outlook.com (2603:10b6:408:f4::8) by MN0PR12MB6126.namprd12.prod.outlook.com (2603:10b6:208:3c6::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6134.30; Fri, 3 Mar 2023 07:40:59 +0000 Received: from BN8NAM11FT088.eop-nam11.prod.protection.outlook.com (2603:10b6:408:f4:cafe::a8) by BN9PR03CA0153.outlook.office365.com (2603:10b6:408:f4::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6156.22 via Frontend Transport; Fri, 3 Mar 2023 07:40:58 +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 BN8NAM11FT088.mail.protection.outlook.com (10.13.177.81) 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 07:40:58 +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; Fri, 3 Mar 2023 01:40:53 -0600 From: "Chang, Abner" To: CC: Liming Gao , Isaac Oram , Nate DeSimone , Nickle Wang , Igor Kulchytskyy , "Abdul Lateef Attar" Subject: [edk2-platforms][PATCH 1/8] ManageabilityPkg: Add Readme file Date: Fri, 3 Mar 2023 15:40:28 +0800 Message-ID: <20230303074035.1067-2-abner.chang@amd.com> X-Mailer: git-send-email 2.37.1.windows.1 In-Reply-To: <20230303074035.1067-1-abner.chang@amd.com> References: <20230303074035.1067-1-abner.chang@amd.com> 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: BN8NAM11FT088:EE_|MN0PR12MB6126:EE_ X-MS-Office365-Filtering-Correlation-Id: 0aa45004-6335-43d5-8632-08db1bbaa166 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: =?utf-8?B?VXR1eFl3Z05JSTIwam14YVBrMWhKNy9EMVFsRk5WajlpQ0dEOE1QQ0pQWTNO?= =?utf-8?B?Q3VodENRdGlyWndyNXh3OGIwcUN3ZENadDk1aXo3TE9UQ0pheFlGT0lwaGI2?= =?utf-8?B?Tk5WS09CbWNLNE1XcldpWHFmUWJEdThFd0x4c2thZ0F3UjRzdHhEcWxvYWZV?= =?utf-8?B?U0NVKzVlQ293aVpxTlBPYWYzKzg4Wlk4dHRyclJ4RXJmU0kzYzczV1VIR055?= =?utf-8?B?TkhsK3lHdElzN1JQR1FhU1RCRzlqYTF4cjByNzFQMUJQL3ZWRnd4QXk0alJp?= =?utf-8?B?ckJMUm43RStWbjNHL0h1MkZSRG82SmUwelRHSnlGd1JMeW9IMTF1S09mb1NW?= =?utf-8?B?TnFRM3FjeFUrZ2tiODhZUEoyb3FrWXk1eFlaWkdEd0lpVFIvbER2LzJnVXpI?= =?utf-8?B?LzgzazNXWDhneGNnMHNncUJtZkNNS0FsVWlFeEdPSVhQT1BDR2tTM3BxeC90?= =?utf-8?B?ZVhyRFF0Um0xZzcrMmNHUDBXY2FhdU4vOGxFNm1TemxLNWFzdi9xVjViTEVN?= =?utf-8?B?WVo1WHl2a0hjUmgybE80WVpKWUlKQnB1MUNCRENkR1lGUDlFWEhlQlZqbC9H?= =?utf-8?B?dDZFMWQwWHFPMUh1dWt0ZEdSQ3dIZldZZmdUcjAvYUFqL2lEQWV1VnF3di81?= =?utf-8?B?bngzVitDMDEzZkUzcFQrbnRpOVVxanJXUFcwL1pNMUJPZ1pOanhJeG9INDFX?= =?utf-8?B?VkxycC8yeW5jMXkwTHU1VG44RzQ0bGY5eExNVVhGcXF6ODVNL1hPK3hNRUtZ?= =?utf-8?B?OEZER0xnU0UySkExYlpBdm1ubHhXVk9YQnNOL1FOOVpIQ0tNSndEcVowakM2?= =?utf-8?B?R2JxTk1aS2tMOXgxSGx5M0NUVlhQVVYrajFtUmlUN3dPSktkbTI3K1IvUzhR?= =?utf-8?B?Qlh1d0JaYjg1SUYrRnB0Z3pzdWhmT0xDdzZPalE0cFRJdGNhUGVIVmptR2JU?= =?utf-8?B?WnNNOXkzd0VwNGtVYXR1M0lhNSs1VG5hMjJGNkxVVlJuUTJhSHErZ2xSYWpo?= =?utf-8?B?SGlsV3l2b1FYVHRwWDVBRXlvYTQ5QklGek5rRzRlRTVieWc4cWtRMSt3b2tG?= =?utf-8?B?YkZuNVJXN1RRdnRVNGFldFFNd0d0NnFYemFWTXBNMDNKQTQ3VE9NMHJHWGVm?= =?utf-8?B?amU1eTFnNGw5d3g4cWU3azl2VFo0TlM4OTJzLzVVdnA3VlNHZDZ3cHJHblRV?= =?utf-8?B?QU1qREtRelVKcDlTb1JEZjdwNEtLc3k3a200MmRUbytkNHBaREFBOE9TYnVD?= =?utf-8?B?Zyt6UXJFVFVwbVZDdXVjVzd5a2dUYWlpN2hQM01mVGhIRFZsU3k4UEo4MCtG?= =?utf-8?B?WjY0Z0p0WXpGTCtwaXYvK243SFZPcmhBYkNBdXk1VUl4dGRGeC9OQnFZTWFp?= =?utf-8?B?NXU3dEN6bFFDeWVlTkFRenZlYkV0ZExxbkl1Q2N3YjVKUUVQUVFjdTU5Z2Zk?= =?utf-8?B?Vk52YTBwaCsxOEQvYWhzRzdvd2ZsZzFSc2p0VTQxQy8wVGw4ZVU4eFNqQ2xz?= =?utf-8?B?UU9ZcitLNEdabDdOQlk2MXlEN2NSQmZNVTlpTHhzK0lOUFRHK25UeEM1dEpG?= =?utf-8?B?bHIwZVVSTFgzSWVHS3N3eWVEZjJSd3VVWGF6cm04cTNUOVlUcUpXK2lGMjY4?= =?utf-8?B?NUtFdXNtcXFNZ0hiZFR0bzZQVlNzcEE9PQ==?= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:5;SRV:;IPV:CAL;SFV:SPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:OSPM;SFS:(13230025)(4636009)(396003)(346002)(376002)(39860400002)(136003)(451199018)(46966006)(40470700004)(36840700001)(356005)(36860700001)(81166007)(86362001)(8936002)(41300700001)(19273905006)(40140700001)(7696005)(2876002)(8676002)(82740400003)(30864003)(2906002)(40480700001)(36756003)(4326008)(5660300002)(82310400005)(40460700003)(70206006)(70586007)(47076005)(336012)(1076003)(2616005)(16526019)(186003)(26005)(426003)(83380400001)(316002)(54906003)(6666004)(478600001)(6916009)(89820200002)(334744004)(36900700001);DIR:OUT;SFP:1501; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Mar 2023 07:40:58.8150 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 0aa45004-6335-43d5-8632-08db1bbaa166 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: BN8NAM11FT088.eop-nam11.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN0PR12MB6126 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable From: Abner Chang Add Readme file of edk2 platform ManageabilityPkg. Signed-off-by: Abner Chang Cc: Liming Gao Cc: Isaac Oram Cc: Nate DeSimone Cc: Nickle Wang Cc: Igor Kulchytskyy Cc: Abdul Lateef Attar --- Features/ManageabilityPkg/Readme.md | 177 +++++ .../Media/ManageabilityDriverStack.svg | 752 ++++++++++++++++++ 2 files changed, 929 insertions(+) create mode 100644 Features/ManageabilityPkg/Readme.md create mode 100644 Features/ManageabilityPkg/Documents/Media/Manageability= DriverStack.svg diff --git a/Features/ManageabilityPkg/Readme.md b/Features/ManageabilityPk= g/Readme.md new file mode 100644 index 0000000000..6743ab4c76 --- /dev/null +++ b/Features/ManageabilityPkg/Readme.md @@ -0,0 +1,177 @@ +# EDK2 Manageability Package + +edk2 ManageabilityPkg is introduced to provide edk2 drivers and +libraries for industry platform management standards, such as PLDM (Platfo= rm +Level Data Model), MCTP (Management Component Transfer Protocol), IPMI +(Intelligent Platform Management Interface) and others. The framework of +ManageabilityPkg is designed to flexibly support the transport interfaces = for above +industry standards, the transport interfaces such as KCS or I2C for IPMI, = PCI VDM +(Vendor Defined Message), I2C or KCS for MCTP, or the OEM proprietary tran= sports. + +Below figure shows the driver stacks which are abstracted to support dispa= rate +transports for specifications of platform management. +![Manageability Package Driver Stack](https://github.com/changab/edk2-plat= forms/blob/Manageability_IPMI_upstream/Features/ManageabilityPkg/Documents/= Media/ManageabilityDriverStack.svg) + +## Manageability Transport edk2 Driver Stack +edk2 manageability transport library is designed to incorporated with disp= arate +manageability protocols. In order to flexibly facilitating the transport +functionalities, below functions must be provided by manageability transpo= rt +library to compliant with the framework of ManageabilityPkg design. + +* ### ***AcquireTransportSession()*** + edk2 manageability protocol driver invokes this function to acquire th= e + transport session to transmit manageability packet. The implementation + could reset the transport interface, initial the transport interface + internal structure and the [Manageability Transport Function Structure= ](#manageability-transport-function-structure). + The [Transport Token](#transfer-token) is returned to the caller for f= urther manageability packet + transmit and receive. + + +* ### ***GetTransportCapability()*** + edk2 Manageability protocol driver invokes this function to get the ca= pabilities + of transport interface. The implementation of manageability transport = library + can optionally support advanced features such as multi-sessions on tra= nsport + interface or asynchronous transfer. + +* ### ***ReleaseTransportSession()*** + edk2 manageability protocol driver invokes this function to release th= e transport + session. + + ### **Manageability Transport Function Structure** + + Below is the function structure initiated by the manageability transport= library and + returned in the transport token when caller invokes [AcquireTransportSes= sion](#acquiretransportsession) + function. + + + ***MANAGEABILITY_TRANSPORT_FUNCTION*** is declared as an union to acco= mmodate + different versions of transport function set. This allows the function= added to + support the new functionalities in the future and also keep the backwa= rd compatibility. + Developers can not modify the previous version of function structure, = instead + developers can create a new function structure with the increased vers= ion number + that includes the previous version of function set and new added funct= ions. + +``` + typedef union { + MANAGEABILITY_TRANSPORT_FUNCTION_V1_0 *Version1_0; + } MANAGEABILITY_TRANSPORT_FUNCTION; + + struct _MANAGEABILITY_TRANSPORT_FUNCTION_V1_0 { + MANAGEABILITY_TRANSPORT_INIT TransportInit; + MANAGEABILITY_TRANSPORT_STATUS TransportStatus; + MANAGEABILITY_TRANSPORT_RESET TransportReset; + MANAGEABILITY_TRANSPORT_TRANSMIT_RECEIVE TransportTransmitReceive; + }; +``` +* ***TransportInit()*** + + Manageability protocol driver invokes this function to initial the tra= nsport + interface with the optional hardware configuration of the transport in= terface. + Whether the transport interface requires initialization or not depends= on the + transport interface characteristics. The hardware information is optio= nal passed to + this function if the manageability protocol driver would like to use t= he different + hardware configuration of transport interface. For example, the differ= ent I/O + address of KCS interface, or the memory mapped I/O KCS interface. The = structure + format of hardware information is created according to the hardware de= sign of + transport interface. + +* ***TransportStatus()*** + + Manageability protocol driver invokes this function to get the status = of transport + interface. How does this function report the status depends on the tra= nsport + interface characteristics and the implementation of this function. + +* ***TransportReset()*** + + Manageability protocol driver can invoke this function to reset and re= cover the + transport interface in case the error status is reported by the transp= ort + interface. Whether the transport interface can be reset or not depends= on the + transport interface characteristics and the implementation of this fun= ction. + +* ***TransportTransmitReceive()*** + Manageability protocol driver invokes this function to transmit and/or= receive the + packet. Caller has to setup the [Transfer Token](#transfer-token) when= invoke to + this function. + + ### **Transfer Token** + +``` + struct _MANAGEABILITY_TRANSFER_TOKEN { + EFI_EVENT ReceiveEvent; + MANAGEABILITY_TRANSPORT_HEADER TransmitHeader; + MANAGEABILITY_TRANSPORT_TRAILER TransmitTrailer; + MANAGEABILITY_TRANSMIT_PACKAGE TransmitPackage; + MANAGEABILITY_RECEIVE_PACKAGE ReceivePackage; + EFI_STATUS TransferStatus; + MANAGEABILITY_TRANSPORT_ADDITIONAL_STATUS TransportAdditionalStatus= ; +}; +``` + +* ***ReceiveEvent*** + + The optional EFI event is created to wait for the signal of response d= ata + readiness. The parameter is valid only if the transport interface supp= orts + asynchronous transfer. MANAGEABILITY_TRANSPORT_CAPABILITY_ASYNCHRONOUS= _TRANSFER bit + must be set in the returned *TransportCapability* parameter in + [GetTransportCapability()](#gettransportcapability) to indicate the + transport interface is capable for asynchronous transfer. + +* ***TransmitHeader*** + + The transmit header is different according to the disparate transport = interfaces + for the manageability protocol. For example, the transmit header is di= fferent when + MCTP packet is transmitted over I2C and KCS. Having this header abstra= cted from + manageability transport library to make the transport implementation a= gnostic to the + manageability protocol specification. + +* ***TransmitTrailer*** + + The transmit trailer may be different according to the disparate trans= port + interface for the manageability protocol. Having this header abstracte= d from + manageability transport library to make the transport implementation a= gnostic to the + manageability protocol specification. + +* ***TransmitPackage*** + + The buffer of packet to transmit, this could be a value of NULL if the= manageability + protocol is going to harvest the datagram sent by the management entit= y. + +* ***ReceivePackage*** + + The receive buffer, this could be a value of NULL if the manageability + protocol is going to send the request to management endpoint which has= no response + required. + +* ***TransferStatus*** + + In order to support both synchronous and asynchronous transfer with a = unified + function, ***TransportTransmitReceive()*** is designed as a + non return value function. Instead, the status of transmit/receive is = returned + in the transfer token. When the asynchronous transfer, manageability t= ransport + library has to set the status in transfer token before signal ***Recei= veEvent***. + +* ***TransportAdditionalStatus*** + + The additional transport status after the transfer. + +## Industry Standard Manageability Protocol edk2 Driver Stack +The edk2 implementation of industry manageability standards such as IpmiPr= otocol and +MctpProtocol abstract the command layer and provide the unified protocol i= nterface to +build up the manageability packet for subordinate specifications. edk2 man= ageability +protocol driver is linked with desired manageability transport library bas= e on the +platform design. + +## Transport Implementation + + The manageability transport library could have the implementation in li= brary or + invoke the existing edk2 protocol which is defined in UEFI or PI specif= ications. + This is the implementation decision made by the developer when introduc= e a new + manageability transport library. + +## Build the Manageability Package +In order to use the modules provided by ManageabilityPkg, **PACKAGES_PATH*= * must +contains the path to point to [edk2-platform Features](https://github.com/= tianocore/edk2-platforms/tree/master/Features): + +``` +$ export PACKAGES_PATH=3D$PWD/edk2:$PWD/edk2-platforms:$PWD/edk2-platforms= /Features +``` diff --git a/Features/ManageabilityPkg/Documents/Media/ManageabilityDriverS= tack.svg b/Features/ManageabilityPkg/Documents/Media/ManageabilityDriverSta= ck.svg new file mode 100644 index 0000000000..ce6aba60bc --- /dev/null +++ b/Features/ManageabilityPkg/Documents/Media/ManageabilityDriverStack.sv= g @@ -0,0 +1,752 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + KCS Manageability Transport = Library Insta= nce + + + + + + + + I2C Manageability Transport = Library Insta= nce + + + + + + + + I3C Manageability Transport Library I= nstance + + + + + + + + USB Manageability Transport Library I= nstance + + + + + + + + PCI VDM <= tspan class=3D"TextPosition" x=3D"17165" y=3D"11472">Manageability Transport = Libr= ary Instance + + + + + + + + Others: MMBI, Block transfer,= RMII= , etc. + + + + + + + + KCS Protocol Driver + + + + + + + + SMBus Protocol = Driver + + + + + + + + PCI Protocol Driver + + + + + + + + USB Protocol Driver + + + + + + + + I3C Protocol = Driver + + + + + + + + + + + + + + PLDM Protocol + + + + + + + + MCTP Protocol + + + + + + + Transport <= tspan class=3D"TextPosition" x=3D"9728" y=3D"10248">Library + + + + + + + + IPMI Protocol + + + + + + + Transport = Library + + + + + + + + PLDM BCC<= /text> + + + + + + + + PLDM SMBIOS + + + + + + + + PLDM FRU= + + + + + + + + PLDM PMC= + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + PLDM + + + + + + + + NVMe Management + + + + + + + + + + + + + + + + + + + + + + IPMI NetFn + + + + + + + + + + + + + + + Redfish HI NetFn + + + + + + + + + + + + + + + + + + + + + + CXL Device CCI + + + + + + + + + + + + + + + + + + + + + + Redfish Credential NetFn + + + + + + + + + + + + + + + + + + + + + + + + + Platform = Replaceable = Library + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The gray box is the optio= nal Implementation that supports:Multiple transfe= r tokens<= tspan id=3D"id83.bp" class=3D"BulletPlaceholder"/>Asynchronous Transfer= + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + KCS Manageability Transport = Protocol Driv= er + + + + + + + + I2C Manageability Transport = Protocol Driv= er + + + + + + + + PCI VDM <= tspan class=3D"TextPosition" x=3D"23343" y=3D"10670">Manageability Transport = Prot= ocol Driver + + + + + + + + USB Manageability Transport Protocol = Driver + + + + + + + + I3C Manageability Transport Protocol = Driver + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Implementation can call to= the protocol + + + + + + Implementation can call to= the protocol + + + + + + Implementation can call t= o the protocol + + + + + + Implementation can call t= o the protocol + + + + + + Implementation can call t= o the protocol + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Industry Standard Manageabi= lity P= rotocol Driver Stack + + + + + + Manageability Transport Driver = Stack + + + + + + Transport = Implementation + + + + + + + + + + + + + + + \ No newline at end of file --=20 2.37.1.windows.1