mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-05 18:41:58 +09:00
MALI: rockchip: upgrade bifrost DDK to g25p0-00eac0, from g24p0-00eac0
mali_csffw.bin from Valhall DDK g25(r50) is included. Change-Id: Ic454428c384456a14b29d9651f537eb59c11284d Signed-off-by: Zhen Chen <chenzhen@rock-chips.com>
This commit is contained in:
@@ -61,13 +61,15 @@
|
||||
* must be less than BASE_MEM_FLAGS_NR_BITS !!!
|
||||
*/
|
||||
|
||||
/* A mask of all the flags which are only valid for allocations within kbase,
|
||||
* and may not be passed from user space.
|
||||
/* A mask of all the flags which are only valid within kbase,
|
||||
* and may not be passed to/from user space.
|
||||
*/
|
||||
#define BASEP_MEM_FLAGS_KERNEL_ONLY (BASEP_MEM_PERMANENT_KERNEL_MAPPING | BASEP_MEM_NO_USER_FREE)
|
||||
|
||||
/* A mask of all flags that should not be queried */
|
||||
#define BASE_MEM_DONT_QUERY (BASE_MEM_COHERENT_SYSTEM_REQUIRED | BASE_MEM_IMPORT_SHARED)
|
||||
/* A mask of flags that, when provied, cause other flags to be
|
||||
* enabled but are not enabled themselves
|
||||
*/
|
||||
#define BASE_MEM_FLAGS_ACTION_MODIFIERS (BASE_MEM_COHERENT_SYSTEM_REQUIRED | BASE_MEM_IMPORT_SHARED)
|
||||
|
||||
/* A mask of all currently reserved flags */
|
||||
#define BASE_MEM_FLAGS_RESERVED ((base_mem_alloc_flags)0)
|
||||
|
||||
@@ -116,10 +116,14 @@
|
||||
* from the parent process.
|
||||
* 1.30:
|
||||
* - Implement support for setting GPU Timestamp Offset register.
|
||||
* 1.31:
|
||||
* - Reject non-protected allocations containing the BASE_MEM_PROTECTED memory flag.
|
||||
* - Reject allocations containing the BASE_MEM_DONT_NEED memory flag (it is only settable).
|
||||
* - Reject allocations containing the BASE_MEM_UNUSED_BIT_xx memory flags.
|
||||
*/
|
||||
|
||||
#define BASE_UK_VERSION_MAJOR 1
|
||||
#define BASE_UK_VERSION_MINOR 30
|
||||
#define BASE_UK_VERSION_MINOR 31
|
||||
|
||||
/**
|
||||
* struct kbase_ioctl_version_check - Check version compatibility between
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
|
||||
/*
|
||||
*
|
||||
* (C) COPYRIGHT 2019-2023 ARM Limited. All rights reserved.
|
||||
* (C) COPYRIGHT 2019-2024 ARM Limited. All rights reserved.
|
||||
*
|
||||
* This program is free software and is provided to you under the terms of the
|
||||
* GNU General Public License version 2 as published by the Free Software
|
||||
@@ -53,15 +53,17 @@
|
||||
* must be less than BASE_MEM_FLAGS_NR_BITS !!!
|
||||
*/
|
||||
|
||||
/* A mask of all the flags which are only valid for allocations within kbase,
|
||||
* and may not be passed from user space.
|
||||
/* A mask of all the flags which are only valid within kbase,
|
||||
* and may not be passed to/from user space.
|
||||
*/
|
||||
#define BASEP_MEM_FLAGS_KERNEL_ONLY \
|
||||
(BASEP_MEM_PERMANENT_KERNEL_MAPPING | BASEP_MEM_NO_USER_FREE | BASE_MEM_FLAG_MAP_FIXED | \
|
||||
BASEP_MEM_PERFORM_JIT_TRIM)
|
||||
|
||||
/* A mask of all flags that should not be queried */
|
||||
#define BASE_MEM_DONT_QUERY (BASE_MEM_COHERENT_SYSTEM_REQUIRED | BASE_MEM_IMPORT_SHARED)
|
||||
/* A mask of flags that, when provied, cause other flags to be
|
||||
* enabled but are not enabled themselves
|
||||
*/
|
||||
#define BASE_MEM_FLAGS_ACTION_MODIFIERS (BASE_MEM_COHERENT_SYSTEM_REQUIRED | BASE_MEM_IMPORT_SHARED)
|
||||
|
||||
/* A mask of all currently reserved flags */
|
||||
#define BASE_MEM_FLAGS_RESERVED ((base_mem_alloc_flags)0)
|
||||
@@ -120,10 +122,6 @@
|
||||
*/
|
||||
#define BASE_JD_ATOM_COUNT 256
|
||||
|
||||
/* Maximum number of concurrent render passes.
|
||||
*/
|
||||
#define BASE_JD_RP_COUNT (256)
|
||||
|
||||
/* Set/reset values for a software event */
|
||||
#define BASE_JD_SOFT_EVENT_SET ((unsigned char)1)
|
||||
#define BASE_JD_SOFT_EVENT_RESET ((unsigned char)0)
|
||||
@@ -363,40 +361,6 @@ typedef __u32 base_jd_core_req;
|
||||
*/
|
||||
#define BASE_JD_REQ_JOB_SLOT ((base_jd_core_req)1 << 17)
|
||||
|
||||
/* SW-only requirement: The atom is the start of a renderpass.
|
||||
*
|
||||
* If this bit is set then the job chain will be soft-stopped if it causes the
|
||||
* GPU to write beyond the end of the physical pages backing the tiler heap, and
|
||||
* committing more memory to the heap would exceed an internal threshold. It may
|
||||
* be resumed after running one of the job chains attached to an atom with
|
||||
* BASE_JD_REQ_END_RENDERPASS set and the same renderpass ID. It may be
|
||||
* resumed multiple times until it completes without memory usage exceeding the
|
||||
* threshold.
|
||||
*
|
||||
* Usually used with BASE_JD_REQ_T.
|
||||
*/
|
||||
#define BASE_JD_REQ_START_RENDERPASS ((base_jd_core_req)1 << 18)
|
||||
|
||||
/* SW-only requirement: The atom is the end of a renderpass.
|
||||
*
|
||||
* If this bit is set then the atom incorporates the CPU address of a
|
||||
* base_jd_fragment object instead of the GPU address of a job chain.
|
||||
*
|
||||
* Which job chain is run depends upon whether the atom with the same renderpass
|
||||
* ID and the BASE_JD_REQ_START_RENDERPASS bit set completed normally or
|
||||
* was soft-stopped when it exceeded an upper threshold for tiler heap memory
|
||||
* usage.
|
||||
*
|
||||
* It also depends upon whether one of the job chains attached to the atom has
|
||||
* already been run as part of the same renderpass (in which case it would have
|
||||
* written unresolved multisampled and otherwise-discarded output to temporary
|
||||
* buffers that need to be read back). The job chain for doing a forced read and
|
||||
* forced write (from/to temporary buffers) is run as many times as necessary.
|
||||
*
|
||||
* Usually used with BASE_JD_REQ_FS.
|
||||
*/
|
||||
#define BASE_JD_REQ_END_RENDERPASS ((base_jd_core_req)1 << 19)
|
||||
|
||||
/* SW-only requirement: The atom needs to run on a limited core mask affinity.
|
||||
*
|
||||
* If this bit is set then the kbase_context.limited_core_mask will be applied
|
||||
@@ -412,7 +376,6 @@ typedef __u32 base_jd_core_req;
|
||||
BASE_JD_REQ_EVENT_COALESCE | BASE_JD_REQ_COHERENT_GROUP | \
|
||||
BASE_JD_REQ_SPECIFIC_COHERENT_GROUP | BASE_JD_REQ_FS_AFBC | BASE_JD_REQ_PERMON | \
|
||||
BASE_JD_REQ_SKIP_CACHE_START | BASE_JD_REQ_SKIP_CACHE_END | BASE_JD_REQ_JOB_SLOT | \
|
||||
BASE_JD_REQ_START_RENDERPASS | BASE_JD_REQ_END_RENDERPASS | \
|
||||
BASE_JD_REQ_LIMITED_CORE_MASK))
|
||||
|
||||
/* Mask of all bits in base_jd_core_req that control the type of the atom.
|
||||
@@ -471,62 +434,6 @@ struct base_dependency {
|
||||
base_jd_dep_type dependency_type;
|
||||
};
|
||||
|
||||
/**
|
||||
* struct base_jd_fragment - Set of GPU fragment job chains used for rendering.
|
||||
*
|
||||
* @norm_read_norm_write: Job chain for full rendering.
|
||||
* GPU address of a fragment job chain to render in the
|
||||
* circumstance where the tiler job chain did not exceed
|
||||
* its memory usage threshold and no fragment job chain
|
||||
* was previously run for the same renderpass.
|
||||
* It is used no more than once per renderpass.
|
||||
* @norm_read_forced_write: Job chain for starting incremental
|
||||
* rendering.
|
||||
* GPU address of a fragment job chain to render in
|
||||
* the circumstance where the tiler job chain exceeded
|
||||
* its memory usage threshold for the first time and
|
||||
* no fragment job chain was previously run for the
|
||||
* same renderpass.
|
||||
* Writes unresolved multisampled and normally-
|
||||
* discarded output to temporary buffers that must be
|
||||
* read back by a subsequent forced_read job chain
|
||||
* before the renderpass is complete.
|
||||
* It is used no more than once per renderpass.
|
||||
* @forced_read_forced_write: Job chain for continuing incremental
|
||||
* rendering.
|
||||
* GPU address of a fragment job chain to render in
|
||||
* the circumstance where the tiler job chain
|
||||
* exceeded its memory usage threshold again
|
||||
* and a fragment job chain was previously run for
|
||||
* the same renderpass.
|
||||
* Reads unresolved multisampled and
|
||||
* normally-discarded output from temporary buffers
|
||||
* written by a previous forced_write job chain and
|
||||
* writes the same to temporary buffers again.
|
||||
* It is used as many times as required until
|
||||
* rendering completes.
|
||||
* @forced_read_norm_write: Job chain for ending incremental rendering.
|
||||
* GPU address of a fragment job chain to render in the
|
||||
* circumstance where the tiler job chain did not
|
||||
* exceed its memory usage threshold this time and a
|
||||
* fragment job chain was previously run for the same
|
||||
* renderpass.
|
||||
* Reads unresolved multisampled and normally-discarded
|
||||
* output from temporary buffers written by a previous
|
||||
* forced_write job chain in order to complete a
|
||||
* renderpass.
|
||||
* It is used no more than once per renderpass.
|
||||
*
|
||||
* This structure is referenced by the main atom structure if
|
||||
* BASE_JD_REQ_END_RENDERPASS is set in the base_jd_core_req.
|
||||
*/
|
||||
struct base_jd_fragment {
|
||||
__u64 norm_read_norm_write;
|
||||
__u64 norm_read_forced_write;
|
||||
__u64 forced_read_forced_write;
|
||||
__u64 forced_read_norm_write;
|
||||
};
|
||||
|
||||
/**
|
||||
* typedef base_jd_prio - Base Atom priority.
|
||||
*
|
||||
@@ -591,9 +498,7 @@ typedef __u8 base_jd_prio;
|
||||
* struct base_jd_atom_v2 - Node of a dependency graph used to submit a
|
||||
* GPU job chain or soft-job to the kernel driver.
|
||||
*
|
||||
* @jc: GPU address of a job chain or (if BASE_JD_REQ_END_RENDERPASS
|
||||
* is set in the base_jd_core_req) the CPU address of a
|
||||
* base_jd_fragment object.
|
||||
* @jc: GPU address of a job chain.
|
||||
* @udata: User data.
|
||||
* @extres_list: List of external resources.
|
||||
* @nr_extres: Number of external resources or JIT allocations.
|
||||
@@ -612,9 +517,6 @@ typedef __u8 base_jd_prio;
|
||||
* specified.
|
||||
* @jobslot: Job slot to use when BASE_JD_REQ_JOB_SLOT is specified.
|
||||
* @core_req: Core requirements.
|
||||
* @renderpass_id: Renderpass identifier used to associate an atom that has
|
||||
* BASE_JD_REQ_START_RENDERPASS set in its core requirements
|
||||
* with an atom that has BASE_JD_REQ_END_RENDERPASS set.
|
||||
* @padding: Unused. Must be zero.
|
||||
*
|
||||
* This structure has changed since UK 10.2 for which base_jd_core_req was a
|
||||
@@ -642,8 +544,7 @@ struct base_jd_atom_v2 {
|
||||
__u8 device_nr;
|
||||
__u8 jobslot;
|
||||
base_jd_core_req core_req;
|
||||
__u8 renderpass_id;
|
||||
__u8 padding[7];
|
||||
__u8 padding[8];
|
||||
};
|
||||
|
||||
/**
|
||||
@@ -651,9 +552,7 @@ struct base_jd_atom_v2 {
|
||||
* at the beginning.
|
||||
*
|
||||
* @seq_nr: Sequence number of logical grouping of atoms.
|
||||
* @jc: GPU address of a job chain or (if BASE_JD_REQ_END_RENDERPASS
|
||||
* is set in the base_jd_core_req) the CPU address of a
|
||||
* base_jd_fragment object.
|
||||
* @jc: GPU address of a job chain.
|
||||
* @udata: User data.
|
||||
* @extres_list: List of external resources.
|
||||
* @nr_extres: Number of external resources or JIT allocations.
|
||||
@@ -835,11 +734,6 @@ enum {
|
||||
* @BASE_JD_EVENT_REMOVED_FROM_NEXT: raised when an atom that was configured in
|
||||
* the GPU has to be retried (but it has not
|
||||
* started) due to e.g., GPU reset
|
||||
* @BASE_JD_EVENT_END_RP_DONE: this is used for incremental rendering to signal
|
||||
* the completion of a renderpass. This value
|
||||
* shouldn't be returned to userspace but I haven't
|
||||
* seen where it is reset back to JD_EVENT_DONE.
|
||||
*
|
||||
* HW and low-level SW events are represented by event codes.
|
||||
* The status of jobs which succeeded are also represented by
|
||||
* an event code (see @BASE_JD_EVENT_DONE).
|
||||
@@ -938,8 +832,6 @@ enum base_jd_event_code {
|
||||
BASE_JD_EVENT_RANGE_KERNEL_ONLY_START = BASE_JD_SW_EVENT | BASE_JD_SW_EVENT_KERNEL | 0x000,
|
||||
BASE_JD_EVENT_REMOVED_FROM_NEXT = BASE_JD_SW_EVENT | BASE_JD_SW_EVENT_KERNEL |
|
||||
BASE_JD_SW_EVENT_JOB | 0x000,
|
||||
BASE_JD_EVENT_END_RP_DONE = BASE_JD_SW_EVENT | BASE_JD_SW_EVENT_KERNEL |
|
||||
BASE_JD_SW_EVENT_JOB | 0x001,
|
||||
|
||||
BASE_JD_EVENT_RANGE_KERNEL_ONLY_END = BASE_JD_SW_EVENT | BASE_JD_SW_EVENT_KERNEL |
|
||||
BASE_JD_SW_EVENT_RESERVED | 0x3FF
|
||||
|
||||
@@ -164,10 +164,16 @@
|
||||
* - Re-allow child process to do supported file operations (like mmap, ioctl
|
||||
* read, poll) on the file descriptor of mali device that was inherited
|
||||
* from the parent process.
|
||||
*/
|
||||
* 11.46:
|
||||
* - Remove renderpass_id from base_jd_atom_v2 to deprecate support for JM Incremental Rendering
|
||||
* 11.47:
|
||||
* - Reject non-protected allocations containing the BASE_MEM_PROTECTED memory flag.
|
||||
* - Reject allocations containing the BASE_MEM_DONT_NEED memory flag (it is only settable).
|
||||
* - Reject allocations containing the BASE_MEM_UNUSED_BIT_xx memory flags.
|
||||
*/
|
||||
|
||||
#define BASE_UK_VERSION_MAJOR 11
|
||||
#define BASE_UK_VERSION_MINOR 45
|
||||
#define BASE_UK_VERSION_MINOR 47
|
||||
|
||||
/**
|
||||
* struct kbase_ioctl_version_check - Check version compatibility between
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
|
||||
/*
|
||||
*
|
||||
* (C) COPYRIGHT 2022-2023 ARM Limited. All rights reserved.
|
||||
* (C) COPYRIGHT 2022-2024 ARM Limited. All rights reserved.
|
||||
*
|
||||
* This program is free software and is provided to you under the terms of the
|
||||
* GNU General Public License version 2 as published by the Free Software
|
||||
@@ -146,7 +146,6 @@ struct base_mem_handle {
|
||||
*/
|
||||
#define BASE_MEM_IMPORT_SYNC_ON_MAP_UNMAP ((base_mem_alloc_flags)1 << 26)
|
||||
|
||||
/* OUT */
|
||||
/* Kernel side cache sync ops required */
|
||||
#define BASE_MEM_KERNEL_SYNC ((base_mem_alloc_flags)1 << 28)
|
||||
|
||||
@@ -156,12 +155,10 @@ struct base_mem_handle {
|
||||
*/
|
||||
#define BASE_MEM_FLAGS_NR_BITS 30
|
||||
|
||||
/* A mask for all output bits, excluding IN/OUT bits.
|
||||
*/
|
||||
/* A mask for all bits that are output from kbase, but never input. */
|
||||
#define BASE_MEM_FLAGS_OUTPUT_MASK BASE_MEM_NEED_MMAP
|
||||
|
||||
/* A mask for all input bits, including IN/OUT bits.
|
||||
*/
|
||||
/* A mask for all bits that can be input to kbase. */
|
||||
#define BASE_MEM_FLAGS_INPUT_MASK \
|
||||
(((1 << BASE_MEM_FLAGS_NR_BITS) - 1) & ~BASE_MEM_FLAGS_OUTPUT_MASK)
|
||||
|
||||
|
||||
@@ -74,7 +74,7 @@
|
||||
* More flags can be added to this list, as long as they don't clash
|
||||
* (see BASE_MEM_FLAGS_NR_BITS for the number of the first free bit).
|
||||
*/
|
||||
typedef __u32 base_mem_alloc_flags;
|
||||
typedef __u64 base_mem_alloc_flags;
|
||||
|
||||
#define BASE_MEM_FLAGS_MODIFIABLE_NATIVE (BASE_MEM_DONT_NEED)
|
||||
|
||||
@@ -89,9 +89,10 @@ typedef __u32 base_mem_alloc_flags;
|
||||
/* A mask of all the flags that can be returned via the base_mem_get_flags()
|
||||
* interface.
|
||||
*/
|
||||
#define BASE_MEM_FLAGS_QUERYABLE \
|
||||
(BASE_MEM_FLAGS_INPUT_MASK & ~(BASE_MEM_DONT_QUERY | BASE_MEM_FLAGS_RESERVED | \
|
||||
BASE_MEM_FLAGS_UNUSED | BASEP_MEM_FLAGS_KERNEL_ONLY))
|
||||
#define BASE_MEM_FLAGS_QUERYABLE \
|
||||
(BASE_MEM_FLAGS_INPUT_MASK & \
|
||||
~(BASE_MEM_FLAGS_RESERVED | BASE_MEM_FLAGS_UNUSED | BASE_MEM_FLAGS_ACTION_MODIFIERS | \
|
||||
BASEP_MEM_FLAGS_KERNEL_ONLY))
|
||||
|
||||
/**
|
||||
* enum base_mem_import_type - Memory types supported by @a base_mem_import
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
|
||||
/*
|
||||
*
|
||||
* (C) COPYRIGHT 2017-2023 ARM Limited. All rights reserved.
|
||||
* (C) COPYRIGHT 2017-2024 ARM Limited. All rights reserved.
|
||||
*
|
||||
* This program is free software and is provided to you under the terms of the
|
||||
* GNU General Public License version 2 as published by the Free Software
|
||||
@@ -169,7 +169,7 @@ struct kbase_ioctl_hwcnt_reader_setup {
|
||||
* struct kbase_ioctl_hwcnt_values - Values to set dummy the dummy counters to.
|
||||
* @data: Counter samples for the dummy model.
|
||||
* @size: Size of the counter sample data.
|
||||
* @padding: Padding.
|
||||
* @padding: Currently unused, must be zero
|
||||
*/
|
||||
struct kbase_ioctl_hwcnt_values {
|
||||
__u64 data;
|
||||
@@ -193,7 +193,7 @@ struct kbase_ioctl_disjoint_query {
|
||||
* struct kbase_ioctl_get_ddk_version - Query the kernel version
|
||||
* @version_buffer: Buffer to receive the kernel version string
|
||||
* @size: Size of the buffer
|
||||
* @padding: Padding
|
||||
* @padding: Currently unused, must be zero
|
||||
*
|
||||
* The ioctl will return the number of bytes written into version_buffer
|
||||
* (which includes a NULL byte) or a negative error code
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
|
||||
/*
|
||||
*
|
||||
* (C) COPYRIGHT 2014-2023 ARM Limited. All rights reserved.
|
||||
* (C) COPYRIGHT 2014-2024 ARM Limited. All rights reserved.
|
||||
*
|
||||
* This program is free software and is provided to you under the terms of the
|
||||
* GNU General Public License version 2 as published by the Free Software
|
||||
@@ -30,6 +30,6 @@
|
||||
* KBASE_MEM_PROFILE_MAX_BUF_SIZE - The size of the buffer to accumulate the histogram report text
|
||||
* in @see @ref CCTXP_HIST_BUF_SIZE_MAX_LENGTH_REPORT
|
||||
*/
|
||||
#define KBASE_MEM_PROFILE_MAX_BUF_SIZE ((size_t)(64 + ((80 + (56 * 64)) * 57) + 56))
|
||||
#define KBASE_MEM_PROFILE_MAX_BUF_SIZE ((size_t)(64 + ((80 + (56 * 64)) * 69) + 56))
|
||||
|
||||
#endif /*_UAPI_KBASE_MEM_PROFILE_DEBUGFS_BUF_SIZE_H_*/
|
||||
|
||||
Reference in New Issue
Block a user