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

Reply via email to