Lines Matching +full:x +full:- +full:rc
25 * PARTICULAR PURPOSE OR NON-INFRINGEMENT, ARE HEREBY EXCLUDED.
44 * The ME is an IPMI-enabled component included in Intel(R) Next Generation
45 * Server Chipset Nehalem-EP platforms.
49 * - Dynamic Power Node Manager
50 * - Intelligent Power Node Manager
64 * ipmitool -m 0x20 -t 0x88 -b 8 ime info
66 * !! WARNING - You MUST use an image provided by your board vendor. - WARNING !!
69 * Jean-Michel.Audet@ca.kontron.com
76 * 2009-04-20
97 static const int IME_ERROR = -1;
98 static const int IME_RESTART = -2;
191 int rc = IME_ERROR; in ImeGetInfo() local
204 rsp = intf->sendrecv(intf, &req); in ImeGetInfo()
209 if (rsp->ccode > 0) { in ImeGetInfo()
211 val2str(rsp->ccode, completion_code_vals)); in ImeGetInfo()
215 devid = (struct ipm_devid_rsp *) rsp->data; in ImeGetInfo()
217 lprintf(LOG_DEBUG,"Device ID : %i", devid->device_id); in ImeGetInfo()
219 devid->device_revision & IPM_DEV_DEVICE_ID_REV_MASK); in ImeGetInfo()
222 (devid->device_id == 0) in ImeGetInfo()
224 ((devid->device_revision & IPM_DEV_DEVICE_ID_REV_MASK) == 0) in ImeGetInfo()
227 (devid->manufacturer_id[0] == 0x57) // Intel in ImeGetInfo()
229 (devid->manufacturer_id[1] == 0x01) // Intel in ImeGetInfo()
231 (devid->manufacturer_id[2] == 0x00) // Intel in ImeGetInfo()
235 (devid->product_id[1] == 0x0b) in ImeGetInfo()
237 (devid->product_id[0] == 0x00) in ImeGetInfo()
241 rc = IME_SUCCESS; in ImeGetInfo()
243 val2str( (long)IPM_DEV_MANUFACTURER_ID(devid->manufacturer_id), in ImeGetInfo()
246 printf("Product ID : %u (0x%02x%02x)\n", in ImeGetInfo()
247 buf2short((uint8_t *)(devid->product_id)), in ImeGetInfo()
248 devid->product_id[1], devid->product_id[0]); in ImeGetInfo()
250 product=oemval2str(IPM_DEV_MANUFACTURER_ID(devid->manufacturer_id), in ImeGetInfo()
251 (devid->product_id[1]<<8)+devid->product_id[0], in ImeGetInfo()
259 printf("Intel ME Firmware Revision : %x.%02x.%02x.%x%x%x.%x\n", in ImeGetInfo()
260 ((devid->fw_rev1 & IPM_DEV_FWREV1_MAJOR_MASK ) ), in ImeGetInfo()
261 ((devid->fw_rev2 ) >> 4), in ImeGetInfo()
262 ((devid->fw_rev2 ) & 0x0f), in ImeGetInfo()
263 ((devid->aux_fw_rev[1] ) >> 4), in ImeGetInfo()
264 ((devid->aux_fw_rev[1] ) & 0x0f), in ImeGetInfo()
265 ((devid->aux_fw_rev[2] ) >> 4), in ImeGetInfo()
266 ((devid->aux_fw_rev[2] ) & 0x0f) in ImeGetInfo()
269 printf("SPS FW IPMI cmd version : %x.%x\n", in ImeGetInfo()
270 devid->aux_fw_rev[0] >> 4, in ImeGetInfo()
271 devid->aux_fw_rev[0] & 0x0f); in ImeGetInfo()
273 lprintf(LOG_DEBUG,"Flags: %xh", devid->aux_fw_rev[3]); in ImeGetInfo()
276 switch( (devid->aux_fw_rev[3] & 0x03) ) in ImeGetInfo()
301 if(rc == IME_SUCCESS) in ImeGetInfo()
303 rc = ImeUpdateGetStatus(intf, &status); in ImeGetInfo()
305 if(rc == IME_SUCCESS) in ImeGetInfo()
307 rc = ImeUpdateGetCapabilities(intf, &caps); in ImeGetInfo()
312 if(rc == IME_SUCCESS) in ImeGetInfo()
343 return rc; in ImeGetInfo()
349 int rc = IME_SUCCESS; in ImeUpgrade() local
358 rc = ImeImageCtxFromFile(imageFilename, &imgCtx); in ImeUpgrade()
361 (rc == IME_ERROR) || in ImeUpgrade()
371 if(rc == IME_SUCCESS) in ImeUpgrade()
373 rc = ImeUpdatePrepare(intf); in ImeUpgrade()
378 (rc == IME_SUCCESS) && in ImeUpgrade()
382 rc = ImeUpdateOpenArea(intf); in ImeUpgrade()
385 else if(rc == IME_SUCCESS) in ImeUpgrade()
388 rc = IME_ERROR; in ImeUpgrade()
393 (rc == IME_SUCCESS) && in ImeUpgrade()
404 (rc == IME_SUCCESS) && in ImeUpgrade()
411 if( (imgCtx.size - counter) < IME_UPGRADE_BUFFER_SIZE ) in ImeUpgrade()
413 length = (imgCtx.size - counter); in ImeUpgrade()
416 rc = ImeUpdateWriteArea(intf,sequence,length,&imgCtx.pData[counter]); in ImeUpgrade()
437 timeElapsedSecond = (current-start) + ((current-start)%60); in ImeUpgrade()
438 printf("Elapsed time %02ld:%02ld\r",((current-start)/60), ((current-start)%60)); in ImeUpgrade()
446 else if(rc == IME_SUCCESS) in ImeUpgrade()
449 rc = IME_ERROR; in ImeUpgrade()
453 (rc == IME_SUCCESS) && in ImeUpgrade()
457 rc = ImeUpdateCloseArea(intf, imgCtx.size, imgCtx.crc8); in ImeUpgrade()
460 else if(rc == IME_SUCCESS) in ImeUpgrade()
463 rc = IME_ERROR; in ImeUpgrade()
467 (rc == IME_SUCCESS) && in ImeUpgrade()
472 rc = ImeUpdateRegisterUpdate(intf, IME_UPDTYPE_NORMAL); in ImeUpgrade()
475 else if(rc == IME_SUCCESS) in ImeUpgrade()
478 rc = IME_ERROR; in ImeUpgrade()
482 (rc == IME_SUCCESS) && in ImeUpgrade()
487 printf("Update Completed in %02ld:%02ld\n",(end-start)/60, (end-start)%60); in ImeUpgrade()
493 printf("\nTime Taken %02ld:%02ld\n",(end-start)/60, (end-start)%60); in ImeUpgrade()
496 return rc; in ImeUpgrade()
514 rsp = intf->sendrecv(intf, &req); in ImeUpdatePrepare()
519 if (rsp->ccode > 0) { in ImeUpdatePrepare()
521 val2str(rsp->ccode, completion_code_vals)); in ImeUpdatePrepare()
549 rsp = intf->sendrecv(intf, &req); in ImeUpdateOpenArea()
554 if (rsp->ccode > 0) { in ImeUpdateOpenArea()
556 val2str(rsp->ccode, completion_code_vals)); in ImeUpdateOpenArea()
589 rsp = intf->sendrecv(intf, &req); in ImeUpdateWriteArea()
594 if (rsp->ccode > 0) { in ImeUpdateWriteArea()
596 val2str(rsp->ccode, completion_code_vals)); in ImeUpdateWriteArea()
597 if( rsp->ccode == 0x80) // restart operation in ImeUpdateWriteArea()
636 rsp = intf->sendrecv(intf, &req); in ImeUpdateCloseArea()
641 if (rsp->ccode > 0) { in ImeUpdateCloseArea()
643 val2str(rsp->ccode, completion_code_vals)); in ImeUpdateCloseArea()
658 pStatus->update_state = IME_STATE_ABORTED; in ImeUpdateGetStatus()
670 rsp = intf->sendrecv(intf, &req); in ImeUpdateGetStatus()
675 if (rsp->ccode > 0) { in ImeUpdateGetStatus()
677 val2str(rsp->ccode, completion_code_vals)); in ImeUpdateGetStatus()
683 pGetStatus = (tImeStatus *) rsp->data; in ImeUpdateGetStatus()
688 printf("%x - ", pStatus->updateState); in ImeUpdateGetStatus()
690 switch( pStatus->update_state ) in ImeUpdateGetStatus()
743 rsp = intf->sendrecv(intf, &req); in ImeUpdateGetCapabilities()
748 if (rsp->ccode > 0) { in ImeUpdateGetCapabilities()
750 val2str(rsp->ccode, completion_code_vals)); in ImeUpdateGetCapabilities()
756 pGetCaps = (tImeCaps *) rsp->data; in ImeUpdateGetCapabilities()
783 rsp = intf->sendrecv(intf, &req); in ImeUpdateRegisterUpdate()
788 if (rsp->ccode > 0) { in ImeUpdateRegisterUpdate()
790 val2str(rsp->ccode, completion_code_vals)); in ImeUpdateRegisterUpdate()
814 rsp = intf->sendrecv(intf, &req); in ImeUpdateShowStatus()
819 if (rsp->ccode > 0) { in ImeUpdateShowStatus()
821 val2str(rsp->ccode, completion_code_vals)); in ImeUpdateShowStatus()
827 pStatus = (tImeStatus *) rsp->data ; in ImeUpdateShowStatus()
830 printf("image_status: %x - ", pStatus->image_status); in ImeUpdateShowStatus()
832 printf("update_state: %x - ", pStatus->update_state); in ImeUpdateShowStatus()
834 switch( pStatus->update_state ) in ImeUpdateShowStatus()
864 printf("update_attempt_status : %x\n", pStatus->update_attempt_status); in ImeUpdateShowStatus()
865 printf("rollback_attempt_status: %x\n", pStatus->rollback_attempt_status); in ImeUpdateShowStatus()
866 printf("update_type : %x\n", pStatus->update_type); in ImeUpdateShowStatus()
867 printf("dependent_flag : %x\n", pStatus->dependent_flag); in ImeUpdateShowStatus()
868 printf("free_area_size : %x\n", pStatus->free_area_size[0]); in ImeUpdateShowStatus()
869 printf(" : %x\n", pStatus->free_area_size[1]); in ImeUpdateShowStatus()
870 printf(" : %x\n", pStatus->free_area_size[2]); in ImeUpdateShowStatus()
871 printf(" : %x\n", pStatus->free_area_size[3]); in ImeUpdateShowStatus()
882 int rc = IME_SUCCESS; in ImeImageCtxFromFile() local
888 rc = IME_ERROR; in ImeImageCtxFromFile()
891 if ( rc == IME_SUCCESS ) in ImeImageCtxFromFile()
895 pImageCtx->size = ftell(pImageFile); in ImeImageCtxFromFile()
896 if (pImageCtx->size <= 0) { in ImeImageCtxFromFile()
897 if (pImageCtx->size < 0) in ImeImageCtxFromFile()
899 rc = IME_ERROR; in ImeImageCtxFromFile()
901 return rc; in ImeImageCtxFromFile()
903 pImageCtx->pData = malloc(sizeof(unsigned char)*pImageCtx->size); in ImeImageCtxFromFile()
906 if ( pImageCtx->pData != NULL ) in ImeImageCtxFromFile()
908 if (pImageCtx->size < fread(pImageCtx->pData, sizeof(unsigned char), in ImeImageCtxFromFile()
909 pImageCtx->size, pImageFile)) in ImeImageCtxFromFile()
910 rc = IME_ERROR; in ImeImageCtxFromFile()
914 rc = IME_ERROR; in ImeImageCtxFromFile()
919 if ( rc == IME_SUCCESS ) in ImeImageCtxFromFile()
921 pImageCtx->crc8 = ImeCrc8(pImageCtx->size, pImageCtx->pData); in ImeImageCtxFromFile()
930 return rc; in ImeImageCtxFromFile()
965 int rc = IME_SUCCESS; in ImeManualRollback() local
968 rc = ImeUpdateRegisterUpdate(intf, IME_UPDTYPE_MANUAL_ROLLBACK); in ImeManualRollback()
973 (rc == IME_SUCCESS) && in ImeManualRollback()
991 lprintf(LOG_NOTICE,"help - This help menu"); in ImePrintUsage()
992 lprintf(LOG_NOTICE,"info - Information about the present Intel ME"); in ImePrintUsage()
993 …lprintf(LOG_NOTICE,"update <file> - Upgrade the ME firmware from received image <file>"); in ImePrintUsage()
994 lprintf(LOG_NOTICE,"rollback - Manual Rollback ME"); in ImePrintUsage()
995 // lprintf(LOG_NOTICE,"rollback - Rollback ME Firmware"); in ImePrintUsage()
1002 int rc = IME_SUCCESS; in ipmi_ime_main() local
1013 rc = ImeGetInfo(intf); in ipmi_ime_main()
1020 rc = ImeUpgrade(intf, argv[1]); in ipmi_ime_main()
1025 rc = IME_ERROR; in ipmi_ime_main()
1030 rc = ImeManualRollback(intf); in ipmi_ime_main()
1037 return rc; in ipmi_ime_main()