ID: 305 - HPM.1 deferred activation support fixup

Currently, the HPM.1 agent in the IPMItool does not differ between Rollback
support and Deferred Activation Support. The patch fixes up this bug.

Commit for Dmitry Bazhenov
This commit is contained in:
Zdenek Styblik 2014-05-25 08:48:50 +02:00
parent 3473670051
commit 3f508629a5
2 changed files with 13 additions and 7 deletions

View File

@ -796,6 +796,7 @@ typedef struct _VERSIONINFO {
unsigned char imageAux[4]; unsigned char imageAux[4];
unsigned char coldResetRequired; unsigned char coldResetRequired;
unsigned char rollbackSupported; unsigned char rollbackSupported;
unsigned char deferredActivationSupported;
char descString[HPMFWUPG_DESC_STRING_LENGTH + 1]; char descString[HPMFWUPG_DESC_STRING_LENGTH + 1];
}VERSIONINFO, *PVERSIONINFO; }VERSIONINFO, *PVERSIONINFO;

View File

@ -344,6 +344,8 @@ HpmfwupgTargetCheck(struct ipmi_intf *intf, int option)
generalPropResp.GeneralCompProperties.bitfield.rollbackBackup; generalPropResp.GeneralCompProperties.bitfield.rollbackBackup;
gVersionInfo[componentId].coldResetRequired = getCompProp.resp.Response. gVersionInfo[componentId].coldResetRequired = getCompProp.resp.Response.
generalPropResp.GeneralCompProperties.bitfield.payloadColdReset; generalPropResp.GeneralCompProperties.bitfield.payloadColdReset;
gVersionInfo[componentId].deferredActivationSupported = getCompProp.resp.Response.
generalPropResp.GeneralCompProperties.bitfield.deferredActivation;
getCompProp.req.selector = HPMFWUPG_COMP_DESCRIPTION_STRING; getCompProp.req.selector = HPMFWUPG_COMP_DESCRIPTION_STRING;
rc = HpmfwupgGetComponentProperties(intf, &getCompProp); rc = HpmfwupgGetComponentProperties(intf, &getCompProp);
if (rc != HPMFWUPG_SUCCESS) { if (rc != HPMFWUPG_SUCCESS) {
@ -395,6 +397,16 @@ HpmfwupgTargetCheck(struct ipmi_intf *intf, int option)
gVersionInfo[componentId].rollbackAux[2] = getCompProp.resp.Response.rollbackFwVersionResp.rollbackFwVersion[4]; gVersionInfo[componentId].rollbackAux[2] = getCompProp.resp.Response.rollbackFwVersionResp.rollbackFwVersion[4];
gVersionInfo[componentId].rollbackAux[3] = getCompProp.resp.Response.rollbackFwVersionResp.rollbackFwVersion[5]; gVersionInfo[componentId].rollbackAux[3] = getCompProp.resp.Response.rollbackFwVersionResp.rollbackFwVersion[5];
} }
mode |= ROLLBACK_VER;
} else {
gVersionInfo[componentId].rollbackMajor = 0xff;
gVersionInfo[componentId].rollbackMinor = 0xff;
gVersionInfo[componentId].rollbackAux[0] = 0xff;
gVersionInfo[componentId].rollbackAux[1] = 0xff;
gVersionInfo[componentId].rollbackAux[2] = 0xff;
gVersionInfo[componentId].rollbackAux[3] = 0xff;
}
if (gVersionInfo[componentId].deferredActivationSupported) {
getCompProp.req.selector = HPMFWUPG_COMP_DEFERRED_FIRMWARE_VERSION; getCompProp.req.selector = HPMFWUPG_COMP_DEFERRED_FIRMWARE_VERSION;
rc = HpmfwupgGetComponentProperties(intf, &getCompProp); rc = HpmfwupgGetComponentProperties(intf, &getCompProp);
if (rc != HPMFWUPG_SUCCESS) { if (rc != HPMFWUPG_SUCCESS) {
@ -411,14 +423,7 @@ HpmfwupgTargetCheck(struct ipmi_intf *intf, int option)
gVersionInfo[componentId].deferredAux[2] = getCompProp.resp.Response.deferredFwVersionResp.deferredFwVersion[4]; gVersionInfo[componentId].deferredAux[2] = getCompProp.resp.Response.deferredFwVersionResp.deferredFwVersion[4];
gVersionInfo[componentId].deferredAux[3] = getCompProp.resp.Response.deferredFwVersionResp.deferredFwVersion[5]; gVersionInfo[componentId].deferredAux[3] = getCompProp.resp.Response.deferredFwVersionResp.deferredFwVersion[5];
} }
mode |= ROLLBACK_VER;
} else { } else {
gVersionInfo[componentId].rollbackMajor = 0xff;
gVersionInfo[componentId].rollbackMinor = 0xff;
gVersionInfo[componentId].rollbackAux[0] = 0xff;
gVersionInfo[componentId].rollbackAux[1] = 0xff;
gVersionInfo[componentId].rollbackAux[2] = 0xff;
gVersionInfo[componentId].rollbackAux[3] = 0xff;
gVersionInfo[componentId].deferredMajor = 0xff; gVersionInfo[componentId].deferredMajor = 0xff;
gVersionInfo[componentId].deferredMinor = 0xff; gVersionInfo[componentId].deferredMinor = 0xff;
gVersionInfo[componentId].deferredAux[0] = 0xff; gVersionInfo[componentId].deferredAux[0] = 0xff;