IPMI_AMIDevice.h 33 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750
  1. /****************************************************************
  2. ****************************************************************
  3. ** **
  4. ** (C)Copyright 2005-2006, American Megatrends Inc. **
  5. ** **
  6. ** All Rights Reserved. **
  7. ** **
  8. ** 6145-F, Northbelt Parkway, Norcross, **
  9. ** **
  10. ** Georgia - 30071, USA. Phone-(770)-246-8600. **
  11. ** **
  12. ****************************************************************
  13. ****************************************************************
  14. ****************************************************************
  15. *
  16. * IPMI_AMI.h
  17. * AMI specific IPMI Commands
  18. *
  19. * Author: Basavaraj Astekar <basavaraja@ami.com>
  20. *
  21. *****************************************************************/
  22. #ifndef IPMI_AMI_DEVICE_H_
  23. #define IPMI_AMI_DEVICE_H_
  24. #include "Types.h"
  25. //#include "coreTypes.h"
  26. //#include "fmhinfo.h"
  27. //#include "IPMI_SDRRecord.h"
  28. #include "IPMI_AMI.h"
  29. //#include "tftp.h"
  30. #include "IPMI_AMILicense.h"
  31. #ifndef MSDOS
  32. #include "flashlib.h"
  33. #endif
  34. #define MAX_SIZE_KEY 56 /* For Blowfish Encryption Algorithm, the key can have maximum of 56 bytes. */
  35. //Maximum Size of Public Key
  36. #define MAX_PERMITTED_KEY_SIZE (8*1024)
  37. #define MAX_LINUX_ROOT_USER_PASSWORD_LEN 64
  38. #define MAX_SOL_PORT_STR_LEN 16
  39. #define MTD_DEV_NAME_LEN 31
  40. /*Number of PAM module are going to re-ordered*/
  41. #define MODULES_TO_MODIFIED 4
  42. #define MAX_BOOTVAR_LENGTH 400
  43. #define MAX_BOOTVAL_LENGTH 400
  44. #define MAX_FMHLENGTH 1024
  45. #define CRITICAL 0x1
  46. #define NON_CRITICAL 0x2
  47. #define NON_RECOVERABLE 0x3
  48. #define FAN_TROUBLED 0x4
  49. #define BMC_WDT_EXPIRE 0x5
  50. #define SYS_DC_ON 0x6
  51. #define SYS_DC_OFF 0x7
  52. #define SYS_RESET 0x8
  53. #define SPEC_DATE_TIME 0x9
  54. #define LPC_RESET_FLAG 0xa
  55. /*Macros used for Dual Image Support*/
  56. #define SETFWBOOTSELECTOR 0x1
  57. #define GETFWBOOTSELECTOR 0x2
  58. #define SETFWUPLOADSELECTOR 0x3
  59. #define GETFWUPLOADSELECTOR 0x4
  60. #define SETREBOOTSTATUS 0x5
  61. #define GETREBOOTSTATUS 0x6
  62. #define GETCURACTIVEIMG 0x7
  63. #define GETDUALIMGFWINFO 0x8
  64. #define TIME_ZONE_PATH "/usr/share/zoneinfo/"
  65. #define LINK_CMD "ln -sf"
  66. #define LOCALTIME "/conf/localtime"
  67. #define MAX_MINS 60
  68. #define ZONE_PATH_SIZE 128
  69. /**Macro Used For AMISetVirtualDevice*/
  70. #define VIRTUAL_DEVICE_ENABLE 0x1
  71. #define VIRTUAL_DEVICE_DISABLE 0x0
  72. /*
  73. * User roles( for command auth. purposes). Currently used by AMISetLEDmode.
  74. */
  75. typedef enum {
  76. REGULAR,
  77. ADMIN,
  78. POLICY
  79. } user_role_t;
  80. /*
  81. * LEDs
  82. */
  83. typedef enum {
  84. OK2RM = 0,
  85. SERVICE = 1,
  86. ACT = 2,
  87. LOCATE = 3
  88. } LEDtype_t;
  89. /*
  90. * LED modes
  91. */
  92. typedef enum {
  93. LED_OFF = 0,
  94. LED_ON = 1,
  95. LED_STANDBY_BLINK = 2,
  96. LED_SLOW_BLINK = 3,
  97. LED_FAST_BLINK = 4
  98. } LEDmode_t;
  99. /* Define your IPMI request and response structures here */
  100. #pragma pack(1)
  101. /**
  102. * @struct AMICommandReq_T
  103. * @brief AMI command request structure
  104. **/
  105. typedef struct
  106. {
  107. /* define your structures here */
  108. INT8U dummy;
  109. } PACKED AMITestCmdReq_T;
  110. /**
  111. * @struct AMICommandRes_T
  112. * @brief AMI command response structure
  113. **/
  114. typedef struct
  115. {
  116. /* define your structures here */
  117. INT8U dummy;
  118. } PACKED AMITestCmdRes_T;
  119. //#define MAX_IPMI_UPLOAD_BLOCK ( 64 * 1024 )
  120. #define MAX_IPMI_UPLOAD_BLOCK ( 100 )
  121. /**
  122. * @struct AMISetSSHKeyReq_T
  123. * @brief AMI Set SSH Key command request structure
  124. **/
  125. typedef struct
  126. {
  127. /* UserID of the user whose ssh key we're uploading */
  128. INT8U UserID;
  129. /* Zero-indexed block number for upload. Set to 0xff for the last */
  130. /* block. */
  131. INT8U KeyDataBlockNumber;
  132. /* Amount of data in this block. Should be max block size for all */
  133. /* but the last block when the total key size is not a multiple of */
  134. /* the maximum block size. */
  135. INT8U DataLen;
  136. INT8U Data[ MAX_IPMI_UPLOAD_BLOCK ];
  137. } PACKED AMISetSSHKeyReq_T;
  138. /**
  139. * @struct AMISetSSHKeyRes_T
  140. * @brief AMI Set SSH Key command response structure
  141. **/
  142. typedef struct
  143. {
  144. INT8U CompletionCode;
  145. } PACKED AMISetSSHKeyRes_T;
  146. /**
  147. * @struct AMIDelSSHKeyReq_T
  148. * @brief AMI Delete SSH Key command request structure
  149. **/
  150. typedef struct
  151. {
  152. /* UserID of the user whose ssh key we're deleting */
  153. INT8U UserID;
  154. } PACKED AMIDelSSHKeyReq_T;
  155. /**
  156. * @struct AMIDelSSHKeyRes_T
  157. * @brief AMI Delete SSH Key command response structure
  158. **/
  159. typedef struct
  160. {
  161. INT8U CompletionCode;
  162. } PACKED AMIDelSSHKeyRes_T;
  163. /**
  164. * @struct AMIUpgradeBlockReq_T
  165. * @brief AMI Upgrade Block command request structure
  166. **/
  167. typedef struct
  168. {
  169. /* Block information */
  170. BI_t blkInfo;
  171. } PACKED AMIUpgradeBlockReq_T;
  172. /**
  173. * @struct AMIUpgradeBlockRes_T
  174. * @brief AMI Upgrade Block command response structure
  175. **/
  176. typedef struct
  177. {
  178. INT8U CompletionCode;
  179. } PACKED AMIUpgradeBlockRes_T;
  180. /* Init Flash */
  181. typedef struct
  182. {
  183. FLASH_PARAMS params;
  184. } PACKED AMIInitFlashReq_T;
  185. typedef struct
  186. {
  187. INT8U CompletionCode;
  188. FLASH_PARAMS params;
  189. } PACKED AMIInitFlashRes_T;
  190. /* Exit Flash */
  191. typedef struct
  192. {
  193. FLASH_PARAMS params;
  194. } PACKED AMIExitFlashReq_T;
  195. /* Exit Flash */
  196. typedef struct
  197. {
  198. FLASH_PARAMS params;
  199. } PACKED AMIStartFirmwareUpdateReq_T;
  200. typedef struct
  201. {
  202. INT8U CompletionCode;
  203. } PACKED AMIExitFlashRes_T;
  204. /* Get Flash Layout */
  205. typedef struct
  206. {
  207. FLASH_LAYOUT FlashLayout;
  208. } PACKED AMIGetFlashLayoutReq_T;
  209. typedef struct
  210. {
  211. INT8U CompletionCode;
  212. FLASH_LAYOUT FlashLayout;
  213. } PACKED AMIGetFlashLayoutRes_T;
  214. typedef struct
  215. {
  216. INT8U CompletionCode;
  217. } PACKED AMIResetCardRes_T;
  218. typedef struct
  219. {
  220. INT8U CompletionCode;
  221. } PACKED AMIUpdateUbootRes_T;
  222. typedef struct
  223. {
  224. INT8U CompletionCode;
  225. } PACKED AMISetFirmwareUpdateModeRes_T;
  226. typedef struct
  227. {
  228. INT8U CompletionCode;
  229. } PACKED AMIStartFirmwareUpdateRes_T;
  230. typedef struct
  231. {
  232. FLASH_PARAMS params;
  233. } PACKED AMIGetFirmwareUpdateStatusReq_T;
  234. typedef struct
  235. {
  236. INT8U EraseInProgress;
  237. INT8U CurrentSectorErased;
  238. INT8U TotalSectorstobeErased;
  239. INT8U WriteInProgress;
  240. INT8U CurrentSectorWritten;
  241. INT8U TotalSectorstobeWritten;
  242. INT8U EraseWriteCompleted;
  243. } PACKED AMIFlashStatus_T;
  244. typedef struct
  245. {
  246. INT8U CompletionCode;
  247. STRUCTURED_FLASH_PROGRESS flprog;
  248. } PACKED AMIGetFirmwareUpdateStatusRes_T;
  249. typedef struct
  250. {
  251. int TimeOut;
  252. int FlashProcessStarted;
  253. } PACKED FlashTimerInfo_T;
  254. typedef struct
  255. {
  256. INT8U FanSpeed; /* Fan speed in percentage */
  257. } PACKED AMISetFanSpeedReq_T;
  258. typedef struct
  259. {
  260. INT8U CompletionCode;
  261. } PACKED AMISetFanSpeedRes_T;
  262. /**
  263. * @struct AMIGetLEDmodeReq_T
  264. * @brief AMI Get LED Mode command request structure
  265. **/
  266. typedef struct
  267. {
  268. INT8U devAddr; /* value from the "Device Slave Address" field in, */
  269. /* LED's Generic Device Locator record, in the SDR */
  270. INT8U led;
  271. INT8U ctrlrAddr; /* Its controller's address; value from the */
  272. /* "Device Access Address" field. Zero if the LED is */
  273. /* local. */
  274. INT8U hwInfo; /* the OEMField from the SDR record */
  275. INT8U force; /* TRUE - directly access the device, FALSE - go */
  276. /* thru its controller. Ignored if LED is local. */
  277. } PACKED AMIGetLEDmodeReq_T;
  278. /**
  279. * @struct AMIGetLEDmodeRes_T
  280. * @brief AMI Get LED Mode command response structure
  281. **/
  282. typedef struct
  283. {
  284. INT8U CompletionCode;
  285. INT8U mode;
  286. } PACKED AMIGetLEDmodeRes_T;
  287. /**
  288. * @struct AMISetLEDmodeReq_T
  289. * @brief AMI Set LED Mode command request structure
  290. **/
  291. typedef struct
  292. {
  293. INT8U devAddr; /* value from the "Device Slave Address" field in, */
  294. /* LED's Generic Device Locator record, in the SDR */
  295. INT8U led;
  296. INT8U ctrlrAddr; /* Its controller's address; value from the */
  297. /* "Device Access Address" field. Zero if the LED is */
  298. /* local. */
  299. INT8U hwInfo; /* the OEMField from the SDR record */
  300. INT8U mode;
  301. INT8U force; /* TRUE: directly access the device. FALSE: go thru */
  302. /* its controller. Ignored if LED is local. */
  303. INT8U role; /* This is used by BMC, for authorization purposes */
  304. } PACKED AMISetLEDmodeReq_T;
  305. /**
  306. * @struct AMISetLEDmodeRes_T
  307. * @brief AMI Set LED Mode command response structure
  308. **/
  309. typedef struct
  310. {
  311. INT8U CompletionCode;
  312. } PACKED AMISetLEDmodeRes_T;
  313. #define FRUDATA_MAX_SIZE 0x80 /* 128 bytes */
  314. #define FRUDATA_TYPE_DIMM 0x00
  315. #define FRUDATA_TYPE_CPU 0x01
  316. #define FRUDATA_TYPE_BIOS 0x02
  317. /**
  318. * @struct FRUData_DIMM_T
  319. * @brief FRU Data for DIMM SPD information sent from BIOS in two blocks
  320. **/
  321. typedef struct
  322. {
  323. INT8U SPDData[128]; /* 128 bytes */
  324. } PACKED FRUData_DIMM_T; /* 128 bytes total */
  325. /**
  326. * @struct FRUData_CPU_T
  327. * @brief FRU Data for Processor information sent from BIOS
  328. **/
  329. typedef struct
  330. {
  331. uint32 ThermTrip;
  332. uint32 cpuid1_eax;
  333. uint32 cpuid_product_name[12];
  334. } PACKED FRUData_CPU_T; /* 56 bytes total */
  335. /**
  336. * @struct FRUData_BIOS_T
  337. * @brief FRU Data for BIOS information sent from BIOS
  338. **/
  339. typedef struct
  340. {
  341. INT8U PartNumber[16]; /* 16 bytes */
  342. INT8U PartVersion[16]; /* 16 bytes */
  343. } PACKED FRUData_BIOS_T; /* 32 bytes total */
  344. /**
  345. * @struct AMITransferFRUDataReq_T
  346. * @brief OEM request for transferring FRU data from BIOS
  347. */
  348. typedef struct
  349. {
  350. INT8U Type; /* identifier for this FRU data */
  351. INT8U Number; /* identifier for different datas of same type */
  352. INT8U DataLen; /* length of data block */
  353. INT8U Data[FRUDATA_MAX_SIZE]; /* data of data */
  354. } PACKED AMITransferFRUDataReq_T;
  355. /**
  356. * @struct AMITransferFRUDataRes_T
  357. * @brief OEM response for transferring FRU data from BIOS
  358. */
  359. typedef struct
  360. {
  361. INT8U CompletionCode;
  362. } PACKED AMITransferFRUDataRes_T;
  363. /**
  364. * @struct YafuHeader
  365. * @brief Flash info structure
  366. */
  367. typedef struct
  368. {
  369. uint32 Seqnum;
  370. INT16U YafuCmd;
  371. INT16U Datalen;
  372. uint32 CRC32chksum;
  373. } PACKED YafuHeader;
  374. /**
  375. * @struct AMIYAFUNotAck
  376. * @brief Flash info structure
  377. */
  378. typedef struct
  379. {
  380. INT8U CompletionCode;
  381. YafuHeader NotAck;
  382. INT16U ErrorCode;
  383. }PACKED AMIYAFUNotAck;
  384. /**
  385. * @struct ALT_FMH
  386. * @brief Flash info structure
  387. */
  388. typedef struct
  389. {
  390. INT16U EndSignature;
  391. INT8U HeaderChkSum;
  392. INT8U Reserved;
  393. uint32 LinkAddress;
  394. INT8U Signature[8];
  395. } PACKED ALT_FMHead;
  396. /**
  397. * @struct FMH
  398. * @brief Flash info structure
  399. */
  400. typedef struct
  401. {
  402. INT8U FmhSignature[8];
  403. union
  404. {
  405. INT16U FwVersion;
  406. INT8U FwMinorVer;
  407. INT8U FwMajorVer;
  408. } PACKED Fmh_Version;
  409. INT16U FmhSize;
  410. uint32 AllocatedSize;
  411. uint32 FmhLocation;
  412. INT8U FmhReserved[3];
  413. INT8U HeaderChecksum;
  414. INT8U ModuleName[8];
  415. union
  416. {
  417. INT16U ModVersion;
  418. INT8U ModMinorVer;
  419. INT8U ModMajorVer;
  420. }PACKED Module_Version;
  421. INT16U ModuleType;
  422. uint32 ModuleLocation;
  423. uint32 ModuleSize;
  424. INT16U ModuleFlags;
  425. uint32 ModuleLoadAddress;
  426. uint32 ModuleChecksum;
  427. INT8U ModuleAuxVer[2];
  428. INT8U ModuleReserved[6];
  429. INT16U EndSignature;
  430. }PACKED FlashMH;
  431. /**
  432. * @struct AMIYAFUGetFlashInfoReq_T
  433. * @brief Flash info structure
  434. */
  435. typedef struct
  436. {
  437. YafuHeader FlashInfoReq;
  438. } PACKED AMIYAFUGetFlashInfoReq_T;
  439. typedef struct
  440. {
  441. uint32 FlashSize;
  442. uint32 FlashAddress;
  443. uint32 FlashEraseBlkSize;
  444. INT16U FlashProductID;
  445. INT8U FlashWidth;
  446. INT8U FMHCompliance;
  447. INT16U Reserved;
  448. INT16U NoEraseBlks;
  449. }PACKED FlashDetails;
  450. /**
  451. * @struct AMIYAFUGetFlashInfoRes_T
  452. * @brief Flash info structure
  453. */
  454. typedef struct
  455. {
  456. INT8U CompletionCode;
  457. YafuHeader FlashInfoRes;
  458. FlashDetails FlashInfo;
  459. } PACKED AMIYAFUGetFlashInfoRes_T;
  460. /**
  461. * @struct AMIYAFUGetFirmwareInfoReq_T
  462. * @brief Flash info structure
  463. */
  464. typedef struct
  465. {
  466. YafuHeader FirmwareinfoReq;
  467. } PACKED AMIYAFUGetFirmwareInfoReq_T;
  468. /**
  469. * @struct FirmInfo
  470. * @brief Flash info structure
  471. */
  472. typedef struct
  473. {
  474. INT8U FirmMajVersion;
  475. INT8U FirmMinVersion;
  476. INT16U FirmAuxVersion;
  477. uint32 FirmBuildNum;
  478. uint32 Reserved;
  479. INT8U FirmwareName[8];
  480. uint32 FirmwareSize;
  481. uint32 ProductID;
  482. } PACKED FirmInfo;
  483. /**
  484. * @struct AMIYAFUGetFirmwareInfoRes_T
  485. * @brief Flash info structure
  486. */
  487. typedef struct
  488. {
  489. INT8U CompletionCode;
  490. YafuHeader FirmwareinfoRes;
  491. FirmInfo FirmwareInfo;
  492. } PACKED AMIYAFUGetFirmwareInfoRes_T;
  493. /**
  494. * @struct AMIYAFUGetFMHInfoRes_T
  495. * @brief Flash info structure
  496. */
  497. typedef struct
  498. {
  499. YafuHeader FMHReq;
  500. } PACKED AMIYAFUGetFMHInfoReq_T;
  501. /**
  502. * @struct AMIYAFUGetFMHInfoRes_T
  503. * @brief Flash info structure
  504. */
  505. typedef struct
  506. {
  507. INT8U CompletionCode;
  508. YafuHeader FMHRes;
  509. INT16U Reserved;
  510. INT16U NumFMH;
  511. } PACKED AMIYAFUGetFMHInfoRes_T;
  512. /**
  513. * @struct AMIYAFUGetStatusReq_T
  514. * @brief Flash info structure
  515. */
  516. typedef struct
  517. {
  518. YafuHeader GetStatusReq;
  519. } PACKED AMIYAFUGetStatusReq_T;
  520. /**
  521. * @struct AMIYAFUGetStatusRes_T
  522. * @brief Flash info structure
  523. */
  524. typedef struct
  525. {
  526. INT8U CompletionCode;
  527. YafuHeader GetStatusRes;
  528. INT16U LastStatusCode;
  529. INT16U YAFUState;
  530. INT16U Mode;
  531. INT16U Reserved;
  532. INT8U Message[65];
  533. } PACKED AMIYAFUGetStatusRes_T;
  534. /**
  535. * @struct AMIYAFUActivateFlashModeReq_T
  536. * @brief Flash info structure
  537. */
  538. typedef struct
  539. {
  540. YafuHeader ActivateflashReq;
  541. INT16U Mode;
  542. } PACKED AMIYAFUActivateFlashModeReq_T;
  543. /**
  544. * @struct AMIYAFUGetStatusRes_T
  545. * @brief Flash info structure
  546. */
  547. typedef struct
  548. {
  549. INT8U CompletionCode;
  550. YafuHeader ActivateflashRes;
  551. INT8U Delay;
  552. }PACKED AMIYAFUActivateFlashModeRes_T;
  553. /**
  554. *@struct AMIYAFUDualImgSupReq_T
  555. *@brief Dual Image Support Structure
  556. **/
  557. typedef struct
  558. {
  559. YafuHeader DualImgSupReq;
  560. INT8U PreserveConf;
  561. INT8U Reserved1;
  562. INT8U Reserved2;
  563. INT8U Reserved3;
  564. }PACKED AMIYAFUDualImgSupReq_T;
  565. /**
  566. *@struct AMIYAFUDualImgSupRes_T
  567. *@brief Dual Image Support Structure
  568. **/
  569. typedef struct
  570. {
  571. INT8U CompletionCode;
  572. YafuHeader DualImgSupRes;
  573. }PACKED AMIYAFUDualImgSupRes_T;
  574. typedef struct
  575. {
  576. YafuHeader fwselectflashReq;
  577. INT8U fwselect;
  578. } PACKED AMIYAFUFWSelectFlashModeReq_T;
  579. typedef struct
  580. {
  581. INT8U CompletionCode;
  582. YafuHeader fwselectflashRes;
  583. }PACKED AMIYAFUFWSelectFlashModeRes_T;
  584. /**
  585. * @struct AMIYAFUAllocateMemoryReq_T
  586. * @brief Flash info structure
  587. */
  588. typedef struct
  589. {
  590. YafuHeader AllocmemReq;
  591. uint32 Sizeofmemtoalloc;
  592. } PACKED AMIYAFUAllocateMemoryReq_T;
  593. /**
  594. * @struct AMIYAFUAllocateMemoryRes_T
  595. * @brief Flash info structure
  596. */
  597. typedef struct
  598. {
  599. INT8U CompletionCode;
  600. YafuHeader AllocmemRes;
  601. uint32 Addofallocmem;
  602. }PACKED AMIYAFUAllocateMemoryRes_T;
  603. /**
  604. * @struct AMIYAFUFreeMemoryReq_T
  605. * @brief Flash info structure
  606. */
  607. typedef struct
  608. {
  609. YafuHeader FreememReq;
  610. uint32 AddrtobeFreed;
  611. } PACKED AMIYAFUFreeMemoryReq_T;
  612. /**
  613. * @struct AMIYAFUFreeMemoryRes_T
  614. * @brief Flash info structure
  615. */
  616. typedef struct
  617. {
  618. INT8U CompletionCode;
  619. YafuHeader FreememRes;
  620. INT8U Status;
  621. }PACKED AMIYAFUFreeMemoryRes_T;
  622. /**
  623. * @struct AMIYAFUReadFlashReq_T
  624. * @brief Flash info structure
  625. */
  626. typedef struct
  627. {
  628. YafuHeader ReadFlashReq;
  629. uint32 offsettoread;
  630. INT8U Readwidth;
  631. uint32 Sizetoread;
  632. } PACKED AMIYAFUReadFlashReq_T;
  633. /**
  634. * @struct AMIYAFUReadFlashRes_T
  635. * @brief Flash info structure
  636. */
  637. typedef struct
  638. {
  639. INT8U CompletionCode;
  640. YafuHeader ReadFlashRes;
  641. //INT8U FlashContent[0x4000];
  642. }PACKED AMIYAFUReadFlashRes_T;
  643. /**
  644. * @struct AMIYAFUWriteFlashReq_T
  645. * @brief Flash info structure
  646. */
  647. typedef struct
  648. {
  649. YafuHeader WriteFlashReq;
  650. uint32 offsettowrite;
  651. INT8U Writewidth;
  652. //INT8U Buffer[0x4000];
  653. } PACKED AMIYAFUWriteFlashReq_T;
  654. /**
  655. * @struct AMIYAFUWriteFlashRes_T
  656. * @brief Flash info structure
  657. */
  658. typedef struct
  659. {
  660. INT8U CompletionCode;
  661. YafuHeader WriteFlashRes;
  662. INT16U SizeWritten;
  663. }PACKED AMIYAFUWriteFlashRes_T;
  664. /**
  665. * @struct AMIYAFUErashFlashReq_T
  666. * @brief Flash info structure
  667. */
  668. typedef struct
  669. {
  670. YafuHeader EraseFlashReq;
  671. uint32 Blknumtoerase;
  672. } PACKED AMIYAFUErashFlashReq_T;
  673. /**
  674. * @struct AMIYAFUErashFlashRes_T
  675. * @brief Flash info structure
  676. */
  677. typedef struct
  678. {
  679. INT8U CompletionCode;
  680. YafuHeader EraseFlashRes;
  681. INT8U Status;
  682. }PACKED AMIYAFUErashFlashRes_T;
  683. /**
  684. * @struct AMIYAFUProtectFlashReq_T
  685. * @brief Flash info structure
  686. */
  687. typedef struct
  688. {
  689. YafuHeader ProtectFlashReq;
  690. uint32 Blknum;
  691. INT8U Protect;
  692. } PACKED AMIYAFUProtectFlashReq_T;
  693. /**
  694. * @struct AMIYAFUProtectFlashRes_T
  695. * @brief Flash info structure
  696. */
  697. typedef struct
  698. {
  699. INT8U CompletionCode;
  700. YafuHeader ProtectFlashRes;
  701. INT8U Status;
  702. }PACKED AMIYAFUProtectFlashRes_T;
  703. /**
  704. * @struct AMIYAFUEraseCopyFlashReq_T
  705. * @brief Flash info structure
  706. */
  707. typedef struct
  708. {
  709. YafuHeader EraseCpyFlashReq;
  710. uint32 Memoffset;
  711. uint32 Flashoffset;
  712. uint32 Sizetocopy;
  713. } PACKED AMIYAFUEraseCopyFlashReq_T;
  714. /**
  715. * @struct AMIYAFUEraseCopyFlashRes_T
  716. * @brief Flash info structure
  717. */
  718. typedef struct
  719. {
  720. INT8U CompletionCode;
  721. YafuHeader EraseCpyFlashRes;
  722. uint32 Sizecopied;
  723. }PACKED AMIYAFUEraseCopyFlashRes_T;
  724. /**
  725. * @struct AMIYAFUGetECFStatusReq_T
  726. * @brief Flash info structure
  727. */
  728. typedef struct
  729. {
  730. YafuHeader GetECFStatusReq;
  731. } PACKED AMIYAFUGetECFStatusReq_T;
  732. /**
  733. * @struct AMIYAFUGetECFStatusRes_T
  734. * @brief Flash info structure
  735. */
  736. typedef struct
  737. {
  738. INT8U CompletionCode;
  739. YafuHeader GetECFStatusRes;
  740. uint32 Status;
  741. INT16U Progress;
  742. }PACKED AMIYAFUGetECFStatusRes_T;
  743. /**
  744. * @struct AMIYAFUVerifyFlashReq_T
  745. * @brief Flash info structure
  746. */
  747. typedef struct
  748. {
  749. YafuHeader VerifyFlashReq;
  750. uint32 Memoffset;
  751. uint32 Flashoffset;
  752. uint32 Sizetoverify;
  753. } PACKED AMIYAFUVerifyFlashReq_T;
  754. /**
  755. * @struct AMIYAFUVerifyFlashRes_T
  756. * @brief Flash info structure
  757. */
  758. typedef struct
  759. {
  760. INT8U CompletionCode;
  761. YafuHeader VerifyFlashRes;
  762. uint32 Offset;
  763. }PACKED AMIYAFUVerifyFlashRes_T;
  764. /**
  765. * @struct AMIYAFUGetVerifyStatusReq_T
  766. * @brief Flash info structure
  767. */
  768. typedef struct
  769. {
  770. YafuHeader GetVerifyStatusReq;
  771. } PACKED AMIYAFUGetVerifyStatusReq_T;
  772. /**
  773. * @struct AMIYAFUGetVerifyStatusRes_T
  774. * @brief Flash info structure
  775. */
  776. typedef struct
  777. {
  778. INT8U CompletionCode;
  779. YafuHeader GetVerifyStatusRes;
  780. uint32 Status;
  781. uint32 Offset;
  782. INT16U Progress;
  783. }PACKED AMIYAFUGetVerifyStatusRes_T;
  784. /**
  785. * @struct AMIYAFUReadMemoryReq_T
  786. * @brief Flash info structure
  787. */
  788. typedef struct
  789. {
  790. YafuHeader ReadMemReq;
  791. uint32 Memoffset;
  792. INT8U ReadWidth;
  793. INT16U Sizetoread;
  794. } PACKED AMIYAFUReadMemoryReq_T;
  795. /**
  796. * @struct AMIYAFUReadMemoryRes_T
  797. * @brief Flash info structure
  798. */
  799. typedef struct
  800. {
  801. INT8U CompletionCode;
  802. YafuHeader ReadMemRes;
  803. }PACKED AMIYAFUReadMemoryRes_T;
  804. /**
  805. * @struct AMIYAFUWriteMemoryReq_T
  806. * @brief Flash info structure
  807. */
  808. typedef struct
  809. {
  810. YafuHeader WriteMemReq;
  811. uint32 Memoffset;
  812. INT8U WriteWidth;
  813. } PACKED AMIYAFUWriteMemoryReq_T;
  814. /**
  815. * @struct AMIYAFUWriteMemoryRes_T
  816. * @brief Flash info structure
  817. */
  818. typedef struct
  819. {
  820. INT8U CompletionCode;
  821. YafuHeader WriteMemRes;
  822. INT16U SizeWritten;
  823. }PACKED AMIYAFUWriteMemoryRes_T;
  824. /**
  825. * @struct AMIYAFUCopyMemoryReq_T
  826. * @brief Flash info structure
  827. */
  828. typedef struct
  829. {
  830. YafuHeader CopyMemReq;
  831. uint32 MemoffsetSrc;
  832. uint32 MemoffsetDest;
  833. uint32 Sizetocopy;
  834. } PACKED AMIYAFUCopyMemoryReq_T;
  835. /**
  836. * @struct AMIYAFUCopyMemoryRes_T
  837. * @brief Flash info structure
  838. */
  839. typedef struct
  840. {
  841. INT8U CompletionCode;
  842. YafuHeader CopyMemRes;
  843. uint32 Sizecopied;
  844. }PACKED AMIYAFUCopyMemoryRes_T;
  845. /**
  846. * @struct AMIYAFUCompareMemoryReq_T
  847. * @brief Flash info structure
  848. */
  849. typedef struct
  850. {
  851. YafuHeader CmpMemReq;
  852. uint32 Memoffset1;
  853. uint32 Memoffset2;
  854. uint32 SizetoCmp;
  855. } PACKED AMIYAFUCompareMemoryReq_T;
  856. /**
  857. * @struct AMIYAFUCompareMemoryRes_T
  858. * @brief Flash info structure
  859. */
  860. typedef struct
  861. {
  862. INT8U CompletionCode;
  863. YafuHeader CmpMemRes;
  864. uint32 Offset;
  865. }PACKED AMIYAFUCompareMemoryRes_T;
  866. /**
  867. * @struct AMIYAFUClearMemoryReq_T
  868. * @brief Flash info structure
  869. */
  870. typedef struct
  871. {
  872. YafuHeader ClearMemReq;
  873. uint32 MemofftoClear;
  874. uint32 SizetoClear;
  875. } PACKED AMIYAFUClearMemoryReq_T;
  876. /**
  877. * @struct AMIYAFUClearMemoryRes_T
  878. * @brief Flash info structure
  879. */
  880. typedef struct
  881. {
  882. INT8U CompletionCode;
  883. YafuHeader ClearMemRes;
  884. uint32 SizeCleared;
  885. }PACKED AMIYAFUClearMemoryRes_T;
  886. /**
  887. * @struct AMIYAFUGetBootConfigReq_T
  888. * @brief Flash info structure
  889. */
  890. typedef struct
  891. {
  892. YafuHeader GetBootReq;
  893. INT8U VarName[65];
  894. } PACKED AMIYAFUGetBootConfigReq_T;
  895. /**
  896. * @struct AMIYAFUGetBootConfigRes_T
  897. * @brief Flash info structure
  898. */
  899. typedef struct
  900. {
  901. INT8U CompletionCode;
  902. YafuHeader GetBootRes;
  903. INT8U Status;
  904. }PACKED AMIYAFUGetBootConfigRes_T;
  905. /**
  906. * @struct AMIYAFUSetBootConfigReq_T
  907. * @brief Flash info structure
  908. */
  909. typedef struct
  910. {
  911. YafuHeader SetBootReq;
  912. INT8U VarName[65];
  913. } PACKED AMIYAFUSetBootConfigReq_T;
  914. /**
  915. * @struct AMIYAFUSetBootConfigRes_T
  916. * @brief Flash info structure
  917. */
  918. typedef struct
  919. {
  920. INT8U CompletionCode;
  921. YafuHeader SetBootRes;
  922. INT8U Status;
  923. }PACKED AMIYAFUSetBootConfigRes_T;
  924. /**
  925. * @struct AMIYAFUGetBootVarsReq_T
  926. * @brief Flash info structure
  927. */
  928. typedef struct
  929. {
  930. YafuHeader GetBootReq;
  931. } PACKED AMIYAFUGetBootVarsReq_T;
  932. /**
  933. * @struct AMIYAFUGetBootVarsRes_T
  934. * @brief Flash info structure
  935. */
  936. typedef struct
  937. {
  938. INT8U CompletionCode;
  939. YafuHeader GetBootRes;
  940. INT8U VarCount;
  941. }PACKED AMIYAFUGetBootVarsRes_T;
  942. /**
  943. * @struct AMIYAFUDeactivateFlashReq_T
  944. * @brief Flash info structure
  945. */
  946. typedef struct
  947. {
  948. YafuHeader DeactivateFlashReq;
  949. } PACKED AMIYAFUDeactivateFlashReq_T;
  950. /**
  951. * @struct AMIYAFUDeactivateFlashRes_T
  952. * @brief Flash info structure
  953. */
  954. typedef struct
  955. {
  956. INT8U CompletionCode;
  957. YafuHeader DeactivateFlashRes;
  958. INT8U Status;
  959. }PACKED AMIYAFUDeactivateFlashRes_T;
  960. /**
  961. * @struct AMIYAFUResetDeviceReq_T
  962. * @brief Flash info structure
  963. */
  964. typedef struct
  965. {
  966. YafuHeader ResetReq;
  967. INT16U WaitSec;
  968. } PACKED AMIYAFUResetDeviceReq_T;
  969. typedef struct
  970. {
  971. INT8U MajVer;
  972. INT8U MinVer;
  973. }PACKED FwVersion;
  974. typedef union
  975. {
  976. INT8U SetBootSelector;
  977. INT8U GetBootSelector;
  978. INT8U SetUploadSelector;
  979. INT8U GetUploadSelector;
  980. INT8U SetRebootStatus;
  981. INT8U GetRebootStatus;
  982. INT8U GetCurActiveImg;
  983. FwVersion GetFwVersion;
  984. }DualImageOpt_T;
  985. typedef struct
  986. {
  987. INT8U Parameter;
  988. INT8U BootSelector;
  989. }PACKED AMIDualImageSupReq_T;
  990. typedef struct
  991. {
  992. INT8U CompletionCode;
  993. DualImageOpt_T BootSelOpt;
  994. }PACKED AMIDualImageSupRes_T;
  995. /**
  996. * @struct AMIYAFUResetDeviceRes_T
  997. * @brief Flash info structure
  998. */
  999. typedef struct
  1000. {
  1001. INT8U CompletionCode;
  1002. YafuHeader ResetRes;
  1003. INT8U Status;
  1004. }PACKED AMIYAFUResetDeviceRes_T;
  1005. /**
  1006. * @struct AMIGetFruDetailReq_T
  1007. * @brief FRU request info structure
  1008. */
  1009. typedef struct
  1010. {
  1011. INT8U FruReq;
  1012. }PACKED AMIGetFruDetailReq_T;
  1013. /**
  1014. * @struct AMIGetFruDetailRes_T
  1015. * @brief FRU response info structure
  1016. */
  1017. typedef struct
  1018. {
  1019. INT8U CompletionCode;
  1020. INT8U TotalFru;
  1021. INT8U DeviceNo;
  1022. INT8U FRUName[MAX_ID_STR_LEN];
  1023. }PACKED AMIGetFruDetailRes_T;
  1024. /**
  1025. * @struct AMIGetRootUserAccessRes_T
  1026. * @brief Get Linux Root user access response info structure
  1027. */
  1028. typedef struct
  1029. {
  1030. INT8U CompletionCode;
  1031. INT8U CurrentUserIDState;
  1032. } PACKED AMIGetRootUserAccessRes_T;
  1033. /**
  1034. * @struct AMISetRootPasswordReq_T
  1035. * @brief Set Root user password request info structure
  1036. */
  1037. typedef struct
  1038. {
  1039. INT8U Operation;
  1040. INT8U Password[MAX_LINUX_ROOT_USER_PASSWORD_LEN + 1];
  1041. }PACKED AMISetRootPasswordReq_T;
  1042. /**
  1043. * @struct AMISetRootPasswordRes_T
  1044. * @brief set Root user password response info structure
  1045. */
  1046. typedef struct
  1047. {
  1048. INT8U CompletionCode;
  1049. }PACKED AMISetRootPasswordRes_T;
  1050. /**
  1051. * @struct AMIGetUserShelltypeReq_T
  1052. * @brief get user shelltype structure
  1053. */
  1054. typedef struct
  1055. {
  1056. INT8U UserID;
  1057. }PACKED AMIGetUserShelltypeReq_T;
  1058. /**
  1059. * @struct AMIGetUserShelltypeRes_T
  1060. * @brief get user shelltype structure
  1061. */
  1062. typedef struct
  1063. {
  1064. INT8U CompletionCode;
  1065. INT8U Shelltype;
  1066. }PACKED AMIGetUserShelltypeRes_T;
  1067. /**
  1068. * @struct AMISetUserShelltypeReq_T
  1069. * @brief set user shelltype structure
  1070. */
  1071. typedef struct
  1072. {
  1073. INT8U UserID;
  1074. INT8U Shelltype;
  1075. }PACKED AMISetUserShelltypeReq_T;
  1076. /**
  1077. * @struct AMISetUserShelltypeRes_T
  1078. * @brief set user shelltype structure
  1079. */
  1080. typedef struct
  1081. {
  1082. INT8U CompletionCode;
  1083. }PACKED AMISetUserShelltypeRes_T;
  1084. /**
  1085. * @struct AMITriggerEventDataUn_T
  1086. * @brief Trigger Event Data Structure
  1087. */
  1088. typedef union
  1089. {
  1090. INT32U Time;
  1091. }PACKED AMITriggerEventDataUn_T;
  1092. /**
  1093. * @struct AMISetTriggerEventReq_T
  1094. * @brief Set Trigger Event Request Structure
  1095. */
  1096. typedef struct
  1097. {
  1098. INT8U TriggerParam;
  1099. INT8U EnableDisableFlag;
  1100. AMITriggerEventDataUn_T TriggerData;
  1101. }PACKED AMISetTriggerEventReq_T;
  1102. /**
  1103. * @struct AMISetTriggerEventRes_T
  1104. * @brief Set Trigger Event Response Structure
  1105. */
  1106. typedef struct
  1107. {
  1108. INT8U CompletionCode;
  1109. }PACKED AMISetTriggerEventRes_T;
  1110. /**
  1111. * @struct AMIGetTriggerEventReq_T
  1112. * @brief Get Trigger Event Request Structure
  1113. */
  1114. typedef struct
  1115. {
  1116. INT8U TriggerParam;
  1117. }PACKED AMIGetTriggerEventReq_T;
  1118. /**
  1119. * @struct AMIGetTriggerEvent_T
  1120. * @brief Get Trigger Event Structure
  1121. */
  1122. typedef struct
  1123. {
  1124. INT8U CompletionCode;
  1125. INT8U EnableDisableFlag;
  1126. }PACKED AMIGetTriggerEvent_T;
  1127. /**
  1128. * @struct AMIGetTriggerEventRes_T
  1129. * @brief Get Trigger Event Response Structure
  1130. */
  1131. typedef struct
  1132. {
  1133. AMIGetTriggerEvent_T AMIGetTriggerEvent;
  1134. AMITriggerEventDataUn_T TriggerData;
  1135. }PACKED AMIGetTriggerEventRes_T;
  1136. /**
  1137. * @struct AMIGetLoginAuditCfgRes_T
  1138. * @brief Get login Audit configuration response structure
  1139. */
  1140. typedef struct
  1141. {
  1142. INT8U CompletionCode;
  1143. INT8U WebLogAuditCfg;
  1144. INT8U IPMILogAuditCfg;
  1145. INT8U TelnetLogAuditCfg;
  1146. INT8U SSHLogAuditCfg;
  1147. INT8U KVMLogAuditCfg;
  1148. }PACKED AMIGetLoginAuditCfgRes_T;
  1149. /**
  1150. * @struct AMISetLoginAuditCfgReq_T
  1151. * @brief Set login Audit configuration request structure
  1152. */
  1153. typedef struct
  1154. {
  1155. INT8U WebLogAuditCfg;
  1156. INT8U IPMILogAuditCfg;
  1157. INT8U TelnetLogAuditCfg;
  1158. INT8U SSHLogAuditCfg;
  1159. INT8U KVMLogAuditCfg;
  1160. }PACKED AMISetLoginAuditCfgReq_T;
  1161. /**
  1162. * @struct AMISetLoginAuditCfgRes_T
  1163. * @brief Set login Audit configuration response structure
  1164. */
  1165. typedef struct
  1166. {
  1167. INT8U CompletionCode;
  1168. }PACKED AMISetLoginAuditCfgRes_T;
  1169. /**
  1170. * @struct AMIGetIPv6AddrRes_T
  1171. * @brief Get IPv6 address request structure.
  1172. */
  1173. typedef struct
  1174. {
  1175. INT8U ChannelNum;
  1176. INT8U Index;
  1177. INT8U IPCnt;
  1178. }AMIGetIPv6AddrReq_T;
  1179. /**
  1180. * @struct AMIGetIPv6AddrRes_T
  1181. * @brief Get IPV6 address response structure.
  1182. */
  1183. typedef struct
  1184. {
  1185. INT8U CompletionCode;
  1186. unsigned char GlobalIPAddr[8][16]; //anyCast Globel address //UniCast Globel address
  1187. unsigned char GlobalPrefix[8];
  1188. }AMIGetIPv6AddrRes_T;
  1189. typedef struct
  1190. {
  1191. unsigned char GlobalIPAddr[16][16]; //anyCast Globel address //UniCast Globel address
  1192. unsigned char GlobalPrefix[16];
  1193. }GetIPv6AddrRes_T;
  1194. /**
  1195. * @struct AMIGetSOLConfRes_T
  1196. * @brief Get SOL Conf Response Structure
  1197. */
  1198. typedef struct
  1199. {
  1200. INT8U CompletionCode;
  1201. INT8U SolSessionTimeout;
  1202. char SolIfcPort[MAX_SOL_PORT_STR_LEN];
  1203. }PACKED AMIGetSOLConfRes_T;
  1204. /**
  1205. * @struct AMISetPamReq_T
  1206. * @brief Set PAM Order request structure
  1207. */
  1208. typedef struct
  1209. {
  1210. INT8U Sqnce[MODULES_TO_MODIFIED];
  1211. }AMISetPamReq_T;
  1212. /**
  1213. * @struct AMISetPamRes_T
  1214. * @brief Set PAM Order Response Structure
  1215. */
  1216. typedef struct
  1217. {
  1218. INT8U CompletionCode;
  1219. }AMISetPamRes_T;
  1220. /**
  1221. * @struct AMIGetPamRes_T
  1222. * @brief Get PAM Order Response Structure
  1223. */
  1224. typedef struct
  1225. {
  1226. INT8U CompletionCode;
  1227. INT8U Seqnce[MODULES_TO_MODIFIED];
  1228. }AMIGetPamRes_T;
  1229. /**
  1230. * @struct AMIYAFUSearchFlashInfoReq_T
  1231. * @brief Flash info structure based on node
  1232. **/
  1233. typedef struct
  1234. {
  1235. INT8U SPIDevice;
  1236. } PACKED AMIYAFUSwitchFlashDeviceReq_T;
  1237. /**
  1238. * @struct AMIYAFUSearchFlashInfoRes_T
  1239. * @brief Flash info structure based on node
  1240. **/
  1241. typedef struct
  1242. {
  1243. INT8U CompletionCode;
  1244. char MTDName[MTD_DEV_NAME_LEN];
  1245. FlashDetails FlashInfo;
  1246. } PACKED AMIYAFUSwitchFlashDeviceRes_T;
  1247. /**
  1248. * @struct AMIConfigTFTP_T
  1249. * @brief
  1250. */
  1251. typedef struct
  1252. {
  1253. INT8U Host[200];
  1254. INT8U RemoteFilePath[200];
  1255. INT8U Retry; //
  1256. }PACKED AMIConfigTFTP_T;
  1257. /**
  1258. * @struct AMIConfigFWUpdateSelect_T
  1259. * @brief
  1260. */
  1261. typedef struct
  1262. {
  1263. INT8U FWSelect;
  1264. }PACKED AMIConfigFWUpdateSelect_T;
  1265. /**
  1266. * @struct AMIStartFwUpdateReq_T
  1267. * @brief
  1268. */
  1269. typedef struct
  1270. {
  1271. INT8U PreserveCfg;
  1272. INT8U ResetBMC;
  1273. }PACKED AMIStartFwUpdateReq_T;
  1274. /**
  1275. * @struct AMIStartFwUpdateRes_T
  1276. * @brief
  1277. */
  1278. typedef struct
  1279. {
  1280. INT8U CompletionCode;
  1281. }PACKED AMIStartFwUpdateRes_T;
  1282. /**
  1283. * @struct AMIGetTftpProgressStatusRes_T
  1284. * @brief TFTP Flash Progress Status Info
  1285. */
  1286. typedef struct
  1287. {
  1288. INT8U CompletionCode;
  1289. INT8U Progress;
  1290. INT8U Overall;
  1291. }PACKED AMIGetTftpProgressStatusRes_T;
  1292. /**
  1293. * @struct AMISetFWCfgReq_T
  1294. * @brief
  1295. */
  1296. typedef struct
  1297. {
  1298. INT8U Parameter;
  1299. INT8U Data[200];
  1300. }PACKED AMISetFWCfgReq_T;
  1301. /**
  1302. * @struct AMISetFWCfgRes_T
  1303. * @brief
  1304. */
  1305. typedef struct
  1306. {
  1307. INT8U CompletionCode;
  1308. }PACKED AMISetFWCfgRes_T;
  1309. /**
  1310. * @struct AMIGetFWCfgReq_T
  1311. * @brief
  1312. */
  1313. typedef struct
  1314. {
  1315. INT8U Parameter;
  1316. }PACKED AMIGetFWCfgReq_T;
  1317. /**
  1318. * @struct AMIGetFWCfgRes_T
  1319. * @brief
  1320. */
  1321. typedef struct
  1322. {
  1323. INT8U CompletionCode;
  1324. INT8U Data[200];
  1325. }PACKED AMIGetFWCfgRes_T;
  1326. /**
  1327. * @struct AMISetFWProtocolReq_T
  1328. * @brief
  1329. */
  1330. typedef struct
  1331. {
  1332. INT8U ProtocolType;
  1333. }PACKED AMISetFWProtocolReq_T;
  1334. /**
  1335. * @struct AMISetFWProtocolRes_T
  1336. * @brief
  1337. */
  1338. typedef struct
  1339. {
  1340. INT8U CompletionCode;
  1341. }PACKED AMISetFWProtocolRes_T;
  1342. /**
  1343. * @struct AMIGetFWProtocolRes_T
  1344. * @brief
  1345. */
  1346. typedef struct
  1347. {
  1348. INT8U CompletionCode;
  1349. INT8U ProtocolType;
  1350. }PACKED AMIGetFWProtocolRes_T;
  1351. /**
  1352. * @struct AMISetPwdEncKeyReq_T
  1353. * @brief
  1354. */
  1355. typedef struct
  1356. {
  1357. INT8U PwdEncryptKey[MAX_SIZE_KEY];
  1358. } PACKED AMISetPwdEncKeyReq_T;
  1359. /**
  1360. * @struct AMISetPwdEncKeyRes_T
  1361. * @brief
  1362. */
  1363. typedef struct
  1364. {
  1365. INT8U CompletionCode;
  1366. } PACKED AMISetPwdEncKeyRes_T;
  1367. /**
  1368. * @struct AMISetUBootMemtestReq_T
  1369. * @brief
  1370. */
  1371. typedef struct
  1372. {
  1373. INT8U EnableMemoryTest;
  1374. } PACKED AMISetUBootMemtestReq_T;
  1375. /**
  1376. * @struct AMISetUBootMemtestRes_T
  1377. * @brief
  1378. */
  1379. typedef struct
  1380. {
  1381. INT8U CompletionCode;
  1382. } PACKED AMISetUBootMemtestRes_T;
  1383. /**
  1384. * @struct AMIGetUBootMemtestStatusRes_T
  1385. * @brief
  1386. */
  1387. typedef struct
  1388. {
  1389. INT8U CompletionCode;
  1390. INT8U MemtestStatus;
  1391. INT8U IsMemtestEnable;
  1392. } PACKED AMIGetUBootMemtestStatusRes_T;
  1393. /*Structure is used to set the time zone */
  1394. typedef struct
  1395. {
  1396. INT8U ZoneName [TIME_ZONE_LEN];
  1397. }PACKED AMISetTimeZone_T;
  1398. /*Structure is used to get the time zone */
  1399. typedef struct
  1400. {
  1401. INT8U CompletionCode;
  1402. INT8U ZoneName [TIME_ZONE_LEN];
  1403. }PACKED AMIGetTimeZone_T;
  1404. /*MACROS and structures for get/set NTP server configs*/
  1405. #define MAX_SERVER_LEN 128
  1406. #define MAX_STATUS_LEN 8
  1407. #define PARAM_SERVER_PRIM 1
  1408. #define PARAM_SERVER_SEC 2
  1409. #define PARAM_STATUS 3
  1410. #define AUTO 0x1
  1411. #define MANUAL 0x0
  1412. #define FAIL 0x2
  1413. typedef struct
  1414. {
  1415. INT8U CompletionCode;
  1416. INT8U Status;
  1417. INT8U PrimServer[MAX_SERVER_LEN];
  1418. INT8U SecServer[MAX_SERVER_LEN];
  1419. }PACKED AMIGetNTPCfgRes_T;
  1420. typedef union
  1421. {
  1422. INT8U Status;
  1423. INT8U Server[MAX_SERVER_LEN];
  1424. } NTPConfUn_T;
  1425. typedef struct
  1426. {
  1427. INT8U param;
  1428. NTPConfUn_T ntpconf;
  1429. }PACKED AMISetNTPCfgReq_T;
  1430. typedef struct
  1431. {
  1432. INT8U CompletionCode;
  1433. }PACKED AMISetNTPCfgRes_T;
  1434. typedef struct
  1435. {
  1436. INT8U PubKey[MAX_PERMITTED_KEY_SIZE];
  1437. }PACKED AMIYafuSignedImageKeyReq_T;
  1438. typedef struct
  1439. {
  1440. INT8U CompletionCode;
  1441. }PACKED AMIYafuSignedImageKeyRes_T;
  1442. typedef struct
  1443. {
  1444. INT8U Status;
  1445. }PACKED AMIVirtualDeviceSetStatusReq_T;
  1446. typedef struct
  1447. {
  1448. INT8U CompletionCode;
  1449. }PACKED AMIVirtualDeviceSetStatusRes_T;
  1450. typedef struct
  1451. {
  1452. INT8U CompletionCode;
  1453. INT8U Status;
  1454. }PACKED AMIVirtualDeviceGetStatusRes_T;
  1455. typedef struct
  1456. {
  1457. INT8U LicenseKey[MAX_LIC_KEY_LEN];
  1458. }PACKED AMIAddLicenseKeyReq_T;
  1459. typedef struct
  1460. {
  1461. INT8U CompletionCode;
  1462. }PACKED AMIAddLicenseKeyRes_T;
  1463. typedef struct
  1464. {
  1465. INT8U FeatureName[APPCODE_LEN];
  1466. INT8U Validity;
  1467. }PACKED LicenseInfo_T;
  1468. typedef struct
  1469. {
  1470. INT8U CompletionCode;
  1471. INT8U NumOfFeatures;
  1472. LicenseInfo_T Lic_Info[MAX_LIC_APP];
  1473. }PACKED AMIGetLicenseValidityRes_T;
  1474. #pragma pack()
  1475. #endif /* IPMI_AMI_H */