include/soc/tegra/bpmp-abi.h

Source file repositories/reference/linux-study-clean/include/soc/tegra/bpmp-abi.h

File Facts

System
Linux kernel
Corpus path
include/soc/tegra/bpmp-abi.h
Extension
.h
Size
226119 bytes
Lines
6751
Domain
Repository Root And Misc
Bucket
include
Inferred role
Repository Root And Misc: implementation source
Status
source implementation candidate

Why This File Exists

Top-level or miscellaneous repository surface. Use this as map coverage unless a later manual pass promotes the file into a deeper subsystem dossier.

Dependency Surface

Detected Declarations

Annotated Snippet

struct mrq_request {
	/** @brief MRQ number of the request */
	uint32_t mrq;

	/**
	 * @brief 32bit word containing a number of fields as follows:
	 *
	 * 	struct {
	 * 		uint8_t options:4;
	 * 		uint8_t xid:4;
	 * 		uint8_t payload_length;
	 * 		uint16_t crc16;
	 * 	};
	 *
	 * **options** directions to the receiver and indicates CRC presence.
	 *
	 * #BPMP_MAIL_DO_ACK and  #BPMP_MAIL_RING_DB see documentation of respective options.
	 * #BPMP_MAIL_CRC_PRESENT is supported on T234 and later platforms. It indicates the
	 * crc16, xid and length fields are present when set.
	 * Some platform configurations, especially when targeted to applications requiring
	 * functional safety, mandate this option being set or otherwise will respond with
	 * -#BPMP_EBADMSG and ignore the request.
	 *
	 * **xid** is a transaction ID.
	 *
	 * Only used when #BPMP_MAIL_CRC_PRESENT is set.
	 *
	 * **payload_length** of the message expressed in bytes without the size of this header.
	 * See tables below for minimum accepted payload lengths for each MRQ.
	 *
	 * Only used when #BPMP_MAIL_CRC_PRESENT is set.
	 *
	 * | MRQ                   | Sub-command                           | Minimum payload length
	 * | --------------------- | ------------------------------------  | ------------------------------------------------------- |
	 * | #MRQ_PING             | -                                     | 4                                                       |
	 * | #MRQ_THREADED_PING    | -                                     | 4                                                       |
	 * | #MRQ_RESET            | any                                   | 8                                                       |
	 * | #MRQ_I2C              | -                                     | 12 + cmd_i2c_xfer_request.data_size                     |
	 * | #MRQ_CLK              | #CMD_CLK_GET_RATE                     | 4                                                       |
	 * | #MRQ_CLK              | #CMD_CLK_SET_RATE                     | 16                                                      |
	 * | #MRQ_CLK              | #CMD_CLK_ROUND_RATE                   | 16                                                      |
	 * | #MRQ_CLK              | #CMD_CLK_GET_PARENT                   | 4                                                       |
	 * | #MRQ_CLK              | #CMD_CLK_SET_PARENT                   | 8                                                       |
	 * | #MRQ_CLK              | #CMD_CLK_ENABLE                       | 4                                                       |
	 * | #MRQ_CLK              | #CMD_CLK_DISABLE                      | 4                                                       |
	 * | #MRQ_CLK              | #CMD_CLK_IS_ENABLED                   | 4                                                       |
	 * | #MRQ_CLK              | #CMD_CLK_GET_ALL_INFO                 | 4                                                       |
	 * | #MRQ_CLK              | #CMD_CLK_GET_MAX_CLK_ID               | 4                                                       |
	 * | #MRQ_CLK              | #CMD_CLK_GET_FMAX_AT_VMIN             | 4                                                       |
	 * | #MRQ_QUERY_ABI        | -                                     | 4                                                       |
	 * | #MRQ_PG               | #CMD_PG_QUERY_ABI                     | 12                                                      |
	 * | #MRQ_PG               | #CMD_PG_SET_STATE                     | 12                                                      |
	 * | #MRQ_PG               | #CMD_PG_GET_STATE                     | 8                                                       |
	 * | #MRQ_PG               | #CMD_PG_GET_NAME                      | 8                                                       |
	 * | #MRQ_PG               | #CMD_PG_GET_MAX_ID                    | 8                                                       |
	 * | #MRQ_THERMAL          | #CMD_THERMAL_QUERY_ABI                | 8                                                       |
	 * | #MRQ_THERMAL          | #CMD_THERMAL_GET_TEMP                 | 8                                                       |
	 * | #MRQ_THERMAL          | #CMD_THERMAL_GET_NUM_ZONES            | 4                                                       |
	 * | #MRQ_THERMAL          | #CMD_THERMAL_GET_THERMTRIP            | 8                                                       |
	 * | #MRQ_ABI_RATCHET      | -                                     | 2                                                       |
	 * | #MRQ_EMC_DVFS_LATENCY | -                                     | 8                                                       |
	 * | #MRQ_QUERY_FW_TAG     | -                                     | 0                                                       |
	 * | #MRQ_DEBUG            | #CMD_DEBUG_OPEN_RO                    | 4 + length of cmd_debug_fopen_request.name              |
	 * | #MRQ_DEBUG            | #CMD_DEBUG_OPEN_WO                    | 4 + length of cmd_debug_fopen_request.name              |
	 * | #MRQ_DEBUG            | #CMD_DEBUG_READ                       | 8                                                       |
	 * | #MRQ_DEBUG            | #CMD_DEBUG_WRITE                      | 12 + cmd_debug_fwrite_request.datalen                   |
	 * | #MRQ_DEBUG            | #CMD_DEBUG_CLOSE                      | 8                                                       |
	 *
	 * @cond (bpmp_t186)
	 * The following additional MRQ is supported on T186 -platform:
	 *
	 * | MRQ                   | Sub-command                           | Minimum payload length                |
	 * | --------------------- | ------------------------------------- | ------------------------------------- |
	 * | #MRQ_CPU_VHINT        | -                                     | 8                                     |
	 * | #MRQ_THERMAL          | #CMD_THERMAL_SET_TRIP                 | 20                                    |
	 * | #MRQ_RINGBUF_CONSOLE  | #CMD_RINGBUF_CONSOLE_QUERY_ABI        | 8                                     |
	 * | #MRQ_RINGBUF_CONSOLE  | #CMD_RINGBUF_CONSOLE_READ             | 5                                     |
	 * | #MRQ_RINGBUF_CONSOLE  | #CMD_RINGBUF_CONSOLE_WRITE            | 5 + cmd_ringbuf_console_write_req.len |
	 * | #MRQ_RINGBUF_CONSOLE  | #CMD_RINGBUF_CONSOLE_GET_FIFO         | 4                                     |
	 * @endcond
	 *
	 * @cond (bpmp_t194)
	 * The following additional MRQs are supported on T194 -platform:
	 *
	 * | MRQ                   | Sub-command                           | Minimum payload length                |
	 * | --------------------- | ------------------------------------- | ------------------------------------- |
	 * | #MRQ_CPU_NDIV_LIMITS  | -                                     | 4                                     |
	 * | #MRQ_STRAP            | #STRAP_SET                            | 12                                    |
	 * | #MRQ_CPU_AUTO_CC3     | -                                     | 4                                     |
	 * | #MRQ_EC               | #CMD_EC_STATUS_EX_GET                 | 12                                    |

Annotation

Implementation Notes