]>
git.zerfleddert.de Git - rsbs2/blob - bmc/bmc.c
3 #include <avr/interrupt.h>
9 uint8_t ipmb_csum(unsigned char *buf
, int len
)
14 for(i
= 0; i
< len
; i
++) {
21 void decode_bmc_cmd(unsigned char *buf
, int len
)
25 printf(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>\n");
26 printf("Connection Header:\n");
27 printf("\trs Slave Addr.: 0x%02x\n", buf
[0]);
28 printf("\tnetFn: 0x%02x, LUN: 0x%02x\n", (buf
[1]>>2)&0x3f, (buf
[1] & 0x03));
29 printf("\tChecksum: 0x%02x (%s)\n", buf
[2],
30 (buf
[2] == ipmb_csum(buf
, 2)) ? "OK" : "Wrong");
32 printf("\trq Slave Addr.: 0x%02x\n", buf
[3]);
33 printf("\trqSeq: 0x%02x, rqLUN: 0x%02x\n", (buf
[4]>>2)&0x3f, (buf
[4] & 0x03));
34 printf("\tcmd: 0x%02x\n", buf
[5]);
36 for(i
= 6; i
< (len
- 1); i
++) {
37 printf("0x%02x ", buf
[i
]);
40 printf("\tChecksum: 0x%02x (%s)\n", buf
[len
-1],
41 (buf
[len
-1] == ipmb_csum(buf
+3, len
-4)) ? "OK" : "Wrong");
42 printf("<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<\n");
55 printf("Waiting for I2C...\n");