freeipmi-devel
[Top][All Lists]
Advanced

[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>




reply via email to

[Prev in Thread] Current Thread [Next in Thread]