diff options
Diffstat (limited to 'roms/skiboot/include/fsp-sysparam.h')
-rw-r--r-- | roms/skiboot/include/fsp-sysparam.h | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/roms/skiboot/include/fsp-sysparam.h b/roms/skiboot/include/fsp-sysparam.h new file mode 100644 index 000000000..b1182f7bc --- /dev/null +++ b/roms/skiboot/include/fsp-sysparam.h @@ -0,0 +1,62 @@ +// SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later +/* Copyright 2013-2018 IBM Corp. */ + +#ifndef __FSP_SYSPARAM_H +#define __FSP_SYSPARAM_H + +/* System parameter numbers used in the protocol + * + * these are the only ones we care about right now + */ +#define SYS_PARAM_SURV 0xf0000001 +#define SYS_PARAM_HMC_MANAGED 0xf0000003 +#define SYS_PARAM_FW_IPL_SIDE 0xf0000007 +#define SYS_PARAM_FLASH_POLICY 0xf0000012 +#define SYS_PARAM_NEED_HMC 0xf0000016 +#define SYS_PARAM_REAL_SAI 0xf0000019 +#define SYS_PARAM_PARTITION_SAI 0xf000001A +#define SYS_PARAM_PLAT_SAI 0xf000001B +#define SYS_PARAM_FW_LICENSE 0xf000001d +#define SYS_PARAM_WWPN 0xf0000023 +#define SYS_PARAM_DEF_BOOT_DEV 0xf0000024 +#define SYS_PARAM_NEXT_BOOT_DEV 0xf0000025 +#define SYS_PARAM_CONSOLE_SELECT 0xf0000026 +#define SYS_PARAM_BOOT_DEV_PATH 0xf0000027 + + +/* Completion for a sysparam call. err_len is either a negative error + * code or the positive length of the returned data + */ +typedef void (*sysparam_compl_t)(uint32_t param_id, int err_len, void *data); + + +/* Send a sysparam query request. Operation can be synchronous or + * asynchronous: + * + * - synchronous (async_complete is NULL), the result code is either + * a negative error code or a positive returned length. + * + * - asynchronous (async_complete non NULL). The result code is 0 for + * successfully queued request or an error for an immediate error. + * A successfully queued request will complete via the completion + * callback defined above + */ +int fsp_get_sys_param(uint32_t param_id, void *buffer, uint32_t length, + sysparam_compl_t async_complete, void *comp_data); + + +void fsp_sysparam_init(void); + +/* + * System parameter update notification. + * param_id : parameter id + * len : length of data + * data : pointer to data + */ +typedef bool (*sysparam_update_notify)(struct fsp_msg *msg); + +/* Register/unregister for system parameter update notifier chain */ +void sysparam_add_update_notifier(sysparam_update_notify notify); +void sysparam_del_update_notifier(sysparam_update_notify notify); + +#endif /* __FSP_SYSPARAM_H */ |