brintos

brintos / linux-shallow public Read only

0
0
Text · 4.1 KiB · 0c709e6 Raw
114 lines · c
1/* SPDX-License-Identifier: MIT */2/*3 * Copyright © 2021 Intel Corporation4 */5 6#ifndef _ABI_GUC_KLVS_ABI_H7#define _ABI_GUC_KLVS_ABI_H8 9#include <linux/types.h>10 11/**12 * DOC: GuC KLV13 *14 *  +---+-------+--------------------------------------------------------------+15 *  |   | Bits  | Description                                                  |16 *  +===+=======+==============================================================+17 *  | 0 | 31:16 | **KEY** - KLV key identifier                                 |18 *  |   |       |   - `GuC Self Config KLVs`_                                  |19 *  |   |       |                                                              |20 *  |   +-------+--------------------------------------------------------------+21 *  |   |  15:0 | **LEN** - length of VALUE (in 32bit dwords)                  |22 *  +---+-------+--------------------------------------------------------------+23 *  | 1 |  31:0 | **VALUE** - actual value of the KLV (format depends on KEY)  |24 *  +---+-------+                                                              |25 *  |...|       |                                                              |26 *  +---+-------+                                                              |27 *  | n |  31:0 |                                                              |28 *  +---+-------+--------------------------------------------------------------+29 */30 31#define GUC_KLV_LEN_MIN				1u32#define GUC_KLV_0_KEY				(0xffffu << 16)33#define GUC_KLV_0_LEN				(0xffffu << 0)34#define GUC_KLV_n_VALUE				(0xffffffffu << 0)35 36/**37 * DOC: GuC Self Config KLVs38 *39 * `GuC KLV`_ keys available for use with HOST2GUC_SELF_CFG_.40 *41 * _`GUC_KLV_SELF_CFG_H2G_CTB_ADDR` : 0x090242 *      Refers to 64 bit Global Gfx address of H2G `CT Buffer`_.43 *      Should be above WOPCM address but below APIC base address for native mode.44 *45 * _`GUC_KLV_SELF_CFG_H2G_CTB_DESCRIPTOR_ADDR` : 0x090346 *      Refers to 64 bit Global Gfx address of H2G `CTB Descriptor`_.47 *      Should be above WOPCM address but below APIC base address for native mode.48 *49 * _`GUC_KLV_SELF_CFG_H2G_CTB_SIZE` : 0x090450 *      Refers to size of H2G `CT Buffer`_ in bytes.51 *      Should be a multiple of 4K.52 *53 * _`GUC_KLV_SELF_CFG_G2H_CTB_ADDR` : 0x090554 *      Refers to 64 bit Global Gfx address of G2H `CT Buffer`_.55 *      Should be above WOPCM address but below APIC base address for native mode.56 *57 * _`GUC_KLV_SELF_CFG_G2H_CTB_DESCRIPTOR_ADDR` : 0x090658 *      Refers to 64 bit Global Gfx address of G2H `CTB Descriptor`_.59 *      Should be above WOPCM address but below APIC base address for native mode.60 *61 * _`GUC_KLV_SELF_CFG_G2H_CTB_SIZE` : 0x090762 *      Refers to size of G2H `CT Buffer`_ in bytes.63 *      Should be a multiple of 4K.64 */65 66#define GUC_KLV_SELF_CFG_H2G_CTB_ADDR_KEY		0x090267#define GUC_KLV_SELF_CFG_H2G_CTB_ADDR_LEN		2u68 69#define GUC_KLV_SELF_CFG_H2G_CTB_DESCRIPTOR_ADDR_KEY	0x090370#define GUC_KLV_SELF_CFG_H2G_CTB_DESCRIPTOR_ADDR_LEN	2u71 72#define GUC_KLV_SELF_CFG_H2G_CTB_SIZE_KEY		0x090473#define GUC_KLV_SELF_CFG_H2G_CTB_SIZE_LEN		1u74 75#define GUC_KLV_SELF_CFG_G2H_CTB_ADDR_KEY		0x090576#define GUC_KLV_SELF_CFG_G2H_CTB_ADDR_LEN		2u77 78#define GUC_KLV_SELF_CFG_G2H_CTB_DESCRIPTOR_ADDR_KEY	0x090679#define GUC_KLV_SELF_CFG_G2H_CTB_DESCRIPTOR_ADDR_LEN	2u80 81#define GUC_KLV_SELF_CFG_G2H_CTB_SIZE_KEY		0x090782#define GUC_KLV_SELF_CFG_G2H_CTB_SIZE_LEN		1u83 84/*85 * Global scheduling policy update keys.86 */87enum {88	GUC_SCHEDULING_POLICIES_KLV_ID_RENDER_COMPUTE_YIELD	= 0x1001,89};90 91/*92 * Per context scheduling policy update keys.93 */94enum {95	GUC_CONTEXT_POLICIES_KLV_ID_EXECUTION_QUANTUM			= 0x2001,96	GUC_CONTEXT_POLICIES_KLV_ID_PREEMPTION_TIMEOUT			= 0x2002,97	GUC_CONTEXT_POLICIES_KLV_ID_SCHEDULING_PRIORITY			= 0x2003,98	GUC_CONTEXT_POLICIES_KLV_ID_PREEMPT_TO_IDLE_ON_QUANTUM_EXPIRY	= 0x2004,99	GUC_CONTEXT_POLICIES_KLV_ID_SLPM_GT_FREQUENCY			= 0x2005,100 101	GUC_CONTEXT_POLICIES_KLV_NUM_IDS = 5,102};103 104/*105 * Workaround keys:106 */107enum {108	GUC_WORKAROUND_KLV_SERIALIZED_RA_MODE				= 0x9001,109	GUC_WORKAROUND_KLV_BLOCK_INTERRUPTS_WHEN_MGSR_BLOCKED		= 0x9002,110	GUC_WORKAROUND_KLV_AVOID_GFX_CLEAR_WHILE_ACTIVE			= 0x9006,111};112 113#endif /* _ABI_GUC_KLVS_ABI_H */114