mirror of
https://github.com/ipmitool/ipmitool.git
synced 2025-05-10 18:47:22 +00:00
Added conditionaly built GetDeviceLocator call when INCLUDE_PICMG_GET_DEVICE_LOCATOR
is defined. It doesn't allow for bridged send messages to reach AMC yet.
This commit is contained in:
parent
17d68a4289
commit
864ac5ad26
@ -68,6 +68,11 @@ static int
|
|||||||
ipmi_openipmi_open(struct ipmi_intf * intf)
|
ipmi_openipmi_open(struct ipmi_intf * intf)
|
||||||
{
|
{
|
||||||
int i = 0;
|
int i = 0;
|
||||||
|
#ifdef INCLUDE_PICMG_GET_DEVICE_LOCATOR
|
||||||
|
struct ipmi_rq req;
|
||||||
|
struct ipmi_rs *rsp;
|
||||||
|
char msg_data;
|
||||||
|
#endif
|
||||||
|
|
||||||
intf->fd = open(IPMI_OPENIPMI_DEV, O_RDWR);
|
intf->fd = open(IPMI_OPENIPMI_DEV, O_RDWR);
|
||||||
|
|
||||||
@ -97,9 +102,36 @@ ipmi_openipmi_open(struct ipmi_intf * intf)
|
|||||||
lprintf(LOG_DEBUG, "Set IPMB address to 0x%x",
|
lprintf(LOG_DEBUG, "Set IPMB address to 0x%x",
|
||||||
intf->my_addr);
|
intf->my_addr);
|
||||||
}
|
}
|
||||||
|
|
||||||
intf->opened = 1;
|
intf->opened = 1;
|
||||||
|
|
||||||
|
#ifdef INCLUDE_PICMG_GET_DEVICE_LOCATOR
|
||||||
|
/* PICMG hack to set right IPMB address,
|
||||||
|
we might want to do GetPICMGProperties first.
|
||||||
|
|
||||||
|
In any case, on a server board or a non-picmg IpmC blade , this code
|
||||||
|
will not have any adverse side effect
|
||||||
|
*/
|
||||||
|
if ( (intf->my_addr == IPMI_BMC_SLAVE_ADDR) ) {
|
||||||
|
lprintf(LOG_DEBUG, "Running PICMG GetDeviceLocator" );
|
||||||
|
memset(&req, 0, sizeof(req));
|
||||||
|
req.msg.netfn = IPMI_NETFN_PICMG;
|
||||||
|
req.msg.cmd = 0x01;
|
||||||
|
msg_data = 0x00;
|
||||||
|
req.msg.data = &msg_data;
|
||||||
|
req.msg.data_len = 1;
|
||||||
|
msg_data = 0;
|
||||||
|
|
||||||
|
rsp = intf->sendrecv(intf, &req);
|
||||||
|
if (rsp) {
|
||||||
|
if ( !rsp->ccode ) {
|
||||||
|
intf->my_addr = rsp->data[2];
|
||||||
|
intf->target_addr = intf->my_addr;
|
||||||
|
lprintf(LOG_DEBUG, "Discovered IPMB address = 0x%x", intf->my_addr);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
return intf->fd;
|
return intf->fd;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user