Hi All, I've just added 9 new patch trackers to SF.com which include many bug fixes and (what I think are) improvements to ipmitool. There are around 35 patches total. I've arranged them into 9 series which should be independent of each other. The patches within each series however may be order dependent.
Here is a brief overview of each of the patch series. I'll send each patch to the mailing list as well shortly. Please have a look and let me know if you have any questions or comments. thanks! dan Series 1 - Tracker 3608757 ========================== Update ipmitool to fix fru output. Fixed several bugs with printing out the Carrier and AMC connectivity information with 'ipmitool -v fru' There were several bugs that were caused due to using bitfields with char types in ipmi_fru.h. GCC versions before v4.4 had a bug where they did not pack the bitfields correctly if the bitfields were not cleanly aligned with the underlying char type. Fixed and cleaned up all other PICMG FRU records. Series 2 - Tracker 3608758 ========================== Update ipmi.h to include IPMI_NETFN_OEM Added for completeness... Series 3 - Tracker 3608759 ========================== Fixes for configure.in for cross compilation Subject: [PATCH 1/3] Remove -Wno-packed-bitfield-compat from CFLAGS. This was hiding an important bug in ipmi_fru.h and is not a valid flag for older versions of gcc. Subject: [PATCH 2/3] Fix bug in configure.in when cross compiling. The previous test to see if we need pragma pack(1) was failing if we cross compile because there was no way to run the test. We now use AC_TRY_COMPILE and add the pragma pack(1) to the test code. If it compiles, it must be good, so add the define. Subject: [PATCH 3/3] Remove -Wno-unused-result flag from CFLAGS. This is not a valid compiler flag with older gcc versions. Series 4 - Tracker 3608760 ========================== Add bswap.h to ipmi_chassis.c and ipmi_pef.c Subject: [PATCH] Add bswap.h to ipmi_chassis.c and ipmi_pef.c The BSWAP_32 macro was added for big endian machines in these files, but the author forgot to include the necessary header file which defines it. Series 5 - Tracker 3608761 ========================== Fixed bug where PICMG Get Device Locator was never run. Subject: [PATCH] Fixed bug where PICMG Get Device Locator was never run. This code was moved to ipmi_main.c from open.c and in the change a bug was introduced where the PICMG Get Device Locator command would not be run unless the user explicitly set my_addr to 0 with the -m command. The more sensible thing to do is to run this unless the user explictly overrides it with the -m option. Series 6 - Tracker 3608762 ========================== Fixed help messages for hpm command. Subject: [PATCH] Fixed help messages for hpm command. Cleaned up the formatting a bit to fit on an 80 column screen. Series 7 - Tracker 3608763 ========================== Fixes for ipmi_sdr Subject: [PATCH 1/3] Fixed help for sdr command. Fixed the formatting of the help command to make it clearer what options the sdr command has. Subject: [PATCH 2/3] Improve 'sdr get' and 'sdr type' commands. Fix the help for the sdr get command to make it clear that the user needs to specify the sensor ID string and that it only returns the _first_ sensor that matches, not all of them. Fix the help for the sdt type command to make it clear that the type can be specified as either hex or the string value for the type. Add the hex value for the sensor type to displays so that the user can correlate sensor type values with their hex values without having to look them up in the IPMI spec. Subject: [PATCH 3/3] Update sensor_type_desc values to differentiate watchdogs. Previous versions had two values for "Watchdog" in the list which means that users could not perform 'ipmitool sdr type "Watchdog"' and get the IPMI v1.0 and later version of the watchdog sensor (ie 0x23 instead of 0x11). Series 8 - Tracker 3608765 ========================== Fixes for ipmi_ekanalyzer Subject: [PATCH 01/13] Fix spelling of ipmi_ek_diplay_carrier_connectivity Changed to ipmi_ek_display_carrier_connectivity. Subject: [PATCH 02/13] Remove unused variables from ipmi_ekanalyzer_ekeying_match(). Remove two unused local variables from ipmi_ekanalyzer_ekeying_match(). Subject: [PATCH 03/13] Fixed to not use multiple increments in args to printf. Performing postfix (or prefix) increments (ie ++var or var++) in the arguments to printf is inherently non-portable and may give different results on different platforms. Subject: [PATCH 04/13] reversed checks to reduce indentation in ipmi_ekanalyzer.c Rewrote ipmi_ek_display_chassis_info_area, ipmi_ek_display_product_info_area, and ipmi_ekanalyzer_fru_file2structure to reverse the checks of error conditions to reduce the amount of indentation required. Subject: [PATCH 05/13] Fixed bug in ipmi_ek_display_board_info_area. Previous versions were not setting the file_offset properly if a Custom board type was found, which would prevent subsequent dissectors from operating properly and terminating the output of 'ipmitool ekanalyze frushow oc=<atca carrier fruinfo>' early. Rewrote ipmi_ek_display_board_info_area() to fix indentation and to properly set the file_offset and end the while loop if a Custom board_type was found. Previous versions were also abusing the board_length variable, treating it as an int and using it to break out of the loop. Subject: [PATCH 06/13] Fixed bug reading length in fru info on big endian machines. Fixed bugs in ipmi_ek_display_chassis_info_area(), ipmi_ek_display_product_info_area(), and ipmi_ekanalyzer_fru_file2structure() where fread was being called to read one byte of data into a int or long data type. This would result in the value being byte swapped since the byte was read into the most significant byte of the int (ie byte 0) on big endian machines. Subject: [PATCH 07/13] Fixed big endian bug in ipmi_ek_display_carrier_connectivity. Fixed a bug where the carrier connectivity point to point descriptor was not being displayed properly when compiled on big endian machines. Subject: [PATCH 08/13] fix reading amc channel and link descriptors. Due to a bug in gcc where unaligned bit fields were not packed correctly before gcc 4.4, we changed the fru_picmgext_amc_channel_desc_record and fru_picmgext_amc_link_desc_record structures to use larger types to be packed correctly. This then requires us to use the FRU_PICMGEXT_AMC_CHANNEL_DESC_RECORD_SIZE and FRU_PICMGEXT_AMC_LINK_DESC_RECORD_SIZE defines instead of sizeof for these structures. Updated ipmi_ek_create_amc_p2p_record() and ipmi_ek_display_amc_p2p_record() to read data in the correct byte order on both big and little endian machines. Subject: [PATCH 09/13] Fix printing in ipmi_ek_display_amc_p2p_record(). Change the amc channel descriptor ports to be displayed in decimal instead of hex. This matches the fru -v output in ipmitool. Add decimal value of Link Asymetric Match values. So people don't have to look up the value in the source or in the PIGMG spec. Subject: [PATCH 10/13] ipmi_ekanalyzer_fru_file2structure would return error. ipmi_ekanalyzer_fru_file2structure would return ERROR_STATUS even if it finished sucessfully. Subject: [PATCH 11/13] Fix signed offset in ipmi_ekanalyzer_fru_file2structure. If the offset was greater than 127, then the multi_offset would end up being a negative value, which is not what we want. Subject: [PATCH 12/13] improve debug output in ipmi_ekanalyzer_fru_file2structure. Format the records a little more clearly by adding offsets. Subject: [PATCH 13/13] Fix indentation of ipmi_ek_create_amc_p2p_record() Series 9 - Tracker 3608766 ========================== Fixes and updates for ipmitool hpm Subject: [PATCH 1/9] Fix HpmfwupgPreUpgradeCheck to take into account Aux version. Update HpmfwupgPreUpgradeCheck to check if the Aux version is also different when it compares the Image version to the active and rollback versions. Fixed the indenting and style of HpmfwupgPreUpgradeCheck to make it more readable. Subject: [PATCH 2/9] Update hpm command to show what components will upgrade. Added a '^' character to the ID field which will be set if the component can be upgraded with the specified file with the 'hpm check <file>' subcommand. Subject: [PATCH 3/9] Add two extra chars to component name string. Add two additional chars to the component name string. For the default Pigeon Point firmware names we need a couple of extra chars to actually be able to tell what component is which. Before: ----------------------------------------------------- |ID | Name | Versions | | | | Active | Backup | ----------------------------------------------------- |*0 |H8S-AMCc F/| 2.00 10000000 | 2.00 0F000000 | | 1 |H8S-AMCc B/| 2.00 00000000 | ---.-- -------- | | 2 |H8S-AMCc F/| 2.00 10000000 | ---.-- -------- | ----------------------------------------------------- After: -------------------------------------------------------- |ID | Name | Versions | | | | Active | Backup | -------------------------------------------------------- |* 0|H8S-AMCc F/W | 2.00 10000000 | 2.00 0F000000 | | 1|H8S-AMCc B/L | 2.00 00000000 | ---.-- -------- | | 2|H8S-AMCc F/I | 2.00 10000000 | ---.-- -------- | -------------------------------------------------------- Subject: [PATCH 4/9] Fix display error with hpm upgrade. Fixed a bug where the rolling percentage display could corrupt the version line if the first call to HpmDisplayUpgrade resulted in a non-zero percentage. This was produced by performing: ipmitool hpm upgrade hpm1fru.img where hpm1fru.img is a small (820 byte) file. We now call HpmDisplayUpgrade before we transfer any data to ensure that we get 0% printed before the transfer starts. Subject: [PATCH 5/9] Fix hpm upgrade output; change Image size to decimal value. There is no point in putting the size of things in hex. Subject: [PATCH 6/9] Add field for deferred firmware revisions in hpm check. Added a new field to show the Deferred firmware version value as part of the 'hpm check' subcommand. The deferred firmware version is the version of the firmware which has been loaded with the 'hpm upgrade' command, but not yet activated. For example: root@octeon:~# ./ipmitool hpm check PICMG HPM.1 Upgrade Agent 1.0.8: -------Target Information------- Device Id : 0x12 Device Revision : 0x80 Product Id : 0xbaba Manufacturer Id : 0x400a (Pigeon Point Systems) -------------------------------------------------------------------------- |ID | Name | Versions | | | | Active | Backup | Deferred | -------------------------------------------------------------------------- |* 0|H8S-AMCc F/W | 2.00 10000000 | 2.00 0F000000 | ---.-- -------- | | 1|H8S-AMCc B/L | 2.00 00000000 | ---.-- -------- | ---.-- -------- | | 2|H8S-AMCc F/I | 2.00 10000000 | ---.-- -------- | ---.-- -------- | -------------------------------------------------------------------------- (*) Component requires Payload Cold Reset root@octeon:~# ./ipmitool hpm upgrade hpm1fw.img.16 PICMG HPM.1 Upgrade Agent 1.0.8: Validating firmware image integrity...OK Performing preparation stage... Services may be affected during upgrade. Do you wish to continue? y/n y OK Performing upgrade stage: ------------------------------------------------------------------------------- |ID | Name | Versions | % | | | | Active | Backup | File | | |----|-------------|-----------------|-----------------|-----------------|----| |* 0|H8S-AMCc F/W | 2.00 10000000 | 2.00 0F000000 | 2.00 10000000 |100%| | |Upload Time: 03:09 | Image Size: 143942 | ------------------------------------------------------------------------------- (*) Component requires Payload Cold Reset Firmware upgrade procedure successful root@octeon:~# ./ipmitool hpm check PICMG HPM.1 Upgrade Agent 1.0.8: -------Target Information------- Device Id : 0x12 Device Revision : 0x80 Product Id : 0xbaba Manufacturer Id : 0x400a (Pigeon Point Systems) -------------------------------------------------------------------------- |ID | Name | Versions | | | | Active | Backup | Deferred | -------------------------------------------------------------------------- |* 0|H8S-AMCc F/W | 2.00 10000000 | ---.-- -------- | 2.00 10000000 | | 1|H8S-AMCc B/L | 2.00 00000000 | ---.-- -------- | ---.-- -------- | | 2|H8S-AMCc F/I | 2.00 10000000 | ---.-- -------- | ---.-- -------- | -------------------------------------------------------------------------- (*) Component requires Payload Cold Reset t@octeon:~# ./ipmitool hpm activate PICMG HPM.1 Upgrade Agent 1.0.8: root@octeon:~# ./ipmitool hpm check PICMG HPM.1 Upgrade Agent 1.0.8: -------Target Information------- Device Id : 0x12 Device Revision : 0x80 Product Id : 0xbaba Manufacturer Id : 0x400a (Pigeon Point Systems) -------------------------------------------------------------------------- |ID | Name | Versions | | | | Active | Backup | Deferred | -------------------------------------------------------------------------- |* 0|H8S-AMCc F/W | 2.00 10000000 | 2.00 10000000 | ---.-- -------- | | 1|H8S-AMCc B/L | 2.00 00000000 | ---.-- -------- | ---.-- -------- | | 2|H8S-AMCc F/I | 2.00 10000000 | ---.-- -------- | ---.-- -------- | -------------------------------------------------------------------------- (*) Component requires Payload Cold Reset Subject: [PATCH 7/9] Update the help for the ipmitool hpm command. Update the help menu for the ipmitool hpm command. Fix the formatting and explain better the options. Changed the option 'upgrade <file> all' to 'upgrade <file> force'. This makes it clearer that the user is overriding the version check that 'upgrade <file>' performs. Subject: [PATCH 8/9] Update HPM1 to print error response code strings. We now will print the decoded strings as well as the error value for error response codes from the target. Subject: [PATCH 9/9] Fixed hpm upgstatus command to print on success. Fixed the hpm upgstatus command to print the results of the command without having to specify -v to enable verbose operation. It's not clear that this command is even useful to the user at all. Perhaps it should be removed entirely. -- Dan Gora Software Engineer Adax, Inc. ------------------------------------------------------------------------------ Everyone hates slow websites. So do we. Make your web apps faster with AppDynamics Download AppDynamics Lite for free today: http://p.sf.net/sfu/appdyn_d2d_mar _______________________________________________ Ipmitool-devel mailing list Ipmitool-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/ipmitool-devel