,----[ Marty Rogers <address@hidden> ]
| So ipmi_kcs_cmd() writes a command and doesn't return until the
| response is received,
`----
Yes.
,----[ Marty Rogers <address@hidden> ]
| ipmi_kcs_write() writes a command and returned immed., and
| ipmi_kcs_read() "hangs" until "something" is received ?
`----
Yes.
,----[ Marty Rogers <address@hidden> ]
| If "yes", then the way to poll for unexpected/autonomous messages
| (Event Messages?) is to call ipmi_kcs_read() in a loop?
`----
Correct. ipmi_kcs_read() is a blocking call. It returns upon
reception of a new message.
I can give you asynchronous read calls too. Just tell me what kind of
API interface you are looking for. I will go ahead and add it.
,----[ Marty Rogers <address@hidden> ]
| My project has me implementing IPMI on essentially a "satellite
| controller" on the IPMB bus (I2C bus), running Linux. I've looked at
| OpenIPMI, modifying it's BT interface to do I2C kernel calls instead
| of memory accesses (the BT interface protocol implements seq. numbers,
| like IPMB), effectively becoming an IPMB interface. I just pick an
| I2C address around B0h-BEh, and xmit from LUN 0 (the IPMB interface is
| always LUN 0).
|
| I'm not sure FreeIPMI can be modified similarly, but your thoughts
| would be most welcome. I would have to implement seq. number
| generation and matching.
`----
IPMI KCS read/write/cmd are irrelevant for you. It is in my plan to
support access to IPMB (I2C) bus through system interface.
I need to understand more about your hardware design before I propose a
functional model for you.
A standard implementation will look like
----------------------------------------------
IPMI Messaging Support Commands
KCS/SMIC
BMC
IPMB
Satellite Controller
----------------------------------------------
Or you are trying to access IPMB bus directly?