From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail05.groups.io (mail05.groups.io [45.79.224.7]) by spool.mail.gandi.net (Postfix) with ESMTPS id 5B4F7AC162F for ; Tue, 30 Apr 2024 14:06:05 +0000 (UTC) DKIM-Signature: a=rsa-sha256; bh=TnxseNYUDKnDA5TbFTUZsnDN82UizVKCEOhR13fBj54=; c=relaxed/simple; d=groups.io; h=Received-SPF:From:To:CC:Subject:Date:Message-ID:In-Reply-To:References:MIME-Version:Precedence:List-Subscribe:List-Help:Sender:List-Id:Mailing-List:Delivered-To:Resent-Date:Resent-From:Reply-To:List-Unsubscribe-Post:List-Unsubscribe:Content-Transfer-Encoding:Content-Type; s=20240206; t=1714485964; v=1; b=j1ADO/dwIFyG2K3Fb/p8LJBmIfrpgxOt7aaoaGUl5nFCsrO0DLECBOAIVBvB/PRTs3jNo/fz kQF38UvfXbX9Y8FxHRohph7lIS5qV5tju62qajm4dU63lJLXa+yLaNRSSTYPWEyI6rVsXTNMfpa FyBd2TqiDHD0zU5NGz0PlMpa1YNTQ5qQL/ycUODQYBXkONVhsGipY7ZvkTJItTS1eqSc4elztLy LekG5nSTd2+Mp34dbiIw4rAP9SG6Jl/t+zR+FC6MVzl728SgQUiOeDbqSOfX86p3sqDXc8utmkh 9WUevd1LCqeh0aLxWDKTqFXaughd3UMCDMqlFhx7OZbcw== X-Received: by 127.0.0.2 with SMTP id NW8vYY7687511xTnfyXHi4LY; Tue, 30 Apr 2024 07:06:04 -0700 X-Received: from NAM12-MW2-obe.outbound.protection.outlook.com (NAM12-MW2-obe.outbound.protection.outlook.com [40.107.244.88]) by mx.groups.io with SMTP id smtpd.web10.16504.1714485962674596247 for ; Tue, 30 Apr 2024 07:06:02 -0700 X-Received: from CH0PR04CA0018.namprd04.prod.outlook.com (2603:10b6:610:76::23) by LV2PR12MB5846.namprd12.prod.outlook.com (2603:10b6:408:175::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7519.35; Tue, 30 Apr 2024 14:05:59 +0000 X-Received: from CH2PEPF00000099.namprd02.prod.outlook.com (2603:10b6:610:76:cafe::f9) by CH0PR04CA0018.outlook.office365.com (2603:10b6:610:76::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7519.36 via Frontend Transport; Tue, 30 Apr 2024 14:05: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 X-Received: from SATLEXMB04.amd.com (165.204.84.17) by CH2PEPF00000099.mail.protection.outlook.com (10.167.244.20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.7544.18 via Frontend Transport; Tue, 30 Apr 2024 14:05:58 +0000 X-Received: from AUS-BIOSDEV-68.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.2507.35; Tue, 30 Apr 2024 09:05:56 -0500 From: "Chesley, Brit via groups.io" To: CC: Liming Gao , Ray Ni , "Abner Chang" , Abdul Lateef Attar Subject: [edk2-devel] [PATCH 3/5] MdeModulePkg:BaseSpiHcPlatformLib: Adding NULL lib instance Date: Tue, 30 Apr 2024 09:05:34 -0500 Message-ID: <20240430140536.4252-4-brit.chesley@amd.com> In-Reply-To: <20240430140536.4252-1-brit.chesley@amd.com> References: <20240430140536.4252-1-brit.chesley@amd.com> MIME-Version: 1.0 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: CH2PEPF00000099:EE_|LV2PR12MB5846:EE_ X-MS-Office365-Filtering-Correlation-Id: 5077f1e3-3c7d-445b-2327-08dc691ea941 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?TqpMOhIqllaFMdpc/sr0ZTULfFyxXM/X4vmajEE3c5tdREQBeBX+23VaWJ5O?= =?us-ascii?Q?rNz85fgp9SjpwQiwMHiYSOcd/LTBldy40rArs9okwsmzFIkqzpXUAi7K3f7O?= =?us-ascii?Q?HPpCHQebYYG2ozXyitiWgqKCqqUg+r+izUaHKP+Mx2ZYMKREtutytEdIbWtT?= =?us-ascii?Q?aO6Dvu31/+fFH8f/UO1yvdhpmeiLkt+VfGE0dXCEBlayexQdVIvvtrY6PuBf?= =?us-ascii?Q?g7rI6NmAw8jK1hgVas2gbb2IHVDlfJti8BQk0U4YCydbTV5t80xUzTCSl78F?= =?us-ascii?Q?sBKeBl4Ch6N/RZOIj7vqJ4meOGvHECLZtR/iBe1RmAcmlUN2kwiwq+P2gSmh?= =?us-ascii?Q?1Cy3L8Dt6GvoqvYivn+SJzYNY9qMlxxK1x4eqFeiXEhOCtD7LaFg6JjWWuns?= =?us-ascii?Q?JaMgGeIxUt4z2QVCy6/2KxzlWsK4PR+hLBs0RxwaHivRk/ICLiwY6uZjdbP/?= =?us-ascii?Q?8jvXFXE5F7YyD3NExTdPNQ8iHARYNmE9Jz5INoOJhSnFq7HjZ6oCm9o0Mljz?= =?us-ascii?Q?gOEQOdzM8yM80xNgibYcJmm0I5xy4AMZGmgVtnRlWCV42OFjHeTg7BYd1L2h?= =?us-ascii?Q?hhAyJlcOv/jcQPQjzINusyJvyOJyzFRBmBCxbnO7OpnX9GpuAaStzrBTbtSe?= =?us-ascii?Q?42npl2qivi6rNIGBMahvmGMjsJ0N8JxBWZyC4YDj0iv40mcY5nM9BMvFLd/7?= =?us-ascii?Q?ilnuXpKydMjsXpfKTyzpf2EVsut4INKo9Es2NU3LLXYFcZZ3gYiXeuOXD2Kr?= =?us-ascii?Q?CO6vuEd6sNl5QAn9WtYMRWzDCNe6cvWLqkwzZaTRum6D2DUHHJsNRm4K/qsP?= =?us-ascii?Q?nCYyMrowz8p3XEpLa1tnl1X+chD/Cqug8hRR70RyF8gN+FWsPV3CA4WLAT2L?= =?us-ascii?Q?DcaphcYLlRWch27DrrGT8MGII/QKSzQA5flJyKqL8rO2F3H56aeUdkLIycAf?= =?us-ascii?Q?xQ6Fx2HtzQuyfZaJlbc70N56L5wbmmv6o6NHj4078pHL6yrn3Ffx/guY4pjS?= =?us-ascii?Q?wpKqn/wFPQdeO9jx0YMmI/WlZBmRXMfgk5eJvNwQozf0SU4E93Y1tXyq+msY?= =?us-ascii?Q?/FiZlVnFRBs1YAAcwJj2N44ZJWonjC6AEJIqAz4qhuTpUDb0iIeD0JHNCTl9?= =?us-ascii?Q?233lLRUMbbuHG+ckfHvD4Cbz2rWcER43ag/IIN34R2GSwGjpY+m+/6P8/kK/?= =?us-ascii?Q?p17GHYeKJymSmi70+3Lmhau64lVOAVCTk3b1Oyuj5ZbuWLy3Q1itcNwhUs/y?= =?us-ascii?Q?0y5sXug9hz/5Yl8YoLjwnSK7fICLlEnWOoVedNpadR9S9BuoUEerNUi7Ttrl?= =?us-ascii?Q?P75azTx1YlS+7PNKDG3KOgpgoYWLMd2RclIBYSeBDDJ7opllV6XeN/OaTS7X?= =?us-ascii?Q?lpv5TnmPxPBwK7ZO7FB/C0Qq4Bup?= X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 30 Apr 2024 14:05:58.8696 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 5077f1e3-3c7d-445b-2327-08dc691ea941 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: CH2PEPF00000099.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV2PR12MB5846 Precedence: Bulk List-Subscribe: List-Help: Sender: devel@edk2.groups.io List-Id: Mailing-List: list devel@edk2.groups.io; contact devel+owner@edk2.groups.io Resent-Date: Tue, 30 Apr 2024 07:06:03 -0700 Resent-From: brit.chesley@amd.com Reply-To: devel@edk2.groups.io,brit.chesley@amd.com List-Unsubscribe-Post: List-Unsubscribe=One-Click List-Unsubscribe: X-Gm-Message-State: KGHfAg7V6jkyDd1i5b6F36K9x7686176AA= Content-Transfer-Encoding: quoted-printable Content-Type: text/plain X-GND-Status: LEGIT Authentication-Results: spool.mail.gandi.net; dkim=pass header.d=groups.io header.s=20240206 header.b="j1ADO/dw"; dmarc=pass (policy=none) header.from=groups.io; spf=pass (spool.mail.gandi.net: domain of bounce@groups.io designates 45.79.224.7 as permitted sender) smtp.mailfrom=bounce@groups.io From: Brit Chesley Adding NULL SpiHcPlatformLib instance. This library is responsible for handling the low level details of the SPI host controller. Since this is platform specific this library will be dependent on OEM SPI implementation. The SPI host controller layer will utilize this library for SPI bus transactions. Bugzilla #4753 Cc: Liming Gao Cc: Ray Ni Cc: Abner Chang Cc: Abdul Lateef Attar Signed-off-by: Brit Chesley --- MdeModulePkg/MdeModulePkg.dec | 5 + MdeModulePkg/MdeModulePkg.dsc | 1 + .../BaseSpiHcPlatformLibNull.inf | 35 +++++ .../Include/Library/SpiHcPlatformLib.h | 148 ++++++++++++++++++ .../BaseSpiHcPlatformLibNull.c | 145 +++++++++++++++++ .../BaseSpiHcPlatformLibNull.uni | 11 ++ 6 files changed, 345 insertions(+) create mode 100644 MdeModulePkg/Library/BaseSpiHcPlatformLibNull/BaseSpiHc= PlatformLibNull.inf create mode 100644 MdeModulePkg/Include/Library/SpiHcPlatformLib.h create mode 100644 MdeModulePkg/Library/BaseSpiHcPlatformLibNull/BaseSpiHc= PlatformLibNull.c create mode 100644 MdeModulePkg/Library/BaseSpiHcPlatformLibNull/BaseSpiHc= PlatformLibNull.uni diff --git a/MdeModulePkg/MdeModulePkg.dec b/MdeModulePkg/MdeModulePkg.dec index 3a239a1687ea..98e6b385cd91 100644 --- a/MdeModulePkg/MdeModulePkg.dec +++ b/MdeModulePkg/MdeModulePkg.dec @@ -169,6 +169,11 @@ [LibraryClasses] # ImagePropertiesRecordLib|Include/Library/ImagePropertiesRecordLib.h =20 + ## @libraryclass Platform SPI Host Controller library which provides = low-level + # control over the SPI hardware + # + SpiHcPlatformLib|Include/Library/SpiHcPlatformLib.h + [Guids] ## MdeModule package token space guid # Include/Guid/MdeModulePkgTokenSpace.h diff --git a/MdeModulePkg/MdeModulePkg.dsc b/MdeModulePkg/MdeModulePkg.dsc index 33d6f4a1f6a6..9f4178473360 100644 --- a/MdeModulePkg/MdeModulePkg.dsc +++ b/MdeModulePkg/MdeModulePkg.dsc @@ -107,6 +107,7 @@ [LibraryClasses] MmUnblockMemoryLib|MdePkg/Library/MmUnblockMemoryLib/MmUnblockMemoryLibN= ull.inf VariableFlashInfoLib|MdeModulePkg/Library/BaseVariableFlashInfoLib/BaseV= ariableFlashInfoLib.inf IpmiCommandLib|MdeModulePkg/Library/BaseIpmiCommandLibNull/BaseIpmiComma= ndLibNull.inf + SpiHcPlatformLib|MdeModulePkg/Library/BaseSpiHcPlatformLibNull/BaseSpiHc= PlatformLibNull.inf =20 [LibraryClasses.EBC.PEIM] IoLib|MdePkg/Library/PeiIoLibCpuIo/PeiIoLibCpuIo.inf diff --git a/MdeModulePkg/Library/BaseSpiHcPlatformLibNull/BaseSpiHcPlatfor= mLibNull.inf b/MdeModulePkg/Library/BaseSpiHcPlatformLibNull/BaseSpiHcPlatf= ormLibNull.inf new file mode 100644 index 000000000000..96c32dc39720 --- /dev/null +++ b/MdeModulePkg/Library/BaseSpiHcPlatformLibNull/BaseSpiHcPlatformLibNul= l.inf @@ -0,0 +1,35 @@ + +#/** @file +# +# NULL library for platform SPI Host controller, which should be provided +# by the OEM. +# +# Copyright (C) 2024 Advanced Micro Devices, Inc. All rights reserved. +# +# SPDX-License-Identifier: BSD-2-Clause-Patent +#**/ +[Defines] + INF_VERSION =3D 1.27 + BASE_NAME =3D BaseSpiHcPlatformLibNull + FILE_GUID =3D 3C230948-6DF5-4802-8177-967A190579CF + MODULE_TYPE =3D BASE + VERSION_STRING =3D 0.1 + PI_SPECIFICATION_VERSION =3D 0x0001000A + LIBRARY_CLASS =3D SpiHcPlatformLib + +[Packages] + MdePkg/MdePkg.dec + MdeModulePkg/MdeModulePkg.dec + +[LibraryClasses] + DevicePathLib + UefiLib + +[Sources] + BaseSpiHcPlatformLibNull.c + +[Depex] + TRUE + +[UserExtensions.TianoCore."ExtraFiles"] + BaseSpiHcPlatformLibNull.uni diff --git a/MdeModulePkg/Include/Library/SpiHcPlatformLib.h b/MdeModulePkg= /Include/Library/SpiHcPlatformLib.h new file mode 100644 index 000000000000..c68f7455372c --- /dev/null +++ b/MdeModulePkg/Include/Library/SpiHcPlatformLib.h @@ -0,0 +1,148 @@ +/** @file + + Function declarations for SpiHcPlatformLib + + Copyright (C) 2024 Advanced Micro Devices, Inc. All rights reserved.
+ SPDX-License-Identifier: BSD-2-Clause-Patent +**/ + +#ifndef PLATFORM_SPI_HC_H_ +#define PLATFORM_SPI_HC_H_ + +#include +#include +#include +#include +#include + +/** + This function reports the details of the SPI Host Controller to the SpiH= c driver. + + @param[out] Attributes The suported attributes of the S= PI host controller + @param[out] FrameSizeSupportMask The suported FrameSizeSupportMas= k of the SPI host controller + @param[out] MaximumTransferBytes The suported MaximumTransferByte= s of the SPI host controller + + @retval EFI_SUCCESS SPI_HOST_CONTROLLER_INSTANCE was allocat= ed properly + @retval EFI_OUT_OF_RESOURCES The SPI_HOST_CONTROLLER_INSTANCE could n= ot be allocated +*/ +EFI_STATUS +EFIAPI +GetPlatformSpiHcDetails ( + OUT UINT32 *Attributes, + OUT UINT32 *FrameSizeSupportMask, + OUT UINT32 *MaximumTransferBytes + ); + +/** + This function reports the device path of SPI host controller. This is ne= eded in order for the SpiBus + to match the correct SPI_BUS to the SPI host controller + + @param[out] DevicePath The device path for this SPI HC is returned in th= is variable + + @retval EFI_SUCCESS +*/ +EFI_STATUS +EFIAPI +GetSpiHcDevicePath ( + OUT EFI_DEVICE_PATH_PROTOCOL **DevicePath + ); + +/** + This is the platform specific Spi Chip select function. + Assert or deassert the SPI chip select. + + This routine is called at TPL_NOTIFY. + Update the value of the chip select line for a SPI peripheral. The SPI b= us + layer calls this routine either in the board layer or in the SPI control= ler + to manipulate the chip select pin at the start and end of a SPI transact= ion. + + @param[in] This Pointer to an EFI_SPI_HC_PROTOCOL structure. + @param[in] SpiPeripheral The address of an EFI_SPI_PERIPHERAL data stru= cture + describing the SPI peripheral whose chip selec= t pin + is to be manipulated. The routine may access t= he + ChipSelectParameter field to gain sufficient + context to complete the operati on. + @param[in] PinValue The value to be applied to the chip select lin= e of + the SPI peripheral. + + @retval EFI_SUCCESS The chip select was set as requested + @retval EFI_NOT_READY Support for the chip select is not proper= ly + initialized + @retval EFI_INVALID_PARAMETER The ChipSeLect value or its contents are + invalid + +**/ +EFI_STATUS +EFIAPI +PlatformSpiHcChipSelect ( + IN CONST EFI_SPI_HC_PROTOCOL *This, + IN CONST EFI_SPI_PERIPHERAL *SpiPeripheral, + IN BOOLEAN PinValue + ); + +/** + This function is the platform specific SPI clock function. + Set up the clock generator to produce the correct clock frequency, phase= and + polarity for a SPI chip. + + This routine is called at TPL_NOTIFY. + This routine updates the clock generator to generate the correct frequen= cy + and polarity for the SPI clock. + + @param[in] This Pointer to an EFI_SPI_HC_PROTOCOL structure. + @param[in] SpiPeripheral Pointer to a EFI_SPI_PERIPHERAL data structure= from + which the routine can access the ClockParamete= r, + ClockPhase and ClockPolarity fields. The routi= ne + also has access to the names for the SPI bus a= nd + chip which can be used during debugging. + @param[in] ClockHz Pointer to the requested clock frequency. The = SPI + host controller will choose a supported clock + frequency which is less then or equal to this + value. Specify zero to turn the clock generato= r + off. The actual clock frequency supported by t= he + SPI host controller will be returned. + + @retval EFI_SUCCESS The clock was set up successfully + @retval EFI_UNSUPPORTED The SPI controller was not able to support the + frequency requested by ClockHz + +**/ +EFI_STATUS +EFIAPI +PlatformSpiHcClock ( + IN CONST EFI_SPI_HC_PROTOCOL *This, + IN CONST EFI_SPI_PERIPHERAL *SpiPeripheral, + IN UINT32 *ClockHz + ); + +/** + This function is the platform specific SPI transaction function + Perform the SPI transaction on the SPI peripheral using the SPI host + controller. + + This routine is called at TPL_NOTIFY. + This routine synchronously returns EFI_SUCCESS indicating that the + asynchronous SPI transaction was started. The routine then waits for + completion of the SPI transaction prior to returning the final transacti= on + status. + + @param[in] This Pointer to an EFI_SPI_HC_PROTOCOL structure. + @param[in] BusTransaction Pointer to a EFI_SPI_BUS_ TRANSACTION contain= ing + the description of the SPI transaction to per= form. + + @retval EFI_SUCCESS The transaction completed successfully + @retval EFI_BAD_BUFFER_SIZE The BusTransaction->WriteBytes value is inv= alid, + or the BusTransaction->ReadinBytes value is + invalid + @retval EFI_UNSUPPORTED The BusTransaction-> Transaction Type is + unsupported + +**/ +EFI_STATUS +EFIAPI +PlatformSpiHcTransaction ( + IN CONST EFI_SPI_HC_PROTOCOL *This, + IN EFI_SPI_BUS_TRANSACTION *BusTransaction + ); + +#endif // PLATFORM_SPI_HC_SMM_PROTOCOL_H_ diff --git a/MdeModulePkg/Library/BaseSpiHcPlatformLibNull/BaseSpiHcPlatfor= mLibNull.c b/MdeModulePkg/Library/BaseSpiHcPlatformLibNull/BaseSpiHcPlatfor= mLibNull.c new file mode 100644 index 000000000000..40ade57c9bb4 --- /dev/null +++ b/MdeModulePkg/Library/BaseSpiHcPlatformLibNull/BaseSpiHcPlatformLibNul= l.c @@ -0,0 +1,145 @@ +/** @file + + Null implementation of SpiHcPlatformLib + + Copyright (C) 2024 Advanced Micro Devices, Inc. All rights reserved.
+ SPDX-License-Identifier: BSD-2-Clause-Patent + +**/ +#include +#include +#include +#include + +/** + This function reports the details of the SPI Host Controller to the SpiH= c driver. + + @param[out] Attributes The suported attributes of the S= PI host controller + @param[out] FrameSizeSupportMask The suported FrameSizeSupportMas= k of the SPI host controller + @param[out] MaximumTransferBytes The suported MaximumTransferByte= s of the SPI host controller + + @retval EFI_UNSUPPORTED +*/ +EFI_STATUS +EFIAPI +GetPlatformSpiHcDetails ( + OUT UINT32 *Attributes, + OUT UINT32 *FrameSizeSupportMask, + OUT UINT32 *MaximumTransferBytes + ) +{ + return EFI_UNSUPPORTED; +} + +/** + This function reports the device path of SPI host controller. This is ne= eded in order for the SpiBus + to match the correct SPI_BUS to the SPI host controller + + @param[out] DevicePath The device path for this SPI HC is returned in th= is variable + + @retval EFI_UNSUPPORTED +*/ +EFI_STATUS +EFIAPI +GetSpiHcDevicePath ( + OUT EFI_DEVICE_PATH_PROTOCOL **DevicePath + ) +{ + return EFI_UNSUPPORTED; +} + +/** + This is the platform specific Spi Chip select function. + Assert or deassert the SPI chip select. + + This routine is called at TPL_NOTIFY. + Update the value of the chip select line for a SPI peripheral. The SPI b= us + layer calls this routine either in the board layer or in the SPI control= ler + to manipulate the chip select pin at the start and end of a SPI transact= ion. + + @param[in] This Pointer to an EFI_SPI_HC_PROTOCOL structure. + @param[in] SpiPeripheral The address of an EFI_SPI_PERIPHERAL data stru= cture + describing the SPI peripheral whose chip selec= t pin + is to be manipulated. The routine may access t= he + ChipSelectParameter field to gain sufficient + context to complete the operati on. + @param[in] PinValue The value to be applied to the chip select lin= e of + the SPI peripheral. + + @retval EFI_UNSUPPORTED + +**/ +EFI_STATUS +EFIAPI +PlatformSpiHcChipSelect ( + IN CONST EFI_SPI_HC_PROTOCOL *This, + IN CONST EFI_SPI_PERIPHERAL *SpiPeripheral, + IN BOOLEAN PinValue + ) +{ + return EFI_UNSUPPORTED; +} + +/** + This function is the platform specific SPI clock function. + Set up the clock generator to produce the correct clock frequency, phase= and + polarity for a SPI chip. + + This routine is called at TPL_NOTIFY. + This routine updates the clock generator to generate the correct frequen= cy + and polarity for the SPI clock. + + @param[in] This Pointer to an EFI_SPI_HC_PROTOCOL structure. + @param[in] SpiPeripheral Pointer to a EFI_SPI_PERIPHERAL data structure= from + which the routine can access the ClockParamete= r, + ClockPhase and ClockPolarity fields. The routi= ne + also has access to the names for the SPI bus a= nd + chip which can be used during debugging. + @param[in] ClockHz Pointer to the requested clock frequency. The = SPI + host controller will choose a supported clock + frequency which is less then or equal to this + value. Specify zero to turn the clock generato= r + off. The actual clock frequency supported by t= he + SPI host controller will be returned. + + @retval EFI_UNSUPPORTED + +**/ +EFI_STATUS +EFIAPI +PlatformSpiHcClock ( + IN CONST EFI_SPI_HC_PROTOCOL *This, + IN CONST EFI_SPI_PERIPHERAL *SpiPeripheral, + IN UINT32 *ClockHz + ) +{ + return EFI_UNSUPPORTED; +} + +/** + This function is the platform specific SPI transaction function + Perform the SPI transaction on the SPI peripheral using the SPI host + controller. + + This routine is called at TPL_NOTIFY. + This routine synchronously returns EFI_SUCCESS indicating that the + asynchronous SPI transaction was started. The routine then waits for + completion of the SPI transaction prior to returning the final transacti= on + status. + + @param[in] This Pointer to an EFI_SPI_HC_PROTOCOL structure. + @param[in] BusTransaction Pointer to a EFI_SPI_BUS_ TRANSACTION contain= ing + the description of the SPI transaction to per= form. + + @retval EFI_UNSUPPORTED + +**/ +EFI_STATUS +EFIAPI +PlatformSpiHcTransaction ( + IN CONST EFI_SPI_HC_PROTOCOL *This, + IN EFI_SPI_BUS_TRANSACTION *BusTransaction + ) +{ + return EFI_UNSUPPORTED; +} diff --git a/MdeModulePkg/Library/BaseSpiHcPlatformLibNull/BaseSpiHcPlatfor= mLibNull.uni b/MdeModulePkg/Library/BaseSpiHcPlatformLibNull/BaseSpiHcPlatf= ormLibNull.uni new file mode 100644 index 000000000000..82fa02c31d58 --- /dev/null +++ b/MdeModulePkg/Library/BaseSpiHcPlatformLibNull/BaseSpiHcPlatformLibNul= l.uni @@ -0,0 +1,11 @@ + +// /** @file +// +// Copyright (C) 2024 Advanced Micro Devices, Inc. All rights reserved. +// +// SPDX-License-Identifier: BSD-2-Clause-Patent +// +// **/ + +#string STR_PROPERTIES_MODULE_NAME +#language en-US "Null SPI Host controller library" --=20 2.42.1 -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#118440): https://edk2.groups.io/g/devel/message/118440 Mute This Topic: https://groups.io/mt/105821489/7686176 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io] -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-