cmdselect.c 31 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631
  1. /******************************************************************
  2. ******************************************************************
  3. *** **
  4. *** (C)Copyright 2011, American Megatrends Inc. **
  5. *** **
  6. *** All Rights Reserved. **
  7. *** **
  8. *** 5555 , Oakbrook Pkwy, Norcross, **
  9. *** **
  10. *** Georgia - 30093, USA. Phone-(770)-246-8600. **
  11. *** **
  12. ******************************************************************
  13. ******************************************************************
  14. ******************************************************************
  15. *
  16. * cmdselect.c
  17. * OEM can enable or disable IPMI Command accoring to requirements
  18. *
  19. * Author: Winston <winstonv@amiindia.co.in>
  20. ******************************************************************/
  21. #include "Types.h"
  22. //#include "Debug.h"
  23. #include "IPMI_App.h"
  24. #include "IPMI_Chassis.h"
  25. #include "IPMI_Bridge.h"
  26. #include "IPMI_SensorEvent.h"
  27. #include "IPMI_Storage.h"
  28. #include "IPMI_DeviceConfig.h"
  29. #include "IPMI_AMI.h"
  30. #include "IPMIDefs.h"
  31. //#include "IPMI_OPMA.h"
  32. //#include "Apml.h"
  33. //#include "Pnm.h"
  34. //#include "IPMI_GroupExtn.h"
  35. #include "cmdselect.h"
  36. //#include "IPMIConf.h"
  37. #include "IPMI_Oem.h"
  38. #include "bmc_main.h"
  39. const NetFnCmds_T g_App [] =
  40. {
  41. /* IPM Device Commands */
  42. {CMD_GET_DEV_ID , ENABLED},
  43. {CMD_BROADCAST_GET_DEV_ID ,DISABLED},
  44. {CMD_COLD_RESET ,ENABLED},
  45. {CMD_WARM_RESET ,ENABLED},
  46. {CMD_GET_SELF_TEST_RESULTS ,ENABLED},
  47. {CMD_MFG_TEST_ON ,ENABLED},
  48. {CMD_SET_ACPI_PWR_STATE ,ENABLED},
  49. {CMD_GET_ACPI_PWR_STATE ,ENABLED},
  50. {CMD_GET_DEV_GUID ,ENABLED},
  51. {CMD_GET_NETFN_SUP ,ENABLED},
  52. {CMD_GET_CMD_SUP ,ENABLED},
  53. {CMD_GET_SUBFN_SUP ,DISABLED},
  54. {CMD_GET_CONFIG_CMDS ,ENABLED},
  55. {CMD_GET_CONFIG_SUB_FNS ,DISABLED},
  56. {CMD_SET_CMD_ENABLES ,ENABLED},
  57. {CMD_GET_CMD_ENABLES ,ENABLED},
  58. {CMD_SET_SUBFN_ENABLES ,DISABLED},
  59. {CMD_GET_SUBFN_ENABLES ,DISABLED},
  60. {CMD_GET_OEM_NETFN_IANA_SUPPORT ,ENABLED},
  61. /* WatchDog Timer Commands */
  62. {CMD_RESET_WDT ,ENABLED},
  63. {CMD_SET_WDT ,ENABLED},
  64. {CMD_GET_WDT ,ENABLED},
  65. /* BMC Device and Messaging Commands */
  66. { CMD_SET_BMC_GBL_ENABLES ,ENABLED},
  67. { CMD_GET_BMC_GBL_ENABLES ,ENABLED},
  68. { CMD_CLR_MSG_FLAGS ,ENABLED},
  69. { CMD_GET_MSG_FLAGS ,ENABLED},
  70. { CMD_ENBL_MSG_CH_RCV ,ENABLED},
  71. { CMD_GET_MSG ,ENABLED},
  72. { CMD_SEND_MSG ,ENABLED},
  73. { CMD_READ_EVT_MSG_BUFFER ,ENABLED},
  74. { CMD_GET_BTIFC_CAP ,ENABLED},
  75. { CMD_GET_SYSTEM_GUID ,ENABLED},
  76. { CMD_GET_CH_AUTH_CAP ,ENABLED},
  77. { CMD_GET_SESSION_CHALLENGE ,ENABLED},
  78. { CMD_ACTIVATE_SESSION ,ENABLED},
  79. { CMD_SET_SESSION_PRIV_LEVEL ,ENABLED},
  80. { CMD_CLOSE_SESSION ,ENABLED},
  81. { CMD_GET_SESSION_INFO ,ENABLED},
  82. { CMD_GET_AUTH_CODE ,ENABLED},
  83. { CMD_SET_CH_ACCESS ,ENABLED},
  84. { CMD_GET_CH_ACCESS ,ENABLED},
  85. { CMD_GET_CH_INFO ,ENABLED},
  86. { CMD_SET_USER_ACCESS ,ENABLED},
  87. { CMD_GET_USER_ACCESS ,ENABLED},
  88. { CMD_SET_USER_NAME ,ENABLED},
  89. { CMD_GET_USER_NAME ,ENABLED},
  90. { CMD_SET_USER_PASSWORD ,ENABLED},
  91. { CMD_MASTER_WRITE_READ ,ENABLED},
  92. { CMD_SET_SYSTEM_INFO_PARAM ,ENABLED},
  93. { CMD_GET_SYSTEM_INFO_PARAM ,ENABLED},
  94. /*------------------------ IPMI 2.0 specific Commands ------------------*/
  95. // { CMD_ACTIVATE_PAYLOAD ,ENABLED},
  96. // { CMD_DEACTIVATE_PAYLOAD ,ENABLED},
  97. // { CMD_GET_PAYLD_ACT_STATUS ,ENABLED},
  98. // { CMD_GET_PAYLD_INST_INFO ,ENABLED},
  99. // { CMD_SET_USR_PAYLOAD_ACCESS ,ENABLED},
  100. // { CMD_GET_USR_PAYLOAD_ACCESS ,ENABLED},
  101. // { CMD_GET_CH_PAYLOAD_SUPPORT ,ENABLED},
  102. // { CMD_GET_CH_PAYLOAD_VER ,ENABLED},
  103. // { CMD_GET_CH_OEM_PAYLOAD_INFO ,ENABLED},
  104. // { CMD_GET_CH_CIPHER_SUITES ,ENABLED},
  105. // { CMD_SUS_RES_PAYLOAD_ENCRYPT ,ENABLED},
  106. // { CMD_SET_CH_SECURITY_KEYS ,ENABLED},
  107. // { CMD_GET_SYS_IFC_CAPS ,ENABLED},
  108. {0 ,0 },
  109. };
  110. const NetFnCmds_T g_Chassis [] =
  111. {
  112. /*--------------------- Chassis Commands ---------------------------------*/
  113. // { CMD_GET_CHASSIS_CAPABILITIES ,ENABLED},
  114. // { CMD_GET_CHASSIS_STATUS ,ENABLED},
  115. // { CMD_CHASSIS_CONTROL ,ENABLED},
  116. // { CMD_CHASSIS_RESET ,DISABLED},
  117. // { CMD_CHASSIS_IDENTIFY ,ENABLED},
  118. // { CMD_SET_CHASSIS_CAPABILITIES ,ENABLED},
  119. // { CMD_SET_POWER_RESTORE_POLICY ,ENABLED},
  120. // { CMD_GET_SYSTEM_RESTART_CAUSE ,ENABLED},
  121. // { CMD_SET_SYSTEM_BOOT_OPTIONS ,ENABLED},
  122. // { CMD_GET_SYSTEM_BOOT_OPTIONS ,ENABLED},
  123. // { CMD_GET_POH_COUNTER ,ENABLED},
  124. // { CMD_SET_FP_BTN_ENABLES ,ENABLED},
  125. // { CMD_SET_POWER_CYCLE_INTERVAL ,ENABLED},
  126. {0, 0 }
  127. };
  128. const NetFnCmds_T g_Bridge [] =
  129. {
  130. /*----------------------- Bridge Management Commands --------------------------------*/
  131. { CMD_GET_BRIDGE_STATE ,ENABLED},
  132. { CMD_SET_BRIDGE_STATE ,ENABLED},
  133. { CMD_GET_ICMB_ADDR ,ENABLED},
  134. { CMD_SET_ICMB_ADDR ,ENABLED},
  135. { CMD_SET_BRIDGE_PROXY_ADDR ,ENABLED},
  136. { CMD_GET_BRIDGE_STATISTICS ,ENABLED},
  137. { CMD_GET_ICMB_CAPABILITIES ,ENABLED},
  138. { CMD_CLEAR_BRIDGE_STATISTICS ,ENABLED},
  139. { CMD_GET_BRIDGE_PROXY_ADDR ,ENABLED},
  140. { CMD_GET_ICMB_CONNECTOR_INFO ,ENABLED},
  141. { CMD_GET_ICMB_CONNECTION_ID ,DISABLED},
  142. { CMD_SEND_ICMB_CONNECTION_ID ,DISABLED},
  143. /*---------------------- Bridge Discovery Commands -----------------------------------*/
  144. { CMD_PREPARE_FOR_DISCOVERY ,ENABLED},
  145. { CMD_GET_ADDRESSES ,ENABLED},
  146. { CMD_SET_DISCOVERED ,ENABLED},
  147. { CMD_GET_CHASSIS_DEVICE_ID ,ENABLED},
  148. { CMD_SET_CHASSIS_DEVICE_ID ,ENABLED},
  149. /*----------------------- Bridging Commands ------------------------------------------*/
  150. { CMD_BRIDGE_REQUEST ,ENABLED},
  151. { CMD_BRIDGE_MESSAGE ,ENABLED},
  152. /*---------------------- Bridge Event Commands ---------------------------------------*/
  153. { CMD_GET_EVENT_COUNT ,ENABLED},
  154. { CMD_SET_EVENT_DESTINATION ,ENABLED},
  155. { CMD_SET_EVENT_RECEPTION_STATE ,ENABLED},
  156. { CMD_SEND_ICMB_EVENT_MESSAGE ,ENABLED},
  157. { CMD_GET_EVENT_DESTINATION ,ENABLED},
  158. { CMD_GET_EVENT_RECEPTION_STATE ,ENABLED},
  159. { 0 ,0 }
  160. };
  161. const NetFnCmds_T g_Sensor [] =
  162. {
  163. { CMD_SET_EVENT_RECEIVER ,ENABLED},
  164. { CMD_GET_EVENT_RECEIVER ,ENABLED},
  165. { CMD_PLATFORM_EVENT ,ENABLED},
  166. { CMD_GET_PEF_CAPABILITIES ,ENABLED},
  167. { CMD_ARM_PEF_POSTPONE_TIMER ,ENABLED},
  168. { CMD_SET_PEF_CONFIG_PARAMS ,ENABLED},
  169. { CMD_GET_PEF_CONFIG_PARAMS ,ENABLED},
  170. { CMD_SET_LAST_PROCESSED_EVENT_ID ,ENABLED},
  171. { CMD_GET_LAST_PROCESSED_EVENT_ID ,ENABLED},
  172. { CMD_ALERT_IMMEDIATE ,ENABLED},
  173. { CMD_PET_ACKNOWLEDGE ,ENABLED},
  174. { CMD_GET_DEV_SDR_INFO ,ENABLED},
  175. { CMD_GET_DEV_SDR ,ENABLED},
  176. { CMD_RESERVE_DEV_SDR_REPOSITORY ,ENABLED},
  177. { CMD_GET_SENSOR_READING_FACTORS ,ENABLED},
  178. { CMD_SET_SENSOR_HYSTERISIS ,ENABLED},
  179. { CMD_GET_SENSOR_HYSTERISIS ,ENABLED},
  180. { CMD_SET_SENSOR_THRESHOLDS ,ENABLED},
  181. { CMD_GET_SENSOR_THRESHOLDS ,ENABLED},
  182. { CMD_SET_SENSOR_EVENT_ENABLE ,ENABLED},
  183. { CMD_GET_SENSOR_EVENT_ENABLE ,ENABLED},
  184. { CMD_REARM_SENSOR_EVENTS ,ENABLED},
  185. { CMD_GET_SENSOR_EVENT_STATUS ,ENABLED},
  186. { CMD_GET_SENSOR_READING ,ENABLED},
  187. { CMD_SET_SENSOR_TYPE ,ENABLED},
  188. { CMD_GET_SENSOR_TYPE ,ENABLED},
  189. { CMD_SET_SENSOR_READING ,ENABLED},
  190. {0, 0 }
  191. };
  192. const NetFnCmds_T g_Storage [] =
  193. {
  194. /*--------------------- FRU Device Commands ---------------------------------*/
  195. { CMD_FRU_INVENTORY_AREA_INFO ,ENABLED},
  196. { CMD_READ_FRU_DATA ,ENABLED},
  197. { CMD_WRITE_FRU_DATA ,ENABLED},
  198. /*--------------------- SDR Device Commands ---------------------------------*/
  199. { CMD_GET_SDR_REPOSITORY_INFO ,ENABLED},
  200. { CMD_GET_SDR_REPOSITORY_ALLOCATION_INFO ,ENABLED},
  201. { CMD_RESERVE_SDR_REPOSITORY ,ENABLED},
  202. { CMD_GET_SDR ,ENABLED},
  203. { CMD_ADD_SDR ,ENABLED},
  204. { CMD_PARTIAL_ADD_SDR ,ENABLED},
  205. { CMD_DELETE_SDR ,DISABLED},
  206. { CMD_CLEAR_SDR_REPOSITORY ,ENABLED},
  207. { CMD_GET_SDR_REPOSITORY_TIME ,ENABLED},
  208. { CMD_SET_SDR_REPOSITORY_TIME ,DISABLED},
  209. { CMD_ENTER_SDR_REPOSITORY_UPDATE_MODE ,DISABLED},
  210. { CMD_EXIT_SDR_REPOSITORY_UPDATE_MODE ,DISABLED},
  211. { CMD_RUN_INITIALIZATION_AGENT ,ENABLED},
  212. /*--------------------- SEL Device Commands ----------------------------------*/
  213. { CMD_GET_SEL_INFO ,ENABLED},
  214. { CMD_GET_SEL_ALLOCATION_INFO ,ENABLED},
  215. { CMD_RESERVE_SEL ,ENABLED},
  216. { CMD_GET_SEL_ENTRY ,ENABLED},
  217. { CMD_ADD_SEL_ENTRY ,ENABLED},
  218. { CMD_PARTIAL_ADD_SEL_ENTRY ,ENABLED},
  219. { CMD_DELETE_SEL_ENTRY ,ENABLED},
  220. { CMD_CLEAR_SEL ,ENABLED},
  221. { CMD_GET_SEL_TIME ,ENABLED},
  222. { CMD_SET_SEL_TIME ,ENABLED},
  223. { CMD_GET_AUXILIARY_LOG_STATUS ,DISABLED},
  224. { CMD_SET_AUXILIARY_LOG_STATUS ,DISABLED},
  225. { CMD_GET_SEL_TIME_UTC_OFFSET ,ENABLED},
  226. { CMD_SET_SEL_TIME_UTC_OFFSET ,ENABLED},
  227. { 0, 0 }
  228. };
  229. const NetFnCmds_T g_Transport [] =
  230. {
  231. /*------------------------- IPM Device Commands --------------------------------------*/
  232. { CMD_SET_LAN_CONFIGURATION_PARAMETERS ,ENABLED},
  233. { CMD_GET_LAN_CONFIGURATION_PARAMETERS ,ENABLED},
  234. { CMD_SUSPEND_BMC_ARPS ,ENABLED},
  235. { CMD_GET_IP_UDP_RMCP_STATISTICS ,DISABLED},
  236. /*--------------------- Serial/Modem Device Commands ---------------------------------*/
  237. { CMD_SET_SERIAL_MODEM_CONFIG ,ENABLED},
  238. { CMD_GET_SERIAL_MODEM_CONFIG ,ENABLED},
  239. { CMD_SET_SERIAL_MODEM_MUX ,ENABLED},
  240. { CMD_SERIAL_MODEM_CONNECTION_ACTIVITY ,DISABLED},
  241. { CMD_CALLBACK ,ENABLED},
  242. { CMD_SET_USER_CALLBACK_OPTION ,ENABLED},
  243. { CMD_GET_USER_CALLBACK_OPTION ,ENABLED},
  244. { CMD_GET_TAP_RES_CODES ,ENABLED},
  245. /*------------------------- Serial Over LAN Commands ---------------------------------*/
  246. { CMD_GET_SOL_CONFIGURATION ,ENABLED},
  247. { CMD_SET_SOL_CONFIGURATION ,ENABLED},
  248. { 0 ,0 }
  249. };
  250. const NetFnCmds_T g_AMI [] =
  251. {
  252. /* ---------------YAFU Commands -----------------------------*/
  253. // { CMD_AMI_YAFU_SWITCH_FLASH_DEVICE ,ENABLED},
  254. // { CMD_AMI_YAFU_RESTORE_FLASH_DEVICE ,ENABLED},
  255. // { CMD_AMI_YAFU_GET_FLASH_INFO ,ENABLED},
  256. // { CMD_AMI_YAFU_GET_FIRMWARE_INFO ,ENABLED},
  257. // { CMD_AMI_YAFU_GET_FMH_INFO ,ENABLED},
  258. // { CMD_AMI_YAFU_GET_STATUS ,ENABLED},
  259. // { CMD_AMI_YAFU_ACTIVATE_FLASH ,ENABLED},
  260. // { CMD_AMI_YAFU_ALLOCATE_MEMORY ,ENABLED},
  261. // { CMD_AMI_YAFU_FREE_MEMORY ,ENABLED},
  262. // { CMD_AMI_YAFU_READ_FLASH ,ENABLED},
  263. // { CMD_AMI_YAFU_WRITE_FLASH ,ENABLED},
  264. // { CMD_AMI_YAFU_ERASE_FLASH ,ENABLED},
  265. // { CMD_AMI_YAFU_PROTECT_FLASH ,ENABLED},
  266. // { CMD_AMI_YAFU_ERASE_COPY_FLASH ,ENABLED},
  267. // { CMD_AMI_YAFU_VERIFY_FLASH ,ENABLED},
  268. // { CMD_AMI_YAFU_READ_MEMORY ,ENABLED},
  269. // { CMD_AMI_YAFU_WRITE_MEMORY ,ENABLED},
  270. // { CMD_AMI_YAFU_COPY_MEMORY ,ENABLED},
  271. // { CMD_AMI_YAFU_COMPARE_MEMORY ,ENABLED},
  272. // { CMD_AMI_YAFU_CLEAR_MEMORY ,ENABLED},
  273. // { CMD_AMI_YAFU_GET_BOOT_CONFIG ,ENABLED},
  274. // { CMD_AMI_YAFU_SET_BOOT_CONFIG ,ENABLED},
  275. // { CMD_AMI_YAFU_GET_BOOT_VARS ,ENABLED},
  276. // { CMD_AMI_YAFU_DEACTIVATE_FLASH_MODE ,ENABLED},
  277. // { CMD_AMI_YAFU_RESET_DEVICE ,ENABLED},
  278. // { CMD_AMI_YAFU_GET_ECF_STATUS ,ENABLED},
  279. // { CMD_AMI_YAFU_GET_VERIFY_STATUS ,ENABLED},
  280. // { CMD_AMI_YAFU_DUAL_IMAGE_SUP ,ENABLED},
  281. // { CMD_AMI_GET_CHANNEL_NUM ,ENABLED},
  282. // { CMD_AMI_GET_ETH_INDEX ,ENABLED},
  283. // { CMD_AMI_YAFU_FIRMWARE_SELECT_FLASH ,ENABLED},
  284. // { CMD_AMI_YAFU_SIGNIMAGEKEY_REPLACE ,ENABLED},
  285. /*-------------------- AMI Smtp Commands -----------------------*/
  286. // { CMD_SET_SMTP_CONFIG_PARAMS ,ENABLED},
  287. // { CMD_GET_SMTP_CONFIG_PARAMS ,ENABLED},
  288. // { CMD_AMI_GET_EMAIL_USER ,ENABLED},
  289. // { CMD_AMI_SET_EMAIL_USER ,ENABLED},
  290. // { CMD_AMI_GET_EMAILFORMAT_USER ,ENABLED},
  291. // { CMD_AMI_SET_EMAILFORMAT_USER ,ENABLED},
  292. // { CMD_AMI_RESET_PASS ,ENABLED},
  293. // { CMD_AMI_RESTORE_DEF ,ENABLED},
  294. // { CMD_AMI_GET_LOG_CONF ,ENABLED},
  295. // { CMD_AMI_SET_LOG_CONF ,ENABLED},
  296. /*-------------------- AMI Get Bios Code Commands -----------------------------------------*/
  297. // { CMD_AMI_GET_BIOS_CODE ,ENABLED},
  298. /*-------------------- AMI SERVICE Commands -----------------------------------------*/
  299. // { CMD_AMI_GET_SERVICE_CONF ,ENABLED},
  300. // { CMD_AMI_SET_SERVICE_CONF ,ENABLED},
  301. // { CMD_AMI_LINK_DOWN_RESILENT ,ENABLED},
  302. /*-------------------- AMI DNS Commands -----------------------------------------*/
  303. // { CMD_AMI_GET_DNS_CONF ,ENABLED},
  304. // { CMD_AMI_SET_DNS_CONF ,ENABLED},
  305. /*-------------------- AMI Iface State Commands -----------------------------------------*/
  306. // { CMD_AMI_GET_IFACE_STATE ,ENABLED},
  307. // { CMD_AMI_SET_IFACE_STATE ,ENABLED},
  308. // { CMD_AMI_SET_FIREWALL ,ENABLED},
  309. // { CMD_AMI_GET_FIREWALL ,ENABLED},
  310. // { CMD_AMI_GET_FRU_DETAILS ,ENABLED},
  311. // { CMD_AMI_GET_ROOT_USER_ACCESS ,ENABLED},
  312. // { CMD_AMI_SET_ROOT_PASSWORD ,ENABLED},
  313. // { CMD_AMI_GET_USER_SHELLTYPE ,DISABLED},
  314. // { CMD_AMI_SET_USER_SHELLTYPE ,DISABLED},
  315. // { CMD_AMI_SET_EXTENDED_PRIV ,ENABLED},
  316. // { CMD_AMI_GET_EXTENDED_PRIV ,ENABLED},
  317. // { CMD_AMI_SET_TIMEZONE ,ENABLED},
  318. // { CMD_AMI_GET_TIMEZONE ,ENABLED},
  319. // { CMD_AMI_GET_NTP_CFG ,ENABLED},
  320. // { CMD_AMI_SET_NTP_CFG ,ENABLED},
  321. // { CMD_AMI_SET_TRIGGER_EVT ,ENABLED},
  322. // { CMD_AMI_GET_TRIGGER_EVT ,ENABLED},
  323. // { CMD_AMI_GET_SOL_CONFIG_PARAMS ,ENABLED},
  324. // { CMD_AMI_SET_LOGIN_AUDIT_CFG, ENABLED },
  325. // { CMD_AMI_GET_LOGIN_AUDIT_CFG, ENABLED },
  326. // { CMD_AMI_GET_IPV6_ADDRESS, ENABLED },
  327. // { CMD_AMI_SET_SNMP_CONF, ENABLED },
  328. // { CMD_AMI_GET_SNMP_CONF, ENABLED },
  329. // { CMD_AMI_SET_PAM_ORDER, ENABLED },
  330. // { CMD_AMI_GET_PAM_ORDER, ENABLED },
  331. // { CMD_AMI_GET_CHANNEL_TYPE, ENABLED },
  332. /*------------------------------ AMI SEL Commands ------------------------------*/
  333. // { CMD_AMI_GET_SEL_POLICY, ENABLED },
  334. // { CMD_AMI_SET_SEL_POLICY, ENABLED },
  335. // { CMD_AMI_SET_PRESERVE_CONF, ENABLED },
  336. // { CMD_AMI_GET_PRESERVE_CONF, ENABLED },
  337. // { CMD_AMI_GET_SEL_ENTIRES, ENABLED },
  338. // { CMD_AMI_GET_SENSOR_INFO, ENABLED },
  339. // { CMD_AMI_SET_ALL_PRESERVE_CONF, ENABLED },
  340. // { CMD_AMI_GET_ALL_PRESERVE_CONF, ENABLED },
  341. /*------------------------------- TFTP Firmware Update -------------------------*/
  342. // { CMD_AMI_START_TFTP_FW_UPDATE, ENABLED },
  343. // { CMD_AMI_GET_TFTP_FW_PROGRESS_STATUS, ENABLED },
  344. // { CMD_AMI_SET_FW_CONFIGURATION, ENABLED },
  345. // { CMD_AMI_GET_FW_CONFIGURATION, ENABLED },
  346. // { CMD_AMI_SET_FW_PROTOCOL, ENABLED },
  347. // { CMD_AMI_GET_FW_PROTOCOL, ENABLED },
  348. // { CMD_AMI_GET_IPMI_SESSION_TIMEOUT, ENABLED},
  349. /*------------------------------- UDS Channel Info Command ---------------------*/
  350. // { CMD_AMI_GET_UDS_CHANNEL_INFO, ENABLED },
  351. // { CMD_AMI_GET_UDS_SESSION_INFO, ENABLED },
  352. /*-------------------------------AMI Dual Image Support Command-----------------*/
  353. // { CMD_AMI_DUAL_IMG_SUPPORT, ENABLED },
  354. /*---------- Password Encryption Key--------- */
  355. // { CMD_AMI_SET_PWD_ENCRYPTION_KEY, ENABLED },
  356. /*-------------------------------U-Boot Memory Test-----------------------------*/
  357. // { CMD_AMI_SET_UBOOT_MEMTEST, ENABLED},
  358. // { CMD_AMI_GET_UBOOT_MEMTEST_STATUS, ENABLED},
  359. /*-------------------- AMI Remote Images serviceCommands ----------------------------*/
  360. // { CMD_AMI_GET_RIS_CONF ,ENABLED},
  361. // { CMD_AMI_SET_RIS_CONF ,ENABLED},
  362. // { CMD_AMI_RIS_START_STOP ,ENABLED},
  363. /*---------------------AMI Control Debug Messages Commands-----------------------*/
  364. // { CMD_AMI_CTL_DBG_MSG, ENABLED },
  365. // { CMD_AMI_GET_DBG_MSG_STATUS, ENABLED },
  366. // { CMD_AMI_VIRTUAL_DEVICE_SET_STATUS, ENABLED },
  367. // { CMD_AMI_VIRTUAL_DEVICE_GET_STATUS, ENABLED },
  368. // { CMD_AMI_GET_LICENSE_VALIDITY, ENABLED},
  369. // { CMD_AMI_ADD_LICENSE_KEY, ENABLED},
  370. {0 ,0 }
  371. };
  372. const NetFnCmds_T g_opma1 [] =
  373. {
  374. // { CMD_OPMA_SET_SENSOR_RD_OFFSET ,ENABLED},
  375. // { CMD_OPMA_GET_SENSOR_RD_OFFSET ,ENABLED},
  376. { 0 ,0 }
  377. };
  378. const NetFnCmds_T g_opma2 [] =
  379. {
  380. // { CMD_OPMA_SET_SYS_TYPE_ID ,ENABLED},
  381. // { CMD_OPMA_GET_SYS_TYPE_ID ,ENABLED},
  382. // { CMD_OPMA_GET_MCARD_CAP ,ENABLED},
  383. // { CMD_OPMA_CLR_CMOS ,ENABLED},
  384. // { CMD_OPMA_SET_LOCAL_LOCKOUT ,ENABLED},
  385. // { CMD_OPMA_GET_LOCAL_LOCKOUT ,ENABLED},
  386. // { CMD_OPMA_GET_SUPPORTED_HOST_IDS ,ENABLED},
  387. { 0 ,0 }
  388. };
  389. const NetFnCmds_T g_apml [] =
  390. {
  391. // {CMD_APML_GET_INTERFACE_VERSION ,ENABLED },
  392. // {CMD_APML_READ_RMI_REG ,ENABLED},
  393. // {CMD_APML_WRITE_RMI_REG ,ENABLED},
  394. // {CMD_APML_READ_CPUID ,ENABLED},
  395. // {CMD_APML_READ_HTC_REG ,ENABLED},
  396. // {CMD_APML_WRITE_HTC_REG ,ENABLED},
  397. // {CMD_APML_READ_PSTATE ,ENABLED},
  398. // {CMD_APML_READ_MAX_PSTATE ,ENABLED},
  399. // {CMD_APML_READ_PSTATE_LIMIT ,ENABLED},
  400. // {CMD_APML_WRITE_PSTATE_LIMIT ,ENABLED},
  401. // {CMD_APML_READ_MCR ,ENABLED},
  402. // {CMD_APML_WRITE_MCR ,ENABLED},
  403. // {CMD_APML_READ_TSI_REG ,ENABLED},
  404. // {CMD_APML_WRITE_TSI_REG ,ENABLED},
  405. // {CMD_APML_READ_TDP_LIMIT_REG ,ENABLED},
  406. // {CMD_APML_WRITE_TDP_LIMIT_REG ,ENABLED},
  407. // {CMD_APML_READ_PROCESSOR_POWER_REG ,ENABLED},
  408. // {CMD_APML_READ_POWER_AVERAGING_REG ,ENABLED},
  409. // {CMD_APML_READ_DRAM_THROTTLE_REG ,ENABLED},
  410. // {CMD_APML_WRITE_DRAM_THROTTLE_REG ,ENABLED},
  411. {0 ,0 }
  412. };
  413. const NetFnCmds_T g_dcmi [] =
  414. {
  415. /* DCMI Commands */
  416. // { CMD_GET_DCMI_CAPABILITY_INFO ,ENABLED},
  417. // { CMD_GET_POWER_READING ,ENABLED},
  418. // { CMD_GET_POWER_LIMIT ,ENABLED},
  419. // { CMD_SET_POWER_LIMIT ,ENABLED},
  420. // { CMD_ACTIVATE_POWER_LIMIT ,ENABLED},
  421. // { CMD_GET_ASSET_TAG ,ENABLED},
  422. // { CMD_GET_DCMI_SENSOR_INFO ,ENABLED},
  423. // { CMD_SET_ASSET_TAG ,ENABLED},
  424. // { CMD_GET_MANAGEMENT_CONTROLLER_ID_STRING ,ENABLED},
  425. // { CMD_SET_MANAGEMENT_CONTROLLER_ID_STRING ,ENABLED},
  426. // {CMD_SET_THERMAL_LIMIT ,ENABLED},
  427. // {CMD_GET_THERMAL_LIMIT ,ENABLED},
  428. // {CMD_GET_TEMPERATURE_READING ,ENABLED},
  429. // {CMD_SET_DCMI_CONF_PARAMS ,ENABLED},
  430. // {CMD_GET_DCMI_CONF_PARAMS ,ENABLED},
  431. { 0 ,0 }
  432. };
  433. const NetFnCmds_T g_hpm [] =
  434. {
  435. // { CMD_GET_TARGET_UPLD_CAPABLITIES, ENABLED},
  436. // { CMD_GET_COMPONENT_PROPERTIES, ENABLED},
  437. // { CMD_INITIATE_UPG_ACTION, ENABLED},
  438. // { CMD_QUERY_SELF_TEST_RESULTS, ENABLED},
  439. // { CMD_ABORT_FIRMWARE_UPGRADE, ENABLED},
  440. // { CMD_UPLOAD_FIRMWARE_BLOCK, ENABLED},
  441. // { CMD_FINISH_FIRMWARE_UPLOAD, ENABLED},
  442. // { CMD_GET_UPGRADE_STATUS, ENABLED},
  443. // { CMD_ACTIVATE_FIRMWARE, ENABLED},
  444. // { CMD_QUERY_ROLLBACK_STATUS, ENABLED},
  445. // { CMD_INITIATE_MANUAL_ROLLBACK, ENABLED},
  446. { 0, 0 }
  447. };
  448. const NetFnCmds_T g_pnm [] =
  449. {
  450. // {CMD_PNM_OEM_GET_READING ,ENABLED},
  451. // {CMD_PNM_OEM_ME_POWER_STATE_CHANGE ,ENABLED},
  452. {0 ,0 }
  453. };
  454. const NetFnCmds_T g_ssi [] =
  455. {
  456. // { CMD_SSICB_GET_COMPUTE_BLADE_PROPERTIES, ENABLED},
  457. // { CMD_SSICB_GET_ADDR_INFO, ENABLED},
  458. // { CMD_SSICB_PLATFORM_EVENT_MESSAGE, ENABLED},
  459. // { CMD_SSICB_MODULE_BMI_CONTROL, ENABLED},
  460. // { CMD_SSICB_MODULE_PAYLOAD_CONTROL, ENABLED},
  461. // { CMD_SSICB_SET_SYSTEM_EVENT_LOG_POLICY, ENABLED},
  462. // { CMD_SSICB_SET_MODULE_ACTIVATION_POLICY, ENABLED},
  463. // { CMD_SSICB_GET_MODULE_ACTIVATION_POLICY, ENABLED},
  464. // { CMD_SSICB_SET_MODULE_ACTIVATION, ENABLED},
  465. // { CMD_SSICB_SET_POWER_LEVEL, ENABLED},
  466. // { CMD_SSICB_GET_POWER_LEVEL, ENABLED},
  467. // { CMD_SSICB_RENEGOTIATE_POWER, ENABLED},
  468. // { CMD_SSICB_GET_SERVICE_INFO, ENABLED},
  469. // { CMD_SSICB_GET_APPLET_PACKAGE_URI, ENABLED},
  470. // { CMD_SSICB_GET_SERVICE_ENABLE_STATE, ENABLED},
  471. // { CMD_SSICB_SET_SERVICE_ENABLE_STATE, ENABLED},
  472. // { CMD_SSICB_SET_SERVICE_TICKET, ENABLED},
  473. // { CMD_SSICB_STOP_SERVICE_SESSION, ENABLED},
  474. { 0, 0}
  475. };
  476. const NetFnCmds_T g_oem [] = //jimbo add
  477. {
  478. { CMD_EXAMPLE_1, ENABLED},
  479. { CMD_EXAMPLE_2, ENABLED},
  480. { CMD_EXAMPLE_3, ENABLED},
  481. { CMD_EXAMPLE_4, ENABLED},
  482. { CMD_EXAMPLE_5, ENABLED},
  483. { CMD_EXAMPLE_6, ENABLED},
  484. { CMD_EXAMPLE_7, ENABLED},
  485. { CMD_EXAMPLE_8, ENABLED},
  486. { CMD_EXAMPLE_9, ENABLED},
  487. {0, 0}
  488. };
  489. NETFNTable_T Netfntbl [] =
  490. {
  491. { NETFN_APP, GRPEXT_NA, g_App },
  492. { NETFN_CHASSIS, GRPEXT_NA, g_Chassis },
  493. { NETFN_BRIDGE, GRPEXT_NA, g_Bridge },
  494. { NETFN_SENSOR, GRPEXT_NA, g_Sensor },
  495. { NETFN_STORAGE, GRPEXT_NA, g_Storage },
  496. { NETFN_TRANSPORT, GRPEXT_NA, g_Transport },
  497. { NETFN_AMI, GRPEXT_NA, g_AMI },
  498. { NETFN_OPMA1, GRPEXT_NA, g_opma1 },
  499. { NETFN_OPMA2, GRPEXT_NA, g_opma2 },
  500. { NETFN_APML, GRPEXT_NA, g_apml },
  501. { NETFN_HPM, GRPEXT_HPM, g_hpm },
  502. { NETFN_DCMI, GRPEXT_DCMI, g_dcmi },
  503. { NETFN_PNM, GRPEXT_NA, g_pnm },
  504. { NETFN_SSI, GRPEXT_SSI, g_ssi },
  505. { NETFN_OEM, GRPEXT_NA, g_oem }, //jimbo add
  506. };
  507. /*
  508. *@fn GetCommanEnabledStatus
  509. *@brief This function finds whether the command is enabled by the OEM
  510. *@param NetFunction - Pointer to the structure of NetFnCmds_T
  511. *@param Cmd - Command Number
  512. *@return Returns 0 on Enabled commands
  513. * Returns -1 on non-Enabled commands
  514. */
  515. int GetCommanEnabledStatus(NETFNTable_T *NetFuntbl,INT8U Cmd)
  516. {
  517. int i=0;
  518. while(NetFuntbl->NetFunction[i].Status != 0)
  519. {
  520. if(NetFuntbl->NetFunction[i].CmdNum ==Cmd)
  521. {
  522. if(NetFuntbl->NetFunction[i].Status ==ENABLED)
  523. {
  524. return 0;
  525. }
  526. else
  527. {
  528. return -1;
  529. }
  530. }
  531. i++;
  532. }
  533. return -1;
  534. }
  535. /*
  536. *@fn IsCommandEnabled
  537. *@brief This function gives the status of Command
  538. *@param NetFn - Net Function
  539. *@param GroupExtnCode - Group Extension Code
  540. *@param Cmd - Command Number
  541. *@return Returns 0 if the command is Enabled
  542. * Returns -1 if the command is Disabled
  543. */
  544. int IsCommandEnabled(INT8U NetFn,INT8U Cmd)
  545. {
  546. int i=0;
  547. _FAR_ BMCInfo_t* pBMCInfo = &g_BMCInfo;
  548. while(i<(sizeof(Netfntbl)/sizeof(NETFNTable_T)))
  549. {
  550. if(NetFn == Netfntbl[i].NetFn)
  551. {
  552. break;
  553. }
  554. i++;
  555. }
  556. if(i != sizeof(Netfntbl)/sizeof(NETFNTable_T))
  557. {
  558. if(GetCommanEnabledStatus((NETFNTable_T*)&Netfntbl[i],Cmd) < 0)
  559. {
  560. return -1;
  561. }
  562. }
  563. else
  564. {
  565. return -1;
  566. }
  567. return 0;
  568. }