Skip to content

Commit

Permalink
[intelxl] Allow admin cookie to hold extended opcode and return code
Browse files Browse the repository at this point in the history
The "send to PF" and "send to VF" admin queue descriptors (ab)use the
cookie field to hold the extended opcode and return code values.

Signed-off-by: Michael Brown <mcb30@ipxe.org>
  • Loading branch information
mcb30 committed Apr 27, 2019
1 parent 7b68c31 commit 17298d0
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 7 deletions.
10 changes: 7 additions & 3 deletions src/drivers/net/intelxl.c
Expand Up @@ -313,8 +313,11 @@ static int intelxl_admin_command ( struct intelxl_nic *intelxl ) {
tail = ( admin->index % INTELXL_ADMIN_NUM_DESC );
cmd = &admin->desc[ index % INTELXL_ADMIN_NUM_DESC ];
buf = &admin->buf[ index % INTELXL_ADMIN_NUM_DESC ];
DBGC2 ( intelxl, "INTELXL %p admin command %#x opcode %#04x:\n",
DBGC2 ( intelxl, "INTELXL %p admin command %#x opcode %#04x",
intelxl, index, le16_to_cpu ( cmd->opcode ) );
if ( cmd->vopcode )
DBGC2 ( intelxl, "/%#08x", le32_to_cpu ( cmd->vopcode ) );
DBGC2 ( intelxl, ":\n" );

/* Sanity checks */
assert ( ! ( cmd->flags & cpu_to_le16 ( INTELXL_ADMIN_FL_DD ) ) );
Expand All @@ -329,8 +332,9 @@ static int intelxl_admin_command ( struct intelxl_nic *intelxl ) {
cmd->params.buffer.low = cpu_to_le32 ( address & 0xffffffffUL );
}

/* Populate cookie */
cmd->cookie = cpu_to_le32 ( index );
/* Populate cookie, if not being (ab)used for VF opcode */
if ( ! cmd->vopcode )
cmd->cookie = cpu_to_le32 ( index );

/* Record cookie */
cookie = cmd->cookie;
Expand Down
13 changes: 9 additions & 4 deletions src/drivers/net/intelxl.h
Expand Up @@ -333,10 +333,15 @@ struct intelxl_admin_descriptor {
uint16_t len;
/** Return value */
uint16_t ret;
/** Cookie */
uint32_t cookie;
/** Reserved */
uint32_t reserved;
/** Opaque cookie / VF opcode */
union {
/** Cookie */
uint32_t cookie;
/** VF opcode */
uint32_t vopcode;
};
/** VF return value */
int32_t vret;
/** Parameters */
union intelxl_admin_params params;
} __attribute__ (( packed ));
Expand Down

0 comments on commit 17298d0

Please sign in to comment.