xref: /openbmc/fb-ipmi-oem/include/appcommands.hpp (revision b48d6839aebc08a186b620a3f5ea9fe22800841c)
1a2d52f12SVijay Khemka /*
2a2d52f12SVijay Khemka  * Copyright (c)  2018-present Facebook. All Rights Reserved.
3a2d52f12SVijay Khemka  *
4a2d52f12SVijay Khemka  * Licensed under the Apache License, Version 2.0 (the "License");
5a2d52f12SVijay Khemka  * you may not use this file except in compliance with the License.
6a2d52f12SVijay Khemka  * You may obtain a copy of the License at
7a2d52f12SVijay Khemka  *
8a2d52f12SVijay Khemka  *      http://www.apache.org/licenses/LICENSE-2.0
9a2d52f12SVijay Khemka  *
10a2d52f12SVijay Khemka  * Unless required by applicable law or agreed to in writing, software
11a2d52f12SVijay Khemka  * distributed under the License is distributed on an "AS IS" BASIS,
12a2d52f12SVijay Khemka  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13a2d52f12SVijay Khemka  * See the License for the specific language governing permissions and
14a2d52f12SVijay Khemka  * limitations under the License.
15a2d52f12SVijay Khemka  */
16a2d52f12SVijay Khemka 
17a2d52f12SVijay Khemka #pragma once
18a2d52f12SVijay Khemka 
19a2d52f12SVijay Khemka enum fb_app_cmds
20a2d52f12SVijay Khemka {
21666a4d95SVijay Khemka     CMD_APP_GET_SELFTEST_RESULTS = 0x04,
22666a4d95SVijay Khemka     CMD_APP_MFR_TEST_ON = 0x05,
23a2d52f12SVijay Khemka     CMD_APP_SET_ACPI = 0x06,
24a2d52f12SVijay Khemka     CMD_APP_GET_ACPI = 0x07,
25a2d52f12SVijay Khemka     CMD_APP_GET_DEV_GUID = 0x08,
26a2d52f12SVijay Khemka     CMD_APP_SET_GLOBAL_ENABLES = 0x2E,
27a2d52f12SVijay Khemka     CMD_APP_GET_GLOBAL_ENABLES = 0x2F,
28666a4d95SVijay Khemka     CMD_APP_CLEAR_MESSAGE_FLAGS = 0x30,
29a2d52f12SVijay Khemka     CMD_APP_GET_SYS_GUID = 0x37,
30666a4d95SVijay Khemka     CMD_APP_SET_SYS_INFO_PARAMS = 0x58,
31666a4d95SVijay Khemka     CMD_APP_GET_SYS_INFO_PARAMS = 0x59,
32a2d52f12SVijay Khemka 
33a2d52f12SVijay Khemka };
34666a4d95SVijay Khemka 
35666a4d95SVijay Khemka #define SIZE_SYSFW_VER 17
36666a4d95SVijay Khemka #define SIZE_SYS_NAME 17
37666a4d95SVijay Khemka #define SIZE_OS_NAME 17
38666a4d95SVijay Khemka #define SIZE_OS_VER 17
39666a4d95SVijay Khemka #define SIZE_BMC_URL 17
40666a4d95SVijay Khemka #define SIZE_OS_HV_URL 17
41666a4d95SVijay Khemka #define SIZE_BIOS_CURRENT_BOOT_LIST 250
42666a4d95SVijay Khemka #define SIZE_BIOS_FIXED_BOOT_DEVICE 1
43666a4d95SVijay Khemka #define SIZE_BIOS_RSTR_DFLT_SETTING 1
44666a4d95SVijay Khemka #define SIZE_LAST_BOOT_TIME 4
45666a4d95SVijay Khemka #define SIZE_PCIE_PORT_CONFIG 2
46666a4d95SVijay Khemka 
47*b48d6839SPeter Yin #define JSON_APP_DATA_FILE "/var/lib/fb-ipmi-oem/appData.json"
48666a4d95SVijay Khemka #define KEY_SYSFW_VER "sysfw_ver_server"
49666a4d95SVijay Khemka #define KEY_BIOS_BOOT_LEN "bios_boot_list_len"
50666a4d95SVijay Khemka 
51666a4d95SVijay Khemka // System Info Parameters (IPMI/Table 22-16c)
52666a4d95SVijay Khemka enum SysInfoParams
53666a4d95SVijay Khemka {
54666a4d95SVijay Khemka     SYS_INFO_PARAM_SET_IN_PROG,
55666a4d95SVijay Khemka     SYS_INFO_PARAM_SYSFW_VER,
56666a4d95SVijay Khemka     SYS_INFO_PARAM_SYS_NAME,
57666a4d95SVijay Khemka     SYS_INFO_PARAM_PRI_OS_NAME,
58666a4d95SVijay Khemka     SYS_INFO_PARAM_PRESENT_OS_NAME,
59666a4d95SVijay Khemka     SYS_INFO_PARAM_PRESENT_OS_VER,
60666a4d95SVijay Khemka     SYS_INFO_PARAM_BMC_URL,
61666a4d95SVijay Khemka     SYS_INFO_PARAM_OS_HV_URL,
62666a4d95SVijay Khemka     SYS_INFO_PARAM_BIOS_CURRENT_BOOT_LIST = 0xC1,
63666a4d95SVijay Khemka     SYS_INFO_PARAM_BIOS_FIXED_BOOT_DEVICE = 0xC2,
64666a4d95SVijay Khemka     SYS_INFO_PARAM_BIOS_RSTR_DFLT_SETTING = 0xC3,
65666a4d95SVijay Khemka     SYS_INFO_PARAM_LAST_BOOT_TIME = 0xC4,
66666a4d95SVijay Khemka };
67666a4d95SVijay Khemka 
68666a4d95SVijay Khemka // Structure for System Info Params (IPMI/Section 22.14a)
69666a4d95SVijay Khemka struct SysInfoParam
70666a4d95SVijay Khemka {
71666a4d95SVijay Khemka     uint8_t set_in_prog;
72666a4d95SVijay Khemka     uint8_t sysfw_ver[SIZE_SYSFW_VER];
73666a4d95SVijay Khemka     uint8_t sys_name[SIZE_SYS_NAME];
74666a4d95SVijay Khemka     uint8_t pri_os_name[SIZE_OS_NAME];
75666a4d95SVijay Khemka     uint8_t present_os_name[SIZE_OS_NAME];
76666a4d95SVijay Khemka     uint8_t present_os_ver[SIZE_OS_VER];
77666a4d95SVijay Khemka     uint8_t bmc_url[SIZE_BMC_URL];
78666a4d95SVijay Khemka     uint8_t os_hv_url[SIZE_OS_HV_URL];
79666a4d95SVijay Khemka     uint8_t bios_current_boot_list[SIZE_BIOS_CURRENT_BOOT_LIST];
80666a4d95SVijay Khemka     uint8_t bios_fixed_boot_device[SIZE_BIOS_FIXED_BOOT_DEVICE];
81666a4d95SVijay Khemka     uint8_t bios_rstr_dflt_setting[SIZE_BIOS_RSTR_DFLT_SETTING];
82666a4d95SVijay Khemka     uint8_t last_boot_time[SIZE_LAST_BOOT_TIME];
83666a4d95SVijay Khemka 
84666a4d95SVijay Khemka } __attribute__((packed));
85