当前位置: 首页 > news >正文

台州市椒江建设工程机械厂网站西安网站建设公司哪有

台州市椒江建设工程机械厂网站,西安网站建设公司哪有,如何制作产品网站,深圳软件开发定制公司KCS KCS全称是Keyboard Controller Style#xff0c;关于这个名称不用过多的追究#xff0c;只需要知道它是系统#xff08;BIOS和OS#xff09;和BMC通信的一种基本方式即可。本文将介绍BIOS下的KCS接口#xff0c;包括接口使用方式和数据。内容参考自《ipmi-second-gen…KCS KCS全称是Keyboard Controller Style关于这个名称不用过多的追究只需要知道它是系统BIOS和OS和BMC通信的一种基本方式即可。本文将介绍BIOS下的KCS接口包括接口使用方式和数据。内容参考自《ipmi-second-gen-interface-spec-v2-rev1-1.pdf》和https://github.com/microsoft/mu_feature_ipmi.git代码。 KCS数据 BIOS和BMC的交互通过Request和Response的方式所以对应的数据也有两种首先是Request 参数说明如下 NetFn/CmdIPMI命令有不同的分组通过NetFn/Cmd命令字的方式来索引在IPMI命令介绍会进一步说明。LUNLogical Unit Number占据8个比特中的最低两个对于通过KCS向BMC发送的数据LUN的值都是00b。DataIPMI命令的实际请求数据。 然后是Response 其它参数跟Request类似只是多了一个Complete Code说明如下 Completion CodeIPMI命令的返回状态具体的取值如下 // // Generic Completion Codes definitions // #define IPMI_COMP_CODE_NORMAL 0x00 #define IPMI_COMP_CODE_NODE_BUSY 0xC0 #define IPMI_COMP_CODE_INVALID_COMMAND 0xC1 #define IPMI_COMP_CODE_INVALID_FOR_GIVEN_LUN 0xC2 #define IPMI_COMP_CODE_TIMEOUT 0xC3 #define IPMI_COMP_CODE_OUT_OF_SPACE 0xC4 #define IPMI_COMP_CODE_RESERVATION_CANCELED_OR_INVALID 0xC5 #define IPMI_COMP_CODE_REQUEST_DATA_TRUNCATED 0xC6 #define IPMI_COMP_CODE_INVALID_REQUEST_DATA_LENGTH 0xC7 #define IPMI_COMP_CODE_REQUEST_EXCEED_LIMIT 0xC8 #define IPMI_COMP_CODE_OUT_OF_RANGE 0xC9 #define IPMI_COMP_CODE_CANNOT_RETURN 0xCA #define IPMI_COMP_CODE_NOT_PRESENT 0xCB #define IPMI_COMP_CODE_INVALID_DATA_FIELD 0xCC #define IPMI_COMP_CODE_COMMAND_ILLEGAL 0xCD #define IPMI_COMP_CODE_CMD_RESP_NOT_PROVIDED 0xCE #define IPMI_COMP_CODE_FAIL_DUP_REQUEST 0xCF #define IPMI_COMP_CODE_SDR_REP_IN_UPDATE_MODE 0xD0 #define IPMI_COMP_CODE_DEV_IN_FW_UPDATE_MODE 0xD1 #define IPMI_COMP_CODE_BMC_INIT_IN_PROGRESS 0xD2 #define IPMI_COMP_CODE_DEST_UNAVAILABLE 0xD3 #define IPMI_COMP_CODE_INSUFFICIENT_PRIVILEGE 0xD4 #define IPMI_COMP_CODE_UNSUPPORTED_IN_PRESENT_STATE 0xD5 #define IPMI_COMP_CODE_SUBFUNCTION_DISABLED 0xD6 #define IPMI_COMP_CODE_UNSPECIFIED 0xFFDataIPMI命令的实际响应数据。 需要注意无论是Request还是Response其数据部分都可以是空的。 另外还有一种稍微特殊一点的KSC数据用来上报事件信息 其实就是一种IPMI命令数据而已。 KSC通信 KSC接口定义了一组IO寄存器通过它们就可以完成与BMC的交互这组寄存器的基地址基本上已经固定 gIpmiFeaturePkgTokenSpaceGuid.PcdIpmiIoBaseAddress|0xCA2|UINT16|0xF000000A为了使用该地址首先需要打开它的映射代码如下所示 /**Initializing hardware for the IPMI transport.retval EFI_SUCCESS Hardware was successfully initialized.retval Other An error was returned from PlatformIpmiIoRangeSet. **/ EFI_STATUS InitializeIpmiTransportHardware (VOID){EFI_STATUS Status;//// Enable OEM specific southbridge SIO KCS I/O address range 0xCA0 to 0xCAF at here// if the the I/O address range has not been enabled.//Status PlatformIpmiIoRangeSet (PcdGet16 (PcdIpmiIoBaseAddress));DEBUG ((DEBUG_INFO, IPMI: PlatformIpmiIoRangeSet - %r!\n, Status));return Status; }对于PlatformIpmiIoRangeSet()函数的实现可以暂时不过因为依赖于不同的硬件平台对于x86平台通常是LPC设备一些操作。 当完成PcdIpmiIoBaseAddress基地址之后就可以进行IO操作了对应的寄存器如下 可以看到就4个寄存器如果考虑共用的部分其实就2个寄存器 Status只读寄存器包含了操作过程中的Flag。Command只写寄存器用于写入各类操作这些操作称为“Write Control Codes”。Data_Out只读寄存器用来读取数据。Data_In只写寄存器用来写入数据或者“Read Control Codes”。 这里的“Control Codes”如下 前面的4个是“Write Control Codes”只能写入Status寄存器最后一个是“Read Control Codes”写入Data寄存器前面提到的KSC数据也是写入到Data寄存器的。 Status寄存器的比特说明如下 其中的S0和S1根据组合得到如下的值 得到四种状态。 Status寄存器的代码表示 typedef union {UINT8 RawData;struct {UINT8 Obf : 1;UINT8 Ibf : 1;UINT8 SmAtn : 1;UINT8 CD : 1;UINT8 Oem1 : 1;UINT8 Oem2 : 1;UINT8 State : 2;} Status; } KCS_STATUS;根据上述的寄存器操作得到BIOS向BMC写数据的流程 对应的代码实现可以在IpmiFeaturePkg\GenericIpmi\Common\GenericIpmi.c找到下面是代码的大致说明 等待IBF0 do {MicroSecondDelay (IPMI_DELAY_UNIT);KcsStatus.RawData IoRead8 (KcsIoBase 1);if ((KcsStatus.RawData 0xFF) || (TimeOut IpmiTimeoutPeriod)) {if ((Status KcsErrorExit (IpmiTimeoutPeriod)) ! EFI_SUCCESS) {return Status;}}TimeOut;} while (KcsStatus.Status.Ibf);写入KCS_WRITE_START并等待IBF0 KcsData KCS_WRITE_START;IoWrite8 ((KcsIoBase 1), KcsData);if ((Status KcsCheckStatus (IpmiTimeoutPeriod, KcsWriteState, Idle)) ! EFI_SUCCESS) {return Status;}开始写入数据等待数据写入完成之后最后写入KCS_WRITE_END for (i 0; i DataSize; i) {if (i (DataSize - 1)) {if ((Status KcsCheckStatus (IpmiTimeoutPeriod, KcsWriteState, Idle)) ! EFI_SUCCESS) {return Status;}KcsData KCS_WRITE_END;IoWrite8 ((KcsIoBase 1), KcsData);}Status KcsCheckStatus (IpmiTimeoutPeriod, KcsWriteState, Idle);if (EFI_ERROR (Status)) {return Status;}IoWrite8 (KcsIoBase, Data[i]);}开始接收数据 while (TRUE) {if ((Status KcsCheckStatus (IpmiTimeoutPeriod, KcsReadState, Idle)) ! EFI_SUCCESS) {return Status;}if (Idle) {*DataSize Count;break;}//// Need to check Data Size -1 to account for array access//if (Count *DataSize) {return EFI_DEVICE_ERROR;}Data[Count] IoRead8 (KcsIoBase);Count;KcsData KCS_READ;IoWrite8 (KcsIoBase, KcsData);}结束数据接收并将数据返回。 以上只是简单的介绍还有一些诸如KcsCheckStatus()的函数没有说明具体可以直接看代码。 IPMI命令介绍 IPMI命令会通过NetFn/Cmd的方式写入到KSC接口中以完成不同的操作这里将列出IPMI规范定义的所以基础操作。在EDK代码中有几个头文件已经定义了部分IPMI命令具体对应的头文件是 #include IndustryStandard/IpmiNetFnChassis.h #include IndustryStandard/IpmiNetFnBridge.h #include IndustryStandard/IpmiNetFnSensorEvent.h #include IndustryStandard/IpmiNetFnApp.h #include IndustryStandard/IpmiNetFnFirmware.h #include IndustryStandard/IpmiNetFnStorage.h #include IndustryStandard/IpmiNetFnTransport.h #include IndustryStandard/IpmiNetFnGroupExtension.h #include IndustryStandard/IpmiFruInformationStorage.h需要注意 NetFn都是偶数的。 最后一列的O/M表示的是BMC是否需要实现该命令。 BIOS下的头文件中并没有包含所有IPMI规范中定义的命令所以下面的表中不少命令没有对应的宏。 除了在IPMI规范中定义的命令还可以有自定义的命令这当然是有好处的因为扩展了BIOS和BMC通信的内容但是也存在不同的BIOS和BMC厂商对同一个命令字有不同的实现导致了维护的困难。 NetFn 0x00 - IPMI_NETFN_CHASSIS 对应头文件edk2\MdePkg\Include\IndustryStandard\IpmiNetFnChassis.h Cmd说明O/M0x00 - IPMI_CHASSIS_GET_CAPABILITIESGet Chassis Capabilities必需0x01 - IPMI_CHASSIS_GET_STATUSGet Chassis Status必需0x02 - IPMI_CHASSIS_CONTROLChassis Control必需0x03 - IPMI_CHASSIS_RESETChassis Reset可选0x04 - IPMI_CHASSIS_IDENTIFYChassis Identify可选0x05 - IPMI_CHASSIS_SET_CAPABILITIESSet Chassis Capabilities可选0x06 - IPMI_CHASSIS_SET_POWER_RESTORE_POLICYSet Power Restore Policy可选0x07 - IPMI_CHASSIS_GET_SYSTEM_RESTART_CAUSEGet System Restart Cause可选0x08 - IPMI_CHASSIS_SET_SYSTEM_BOOT_OPTIONSSet System Boot Options可选0x09 - IPMI_CHASSIS_GET_SYSTEM_BOOT_OPTIONSGet System Boot Options可选0x0A - IPMI_CHASSIS_SET_FRONT_PANEL_BUTTON_ENABLESSet Front Panel Enables可选0x0B - IPMI_CHASSIS_SET_POWER_CYCLE_INTERVALSSet Power Cycle Interval可选0x0F - IPMI_CHASSIS_GET_POH_COUNTERGet POH Counter可选 NetFn 0x02 - IPMI_NETFN_BRIDGE 对应头文件edk2\MdePkg\Include\IndustryStandard\IpmiNetFnBridge.h Cmd0x00 - IPMI_BRIDGE_GET_STATE0x01 - IPMI_BRIDGE_SET_STATE0x02 - IPMI_BRIDGE_GET_ICMB_ADDRESS0x03 - IPMI_BRIDGE_SET_ICMB_ADDRESS0x04 - IPMI_BRIDGE_SET_PROXY_ADDRESS0x05 - IPMI_BRIDGE_GET_BRIDGE_STATISTICS0x06 - IPMI_BRIDGE_GET_ICMB_CAPABILITIES0x08 - IPMI_BRIDGE_CLEAR_STATISTICS0x09 - IPMI_BRIDGE_GET_PROXY_ADDRESS0x0A - IPMI_BRIDGE_GET_ICMB_CONNECTOR_INFO0x0B - IPMI_BRIDGE_GET_ICMB_CONNECTION_ID0x0C - IPMI_BRIDGE_SEND_ICMB_CONNECTION_ID0x10 - IPMI_BRIDGE_PREPARE_FOR_DISCOVERY0x11 - IPMI_BRIDGE_GET_ADDRESSES0x12 - IPMI_BRIDGE_SET_DISCOVERED0x13 - IPMI_BRIDGE_GET_CHASSIS_DEVICEID0x14 - IPMI_BRIDGE_SET_CHASSIS_DEVICEID0x20 - IPMI_BRIDGE_REQUEST0x21 - IPMI_BRIDGE_MESSAGE0x30 - IPMI_BRIDGE_GET_EVENT_COUNT0x31 - IPMI_BRIDGE_SET_EVENT_DESTINATION0x32 - IPMI_BRIDGE_SET_EVENT_RECEPTION_STATE0x33 - IPMI_BRIDGE_SEND_ICMB_EVENT_MESSAGE 但是它们并没有在IPMI规范中而是在ICMB规范中。 NetFn 0x04 - IPMI_NETFN_SENSOR_EVENT 对应头文件edk2\MdePkg\Include\IndustryStandard\IpmiNetFnSensorEvent.h但是其中只有一个其它存在空白的是没有在代码中出现的 Cmd说明O/M0x00Set Event Receiver必需0x01Get Event Receiver必需0x02 - IPMI_SENSOR_PLATFORM_EVENT_MESSAGEPlatform Event (aka Event Message)必需0x10Get PEF Capabilities必需0x11Arm PEF Postpone Timer必需0x12Set PEF Configuration Parameters必需0x13Get PEF Configuration Parameters必需0x14Set Last Processed Event ID必需0x15Get Last Processed Event ID必需0x16Alert Immediate可选0x17PET Acknowledge可选0x20Get Device SDR Info可选0x21Get Deivce SDR可选0x22Reserve Device SDR Repository可选0x23Get Sensor Reading Factors可选0x24Set Sensor Hysteresis可选0x25Get Sensor Hysteresis可选0x26Set Sensor Threshold可选0x27Get Sensor Threshold可选0x28Set Sensor Event Enable可选0x29Get Sensor Event Enable可选0x2ARe-arm Sensor Events可选0x2BGet Sensor Event Status可选0x2DGet Sensor Reading必需0x2ESet Sensor Type可选0x2FGet Sensor Type可选0x30Set Sensor Reading And Event Status可选 NetFn 0x06 - IPMI_NETFN_APP 对应头文件edk2\MdePkg\Include\IndustryStandard\IpmiNetFnApp.h部分存在空白的是没有在代码中出现的 Cmd说明O/M0x01 - IPMI_APP_GET_DEVICE_IDGet Device ID必需0x02 - IPMI_APP_COLD_RESETCold Rest可选0x03 - IPMI_APP_WARM_RESETWarm Rest可选0x04 - IPMI_APP_GET_SELFTEST_RESULTSGet Selft Test Results必需0x05 - IPMI_APP_MANUFACTURING_TEST_ONManufacturing Test On可选0x06 - IPMI_APP_SET_ACPI_POWERSTATESet ACPI Power State可选0x07 - IPMI_APP_GET_ACPI_POWERSTATEGet ACPI Power State可选0x08 - IPMI_APP_GET_DEVICE_GUIDGet Device GUID可选0x09Get NetFun Support可选0x0AGet Command Support可选0x0BGet Command Sub-function Support可选0x0CGet Configurable Commands可选0x0DGet Configurable Command Sub-functions可选0x22 - IPMI_APP_RESET_WATCHDOG_TIMERReset Watchdog Timer必需0x24 - IPMI_APP_SET_WATCHDOG_TIMERSet Watchdog Timer必需0x25 - IPMI_APP_GET_WATCHDOG_TIMERGet Watchdog Timer必需0x2E - IPMI_APP_SET_BMC_GLOBAL_ENABLESSet BMC Global Enables必需0x2F - IPMI_APP_GET_BMC_GLOBAL_ENABLESGet BMC Global Enables必需0x30 - IPMI_APP_CLEAR_MESSAGE_FLAGSClear Message Flags必需0x31 - IPMI_APP_GET_MESSAGE_FLAGSGet Message Flags必需0x32 - IPMI_APP_ENABLE_MESSAGE_CHANNEL_RECEIVEEnable Message Channel Receive可选0x33 - IPMI_APP_GET_MESSAGEGet Message必需0x34 - IPMI_APP_SEND_MESSAGESend Message必需0x35 - IPMI_APP_READ_EVENT_MSG_BUFFERRead Event Message Buffer可选0x36 - IPMI_APP_GET_BT_INTERFACE_CAPABILITYGet BT Interface Capabilities必需0x37 - IPMI_APP_GET_SYSTEM_GUIDGet System GUID可选0x38 - IPMI_APP_GET_CHANNEL_AUTHENTICATION_CAPABILITIESGet Channel Authentication Capabilities可选0x39 - IPMI_APP_GET_SESSION_CHALLENGEGet Session Challenge可选0x3A - IPMI_APP_ACTIVATE_SESSIONActivate Session可选0x3B - IPMI_APP_SET_SESSION_PRIVELEGE_LEVELSet Session Privilege Level可选0x3C - IPMI_APP_CLOSE_SESSIONClose Session可选0x3D - IPMI_APP_GET_SESSION_INFOGet Session Info可选0x3F - IPMI_APP_GET_AUTHCODEGet AuthCode可选0x40 - IPMI_APP_SET_CHANNEL_ACCESSSet Channel Access可选0x41 - IPMI_APP_GET_CHANNEL_ACCESSGet Channel Access可选0x42 - IPMI_APP_GET_CHANNEL_INFOGet Channel Info可选0x43 - IPMI_APP_SET_USER_ACCESSSet User Access可选0x44 - IPMI_APP_GET_USER_ACCESSGet User Access可选0x45 - IPMI_APP_SET_USER_NAMESet User Name可选0x46 - IPMI_APP_GET_USER_NAMEGet User Name可选0x47 - IPMI_APP_SET_USER_PASSWORDSet User Password可选0x48 - IPMI_APP_ACTIVATE_PAYLOADActivate Payload可选0x49 - IPMI_APP_DEACTIVATE_PAYLOADDeactivate Payload可选0x4A - IPMI_APP_GET_PAYLOAD_ACTIVATION_STATUSGet Payload Activation Status可选0x4B - IPMI_APP_GET_PAYLOAD_INSTANCE_INFOGet Payload Instance Info可选0x4C - IPMI_APP_SET_USER_PAYLOAD_ACCESSSet User Payload Access Command可选0x4D - IPMI_APP_GET_USER_PAYLOAD_ACCESSGet User Payload Access Command可选0x4E - IPMI_APP_GET_CHANNEL_PAYLOAD_SUPPORTGet Channel Payload Support Command可选0x4F - IPMI_APP_GET_CHANNEL_PAYLOAD_VERSIONGet Channel Payload Version Command可选0x50 - IPMI_APP_GET_CHANNEL_OEM_PAYLOAD_INFOGet Channel OEM Payload Info Command可选0x52 - IPMI_APP_MASTER_WRITE_READMaster Write-Read必需0x54 - IPMI_APP_GET_CHANNEL_CIPHER_SUITESGet Channel Cipher Suites可选0x55 - IPMI_APP_SUSPEND_RESUME_PAYLOAD_ENCRYPTIONSuspend/Resume Payload Encryption Command可选0x56 - IPMI_APP_SET_CHANNEL_SECURITY_KEYSSet Channel Security Keys可选0x57 - IPMI_APP_GET_SYSTEM_INTERFACE_CAPABILITIESGet System Interface Capabilities可选0x58Set System Info Parameters可选0x59Get System Info Parameters可选0x60Set Command Enables可选0x61Get Command Enables可选0x62Set Command Sub-function Enables可选0x63Get Command Sub-function Enables可选0x64Get OEM NetFn IANA Support可选 IPMI_APP_GET_DEVICE_ID还有一个广播版本Broadcast “Get Deivce ID”它的Cmd也是0x01。 NetFn 0x08 - IPMI_NETFN_FIRMWARE 对应头文件edk2\MdePkg\Include\IndustryStandard\IpmiNetFnFirmware.h但是以下的命令并没有在IPMI规范中找到 Cmd0x23 - IPMI_GET_BMC_EXECUTION_CONTEXT NetFn 0x0A - IPMI_NETFN_STORAGE 对应头文件edk2\MdePkg\Include\IndustryStandard\IpmiNetFnStorage.h Cmd说明O/M0x10 - IPMI_STORAGE_GET_FRU_INVENTORY_AREAINFOGet FRU Inventory Area Info必需0x11 - IPMI_STORAGE_READ_FRU_DATARead FRU Data必需0x12 - IPMI_STORAGE_WRITE_FRU_DATAWrite FRU Data必需0x20 - IPMI_STORAGE_GET_SDR_REPOSITORY_INFOGet SDR Repository Info必需0x21 - IPMI_STORAGE_GET_SDR_REPOSITORY_ALLOCATION_INFOGet SDR Pepository Allocation Info可选0x22 - IPMI_STORAGE_RESERVE_SDR_REPOSITORYReserve SDR Repository必需0x23 - IPMI_STORAGE_GET_SDRGet SDR必需0x24 - IPMI_STORAGE_ADD_SDRAdd SDR必需0x25 - IPMI_STORAGE_PARTIAL_ADD_SDRPartial Add SDR必需0x26 - IPMI_STORAGE_DELETE_SDRDelete SDR可选0x27 - IPMI_STORAGE_CLEAR_SDRClear SDR Repository必需0x28 - IPMI_STORAGE_GET_SDR_REPOSITORY_TIMEGet SDR Repository Time可选0x29 - IPMI_STORAGE_SET_SDR_REPOSITORY_TIMESet SDR Repository Time可选0x2A - IPMI_STORAGE_ENTER_SDR_UPDATE_MODEEnter SDR Pepository Update Mode可选0x2B - IPMI_STORAGE_EXIT_SDR_UPDATE_MODEExit SDR Repository Update Mode可选0x2C - IPMI_STORAGE_RUN_INIT_AGENTRun Initialization Agent可选0x40 - IPMI_STORAGE_GET_SEL_INFOGet SEL Info必需0x41 - IPMI_STORAGE_GET_SEL_ALLOCATION_INFOGet SEL Allocation Info可选0x42 - IPMI_STORAGE_RESERVE_SELReserve SEL可选0x43 - IPMI_STORAGE_GET_SEL_ENTRYGet SEL Entry必需0x44 - IPMI_STORAGE_ADD_SEL_ENTRYAdd SEL Entry必需0x45 - IPMI_STORAGE_PARTIAL_ADD_SEL_ENTRYPartial Add SEL Entry必需0x46 - IPMI_STORAGE_DELETE_SEL_ENTRYDelete SEL Entry可选0x47 - IPMI_STORAGE_CLEAR_SELClear SEL必需0x48 - IPMI_STORAGE_GET_SEL_TIMEGet SEL Time必需0x49 - IPMI_STORAGE_SET_SEL_TIMESet SEL Time必需0x5A - IPMI_STORAGE_GET_AUXILLARY_LOG_STATUSGet Auxiliary Log Status可选0x5B - IPMI_STORAGE_SET_AUXILLARY_LOG_STATUSSet Auxiliary Log Status可选0x5C - IPMI_STORAGE_GET_SEL_TIME_UTC_OFFSETGet SEL Timer UTC Offset可选0x5D - IPMI_STORAGE_SET_SEL_TIME_UTC_OFFSETSet SEL Timer UTC Offset可选 NetFn 0x0C - IPMI_NETFN_TRANSPORT 对应头文件edk2\MdePkg\Include\IndustryStandard\IpmiNetFnTransport.h部分存在空白的是没有在代码中出现的 Cmd说明O/M0x01 - IPMI_TRANSPORT_SET_LAN_CONFIG_PARAMETERSSet LAN Configuration Parameters必需0x02 - IPMI_TRANSPORT_GET_LAN_CONFIG_PARAMETERSGet LAN Configuration Parameters必需0x03 - IPMI_TRANSPORT_SUSPEND_BMC_ARPSSuspend BMC ARPs可选0x04 - IPMI_TRANSPORT_GET_PACKET_STATISTICSGet IP/UDP/RMCP Statistics可选0x10 - IPMI_TRANSPORT_SET_SERIAL_CONFIGURATIONSet Serial/Modem Configuration必需0x11 - IPMI_TRANSPORT_GET_SERIAL_CONFIGURATIONGet Serial/Modem Configuration必需0x12 - IPMI_TRANSPORT_SET_SERIAL_MUXSet Serial/Modem Mux可选0x13 - IPMI_TRANSPORT_GET_TAP_RESPONSE_CODEGet TAP Response Codes可选0x14 - IPMI_TRANSPORT_SET_PPP_UDP_PROXY_TXDATASet PPP UDP Proxy Transmit Data可选0x15 - IPMI_TRANSPORT_GET_PPP_UDP_PROXY_TXDATAGet PPP UDP Proxy Transmit Data可选0x16 - IPMI_TRANSPORT_SEND_PPP_UDP_PROXY_PACKETSend PPP UDP Proxy Packet可选0x17 - IPMI_TRANSPORT_GET_PPP_UDP_PROXY_RXGet PPP UDP Proxy Receive Data可选0x18 - IPMI_TRANSPORT_SERIAL_CONNECTION_ACTIVESerial/Modem Connection Active必需0x19 - IPMI_TRANSPORT_CALLBACKCallback可选0x1A - IPMI_TRANSPORT_SET_USER_CALLBACK_OPTIONSSet User Callback Options可选0x1B - IPMI_TRANSPORT_GET_USER_CALLBACK_OPTIONSGet User Callback Options可选0x1CSet Serial Routing Mux可选0x20 - IPMI_TRANSPORT_SOL_ACTIVATINGSOL Activating可选0x21 - IPMI_TRANSPORT_SET_SOL_CONFIG_PARAMSet SOL Configuration Parameters可选0x22 - IPMI_TRANSPORT_GET_SOL_CONFIG_PARAMGet SOL Configuration Parameters可选0x30Forwarded Command可选0x31Set Forwarded Commands可选0x32Get Forwarded Commands可选0x33Enable Forwarded Commands可选 NetFn 0x2C - IPMI_NETFN_GROUP_EXT 对应头文件edk2\MdePkg\Include\IndustryStandard\IpmiNetFnGroupExtension.h但是里面没有具体的内容属于扩展用的这其实也导致了额外的问题因为不同的BIOS供应商提供的命令可能会有不同导致维护困难。
http://www.hkea.cn/news/14298425/

相关文章:

  • 求个网站你懂我意思是网络文化经营许可证图片
  • 网站友情链接很重要吗做的网站很卡是什么原因呢
  • php网站源码模板wordpress 数据库错误
  • sql与网站开发山东闪电建站网
  • 怎么建设网站网站百度官网首页登录
  • 网站建设英文字体格式番禺 网站建设
  • 拖拽建设网站源码免费广告设计素材
  • 做音乐的网站设计微信网站 详解
  • 深圳集团网站建设专业个人博客网站logo
  • 聊城做企业网站大宗商品最新交易平台
  • 网站被恶意点击怎么办汽车网站建设目的
  • 工厂 网站建设嵌入式软件开发工作内容
  • 达州市住房和建设厅网站网站建设科技公司外部环境分析
  • 网站统计关键词wordpress 导入demo
  • dedecms 网站导航门户网站建设存在的问题
  • 呼和浩特市手机网站如何建立公司网站意味着什么
  • 武隆网站建设费用ftp wordpress
  • 卫浴网站源码wordpress 7牛云
  • 网站建设南京公司什么是营销型网站设计
  • 太原网站建设360wordpress付费显示
  • 网站备案 做网站时就需要吗html5网站搭建
  • 手机电视网站大全wordpress获取图片id
  • 网站建设不能在淘宝发布二次开发公司
  • 汽车网站策划思行做网站
  • 域名拦截检测网站完整网站开发步骤
  • 做网站需要的执照南昌简单做网站
  • 鄂州做网站报价天翼云主机 网站
  • 加盟网站建设案例欣赏qq网页版登录官网登录入口网站
  • 南宁网站建设网络公司优惠券网站建设
  • 百度站长电脑版wordpress数字超市