/* SPDX-License-Identifier: MIT */ /* * Copyright © 2021 Intel Corporation */ #ifndef _ABI_GUC_KLVS_ABI_H #define _ABI_GUC_KLVS_ABI_H #include <linux/types.h> /** * DOC: GuC KLV * * +---+-------+--------------------------------------------------------------+ * | | Bits | Description | * +===+=======+==============================================================+ * | 0 | 31:16 | **KEY** - KLV key identifier | * | | | - `GuC Self Config KLVs`_ | * | | | | * | +-------+--------------------------------------------------------------+ * | | 15:0 | **LEN** - length of VALUE (in 32bit dwords) | * +---+-------+--------------------------------------------------------------+ * | 1 | 31:0 | **VALUE** - actual value of the KLV (format depends on KEY) | * +---+-------+ | * |...| | | * +---+-------+ | * | n | 31:0 | | * +---+-------+--------------------------------------------------------------+ */ #define GUC_KLV_LEN_MIN … #define GUC_KLV_0_KEY … #define GUC_KLV_0_LEN … #define GUC_KLV_n_VALUE … /** * DOC: GuC Self Config KLVs * * `GuC KLV`_ keys available for use with HOST2GUC_SELF_CFG_. * * _`GUC_KLV_SELF_CFG_H2G_CTB_ADDR` : 0x0902 * Refers to 64 bit Global Gfx address of H2G `CT Buffer`_. * Should be above WOPCM address but below APIC base address for native mode. * * _`GUC_KLV_SELF_CFG_H2G_CTB_DESCRIPTOR_ADDR` : 0x0903 * Refers to 64 bit Global Gfx address of H2G `CTB Descriptor`_. * Should be above WOPCM address but below APIC base address for native mode. * * _`GUC_KLV_SELF_CFG_H2G_CTB_SIZE` : 0x0904 * Refers to size of H2G `CT Buffer`_ in bytes. * Should be a multiple of 4K. * * _`GUC_KLV_SELF_CFG_G2H_CTB_ADDR` : 0x0905 * Refers to 64 bit Global Gfx address of G2H `CT Buffer`_. * Should be above WOPCM address but below APIC base address for native mode. * * _`GUC_KLV_SELF_CFG_G2H_CTB_DESCRIPTOR_ADDR` : 0x0906 * Refers to 64 bit Global Gfx address of G2H `CTB Descriptor`_. * Should be above WOPCM address but below APIC base address for native mode. * * _`GUC_KLV_SELF_CFG_G2H_CTB_SIZE` : 0x0907 * Refers to size of G2H `CT Buffer`_ in bytes. * Should be a multiple of 4K. */ #define GUC_KLV_SELF_CFG_H2G_CTB_ADDR_KEY … #define GUC_KLV_SELF_CFG_H2G_CTB_ADDR_LEN … #define GUC_KLV_SELF_CFG_H2G_CTB_DESCRIPTOR_ADDR_KEY … #define GUC_KLV_SELF_CFG_H2G_CTB_DESCRIPTOR_ADDR_LEN … #define GUC_KLV_SELF_CFG_H2G_CTB_SIZE_KEY … #define GUC_KLV_SELF_CFG_H2G_CTB_SIZE_LEN … #define GUC_KLV_SELF_CFG_G2H_CTB_ADDR_KEY … #define GUC_KLV_SELF_CFG_G2H_CTB_ADDR_LEN … #define GUC_KLV_SELF_CFG_G2H_CTB_DESCRIPTOR_ADDR_KEY … #define GUC_KLV_SELF_CFG_G2H_CTB_DESCRIPTOR_ADDR_LEN … #define GUC_KLV_SELF_CFG_G2H_CTB_SIZE_KEY … #define GUC_KLV_SELF_CFG_G2H_CTB_SIZE_LEN … /* * Global scheduling policy update keys. */ enum { … }; /* * Per context scheduling policy update keys. */ enum { … }; /* * Workaround keys: */ enum { … }; #endif /* _ABI_GUC_KLVS_ABI_H */