43 static int32_t
__ocs_ioctl_mbox_cb(ocs_hal_t *hal, int32_t status, uint8_t *mqe,
void *arg);
50 if (sli_config->
emb) {
59 if (ocs_dma_alloc(ocs, dma, mcmd->
out_bytes, 4096)) {
60 ocs_log_err(ocs,
"COMMON_READ_OBJECT - %" PRIX64
" allocation failed\n",
72 #if !defined(OCSU_FC_RAMD) && !defined(OCSU_FC_WORKLOAD) && !defined(OCS_USPACE_SPDK)
92 ocs_log_err(ocs,
"COMMON_WRITE_OBJECT - %d allocation failed\n",
103 if (ocs_copy_from_user(dma->virt, (
void *)mcmd->
in_addr, mcmd->
in_bytes)) {
104 ocs_log_warn(ocs,
"copy_from_user() failed\n");
116 if (ocs_dma_alloc(ocs, dma, mcmd->
out_bytes, 4096)) {
117 ocs_log_err(ocs,
"COMMON_READ_OBJECT_LIST - %" PRIX64
" allocation failed\n",
122 ocs_memset(dma->virt, 0, mcmd->
out_bytes);
139 ocs_log_info(ocs,
"in=%p (%" PRIX64
") out=%p (%" PRIX64
")\n",
142 ocs_log_info(ocs,
"unknown (opc=%#x)\n",
148 if (ocs_dma_alloc(ocs, dma, max_bytes, 4096)) {
149 ocs_log_err(ocs,
"non-embedded - %u allocation failed\n", max_bytes);
153 if (ocs_copy_from_user(dma->virt, (
void *)mcmd->
in_addr, mcmd->
in_bytes)) {
154 ocs_log_warn(ocs,
"copy_from_user failed\n");
170 ocs_dma_t dma = { 0 };
175 (
sizeof(*mcmd) != mcmd->
size)) {
176 ocs_log_debug(ocs,
"malformed command m=%08x s=%08x\n",
197 ocs_log_debug(NULL,
"command not support\n");
203 ocs_sem_init(&waitsem, 0,
"elxu_mbox");
209 if (ocs_sem_p(&waitsem, OCS_SEM_FOREVER) == 0) {
213 ocs_log_warn(ocs,
"copy_to_user failed\n");
218 ocs_log_warn(ocs,
"hal command was interrupted\n");
223 ocs_dma_free(ocs, &dma);
232 ocs_sem_t *sem = arg;
uint32_t desired_write_length
union sli4_cmd_sli_config_t::@36 payload
sli4_bde_t host_buffer_descriptor[0]
int32_t ocs_process_sli_config(ocs_t *ocs, ocs_ioctl_elxu_mbox_t *mcmd, ocs_dma_t *dma)
sli4_sli_config_pmd_t mem
#define SLI4_MBOX_COMMAND_DUMP
int32_t ocs_elxu(ocs_t *ocs, ocs_ioctl_elxu_mbox_t *mcmd)
struct sli4_bde_t::@27::@28 data
sli4_bde_t host_buffer_descriptor[0]
IOCTL_CMD_IOCTL_ELXU_MBOX ioctl structure.
#define SLI4_MBOX_COMMAND_SLI_CONFIG
#define READ_OBJECT_NAME_DUMP
#define SLI4_MBOX_COMMAND_READ_STATUS
#define SLI4_OPC_COMMON_WRITE_OBJECT
#define SLI4_OPC_FCOE_SET_DPORT_MODE
#define SLI4_OPC_FCOE_GET_DPORT_RESULTS
sli4_bde_t host_buffer_descriptor[0]
#define SLI4_OPC_COMMON_RUN_BIU_DIAG
#define SLI4_OPC_COMMON_READ_OBJECT
#define SLI4_MBOX_COMMAND_READ_LNK_STAT
#define SLI4_OPC_FCOE_SET_LINK_DIAG_STATE
#define SLI4_OPC_COMMON_READ_OBJECT_LIST
static int32_t __ocs_ioctl_mbox_cb(ocs_hal_t *hal, int32_t status, uint8_t *mqe, void *arg)
void ocs_fw_dump_state_set(ocs_t *ocs, uint32_t state)
Set fW dump state.
#define SLI4_MBOX_COMMAND_READ_REV
uint8_t embed[58 *sizeof(uint32_t)]
ocs_hal_rtn_e ocs_hal_command(ocs_hal_t *hal, uint8_t *cmd, uint32_t opts, void *cb, void *arg)
Issue a SLI command.
#define SLI4_BDE_TYPE_BDE_64
#define FW_DUMP_STATE_NONE
Generic Command Request header.
#define SLI4_OPC_COMMON_DELETE_OBJECT
#define FW_DUMP_TYPE_FLASH
#define SLI4_OPC_COMMON_READ_TRANSCEIVER_DATA