public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
From: "Michael D Kinney" <michael.d.kinney@intel.com>
To: "devel@edk2.groups.io" <devel@edk2.groups.io>,
	"Gao, Liming" <gaoliming@byosoft.com.cn>,
	"abner.chang@amd.com" <abner.chang@amd.com>
Cc: "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>,
	"Kinney, Michael D" <michael.d.kinney@intel.com>
Subject: Re: [edk2-devel] 回复: [PATCH] MdePkg/Include: Add IPMI KCS definitions
Date: Thu, 23 Mar 2023 02:18:53 +0000	[thread overview]
Message-ID: <CO1PR11MB4929EF12BE09FD93704BAEB9D2879@CO1PR11MB4929.namprd11.prod.outlook.com> (raw)
In-Reply-To: <000a01d95d27$eebde3b0$cc39ab10$@byosoft.com.cn>

Is that an I/O Port address or an MMIO address?  Can it be either?

If it must be I/O Port address, then the PCD name should convey that.

If it can be either, then need another PCD to specify the type so the
Code can do the access with the correct IoLib APIs.

Mike

> -----Original Message-----
> From: devel@edk2.groups.io <devel@edk2.groups.io> On Behalf Of gaoliming via groups.io
> Sent: Wednesday, March 22, 2023 6:37 PM
> To: abner.chang@amd.com; devel@edk2.groups.io
> Cc: Kinney, Michael D <michael.d.kinney@intel.com>; 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] MdePkg/Include: Add IPMI KCS definitions
> 
> Abner:
>   This patch also adds one PCD PcdIpmiKcsBaseAddress. I see its default
> value is 0xca2. Can you add comments for this default value?
> 
> Thanks
> Liming
> > -----邮件原件-----
> > 发件人: abner.chang@amd.com <abner.chang@amd.com>
> > 发送时间: 2023年3月3日 10:32
> > 收件人: devel@edk2.groups.io
> > 抄送: 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>; Abdul Lateef Attar
> > <AbdulLateef.Attar@amd.com>
> > 主题: [PATCH] MdePkg/Include: Add IPMI KCS definitions
> >
> > From: Abner Chang <abner.chang@amd.com>
> >
> > BZ #4354
> > This change adds definitions for IPMI KCS.
> >
> > 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 | 72
> > +++++++++++++++++++++++
> >  2 files changed, 77 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|0x10000
> > 00|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..2a51698b126
> > --- /dev/null
> > +++ b/MdePkg/Include/IndustryStandard/IpmiKcs.h
> > @@ -0,0 +1,72 @@
> > +/** @file
> > +  IPMI KCS Register Definitions
> > +
> > +  Copyright (C) 2023 Advanced Micro Devices, Inc. All rights
> reserved.<BR>
> > +  SPDX-License-Identifier: BSD-2-Clause-Patent
> > +**/
> > +
> > +#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
> 
> 
> 
> 
> 
> 
> 


  reply	other threads:[~2023-03-23  2:19 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-03-03  2:31 [PATCH] MdePkg/Include: Add IPMI KCS definitions Chang, Abner
2023-03-03  2:59 ` Michael D Kinney
2023-03-03  3:03   ` Chang, Abner
2023-03-03  3:05     ` [edk2-devel] " Michael D Kinney
2023-03-03  3:10       ` Chang, Abner
2023-03-07  7:50 ` Tinh Nguyen
2023-03-07  9:31   ` Chang, Abner
2023-03-23  1:36 ` 回复: " gaoliming
2023-03-23  2:18   ` Michael D Kinney [this message]
2023-03-23  3:21     ` [edk2-devel] " Chang, Abner
2023-03-23  3:17   ` Chang, Abner

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-list from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=CO1PR11MB4929EF12BE09FD93704BAEB9D2879@CO1PR11MB4929.namprd11.prod.outlook.com \
    --to=devel@edk2.groups.io \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox