gpu: nvgpu: userspace: disable all non-safe features

Add the ability to override an apparently non-safe profile build
with the safe profile. This let's us force the safety profile build
in the userspace build (make under userspace/) and the tmake build
used for unit testing. Doing this keeps the tmake build closer to
the userspace which helps prevent regressions in the userspace
build as it has no direct GVS coverage.

Change-Id: I00c000086aabf6a70b74cf5e052c80520653546a
Signed-off-by: Alex Waterman <alexw@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/2123833
GVS: Gerrit_Virtual_Submit
Reviewed-by: Thomas Fleury <tfleury@nvidia.com>
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
This commit is contained in:
Alex Waterman
2019-05-22 12:37:50 -07:00
committed by mobile promotions
parent f020091977
commit 4dbbd8c488
5 changed files with 48 additions and 46 deletions

View File

@@ -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

View File

@@ -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)

View File

@@ -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)

View File

@@ -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)

View File

@@ -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)