* Re: [edk2-devel] [PATCH V2] MdePkg/Include: Add IPMI KCS definitions [not found] <174A78FC34F9F88C.23983@groups.io> @ 2023-03-08 14:52 ` Chang, Abner [not found] ` <174A794AF245E853.23983@groups.io> 1 sibling, 0 replies; 3+ messages in thread From: Chang, Abner @ 2023-03-08 14:52 UTC (permalink / raw) To: devel@edk2.groups.io, Chang, Abner Cc: Michael D Kinney, Liming Gao, Zhiguang Liu, Nickle Wang, Igor Kulchytskyy, Isaac Oram, Attar, AbdulLateef (Abdul Lateef) [AMD Official Use Only - General] In V2 , CompletionCode is removed from structure IPMI_KCS_RESPONSE_HEADER, because it is returned in the response data. Thanks Abner > -----Original Message----- > From: devel@edk2.groups.io <devel@edk2.groups.io> On Behalf Of Chang, > Abner via groups.io > Sent: Wednesday, March 8, 2023 10:47 PM > To: devel@edk2.groups.io > Cc: Michael D Kinney <michael.d.kinney@intel.com>; Liming Gao > <gaoliming@byosoft.com.cn>; Zhiguang Liu <zhiguang.liu@intel.com>; Nickle > Wang <nicklew@nvidia.com>; Igor Kulchytskyy <igork@ami.com>; Isaac > Oram <isaac.w.oram@intel.com>; Attar, AbdulLateef (Abdul Lateef) > <AbdulLateef.Attar@amd.com> > Subject: [edk2-devel] [PATCH V2] MdePkg/Include: Add IPMI KCS definitions > > Caution: This message originated from an External Source. Use proper > caution when opening attachments, clicking links, or responding. > > > From: Abner Chang <abner.chang@amd.com> > > BZ #4354 > This change adds definitions for IPMI KCS. > > Spec ref: > https://www.intel.com/content/www/us/en/products/docs/servers/ipmi/i > pmi-second-gen-interface-spec-v2-rev1-1.html > > Signed-off-by: Abner Chang <abner.chang@amd.com> > Cc: Michael D Kinney <michael.d.kinney@intel.com> > Cc: Liming Gao <gaoliming@byosoft.com.cn> > Cc: Zhiguang Liu <zhiguang.liu@intel.com> > Cc: Nickle Wang <nicklew@nvidia.com> > Cc: Igor Kulchytskyy <igork@ami.com> > Cc: Isaac Oram <isaac.w.oram@intel.com> > Cc: Abdul Lateef Attar <AbdulLateef.Attar@amd.com> > Acked-by: Isaac Oram <isaac.w.oram@intel.com> > --- > MdePkg/MdePkg.dec | 5 ++ > MdePkg/Include/IndustryStandard/IpmiKcs.h | 76 > +++++++++++++++++++++++ > 2 files changed, 81 insertions(+) > create mode 100644 MdePkg/Include/IndustryStandard/IpmiKcs.h > > diff --git a/MdePkg/MdePkg.dec b/MdePkg/MdePkg.dec index > 80b65590531..808c487bb49 100644 > --- a/MdePkg/MdePkg.dec > +++ b/MdePkg/MdePkg.dec > @@ -9,6 +9,7 @@ > # (C) Copyright 2016 - 2021 Hewlett Packard Enterprise Development LP<BR> > # Copyright (c) 2022, Loongson Technology Corporation Limited. All rights > reserved.<BR> # Copyright (c) 2021 - 2022, Arm Limited. All rights > reserved.<BR> > +# Copyright (C) 2023 Advanced Micro Devices, Inc. All rights > +reserved.<BR> > # > # SPDX-License-Identifier: BSD-2-Clause-Patent # @@ -2339,6 +2340,10 @@ > # @Prompt Memory Address of GuidedExtractHandler Table. > > gEfiMdePkgTokenSpaceGuid.PcdGuidedExtractHandlerTableAddress|0x1000 > 000|UINT64|0x30001015 > > + ## This value is the IPMI KCS Interface I/O base address used to transmit > IPMI commands. > + # @Prompt IPMI KCS Interface I/O Base Address > + > + > gEfiMdePkgTokenSpaceGuid.PcdIpmiKcsBaseAddress|0xca2|UINT16|0x0000 > 0031 > + > [PcdsFixedAtBuild, PcdsPatchableInModule, PcdsDynamic, PcdsDynamicEx] > ## This value is used to set the base address of PCI express hierarchy. > # @Prompt PCI Express Base Address. > diff --git a/MdePkg/Include/IndustryStandard/IpmiKcs.h > b/MdePkg/Include/IndustryStandard/IpmiKcs.h > new file mode 100644 > index 00000000000..c3baf80bd76 > --- /dev/null > +++ b/MdePkg/Include/IndustryStandard/IpmiKcs.h > @@ -0,0 +1,76 @@ > +/** @file > + IPMI KCS Register Definitions > + > + Copyright (C) 2023 Advanced Micro Devices, Inc. All rights > + reserved.<BR> > + SPDX-License-Identifier: BSD-2-Clause-Patent > + > + @par Revision Reference: > + IPMI Specification > + Version 2.0, Rev. 1.1 > + > +https://www.intel.com/content/www/us/en/products/docs/servers/ipmi/ > ipmi > +-second-gen-interface-spec-v2-rev1-1.html > +**/ > + > +#ifndef IPMI_KCS_H_ > +#define IPMI_KCS_H_ > + > +#define IPMI_KCS_STATUS_REGISTER_OFFSET 1 > +#define IPMI_KCS_COMMAND_REGISTER_OFFSET 1 > +#define IPMI_KCS_DATA_OUT_REGISTER_OFFSET 0 > +#define IPMI_KCS_DATA_IN_REGISTER_OFFSET 0 > + > +/// > +/// IPMI KCS Interface Status Bits > +/// > +#define IPMI_KCS_OBF BIT0 > +#define IPMI_KCS_IBF BIT1 > +#define IPMI_KCS_SMS_ATN BIT2 > +#define IPMI_KCS_COMMAND_DATA BIT3 > +#define IPMI_KCS_OEM1 BIT4 > +#define IPMI_KCS_OEM2 BIT5 > +#define IPMI_KCS_S0 BIT6 > +#define IPMI_KCS_S1 BIT7 > + > +/// > +/// IPMI KCS Interface Control Codes > +/// > +#define IPMI_KCS_CONTROL_CODE_GET_STATUS_ABORT 0x60 > +#define IPMI_KCS_CONTROL_CODE_WRITE_START 0x61 > +#define IPMI_KCS_CONTROL_CODE_WRITE_END 0x62 > +#define IPMI_KCS_CONTROL_CODE_READ 0x68 > + > +/// > +/// Status Codes > +/// > +#define IPMI_KCS_STATUS_NO_ERROR 0x00 > +#define IPMI_KCS_STATUS_ABORT 0x01 > +#define IPMI_KCS_STATUS_ILLEGAL 0x02 > +#define IPMI_KCS_STATUS_LENGTH_ERROR 0x06 > +#define IPMI_KCS_STATUS_UNSPECIFIED 0xFF > + > +/// > +/// KCS Interface State Bit > +/// > +typedef enum { > + IPMI_KCS_IDLE_STATE = 0, > + IPMI_KCS_READ_STATE, > + IPMI_KCS_WRITE_STATE, > + IPMI_KCS_ERROR_STATE > +} IPMI_KCS_STATE; > + > +/// > +/// IPMI KCS Interface Request Format > +/// > +typedef struct { > + UINT8 NetFunc; > + UINT8 Command; > + UINT8 Data[0]; > +} IPMI_KCS_RESQUEST_HEADER; > + > +/// > +/// IPMI KCS Interface Response Format > +/// > +typedef struct { > + UINT8 NetFunc; > + UINT8 Command; > +} IPMI_KCS_RESPONSE_HEADER; > +#endif > -- > 2.37.1.windows.1 > > > > > ^ permalink raw reply [flat|nested] 3+ messages in thread
[parent not found: <174A794AF245E853.23983@groups.io>]
* Re: [edk2-devel] [PATCH V2] MdePkg/Include: Add IPMI KCS definitions [not found] ` <174A794AF245E853.23983@groups.io> @ 2023-03-13 2:39 ` Chang, Abner 0 siblings, 0 replies; 3+ messages in thread From: Chang, Abner @ 2023-03-13 2:39 UTC (permalink / raw) To: devel@edk2.groups.io, Chang, Abner Cc: Michael D Kinney, Liming Gao, Zhiguang Liu, Nickle Wang, Igor Kulchytskyy, Isaac Oram, Attar, AbdulLateef (Abdul Lateef) [AMD Official Use Only - General] Hi Maintainers @michael.d.kinney@intel.com, @Liming Gao and @Zhiguang Liu, Please review and merge it if there is no problems with this patch, this helps the follow up development works. Please note that Isaac has his Acked-by: Isaac Oram <isaac.w.oram@intel.com> to this patch. Thanks Abner > -----Original Message----- > From: devel@edk2.groups.io <devel@edk2.groups.io> On Behalf Of Chang, > Abner via groups.io > Sent: Wednesday, March 8, 2023 10:53 PM > To: devel@edk2.groups.io; Chang, Abner <Abner.Chang@amd.com> > Cc: Michael D Kinney <michael.d.kinney@intel.com>; Liming Gao > <gaoliming@byosoft.com.cn>; Zhiguang Liu <zhiguang.liu@intel.com>; Nickle > Wang <nicklew@nvidia.com>; Igor Kulchytskyy <igork@ami.com>; Isaac > Oram <isaac.w.oram@intel.com>; Attar, AbdulLateef (Abdul Lateef) > <AbdulLateef.Attar@amd.com> > Subject: Re: [edk2-devel] [PATCH V2] MdePkg/Include: Add IPMI KCS > definitions > > Caution: This message originated from an External Source. Use proper > caution when opening attachments, clicking links, or responding. > > > [AMD Official Use Only - General] > > In V2 , > CompletionCode is removed from structure IPMI_KCS_RESPONSE_HEADER, > because it is returned in the response data. > > Thanks > Abner > > > -----Original Message----- > > From: devel@edk2.groups.io <devel@edk2.groups.io> On Behalf Of Chang, > > Abner via groups.io > > Sent: Wednesday, March 8, 2023 10:47 PM > > To: devel@edk2.groups.io > > Cc: Michael D Kinney <michael.d.kinney@intel.com>; Liming Gao > > <gaoliming@byosoft.com.cn>; Zhiguang Liu <zhiguang.liu@intel.com>; > > Nickle Wang <nicklew@nvidia.com>; Igor Kulchytskyy <igork@ami.com>; > > Isaac Oram <isaac.w.oram@intel.com>; Attar, AbdulLateef (Abdul Lateef) > > <AbdulLateef.Attar@amd.com> > > Subject: [edk2-devel] [PATCH V2] MdePkg/Include: Add IPMI KCS > > definitions > > > > Caution: This message originated from an External Source. Use proper > > caution when opening attachments, clicking links, or responding. > > > > > > From: Abner Chang <abner.chang@amd.com> > > > > BZ #4354 > > This change adds definitions for IPMI KCS. > > > > Spec ref: > > > https://www.intel.com/content/www/us/en/products/docs/servers/ipmi/i > > pmi-second-gen-interface-spec-v2-rev1-1.html > > > > Signed-off-by: Abner Chang <abner.chang@amd.com> > > Cc: Michael D Kinney <michael.d.kinney@intel.com> > > Cc: Liming Gao <gaoliming@byosoft.com.cn> > > Cc: Zhiguang Liu <zhiguang.liu@intel.com> > > Cc: Nickle Wang <nicklew@nvidia.com> > > Cc: Igor Kulchytskyy <igork@ami.com> > > Cc: Isaac Oram <isaac.w.oram@intel.com> > > Cc: Abdul Lateef Attar <AbdulLateef.Attar@amd.com> > > Acked-by: Isaac Oram <isaac.w.oram@intel.com> > > --- > > MdePkg/MdePkg.dec | 5 ++ > > MdePkg/Include/IndustryStandard/IpmiKcs.h | 76 > > +++++++++++++++++++++++ > > 2 files changed, 81 insertions(+) > > create mode 100644 MdePkg/Include/IndustryStandard/IpmiKcs.h > > > > diff --git a/MdePkg/MdePkg.dec b/MdePkg/MdePkg.dec index > > 80b65590531..808c487bb49 100644 > > --- a/MdePkg/MdePkg.dec > > +++ b/MdePkg/MdePkg.dec > > @@ -9,6 +9,7 @@ > > # (C) Copyright 2016 - 2021 Hewlett Packard Enterprise Development > > LP<BR> # Copyright (c) 2022, Loongson Technology Corporation Limited. > > All rights reserved.<BR> # Copyright (c) 2021 - 2022, Arm Limited. > > All rights reserved.<BR> > > +# Copyright (C) 2023 Advanced Micro Devices, Inc. All rights > > +reserved.<BR> > > # > > # SPDX-License-Identifier: BSD-2-Clause-Patent # @@ -2339,6 +2340,10 > @@ > > # @Prompt Memory Address of GuidedExtractHandler Table. > > > > > gEfiMdePkgTokenSpaceGuid.PcdGuidedExtractHandlerTableAddress|0x1000 > > 000|UINT64|0x30001015 > > > > + ## This value is the IPMI KCS Interface I/O base address used to > > + transmit > > IPMI commands. > > + # @Prompt IPMI KCS Interface I/O Base Address > > + > > + > > > gEfiMdePkgTokenSpaceGuid.PcdIpmiKcsBaseAddress|0xca2|UINT16|0x0000 > > 0031 > > + > > [PcdsFixedAtBuild, PcdsPatchableInModule, PcdsDynamic, PcdsDynamicEx] > > ## This value is used to set the base address of PCI express hierarchy. > > # @Prompt PCI Express Base Address. > > diff --git a/MdePkg/Include/IndustryStandard/IpmiKcs.h > > b/MdePkg/Include/IndustryStandard/IpmiKcs.h > > new file mode 100644 > > index 00000000000..c3baf80bd76 > > --- /dev/null > > +++ b/MdePkg/Include/IndustryStandard/IpmiKcs.h > > @@ -0,0 +1,76 @@ > > +/** @file > > + IPMI KCS Register Definitions > > + > > + Copyright (C) 2023 Advanced Micro Devices, Inc. All rights > > + reserved.<BR> > > + SPDX-License-Identifier: BSD-2-Clause-Patent > > + > > + @par Revision Reference: > > + IPMI Specification > > + Version 2.0, Rev. 1.1 > > + > > > +https://www.intel.com/content/www/us/en/products/docs/servers/ipmi/ > > ipmi > > +-second-gen-interface-spec-v2-rev1-1.html > > +**/ > > + > > +#ifndef IPMI_KCS_H_ > > +#define IPMI_KCS_H_ > > + > > +#define IPMI_KCS_STATUS_REGISTER_OFFSET 1 > > +#define IPMI_KCS_COMMAND_REGISTER_OFFSET 1 > > +#define IPMI_KCS_DATA_OUT_REGISTER_OFFSET 0 > > +#define IPMI_KCS_DATA_IN_REGISTER_OFFSET 0 > > + > > +/// > > +/// IPMI KCS Interface Status Bits > > +/// > > +#define IPMI_KCS_OBF BIT0 > > +#define IPMI_KCS_IBF BIT1 > > +#define IPMI_KCS_SMS_ATN BIT2 > > +#define IPMI_KCS_COMMAND_DATA BIT3 > > +#define IPMI_KCS_OEM1 BIT4 > > +#define IPMI_KCS_OEM2 BIT5 > > +#define IPMI_KCS_S0 BIT6 > > +#define IPMI_KCS_S1 BIT7 > > + > > +/// > > +/// IPMI KCS Interface Control Codes > > +/// > > +#define IPMI_KCS_CONTROL_CODE_GET_STATUS_ABORT 0x60 > > +#define IPMI_KCS_CONTROL_CODE_WRITE_START 0x61 > > +#define IPMI_KCS_CONTROL_CODE_WRITE_END 0x62 > > +#define IPMI_KCS_CONTROL_CODE_READ 0x68 > > + > > +/// > > +/// Status Codes > > +/// > > +#define IPMI_KCS_STATUS_NO_ERROR 0x00 > > +#define IPMI_KCS_STATUS_ABORT 0x01 > > +#define IPMI_KCS_STATUS_ILLEGAL 0x02 > > +#define IPMI_KCS_STATUS_LENGTH_ERROR 0x06 > > +#define IPMI_KCS_STATUS_UNSPECIFIED 0xFF > > + > > +/// > > +/// KCS Interface State Bit > > +/// > > +typedef enum { > > + IPMI_KCS_IDLE_STATE = 0, > > + IPMI_KCS_READ_STATE, > > + IPMI_KCS_WRITE_STATE, > > + IPMI_KCS_ERROR_STATE > > +} IPMI_KCS_STATE; > > + > > +/// > > +/// IPMI KCS Interface Request Format /// typedef struct { > > + UINT8 NetFunc; > > + UINT8 Command; > > + UINT8 Data[0]; > > +} IPMI_KCS_RESQUEST_HEADER; > > + > > +/// > > +/// IPMI KCS Interface Response Format /// typedef struct { > > + UINT8 NetFunc; > > + UINT8 Command; > > +} IPMI_KCS_RESPONSE_HEADER; > > +#endif > > -- > > 2.37.1.windows.1 > > > > > > > > > > > > > > ^ permalink raw reply [flat|nested] 3+ messages in thread
* [PATCH V2] MdePkg/Include: Add IPMI KCS definitions @ 2023-03-03 3:17 Chang, Abner 2023-03-08 0:01 ` [edk2-devel] " Isaac Oram 0 siblings, 1 reply; 3+ messages in thread From: Chang, Abner @ 2023-03-03 3:17 UTC (permalink / raw) To: devel Cc: Michael D Kinney, Liming Gao, Zhiguang Liu, Nickle Wang, Igor Kulchytskyy, Isaac Oram, Abdul Lateef Attar From: Abner Chang <abner.chang@amd.com> BZ #4354 This change adds definitions for IPMI KCS. Spec ref: https://www.intel.com/content/www/us/en/products/docs/servers/ipmi/ipmi-second-gen-interface-spec-v2-rev1-1.html Signed-off-by: Abner Chang <abner.chang@amd.com> Cc: Michael D Kinney <michael.d.kinney@intel.com> Cc: Liming Gao <gaoliming@byosoft.com.cn> Cc: Zhiguang Liu <zhiguang.liu@intel.com> Cc: Nickle Wang <nicklew@nvidia.com> Cc: Igor Kulchytskyy <igork@ami.com> Cc: Isaac Oram <isaac.w.oram@intel.com> Cc: Abdul Lateef Attar <AbdulLateef.Attar@amd.com> --- MdePkg/MdePkg.dec | 5 ++ MdePkg/Include/IndustryStandard/IpmiKcs.h | 77 +++++++++++++++++++++++ 2 files changed, 82 insertions(+) create mode 100644 MdePkg/Include/IndustryStandard/IpmiKcs.h diff --git a/MdePkg/MdePkg.dec b/MdePkg/MdePkg.dec index 3d08f20d15b..0ed033983bf 100644 --- a/MdePkg/MdePkg.dec +++ b/MdePkg/MdePkg.dec @@ -9,6 +9,7 @@ # (C) Copyright 2016 - 2021 Hewlett Packard Enterprise Development LP<BR> # Copyright (c) 2022, Loongson Technology Corporation Limited. All rights reserved.<BR> # Copyright (c) 2021 - 2022, Arm Limited. All rights reserved.<BR> +# Copyright (C) 2023 Advanced Micro Devices, Inc. All rights reserved.<BR> # # SPDX-License-Identifier: BSD-2-Clause-Patent # @@ -2332,6 +2333,10 @@ # @Prompt Memory Address of GuidedExtractHandler Table. gEfiMdePkgTokenSpaceGuid.PcdGuidedExtractHandlerTableAddress|0x1000000|UINT64|0x30001015 + ## This value is the IPMI KCS Interface I/O base address used to transmit IPMI commands. + # @Prompt IPMI KCS Interface I/O Base Address + gEfiMdePkgTokenSpaceGuid.PcdIpmiKcsBaseAddress|0xca2|UINT16|0x00000031 + [PcdsFixedAtBuild, PcdsPatchableInModule, PcdsDynamic, PcdsDynamicEx] ## This value is used to set the base address of PCI express hierarchy. # @Prompt PCI Express Base Address. diff --git a/MdePkg/Include/IndustryStandard/IpmiKcs.h b/MdePkg/Include/IndustryStandard/IpmiKcs.h new file mode 100644 index 00000000000..6533135dcde --- /dev/null +++ b/MdePkg/Include/IndustryStandard/IpmiKcs.h @@ -0,0 +1,77 @@ +/** @file + IPMI KCS Register Definitions + + Copyright (C) 2023 Advanced Micro Devices, Inc. All rights reserved.<BR> + SPDX-License-Identifier: BSD-2-Clause-Patent + + @par Revision Reference: + IPMI Specification + Version 2.0, Rev. 1.1 + https://www.intel.com/content/www/us/en/products/docs/servers/ipmi/ipmi-second-gen-interface-spec-v2-rev1-1.html +**/ + +#ifndef IPMI_KCS_H_ +#define IPMI_KCS_H_ + +#define IPMI_KCS_STATUS_REGISTER_OFFSET 1 +#define IPMI_KCS_COMMAND_REGISTER_OFFSET 1 +#define IPMI_KCS_DATA_OUT_REGISTER_OFFSET 0 +#define IPMI_KCS_DATA_IN_REGISTER_OFFSET 0 + +/// +/// IPMI KCS Interface Status Bits +/// +#define IPMI_KCS_OBF BIT0 +#define IPMI_KCS_IBF BIT1 +#define IPMI_KCS_SMS_ATN BIT2 +#define IPMI_KCS_COMMAND_DATA BIT3 +#define IPMI_KCS_OEM1 BIT4 +#define IPMI_KCS_OEM2 BIT5 +#define IPMI_KCS_S0 BIT6 +#define IPMI_KCS_S1 BIT7 + +/// +/// IPMI KCS Interface Control Codes +/// +#define IPMI_KCS_CONTROL_CODE_GET_STATUS_ABORT 0x60 +#define IPMI_KCS_CONTROL_CODE_WRITE_START 0x61 +#define IPMI_KCS_CONTROL_CODE_WRITE_END 0x62 +#define IPMI_KCS_CONTROL_CODE_READ 0x68 + +/// +/// Status Codes +/// +#define IPMI_KCS_STATUS_NO_ERROR 0x00 +#define IPMI_KCS_STATUS_ABORT 0x01 +#define IPMI_KCS_STATUS_ILLEGAL 0x02 +#define IPMI_KCS_STATUS_LENGTH_ERROR 0x06 +#define IPMI_KCS_STATUS_UNSPECIFIED 0xFF + +/// +/// KCS Interface State Bit +/// +typedef enum { + IPMI_KCS_IDLE_STATE = 0, + IPMI_KCS_READ_STATE, + IPMI_KCS_WRITE_STATE, + IPMI_KCS_ERROR_STATE +} IPMI_KCS_STATE; + +/// +/// IPMI KCS Interface Request Format +/// +typedef struct { + UINT8 NetFunc; + UINT8 Command; + UINT8 Data[0]; +} IPMI_KCS_RESQUEST_HEADER; + +/// +/// IPMI KCS Interface Response Format +/// +typedef struct { + UINT8 NetFunc; + UINT8 Command; + UINT8 CompletionCode; +} IPMI_KCS_RESPONSE_HEADER; +#endif -- 2.37.1.windows.1 ^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [edk2-devel] [PATCH V2] MdePkg/Include: Add IPMI KCS definitions 2023-03-03 3:17 Chang, Abner @ 2023-03-08 0:01 ` Isaac Oram 0 siblings, 0 replies; 3+ messages in thread From: Isaac Oram @ 2023-03-08 0:01 UTC (permalink / raw) To: devel@edk2.groups.io, abner.chang@amd.com Cc: Kinney, Michael D, Gao, Liming, Liu, Zhiguang, Nickle Wang, Igor Kulchytskyy, Abdul Lateef Attar Acked-by: Isaac Oram <isaac.w.oram@intel.com> -----Original Message----- From: devel@edk2.groups.io <devel@edk2.groups.io> On Behalf Of Chang, Abner via groups.io Sent: Thursday, March 2, 2023 7:17 PM To: devel@edk2.groups.io Cc: Kinney, Michael D <michael.d.kinney@intel.com>; Gao, Liming <gaoliming@byosoft.com.cn>; Liu, Zhiguang <zhiguang.liu@intel.com>; Nickle Wang <nicklew@nvidia.com>; Igor Kulchytskyy <igork@ami.com>; Oram, Isaac W <isaac.w.oram@intel.com>; Abdul Lateef Attar <AbdulLateef.Attar@amd.com> Subject: [edk2-devel] [PATCH V2] MdePkg/Include: Add IPMI KCS definitions From: Abner Chang <abner.chang@amd.com> BZ #4354 This change adds definitions for IPMI KCS. Spec ref: https://www.intel.com/content/www/us/en/products/docs/servers/ipmi/ipmi-second-gen-interface-spec-v2-rev1-1.html Signed-off-by: Abner Chang <abner.chang@amd.com> Cc: Michael D Kinney <michael.d.kinney@intel.com> Cc: Liming Gao <gaoliming@byosoft.com.cn> Cc: Zhiguang Liu <zhiguang.liu@intel.com> Cc: Nickle Wang <nicklew@nvidia.com> Cc: Igor Kulchytskyy <igork@ami.com> Cc: Isaac Oram <isaac.w.oram@intel.com> Cc: Abdul Lateef Attar <AbdulLateef.Attar@amd.com> --- MdePkg/MdePkg.dec | 5 ++ MdePkg/Include/IndustryStandard/IpmiKcs.h | 77 +++++++++++++++++++++++ 2 files changed, 82 insertions(+) create mode 100644 MdePkg/Include/IndustryStandard/IpmiKcs.h diff --git a/MdePkg/MdePkg.dec b/MdePkg/MdePkg.dec index 3d08f20d15b..0ed033983bf 100644 --- a/MdePkg/MdePkg.dec +++ b/MdePkg/MdePkg.dec @@ -9,6 +9,7 @@ # (C) Copyright 2016 - 2021 Hewlett Packard Enterprise Development LP<BR> # Copyright (c) 2022, Loongson Technology Corporation Limited. All rights reserved.<BR> # Copyright (c) 2021 - 2022, Arm Limited. All rights reserved.<BR> +# Copyright (C) 2023 Advanced Micro Devices, Inc. All rights +reserved.<BR> # # SPDX-License-Identifier: BSD-2-Clause-Patent # @@ -2332,6 +2333,10 @@ # @Prompt Memory Address of GuidedExtractHandler Table. gEfiMdePkgTokenSpaceGuid.PcdGuidedExtractHandlerTableAddress|0x1000000|UINT64|0x30001015 + ## This value is the IPMI KCS Interface I/O base address used to transmit IPMI commands. + # @Prompt IPMI KCS Interface I/O Base Address + + gEfiMdePkgTokenSpaceGuid.PcdIpmiKcsBaseAddress|0xca2|UINT16|0x00000031 + [PcdsFixedAtBuild, PcdsPatchableInModule, PcdsDynamic, PcdsDynamicEx] ## This value is used to set the base address of PCI express hierarchy. # @Prompt PCI Express Base Address. diff --git a/MdePkg/Include/IndustryStandard/IpmiKcs.h b/MdePkg/Include/IndustryStandard/IpmiKcs.h new file mode 100644 index 00000000000..6533135dcde --- /dev/null +++ b/MdePkg/Include/IndustryStandard/IpmiKcs.h @@ -0,0 +1,77 @@ +/** @file + IPMI KCS Register Definitions + + Copyright (C) 2023 Advanced Micro Devices, Inc. All rights + reserved.<BR> + SPDX-License-Identifier: BSD-2-Clause-Patent + + @par Revision Reference: + IPMI Specification + Version 2.0, Rev. 1.1 + +https://www.intel.com/content/www/us/en/products/docs/servers/ipmi/ipmi +-second-gen-interface-spec-v2-rev1-1.html +**/ + +#ifndef IPMI_KCS_H_ +#define IPMI_KCS_H_ + +#define IPMI_KCS_STATUS_REGISTER_OFFSET 1 +#define IPMI_KCS_COMMAND_REGISTER_OFFSET 1 +#define IPMI_KCS_DATA_OUT_REGISTER_OFFSET 0 +#define IPMI_KCS_DATA_IN_REGISTER_OFFSET 0 + +/// +/// IPMI KCS Interface Status Bits +/// +#define IPMI_KCS_OBF BIT0 +#define IPMI_KCS_IBF BIT1 +#define IPMI_KCS_SMS_ATN BIT2 +#define IPMI_KCS_COMMAND_DATA BIT3 +#define IPMI_KCS_OEM1 BIT4 +#define IPMI_KCS_OEM2 BIT5 +#define IPMI_KCS_S0 BIT6 +#define IPMI_KCS_S1 BIT7 + +/// +/// IPMI KCS Interface Control Codes +/// +#define IPMI_KCS_CONTROL_CODE_GET_STATUS_ABORT 0x60 +#define IPMI_KCS_CONTROL_CODE_WRITE_START 0x61 +#define IPMI_KCS_CONTROL_CODE_WRITE_END 0x62 +#define IPMI_KCS_CONTROL_CODE_READ 0x68 + +/// +/// Status Codes +/// +#define IPMI_KCS_STATUS_NO_ERROR 0x00 +#define IPMI_KCS_STATUS_ABORT 0x01 +#define IPMI_KCS_STATUS_ILLEGAL 0x02 +#define IPMI_KCS_STATUS_LENGTH_ERROR 0x06 +#define IPMI_KCS_STATUS_UNSPECIFIED 0xFF + +/// +/// KCS Interface State Bit +/// +typedef enum { + IPMI_KCS_IDLE_STATE = 0, + IPMI_KCS_READ_STATE, + IPMI_KCS_WRITE_STATE, + IPMI_KCS_ERROR_STATE +} IPMI_KCS_STATE; + +/// +/// IPMI KCS Interface Request Format +/// +typedef struct { + UINT8 NetFunc; + UINT8 Command; + UINT8 Data[0]; +} IPMI_KCS_RESQUEST_HEADER; + +/// +/// IPMI KCS Interface Response Format +/// +typedef struct { + UINT8 NetFunc; + UINT8 Command; + UINT8 CompletionCode; +} IPMI_KCS_RESPONSE_HEADER; +#endif -- 2.37.1.windows.1 ^ permalink raw reply related [flat|nested] 3+ messages in thread
end of thread, other threads:[~2023-03-13 2:39 UTC | newest] Thread overview: 3+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- [not found] <174A78FC34F9F88C.23983@groups.io> 2023-03-08 14:52 ` [edk2-devel] [PATCH V2] MdePkg/Include: Add IPMI KCS definitions Chang, Abner [not found] ` <174A794AF245E853.23983@groups.io> 2023-03-13 2:39 ` Chang, Abner 2023-03-03 3:17 Chang, Abner 2023-03-08 0:01 ` [edk2-devel] " Isaac Oram
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox