mirror of
git://nv-tegra.nvidia.com/linux-nvgpu.git
synced 2025-12-25 02:52:51 +03:00
gk20a_busy ref count is needed to track if there no one has taken ref and processing something to avoid any ongoing activity during suspend. Patch enables the ref count support by removing the config flag. Jira NVGPU-8506 Change-Id: Ic9389ad42be34e2357858ea79adf05f30e85efbf Signed-off-by: prsethi <prsethi@nvidia.com> Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvgpu/+/2769479 Reviewed-by: svcacv <svcacv@nvidia.com> Reviewed-by: Deepak Goyal <dgoyal@nvidia.com> GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
391 lines
13 KiB
Makefile
391 lines
13 KiB
Makefile
#
|
|
# Copyright (c) 2019-2022, 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_TEGRA_GK20A_PMU=1 \
|
|
-DCONFIG_TEGRA_ACR=1 \
|
|
-DCONFIG_NVGPU_GR_VIRTUALIZATION
|
|
|
|
ifeq ($(CONFIG_NVGPU_DGPU),1)
|
|
NVGPU_COMMON_CFLAGS += -DCONFIG_PCI_MSI
|
|
endif
|
|
|
|
ifndef NVGPU_HVRTOS
|
|
CONFIG_NVGPU_IVM_BUILD := 1
|
|
NVGPU_COMMON_CFLAGS += -DCONFIG_NVGPU_IVM_BUILD
|
|
endif
|
|
|
|
CONFIG_NVGPU_LOGGING := 1
|
|
NVGPU_COMMON_CFLAGS += -DCONFIG_NVGPU_LOGGING
|
|
|
|
ifneq ($(CONFIG_NVGPU_DGPU),1)
|
|
ifneq ($(NVGPU_HVRTOS),1)
|
|
CONFIG_NVS_PRESENT := 1
|
|
NVGPU_COMMON_CFLAGS += -DCONFIG_NVS_PRESENT
|
|
|
|
NVS_USE_IMPL_TYPES := 1
|
|
NVGPU_COMMON_CFLAGS += -DNVS_USE_IMPL_TYPES
|
|
endif
|
|
endif
|
|
|
|
# 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
|
|
|
|
CONFIG_NVGPU_GRAPHICS := 1
|
|
NVGPU_COMMON_CFLAGS += -DCONFIG_NVGPU_GRAPHICS
|
|
|
|
CONFIG_NVGPU_SUPPORT_GV11B := 1
|
|
NVGPU_COMMON_CFLAGS += -DCONFIG_NVGPU_SUPPORT_GV11B
|
|
|
|
# Error reporting needs to be supported in qnx-safety, qnx-standard, linux.
|
|
# In qnx-standard, nvgpu makefile is used for RM SERVER. Since iGPU is in
|
|
# pass through mode in all three platforms, EPL libraries should not be
|
|
# included in RM server. Use this flag to include/exclude MISC_EC libraries.
|
|
ifneq ($(NV_BUILD_CONFIGURATION_IS_VM_SERVER), 1)
|
|
CONFIG_NVGPU_ENABLE_MISC_EC := 1
|
|
NVGPU_COMMON_CFLAGS += -DCONFIG_NVGPU_ENABLE_MISC_EC
|
|
endif
|
|
CONFIG_NVGPU_COMPRESSION := 1
|
|
NVGPU_COMMON_CFLAGS += -DCONFIG_NVGPU_COMPRESSION
|
|
|
|
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_FALCON_DEBUG := 1
|
|
NVGPU_COMMON_CFLAGS += -DCONFIG_NVGPU_FALCON_DEBUG
|
|
|
|
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)
|
|
|
|
ifndef NVGPU_HVRTOS
|
|
CONFIG_NVGPU_TRACE := 1
|
|
NVGPU_COMMON_CFLAGS += -DCONFIG_NVGPU_TRACE
|
|
endif
|
|
|
|
CONFIG_NVGPU_FALCON_DEBUG := 1
|
|
NVGPU_COMMON_CFLAGS += -DCONFIG_NVGPU_FALCON_DEBUG
|
|
|
|
# Enable FSI Error injection support on safety debug and regular build
|
|
# when the HSI error injection utility and NVGPU's MISC_EC support is
|
|
# enabled.
|
|
ifeq ($(CONFIG_TEGRA_HSIERRRPTINJ),1)
|
|
ifeq ($(CONFIG_NVGPU_ENABLE_MISC_EC),1)
|
|
CONFIG_NVGPU_FSI_ERR_INJECTION := 1
|
|
NVGPU_COMMON_CFLAGS += -DCONFIG_NVGPU_FSI_ERR_INJECTION
|
|
endif
|
|
endif
|
|
|
|
#
|
|
# Flags enabled only for regular build profile.
|
|
#
|
|
ifneq ($(profile),safety_debug)
|
|
|
|
ifneq ($(NVGPU_HVRTOS),1)
|
|
CONFIG_NVGPU_SYSFS := 1
|
|
NVGPU_COMMON_CFLAGS += -DCONFIG_NVGPU_SYSFS
|
|
endif
|
|
|
|
# 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_GFXP := 1
|
|
NVGPU_COMMON_CFLAGS += -DCONFIG_NVGPU_GFXP
|
|
|
|
CONFIG_NVGPU_CYCLESTATS := 1
|
|
NVGPU_COMMON_CFLAGS += -DCONFIG_NVGPU_CYCLESTATS
|
|
|
|
CONFIG_NVGPU_FECS_TRACE := 1
|
|
NVGPU_COMMON_CFLAGS += -DCONFIG_NVGPU_FECS_TRACE
|
|
|
|
ifneq ($(CONFIG_NVGPU_DGPU),1)
|
|
ifneq ($(NVGPU_HVRTOS),1)
|
|
CONFIG_NVGPU_IGPU_VIRT := 1
|
|
NVGPU_COMMON_CFLAGS += -DCONFIG_NVGPU_IGPU_VIRT
|
|
endif
|
|
endif
|
|
|
|
# Enable the usage of 3LSS error injection features.
|
|
CONFIG_NVGPU_USE_3LSS_ERR_INJECTION := 1
|
|
NVGPU_COMMON_CFLAGS += -DCONFIG_NVGPU_USE_3LSS_ERR_INJECTION
|
|
|
|
ifneq ($(NVGPU_HVRTOS),1)
|
|
# Enable nvlink support for normal build.
|
|
CONFIG_NVGPU_NVLINK := 1
|
|
NVGPU_COMMON_CFLAGS += -DCONFIG_NVGPU_NVLINK
|
|
endif
|
|
|
|
# Enable static_powergate support for normal build.
|
|
CONFIG_NVGPU_STATIC_POWERGATE := 1
|
|
NVGPU_COMMON_CFLAGS += -DCONFIG_NVGPU_STATIC_POWERGATE
|
|
|
|
# Enable mssnvlink0 reset control for normal build
|
|
CONFIG_MSSNVLINK0_RST_CONTROL := 1
|
|
NVGPU_COMMON_CFLAGS += -DCONFIG_MSSNVLINK0_RST_CONTROL
|
|
|
|
ifneq ($(NVGPU_HVRTOS),1)
|
|
# Enable dgpu support for normal build.
|
|
CONFIG_NVGPU_DGPU := 1
|
|
NVGPU_COMMON_CFLAGS += -DCONFIG_NVGPU_DGPU
|
|
endif
|
|
|
|
CONFIG_NVGPU_VPR := 1
|
|
NVGPU_COMMON_CFLAGS += -DCONFIG_NVGPU_VPR
|
|
|
|
CONFIG_NVGPU_REPLAYABLE_FAULT := 1
|
|
NVGPU_COMMON_CFLAGS += -DCONFIG_NVGPU_REPLAYABLE_FAULT
|
|
|
|
CONFIG_NVGPU_FALCON_DEBUG := 1
|
|
NVGPU_COMMON_CFLAGS += -DCONFIG_NVGPU_FALCON_DEBUG
|
|
|
|
# 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
|
|
|
|
# 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
|
|
|
|
ifneq ($(NVGPU_HVRTOS),1)
|
|
CONFIG_NVGPU_CLK_ARB := 1
|
|
NVGPU_COMMON_CFLAGS += -DCONFIG_NVGPU_CLK_ARB
|
|
endif
|
|
|
|
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 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
|
|
|
|
ifndef NVGPU_HVRTOS
|
|
# Enable Multi Instance GPU support for normal build
|
|
CONFIG_NVGPU_MIG := 1
|
|
NVGPU_COMMON_CFLAGS += -DCONFIG_NVGPU_MIG
|
|
endif
|
|
|
|
# Enable gsp scheduler for normal build
|
|
CONFIG_NVGPU_GSP_SCHEDULER := 1
|
|
NVGPU_COMMON_CFLAGS += -DCONFIG_NVGPU_GSP_SCHEDULER
|
|
|
|
# Code to encapsulate the error information into a uniform interface via
|
|
# nvgpu_err_msg is currently used, but might be needed in future by nvgpu_rm
|
|
# process. Retain this code under CONFIG_NVGPU_INTR_DEBUG which is enabled
|
|
# only in standard build for now.
|
|
CONFIG_NVGPU_INTR_DEBUG := 1
|
|
NVGPU_COMMON_CFLAGS += -DCONFIG_NVGPU_INTR_DEBUG
|
|
|
|
# Enable GSP stress test
|
|
ifeq ($(CONFIG_NVGPU_GSP_SCHEDULER),1)
|
|
CONFIG_NVGPU_GSP_STRESS_TEST := 1
|
|
NVGPU_COMMON_CFLAGS += -DCONFIG_NVGPU_GSP_STRESS_TEST
|
|
endif
|
|
# Enable Nonstall interrupt support for normal build
|
|
CONFIG_NVGPU_NONSTALL_INTR := 1
|
|
NVGPU_COMMON_CFLAGS += -DCONFIG_NVGPU_NONSTALL_INTR
|
|
|
|
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
|