enum fd_param_id {
FD_DEVICE_ID,
FD_GMEM_SIZE,
+ FD_GMEM_BASE,
FD_GPU_ID,
FD_CHIP_ID,
FD_MAX_FREQ,
FD_VERSION_MADVISE = 1, /* kernel supports madvise */
FD_VERSION_UNLIMITED_CMDS = 1, /* submits w/ >4 cmd buffers (growable ringbuffer) */
FD_VERSION_FENCE_FD = 2, /* submit command supports in/out fences */
+ FD_VERSION_GMEM_BASE = 3, /* supports querying GMEM base address */
FD_VERSION_SUBMIT_QUEUES = 3, /* submit queues and multiple priority levels */
FD_VERSION_BO_IOVA = 3, /* supports fd_bo_get/put_iova() */
FD_VERSION_SOFTPIN = 4, /* adds softpin, bo name, and dump flag */
case FD_GMEM_SIZE:
*value = msm_pipe->gmem;
return 0;
+ case FD_GMEM_BASE:
+ *value = msm_pipe->gmem_base;
+ return 0;
case FD_CHIP_ID:
*value = msm_pipe->chip_id;
return 0;
msm_pipe->gmem = get_param(pipe, MSM_PARAM_GMEM_SIZE);
msm_pipe->chip_id = get_param(pipe, MSM_PARAM_CHIP_ID);
+ if (fd_device_version(pipe->dev) >= FD_VERSION_GMEM_BASE)
+ msm_pipe->gmem_base = get_param(pipe, MSM_PARAM_GMEM_BASE);
+
if (! msm_pipe->gpu_id)
goto fail;