* [edk2-devel] [edk2-platforms][PATCH v2 1/5] AmpereAltraPkg/DwI2cLib: Add support for SMBUS+PEC operation
2024-08-07 6:47 [edk2-devel] [edk2-platforms][PATCH v2 0/5] Add IPMI SSIF support Nhi Pham via groups.io
@ 2024-08-07 6:47 ` Nhi Pham via groups.io
2024-08-07 6:47 ` [edk2-devel] [edk2-platforms][PATCH v2 2/5] AmpereSiliconPkg: Define PCDs for SMBUS and BMC Nhi Pham via groups.io
` (7 subsequent siblings)
8 siblings, 0 replies; 19+ messages in thread
From: Nhi Pham via groups.io @ 2024-08-07 6:47 UTC (permalink / raw)
To: devel; +Cc: quic_llindhol, chuong, rebecca, nhi
This introduces two input parameters to the I2cProbe() and updates the
InternalI2cRead() for the support of the SMBUS operation with optional
PEC check, which will be used by the IPMI SSIF driver.
Signed-off-by: Nhi Pham <nhi@os.amperecomputing.com>
---
Silicon/Ampere/AmpereAltraPkg/Include/Library/I2cLib.h | 11 +-
Platform/Ampere/JadePkg/Library/PCF85063RealTimeClockLib/PCF85063.c | 6 +-
Silicon/Ampere/AmpereAltraPkg/Library/DwI2cLib/DwI2cLib.c | 129 ++++++++++++++++++--
3 files changed, 131 insertions(+), 15 deletions(-)
diff --git a/Silicon/Ampere/AmpereAltraPkg/Include/Library/I2cLib.h b/Silicon/Ampere/AmpereAltraPkg/Include/Library/I2cLib.h
index f13794171029..3a312f7b6aed 100644
--- a/Silicon/Ampere/AmpereAltraPkg/Include/Library/I2cLib.h
+++ b/Silicon/Ampere/AmpereAltraPkg/Include/Library/I2cLib.h
@@ -1,7 +1,7 @@
/** @file
Library implementation for the Designware I2C controller.
- Copyright (c) 2020 - 2021, Ampere Computing LLC. All rights reserved.<BR>
+ Copyright (c) 2020 - 2024, Ampere Computing LLC. All rights reserved.<BR>
SPDX-License-Identifier: BSD-2-Clause-Patent
@@ -70,6 +70,9 @@ I2cRead (
@param[in] Bus I2C bus Id.
@param[in] BusSpeed I2C bus speed in Hz.
+ @param[in] IsSmbus Flag to indicate if the bus is used to execute an SMBus operation.
+ @param[in] PecCheck If Packet Error Code (PEC) checking is required for the SMBUS operation
+ and is ignored when present in other operations.
@retval EFI_SUCCESS Success.
@retval EFI_INVALID_PARAMETER A parameter is invalid.
@@ -78,8 +81,10 @@ I2cRead (
EFI_STATUS
EFIAPI
I2cProbe (
- IN UINT32 Bus,
- IN UINTN BusSpeed
+ IN UINT32 Bus,
+ IN UINTN BusSpeed,
+ IN BOOLEAN IsSmbus,
+ IN BOOLEAN PecCheck
);
/**
diff --git a/Platform/Ampere/JadePkg/Library/PCF85063RealTimeClockLib/PCF85063.c b/Platform/Ampere/JadePkg/Library/PCF85063RealTimeClockLib/PCF85063.c
index bc886b530f3c..a9e7328381e6 100644
--- a/Platform/Ampere/JadePkg/Library/PCF85063RealTimeClockLib/PCF85063.c
+++ b/Platform/Ampere/JadePkg/Library/PCF85063RealTimeClockLib/PCF85063.c
@@ -1,6 +1,6 @@
/** @file
- Copyright (c) 2020 - 2021, Ampere Computing LLC. All rights reserved.<BR>
+ Copyright (c) 2020 - 2024, Ampere Computing LLC. All rights reserved.<BR>
SPDX-License-Identifier: BSD-2-Clause-Patent
@@ -104,7 +104,7 @@ RtcI2cRead (
return EFI_DEVICE_ERROR;
}
- Status = I2cProbe (I2C_RTC_BUS_ADDRESS, I2C_RTC_BUS_SPEED);
+ Status = I2cProbe (I2C_RTC_BUS_ADDRESS, I2C_RTC_BUS_SPEED, FALSE, FALSE);
if (EFI_ERROR (Status)) {
return EFI_DEVICE_ERROR;
}
@@ -148,7 +148,7 @@ RtcI2cWrite (
return EFI_INVALID_PARAMETER;
}
- Status = I2cProbe (I2C_RTC_BUS_ADDRESS, I2C_RTC_BUS_SPEED);
+ Status = I2cProbe (I2C_RTC_BUS_ADDRESS, I2C_RTC_BUS_SPEED, FALSE, FALSE);
if (EFI_ERROR (Status)) {
return EFI_DEVICE_ERROR;
}
diff --git a/Silicon/Ampere/AmpereAltraPkg/Library/DwI2cLib/DwI2cLib.c b/Silicon/Ampere/AmpereAltraPkg/Library/DwI2cLib/DwI2cLib.c
index 669ba2ea98a4..a6631ea17d69 100644
--- a/Silicon/Ampere/AmpereAltraPkg/Library/DwI2cLib/DwI2cLib.c
+++ b/Silicon/Ampere/AmpereAltraPkg/Library/DwI2cLib/DwI2cLib.c
@@ -1,6 +1,6 @@
/** @file
- Copyright (c) 2020 - 2021, Ampere Computing LLC. All rights reserved.<BR>
+ Copyright (c) 2020 - 2024, Ampere Computing LLC. All rights reserved.<BR>
SPDX-License-Identifier: BSD-2-Clause-Patent
@@ -31,12 +31,14 @@
// Private I2C bus data
//
typedef struct {
- UINTN Base;
- UINT32 BusSpeed;
- UINT32 RxFifo;
- UINT32 TxFifo;
- UINT32 PollingTime;
- UINT32 Enabled;
+ UINTN Base;
+ UINT32 BusSpeed;
+ UINT32 RxFifo;
+ UINT32 TxFifo;
+ UINT32 PollingTime;
+ UINT32 Enabled;
+ BOOLEAN IsSmbus;
+ BOOLEAN PecCheck;
} DW_I2C_CONTEXT_T;
//
@@ -337,6 +339,11 @@ I2cWaitTxData (
DEBUG ((DEBUG_ERROR, "%a: Timeout waiting for TX buffer available\n", __FUNCTION__));
return EFI_TIMEOUT;
}
+
+ if ((I2cCheckErrors (Bus) & DW_IC_INTR_TX_ABRT) != 0) {
+ return EFI_ABORTED;
+ }
+
MicroSecondDelay (mI2cBusList[Bus].PollingTime);
}
@@ -542,6 +549,72 @@ InternalI2cWrite (
return Status;
}
+/**
+ This extracts the data length from the initial byte of the SMBUS transaction. This allows
+ the driver to accurately read the SMBUS response with the exact length, rather than
+ consistently reading 32-byte block of data.
+
+ @param[in] Bus I2C bus Id.
+ @param[out] BusSpeed Pointer to the buffer to store the read length.
+
+ @retval EFI_SUCCESS The operation is successful.
+ @retval Others An error occurred.
+
+**/
+EFI_STATUS
+InternalSmbusReadDataLength (
+ UINT32 Bus,
+ UINT32 *Length
+ )
+{
+ EFI_STATUS Status;
+ UINTN Base;
+ UINT32 CmdSend;
+
+ Base = mI2cBusList[Bus].Base;
+
+ CmdSend = DW_IC_DATA_CMD_CMD;
+ MmioWrite32 (Base + DW_IC_DATA_CMD, CmdSend);
+ I2cSync ();
+
+ if (I2cCheckErrors (Bus) != 0) {
+ DEBUG ((DEBUG_ERROR, "%a: Sending reading command error\n", __func__));
+ return EFI_CRC_ERROR;
+ }
+
+ Status = I2cWaitRxData (Bus);
+ if (EFI_ERROR (Status)) {
+ //
+ // If the SMBUS target is not ready to handle the request
+ // or is busy with preparing the response data, it will response
+ // NACK, and the error status TX_ABRT is triggered to indicate that
+ // the RX FIFO is not ready for reading. Thus, the following message
+ // serves more as verbose alert rather than an error.
+ //
+ DEBUG ((DEBUG_VERBOSE,
+ "%a: Reading Smbus data length failed to wait data\n",
+ __func__
+ ));
+
+ if (Status != EFI_ABORTED) {
+ MmioWrite32 (Base + DW_IC_DATA_CMD, DW_IC_DATA_CMD_STOP);
+ I2cSync ();
+ }
+
+ return Status;
+ }
+
+ *Length = MmioRead32 (Base + DW_IC_DATA_CMD) & DW_IC_DATA_CMD_DAT_MASK;
+ I2cSync ();
+
+ if (I2cCheckErrors (Bus) != 0) {
+ DEBUG ((DEBUG_ERROR, "%a: Sending reading command error\n", __func__));
+ return EFI_CRC_ERROR;
+ }
+
+ return EFI_SUCCESS;
+}
+
EFI_STATUS
InternalI2cRead (
UINT32 Bus,
@@ -559,6 +632,7 @@ InternalI2cRead (
UINTN Count;
UINTN ReadCount;
UINTN WriteCount;
+ UINT32 ResponseLen;
Status = EFI_SUCCESS;
Base = mI2cBusList[Bus].Base;
@@ -601,6 +675,35 @@ InternalI2cRead (
}
WriteCount = 0;
+ if (mI2cBusList[Bus].IsSmbus) {
+ //
+ // Read Smbus Data Length, first byte of the Smbus response data.
+ //
+ Status = InternalSmbusReadDataLength (Bus, &ResponseLen);
+ if (EFI_ERROR (Status)) {
+ goto Exit;
+ }
+
+ WriteCount++;
+ Buf[ReadCount++] = ResponseLen;
+
+ //
+ // Abort the transaction when the requested length is shorter than the actual response data
+ // or if there is no response data when PEC disabled.
+ //
+ if ((*Length < (ResponseLen + 2)) || (!mI2cBusList[Bus].PecCheck && ResponseLen == 0)) {
+ MmioWrite32 (Base + DW_IC_DATA_CMD, DW_IC_DATA_CMD_CMD | DW_IC_DATA_CMD_STOP);
+ I2cSync ();
+ Status = EFI_INVALID_PARAMETER;
+ goto Exit;
+ }
+
+ *Length = ResponseLen + 1; // Response Data Length + 8-bit Byte Count field
+ if (mI2cBusList[Bus].PecCheck) {
+ *Length += 1; // ++ 8-bit PEC field
+ }
+ }
+
while ((*Length - ReadCount) != 0) {
TxLimit = mI2cBusList[Bus].TxFifo - MmioRead32 (Base + DW_IC_TXFLR);
RxLimit = mI2cBusList[Bus].RxFifo - MmioRead32 (Base + DW_IC_RXFLR);
@@ -750,6 +853,9 @@ I2cRead (
@param[in] Bus I2C bus Id.
@param[in] BusSpeed I2C bus speed in Hz.
+ @param[in] IsSmbus Flag to indicate if the bus is used to execute an SMBus operation.
+ @param[in] PecCheck If Packet Error Code (PEC) checking is required for the SMBUS operation
+ and is ignored when present in other operations.
@retval EFI_SUCCESS Success.
@retval EFI_INVALID_PARAMETER A parameter is invalid.
@@ -758,8 +864,10 @@ I2cRead (
EFI_STATUS
EFIAPI
I2cProbe (
- IN UINT32 Bus,
- IN UINTN BusSpeed
+ IN UINT32 Bus,
+ IN UINTN BusSpeed,
+ IN BOOLEAN IsSmbus,
+ IN BOOLEAN PecCheck
)
{
if (Bus >= AC01_I2C_MAX_BUS_NUM
@@ -768,6 +876,9 @@ I2cProbe (
return EFI_INVALID_PARAMETER;
}
+ mI2cBusList[Bus].IsSmbus = IsSmbus;
+ mI2cBusList[Bus].PecCheck = PecCheck;
+
return I2cInit (Bus, BusSpeed);
}
--
2.25.1
-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#120262): https://edk2.groups.io/g/devel/message/120262
Mute This Topic: https://groups.io/mt/107765353/7686176
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io]
-=-=-=-=-=-=-=-=-=-=-=-
^ permalink raw reply related [flat|nested] 19+ messages in thread
* [edk2-devel] [edk2-platforms][PATCH v2 2/5] AmpereSiliconPkg: Define PCDs for SMBUS and BMC
2024-08-07 6:47 [edk2-devel] [edk2-platforms][PATCH v2 0/5] Add IPMI SSIF support Nhi Pham via groups.io
2024-08-07 6:47 ` [edk2-devel] [edk2-platforms][PATCH v2 1/5] AmpereAltraPkg/DwI2cLib: Add support for SMBUS+PEC operation Nhi Pham via groups.io
@ 2024-08-07 6:47 ` Nhi Pham via groups.io
2024-08-07 6:47 ` [edk2-devel] [edk2-platforms][PATCH v2 3/5] AmpereAltraPkg: Add SmbusHc PEI and DXE drivers Nhi Pham via groups.io
` (6 subsequent siblings)
8 siblings, 0 replies; 19+ messages in thread
From: Nhi Pham via groups.io @ 2024-08-07 6:47 UTC (permalink / raw)
To: devel; +Cc: quic_llindhol, chuong, rebecca, nhi
This introduces fixed PCDs for SMBUS and BMC as specified to Ampere.
Signed-off-by: Nhi Pham <nhi@os.amperecomputing.com>
---
Silicon/Ampere/AmpereSiliconPkg/AmpereSiliconPkg.dec | 15 +++++++++++++--
1 file changed, 13 insertions(+), 2 deletions(-)
diff --git a/Silicon/Ampere/AmpereSiliconPkg/AmpereSiliconPkg.dec b/Silicon/Ampere/AmpereSiliconPkg/AmpereSiliconPkg.dec
index 56e8b2fd2f11..c8e3b5784bdb 100644
--- a/Silicon/Ampere/AmpereSiliconPkg/AmpereSiliconPkg.dec
+++ b/Silicon/Ampere/AmpereSiliconPkg/AmpereSiliconPkg.dec
@@ -66,8 +66,19 @@ [PcdsFixedAtBuild]
#
# SMBIOS Type 0 Pcd
#
- gAmpereTokenSpaceGuid.PcdSmbiosTables0MajorVersion|0xFF|UINT8|0x00000005
- gAmpereTokenSpaceGuid.PcdSmbiosTables0MinorVersion|0xFF|UINT8|0x00000006
+ gAmpereTokenSpaceGuid.PcdSmbiosTables0MajorVersion|0xFF|UINT8|0x00000005
+ gAmpereTokenSpaceGuid.PcdSmbiosTables0MinorVersion|0xFF|UINT8|0x00000006
+
+ #
+ # I2C PCDs for SMBUS
+ #
+ gAmpereTokenSpaceGuid.PcdSmbusI2cBusNumber|0x00|UINT8|0x00000007
+ gAmpereTokenSpaceGuid.PcdSmbusI2cBusSpeed|100000|UINT32|0x00000008 # Hz
+
+ #
+ # GPIO pin to support BMC ready check
+ #
+ gAmpereTokenSpaceGuid.PcdBmcReadyGpio|0x18|UINT8|0x00000009
[PcdsFixedAtBuild, PcdsDynamic, PcdsDynamicEx]
#
--
2.25.1
-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#120263): https://edk2.groups.io/g/devel/message/120263
Mute This Topic: https://groups.io/mt/107765354/7686176
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io]
-=-=-=-=-=-=-=-=-=-=-=-
^ permalink raw reply related [flat|nested] 19+ messages in thread
* [edk2-devel] [edk2-platforms][PATCH v2 3/5] AmpereAltraPkg: Add SmbusHc PEI and DXE drivers
2024-08-07 6:47 [edk2-devel] [edk2-platforms][PATCH v2 0/5] Add IPMI SSIF support Nhi Pham via groups.io
2024-08-07 6:47 ` [edk2-devel] [edk2-platforms][PATCH v2 1/5] AmpereAltraPkg/DwI2cLib: Add support for SMBUS+PEC operation Nhi Pham via groups.io
2024-08-07 6:47 ` [edk2-devel] [edk2-platforms][PATCH v2 2/5] AmpereSiliconPkg: Define PCDs for SMBUS and BMC Nhi Pham via groups.io
@ 2024-08-07 6:47 ` Nhi Pham via groups.io
2024-08-07 6:47 ` [edk2-devel] [edk2-platforms][PATCH v2 4/5] JadePkg: Add PlatformBmcReadyLib to support BMC ready check Nhi Pham via groups.io
` (5 subsequent siblings)
8 siblings, 0 replies; 19+ messages in thread
From: Nhi Pham via groups.io @ 2024-08-07 6:47 UTC (permalink / raw)
To: devel; +Cc: quic_llindhol, chuong, rebecca, nhi
This adds the implementation of SMBUS PPI and Protocol to produce SMBUS
interface in both PEI and DXE phases for use by IPMI SSIF.
Signed-off-by: Nhi Pham <nhi@os.amperecomputing.com>
---
Silicon/Ampere/AmpereAltraPkg/Drivers/SmbusHc/SmbusHcDxe.inf | 43 +++
Silicon/Ampere/AmpereAltraPkg/Drivers/SmbusHc/SmbusHcPei.inf | 43 +++
Silicon/Ampere/AmpereAltraPkg/Drivers/SmbusHc/SmbusHcCommon.h | 95 +++++++
Silicon/Ampere/AmpereAltraPkg/Drivers/SmbusHc/SmbusHcCommon.c | 261 ++++++++++++++++++
Silicon/Ampere/AmpereAltraPkg/Drivers/SmbusHc/SmbusHcDxe.c | 277 ++++++++++++++++++++
Silicon/Ampere/AmpereAltraPkg/Drivers/SmbusHc/SmbusHcPei.c | 263 +++++++++++++++++++
6 files changed, 982 insertions(+)
diff --git a/Silicon/Ampere/AmpereAltraPkg/Drivers/SmbusHc/SmbusHcDxe.inf b/Silicon/Ampere/AmpereAltraPkg/Drivers/SmbusHc/SmbusHcDxe.inf
new file mode 100644
index 000000000000..7e8c8176658e
--- /dev/null
+++ b/Silicon/Ampere/AmpereAltraPkg/Drivers/SmbusHc/SmbusHcDxe.inf
@@ -0,0 +1,43 @@
+## @file
+#
+# Copyright (c) 2024, Ampere Computing LLC. All rights reserved.<BR>
+#
+# SPDX-License-Identifier: BSD-2-Clause-Patent
+#
+##
+
+[Defines]
+ INF_VERSION = 0x0001001B
+ BASE_NAME = SmbusHcDxe
+ FILE_GUID = A92C6874-B59E-49A7-957D-8511C9D8520E
+ MODULE_TYPE = DXE_DRIVER
+ VERSION_STRING = 1.0
+ ENTRY_POINT = InitializeSmbus
+
+[Sources]
+ SmbusHcCommon.c
+ SmbusHcDxe.c
+
+[Packages]
+ MdeModulePkg/MdeModulePkg.dec
+ MdePkg/MdePkg.dec
+ Silicon/Ampere/AmpereAltraPkg/AmpereAltraPkg.dec
+ Silicon/Ampere/AmpereSiliconPkg/AmpereSiliconPkg.dec
+
+[LibraryClasses]
+ BaseMemoryLib
+ DebugLib
+ GpioLib
+ I2cLib
+ UefiBootServicesTableLib
+ UefiDriverEntryPoint
+
+[Protocols]
+ gEfiSmbusHcProtocolGuid # PRODUCES
+
+[Pcd]
+ gAmpereTokenSpaceGuid.PcdSmbusI2cBusNumber
+ gAmpereTokenSpaceGuid.PcdSmbusI2cBusSpeed
+
+[Depex]
+ TRUE
diff --git a/Silicon/Ampere/AmpereAltraPkg/Drivers/SmbusHc/SmbusHcPei.inf b/Silicon/Ampere/AmpereAltraPkg/Drivers/SmbusHc/SmbusHcPei.inf
new file mode 100644
index 000000000000..810a583feab3
--- /dev/null
+++ b/Silicon/Ampere/AmpereAltraPkg/Drivers/SmbusHc/SmbusHcPei.inf
@@ -0,0 +1,43 @@
+## @file
+#
+# Copyright (c) 2024, Ampere Computing LLC. All rights reserved.<BR>
+#
+# SPDX-License-Identifier: BSD-2-Clause-Patent
+#
+##
+
+[Defines]
+ INF_VERSION = 0x0001001B
+ BASE_NAME = SmbusHcPeim
+ FILE_GUID = 1D770ACE-36E9-4B74-B548-4F423B60A26C
+ MODULE_TYPE = PEIM
+ VERSION_STRING = 1.0
+ ENTRY_POINT = InitializeSmbusPeim
+
+[Sources]
+ SmbusHcCommon.c
+ SmbusHcPei.c
+
+[Packages]
+ MdeModulePkg/MdeModulePkg.dec
+ MdePkg/MdePkg.dec
+ Silicon/Ampere/AmpereAltraPkg/AmpereAltraPkg.dec
+ Silicon/Ampere/AmpereSiliconPkg/AmpereSiliconPkg.dec
+
+[LibraryClasses]
+ BaseMemoryLib
+ DebugLib
+ GpioLib
+ I2cLib
+ PeimEntryPoint
+ PeiServicesLib
+
+[Ppis]
+ gEfiPeiSmbus2PpiGuid # PRODUCES
+
+[Pcd]
+ gAmpereTokenSpaceGuid.PcdSmbusI2cBusNumber
+ gAmpereTokenSpaceGuid.PcdSmbusI2cBusSpeed
+
+[Depex]
+ TRUE
diff --git a/Silicon/Ampere/AmpereAltraPkg/Drivers/SmbusHc/SmbusHcCommon.h b/Silicon/Ampere/AmpereAltraPkg/Drivers/SmbusHc/SmbusHcCommon.h
new file mode 100644
index 000000000000..db19d50b0f2a
--- /dev/null
+++ b/Silicon/Ampere/AmpereAltraPkg/Drivers/SmbusHc/SmbusHcCommon.h
@@ -0,0 +1,95 @@
+/** @file
+
+ Copyright (c) 2024, Ampere Computing LLC. All rights reserved.<BR>
+
+ SPDX-License-Identifier: BSD-2-Clause-Patent
+
+**/
+
+#ifndef SMBUS_HC_COMMON_LIB_H_
+#define SMBUS_HC_COMMON_LIB_H_
+
+#include <Library/PcdLib.h>
+#include <IndustryStandard/SmBus.h>
+#include <Uefi/UefiBaseType.h>
+
+//
+// I2C Based SMBus info
+//
+#define I2C_BUS_NUMBER (FixedPcdGet8 (PcdSmbusI2cBusNumber))
+#define I2C_BUS_SPEED (FixedPcdGet32 (PcdSmbusI2cBusSpeed))
+#define I2C_WRITE_ADDRESS(Addr) ((Addr) << 1 | 0)
+#define I2C_READ_ADDRESS(Addr) ((Addr) << 1 | 1)
+
+//
+// SMBus 2.0
+//
+#define SMBUS_MAX_BLOCK_LENGTH 0x20
+#define SMBUS_READ_TEMP_LENGTH (SMBUS_MAX_BLOCK_LENGTH + 2) // Length + 32 Bytes + PEC
+#define SMBUS_WRITE_TEMP_LENGTH (SMBUS_MAX_BLOCK_LENGTH + 3) // CMD + Length + 32 Bytes + PEC
+
+//
+// SMBus PEC
+//
+#define CRC8_POLYNOMINAL_KEY 0x107 // X^8 + X^2 + X + 1
+
+/**
+ Executes an SMBus operation to an SMBus controller. Returns when either the command has been
+ executed or an error is encountered in doing the operation.
+
+ The Execute() function provides a standard way to execute an operation as defined in the System
+ Management Bus (SMBus) Specification. The resulting transaction will be either that the SMBus
+ slave devices accept this transaction or that this function returns with error.
+
+ @param This A pointer to the EFI_SMBUS_HC_PROTOCOL instance.
+ @param SlaveAddress The SMBus slave address of the device with which to communicate.
+ @param Command This command is transmitted by the SMBus host controller to the
+ SMBus slave device and the interpretation is SMBus slave device
+ specific. It can mean the offset to a list of functions inside an
+ SMBus slave device. Not all operations or slave devices support
+ this command's registers.
+ @param Operation Signifies which particular SMBus hardware protocol instance that
+ it will use to execute the SMBus transactions. This SMBus
+ hardware protocol is defined by the SMBus Specification and is
+ not related to EFI.
+ @param PecCheck Defines if Packet Error Code (PEC) checking is required for this
+ operation.
+ @param Length Signifies the number of bytes that this operation will do. The
+ maximum number of bytes can be revision specific and operation
+ specific. This field will contain the actual number of bytes that
+ are executed for this operation. Not all operations require this
+ argument.
+ @param Buffer Contains the value of data to execute to the SMBus slave device.
+ Not all operations require this argument. The length of this
+ buffer is identified by Length.
+
+ @retval EFI_SUCCESS The last data that was returned from the access matched the poll
+ exit criteria.
+ @retval EFI_CRC_ERROR Checksum is not correct (PEC is incorrect).
+ @retval EFI_TIMEOUT Timeout expired before the operation was completed. Timeout is
+ determined by the SMBus host controller device.
+ @retval EFI_OUT_OF_RESOURCES The request could not be completed due to a lack of resources.
+ @retval EFI_DEVICE_ERROR The request was not completed because a failure that was
+ reflected in the Host Status Register bit. Device errors are a
+ result of a transaction collision, illegal command field,
+ unclaimed cycle (host initiated), or bus errors (collisions).
+ @retval EFI_INVALID_PARAMETER Operation is not defined in EFI_SMBUS_OPERATION.
+ @retval EFI_INVALID_PARAMETER Length/Buffer is NULL for operations except for EfiSmbusQuickRead
+ and EfiSmbusQuickWrite. Length is outside the range of valid
+ values.
+ @retval EFI_UNSUPPORTED The SMBus operation or PEC is not supported.
+ @retval EFI_BUFFER_TOO_SMALL Buffer is not sufficient for this operation.
+
+**/
+EFI_STATUS
+EFIAPI
+SmbusHcCommonExecute (
+ IN EFI_SMBUS_DEVICE_ADDRESS SlaveAddress,
+ IN EFI_SMBUS_DEVICE_COMMAND Command,
+ IN EFI_SMBUS_OPERATION Operation,
+ IN BOOLEAN PecCheck,
+ IN OUT UINTN *Length,
+ IN OUT VOID *Buffer
+ );
+
+#endif /* SMBUS_HC_COMMON_LIB_H_ */
diff --git a/Silicon/Ampere/AmpereAltraPkg/Drivers/SmbusHc/SmbusHcCommon.c b/Silicon/Ampere/AmpereAltraPkg/Drivers/SmbusHc/SmbusHcCommon.c
new file mode 100644
index 000000000000..adce5c02cf95
--- /dev/null
+++ b/Silicon/Ampere/AmpereAltraPkg/Drivers/SmbusHc/SmbusHcCommon.c
@@ -0,0 +1,261 @@
+/** @file
+ SmbusHcCommon implement common api for SmbusHc
+
+ Copyright (c) 2024, Ampere Computing LLC. All rights reserved.<BR>
+
+ SPDX-License-Identifier: BSD-2-Clause-Patent
+
+**/
+
+#include <Uefi.h>
+#include <Library/BaseMemoryLib.h>
+#include <Library/DebugLib.h>
+#include <Library/GpioLib.h>
+#include <Library/I2cLib.h>
+#include <Library/PcdLib.h>
+
+#include "SmbusHcCommon.h"
+
+/**
+ Incremental calculate Pec base on previous Pec value and CRC8 of data array
+ pointed to by Buffer
+
+ @param Pec Previous Pec
+ @param Buffer Pointer to data array
+ @param Length Array count
+
+ @retval Pec
+
+**/
+UINT8
+CalculatePec (
+ UINT8 Pec,
+ UINT8 *Buffer,
+ UINT32 Length
+ )
+{
+ UINT8 Offset, Index;
+
+ for (Offset = 0; Offset < Length; Offset++) {
+ Pec ^= Buffer[Offset];
+ for (Index = 0; Index < 8; Index++) {
+ if ((Pec & 0x80) != 0) {
+ Pec = (UINT8)((Pec << 1) ^ CRC8_POLYNOMINAL_KEY);
+ } else {
+ Pec <<= 1;
+ }
+ }
+ }
+
+ return Pec & 0xFF;
+}
+
+/**
+ Executes an SMBus operation to an SMBus controller. Returns when either the command has been
+ executed or an error is encountered in doing the operation.
+
+ The Execute() function provides a standard way to execute an operation as defined in the System
+ Management Bus (SMBus) Specification. The resulting transaction will be either that the SMBus
+ slave devices accept this transaction or that this function returns with error.
+
+ @param SlaveAddress The SMBus slave address of the device with which to communicate.
+ @param Command This command is transmitted by the SMBus host controller to the
+ SMBus slave device and the interpretation is SMBus slave device
+ specific. It can mean the offset to a list of functions inside an
+ SMBus slave device. Not all operations or slave devices support
+ this command's registers.
+ @param Operation Signifies which particular SMBus hardware protocol instance that
+ it will use to execute the SMBus transactions. This SMBus
+ hardware protocol is defined by the SMBus Specification and is
+ not related to EFI.
+ @param PecCheck Defines if Packet Error Code (PEC) checking is required for this
+ operation.
+ @param Length Signifies the number of bytes that this operation will do. The
+ maximum number of bytes can be revision specific and operation
+ specific. This field will contain the actual number of bytes that
+ are executed for this operation. Not all operations require this
+ argument.
+ @param Buffer Contains the value of data to execute to the SMBus slave device.
+ Not all operations require this argument. The length of this
+ buffer is identified by Length.
+
+ @retval EFI_SUCCESS The last data that was returned from the access matched the poll
+ exit criteria.
+ @retval EFI_CRC_ERROR Checksum is not correct (PEC is incorrect).
+ @retval EFI_TIMEOUT Timeout expired before the operation was completed. Timeout is
+ determined by the SMBus host controller device.
+ @retval EFI_OUT_OF_RESOURCES The request could not be completed due to a lack of resources.
+ @retval EFI_DEVICE_ERROR The request was not completed because a failure that was
+ reflected in the Host Status Register bit. Device errors are a
+ result of a transaction collision, illegal command field,
+ unclaimed cycle (host initiated), or bus errors (collisions).
+ @retval EFI_INVALID_PARAMETER Operation is not defined in EFI_SMBUS_OPERATION.
+ @retval EFI_INVALID_PARAMETER Length/Buffer is NULL for operations except for EfiSmbusQuickRead
+ and EfiSmbusQuickWrite. Length is outside the range of valid
+ values.
+ @retval EFI_UNSUPPORTED The SMBus operation or PEC is not supported.
+ @retval EFI_BUFFER_TOO_SMALL Buffer is not sufficient for this operation.
+
+**/
+EFI_STATUS
+EFIAPI
+SmbusHcCommonExecute (
+ IN EFI_SMBUS_DEVICE_ADDRESS SlaveAddress,
+ IN EFI_SMBUS_DEVICE_COMMAND Command,
+ IN EFI_SMBUS_OPERATION Operation,
+ IN BOOLEAN PecCheck,
+ IN OUT UINTN *Length,
+ IN OUT VOID *Buffer
+ )
+{
+ EFI_STATUS Status;
+ UINTN DataLen, Idx;
+ UINT8 ReadTemp[SMBUS_READ_TEMP_LENGTH];
+ UINT8 WriteTemp[SMBUS_WRITE_TEMP_LENGTH];
+ UINT8 CrcTemp[10];
+ UINT8 Pec;
+
+ if ( ((Operation != EfiSmbusQuickRead) && (Operation != EfiSmbusQuickWrite))
+ && ((Length == NULL) || (Buffer == NULL)))
+ {
+ return EFI_INVALID_PARAMETER;
+ }
+
+ //
+ // Switch to correct I2C bus and speed
+ //
+ Status = I2cProbe (I2C_BUS_NUMBER, I2C_BUS_SPEED, TRUE, PecCheck);
+ if (EFI_ERROR (Status)) {
+ return EFI_DEVICE_ERROR;
+ }
+
+ //
+ // Process Operation
+ //
+ switch (Operation) {
+ case EfiSmbusWriteBlock:
+ if (*Length > SMBUS_MAX_BLOCK_LENGTH) {
+ return EFI_INVALID_PARAMETER;
+ }
+
+ WriteTemp[0] = Command;
+ WriteTemp[1] = *Length;
+ CopyMem (&WriteTemp[2], Buffer, *Length);
+ DataLen = *Length + 2;
+
+ //
+ // PEC handling
+ //
+ if (PecCheck) {
+ CrcTemp[0] = I2C_WRITE_ADDRESS (SlaveAddress.SmbusDeviceAddress);
+ Pec = CalculatePec (0, &CrcTemp[0], 1);
+ Pec = CalculatePec (Pec, WriteTemp, DataLen);
+ DEBUG ((DEBUG_VERBOSE, "\nWriteBlock PEC = 0x%x \n", Pec));
+ WriteTemp[DataLen] = Pec;
+ DataLen += 1;
+ }
+
+ DEBUG ((DEBUG_VERBOSE, "W %d: ", DataLen));
+ for (Idx = 0; Idx < DataLen; Idx++) {
+ DEBUG ((DEBUG_VERBOSE, "0x%x ", WriteTemp[Idx]));
+ }
+
+ DEBUG ((DEBUG_VERBOSE, "\n"));
+
+ Status = I2cWrite (
+ I2C_BUS_NUMBER,
+ SlaveAddress.SmbusDeviceAddress,
+ WriteTemp,
+ (UINT32 *)&DataLen
+ );
+ if (EFI_ERROR (Status)) {
+ if (Status != EFI_TIMEOUT) {
+ Status = EFI_DEVICE_ERROR;
+ }
+ }
+
+ break;
+
+ case EfiSmbusReadBlock:
+ WriteTemp[0] = Command;
+ DataLen = *Length + 2; // +1 byte for Data Length +1 byte for PEC
+ Status = I2cRead (
+ I2C_BUS_NUMBER,
+ SlaveAddress.SmbusDeviceAddress,
+ WriteTemp,
+ 1,
+ ReadTemp,
+ (UINT32 *)&DataLen
+ );
+ if (EFI_ERROR (Status)) {
+ if (Status != EFI_TIMEOUT) {
+ Status = EFI_DEVICE_ERROR;
+ }
+
+ *Length = 0;
+ break;
+ }
+
+ DEBUG ((DEBUG_VERBOSE, "R %d: ", DataLen));
+ for (Idx = 0; Idx < DataLen; Idx++) {
+ DEBUG ((DEBUG_VERBOSE, "0x%x ", ReadTemp[Idx]));
+ }
+
+ DEBUG ((DEBUG_VERBOSE, "\n"));
+
+ DataLen = ReadTemp[0];
+
+ //
+ // PEC handling
+ //
+ if (PecCheck) {
+ CrcTemp[0] = I2C_WRITE_ADDRESS (SlaveAddress.SmbusDeviceAddress);
+ CrcTemp[1] = Command;
+ CrcTemp[2] = I2C_READ_ADDRESS (SlaveAddress.SmbusDeviceAddress);
+
+ Pec = CalculatePec (0, &CrcTemp[0], 3);
+ Pec = CalculatePec (Pec, ReadTemp, DataLen + 1);
+
+ if (Pec != ReadTemp[DataLen + 1]) {
+ DEBUG ((DEBUG_ERROR, "ReadBlock PEC cal = 0x%x != 0x%x\n", Pec, ReadTemp[DataLen + 1]));
+ return EFI_CRC_ERROR;
+ } else {
+ DEBUG ((DEBUG_VERBOSE, "ReadBlock PEC 0x%x\n", ReadTemp[DataLen + 1]));
+ }
+ }
+
+ if ((DataLen == 0) || (DataLen > SMBUS_MAX_BLOCK_LENGTH)) {
+ DEBUG ((DEBUG_ERROR, "%a: Invalid length = %d\n", __func__, DataLen));
+ *Length = 0;
+ Status = EFI_INVALID_PARAMETER;
+ } else if (DataLen > *Length) {
+ DEBUG ((DEBUG_ERROR, "%a: Buffer too small\n", __func__));
+ *Length = 0;
+ Status = EFI_BUFFER_TOO_SMALL;
+ } else {
+ *Length = DataLen;
+ CopyMem (Buffer, &ReadTemp[1], DataLen);
+ }
+
+ break;
+
+ case EfiSmbusQuickRead:
+ case EfiSmbusQuickWrite:
+ case EfiSmbusReceiveByte:
+ case EfiSmbusSendByte:
+ case EfiSmbusReadByte:
+ case EfiSmbusWriteByte:
+ case EfiSmbusReadWord:
+ case EfiSmbusWriteWord:
+ case EfiSmbusProcessCall:
+ case EfiSmbusBWBRProcessCall:
+ DEBUG ((DEBUG_ERROR, "%a: Unsupported command\n", __func__));
+ Status = EFI_UNSUPPORTED;
+ break;
+
+ default:
+ Status = EFI_INVALID_PARAMETER;
+ }
+
+ return Status;
+}
diff --git a/Silicon/Ampere/AmpereAltraPkg/Drivers/SmbusHc/SmbusHcDxe.c b/Silicon/Ampere/AmpereAltraPkg/Drivers/SmbusHc/SmbusHcDxe.c
new file mode 100644
index 000000000000..49a16a2c3d7e
--- /dev/null
+++ b/Silicon/Ampere/AmpereAltraPkg/Drivers/SmbusHc/SmbusHcDxe.c
@@ -0,0 +1,277 @@
+/** SmbusHc protocol implementation follows SMBus 2.0 specification.
+
+ Copyright (c) 2024, Ampere Computing LLC. All rights reserved.<BR>
+
+ SPDX-License-Identifier: BSD-2-Clause-Patent
+
+**/
+
+#include <Library/BaseMemoryLib.h>
+#include <Library/DebugLib.h>
+#include <Library/GpioLib.h>
+#include <Library/I2cLib.h>
+#include <Library/PcdLib.h>
+#include <Library/UefiBootServicesTableLib.h>
+#include <Protocol/SmbusHc.h>
+
+#include "SmbusHcCommon.h"
+
+//
+// Handle to install SMBus Host Controller protocol.
+//
+EFI_HANDLE mSmbusHcHandle = NULL;
+
+/**
+ Executes an SMBus operation to an SMBus controller. Returns when either the command has been
+ executed or an error is encountered in doing the operation.
+
+ The Execute() function provides a standard way to execute an operation as defined in the System
+ Management Bus (SMBus) Specification. The resulting transaction will be either that the SMBus
+ slave devices accept this transaction or that this function returns with error.
+
+ @param This A pointer to the EFI_SMBUS_HC_PROTOCOL instance.
+ @param SlaveAddress The SMBus slave address of the device with which to communicate.
+ @param Command This command is transmitted by the SMBus host controller to the
+ SMBus slave device and the interpretation is SMBus slave device
+ specific. It can mean the offset to a list of functions inside an
+ SMBus slave device. Not all operations or slave devices support
+ this command's registers.
+ @param Operation Signifies which particular SMBus hardware protocol instance that
+ it will use to execute the SMBus transactions. This SMBus
+ hardware protocol is defined by the SMBus Specification and is
+ not related to EFI.
+ @param PecCheck Defines if Packet Error Code (PEC) checking is required for this
+ operation.
+ @param Length Signifies the number of bytes that this operation will do. The
+ maximum number of bytes can be revision specific and operation
+ specific. This field will contain the actual number of bytes that
+ are executed for this operation. Not all operations require this
+ argument.
+ @param Buffer Contains the value of data to execute to the SMBus slave device.
+ Not all operations require this argument. The length of this
+ buffer is identified by Length.
+
+ @retval EFI_SUCCESS The last data that was returned from the access matched the poll
+ exit criteria.
+ @retval EFI_CRC_ERROR Checksum is not correct (PEC is incorrect).
+ @retval EFI_TIMEOUT Timeout expired before the operation was completed. Timeout is
+ determined by the SMBus host controller device.
+ @retval EFI_OUT_OF_RESOURCES The request could not be completed due to a lack of resources.
+ @retval EFI_DEVICE_ERROR The request was not completed because a failure that was
+ reflected in the Host Status Register bit. Device errors are a
+ result of a transaction collision, illegal command field,
+ unclaimed cycle (host initiated), or bus errors (collisions).
+ @retval EFI_INVALID_PARAMETER Operation is not defined in EFI_SMBUS_OPERATION.
+ @retval EFI_INVALID_PARAMETER Length/Buffer is NULL for operations except for EfiSmbusQuickRead
+ and EfiSmbusQuickWrite. Length is outside the range of valid
+ values.
+ @retval EFI_UNSUPPORTED The SMBus operation or PEC is not supported.
+ @retval EFI_BUFFER_TOO_SMALL Buffer is not sufficient for this operation.
+
+**/
+EFI_STATUS
+EFIAPI
+SmbusHcExecute (
+ IN CONST EFI_SMBUS_HC_PROTOCOL *This,
+ IN EFI_SMBUS_DEVICE_ADDRESS SlaveAddress,
+ IN EFI_SMBUS_DEVICE_COMMAND Command,
+ IN EFI_SMBUS_OPERATION Operation,
+ IN BOOLEAN PecCheck,
+ IN OUT UINTN *Length,
+ IN OUT VOID *Buffer
+ )
+{
+ EFI_STATUS Status;
+ EFI_TPL OldTpl;
+
+ ASSERT (This != NULL);
+
+ OldTpl = gBS->RaiseTPL (TPL_HIGH_LEVEL);
+
+ Status = SmbusHcCommonExecute (SlaveAddress, Command, Operation, PecCheck, Length, Buffer);
+
+ gBS->RestoreTPL (OldTpl);
+
+ return Status;
+}
+
+/**
+
+ The SmbusHcArpDevice() function provides a standard way for a device driver to
+ enumerate the entire SMBus or specific devices on the bus.
+
+ @param This A pointer to the EFI_SMBUS_HC_PROTOCOL instance.
+
+ @param ArpAll A Boolean expression that indicates if the
+ host drivers need to enumerate all the devices
+ or enumerate only the device that is
+ identified by SmbusUdid. If ArpAll is TRUE,
+ SmbusUdid and SlaveAddress are optional. If
+ ArpAll is FALSE, ArpDevice will enumerate
+ SmbusUdid and the address will be at
+ SlaveAddress.
+
+ @param SmbusUdid The Unique Device Identifier (UDID) that is
+ associated with this device. Type
+ EFI_SMBUS_UDID is defined in
+ EFI_PEI_SMBUS_PPI.ArpDevice() in the
+ Platform Initialization SMBus PPI
+ Specification.
+
+ @param SlaveAddress The SMBus slave address that is
+ associated with an SMBus UDID.
+
+ @retval EFI_SUCCESS The last data that was returned from the
+ access matched the poll exit criteria.
+
+ @retval EFI_CRC_ERROR Checksum is not correct (PEC is
+ incorrect).
+
+ @retval EFI_TIMEOUT Timeout expired before the operation was
+ completed. Timeout is determined by the
+ SMBus host controller device.
+
+ @retval EFI_OUT_OF_RESOURCES The request could not be
+ completed due to a lack of
+ resources.
+
+ @retval EFI_DEVICE_ERROR The request was not completed
+ because a failure was reflected in
+ the Host Status Register bit. Device
+ Errors are a result of a transaction
+ collision, illegal command field,
+ unclaimed cycle (host initiated), or
+ bus errors (collisions).
+
+ @retval EFI_UNSUPPORTED ArpDevice, GetArpMap, and Notify are
+ not implemented by this driver.
+
+**/
+EFI_STATUS
+EFIAPI
+SmbusHcArpDevice (
+ IN CONST EFI_SMBUS_HC_PROTOCOL *This,
+ IN BOOLEAN ArpAll,
+ IN EFI_SMBUS_UDID *SmbusUdid, OPTIONAL
+ IN OUT EFI_SMBUS_DEVICE_ADDRESS *SlaveAddress OPTIONAL
+ )
+{
+ //
+ // Not supported
+ //
+ return EFI_UNSUPPORTED;
+}
+
+/**
+ The SmbusHcGetArpMap() function returns the mapping of all the SMBus devices
+ that were enumerated by the SMBus host driver.
+
+ @param This A pointer to the EFI_SMBUS_HC_PROTOCOL instance.
+
+ @param Length Size of the buffer that contains the SMBus
+ device map.
+
+ @param SmbusDeviceMap The pointer to the device map as
+ enumerated by the SMBus controller
+ driver.
+
+ @retval EFI_SUCCESS The SMBus returned the current device map.
+
+ @retval EFI_UNSUPPORTED ArpDevice, GetArpMap, and Notify are
+ not implemented by this driver.
+
+**/
+EFI_STATUS
+EFIAPI
+SmbusHcGetArpMap (
+ IN CONST EFI_SMBUS_HC_PROTOCOL *This,
+ IN OUT UINTN *Length,
+ IN OUT EFI_SMBUS_DEVICE_MAP **SmbusDeviceMap
+ )
+{
+ //
+ // Not supported
+ //
+ return EFI_UNSUPPORTED;
+}
+
+/**
+
+ The SmbusHcNotify() function registers all the callback functions to
+ allow the bus driver to call these functions when the
+ SlaveAddress/Data pair happens.
+
+ @param This A pointer to the EFI_SMBUS_HC_PROTOCOL instance.
+
+ @param SlaveAddress Address that the host controller detects
+ as sending a message and calls all the registered function.
+
+ @param Data Data that the host controller detects as sending
+ message and calls all the registered function.
+
+
+ @param NotifyFunction The function to call when the bus
+ driver detects the SlaveAddress and
+ Data pair.
+
+ @retval EFI_SUCCESS NotifyFunction was registered.
+
+ @retval EFI_UNSUPPORTED ArpDevice, GetArpMap, and Notify are
+ not implemented by this driver.
+
+**/
+EFI_STATUS
+EFIAPI
+SmbusHcNotify (
+ IN CONST EFI_SMBUS_HC_PROTOCOL *This,
+ IN EFI_SMBUS_DEVICE_ADDRESS SlaveAddress,
+ IN UINTN Data,
+ IN EFI_SMBUS_NOTIFY_FUNCTION NotifyFunction
+ )
+{
+ //
+ // Not supported
+ //
+ return EFI_UNSUPPORTED;
+}
+
+//
+// Interface defintion of SMBUS Host Controller Protocol.
+//
+EFI_SMBUS_HC_PROTOCOL mSmbusHcProtocol = {
+ SmbusHcExecute,
+ SmbusHcArpDevice,
+ SmbusHcGetArpMap,
+ SmbusHcNotify
+};
+
+/**
+ SmbusHc driver entry point
+
+ @param[in] ImageHandle ImageHandle of this module
+ @param[in] SystemTable EFI System Table
+
+ @retval EFI_SUCCESS Driver initializes successfully
+ @retval Other values Some error occurred
+**/
+EFI_STATUS
+InitializeSmbus (
+ IN EFI_HANDLE ImageHandle,
+ IN EFI_SYSTEM_TABLE *SystemTable
+ )
+{
+ EFI_STATUS Status;
+
+ //
+ // Install Smbus protocol
+ //
+ Status = gBS->InstallMultipleProtocolInterfaces (
+ &mSmbusHcHandle,
+ &gEfiSmbusHcProtocolGuid,
+ &mSmbusHcProtocol,
+ NULL
+ );
+ ASSERT_EFI_ERROR (Status);
+
+ return Status;
+}
diff --git a/Silicon/Ampere/AmpereAltraPkg/Drivers/SmbusHc/SmbusHcPei.c b/Silicon/Ampere/AmpereAltraPkg/Drivers/SmbusHc/SmbusHcPei.c
new file mode 100644
index 000000000000..39483a2a602a
--- /dev/null
+++ b/Silicon/Ampere/AmpereAltraPkg/Drivers/SmbusHc/SmbusHcPei.c
@@ -0,0 +1,263 @@
+/** @file
+ SmbusHc protocol implementation follows SMBus 2.0 specification.
+
+ Copyright (c) 2024, Ampere Computing LLC. All rights reserved.<BR>
+
+ SPDX-License-Identifier: BSD-2-Clause-Patent
+
+**/
+
+#include <Library/BaseMemoryLib.h>
+#include <Library/DebugLib.h>
+#include <Library/PeiServicesLib.h>
+#include <Ppi/Smbus2.h>
+
+#include "SmbusHcCommon.h"
+
+/**
+ Executes an SMBus operation to an SMBus controller. Returns when either the command has been
+ executed or an error is encountered in doing the operation.
+
+ The Execute() function provides a standard way to execute an operation as defined in the System
+ Management Bus (SMBus) Specification. The resulting transaction will be either that the SMBus
+ slave devices accept this transaction or that this function returns with error.
+
+ @param This A pointer to the EFI_PEI_SMBUS2_PPI instance.
+ @param SlaveAddress The SMBus slave address of the device with which to communicate.
+ @param Command This command is transmitted by the SMBus host controller to the
+ SMBus slave device and the interpretation is SMBus slave device
+ specific. It can mean the offset to a list of functions inside an
+ SMBus slave device. Not all operations or slave devices support
+ this command's registers.
+ @param Operation Signifies which particular SMBus hardware protocol instance that
+ it will use to execute the SMBus transactions. This SMBus
+ hardware protocol is defined by the SMBus Specification and is
+ not related to EFI.
+ @param PecCheck Defines if Packet Error Code (PEC) checking is required for this
+ operation.
+ @param Length Signifies the number of bytes that this operation will do. The
+ maximum number of bytes can be revision specific and operation
+ specific. This field will contain the actual number of bytes that
+ are executed for this operation. Not all operations require this
+ argument.
+ @param Buffer Contains the value of data to execute to the SMBus slave device.
+ Not all operations require this argument. The length of this
+ buffer is identified by Length.
+
+ @retval EFI_SUCCESS The last data that was returned from the access matched the poll
+ exit criteria.
+ @retval EFI_CRC_ERROR Checksum is not correct (PEC is incorrect).
+ @retval EFI_TIMEOUT Timeout expired before the operation was completed. Timeout is
+ determined by the SMBus host controller device.
+ @retval EFI_OUT_OF_RESOURCES The request could not be completed due to a lack of resources.
+ @retval EFI_DEVICE_ERROR The request was not completed because a failure that was
+ reflected in the Host Status Register bit. Device errors are a
+ result of a transaction collision, illegal command field,
+ unclaimed cycle (host initiated), or bus errors (collisions).
+ @retval EFI_INVALID_PARAMETER Operation is not defined in EFI_SMBUS_OPERATION.
+ @retval EFI_INVALID_PARAMETER Length/Buffer is NULL for operations except for EfiSmbusQuickRead
+ and EfiSmbusQuickWrite. Length is outside the range of valid
+ values.
+ @retval EFI_UNSUPPORTED The SMBus operation or PEC is not supported.
+ @retval EFI_BUFFER_TOO_SMALL Buffer is not sufficient for this operation.
+
+**/
+EFI_STATUS
+EFIAPI
+SmbusHcExecute (
+ IN CONST EFI_PEI_SMBUS2_PPI *This,
+ IN EFI_SMBUS_DEVICE_ADDRESS SlaveAddress,
+ IN EFI_SMBUS_DEVICE_COMMAND Command,
+ IN EFI_SMBUS_OPERATION Operation,
+ IN BOOLEAN PecCheck,
+ IN OUT UINTN *Length,
+ IN OUT VOID *Buffer
+ )
+{
+ ASSERT (This != NULL);
+ return SmbusHcCommonExecute (SlaveAddress, Command, Operation, PecCheck, Length, Buffer);
+}
+
+/**
+
+ The SmbusHcArpDevice() function provides a standard way for a device driver to
+ enumerate the entire SMBus or specific devices on the bus.
+
+ @param This A pointer to the EFI_PEI_SMBUS2_PPI instance.
+
+ @param ArpAll A Boolean expression that indicates if the
+ host drivers need to enumerate all the devices
+ or enumerate only the device that is
+ identified by SmbusUdid. If ArpAll is TRUE,
+ SmbusUdid and SlaveAddress are optional. If
+ ArpAll is FALSE, ArpDevice will enumerate
+ SmbusUdid and the address will be at
+ SlaveAddress.
+
+ @param SmbusUdid The Unique Device Identifier (UDID) that is
+ associated with this device. Type
+ EFI_SMBUS_UDID is defined in
+ EFI_PEI_SMBUS_PPI.ArpDevice() in the
+ Platform Initialization SMBus PPI
+ Specification.
+
+ @param SlaveAddress The SMBus slave address that is
+ associated with an SMBus UDID.
+
+ @retval EFI_SUCCESS The last data that was returned from the
+ access matched the poll exit criteria.
+
+ @retval EFI_CRC_ERROR Checksum is not correct (PEC is
+ incorrect).
+
+ @retval EFI_TIMEOUT Timeout expired before the operation was
+ completed. Timeout is determined by the
+ SMBus host controller device.
+
+ @retval EFI_OUT_OF_RESOURCES The request could not be
+ completed due to a lack of
+ resources.
+
+ @retval EFI_DEVICE_ERROR The request was not completed
+ because a failure was reflected in
+ the Host Status Register bit. Device
+ Errors are a result of a transaction
+ collision, illegal command field,
+ unclaimed cycle (host initiated), or
+ bus errors (collisions).
+
+ @retval EFI_UNSUPPORTED ArpDevice, GetArpMap, and Notify are
+ not implemented by this driver.
+
+**/
+EFI_STATUS
+EFIAPI
+SmbusHcArpDevice (
+ IN CONST EFI_PEI_SMBUS2_PPI *This,
+ IN BOOLEAN ArpAll,
+ IN EFI_SMBUS_UDID *SmbusUdid, OPTIONAL
+ IN OUT EFI_SMBUS_DEVICE_ADDRESS *SlaveAddress OPTIONAL
+ )
+{
+ //
+ // Not supported
+ //
+ return EFI_UNSUPPORTED;
+}
+
+/**
+ The SmbusHcGetArpMap() function returns the mapping of all the SMBus devices
+ that were enumerated by the SMBus host driver.
+
+ @param This A pointer to the EFI_PEI_SMBUS2_PPI instance.
+
+ @param Length Size of the buffer that contains the SMBus
+ device map.
+
+ @param SmbusDeviceMap The pointer to the device map as
+ enumerated by the SMBus controller
+ driver.
+
+ @retval EFI_SUCCESS The SMBus returned the current device map.
+
+ @retval EFI_UNSUPPORTED ArpDevice, GetArpMap, and Notify are
+ not implemented by this driver.
+
+**/
+EFI_STATUS
+EFIAPI
+SmbusHcGetArpMap (
+ IN CONST EFI_PEI_SMBUS2_PPI *This,
+ IN OUT UINTN *Length,
+ IN OUT EFI_SMBUS_DEVICE_MAP **SmbusDeviceMap
+ )
+{
+ //
+ // Not supported
+ //
+ return EFI_UNSUPPORTED;
+}
+
+/**
+
+ The SmbusHcNotify() function registers all the callback functions to
+ allow the bus driver to call these functions when the
+ SlaveAddress/Data pair happens.
+
+ @param This A pointer to the EFI_PEI_SMBUS2_PPI instance.
+
+ @param SlaveAddress Address that the host controller detects
+ as sending a message and calls all the registered function.
+
+ @param Data Data that the host controller detects as sending
+ message and calls all the registered function.
+
+
+ @param NotifyFunction The function to call when the bus
+ driver detects the SlaveAddress and
+ Data pair.
+
+ @retval EFI_SUCCESS NotifyFunction was registered.
+
+ @retval EFI_UNSUPPORTED ArpDevice, GetArpMap, and Notify are
+ not implemented by this driver.
+
+**/
+EFI_STATUS
+EFIAPI
+SmbusHcNotify (
+ IN CONST EFI_PEI_SMBUS2_PPI *This,
+ IN EFI_SMBUS_DEVICE_ADDRESS SlaveAddress,
+ IN UINTN Data,
+ IN EFI_PEI_SMBUS_NOTIFY2_FUNCTION NotifyFunction
+ )
+{
+ //
+ // Not supported
+ //
+ return EFI_UNSUPPORTED;
+}
+
+//
+// Interface defintion of SMBUS Host Controller Protocol.
+//
+EFI_PEI_SMBUS2_PPI mSmbusHcPpi = {
+ SmbusHcExecute,
+ SmbusHcArpDevice,
+ SmbusHcGetArpMap,
+ SmbusHcNotify
+};
+
+EFI_PEI_PPI_DESCRIPTOR gPpiSmbusHcPpiList = {
+ (EFI_PEI_PPI_DESCRIPTOR_PPI | EFI_PEI_PPI_DESCRIPTOR_TERMINATE_LIST),
+ &gEfiPeiSmbus2PpiGuid,
+ &mSmbusHcPpi
+};
+
+/**
+ SmbusHc driver entry point
+
+ @param[in] ImageHandle ImageHandle of this module
+ @param[in] PeiServices An indirect pointer to the PEI Services Table
+ published by the PEI Foundation.
+
+ @retval EFI_SUCCESS Driver initializes successfully
+ @retval Other values Some error occurred
+**/
+EFI_STATUS
+EFIAPI
+InitializeSmbusPeim (
+ IN EFI_PEI_FILE_HANDLE FileHandle,
+ IN CONST EFI_PEI_SERVICES **PeiServices
+ )
+{
+ EFI_STATUS Status;
+
+ //
+ // Install Smbus Ppi
+ //
+ Status = PeiServicesInstallPpi (&gPpiSmbusHcPpiList);
+ ASSERT_EFI_ERROR (Status);
+
+ return Status;
+}
--
2.25.1
-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#120264): https://edk2.groups.io/g/devel/message/120264
Mute This Topic: https://groups.io/mt/107765355/7686176
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io]
-=-=-=-=-=-=-=-=-=-=-=-
^ permalink raw reply related [flat|nested] 19+ messages in thread
* [edk2-devel] [edk2-platforms][PATCH v2 4/5] JadePkg: Add PlatformBmcReadyLib to support BMC ready check
2024-08-07 6:47 [edk2-devel] [edk2-platforms][PATCH v2 0/5] Add IPMI SSIF support Nhi Pham via groups.io
` (2 preceding siblings ...)
2024-08-07 6:47 ` [edk2-devel] [edk2-platforms][PATCH v2 3/5] AmpereAltraPkg: Add SmbusHc PEI and DXE drivers Nhi Pham via groups.io
@ 2024-08-07 6:47 ` Nhi Pham via groups.io
2024-08-07 6:47 ` [edk2-devel] [edk2-platforms][PATCH v2 5/5] Ampere/Jade: Enable IPMI SSIF Nhi Pham via groups.io
` (4 subsequent siblings)
8 siblings, 0 replies; 19+ messages in thread
From: Nhi Pham via groups.io @ 2024-08-07 6:47 UTC (permalink / raw)
To: devel; +Cc: quic_llindhol, chuong, rebecca, nhi
This adds the PlatformBmcReadyLib library instance, which provides a
function to check whether the BMC is ready for transaction or not. The
function checks the GPIO pin specified by the PcdBmcReadyGpio PCD and
returns TRUE if the pin is set to a logic high level, indicating that
the BMC is ready.
Signed-off-by: Nhi Pham <nhi@os.amperecomputing.com>
---
Platform/Ampere/JadePkg/Library/PlatformBmcReadyLib/PlatformBmcReadyLib.inf | 29 +++++++++++++++++++
Platform/Ampere/JadePkg/Library/PlatformBmcReadyLib/PlatformBmcReadyLib.c | 30 ++++++++++++++++++++
2 files changed, 59 insertions(+)
diff --git a/Platform/Ampere/JadePkg/Library/PlatformBmcReadyLib/PlatformBmcReadyLib.inf b/Platform/Ampere/JadePkg/Library/PlatformBmcReadyLib/PlatformBmcReadyLib.inf
new file mode 100755
index 000000000000..493178c3fc5e
--- /dev/null
+++ b/Platform/Ampere/JadePkg/Library/PlatformBmcReadyLib/PlatformBmcReadyLib.inf
@@ -0,0 +1,29 @@
+## @file
+#
+# Copyright (c) 2024, Ampere Computing LLC. All rights reserved.<BR>
+#
+# SPDX-License-Identifier: BSD-2-Clause-Patent
+#
+##
+
+[Defines]
+ INF_VERSION = 0x0001001B
+ BASE_NAME = PlatformBmcReadyLib
+ FILE_GUID = D7D58480-96D5-4820-AC2D-472F4E0B9903
+ MODULE_TYPE = BASE
+ VERSION_STRING = 1.0
+ LIBRARY_CLASS = PlatformBmcReadyLib
+
+[Sources]
+ PlatformBmcReadyLib.c
+
+[Packages]
+ MdePkg/MdePkg.dec
+ Silicon/Ampere/AmpereSiliconPkg/AmpereSiliconPkg.dec
+ Silicon/Ampere/AmpereAltraPkg/AmpereAltraPkg.dec
+
+[LibraryClasses]
+ GpioLib
+
+[Pcd]
+ gAmpereTokenSpaceGuid.PcdBmcReadyGpio
diff --git a/Platform/Ampere/JadePkg/Library/PlatformBmcReadyLib/PlatformBmcReadyLib.c b/Platform/Ampere/JadePkg/Library/PlatformBmcReadyLib/PlatformBmcReadyLib.c
new file mode 100644
index 000000000000..b1712ff393c8
--- /dev/null
+++ b/Platform/Ampere/JadePkg/Library/PlatformBmcReadyLib/PlatformBmcReadyLib.c
@@ -0,0 +1,30 @@
+/** @file
+
+ Copyright (c) 2024, Ampere Computing LLC. All rights reserved.<BR>
+
+ SPDX-License-Identifier: BSD-2-Clause-Patent
+
+**/
+
+#include <Uefi.h>
+#include <Library/GpioLib.h>
+#include <Library/PcdLib.h>
+
+/**
+ This function checks whether BMC is ready for transaction or not.
+
+ @retval TRUE The BMC is ready.
+ @retval FALSE The BMC is not ready.
+
+**/
+BOOLEAN
+EFIAPI
+PlatformBmcReady (
+ VOID
+ )
+{
+ //
+ // The BMC is considered ready if its GPIO pin is set to a logic high level.
+ //
+ return GpioReadBit (FixedPcdGet8 (PcdBmcReadyGpio)) == 0x1;
+}
--
2.25.1
-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#120265): https://edk2.groups.io/g/devel/message/120265
Mute This Topic: https://groups.io/mt/107765356/7686176
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io]
-=-=-=-=-=-=-=-=-=-=-=-
^ permalink raw reply related [flat|nested] 19+ messages in thread
* [edk2-devel] [edk2-platforms][PATCH v2 5/5] Ampere/Jade: Enable IPMI SSIF
2024-08-07 6:47 [edk2-devel] [edk2-platforms][PATCH v2 0/5] Add IPMI SSIF support Nhi Pham via groups.io
` (3 preceding siblings ...)
2024-08-07 6:47 ` [edk2-devel] [edk2-platforms][PATCH v2 4/5] JadePkg: Add PlatformBmcReadyLib to support BMC ready check Nhi Pham via groups.io
@ 2024-08-07 6:47 ` Nhi Pham via groups.io
2024-08-07 7:16 ` [edk2-devel] [edk2-platforms][PATCH v2 0/5] Add IPMI SSIF support Chang, Abner via groups.io
` (3 subsequent siblings)
8 siblings, 0 replies; 19+ messages in thread
From: Nhi Pham via groups.io @ 2024-08-07 6:47 UTC (permalink / raw)
To: devel; +Cc: quic_llindhol, chuong, rebecca, nhi
This adds the building of IPMI SSIf and associated modules.
Signed-off-by: Nhi Pham <nhi@os.amperecomputing.com>
---
Silicon/Ampere/AmpereAltraPkg/AmpereAltraPkg.dsc.inc | 23 ++++++++++++++++++++
Platform/Ampere/JadePkg/Jade.dsc | 2 ++
Platform/Ampere/JadePkg/Jade.fdf | 17 +++++++++++++++
3 files changed, 42 insertions(+)
diff --git a/Silicon/Ampere/AmpereAltraPkg/AmpereAltraPkg.dsc.inc b/Silicon/Ampere/AmpereAltraPkg/AmpereAltraPkg.dsc.inc
index 71a33f9ff36a..ba18e75d531d 100644
--- a/Silicon/Ampere/AmpereAltraPkg/AmpereAltraPkg.dsc.inc
+++ b/Silicon/Ampere/AmpereAltraPkg/AmpereAltraPkg.dsc.inc
@@ -91,6 +91,7 @@ [LibraryClasses.common]
GpioLib|Silicon/Ampere/AmpereAltraPkg/Library/DwGpioLib/DwGpioLib.inf
MmCommunicationLib|Silicon/Ampere/AmpereAltraPkg/Library/MmCommunicationLib/MmCommunicationLib.inf
FlashLib|Silicon/Ampere/AmpereAltraPkg/Library/FlashLib/FlashLib.inf
+ ManageabilityTransportHelperLib|ManageabilityPkg/Library/BaseManageabilityTransportHelperLib/BaseManageabilityTransportHelper.inf
#
# ARM PL011 UART Driver
@@ -211,6 +212,10 @@ [LibraryClasses.common.PEIM]
ExtractGuidedSectionLib|MdePkg/Library/PeiExtractGuidedSectionLib/PeiExtractGuidedSectionLib.inf
PeiServicesTablePointerLib|ArmPkg/Library/PeiServicesTablePointerLib/PeiServicesTablePointerLib.inf
+ SmbusLib|MdePkg/Library/PeiSmbusLibSmbus2Ppi/PeiSmbusLibSmbus2Ppi.inf
+ IpmiLib|MdeModulePkg/Library/PeiIpmiLibIpmiPpi/PeiIpmiLibIpmiPpi.inf
+ ManageabilityTransportLib|ManageabilityPkg/Library/ManageabilityTransportSsifLib/Pei/PeiManageabilityTransportSsif.inf
+
[LibraryClasses.common.SEC, LibraryClasses.common.PEIM]
MemoryInitPeiLib|Silicon/Ampere/AmpereAltraPkg/Library/MemoryInitPeiLib/MemoryInitPeiLib.inf
BaseMemoryLib|MdePkg/Library/BaseMemoryLib/BaseMemoryLib.inf
@@ -264,6 +269,12 @@ [LibraryClasses.common.DXE_RUNTIME_DRIVER]
AmpereCpuLib|Silicon/Ampere/AmpereAltraPkg/Library/AmpereCpuLib/RuntimeAmpereCpuLib.inf
FlashLib|Silicon/Ampere/AmpereAltraPkg/Library/FlashLib/RuntimeFlashLib.inf
+[LibraryClasses.common.UEFI_DRIVER, LibraryClasses.common.UEFI_APPLICATION, LibraryClasses.common.DXE_RUNTIME_DRIVER, LibraryClasses.common.DXE_DRIVER]
+ SmbusLib|MdePkg/Library/DxeSmbusLib/DxeSmbusLib.inf
+ IpmiLib|MdeModulePkg/Library/DxeIpmiLibIpmiProtocol/DxeIpmiLibIpmiProtocol.inf
+ IpmiCommandLib|ManageabilityPkg/Library/IpmiCommandLib/IpmiCommandLib.inf
+ ManageabilityTransportLib|ManageabilityPkg/Library/ManageabilityTransportSsifLib/Dxe/DxeManageabilityTransportSsif.inf
+
[LibraryClasses.ARM,LibraryClasses.AARCH64]
#
# It is not possible to prevent the ARM compiler for generic intrinsic functions.
@@ -547,6 +558,12 @@ [Components.common]
MdeModulePkg/Universal/StatusCodeHandler/Pei/StatusCodeHandlerPei.inf
Silicon/Ampere/AmpereAltraPkg/Drivers/BootProgress/BootProgressPeim/BootProgressPeim.inf
+ #
+ # IPMI SSIF
+ #
+ Silicon/Ampere/AmpereAltraPkg/Drivers/SmbusHc/SmbusHcPei.inf
+ ManageabilityPkg/Universal/IpmiProtocol/Pei/IpmiPpiPei.inf
+
#
# DXE Phase modules
#
@@ -689,6 +706,12 @@ [Components.common]
#
Silicon/Ampere/AmpereAltraPkg/Drivers/RngDxe/RngDxe.inf
+ #
+ # IPMI SSIF
+ #
+ Silicon/Ampere/AmpereAltraPkg/Drivers/SmbusHc/SmbusHcDxe.inf
+ ManageabilityPkg/Universal/IpmiProtocol/Dxe/IpmiProtocolDxe.inf
+
#
# Bds
#
diff --git a/Platform/Ampere/JadePkg/Jade.dsc b/Platform/Ampere/JadePkg/Jade.dsc
index 1bd9f2ec1583..29d43f0d4a49 100644
--- a/Platform/Ampere/JadePkg/Jade.dsc
+++ b/Platform/Ampere/JadePkg/Jade.dsc
@@ -89,6 +89,8 @@ [LibraryClasses]
OemMiscLib|Platform/Ampere/JadePkg/Library/OemMiscLib/OemMiscLib.inf
+ PlatformBmcReadyLib|Platform/Ampere/JadePkg/Library/PlatformBmcReadyLib/PlatformBmcReadyLib.inf
+
################################################################################
#
# Specific Platform Pcds
diff --git a/Platform/Ampere/JadePkg/Jade.fdf b/Platform/Ampere/JadePkg/Jade.fdf
index 4091e4c06300..c1889f4a13dd 100644
--- a/Platform/Ampere/JadePkg/Jade.fdf
+++ b/Platform/Ampere/JadePkg/Jade.fdf
@@ -146,6 +146,11 @@ [FV.FVMAIN_COMPACT]
INF MdeModulePkg/Universal/PCD/Pei/Pcd.inf
INF MdeModulePkg/Universal/ReportStatusCodeRouter/Pei/ReportStatusCodeRouterPei.inf
INF MdeModulePkg/Universal/StatusCodeHandler/Pei/StatusCodeHandlerPei.inf
+ INF Silicon/Ampere/AmpereAltraPkg/Drivers/ATFHobPei/ATFHobPeim.inf
+ INF Silicon/Ampere/AmpereAltraPkg/Drivers/SmbusHc/SmbusHcPei.inf
+ INF ManageabilityPkg/Universal/IpmiProtocol/Pei/IpmiPpiPei.inf
+ INF Silicon/Ampere/AmpereAltraPkg/Drivers/FlashPei/FlashPei.inf
+ INF MdeModulePkg/Universal/Variable/Pei/VariablePei.inf
}
INF ArmPlatformPkg/Sec/Sec.inf
@@ -164,6 +169,12 @@ [FV.FVMAIN_COMPACT]
INF MdeModulePkg/Universal/StatusCodeHandler/Pei/StatusCodeHandlerPei.inf
INF Silicon/Ampere/AmpereAltraPkg/Drivers/PcieInitPei/PcieInitPei.inf
+ #
+ # IPMI SSIF
+ #
+ INF Silicon/Ampere/AmpereAltraPkg/Drivers/SmbusHc/SmbusHcPei.inf
+ INF ManageabilityPkg/Universal/IpmiProtocol/Pei/IpmiPpiPei.inf
+
#
# Print platform information before passing control into the Driver Execution Environment (DXE) phase
#
@@ -311,6 +322,12 @@ [FV.FvMain]
#
INF Silicon/Ampere/AmpereAltraPkg/Drivers/RngDxe/RngDxe.inf
+ #
+ # IPMI SSIF
+ #
+ INF Silicon/Ampere/AmpereAltraPkg/Drivers/SmbusHc/SmbusHcDxe.inf
+ INF ManageabilityPkg/Universal/IpmiProtocol/Dxe/IpmiProtocolDxe.inf
+
#
# UEFI application (Shell Embedded Boot Loader)
#
--
2.25.1
-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#120266): https://edk2.groups.io/g/devel/message/120266
Mute This Topic: https://groups.io/mt/107765357/7686176
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io]
-=-=-=-=-=-=-=-=-=-=-=-
^ permalink raw reply related [flat|nested] 19+ messages in thread
* Re: [edk2-devel] [edk2-platforms][PATCH v2 0/5] Add IPMI SSIF support
2024-08-07 6:47 [edk2-devel] [edk2-platforms][PATCH v2 0/5] Add IPMI SSIF support Nhi Pham via groups.io
` (4 preceding siblings ...)
2024-08-07 6:47 ` [edk2-devel] [edk2-platforms][PATCH v2 5/5] Ampere/Jade: Enable IPMI SSIF Nhi Pham via groups.io
@ 2024-08-07 7:16 ` Chang, Abner via groups.io
2024-08-07 7:35 ` Nhi Pham via groups.io
2024-08-07 10:23 ` Leif Lindholm
2024-08-08 3:06 ` Nhi Pham via groups.io
` (2 subsequent siblings)
8 siblings, 2 replies; 19+ messages in thread
From: Chang, Abner via groups.io @ 2024-08-07 7:16 UTC (permalink / raw)
To: devel@edk2.groups.io, nhi@os.amperecomputing.com
Cc: quic_llindhol@quicinc.com, chuong@os.amperecomputing.com,
rebecca@os.amperecomputing.com
[AMD Official Use Only - AMD Internal Distribution Only]
Hi Pham,
We already move edk2-platforms review through GitHub PR. Could you please send the PR against edk2-platforms?
Thanks
Abner
> -----Original Message-----
> From: devel@edk2.groups.io <devel@edk2.groups.io> On Behalf Of Nhi Pham
> via groups.io
> Sent: Wednesday, August 7, 2024 2:47 PM
> To: devel@edk2.groups.io
> Cc: quic_llindhol@quicinc.com; chuong@os.amperecomputing.com;
> rebecca@os.amperecomputing.com; nhi@os.amperecomputing.com
> Subject: [edk2-devel] [edk2-platforms][PATCH v2 0/5] Add IPMI SSIF support
>
> Caution: This message originated from an External Source. Use proper caution
> when opening attachments, clicking links, or responding.
>
>
> This updates the I2C library and implements SMBUS PEI/DXE drivers to
> support IPMI SSIF in the Mt. Jade platform.
>
> v2:
> - Refine the changes of the DwI2cLib per Leif's comments and update the
> commit message accordingly.
> - Remove the additional PCD PcdBmcSlaveAddr since it's is unused.
>
> NOTE: Regarding the controller/target terminology, the function
> prototype and comment are derived from edk2/MdePkg. In this patch set, I
> am trying to avoid misusing the terms in the implementation instead of
> altering the function prototype and comment with the PPI and Protocol.
>
> Nhi Pham (5):
> AmpereAltraPkg/DwI2cLib: Add support for SMBUS+PEC operation
> AmpereSiliconPkg: Define PCDs for SMBUS and BMC
> AmpereAltraPkg: Add SmbusHc PEI and DXE drivers
> JadePkg: Add PlatformBmcReadyLib to support BMC ready check
> Ampere/Jade: Enable IPMI SSIF
>
> Silicon/Ampere/AmpereSiliconPkg/AmpereSiliconPkg.dec | 15 +-
> Silicon/Ampere/AmpereAltraPkg/AmpereAltraPkg.dsc.inc | 23 ++
> Platform/Ampere/JadePkg/Jade.dsc | 2 +
> Platform/Ampere/JadePkg/Jade.fdf | 17 ++
>
> Platform/Ampere/JadePkg/Library/PlatformBmcReadyLib/PlatformBmcReady
> Lib.inf | 29 ++
> Silicon/Ampere/AmpereAltraPkg/Drivers/SmbusHc/SmbusHcDxe.inf |
> 43 +++
> Silicon/Ampere/AmpereAltraPkg/Drivers/SmbusHc/SmbusHcPei.inf |
> 43 +++
> Silicon/Ampere/AmpereAltraPkg/Drivers/SmbusHc/SmbusHcCommon.h
> | 95 +++++++
> Silicon/Ampere/AmpereAltraPkg/Include/Library/I2cLib.h | 11 +-
> Platform/Ampere/JadePkg/Library/PCF85063RealTimeClockLib/PCF85063.c
> | 6 +-
>
> Platform/Ampere/JadePkg/Library/PlatformBmcReadyLib/PlatformBmcReady
> Lib.c | 30 +++
> Silicon/Ampere/AmpereAltraPkg/Drivers/SmbusHc/SmbusHcCommon.c
> | 261 ++++++++++++++++++
> Silicon/Ampere/AmpereAltraPkg/Drivers/SmbusHc/SmbusHcDxe.c |
> 277 ++++++++++++++++++++
> Silicon/Ampere/AmpereAltraPkg/Drivers/SmbusHc/SmbusHcPei.c |
> 263 +++++++++++++++++++
> Silicon/Ampere/AmpereAltraPkg/Library/DwI2cLib/DwI2cLib.c | 129
> ++++++++-
> 15 files changed, 1227 insertions(+), 17 deletions(-)
> create mode 100755
> Platform/Ampere/JadePkg/Library/PlatformBmcReadyLib/PlatformBmcReady
> Lib.inf
> create mode 100644
> Silicon/Ampere/AmpereAltraPkg/Drivers/SmbusHc/SmbusHcDxe.inf
> create mode 100644
> Silicon/Ampere/AmpereAltraPkg/Drivers/SmbusHc/SmbusHcPei.inf
> create mode 100644
> Silicon/Ampere/AmpereAltraPkg/Drivers/SmbusHc/SmbusHcCommon.h
> create mode 100644
> Platform/Ampere/JadePkg/Library/PlatformBmcReadyLib/PlatformBmcReady
> Lib.c
> create mode 100644
> Silicon/Ampere/AmpereAltraPkg/Drivers/SmbusHc/SmbusHcCommon.c
> create mode 100644
> Silicon/Ampere/AmpereAltraPkg/Drivers/SmbusHc/SmbusHcDxe.c
> create mode 100644
> Silicon/Ampere/AmpereAltraPkg/Drivers/SmbusHc/SmbusHcPei.c
>
> --
> 2.25.1
>
>
>
>
>
-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#120267): https://edk2.groups.io/g/devel/message/120267
Mute This Topic: https://groups.io/mt/107765352/7686176
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io]
-=-=-=-=-=-=-=-=-=-=-=-
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [edk2-devel] [edk2-platforms][PATCH v2 0/5] Add IPMI SSIF support
2024-08-07 7:16 ` [edk2-devel] [edk2-platforms][PATCH v2 0/5] Add IPMI SSIF support Chang, Abner via groups.io
@ 2024-08-07 7:35 ` Nhi Pham via groups.io
2024-08-09 2:44 ` Chang, Abner via groups.io
2024-08-07 10:23 ` Leif Lindholm
1 sibling, 1 reply; 19+ messages in thread
From: Nhi Pham via groups.io @ 2024-08-07 7:35 UTC (permalink / raw)
To: Chang, Abner, devel@edk2.groups.io
Cc: quic_llindhol@quicinc.com, Chuong Tran OS, Rebecca Cran OS
[-- Attachment #1: Type: text/plain, Size: 4783 bytes --]
Sure, Abner. I've created this PR https://github.com/tianocore/edk2-platforms/pull/178
Regards,
Nhi
________________________________
From: Chang, Abner <Abner.Chang@amd.com>
Sent: Wednesday, August 7, 2024 2:16 PM
To: devel@edk2.groups.io <devel@edk2.groups.io>; Nhi Pham OS <nhi@os.amperecomputing.com>
Cc: quic_llindhol@quicinc.com <quic_llindhol@quicinc.com>; Chuong Tran OS <chuong@os.amperecomputing.com>; Rebecca Cran OS <rebecca@os.amperecomputing.com>
Subject: RE: [edk2-devel] [edk2-platforms][PATCH v2 0/5] Add IPMI SSIF support
[AMD Official Use Only - AMD Internal Distribution Only]
Hi Pham,
We already move edk2-platforms review through GitHub PR. Could you please send the PR against edk2-platforms?
Thanks
Abner
> -----Original Message-----
> From: devel@edk2.groups.io <devel@edk2.groups.io> On Behalf Of Nhi Pham
> via groups.io
> Sent: Wednesday, August 7, 2024 2:47 PM
> To: devel@edk2.groups.io
> Cc: quic_llindhol@quicinc.com; chuong@os.amperecomputing.com;
> rebecca@os.amperecomputing.com; nhi@os.amperecomputing.com
> Subject: [edk2-devel] [edk2-platforms][PATCH v2 0/5] Add IPMI SSIF support
>
> Caution: This message originated from an External Source. Use proper caution
> when opening attachments, clicking links, or responding.
>
>
> This updates the I2C library and implements SMBUS PEI/DXE drivers to
> support IPMI SSIF in the Mt. Jade platform.
>
> v2:
> - Refine the changes of the DwI2cLib per Leif's comments and update the
> commit message accordingly.
> - Remove the additional PCD PcdBmcSlaveAddr since it's is unused.
>
> NOTE: Regarding the controller/target terminology, the function
> prototype and comment are derived from edk2/MdePkg. In this patch set, I
> am trying to avoid misusing the terms in the implementation instead of
> altering the function prototype and comment with the PPI and Protocol.
>
> Nhi Pham (5):
> AmpereAltraPkg/DwI2cLib: Add support for SMBUS+PEC operation
> AmpereSiliconPkg: Define PCDs for SMBUS and BMC
> AmpereAltraPkg: Add SmbusHc PEI and DXE drivers
> JadePkg: Add PlatformBmcReadyLib to support BMC ready check
> Ampere/Jade: Enable IPMI SSIF
>
> Silicon/Ampere/AmpereSiliconPkg/AmpereSiliconPkg.dec | 15 +-
> Silicon/Ampere/AmpereAltraPkg/AmpereAltraPkg.dsc.inc | 23 ++
> Platform/Ampere/JadePkg/Jade.dsc | 2 +
> Platform/Ampere/JadePkg/Jade.fdf | 17 ++
>
> Platform/Ampere/JadePkg/Library/PlatformBmcReadyLib/PlatformBmcReady
> Lib.inf | 29 ++
> Silicon/Ampere/AmpereAltraPkg/Drivers/SmbusHc/SmbusHcDxe.inf |
> 43 +++
> Silicon/Ampere/AmpereAltraPkg/Drivers/SmbusHc/SmbusHcPei.inf |
> 43 +++
> Silicon/Ampere/AmpereAltraPkg/Drivers/SmbusHc/SmbusHcCommon.h
> | 95 +++++++
> Silicon/Ampere/AmpereAltraPkg/Include/Library/I2cLib.h | 11 +-
> Platform/Ampere/JadePkg/Library/PCF85063RealTimeClockLib/PCF85063.c
> | 6 +-
>
> Platform/Ampere/JadePkg/Library/PlatformBmcReadyLib/PlatformBmcReady
> Lib.c | 30 +++
> Silicon/Ampere/AmpereAltraPkg/Drivers/SmbusHc/SmbusHcCommon.c
> | 261 ++++++++++++++++++
> Silicon/Ampere/AmpereAltraPkg/Drivers/SmbusHc/SmbusHcDxe.c |
> 277 ++++++++++++++++++++
> Silicon/Ampere/AmpereAltraPkg/Drivers/SmbusHc/SmbusHcPei.c |
> 263 +++++++++++++++++++
> Silicon/Ampere/AmpereAltraPkg/Library/DwI2cLib/DwI2cLib.c | 129
> ++++++++-
> 15 files changed, 1227 insertions(+), 17 deletions(-)
> create mode 100755
> Platform/Ampere/JadePkg/Library/PlatformBmcReadyLib/PlatformBmcReady
> Lib.inf
> create mode 100644
> Silicon/Ampere/AmpereAltraPkg/Drivers/SmbusHc/SmbusHcDxe.inf
> create mode 100644
> Silicon/Ampere/AmpereAltraPkg/Drivers/SmbusHc/SmbusHcPei.inf
> create mode 100644
> Silicon/Ampere/AmpereAltraPkg/Drivers/SmbusHc/SmbusHcCommon.h
> create mode 100644
> Platform/Ampere/JadePkg/Library/PlatformBmcReadyLib/PlatformBmcReady
> Lib.c
> create mode 100644
> Silicon/Ampere/AmpereAltraPkg/Drivers/SmbusHc/SmbusHcCommon.c
> create mode 100644
> Silicon/Ampere/AmpereAltraPkg/Drivers/SmbusHc/SmbusHcDxe.c
> create mode 100644
> Silicon/Ampere/AmpereAltraPkg/Drivers/SmbusHc/SmbusHcPei.c
>
> --
> 2.25.1
>
>
>
>
>
-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#120268): https://edk2.groups.io/g/devel/message/120268
Mute This Topic: https://groups.io/mt/107765352/7686176
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io]
-=-=-=-=-=-=-=-=-=-=-=-
[-- Attachment #2: Type: text/html, Size: 8025 bytes --]
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [edk2-devel] [edk2-platforms][PATCH v2 0/5] Add IPMI SSIF support
2024-08-07 7:35 ` Nhi Pham via groups.io
@ 2024-08-09 2:44 ` Chang, Abner via groups.io
2024-08-09 3:05 ` Nhi Pham via groups.io
0 siblings, 1 reply; 19+ messages in thread
From: Chang, Abner via groups.io @ 2024-08-09 2:44 UTC (permalink / raw)
To: Nhi Pham OS, devel@edk2.groups.io
Cc: quic_llindhol@quicinc.com, Chuong Tran OS, Rebecca Cran OS
[-- Attachment #1: Type: text/plain, Size: 6128 bytes --]
[AMD Official Use Only - AMD Internal Distribution Only]
Hi Pham,
Just realize this patch is not for ManageabilityPkg when I go through the patch, I will leave this to the owner. Also, I shouldn't suggest you to create PR as I am not the owner, sorry about this.
Thanks
Abner
From: Nhi Pham OS <nhi@os.amperecomputing.com>
Sent: Wednesday, August 7, 2024 3:35 PM
To: Chang, Abner <Abner.Chang@amd.com>; devel@edk2.groups.io
Cc: quic_llindhol@quicinc.com; Chuong Tran OS <chuong@os.amperecomputing.com>; Rebecca Cran OS <rebecca@os.amperecomputing.com>
Subject: Re: [edk2-devel] [edk2-platforms][PATCH v2 0/5] Add IPMI SSIF support
[AMD Official Use Only - AMD Internal Distribution Only]
Caution: This message originated from an External Source. Use proper caution when opening attachments, clicking links, or responding.
Sure, Abner. I've created this PR https://github.com/tianocore/edk2-platforms/pull/178
Regards,
Nhi
________________________________
From: Chang, Abner <Abner.Chang@amd.com<mailto:Abner.Chang@amd.com>>
Sent: Wednesday, August 7, 2024 2:16 PM
To: devel@edk2.groups.io<mailto:devel@edk2.groups.io> <devel@edk2.groups.io<mailto:devel@edk2.groups.io>>; Nhi Pham OS <nhi@os.amperecomputing.com<mailto:nhi@os.amperecomputing.com>>
Cc: quic_llindhol@quicinc.com<mailto:quic_llindhol@quicinc.com> <quic_llindhol@quicinc.com<mailto:quic_llindhol@quicinc.com>>; Chuong Tran OS <chuong@os.amperecomputing.com<mailto:chuong@os.amperecomputing.com>>; Rebecca Cran OS <rebecca@os.amperecomputing.com<mailto:rebecca@os.amperecomputing.com>>
Subject: RE: [edk2-devel] [edk2-platforms][PATCH v2 0/5] Add IPMI SSIF support
[AMD Official Use Only - AMD Internal Distribution Only]
Hi Pham,
We already move edk2-platforms review through GitHub PR. Could you please send the PR against edk2-platforms?
Thanks
Abner
> -----Original Message-----
> From: devel@edk2.groups.io<mailto:devel@edk2.groups.io> <devel@edk2.groups.io<mailto:devel@edk2.groups.io>> On Behalf Of Nhi Pham
> via groups.io
> Sent: Wednesday, August 7, 2024 2:47 PM
> To: devel@edk2.groups.io<mailto:devel@edk2.groups.io>
> Cc: quic_llindhol@quicinc.com<mailto:quic_llindhol@quicinc.com>; chuong@os.amperecomputing.com<mailto:chuong@os.amperecomputing.com>;
> rebecca@os.amperecomputing.com<mailto:rebecca@os.amperecomputing.com>; nhi@os.amperecomputing.com<mailto:nhi@os.amperecomputing.com>
> Subject: [edk2-devel] [edk2-platforms][PATCH v2 0/5] Add IPMI SSIF support
>
> Caution: This message originated from an External Source. Use proper caution
> when opening attachments, clicking links, or responding.
>
>
> This updates the I2C library and implements SMBUS PEI/DXE drivers to
> support IPMI SSIF in the Mt. Jade platform.
>
> v2:
> - Refine the changes of the DwI2cLib per Leif's comments and update the
> commit message accordingly.
> - Remove the additional PCD PcdBmcSlaveAddr since it's is unused.
>
> NOTE: Regarding the controller/target terminology, the function
> prototype and comment are derived from edk2/MdePkg. In this patch set, I
> am trying to avoid misusing the terms in the implementation instead of
> altering the function prototype and comment with the PPI and Protocol.
>
> Nhi Pham (5):
> AmpereAltraPkg/DwI2cLib: Add support for SMBUS+PEC operation
> AmpereSiliconPkg: Define PCDs for SMBUS and BMC
> AmpereAltraPkg: Add SmbusHc PEI and DXE drivers
> JadePkg: Add PlatformBmcReadyLib to support BMC ready check
> Ampere/Jade: Enable IPMI SSIF
>
> Silicon/Ampere/AmpereSiliconPkg/AmpereSiliconPkg.dec | 15 +-
> Silicon/Ampere/AmpereAltraPkg/AmpereAltraPkg.dsc.inc | 23 ++
> Platform/Ampere/JadePkg/Jade.dsc | 2 +
> Platform/Ampere/JadePkg/Jade.fdf | 17 ++
>
> Platform/Ampere/JadePkg/Library/PlatformBmcReadyLib/PlatformBmcReady
> Lib.inf | 29 ++
> Silicon/Ampere/AmpereAltraPkg/Drivers/SmbusHc/SmbusHcDxe.inf |
> 43 +++
> Silicon/Ampere/AmpereAltraPkg/Drivers/SmbusHc/SmbusHcPei.inf |
> 43 +++
> Silicon/Ampere/AmpereAltraPkg/Drivers/SmbusHc/SmbusHcCommon.h
> | 95 +++++++
> Silicon/Ampere/AmpereAltraPkg/Include/Library/I2cLib.h | 11 +-
> Platform/Ampere/JadePkg/Library/PCF85063RealTimeClockLib/PCF85063.c
> | 6 +-
>
> Platform/Ampere/JadePkg/Library/PlatformBmcReadyLib/PlatformBmcReady
> Lib.c | 30 +++
> Silicon/Ampere/AmpereAltraPkg/Drivers/SmbusHc/SmbusHcCommon.c
> | 261 ++++++++++++++++++
> Silicon/Ampere/AmpereAltraPkg/Drivers/SmbusHc/SmbusHcDxe.c |
> 277 ++++++++++++++++++++
> Silicon/Ampere/AmpereAltraPkg/Drivers/SmbusHc/SmbusHcPei.c |
> 263 +++++++++++++++++++
> Silicon/Ampere/AmpereAltraPkg/Library/DwI2cLib/DwI2cLib.c | 129
> ++++++++-
> 15 files changed, 1227 insertions(+), 17 deletions(-)
> create mode 100755
> Platform/Ampere/JadePkg/Library/PlatformBmcReadyLib/PlatformBmcReady
> Lib.inf
> create mode 100644
> Silicon/Ampere/AmpereAltraPkg/Drivers/SmbusHc/SmbusHcDxe.inf
> create mode 100644
> Silicon/Ampere/AmpereAltraPkg/Drivers/SmbusHc/SmbusHcPei.inf
> create mode 100644
> Silicon/Ampere/AmpereAltraPkg/Drivers/SmbusHc/SmbusHcCommon.h
> create mode 100644
> Platform/Ampere/JadePkg/Library/PlatformBmcReadyLib/PlatformBmcReady
> Lib.c
> create mode 100644
> Silicon/Ampere/AmpereAltraPkg/Drivers/SmbusHc/SmbusHcCommon.c
> create mode 100644
> Silicon/Ampere/AmpereAltraPkg/Drivers/SmbusHc/SmbusHcDxe.c
> create mode 100644
> Silicon/Ampere/AmpereAltraPkg/Drivers/SmbusHc/SmbusHcPei.c
>
> --
> 2.25.1
>
>
>
>
>
-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#120301): https://edk2.groups.io/g/devel/message/120301
Mute This Topic: https://groups.io/mt/107765352/7686176
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io]
-=-=-=-=-=-=-=-=-=-=-=-
[-- Attachment #2: Type: text/html, Size: 13539 bytes --]
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [edk2-devel] [edk2-platforms][PATCH v2 0/5] Add IPMI SSIF support
2024-08-09 2:44 ` Chang, Abner via groups.io
@ 2024-08-09 3:05 ` Nhi Pham via groups.io
2024-08-09 4:34 ` Chang, Abner via groups.io
0 siblings, 1 reply; 19+ messages in thread
From: Nhi Pham via groups.io @ 2024-08-09 3:05 UTC (permalink / raw)
To: Chang, Abner, devel@edk2.groups.io
Cc: quic_llindhol@quicinc.com, Chuong Tran OS, Rebecca Cran OS
Sure, it appears the patch subject makes you confused.
Regards,
Nhi
On 8/9/2024 9:44 AM, Chang, Abner wrote:
> [AMD Official Use Only - AMD Internal Distribution Only]
>
>
> Hi Pham,
>
> Just realize this patch is not for ManageabilityPkg when I go through
> the patch, I will leave this to the owner. Also, I shouldn’t suggest you
> to create PR as I am not the owner, sorry about this.
>
> Thanks
>
> Abner
>
> *From:*Nhi Pham OS <nhi@os.amperecomputing.com>
> *Sent:* Wednesday, August 7, 2024 3:35 PM
> *To:* Chang, Abner <Abner.Chang@amd.com>; devel@edk2.groups.io
> *Cc:* quic_llindhol@quicinc.com; Chuong Tran OS
> <chuong@os.amperecomputing.com>; Rebecca Cran OS
> <rebecca@os.amperecomputing.com>
> *Subject:* Re: [edk2-devel] [edk2-platforms][PATCH v2 0/5] Add IPMI SSIF
> support
>
> [AMD Official Use Only - AMD Internal Distribution Only]
>
>
>
> *Caution:*This message originated from an External Source. Use proper
> caution when opening attachments, clicking links, or responding.
>
> Sure, Abner. I've created this PR https://github.com/tianocore/edk2-
> platforms/pull/178 <https://github.com/tianocore/edk2-platforms/pull/178>
>
> Regards,
> Nhi
>
> ------------------------------------------------------------------------
>
> *From:*Chang, Abner <Abner.Chang@amd.com <mailto:Abner.Chang@amd.com>>
> *Sent:* Wednesday, August 7, 2024 2:16 PM
> *To:* devel@edk2.groups.io <mailto:devel@edk2.groups.io>
> <devel@edk2.groups.io <mailto:devel@edk2.groups.io>>; Nhi Pham OS
> <nhi@os.amperecomputing.com <mailto:nhi@os.amperecomputing.com>>
> *Cc:* quic_llindhol@quicinc.com <mailto:quic_llindhol@quicinc.com>
> <quic_llindhol@quicinc.com <mailto:quic_llindhol@quicinc.com>>; Chuong
> Tran OS <chuong@os.amperecomputing.com
> <mailto:chuong@os.amperecomputing.com>>; Rebecca Cran OS
> <rebecca@os.amperecomputing.com <mailto:rebecca@os.amperecomputing.com>>
> *Subject:* RE: [edk2-devel] [edk2-platforms][PATCH v2 0/5] Add IPMI SSIF
> support
>
> [AMD Official Use Only - AMD Internal Distribution Only]
>
> Hi Pham,
> We already move edk2-platforms review through GitHub PR. Could you
> please send the PR against edk2-platforms?
>
> Thanks
> Abner
>
>> -----Original Message-----
>> From: devel@edk2.groups.io <mailto:devel@edk2.groups.io> <devel@edk2.groups.io
> <mailto:devel@edk2.groups.io>> On Behalf Of Nhi Pham
>> via groups.io
>> Sent: Wednesday, August 7, 2024 2:47 PM
>> To: devel@edk2.groups.io <mailto:devel@edk2.groups.io>
>> Cc: quic_llindhol@quicinc.com <mailto:quic_llindhol@quicinc.com>;
> chuong@os.amperecomputing.com <mailto:chuong@os.amperecomputing.com>;
>> rebecca@os.amperecomputing.com <mailto:rebecca@os.amperecomputing.com>;
> nhi@os.amperecomputing.com <mailto:nhi@os.amperecomputing.com>
>> Subject: [edk2-devel] [edk2-platforms][PATCH v2 0/5] Add IPMI SSIF support
>>
>> Caution: This message originated from an External Source. Use proper caution
>> when opening attachments, clicking links, or responding.
>>
>>
>> This updates the I2C library and implements SMBUS PEI/DXE drivers to
>> support IPMI SSIF in the Mt. Jade platform.
>>
>> v2:
>> - Refine the changes of the DwI2cLib per Leif's comments and update the
>> commit message accordingly.
>> - Remove the additional PCD PcdBmcSlaveAddr since it's is unused.
>>
>> NOTE: Regarding the controller/target terminology, the function
>> prototype and comment are derived from edk2/MdePkg. In this patch set, I
>> am trying to avoid misusing the terms in the implementation instead of
>> altering the function prototype and comment with the PPI and Protocol.
>>
>> Nhi Pham (5):
>> AmpereAltraPkg/DwI2cLib: Add support for SMBUS+PEC operation
>> AmpereSiliconPkg: Define PCDs for SMBUS and BMC
>> AmpereAltraPkg: Add SmbusHc PEI and DXE drivers
>> JadePkg: Add PlatformBmcReadyLib to support BMC ready check
>> Ampere/Jade: Enable IPMI SSIF
>>
>> Silicon/Ampere/AmpereSiliconPkg/AmpereSiliconPkg.dec | 15 +-
>> Silicon/Ampere/AmpereAltraPkg/AmpereAltraPkg.dsc.inc | 23 ++
>> Platform/Ampere/JadePkg/Jade.dsc | 2 +
>> Platform/Ampere/JadePkg/Jade.fdf | 17 ++
>>
>> Platform/Ampere/JadePkg/Library/PlatformBmcReadyLib/PlatformBmcReady
>> Lib.inf | 29 ++
>> Silicon/Ampere/AmpereAltraPkg/Drivers/SmbusHc/SmbusHcDxe.inf |
>> 43 +++
>> Silicon/Ampere/AmpereAltraPkg/Drivers/SmbusHc/SmbusHcPei.inf |
>> 43 +++
>> Silicon/Ampere/AmpereAltraPkg/Drivers/SmbusHc/SmbusHcCommon.h
>> | 95 +++++++
>> Silicon/Ampere/AmpereAltraPkg/Include/Library/I2cLib.h | 11 +-
>> Platform/Ampere/JadePkg/Library/PCF85063RealTimeClockLib/PCF85063.c
>> | 6 +-
>>
>> Platform/Ampere/JadePkg/Library/PlatformBmcReadyLib/PlatformBmcReady
>> Lib.c | 30 +++
>> Silicon/Ampere/AmpereAltraPkg/Drivers/SmbusHc/SmbusHcCommon.c
>> | 261 ++++++++++++++++++
>> Silicon/Ampere/AmpereAltraPkg/Drivers/SmbusHc/SmbusHcDxe.c |
>> 277 ++++++++++++++++++++
>> Silicon/Ampere/AmpereAltraPkg/Drivers/SmbusHc/SmbusHcPei.c |
>> 263 +++++++++++++++++++
>> Silicon/Ampere/AmpereAltraPkg/Library/DwI2cLib/DwI2cLib.c | 129
>> ++++++++-
>> 15 files changed, 1227 insertions(+), 17 deletions(-)
>> create mode 100755
>> Platform/Ampere/JadePkg/Library/PlatformBmcReadyLib/PlatformBmcReady
>> Lib.inf
>> create mode 100644
>> Silicon/Ampere/AmpereAltraPkg/Drivers/SmbusHc/SmbusHcDxe.inf
>> create mode 100644
>> Silicon/Ampere/AmpereAltraPkg/Drivers/SmbusHc/SmbusHcPei.inf
>> create mode 100644
>> Silicon/Ampere/AmpereAltraPkg/Drivers/SmbusHc/SmbusHcCommon.h
>> create mode 100644
>> Platform/Ampere/JadePkg/Library/PlatformBmcReadyLib/PlatformBmcReady
>> Lib.c
>> create mode 100644
>> Silicon/Ampere/AmpereAltraPkg/Drivers/SmbusHc/SmbusHcCommon.c
>> create mode 100644
>> Silicon/Ampere/AmpereAltraPkg/Drivers/SmbusHc/SmbusHcDxe.c
>> create mode 100644
>> Silicon/Ampere/AmpereAltraPkg/Drivers/SmbusHc/SmbusHcPei.c
>>
>> --
>> 2.25.1
>>
>>
>>
>>
>>
>
-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#120302): https://edk2.groups.io/g/devel/message/120302
Mute This Topic: https://groups.io/mt/107765352/7686176
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io]
-=-=-=-=-=-=-=-=-=-=-=-
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [edk2-devel] [edk2-platforms][PATCH v2 0/5] Add IPMI SSIF support
2024-08-09 3:05 ` Nhi Pham via groups.io
@ 2024-08-09 4:34 ` Chang, Abner via groups.io
0 siblings, 0 replies; 19+ messages in thread
From: Chang, Abner via groups.io @ 2024-08-09 4:34 UTC (permalink / raw)
To: Nhi Pham, devel@edk2.groups.io
Cc: quic_llindhol@quicinc.com, Chuong Tran OS, Rebecca Cran OS
[AMD Official Use Only - AMD Internal Distribution Only]
No problem. You can add the tag on subject like Silicon/Ampere or something else distinguishable next time. 😊
Thanks
Abner
> -----Original Message-----
> From: Nhi Pham <nhi@os.amperecomputing.com>
> Sent: Friday, August 9, 2024 11:05 AM
> To: Chang, Abner <Abner.Chang@amd.com>; devel@edk2.groups.io
> Cc: quic_llindhol@quicinc.com; Chuong Tran OS
> <chuong@os.amperecomputing.com>; Rebecca Cran OS
> <rebecca@os.amperecomputing.com>
> Subject: Re: [edk2-devel] [edk2-platforms][PATCH v2 0/5] Add IPMI SSIF
> support
>
> Caution: This message originated from an External Source. Use proper caution
> when opening attachments, clicking links, or responding.
>
>
> Sure, it appears the patch subject makes you confused.
>
> Regards,
> Nhi
>
> On 8/9/2024 9:44 AM, Chang, Abner wrote:
> > [AMD Official Use Only - AMD Internal Distribution Only]
> >
> >
> > Hi Pham,
> >
> > Just realize this patch is not for ManageabilityPkg when I go through
> > the patch, I will leave this to the owner. Also, I shouldn’t suggest you
> > to create PR as I am not the owner, sorry about this.
> >
> > Thanks
> >
> > Abner
> >
> > *From:*Nhi Pham OS <nhi@os.amperecomputing.com>
> > *Sent:* Wednesday, August 7, 2024 3:35 PM
> > *To:* Chang, Abner <Abner.Chang@amd.com>; devel@edk2.groups.io
> > *Cc:* quic_llindhol@quicinc.com; Chuong Tran OS
> > <chuong@os.amperecomputing.com>; Rebecca Cran OS
> > <rebecca@os.amperecomputing.com>
> > *Subject:* Re: [edk2-devel] [edk2-platforms][PATCH v2 0/5] Add IPMI SSIF
> > support
> >
> > [AMD Official Use Only - AMD Internal Distribution Only]
> >
> >
> >
> > *Caution:*This message originated from an External Source. Use proper
> > caution when opening attachments, clicking links, or responding.
> >
> > Sure, Abner. I've created this PR https://github.com/tianocore/edk2-
> > platforms/pull/178 <https://github.com/tianocore/edk2-
> platforms/pull/178>
> >
> > Regards,
> > Nhi
> >
> > ------------------------------------------------------------------------
> >
> > *From:*Chang, Abner <Abner.Chang@amd.com
> <mailto:Abner.Chang@amd.com>>
> > *Sent:* Wednesday, August 7, 2024 2:16 PM
> > *To:* devel@edk2.groups.io <mailto:devel@edk2.groups.io>
> > <devel@edk2.groups.io <mailto:devel@edk2.groups.io>>; Nhi Pham OS
> > <nhi@os.amperecomputing.com <mailto:nhi@os.amperecomputing.com>>
> > *Cc:* quic_llindhol@quicinc.com <mailto:quic_llindhol@quicinc.com>
> > <quic_llindhol@quicinc.com <mailto:quic_llindhol@quicinc.com>>; Chuong
> > Tran OS <chuong@os.amperecomputing.com
> > <mailto:chuong@os.amperecomputing.com>>; Rebecca Cran OS
> > <rebecca@os.amperecomputing.com
> <mailto:rebecca@os.amperecomputing.com>>
> > *Subject:* RE: [edk2-devel] [edk2-platforms][PATCH v2 0/5] Add IPMI SSIF
> > support
> >
> > [AMD Official Use Only - AMD Internal Distribution Only]
> >
> > Hi Pham,
> > We already move edk2-platforms review through GitHub PR. Could you
> > please send the PR against edk2-platforms?
> >
> > Thanks
> > Abner
> >
> >> -----Original Message-----
> >> From: devel@edk2.groups.io <mailto:devel@edk2.groups.io>
> <devel@edk2.groups.io
> > <mailto:devel@edk2.groups.io>> On Behalf Of Nhi Pham
> >> via groups.io
> >> Sent: Wednesday, August 7, 2024 2:47 PM
> >> To: devel@edk2.groups.io <mailto:devel@edk2.groups.io>
> >> Cc: quic_llindhol@quicinc.com <mailto:quic_llindhol@quicinc.com>;
> > chuong@os.amperecomputing.com
> <mailto:chuong@os.amperecomputing.com>;
> >> rebecca@os.amperecomputing.com
> <mailto:rebecca@os.amperecomputing.com>;
> > nhi@os.amperecomputing.com <mailto:nhi@os.amperecomputing.com>
> >> Subject: [edk2-devel] [edk2-platforms][PATCH v2 0/5] Add IPMI SSIF
> support
> >>
> >> Caution: This message originated from an External Source. Use proper
> caution
> >> when opening attachments, clicking links, or responding.
> >>
> >>
> >> This updates the I2C library and implements SMBUS PEI/DXE drivers to
> >> support IPMI SSIF in the Mt. Jade platform.
> >>
> >> v2:
> >> - Refine the changes of the DwI2cLib per Leif's comments and update the
> >> commit message accordingly.
> >> - Remove the additional PCD PcdBmcSlaveAddr since it's is unused.
> >>
> >> NOTE: Regarding the controller/target terminology, the function
> >> prototype and comment are derived from edk2/MdePkg. In this patch set, I
> >> am trying to avoid misusing the terms in the implementation instead of
> >> altering the function prototype and comment with the PPI and Protocol.
> >>
> >> Nhi Pham (5):
> >> AmpereAltraPkg/DwI2cLib: Add support for SMBUS+PEC operation
> >> AmpereSiliconPkg: Define PCDs for SMBUS and BMC
> >> AmpereAltraPkg: Add SmbusHc PEI and DXE drivers
> >> JadePkg: Add PlatformBmcReadyLib to support BMC ready check
> >> Ampere/Jade: Enable IPMI SSIF
> >>
> >> Silicon/Ampere/AmpereSiliconPkg/AmpereSiliconPkg.dec | 15
> +-
> >> Silicon/Ampere/AmpereAltraPkg/AmpereAltraPkg.dsc.inc | 23
> ++
> >> Platform/Ampere/JadePkg/Jade.dsc | 2 +
> >> Platform/Ampere/JadePkg/Jade.fdf | 17 ++
> >>
> >>
> Platform/Ampere/JadePkg/Library/PlatformBmcReadyLib/PlatformBmcReady
> >> Lib.inf | 29 ++
> >> Silicon/Ampere/AmpereAltraPkg/Drivers/SmbusHc/SmbusHcDxe.inf
> |
> >> 43 +++
> >> Silicon/Ampere/AmpereAltraPkg/Drivers/SmbusHc/SmbusHcPei.inf
> |
> >> 43 +++
> >> Silicon/Ampere/AmpereAltraPkg/Drivers/SmbusHc/SmbusHcCommon.h
> >> | 95 +++++++
> >> Silicon/Ampere/AmpereAltraPkg/Include/Library/I2cLib.h | 11
> +-
> >> Platform/Ampere/JadePkg/Library/PCF85063RealTimeClockLib/PCF85063
> .c
> >> | 6 +-
> >>
> >>
> Platform/Ampere/JadePkg/Library/PlatformBmcReadyLib/PlatformBmcReady
> >> Lib.c | 30 +++
> >> Silicon/Ampere/AmpereAltraPkg/Drivers/SmbusHc/SmbusHcCommon.c
> >> | 261 ++++++++++++++++++
> >> Silicon/Ampere/AmpereAltraPkg/Drivers/SmbusHc/SmbusHcDxe.c
> |
> >> 277 ++++++++++++++++++++
> >> Silicon/Ampere/AmpereAltraPkg/Drivers/SmbusHc/SmbusHcPei.c
> |
> >> 263 +++++++++++++++++++
> >> Silicon/Ampere/AmpereAltraPkg/Library/DwI2cLib/DwI2cLib.c |
> 129
> >> ++++++++-
> >> 15 files changed, 1227 insertions(+), 17 deletions(-)
> >> create mode 100755
> >>
> Platform/Ampere/JadePkg/Library/PlatformBmcReadyLib/PlatformBmcReady
> >> Lib.inf
> >> create mode 100644
> >> Silicon/Ampere/AmpereAltraPkg/Drivers/SmbusHc/SmbusHcDxe.inf
> >> create mode 100644
> >> Silicon/Ampere/AmpereAltraPkg/Drivers/SmbusHc/SmbusHcPei.inf
> >> create mode 100644
> >> Silicon/Ampere/AmpereAltraPkg/Drivers/SmbusHc/SmbusHcCommon.h
> >> create mode 100644
> >>
> Platform/Ampere/JadePkg/Library/PlatformBmcReadyLib/PlatformBmcReady
> >> Lib.c
> >> create mode 100644
> >> Silicon/Ampere/AmpereAltraPkg/Drivers/SmbusHc/SmbusHcCommon.c
> >> create mode 100644
> >> Silicon/Ampere/AmpereAltraPkg/Drivers/SmbusHc/SmbusHcDxe.c
> >> create mode 100644
> >> Silicon/Ampere/AmpereAltraPkg/Drivers/SmbusHc/SmbusHcPei.c
> >>
> >> --
> >> 2.25.1
> >>
> >>
> >>
> >>
> >>
> >
-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#120305): https://edk2.groups.io/g/devel/message/120305
Mute This Topic: https://groups.io/mt/107765352/7686176
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io]
-=-=-=-=-=-=-=-=-=-=-=-
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [edk2-devel] [edk2-platforms][PATCH v2 0/5] Add IPMI SSIF support
2024-08-07 7:16 ` [edk2-devel] [edk2-platforms][PATCH v2 0/5] Add IPMI SSIF support Chang, Abner via groups.io
2024-08-07 7:35 ` Nhi Pham via groups.io
@ 2024-08-07 10:23 ` Leif Lindholm
2024-08-07 10:45 ` Chang, Abner via groups.io
1 sibling, 1 reply; 19+ messages in thread
From: Leif Lindholm @ 2024-08-07 10:23 UTC (permalink / raw)
To: Chang, Abner, devel@edk2.groups.io, nhi@os.amperecomputing.com
Cc: chuong@os.amperecomputing.com, rebecca@os.amperecomputing.com
Err, no we haven't.
Although we're in the process of doing that.
/
Leif
On 2024-08-07 08:16, Chang, Abner wrote:
> [AMD Official Use Only - AMD Internal Distribution Only]
>
> Hi Pham,
> We already move edk2-platforms review through GitHub PR. Could you please send the PR against edk2-platforms?
>
> Thanks
> Abner
>
>> -----Original Message-----
>> From: devel@edk2.groups.io <devel@edk2.groups.io> On Behalf Of Nhi Pham
>> via groups.io
>> Sent: Wednesday, August 7, 2024 2:47 PM
>> To: devel@edk2.groups.io
>> Cc: quic_llindhol@quicinc.com; chuong@os.amperecomputing.com;
>> rebecca@os.amperecomputing.com; nhi@os.amperecomputing.com
>> Subject: [edk2-devel] [edk2-platforms][PATCH v2 0/5] Add IPMI SSIF support
>>
>> Caution: This message originated from an External Source. Use proper caution
>> when opening attachments, clicking links, or responding.
>>
>>
>> This updates the I2C library and implements SMBUS PEI/DXE drivers to
>> support IPMI SSIF in the Mt. Jade platform.
>>
>> v2:
>> - Refine the changes of the DwI2cLib per Leif's comments and update the
>> commit message accordingly.
>> - Remove the additional PCD PcdBmcSlaveAddr since it's is unused.
>>
>> NOTE: Regarding the controller/target terminology, the function
>> prototype and comment are derived from edk2/MdePkg. In this patch set, I
>> am trying to avoid misusing the terms in the implementation instead of
>> altering the function prototype and comment with the PPI and Protocol.
>>
>> Nhi Pham (5):
>> AmpereAltraPkg/DwI2cLib: Add support for SMBUS+PEC operation
>> AmpereSiliconPkg: Define PCDs for SMBUS and BMC
>> AmpereAltraPkg: Add SmbusHc PEI and DXE drivers
>> JadePkg: Add PlatformBmcReadyLib to support BMC ready check
>> Ampere/Jade: Enable IPMI SSIF
>>
>> Silicon/Ampere/AmpereSiliconPkg/AmpereSiliconPkg.dec | 15 +-
>> Silicon/Ampere/AmpereAltraPkg/AmpereAltraPkg.dsc.inc | 23 ++
>> Platform/Ampere/JadePkg/Jade.dsc | 2 +
>> Platform/Ampere/JadePkg/Jade.fdf | 17 ++
>>
>> Platform/Ampere/JadePkg/Library/PlatformBmcReadyLib/PlatformBmcReady
>> Lib.inf | 29 ++
>> Silicon/Ampere/AmpereAltraPkg/Drivers/SmbusHc/SmbusHcDxe.inf |
>> 43 +++
>> Silicon/Ampere/AmpereAltraPkg/Drivers/SmbusHc/SmbusHcPei.inf |
>> 43 +++
>> Silicon/Ampere/AmpereAltraPkg/Drivers/SmbusHc/SmbusHcCommon.h
>> | 95 +++++++
>> Silicon/Ampere/AmpereAltraPkg/Include/Library/I2cLib.h | 11 +-
>> Platform/Ampere/JadePkg/Library/PCF85063RealTimeClockLib/PCF85063.c
>> | 6 +-
>>
>> Platform/Ampere/JadePkg/Library/PlatformBmcReadyLib/PlatformBmcReady
>> Lib.c | 30 +++
>> Silicon/Ampere/AmpereAltraPkg/Drivers/SmbusHc/SmbusHcCommon.c
>> | 261 ++++++++++++++++++
>> Silicon/Ampere/AmpereAltraPkg/Drivers/SmbusHc/SmbusHcDxe.c |
>> 277 ++++++++++++++++++++
>> Silicon/Ampere/AmpereAltraPkg/Drivers/SmbusHc/SmbusHcPei.c |
>> 263 +++++++++++++++++++
>> Silicon/Ampere/AmpereAltraPkg/Library/DwI2cLib/DwI2cLib.c | 129
>> ++++++++-
>> 15 files changed, 1227 insertions(+), 17 deletions(-)
>> create mode 100755
>> Platform/Ampere/JadePkg/Library/PlatformBmcReadyLib/PlatformBmcReady
>> Lib.inf
>> create mode 100644
>> Silicon/Ampere/AmpereAltraPkg/Drivers/SmbusHc/SmbusHcDxe.inf
>> create mode 100644
>> Silicon/Ampere/AmpereAltraPkg/Drivers/SmbusHc/SmbusHcPei.inf
>> create mode 100644
>> Silicon/Ampere/AmpereAltraPkg/Drivers/SmbusHc/SmbusHcCommon.h
>> create mode 100644
>> Platform/Ampere/JadePkg/Library/PlatformBmcReadyLib/PlatformBmcReady
>> Lib.c
>> create mode 100644
>> Silicon/Ampere/AmpereAltraPkg/Drivers/SmbusHc/SmbusHcCommon.c
>> create mode 100644
>> Silicon/Ampere/AmpereAltraPkg/Drivers/SmbusHc/SmbusHcDxe.c
>> create mode 100644
>> Silicon/Ampere/AmpereAltraPkg/Drivers/SmbusHc/SmbusHcPei.c
>>
>> --
>> 2.25.1
>>
>>
>>
>>
>>
>
-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#120271): https://edk2.groups.io/g/devel/message/120271
Mute This Topic: https://groups.io/mt/107765352/7686176
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io]
-=-=-=-=-=-=-=-=-=-=-=-
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [edk2-devel] [edk2-platforms][PATCH v2 0/5] Add IPMI SSIF support
2024-08-07 10:23 ` Leif Lindholm
@ 2024-08-07 10:45 ` Chang, Abner via groups.io
2024-08-07 10:56 ` Leif Lindholm
0 siblings, 1 reply; 19+ messages in thread
From: Chang, Abner via groups.io @ 2024-08-07 10:45 UTC (permalink / raw)
To: Leif Lindholm, devel@edk2.groups.io, nhi@os.amperecomputing.com
Cc: chuong@os.amperecomputing.com, rebecca@os.amperecomputing.com
[-- Attachment #1: Type: text/plain, Size: 5364 bytes --]
[AMD Official Use Only - AMD Internal Distribution Only]
So Leif, what's your preference? AMD already switched to use PR on edk2-platforms, shall we get back to the email review?
Thanks
Abner
Get Outlook for Android<https://aka.ms/AAb9ysg>
________________________________
From: Leif Lindholm <quic_llindhol@quicinc.com>
Sent: Wednesday, August 7, 2024 6:23:46 PM
To: Chang, Abner <Abner.Chang@amd.com>; devel@edk2.groups.io <devel@edk2.groups.io>; nhi@os.amperecomputing.com <nhi@os.amperecomputing.com>
Cc: chuong@os.amperecomputing.com <chuong@os.amperecomputing.com>; rebecca@os.amperecomputing.com <rebecca@os.amperecomputing.com>
Subject: Re: [edk2-devel] [edk2-platforms][PATCH v2 0/5] Add IPMI SSIF support
Caution: This message originated from an External Source. Use proper caution when opening attachments, clicking links, or responding.
Err, no we haven't.
Although we're in the process of doing that.
/
Leif
On 2024-08-07 08:16, Chang, Abner wrote:
> [AMD Official Use Only - AMD Internal Distribution Only]
>
> Hi Pham,
> We already move edk2-platforms review through GitHub PR. Could you please send the PR against edk2-platforms?
>
> Thanks
> Abner
>
>> -----Original Message-----
>> From: devel@edk2.groups.io <devel@edk2.groups.io> On Behalf Of Nhi Pham
>> via groups.io
>> Sent: Wednesday, August 7, 2024 2:47 PM
>> To: devel@edk2.groups.io
>> Cc: quic_llindhol@quicinc.com; chuong@os.amperecomputing.com;
>> rebecca@os.amperecomputing.com; nhi@os.amperecomputing.com
>> Subject: [edk2-devel] [edk2-platforms][PATCH v2 0/5] Add IPMI SSIF support
>>
>> Caution: This message originated from an External Source. Use proper caution
>> when opening attachments, clicking links, or responding.
>>
>>
>> This updates the I2C library and implements SMBUS PEI/DXE drivers to
>> support IPMI SSIF in the Mt. Jade platform.
>>
>> v2:
>> - Refine the changes of the DwI2cLib per Leif's comments and update the
>> commit message accordingly.
>> - Remove the additional PCD PcdBmcSlaveAddr since it's is unused.
>>
>> NOTE: Regarding the controller/target terminology, the function
>> prototype and comment are derived from edk2/MdePkg. In this patch set, I
>> am trying to avoid misusing the terms in the implementation instead of
>> altering the function prototype and comment with the PPI and Protocol.
>>
>> Nhi Pham (5):
>> AmpereAltraPkg/DwI2cLib: Add support for SMBUS+PEC operation
>> AmpereSiliconPkg: Define PCDs for SMBUS and BMC
>> AmpereAltraPkg: Add SmbusHc PEI and DXE drivers
>> JadePkg: Add PlatformBmcReadyLib to support BMC ready check
>> Ampere/Jade: Enable IPMI SSIF
>>
>> Silicon/Ampere/AmpereSiliconPkg/AmpereSiliconPkg.dec | 15 +-
>> Silicon/Ampere/AmpereAltraPkg/AmpereAltraPkg.dsc.inc | 23 ++
>> Platform/Ampere/JadePkg/Jade.dsc | 2 +
>> Platform/Ampere/JadePkg/Jade.fdf | 17 ++
>>
>> Platform/Ampere/JadePkg/Library/PlatformBmcReadyLib/PlatformBmcReady
>> Lib.inf | 29 ++
>> Silicon/Ampere/AmpereAltraPkg/Drivers/SmbusHc/SmbusHcDxe.inf |
>> 43 +++
>> Silicon/Ampere/AmpereAltraPkg/Drivers/SmbusHc/SmbusHcPei.inf |
>> 43 +++
>> Silicon/Ampere/AmpereAltraPkg/Drivers/SmbusHc/SmbusHcCommon.h
>> | 95 +++++++
>> Silicon/Ampere/AmpereAltraPkg/Include/Library/I2cLib.h | 11 +-
>> Platform/Ampere/JadePkg/Library/PCF85063RealTimeClockLib/PCF85063.c
>> | 6 +-
>>
>> Platform/Ampere/JadePkg/Library/PlatformBmcReadyLib/PlatformBmcReady
>> Lib.c | 30 +++
>> Silicon/Ampere/AmpereAltraPkg/Drivers/SmbusHc/SmbusHcCommon.c
>> | 261 ++++++++++++++++++
>> Silicon/Ampere/AmpereAltraPkg/Drivers/SmbusHc/SmbusHcDxe.c |
>> 277 ++++++++++++++++++++
>> Silicon/Ampere/AmpereAltraPkg/Drivers/SmbusHc/SmbusHcPei.c |
>> 263 +++++++++++++++++++
>> Silicon/Ampere/AmpereAltraPkg/Library/DwI2cLib/DwI2cLib.c | 129
>> ++++++++-
>> 15 files changed, 1227 insertions(+), 17 deletions(-)
>> create mode 100755
>> Platform/Ampere/JadePkg/Library/PlatformBmcReadyLib/PlatformBmcReady
>> Lib.inf
>> create mode 100644
>> Silicon/Ampere/AmpereAltraPkg/Drivers/SmbusHc/SmbusHcDxe.inf
>> create mode 100644
>> Silicon/Ampere/AmpereAltraPkg/Drivers/SmbusHc/SmbusHcPei.inf
>> create mode 100644
>> Silicon/Ampere/AmpereAltraPkg/Drivers/SmbusHc/SmbusHcCommon.h
>> create mode 100644
>> Platform/Ampere/JadePkg/Library/PlatformBmcReadyLib/PlatformBmcReady
>> Lib.c
>> create mode 100644
>> Silicon/Ampere/AmpereAltraPkg/Drivers/SmbusHc/SmbusHcCommon.c
>> create mode 100644
>> Silicon/Ampere/AmpereAltraPkg/Drivers/SmbusHc/SmbusHcDxe.c
>> create mode 100644
>> Silicon/Ampere/AmpereAltraPkg/Drivers/SmbusHc/SmbusHcPei.c
>>
>> --
>> 2.25.1
>>
>>
>>
>>
>>
>
-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#120272): https://edk2.groups.io/g/devel/message/120272
Mute This Topic: https://groups.io/mt/107765352/7686176
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io]
-=-=-=-=-=-=-=-=-=-=-=-
[-- Attachment #2: Type: text/html, Size: 9187 bytes --]
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [edk2-devel] [edk2-platforms][PATCH v2 0/5] Add IPMI SSIF support
2024-08-07 10:45 ` Chang, Abner via groups.io
@ 2024-08-07 10:56 ` Leif Lindholm
2024-08-07 10:59 ` Chang, Abner via groups.io
0 siblings, 1 reply; 19+ messages in thread
From: Leif Lindholm @ 2024-08-07 10:56 UTC (permalink / raw)
To: devel, abner.chang, nhi@os.amperecomputing.com
Cc: chuong@os.amperecomputing.com, rebecca@os.amperecomputing.com
I'm honestly not too fussed, but maybe hold off on telling people we've
switched until Rebecca's set is actually merged, so that the PR
assignment is working?
Regards,
Leif
On 2024-08-07 11:45, Chang, Abner via groups.io wrote:
> [AMD Official Use Only - AMD Internal Distribution Only]
>
>
> So Leif, what's your preference? AMD already switched to use PR on
> edk2-platforms, shall we get back to the email review?
>
> Thanks
> Abner
>
> Get Outlook for Android <https://aka.ms/AAb9ysg>
> ------------------------------------------------------------------------
> *From:* Leif Lindholm <quic_llindhol@quicinc.com>
> *Sent:* Wednesday, August 7, 2024 6:23:46 PM
> *To:* Chang, Abner <Abner.Chang@amd.com>; devel@edk2.groups.io
> <devel@edk2.groups.io>; nhi@os.amperecomputing.com
> <nhi@os.amperecomputing.com>
> *Cc:* chuong@os.amperecomputing.com <chuong@os.amperecomputing.com>;
> rebecca@os.amperecomputing.com <rebecca@os.amperecomputing.com>
> *Subject:* Re: [edk2-devel] [edk2-platforms][PATCH v2 0/5] Add IPMI SSIF
> support
> Caution: This message originated from an External Source. Use proper
> caution when opening attachments, clicking links, or responding.
>
>
> Err, no we haven't.
>
> Although we're in the process of doing that.
>
> /
> Leif
>
> On 2024-08-07 08:16, Chang, Abner wrote:
>> [AMD Official Use Only - AMD Internal Distribution Only]
>>
>> Hi Pham,
>> We already move edk2-platforms review through GitHub PR. Could you please send the PR against edk2-platforms?
>>
>> Thanks
>> Abner
>>
>>> -----Original Message-----
>>> From: devel@edk2.groups.io <devel@edk2.groups.io> On Behalf Of Nhi Pham
>>> via groups.io
>>> Sent: Wednesday, August 7, 2024 2:47 PM
>>> To: devel@edk2.groups.io
>>> Cc: quic_llindhol@quicinc.com; chuong@os.amperecomputing.com;
>>> rebecca@os.amperecomputing.com; nhi@os.amperecomputing.com
>>> Subject: [edk2-devel] [edk2-platforms][PATCH v2 0/5] Add IPMI SSIF support
>>>
>>> Caution: This message originated from an External Source. Use proper caution
>>> when opening attachments, clicking links, or responding.
>>>
>>>
>>> This updates the I2C library and implements SMBUS PEI/DXE drivers to
>>> support IPMI SSIF in the Mt. Jade platform.
>>>
>>> v2:
>>> - Refine the changes of the DwI2cLib per Leif's comments and update the
>>> commit message accordingly.
>>> - Remove the additional PCD PcdBmcSlaveAddr since it's is unused.
>>>
>>> NOTE: Regarding the controller/target terminology, the function
>>> prototype and comment are derived from edk2/MdePkg. In this patch set, I
>>> am trying to avoid misusing the terms in the implementation instead of
>>> altering the function prototype and comment with the PPI and Protocol.
>>>
>>> Nhi Pham (5):
>>> AmpereAltraPkg/DwI2cLib: Add support for SMBUS+PEC operation
>>> AmpereSiliconPkg: Define PCDs for SMBUS and BMC
>>> AmpereAltraPkg: Add SmbusHc PEI and DXE drivers
>>> JadePkg: Add PlatformBmcReadyLib to support BMC ready check
>>> Ampere/Jade: Enable IPMI SSIF
>>>
>>> Silicon/Ampere/AmpereSiliconPkg/AmpereSiliconPkg.dec | 15 +-
>>> Silicon/Ampere/AmpereAltraPkg/AmpereAltraPkg.dsc.inc | 23 ++
>>> Platform/Ampere/JadePkg/Jade.dsc | 2 +
>>> Platform/Ampere/JadePkg/Jade.fdf | 17 ++
>>>
>>> Platform/Ampere/JadePkg/Library/PlatformBmcReadyLib/PlatformBmcReady
>>> Lib.inf | 29 ++
>>> Silicon/Ampere/AmpereAltraPkg/Drivers/SmbusHc/SmbusHcDxe.inf |
>>> 43 +++
>>> Silicon/Ampere/AmpereAltraPkg/Drivers/SmbusHc/SmbusHcPei.inf |
>>> 43 +++
>>> Silicon/Ampere/AmpereAltraPkg/Drivers/SmbusHc/SmbusHcCommon.h
>>> | 95 +++++++
>>> Silicon/Ampere/AmpereAltraPkg/Include/Library/I2cLib.h | 11 +-
>>> Platform/Ampere/JadePkg/Library/PCF85063RealTimeClockLib/PCF85063.c
>>> | 6 +-
>>>
>>> Platform/Ampere/JadePkg/Library/PlatformBmcReadyLib/PlatformBmcReady
>>> Lib.c | 30 +++
>>> Silicon/Ampere/AmpereAltraPkg/Drivers/SmbusHc/SmbusHcCommon.c
>>> | 261 ++++++++++++++++++
>>> Silicon/Ampere/AmpereAltraPkg/Drivers/SmbusHc/SmbusHcDxe.c |
>>> 277 ++++++++++++++++++++
>>> Silicon/Ampere/AmpereAltraPkg/Drivers/SmbusHc/SmbusHcPei.c |
>>> 263 +++++++++++++++++++
>>> Silicon/Ampere/AmpereAltraPkg/Library/DwI2cLib/DwI2cLib.c | 129
>>> ++++++++-
>>> 15 files changed, 1227 insertions(+), 17 deletions(-)
>>> create mode 100755
>>> Platform/Ampere/JadePkg/Library/PlatformBmcReadyLib/PlatformBmcReady
>>> Lib.inf
>>> create mode 100644
>>> Silicon/Ampere/AmpereAltraPkg/Drivers/SmbusHc/SmbusHcDxe.inf
>>> create mode 100644
>>> Silicon/Ampere/AmpereAltraPkg/Drivers/SmbusHc/SmbusHcPei.inf
>>> create mode 100644
>>> Silicon/Ampere/AmpereAltraPkg/Drivers/SmbusHc/SmbusHcCommon.h
>>> create mode 100644
>>> Platform/Ampere/JadePkg/Library/PlatformBmcReadyLib/PlatformBmcReady
>>> Lib.c
>>> create mode 100644
>>> Silicon/Ampere/AmpereAltraPkg/Drivers/SmbusHc/SmbusHcCommon.c
>>> create mode 100644
>>> Silicon/Ampere/AmpereAltraPkg/Drivers/SmbusHc/SmbusHcDxe.c
>>> create mode 100644
>>> Silicon/Ampere/AmpereAltraPkg/Drivers/SmbusHc/SmbusHcPei.c
>>>
>>> --
>>> 2.25.1
>>>
>>>
>>>
>>>
>>>
>>
>
>
-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#120273): https://edk2.groups.io/g/devel/message/120273
Mute This Topic: https://groups.io/mt/107765352/7686176
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io]
-=-=-=-=-=-=-=-=-=-=-=-
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [edk2-devel] [edk2-platforms][PATCH v2 0/5] Add IPMI SSIF support
2024-08-07 10:56 ` Leif Lindholm
@ 2024-08-07 10:59 ` Chang, Abner via groups.io
0 siblings, 0 replies; 19+ messages in thread
From: Chang, Abner via groups.io @ 2024-08-07 10:59 UTC (permalink / raw)
To: Leif Lindholm, devel@edk2.groups.io, nhi@os.amperecomputing.com
Cc: chuong@os.amperecomputing.com, rebecca@os.amperecomputing.com
[-- Attachment #1: Type: text/plain, Size: 6640 bytes --]
[AMD Official Use Only - AMD Internal Distribution Only]
Sounds good too me. I feel like I probably forget how to review on email already 😊.
Abner
Get Outlook for Android<https://aka.ms/AAb9ysg>
________________________________
From: Leif Lindholm <quic_llindhol@quicinc.com>
Sent: Wednesday, August 7, 2024 6:56:34 PM
To: devel@edk2.groups.io <devel@edk2.groups.io>; Chang, Abner <Abner.Chang@amd.com>; nhi@os.amperecomputing.com <nhi@os.amperecomputing.com>
Cc: chuong@os.amperecomputing.com <chuong@os.amperecomputing.com>; rebecca@os.amperecomputing.com <rebecca@os.amperecomputing.com>
Subject: Re: [edk2-devel] [edk2-platforms][PATCH v2 0/5] Add IPMI SSIF support
Caution: This message originated from an External Source. Use proper caution when opening attachments, clicking links, or responding.
I'm honestly not too fussed, but maybe hold off on telling people we've
switched until Rebecca's set is actually merged, so that the PR
assignment is working?
Regards,
Leif
On 2024-08-07 11:45, Chang, Abner via groups.io wrote:
> [AMD Official Use Only - AMD Internal Distribution Only]
>
>
> So Leif, what's your preference? AMD already switched to use PR on
> edk2-platforms, shall we get back to the email review?
>
> Thanks
> Abner
>
> Get Outlook for Android <https://aka.ms/AAb9ysg>
> ------------------------------------------------------------------------
> *From:* Leif Lindholm <quic_llindhol@quicinc.com>
> *Sent:* Wednesday, August 7, 2024 6:23:46 PM
> *To:* Chang, Abner <Abner.Chang@amd.com>; devel@edk2.groups.io
> <devel@edk2.groups.io>; nhi@os.amperecomputing.com
> <nhi@os.amperecomputing.com>
> *Cc:* chuong@os.amperecomputing.com <chuong@os.amperecomputing.com>;
> rebecca@os.amperecomputing.com <rebecca@os.amperecomputing.com>
> *Subject:* Re: [edk2-devel] [edk2-platforms][PATCH v2 0/5] Add IPMI SSIF
> support
> Caution: This message originated from an External Source. Use proper
> caution when opening attachments, clicking links, or responding.
>
>
> Err, no we haven't.
>
> Although we're in the process of doing that.
>
> /
> Leif
>
> On 2024-08-07 08:16, Chang, Abner wrote:
>> [AMD Official Use Only - AMD Internal Distribution Only]
>>
>> Hi Pham,
>> We already move edk2-platforms review through GitHub PR. Could you please send the PR against edk2-platforms?
>>
>> Thanks
>> Abner
>>
>>> -----Original Message-----
>>> From: devel@edk2.groups.io <devel@edk2.groups.io> On Behalf Of Nhi Pham
>>> via groups.io
>>> Sent: Wednesday, August 7, 2024 2:47 PM
>>> To: devel@edk2.groups.io
>>> Cc: quic_llindhol@quicinc.com; chuong@os.amperecomputing.com;
>>> rebecca@os.amperecomputing.com; nhi@os.amperecomputing.com
>>> Subject: [edk2-devel] [edk2-platforms][PATCH v2 0/5] Add IPMI SSIF support
>>>
>>> Caution: This message originated from an External Source. Use proper caution
>>> when opening attachments, clicking links, or responding.
>>>
>>>
>>> This updates the I2C library and implements SMBUS PEI/DXE drivers to
>>> support IPMI SSIF in the Mt. Jade platform.
>>>
>>> v2:
>>> - Refine the changes of the DwI2cLib per Leif's comments and update the
>>> commit message accordingly.
>>> - Remove the additional PCD PcdBmcSlaveAddr since it's is unused.
>>>
>>> NOTE: Regarding the controller/target terminology, the function
>>> prototype and comment are derived from edk2/MdePkg. In this patch set, I
>>> am trying to avoid misusing the terms in the implementation instead of
>>> altering the function prototype and comment with the PPI and Protocol.
>>>
>>> Nhi Pham (5):
>>> AmpereAltraPkg/DwI2cLib: Add support for SMBUS+PEC operation
>>> AmpereSiliconPkg: Define PCDs for SMBUS and BMC
>>> AmpereAltraPkg: Add SmbusHc PEI and DXE drivers
>>> JadePkg: Add PlatformBmcReadyLib to support BMC ready check
>>> Ampere/Jade: Enable IPMI SSIF
>>>
>>> Silicon/Ampere/AmpereSiliconPkg/AmpereSiliconPkg.dec | 15 +-
>>> Silicon/Ampere/AmpereAltraPkg/AmpereAltraPkg.dsc.inc | 23 ++
>>> Platform/Ampere/JadePkg/Jade.dsc | 2 +
>>> Platform/Ampere/JadePkg/Jade.fdf | 17 ++
>>>
>>> Platform/Ampere/JadePkg/Library/PlatformBmcReadyLib/PlatformBmcReady
>>> Lib.inf | 29 ++
>>> Silicon/Ampere/AmpereAltraPkg/Drivers/SmbusHc/SmbusHcDxe.inf |
>>> 43 +++
>>> Silicon/Ampere/AmpereAltraPkg/Drivers/SmbusHc/SmbusHcPei.inf |
>>> 43 +++
>>> Silicon/Ampere/AmpereAltraPkg/Drivers/SmbusHc/SmbusHcCommon.h
>>> | 95 +++++++
>>> Silicon/Ampere/AmpereAltraPkg/Include/Library/I2cLib.h | 11 +-
>>> Platform/Ampere/JadePkg/Library/PCF85063RealTimeClockLib/PCF85063.c
>>> | 6 +-
>>>
>>> Platform/Ampere/JadePkg/Library/PlatformBmcReadyLib/PlatformBmcReady
>>> Lib.c | 30 +++
>>> Silicon/Ampere/AmpereAltraPkg/Drivers/SmbusHc/SmbusHcCommon.c
>>> | 261 ++++++++++++++++++
>>> Silicon/Ampere/AmpereAltraPkg/Drivers/SmbusHc/SmbusHcDxe.c |
>>> 277 ++++++++++++++++++++
>>> Silicon/Ampere/AmpereAltraPkg/Drivers/SmbusHc/SmbusHcPei.c |
>>> 263 +++++++++++++++++++
>>> Silicon/Ampere/AmpereAltraPkg/Library/DwI2cLib/DwI2cLib.c | 129
>>> ++++++++-
>>> 15 files changed, 1227 insertions(+), 17 deletions(-)
>>> create mode 100755
>>> Platform/Ampere/JadePkg/Library/PlatformBmcReadyLib/PlatformBmcReady
>>> Lib.inf
>>> create mode 100644
>>> Silicon/Ampere/AmpereAltraPkg/Drivers/SmbusHc/SmbusHcDxe.inf
>>> create mode 100644
>>> Silicon/Ampere/AmpereAltraPkg/Drivers/SmbusHc/SmbusHcPei.inf
>>> create mode 100644
>>> Silicon/Ampere/AmpereAltraPkg/Drivers/SmbusHc/SmbusHcCommon.h
>>> create mode 100644
>>> Platform/Ampere/JadePkg/Library/PlatformBmcReadyLib/PlatformBmcReady
>>> Lib.c
>>> create mode 100644
>>> Silicon/Ampere/AmpereAltraPkg/Drivers/SmbusHc/SmbusHcCommon.c
>>> create mode 100644
>>> Silicon/Ampere/AmpereAltraPkg/Drivers/SmbusHc/SmbusHcDxe.c
>>> create mode 100644
>>> Silicon/Ampere/AmpereAltraPkg/Drivers/SmbusHc/SmbusHcPei.c
>>>
>>> --
>>> 2.25.1
>>>
>>>
>>>
>>>
>>>
>>
>
>
-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#120274): https://edk2.groups.io/g/devel/message/120274
Mute This Topic: https://groups.io/mt/107765352/7686176
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io]
-=-=-=-=-=-=-=-=-=-=-=-
[-- Attachment #2: Type: text/html, Size: 11018 bytes --]
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [edk2-devel] [edk2-platforms][PATCH v2 0/5] Add IPMI SSIF support
2024-08-07 6:47 [edk2-devel] [edk2-platforms][PATCH v2 0/5] Add IPMI SSIF support Nhi Pham via groups.io
` (5 preceding siblings ...)
2024-08-07 7:16 ` [edk2-devel] [edk2-platforms][PATCH v2 0/5] Add IPMI SSIF support Chang, Abner via groups.io
@ 2024-08-08 3:06 ` Nhi Pham via groups.io
[not found] ` <17E9A1ED2D454E7A.19172@groups.io>
2024-08-29 5:55 ` Chuong Tran
8 siblings, 0 replies; 19+ messages in thread
From: Nhi Pham via groups.io @ 2024-08-08 3:06 UTC (permalink / raw)
To: quic_llindhol@quicinc.com
Cc: devel@edk2.groups.io, Chuong Tran OS, Rebecca Cran OS
Hi Leif,
I saw a comment from you in the Pull Request and I resolved it. Do you
prefer to review in the Github PR? Should I send v3 to the mailing list?
Regards,
Nhi
On 8/7/2024 1:47 PM, Nhi Pham wrote:
> This updates the I2C library and implements SMBUS PEI/DXE drivers to
> support IPMI SSIF in the Mt. Jade platform.
>
> v2:
> - Refine the changes of the DwI2cLib per Leif's comments and update the
> commit message accordingly.
> - Remove the additional PCD PcdBmcSlaveAddr since it's is unused.
>
> NOTE: Regarding the controller/target terminology, the function
> prototype and comment are derived from edk2/MdePkg. In this patch set, I
> am trying to avoid misusing the terms in the implementation instead of
> altering the function prototype and comment with the PPI and Protocol.
>
> Nhi Pham (5):
> AmpereAltraPkg/DwI2cLib: Add support for SMBUS+PEC operation
> AmpereSiliconPkg: Define PCDs for SMBUS and BMC
> AmpereAltraPkg: Add SmbusHc PEI and DXE drivers
> JadePkg: Add PlatformBmcReadyLib to support BMC ready check
> Ampere/Jade: Enable IPMI SSIF
>
> Silicon/Ampere/AmpereSiliconPkg/AmpereSiliconPkg.dec | 15 +-
> Silicon/Ampere/AmpereAltraPkg/AmpereAltraPkg.dsc.inc | 23 ++
> Platform/Ampere/JadePkg/Jade.dsc | 2 +
> Platform/Ampere/JadePkg/Jade.fdf | 17 ++
> Platform/Ampere/JadePkg/Library/PlatformBmcReadyLib/PlatformBmcReadyLib.inf | 29 ++
> Silicon/Ampere/AmpereAltraPkg/Drivers/SmbusHc/SmbusHcDxe.inf | 43 +++
> Silicon/Ampere/AmpereAltraPkg/Drivers/SmbusHc/SmbusHcPei.inf | 43 +++
> Silicon/Ampere/AmpereAltraPkg/Drivers/SmbusHc/SmbusHcCommon.h | 95 +++++++
> Silicon/Ampere/AmpereAltraPkg/Include/Library/I2cLib.h | 11 +-
> Platform/Ampere/JadePkg/Library/PCF85063RealTimeClockLib/PCF85063.c | 6 +-
> Platform/Ampere/JadePkg/Library/PlatformBmcReadyLib/PlatformBmcReadyLib.c | 30 +++
> Silicon/Ampere/AmpereAltraPkg/Drivers/SmbusHc/SmbusHcCommon.c | 261 ++++++++++++++++++
> Silicon/Ampere/AmpereAltraPkg/Drivers/SmbusHc/SmbusHcDxe.c | 277 ++++++++++++++++++++
> Silicon/Ampere/AmpereAltraPkg/Drivers/SmbusHc/SmbusHcPei.c | 263 +++++++++++++++++++
> Silicon/Ampere/AmpereAltraPkg/Library/DwI2cLib/DwI2cLib.c | 129 ++++++++-
> 15 files changed, 1227 insertions(+), 17 deletions(-)
> create mode 100755 Platform/Ampere/JadePkg/Library/PlatformBmcReadyLib/PlatformBmcReadyLib.inf
> create mode 100644 Silicon/Ampere/AmpereAltraPkg/Drivers/SmbusHc/SmbusHcDxe.inf
> create mode 100644 Silicon/Ampere/AmpereAltraPkg/Drivers/SmbusHc/SmbusHcPei.inf
> create mode 100644 Silicon/Ampere/AmpereAltraPkg/Drivers/SmbusHc/SmbusHcCommon.h
> create mode 100644 Platform/Ampere/JadePkg/Library/PlatformBmcReadyLib/PlatformBmcReadyLib.c
> create mode 100644 Silicon/Ampere/AmpereAltraPkg/Drivers/SmbusHc/SmbusHcCommon.c
> create mode 100644 Silicon/Ampere/AmpereAltraPkg/Drivers/SmbusHc/SmbusHcDxe.c
> create mode 100644 Silicon/Ampere/AmpereAltraPkg/Drivers/SmbusHc/SmbusHcPei.c
>
-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#120288): https://edk2.groups.io/g/devel/message/120288
Mute This Topic: https://groups.io/mt/107765352/7686176
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io]
-=-=-=-=-=-=-=-=-=-=-=-
^ permalink raw reply [flat|nested] 19+ messages in thread
[parent not found: <17E9A1ED2D454E7A.19172@groups.io>]
* Re: [edk2-devel] [edk2-platforms][PATCH v2 0/5] Add IPMI SSIF support
[not found] ` <17E9A1ED2D454E7A.19172@groups.io>
@ 2024-08-13 4:16 ` Nhi Pham via groups.io
0 siblings, 0 replies; 19+ messages in thread
From: Nhi Pham via groups.io @ 2024-08-13 4:16 UTC (permalink / raw)
To: quic_llindhol@quicinc.com, devel@edk2.groups.io, Nhi Pham OS
Cc: Chuong Tran OS, Rebecca Cran OS
[-- Attachment #1: Type: text/plain, Size: 4309 bytes --]
Hi Leif,
Hope you're doing well. I hope you can find a few minutes on reviewing this patch set.
I appreciate your time.
Thanks,
Nhi
________________________________
From: devel@edk2.groups.io <devel@edk2.groups.io> on behalf of Nhi Pham via groups.io <nhi=os.amperecomputing.com@groups.io>
Sent: Thursday, August 8, 2024 10:06 AM
To: quic_llindhol@quicinc.com <quic_llindhol@quicinc.com>
Cc: devel@edk2.groups.io <devel@edk2.groups.io>; Chuong Tran OS <chuong@os.amperecomputing.com>; Rebecca Cran OS <rebecca@os.amperecomputing.com>
Subject: Re: [edk2-devel] [edk2-platforms][PATCH v2 0/5] Add IPMI SSIF support
Hi Leif,
I saw a comment from you in the Pull Request and I resolved it. Do you
prefer to review in the Github PR? Should I send v3 to the mailing list?
Regards,
Nhi
On 8/7/2024 1:47 PM, Nhi Pham wrote:
> This updates the I2C library and implements SMBUS PEI/DXE drivers to
> support IPMI SSIF in the Mt. Jade platform.
>
> v2:
> - Refine the changes of the DwI2cLib per Leif's comments and update the
> commit message accordingly.
> - Remove the additional PCD PcdBmcSlaveAddr since it's is unused.
>
> NOTE: Regarding the controller/target terminology, the function
> prototype and comment are derived from edk2/MdePkg. In this patch set, I
> am trying to avoid misusing the terms in the implementation instead of
> altering the function prototype and comment with the PPI and Protocol.
>
> Nhi Pham (5):
> AmpereAltraPkg/DwI2cLib: Add support for SMBUS+PEC operation
> AmpereSiliconPkg: Define PCDs for SMBUS and BMC
> AmpereAltraPkg: Add SmbusHc PEI and DXE drivers
> JadePkg: Add PlatformBmcReadyLib to support BMC ready check
> Ampere/Jade: Enable IPMI SSIF
>
> Silicon/Ampere/AmpereSiliconPkg/AmpereSiliconPkg.dec | 15 +-
> Silicon/Ampere/AmpereAltraPkg/AmpereAltraPkg.dsc.inc | 23 ++
> Platform/Ampere/JadePkg/Jade.dsc | 2 +
> Platform/Ampere/JadePkg/Jade.fdf | 17 ++
> Platform/Ampere/JadePkg/Library/PlatformBmcReadyLib/PlatformBmcReadyLib.inf | 29 ++
> Silicon/Ampere/AmpereAltraPkg/Drivers/SmbusHc/SmbusHcDxe.inf | 43 +++
> Silicon/Ampere/AmpereAltraPkg/Drivers/SmbusHc/SmbusHcPei.inf | 43 +++
> Silicon/Ampere/AmpereAltraPkg/Drivers/SmbusHc/SmbusHcCommon.h | 95 +++++++
> Silicon/Ampere/AmpereAltraPkg/Include/Library/I2cLib.h | 11 +-
> Platform/Ampere/JadePkg/Library/PCF85063RealTimeClockLib/PCF85063.c | 6 +-
> Platform/Ampere/JadePkg/Library/PlatformBmcReadyLib/PlatformBmcReadyLib.c | 30 +++
> Silicon/Ampere/AmpereAltraPkg/Drivers/SmbusHc/SmbusHcCommon.c | 261 ++++++++++++++++++
> Silicon/Ampere/AmpereAltraPkg/Drivers/SmbusHc/SmbusHcDxe.c | 277 ++++++++++++++++++++
> Silicon/Ampere/AmpereAltraPkg/Drivers/SmbusHc/SmbusHcPei.c | 263 +++++++++++++++++++
> Silicon/Ampere/AmpereAltraPkg/Library/DwI2cLib/DwI2cLib.c | 129 ++++++++-
> 15 files changed, 1227 insertions(+), 17 deletions(-)
> create mode 100755 Platform/Ampere/JadePkg/Library/PlatformBmcReadyLib/PlatformBmcReadyLib.inf
> create mode 100644 Silicon/Ampere/AmpereAltraPkg/Drivers/SmbusHc/SmbusHcDxe.inf
> create mode 100644 Silicon/Ampere/AmpereAltraPkg/Drivers/SmbusHc/SmbusHcPei.inf
> create mode 100644 Silicon/Ampere/AmpereAltraPkg/Drivers/SmbusHc/SmbusHcCommon.h
> create mode 100644 Platform/Ampere/JadePkg/Library/PlatformBmcReadyLib/PlatformBmcReadyLib.c
> create mode 100644 Silicon/Ampere/AmpereAltraPkg/Drivers/SmbusHc/SmbusHcCommon.c
> create mode 100644 Silicon/Ampere/AmpereAltraPkg/Drivers/SmbusHc/SmbusHcDxe.c
> create mode 100644 Silicon/Ampere/AmpereAltraPkg/Drivers/SmbusHc/SmbusHcPei.c
>
-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#120324): https://edk2.groups.io/g/devel/message/120324
Mute This Topic: https://groups.io/mt/107765352/7686176
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io]
-=-=-=-=-=-=-=-=-=-=-=-
[-- Attachment #2: Type: text/html, Size: 8526 bytes --]
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [edk2-devel] [edk2-platforms][PATCH v2 0/5] Add IPMI SSIF support
2024-08-07 6:47 [edk2-devel] [edk2-platforms][PATCH v2 0/5] Add IPMI SSIF support Nhi Pham via groups.io
` (7 preceding siblings ...)
[not found] ` <17E9A1ED2D454E7A.19172@groups.io>
@ 2024-08-29 5:55 ` Chuong Tran
2024-08-29 7:11 ` Nhi Pham via groups.io
8 siblings, 1 reply; 19+ messages in thread
From: Chuong Tran @ 2024-08-29 5:55 UTC (permalink / raw)
To: Nhi Pham, devel; +Cc: quic_llindhol, chuong, rebecca
For this patch series:
Reviewed-by: Chuong Tran <chuong@os.amperecomputing.com>
Regards,
Chuong
On 8/7/2024 1:47 PM, Nhi Pham wrote:
> This updates the I2C library and implements SMBUS PEI/DXE drivers to
> support IPMI SSIF in the Mt. Jade platform.
>
> v2:
> - Refine the changes of the DwI2cLib per Leif's comments and update the
> commit message accordingly.
> - Remove the additional PCD PcdBmcSlaveAddr since it's is unused.
>
> NOTE: Regarding the controller/target terminology, the function
> prototype and comment are derived from edk2/MdePkg. In this patch set, I
> am trying to avoid misusing the terms in the implementation instead of
> altering the function prototype and comment with the PPI and Protocol.
>
> Nhi Pham (5):
> AmpereAltraPkg/DwI2cLib: Add support for SMBUS+PEC operation
> AmpereSiliconPkg: Define PCDs for SMBUS and BMC
> AmpereAltraPkg: Add SmbusHc PEI and DXE drivers
> JadePkg: Add PlatformBmcReadyLib to support BMC ready check
> Ampere/Jade: Enable IPMI SSIF
>
> Silicon/Ampere/AmpereSiliconPkg/AmpereSiliconPkg.dec | 15 +-
> Silicon/Ampere/AmpereAltraPkg/AmpereAltraPkg.dsc.inc | 23 ++
> Platform/Ampere/JadePkg/Jade.dsc | 2 +
> Platform/Ampere/JadePkg/Jade.fdf | 17 ++
> Platform/Ampere/JadePkg/Library/PlatformBmcReadyLib/PlatformBmcReadyLib.inf | 29 ++
> Silicon/Ampere/AmpereAltraPkg/Drivers/SmbusHc/SmbusHcDxe.inf | 43 +++
> Silicon/Ampere/AmpereAltraPkg/Drivers/SmbusHc/SmbusHcPei.inf | 43 +++
> Silicon/Ampere/AmpereAltraPkg/Drivers/SmbusHc/SmbusHcCommon.h | 95 +++++++
> Silicon/Ampere/AmpereAltraPkg/Include/Library/I2cLib.h | 11 +-
> Platform/Ampere/JadePkg/Library/PCF85063RealTimeClockLib/PCF85063.c | 6 +-
> Platform/Ampere/JadePkg/Library/PlatformBmcReadyLib/PlatformBmcReadyLib.c | 30 +++
> Silicon/Ampere/AmpereAltraPkg/Drivers/SmbusHc/SmbusHcCommon.c | 261 ++++++++++++++++++
> Silicon/Ampere/AmpereAltraPkg/Drivers/SmbusHc/SmbusHcDxe.c | 277 ++++++++++++++++++++
> Silicon/Ampere/AmpereAltraPkg/Drivers/SmbusHc/SmbusHcPei.c | 263 +++++++++++++++++++
> Silicon/Ampere/AmpereAltraPkg/Library/DwI2cLib/DwI2cLib.c | 129 ++++++++-
> 15 files changed, 1227 insertions(+), 17 deletions(-)
> create mode 100755 Platform/Ampere/JadePkg/Library/PlatformBmcReadyLib/PlatformBmcReadyLib.inf
> create mode 100644 Silicon/Ampere/AmpereAltraPkg/Drivers/SmbusHc/SmbusHcDxe.inf
> create mode 100644 Silicon/Ampere/AmpereAltraPkg/Drivers/SmbusHc/SmbusHcPei.inf
> create mode 100644 Silicon/Ampere/AmpereAltraPkg/Drivers/SmbusHc/SmbusHcCommon.h
> create mode 100644 Platform/Ampere/JadePkg/Library/PlatformBmcReadyLib/PlatformBmcReadyLib.c
> create mode 100644 Silicon/Ampere/AmpereAltraPkg/Drivers/SmbusHc/SmbusHcCommon.c
> create mode 100644 Silicon/Ampere/AmpereAltraPkg/Drivers/SmbusHc/SmbusHcDxe.c
> create mode 100644 Silicon/Ampere/AmpereAltraPkg/Drivers/SmbusHc/SmbusHcPei.c
>
-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#120479): https://edk2.groups.io/g/devel/message/120479
Mute This Topic: https://groups.io/mt/107765352/7686176
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io]
-=-=-=-=-=-=-=-=-=-=-=-
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [edk2-devel] [edk2-platforms][PATCH v2 0/5] Add IPMI SSIF support
2024-08-29 5:55 ` Chuong Tran
@ 2024-08-29 7:11 ` Nhi Pham via groups.io
0 siblings, 0 replies; 19+ messages in thread
From: Nhi Pham via groups.io @ 2024-08-29 7:11 UTC (permalink / raw)
To: Chuong Tran OS, devel@edk2.groups.io
Cc: quic_llindhol@quicinc.com, Chuong Tran OS, Rebecca Cran OS
[-- Attachment #1: Type: text/plain, Size: 4099 bytes --]
Pushed as 6146fd7abcf6..9d8eda6ffff2
Thanks,
Nhi
________________________________
From: Chuong Tran OS <chuong@amperemail.onmicrosoft.com>
Sent: Thursday, August 29, 2024 12:55 PM
To: Nhi Pham OS <nhi@os.amperecomputing.com>; devel@edk2.groups.io <devel@edk2.groups.io>
Cc: quic_llindhol@quicinc.com <quic_llindhol@quicinc.com>; Chuong Tran OS <chuong@os.amperecomputing.com>; Rebecca Cran OS <rebecca@os.amperecomputing.com>
Subject: Re: [edk2-platforms][PATCH v2 0/5] Add IPMI SSIF support
For this patch series:
Reviewed-by: Chuong Tran <chuong@os.amperecomputing.com>
Regards,
Chuong
On 8/7/2024 1:47 PM, Nhi Pham wrote:
> This updates the I2C library and implements SMBUS PEI/DXE drivers to
> support IPMI SSIF in the Mt. Jade platform.
>
> v2:
> - Refine the changes of the DwI2cLib per Leif's comments and update the
> commit message accordingly.
> - Remove the additional PCD PcdBmcSlaveAddr since it's is unused.
>
> NOTE: Regarding the controller/target terminology, the function
> prototype and comment are derived from edk2/MdePkg. In this patch set, I
> am trying to avoid misusing the terms in the implementation instead of
> altering the function prototype and comment with the PPI and Protocol.
>
> Nhi Pham (5):
> AmpereAltraPkg/DwI2cLib: Add support for SMBUS+PEC operation
> AmpereSiliconPkg: Define PCDs for SMBUS and BMC
> AmpereAltraPkg: Add SmbusHc PEI and DXE drivers
> JadePkg: Add PlatformBmcReadyLib to support BMC ready check
> Ampere/Jade: Enable IPMI SSIF
>
> Silicon/Ampere/AmpereSiliconPkg/AmpereSiliconPkg.dec | 15 +-
> Silicon/Ampere/AmpereAltraPkg/AmpereAltraPkg.dsc.inc | 23 ++
> Platform/Ampere/JadePkg/Jade.dsc | 2 +
> Platform/Ampere/JadePkg/Jade.fdf | 17 ++
> Platform/Ampere/JadePkg/Library/PlatformBmcReadyLib/PlatformBmcReadyLib.inf | 29 ++
> Silicon/Ampere/AmpereAltraPkg/Drivers/SmbusHc/SmbusHcDxe.inf | 43 +++
> Silicon/Ampere/AmpereAltraPkg/Drivers/SmbusHc/SmbusHcPei.inf | 43 +++
> Silicon/Ampere/AmpereAltraPkg/Drivers/SmbusHc/SmbusHcCommon.h | 95 +++++++
> Silicon/Ampere/AmpereAltraPkg/Include/Library/I2cLib.h | 11 +-
> Platform/Ampere/JadePkg/Library/PCF85063RealTimeClockLib/PCF85063.c | 6 +-
> Platform/Ampere/JadePkg/Library/PlatformBmcReadyLib/PlatformBmcReadyLib.c | 30 +++
> Silicon/Ampere/AmpereAltraPkg/Drivers/SmbusHc/SmbusHcCommon.c | 261 ++++++++++++++++++
> Silicon/Ampere/AmpereAltraPkg/Drivers/SmbusHc/SmbusHcDxe.c | 277 ++++++++++++++++++++
> Silicon/Ampere/AmpereAltraPkg/Drivers/SmbusHc/SmbusHcPei.c | 263 +++++++++++++++++++
> Silicon/Ampere/AmpereAltraPkg/Library/DwI2cLib/DwI2cLib.c | 129 ++++++++-
> 15 files changed, 1227 insertions(+), 17 deletions(-)
> create mode 100755 Platform/Ampere/JadePkg/Library/PlatformBmcReadyLib/PlatformBmcReadyLib.inf
> create mode 100644 Silicon/Ampere/AmpereAltraPkg/Drivers/SmbusHc/SmbusHcDxe.inf
> create mode 100644 Silicon/Ampere/AmpereAltraPkg/Drivers/SmbusHc/SmbusHcPei.inf
> create mode 100644 Silicon/Ampere/AmpereAltraPkg/Drivers/SmbusHc/SmbusHcCommon.h
> create mode 100644 Platform/Ampere/JadePkg/Library/PlatformBmcReadyLib/PlatformBmcReadyLib.c
> create mode 100644 Silicon/Ampere/AmpereAltraPkg/Drivers/SmbusHc/SmbusHcCommon.c
> create mode 100644 Silicon/Ampere/AmpereAltraPkg/Drivers/SmbusHc/SmbusHcDxe.c
> create mode 100644 Silicon/Ampere/AmpereAltraPkg/Drivers/SmbusHc/SmbusHcPei.c
>
-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#120426): https://edk2.groups.io/g/devel/message/120426
Mute This Topic: https://groups.io/mt/107765352/7686176
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io]
-=-=-=-=-=-=-=-=-=-=-=-
[-- Attachment #2: Type: text/html, Size: 7768 bytes --]
^ permalink raw reply [flat|nested] 19+ messages in thread