mirror of
git://nv-tegra.nvidia.com/linux-nvgpu.git
synced 2025-12-25 02:52:51 +03:00
Sometimes the syncpt-based fences are not used, and often the sema-based fences are not used. Move code around to new files to make it easier to see what happens and to allow leaving code out of the build easily. Start using nvgpu_fence_ops::free again and move the fence release there. The syncpt data is not refcounted, so it doesn't have this. Jira NVGPU-5773 Change-Id: I991f91886c59cf2c2fbfd2e75305ba512b5d7371 Signed-off-by: Konsta Hölttä <kholtta@nvidia.com> Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvgpu/+/2395069 Reviewed-by: automaticguardword <automaticguardword@nvidia.com> Reviewed-by: svc-mobile-coverity <svc-mobile-coverity@nvidia.com> Reviewed-by: svc-mobile-misra <svc-mobile-misra@nvidia.com> Reviewed-by: svc-mobile-cert <svc-mobile-cert@nvidia.com> Reviewed-by: Deepak Nibade <dnibade@nvidia.com> Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com> GVS: Gerrit_Virtual_Submit Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
318 lines
11 KiB
Makefile
318 lines
11 KiB
Makefile
#
|
|
# Copyright (c) 2019-2020, NVIDIA CORPORATION. All rights reserved.
|
|
#
|
|
# Permission is hereby granted, free of charge, to any person obtaining a
|
|
# copy of this software and associated documentation files (the "Software"),
|
|
# to deal in the Software without restriction, including without limitation
|
|
# the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
|
# and/or sell copies of the Software, and to permit persons to whom the
|
|
# Software is furnished to do so, subject to the following conditions:
|
|
#
|
|
# The above copyright notice and this permission notice shall be included in
|
|
# all copies or substantial portions of the Software.
|
|
#
|
|
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
|
|
# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
|
# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
|
# DEALINGS IN THE SOFTWARE.
|
|
#
|
|
|
|
# This file defines the make variables and cflags applicable to nvgpu common
|
|
# shared by qnx, nvgpu userspace, test builds. Note that cflags are added to
|
|
# variable NVGPU_COMMON_CFLAGS that needs to be used by the parent Makefile
|
|
# to update corresponding cflags variable.
|
|
|
|
# Default is the regular profile. That can be overridden if necessary. by
|
|
# setting the NVGPU_FORCE_SAFETY_PROFILE. This is a useful hack while we
|
|
# wait for the userspace tmake build to make its way into a proper safety
|
|
# profile build.
|
|
profile := default
|
|
|
|
# Decide whether to use the safety release, safety debug or the regular profile.
|
|
ifeq ($(NV_BUILD_CONFIGURATION_IS_SAFETY),1)
|
|
profile := safety_release
|
|
ifeq ($(NV_BUILD_CONFIGURATION_IS_DEBUG),1)
|
|
profile := safety_debug
|
|
endif
|
|
endif
|
|
|
|
ifeq ($(NVGPU_FORCE_SAFETY_PROFILE),1)
|
|
profile := safety_release
|
|
ifeq ($(NVGPU_FORCE_DEBUG_PROFILE),1)
|
|
profile := safety_debug
|
|
endif
|
|
endif
|
|
|
|
NVGPU_COMMON_CFLAGS :=
|
|
|
|
#
|
|
# Flags always enabled regardless of build profile.
|
|
#
|
|
|
|
NVGPU_COMMON_CFLAGS += \
|
|
-DCONFIG_NVGPU_SUPPORT_TURING \
|
|
-DCONFIG_TEGRA_GK20A_PMU=1 \
|
|
-DCONFIG_TEGRA_ACR=1 \
|
|
-DCONFIG_NVGPU_GR_VIRTUALIZATION \
|
|
-DCONFIG_PCI_MSI
|
|
|
|
CONFIG_NVGPU_LOGGING := 1
|
|
NVGPU_COMMON_CFLAGS += -DCONFIG_NVGPU_LOGGING
|
|
|
|
# Syncpoint support provided by nvhost is expected to exist.
|
|
CONFIG_TEGRA_GK20A_NVHOST := 1
|
|
NVGPU_COMMON_CFLAGS += -DCONFIG_TEGRA_GK20A_NVHOST
|
|
|
|
# Syncfds are a Linux feature.
|
|
CONFIG_NVGPU_SYNCFD_NONE := 1
|
|
NVGPU_COMMON_CFLAGS += -DCONFIG_NVGPU_SYNCFD_NONE
|
|
|
|
ifeq ($(profile),$(filter $(profile),safety_debug safety_release))
|
|
|
|
# Enable golden context verification only for safety debug/release build
|
|
NVGPU_COMMON_CFLAGS += \
|
|
-DCONFIG_NVGPU_GR_GOLDEN_CTX_VERIFICATION \
|
|
-DCONFIG_NVGPU_BUILD_CONFIGURATION_IS_SAFETY
|
|
|
|
## For tesing of CTXSW FW error codes manually, enable below configs in safety build.
|
|
## Enable only one config at a time, because only one error can be tested at a time.
|
|
# NVGPU_COMMON_CFLAGS += \
|
|
# -DCONFIG_NVGPU_CTXSW_FW_ERROR_WDT_TESTING
|
|
#
|
|
# NVGPU_COMMON_CFLAGS += \
|
|
# -DCONFIG_NVGPU_CTXSW_FW_ERROR_CODE_TESTING
|
|
#
|
|
# NVGPU_COMMON_CFLAGS += \
|
|
# -DCONFIG_NVGPU_CTXSW_FW_ERROR_HEADER_TESTING
|
|
|
|
ifeq ($(CONFIG_NVGPU_DGPU),1)
|
|
|
|
NVGPU_COMMON_CFLAGS += -DCONFIG_NVGPU_DGPU
|
|
|
|
CONFIG_NVGPU_NVLINK := 1
|
|
NVGPU_COMMON_CFLAGS += -DCONFIG_NVGPU_NVLINK
|
|
|
|
# used by sec2 code
|
|
CONFIG_NVGPU_ENGINE_QUEUE := 1
|
|
NVGPU_COMMON_CFLAGS += -DCONFIG_NVGPU_ENGINE_QUEUE
|
|
|
|
# used in ce_app
|
|
CONFIG_NVGPU_FENCE := 1
|
|
NVGPU_COMMON_CFLAGS += -DCONFIG_NVGPU_FENCE
|
|
|
|
# ce_app uses syncpt (nvgpu_nvhost_syncpt_wait_timeout_ext)
|
|
CONFIG_NVGPU_KERNEL_MODE_SUBMIT := 1
|
|
NVGPU_COMMON_CFLAGS += -DCONFIG_NVGPU_KERNEL_MODE_SUBMIT
|
|
|
|
CONFIG_NVGPU_FALCON_NON_FUSA := 1
|
|
NVGPU_COMMON_CFLAGS += -DCONFIG_NVGPU_FALCON_NON_FUSA
|
|
|
|
CONFIG_NVGPU_GR_FALCON_NON_SECURE_BOOT := 1
|
|
NVGPU_COMMON_CFLAGS += -DCONFIG_NVGPU_GR_FALCON_NON_SECURE_BOOT
|
|
|
|
CONFIG_NVGPU_SM_DIVERSITY := 1
|
|
NVGPU_COMMON_CFLAGS += -DCONFIG_NVGPU_SM_DIVERSITY
|
|
|
|
CONFIG_NVGPU_USE_3LSS_ERR_INJECTION := 1
|
|
NVGPU_COMMON_CFLAGS += -DCONFIG_NVGPU_USE_3LSS_ERR_INJECTION
|
|
|
|
CONFIG_NVGPU_LS_PMU := 1
|
|
NVGPU_COMMON_CFLAGS += -DCONFIG_NVGPU_LS_PMU
|
|
|
|
CONFIG_NVGPU_CLK_ARB := 1
|
|
NVGPU_COMMON_CFLAGS += -DCONFIG_NVGPU_CLK_ARB
|
|
endif
|
|
|
|
endif
|
|
|
|
CONFIG_NVGPU_TEGRA_FUSE := 1
|
|
NVGPU_COMMON_CFLAGS += -DCONFIG_NVGPU_TEGRA_FUSE
|
|
|
|
#
|
|
# Flags enabled only for safety debug and regular build profile.
|
|
#
|
|
ifneq ($(profile),safety_release)
|
|
|
|
CONFIG_NVGPU_TRACE := 1
|
|
NVGPU_COMMON_CFLAGS += -DCONFIG_NVGPU_TRACE
|
|
|
|
NVGPU_COMMON_CFLAGS += -DCONFIG_NVGPU_FALCON_DEBUG
|
|
|
|
#
|
|
# Flags enabled only for regular build profile.
|
|
#
|
|
ifneq ($(profile),safety_debug)
|
|
|
|
CONFIG_NVGPU_SYSFS := 1
|
|
NVGPU_COMMON_CFLAGS += -DCONFIG_NVGPU_SYSFS
|
|
|
|
# ACR feature to enable old tegra ACR profile support
|
|
CONFIG_NVGPU_ACR_LEGACY := 1
|
|
NVGPU_COMMON_CFLAGS += -DCONFIG_NVGPU_ACR_LEGACY
|
|
|
|
CONFIG_NVGPU_ENGINE_QUEUE := 1
|
|
NVGPU_COMMON_CFLAGS += -DCONFIG_NVGPU_ENGINE_QUEUE
|
|
|
|
CONFIG_NVGPU_DEBUGGER := 1
|
|
NVGPU_COMMON_CFLAGS += -DCONFIG_NVGPU_DEBUGGER
|
|
|
|
CONFIG_NVGPU_PROFILER := 1
|
|
NVGPU_COMMON_CFLAGS += -DCONFIG_NVGPU_PROFILER
|
|
|
|
CONFIG_NVGPU_RECOVERY := 1
|
|
NVGPU_COMMON_CFLAGS += -DCONFIG_NVGPU_RECOVERY
|
|
|
|
CONFIG_NVGPU_CILP := 1
|
|
NVGPU_COMMON_CFLAGS += -DCONFIG_NVGPU_CILP
|
|
|
|
CONFIG_NVGPU_CYCLESTATS := 1
|
|
NVGPU_COMMON_CFLAGS += -DCONFIG_NVGPU_CYCLESTATS
|
|
|
|
CONFIG_NVGPU_FECS_TRACE := 1
|
|
NVGPU_COMMON_CFLAGS += -DCONFIG_NVGPU_FECS_TRACE
|
|
|
|
CONFIG_NVGPU_IGPU_VIRT := 1
|
|
NVGPU_COMMON_CFLAGS += -DCONFIG_NVGPU_IGPU_VIRT
|
|
|
|
# Enable the usage of 3LSS error injection features.
|
|
CONFIG_NVGPU_USE_3LSS_ERR_INJECTION := 1
|
|
NVGPU_COMMON_CFLAGS += -DCONFIG_NVGPU_USE_3LSS_ERR_INJECTION
|
|
|
|
# Enable Graphics support for normal build
|
|
CONFIG_NVGPU_GRAPHICS := 1
|
|
NVGPU_COMMON_CFLAGS += -DCONFIG_NVGPU_GRAPHICS
|
|
|
|
# Enable nvlink support for normal build.
|
|
CONFIG_NVGPU_NVLINK := 1
|
|
NVGPU_COMMON_CFLAGS += -DCONFIG_NVGPU_NVLINK
|
|
|
|
# Enable tpc_powergate support for normal build.
|
|
CONFIG_NVGPU_TPC_POWERGATE := 1
|
|
NVGPU_COMMON_CFLAGS += -DCONFIG_NVGPU_TPC_POWERGATE
|
|
|
|
# Enable mssnvlink0 reset control for normal build
|
|
CONFIG_MSSNVLINK0_RST_CONTROL := 1
|
|
NVGPU_COMMON_CFLAGS += -DCONFIG_MSSNVLINK0_RST_CONTROL
|
|
|
|
# Enable dgpu support for normal build.
|
|
CONFIG_NVGPU_DGPU := 1
|
|
NVGPU_COMMON_CFLAGS += -DCONFIG_NVGPU_DGPU
|
|
|
|
# Enable dgpu_next for normal build
|
|
|
|
ifneq ($(NV_BUILD_CONFIGURATION_IS_EXTERNAL), 1)
|
|
CONFIG_NVGPU_NEXT := 1
|
|
NVGPU_COMMON_CFLAGS += -DCONFIG_NVGPU_NEXT
|
|
endif
|
|
|
|
CONFIG_NVGPU_VPR := 1
|
|
NVGPU_COMMON_CFLAGS += -DCONFIG_NVGPU_VPR
|
|
|
|
CONFIG_NVGPU_REPLAYABLE_FAULT := 1
|
|
NVGPU_COMMON_CFLAGS += -DCONFIG_NVGPU_REPLAYABLE_FAULT
|
|
|
|
# Enable LS PMU support for normal build
|
|
CONFIG_NVGPU_LS_PMU := 1
|
|
NVGPU_COMMON_CFLAGS += -DCONFIG_NVGPU_LS_PMU
|
|
|
|
# Enable elpg support for normal build
|
|
CONFIG_NVGPU_POWER_PG := 1
|
|
NVGPU_COMMON_CFLAGS += -DCONFIG_NVGPU_POWER_PG
|
|
|
|
# Enable sim support for normal build
|
|
CONFIG_NVGPU_SIM := 1
|
|
NVGPU_COMMON_CFLAGS += -DCONFIG_NVGPU_SIM
|
|
|
|
CONFIG_NVGPU_COMPRESSION := 1
|
|
NVGPU_COMMON_CFLAGS += -DCONFIG_NVGPU_COMPRESSION
|
|
|
|
# Enable non FUSA HALs for normal build
|
|
CONFIG_NVGPU_HAL_NON_FUSA := 1
|
|
NVGPU_COMMON_CFLAGS += -DCONFIG_NVGPU_HAL_NON_FUSA
|
|
|
|
# Enable non FUSA common code for normal build
|
|
CONFIG_NVGPU_NON_FUSA := 1
|
|
NVGPU_COMMON_CFLAGS += -DCONFIG_NVGPU_NON_FUSA
|
|
|
|
CONFIG_NVGPU_CLK_ARB := 1
|
|
NVGPU_COMMON_CFLAGS += -DCONFIG_NVGPU_CLK_ARB
|
|
|
|
NVGPU_COMMON_CFLAGS += -DCONFIG_NVGPU_FALCON_NON_FUSA
|
|
|
|
NVGPU_COMMON_CFLAGS += -DCONFIG_NVGPU_IOCTL_NON_FUSA
|
|
NVGPU_COMMON_CFLAGS += -DCONFIG_NVGPU_DETERMINISTIC_CHANNELS
|
|
|
|
CONFIG_NVGPU_GR_FALCON_NON_SECURE_BOOT := 1
|
|
NVGPU_COMMON_CFLAGS += -DCONFIG_NVGPU_GR_FALCON_NON_SECURE_BOOT
|
|
|
|
CONFIG_NVGPU_SET_FALCON_ACCESS_MAP := 1
|
|
NVGPU_COMMON_CFLAGS += -DCONFIG_NVGPU_SET_FALCON_ACCESS_MAP
|
|
|
|
# Enable SW Semaphore for normal build
|
|
CONFIG_NVGPU_SW_SEMAPHORE := 1
|
|
NVGPU_COMMON_CFLAGS += -DCONFIG_NVGPU_SW_SEMAPHORE
|
|
|
|
# Enable Channel WDT for safety build until we switch to user mode submits only
|
|
CONFIG_NVGPU_CHANNEL_WDT := 1
|
|
NVGPU_COMMON_CFLAGS += -DCONFIG_NVGPU_CHANNEL_WDT
|
|
|
|
# Enable Kernel Mode submit for safety build until we switch to user mode
|
|
# submits only
|
|
CONFIG_NVGPU_KERNEL_MODE_SUBMIT := 1
|
|
NVGPU_COMMON_CFLAGS += -DCONFIG_NVGPU_KERNEL_MODE_SUBMIT
|
|
|
|
# Enable fences for safety build till until we switch to user mode submits only
|
|
CONFIG_NVGPU_FENCE := 1
|
|
NVGPU_COMMON_CFLAGS += -DCONFIG_NVGPU_FENCE
|
|
|
|
# Enable powergate lib for normal build
|
|
CONFIG_NVGPU_USE_POWERGATE_LIB := 1
|
|
NVGPU_COMMON_CFLAGS += -DCONFIG_NVGPU_USE_POWERGATE_LIB
|
|
|
|
NVGPU_COMMON_CFLAGS += -DCONFIG_NVGPU_FIFO_ENGINE_ACTIVITY
|
|
# Enable dynamic busy/idle support
|
|
CONFIG_NVGPU_DYNAMIC_BUSY_IDLE_SUPPORT := 1
|
|
NVGPU_COMMON_CFLAGS += -DCONFIG_NVGPU_DYNAMIC_BUSY_IDLE_SUPPORT
|
|
|
|
# Enable HW based error injection support
|
|
NVGPU_COMMON_CFLAGS += -DCONFIG_NVGPU_INJECT_HWERR
|
|
|
|
# Enable Channel/TSG Scheduling
|
|
CONFIG_NVGPU_CHANNEL_TSG_SCHEDULING := 1
|
|
NVGPU_COMMON_CFLAGS += -DCONFIG_NVGPU_CHANNEL_TSG_SCHEDULING
|
|
|
|
# Enable Channel/TSG Control
|
|
CONFIG_NVGPU_CHANNEL_TSG_CONTROL := 1
|
|
NVGPU_COMMON_CFLAGS += -DCONFIG_NVGPU_CHANNEL_TSG_CONTROL
|
|
|
|
# Enable Virtualization server for normal build
|
|
NVGPU_COMMON_CFLAGS += -DCONFIG_TEGRA_GR_VIRTUALIZATION_SERVER
|
|
|
|
# Enable SM diversity support for normal build
|
|
CONFIG_NVGPU_SM_DIVERSITY := 1
|
|
NVGPU_COMMON_CFLAGS += -DCONFIG_NVGPU_SM_DIVERSITY
|
|
|
|
# Enable Multi Instance GPU support for normal build
|
|
CONFIG_NVGPU_MIG := 1
|
|
NVGPU_COMMON_CFLAGS += -DCONFIG_NVGPU_MIG
|
|
|
|
endif
|
|
endif
|
|
|
|
# Enable USERD only if kernel mode submit is supported
|
|
ifeq ($(CONFIG_NVGPU_KERNEL_MODE_SUBMIT),1)
|
|
CONFIG_NVGPU_USERD := 1
|
|
NVGPU_COMMON_CFLAGS += -DCONFIG_NVGPU_USERD
|
|
endif
|
|
|
|
ifeq ($(CONFIG_NVGPU_DEBUGGER),1)
|
|
NVGPU_COMMON_CFLAGS += -DCONFIG_NVGPU_ENGINE_RESET
|
|
endif
|
|
|
|
ifeq ($(CONFIG_NVGPU_RECOVERY),1)
|
|
NVGPU_COMMON_CFLAGS += -DCONFIG_NVGPU_ENGINE_RESET
|
|
endif
|