[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Freeipmi-devel] About KCS driver
From: |
Anand Babu |
Subject: |
Re: [Freeipmi-devel] About KCS driver |
Date: |
Fri, 30 Jul 2004 13:10:42 -0700 |
User-agent: |
Gnus/5.1006 (Gnus v5.10.6) Emacs/21.3 (gnu/linux) |
,----[ kanji raman <address@hidden> ]
| Anand,
|
| Though i had setup the BMC IP address, the bmc-info tool returned
| BMC's IP adrress as 0.0.0.0
|
| I used ipmicmd tool and executed the commad of section 19.2 (Get LAN
| config Parameters Command - ipmi 1.5 spec ) via LAN interface and it
| returned the correct BMC IP address.
|
| so is there anything specific i have to configure for bmc-info tool??
|
| i wrote a client app which used the kcs interface of the freelibipmi
| with the following req packet for retrieving lan config parameters
| req[0]=0x0C << 2 - NetFn + LUN req[1]=0x02 - command number
| req[2]=0x0F - Channel for kcs interace(table 6-1) req[3]=0x03 - IP
| address parameter req[4]=0x00 - selector req[5]=0x00 - block selector
| and i got the following the response packet val[0]=34 - netfn+lun
| val[1]=2 - cmd val[2]=cc - completion code val[3]=0 val[4]=0 val[5]=0
| val[6]=0 val[7]=0
|
|
| The completion code "cc" - indicates invalid data field in
| request. Any idea what could be the error in the request packet ?
|
| The motherboard is intel Westville - SE7501WV2
|
| Thanks biju
`----
I guess you are using OpenIPMI and not FreeIPMI.
FreeIPMI already has C library interface for "Get LAN config
Parameters" command. You can use bmc-config utility to view or set
these parameters.
freeipmi/libfreeipmi/src/ipmi-lan-cmds.c:
int8_t
ipmi_lan_get_ip_addr (u_int16_t sms_io_base,
u_int8_t channel_number,
u_int8_t parameter_type,
u_int8_t set_selector,
u_int8_t block_selector,
fiid_obj_t obj_data_rs)
------------------------------------
,----
| req[0]=0x0C << 2 - NetFn + LUN
| req[1]=0x02 - command number
| req[2]=0x0F - Channel for kcs interace(table
| 6-1)
| req[3]=0x03 - IP address parameter
| req[4]=0x00 - selector
| req[5]=0x00 - block selector
`----
Channel 0x0F is for system interface. IPMB (KCS), ICMB, LAN channels
will fall between 0x01 and 0x07. For SE7501WV2 (and other Intel boards
) LAN channel number 0x07. These are implementation specific. You
should really use "Get Channel Info" command at run time to figure out
the channel numbers.
More verbose...
fiid_template_t tmpl_hdr_kcs =
{
{2, "lun"}, => 0x00 IPMI_BMC_IPMB_LUN_BMC
{6, "net_fn"}, => 0x0C IPMI_NET_FN_TRANSPORT_RQ
{0, ""}
};
fiid_template_t tmpl_get_lan_conf_param_rq =
{
{8, "cmd"}, => 0x02 IPMI_CMD_GET_LAN_CONF_PARAMS
{4, "channel_number"}, => 0x07
{3, "reserved1"}, => 0x00
{1, "parameter_type"}, => 0x00 IPMI_LAN_CONF_GET_PARAMETER
{8, "parameter_selector"}, => 0x03 IPMI_LAN_PARAM_IP_ADDR
{8, "set_selector"}, => 0x00
{8, "block_selector"}, => 0x00
{0, ""}
};
Happy Hacking
--
Anand Babu
Free as in Freedom <www.gnu.org>