diff --git a/drivers/gpu/nvgpu/Makefile.shared.configs b/drivers/gpu/nvgpu/Makefile.shared.configs index e484020a0..943bbd1b6 100644 --- a/drivers/gpu/nvgpu/Makefile.shared.configs +++ b/drivers/gpu/nvgpu/Makefile.shared.configs @@ -25,9 +25,40 @@ # 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 profile or the regular profile. +ifeq ($(NV_BUILD_CONFIGURATION_IS_SAFETY),1) +profile := safety +endif +ifeq ($(NVGPU_FORCE_SAFETY_PROFILE),1) +profile := safety +endif + +NVGPU_COMMON_CFLAGS := + +# +# Flags always enabled regardless of build profile. +# + +NVGPU_COMMON_CFLAGS += \ + -DCONFIG_TEGRA_GK20A_NVHOST \ + -DCONFIG_GK20A_CYCLE_STATS \ + -DCONFIG_TEGRA_T19X_GRHOST \ + -DCONFIG_NVGPU_SUPPORT_TURING \ + -DCONFIG_TEGRA_GK20A_PMU=1 \ + -DCONFIG_TEGRA_ACR=1 \ + -DCONFIG_TEGRA_GR_VIRTUALIZATION \ + -DCONFIG_GK20A_VIDMEM=1 \ + -DCONFIG_PCI_MSI + # Enable debugger APIs for safety build until devctl whitelisting is done NVGPU_DEBUGGER := 1 -NVGPU_COMMON_CFLAGS := -DNVGPU_DEBUGGER +NVGPU_COMMON_CFLAGS += -DNVGPU_DEBUGGER # Enable cyclestats APIs for safety build until complete debugger support is enabled NVGPU_CYCLESTATS_SUPPORT := 1 @@ -53,7 +84,10 @@ NVGPU_COMMON_CFLAGS += -DNVGPU_ENGINE NVGPU_FEATURE_CHANNEL_TSG_SCHEDULING := 1 NVGPU_COMMON_CFLAGS += -DNVGPU_FEATURE_CHANNEL_TSG_SCHEDULING -ifeq ($(NV_BUILD_CONFIGURATION_IS_SAFETY),0) +# +# Flags enabled for only the regular build profile. +# +ifneq ($(profile),safety) NVGPU_FECS_TRACE_SUPPORT := 1 NVGPU_COMMON_CFLAGS += -DCONFIG_GK20A_CTXSW_TRACE diff --git a/drivers/gpu/nvgpu/Makefile.tmk b/drivers/gpu/nvgpu/Makefile.tmk index eae2fd485..1abdbfa90 100644 --- a/drivers/gpu/nvgpu/Makefile.tmk +++ b/drivers/gpu/nvgpu/Makefile.tmk @@ -35,7 +35,7 @@ ARCH_PY := $(NV_SOURCE)/core-private/tools/arch/arch.py NVGPU_NEXT_SOURCE := \ $(NV_COMPONENT_DIR)/../../../../nvgpu-next/drivers/gpu/nvgpu -NVGPU_POSIX := -D__NVGPU_POSIX__ +NVGPU_POSIX := 1 NVGPU_ARCH := $(NV_COMPONENT_DIR)/../../../arch NVGPU_ARCH_YAML := $(NVGPU_ARCH)/*.yaml @@ -51,18 +51,11 @@ NV_COMPONENT_INCLUDES := \ ifneq ($(NV_BUILD_CONFIGURATION_OS_IS_QNX),1) NV_COMPONENT_SYSTEM_SHARED_LIBRARIES += pthread endif -NV_COMPONENT_CFLAGS += $(NVGPU_POSIX) - -NV_COMPONENT_CFLAGS += \ - -DCONFIG_TEGRA_GK20A_NVHOST \ - -DCONFIG_TEGRA_T19X_GRHOST \ - -DCONFIG_NVGPU_SUPPORT_TURING \ - -DCONFIG_TEGRA_GK20A_PMU=1 \ - -DCONFIG_TEGRA_ACR=1 \ - -DCONFIG_TEGRA_GR_VIRTUALIZATION \ - -DCONFIG_GK20A_VIDMEM=1 \ - -DCONFIG_PCI_MSI +NV_COMPONENT_CFLAGS += \ + -D__NVGPU_POSIX__ \ + -DCONFIG_NVGPU_SUPPORT_TURING +NVGPU_FORCE_SAFETY_PROFILE := 1 -include $(NV_COMPONENT_DIR)/Makefile.shared.configs NV_COMPONENT_CFLAGS += $(NVGPU_COMMON_CFLAGS) diff --git a/userspace/Makefile b/userspace/Makefile index 4b6fd964d..63e97f913 100644 --- a/userspace/Makefile +++ b/userspace/Makefile @@ -60,8 +60,10 @@ NVGPU_FAULT_INJECTION_ENABLEMENT=1 # Linux configs. We want these so that we can mirror builds from the actual # Linux kernel. -include Makefile.configs +# include Makefile.configs +CONFIGS := -D__NVGPU_POSIX__ +NVGPU_FORCE_SAFETY_PROFILE := 1 include $(NVGPU_SRC)/Makefile.shared.configs CONFIGS+=$(NVGPU_COMMON_CFLAGS) diff --git a/userspace/Makefile.tmk b/userspace/Makefile.tmk index 5818573c1..4c2141ad1 100644 --- a/userspace/Makefile.tmk +++ b/userspace/Makefile.tmk @@ -107,24 +107,11 @@ NV_COMPONENT_SYSTEM_SHARED_LIBRARIES += pthread NV_COMPONENT_SYSTEM_SHARED_LIBRARIES += dl endif -NV_COMPONENT_CFLAGS += -D__NVGPU_POSIX__ - -NV_COMPONENT_CFLAGS += \ - -DCONFIG_TEGRA_19x_GPU \ - -DCONFIG_TEGRA_GK20A_NVHOST \ - -DCONFIG_TEGRA_T19X_GRHOST \ - -DCONFIG_NVGPU_SUPPORT_TURING \ - -DCONFIG_TEGRA_GK20A_PMU=1 \ - -DCONFIG_TEGRA_ACR=1 \ - -DCONFIG_TEGRA_GR_VIRTUALIZATION \ - -DNVCPU_IS_AARCH64=1 \ - -DCONFIG_TEGRA_IOVMM=0 \ - -DCONFIG_ARCH_TEGRA_18x_SOC=1 \ - -DCONFIG_GK20A_VIDMEM=1 \ - -DCONFIG_PCI_MSI \ - -DCONFIG_SUPPORT_PMU_PSTATE \ +NV_COMPONENT_CFLAGS += \ + -D__NVGPU_POSIX__ \ -DNVGPU_UNITTEST_FAULT_INJECTION_ENABLEMENT +NVGPU_FORCE_SAFETY_PROFILE := 1 -include ../drivers/gpu/nvgpu/Makefile.shared.configs NV_COMPONENT_CFLAGS += $(NVGPU_COMMON_CFLAGS) diff --git a/userspace/units/Makefile.units.common.tmk b/userspace/units/Makefile.units.common.tmk index b8e52bcc8..bb945387f 100644 --- a/userspace/units/Makefile.units.common.tmk +++ b/userspace/units/Makefile.units.common.tmk @@ -53,21 +53,7 @@ else NV_COMPONENT_CFLAGS += -D__NVGPU_POSIX__ endif -NV_COMPONENT_CFLAGS += \ - -DCONFIG_TEGRA_19x_GPU \ - -DCONFIG_TEGRA_GK20A_NVHOST \ - -DCONFIG_TEGRA_T19X_GRHOST \ - -DCONFIG_NVGPU_SUPPORT_TURING \ - -DCONFIG_TEGRA_GK20A_PMU=1 \ - -DCONFIG_TEGRA_ACR=1 \ - -DCONFIG_TEGRA_GR_VIRTUALIZATION \ - -DNVCPU_IS_AARCH64=1 \ - -DCONFIG_TEGRA_IOVMM=0 \ - -DCONFIG_ARCH_TEGRA_18x_SOC=1 \ - -DCONFIG_GK20A_VIDMEM=1 \ - -DCONFIG_PCI_MSI \ - -DCONFIG_SUPPORT_PMU_PSTATE - +NVGPU_FORCE_SAFETY_PROFILE := 1 -include $(NV_SOURCE)/kernel/nvgpu/drivers/gpu/nvgpu/Makefile.shared.configs NV_COMPONENT_CFLAGS += $(NVGPU_COMMON_CFLAGS)