Hi ,
This is the patch that contains bug fixes for Non-Dell components
Thanks,
Srinivas.G
DELL
diff -Naurp ipmitool_base/include/ipmitool/ipmi_fru.h
01-ipmitool_opensource_fix/include/ipmitool/ipmi_fru.h
--- ipmitool_base/include/ipmitool/ipmi_fru.h 2011-08-04 16:48:43.000000000
+0530
+++ 01-ipmitool_opensource_fix/include/ipmitool/ipmi_fru.h 2011-08-04
16:48:42.000000000 +0530
@@ -59,11 +59,14 @@ enum {
FRU_PRODUCT_SERIAL,
FRU_PRODUCT_ASSET,
};
+#ifdef HAVE_PRAGMA_PACK
+#pragma pack(1)
+#endif
struct fru_info {
uint16_t size;
uint8_t access:1;
-};
+}ATTRIBUTE_PACKING;
#ifdef HAVE_PRAGMA_PACK
#pragma pack(1)
@@ -596,5 +599,9 @@ static const char * chassis_type_desc[]
int ipmi_fru_main(struct ipmi_intf *intf, int argc, char **argv);
int ipmi_fru_print(struct ipmi_intf *intf, struct sdr_record_fru_locator *fru);
+int read_fru_area(struct ipmi_intf * intf, struct fru_info *fru, uint8_t id,
+ uint32_t offset, uint32_t length, uint8_t *frubuf);
+char * get_fru_area_str(uint8_t * data, uint32_t * offset);
+
#endif /* IPMI_FRU_H */
diff -Naurp ipmitool_base/lib/ipmi_ekanalyzer.c
01-ipmitool_opensource_fix/lib/ipmi_ekanalyzer.c
--- ipmitool_base/lib/ipmi_ekanalyzer.c 2011-08-04 16:48:43.000000000 +0530
+++ 01-ipmitool_opensource_fix/lib/ipmi_ekanalyzer.c 2011-08-04
16:48:42.000000000 +0530
@@ -3023,11 +3023,13 @@ ipmi_ek_display_address_table_record( st
entries = record->data[offset++];
printf(" Addr Table Entries count: 0x%02x\n", entries);
- for ( i = 0; i < entries; i++ ){
+ for ( i = 0; i < entries; i++ )
+ {
printf("\tHWAddr: 0x%02x - SiteNum: 0x%02x - SiteType: 0x%02x \n",
- record->data[offset++],
- record->data[offset++],
- record->data[offset++]);
+ record->data[offset+0],
+ record->data[offset+1],
+ record->data[offset+2]);
+ offset = offset + 3;
}
}
@@ -3148,21 +3150,26 @@ ipmi_ek_display_shelf_ip_connection_reco
int offset = START_DATA_OFFSET;
if (offset > record->header.len){
printf(" Shelf Manager IP Address: %d.%d.%d.%d\n",
- record->data[offset++], record->data[offset++],
- record->data[offset++], record->data[offset++]
+ record->data[offset+0], record->data[offset+1],
+ record->data[offset+2], record->data[offset+3]
);
+ offset = offset + 4;
}
if (offset > record->header.len){
printf(" Default Gateway Address: %d.%d.%d.%d\n",
- record->data[offset++], record->data[offset++],
- record->data[offset++], record->data[offset++]
- );
+ record->data[offset+0], record->data[offset+1],
+ record->data[offset+2], record->data[offset+3]
+ );
+ offset = offset + 4;
+
}
if (offset > record->header.len){
- printf(" Subnet Mask: %d.%d.%d.%d\n", record->data[offset++],
- record->data[offset++], record->data[offset++],
- record->data[offset++]
- );
+ printf(" Subnet Mask: %d.%d.%d.%d\n",
+ record->data[offset+0], record->data[offset+1],
+ record->data[offset+2], record->data[offset+3]
+ );
+ offset = offset + 4;
+
}
}
@@ -3197,7 +3204,7 @@ ipmi_ek_display_shelf_fan_geography_reco
while ( (fan_count > 0) && (offset <= record->header.len) ){
printf(" Fan-to-FRU Mapping Entry: {%2x%2x%2x%2x}\n",
- record->data[offset], record->data[offset+1],
+ record->data[offset+0], record->data[offset+1],
record->data[offset+2], record->data[offset+3]
);
printf(" Hardware Address: 0x%02x\n", record->data[offset++]);
diff -Naurp ipmitool_base/lib/ipmi_fru.c
01-ipmitool_opensource_fix/lib/ipmi_fru.c
--- ipmitool_base/lib/ipmi_fru.c 2011-08-04 16:48:43.000000000 +0530
+++ 01-ipmitool_opensource_fix/lib/ipmi_fru.c 2011-08-04 16:48:42.000000000
+0530
@@ -2067,8 +2067,9 @@ static void ipmi_fru_picmg_ext_print(uin
printf(" Addr Table Entries: 0x%02x\n", entries);
for (i=0; i<entries; i++) {
- printf(" HWAddr: 0x%02x - SiteNum:
0x%02x - SiteType: 0x%02x \n",
- fru_data[offset++], fru_data[offset++],
fru_data[offset++]);
+ printf(" HWAddr: 0x%02x
- SiteNum: 0x%02x - SiteType: 0x%02x \n",
+ fru_data[offset+0],
fru_data[offset+1], fru_data[offset+2]);
+ offset = offset + 3;
}
}
break;
diff -Naurp ipmitool_base/lib/ipmi_mc.c 01-ipmitool_opensource_fix/lib/ipmi_mc.c
--- ipmitool_base/lib/ipmi_mc.c 2011-08-04 16:48:43.000000000 +0530
+++ 01-ipmitool_opensource_fix/lib/ipmi_mc.c 2011-08-04 16:48:42.000000000
+0530
@@ -69,11 +69,23 @@ ipmi_mc_reset(struct ipmi_intf * intf, i
req.msg.cmd = cmd;
req.msg.data_len = 0;
- if (cmd == BMC_COLD_RESET)
+ /* Cold reset Failure message added */
+ /*
+ if (cmd == BMC_COLD_RESET)
intf->noanswer = 1;
+ */
rsp = intf->sendrecv(intf, &req);
+ if (rsp == NULL) {
+ printf(" Error sending the Command .\n");
+ return -1;
+ }
+ if (rsp->ccode > 0) {
+ printf("Failed to do %s reset to MC\n",
+ (cmd == BMC_WARM_RESET) ? "warm" : "cold");
+ return -1;
+ }
if (cmd == BMC_COLD_RESET)
intf->abort = 1;
------------------------------------------------------------------------------
Get a FREE DOWNLOAD! and learn more about uberSVN rich system,
user administration capabilities and model configuration. Take
the hassle out of deploying and managing Subversion and the
tools developers use with it.
http://p.sf.net/sfu/wandisco-dev2dev
_______________________________________________
Ipmitool-devel mailing list
Ipmitool-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ipmitool-devel