X-Git-Url: https://git.zerfleddert.de/cgi-bin/gitweb.cgi/rsbs2/blobdiff_plain/d51930558a73dd1083b924159971d4c77df411e6..da7751cb0539c2ecb03ff66d05904626052e06e3:/bmc/bmc.c?ds=sidebyside diff --git a/bmc/bmc.c b/bmc/bmc.c index 525785e..99427f6 100644 --- a/bmc/bmc.c +++ b/bmc/bmc.c @@ -1,16 +1,20 @@ #include -#include #include +#include #include #include "usart.h" #include "i2c.h" +#include "ipmb.h" +#include "chassis.h" #include "bmc.h" int main(void) { - DDRB = 0xff; - PORTB = 0xff; + uint8_t old_SREG; + unsigned char buf[12]; + unsigned int len; + chassis_init(); usart_init(); printf("\n"); @@ -21,9 +25,21 @@ int main(void) sei(); while(1) { -#if 1 +#if 0 sleep_mode(); #endif + old_SREG = SREG; + cli(); + if (i2c_done) { + len = i2c_len; + memcpy(buf, (unsigned char*)i2c_databuf, len); + i2c_done = 0x00; + SREG = old_SREG; + + decode_ipmb_pkt(buf, len); + } else { + SREG = old_SREG; + } } return 0;