mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2025-01-17 02:36:21 +00:00
2cf1e703f0
Adding userspace support for the MC (Management Complex) means exporting an ioctl capable device file representing the root resource container. This new functionality in the fsl-mc bus driver intends to provide userspace applications an interface to interact with the MC firmware. Commands that are composed in userspace are sent to the MC firmware through the FSL_MC_SEND_MC_COMMAND ioctl. By default the implicit MC I/O portal is used for this operation, but if the implicit one is busy, a dynamic portal is allocated and then freed upon execution. The command received through the ioctl interface is checked against a known whitelist of accepted MC commands. Commands that attempt a change in hardware configuration will need CAP_NET_ADMIN, while commands used in debugging do not need it. Acked-by: Laurentiu Tudor <laurentiu.tudor@nxp.com> Signed-off-by: Ioana Ciornei <ioana.ciornei@nxp.com> Link: https://lore.kernel.org/r/20210114170752.2927915-4-ciorneiioana@gmail.com Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
35 lines
749 B
C
35 lines
749 B
C
/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
|
|
/*
|
|
* Management Complex (MC) userspace public interface
|
|
*
|
|
* Copyright 2021 NXP
|
|
*
|
|
*/
|
|
#ifndef _UAPI_FSL_MC_H_
|
|
#define _UAPI_FSL_MC_H_
|
|
|
|
#include <linux/types.h>
|
|
|
|
#define MC_CMD_NUM_OF_PARAMS 7
|
|
|
|
/**
|
|
* struct fsl_mc_command - Management Complex (MC) command structure
|
|
* @header: MC command header
|
|
* @params: MC command parameters
|
|
*
|
|
* Used by FSL_MC_SEND_MC_COMMAND
|
|
*/
|
|
struct fsl_mc_command {
|
|
__le64 header;
|
|
__le64 params[MC_CMD_NUM_OF_PARAMS];
|
|
};
|
|
|
|
#define FSL_MC_SEND_CMD_IOCTL_TYPE 'R'
|
|
#define FSL_MC_SEND_CMD_IOCTL_SEQ 0xE0
|
|
|
|
#define FSL_MC_SEND_MC_COMMAND \
|
|
_IOWR(FSL_MC_SEND_CMD_IOCTL_TYPE, FSL_MC_SEND_CMD_IOCTL_SEQ, \
|
|
struct fsl_mc_command)
|
|
|
|
#endif /* _UAPI_FSL_MC_H_ */
|