From 164beb87b59d74c432a4b64fe0582d42c169b066 Mon Sep 17 00:00:00 2001 From: Nicolas Benech Date: Tue, 25 Jun 2019 22:55:46 -0400 Subject: [PATCH] gpu: nvgpu: add FUSA HAL support to Linux makefiles This patch adds FUSA support to Linux makefiles: - Add a new Kconfig option to enable/disable FUSA HALs - Use the new option in the Makefile to selectively compile the required HALs JIRA NVGPU-3690 Change-Id: I369f31292e2c1bb646754c8e0b387059ea7e16d6 Signed-off-by: Nicolas Benech Reviewed-on: https://git-master.nvidia.com/r/2143427 GVS: Gerrit_Virtual_Submit Reviewed-by: Sagar Kamble Reviewed-by: Vijayakumar Subbu Reviewed-by: mobile promotions Tested-by: mobile promotions --- drivers/gpu/nvgpu/Kconfig | 8 ++++++ drivers/gpu/nvgpu/Makefile | 57 ++++++++++++++++++++++++-------------- 2 files changed, 44 insertions(+), 21 deletions(-) diff --git a/drivers/gpu/nvgpu/Kconfig b/drivers/gpu/nvgpu/Kconfig index c51669aee..0fef9750e 100644 --- a/drivers/gpu/nvgpu/Kconfig +++ b/drivers/gpu/nvgpu/Kconfig @@ -179,3 +179,11 @@ config NVGPU_LOGGING default y help Enable/Disable logging for non-safety builds + +config NVGPU_HAL_NON_FUSA + bool "Support non-functionally safe HALs" + depends on GK20A + default y + help + Enable/Disable the support of HALs from chips that do not have functional + safety certification \ No newline at end of file diff --git a/drivers/gpu/nvgpu/Makefile b/drivers/gpu/nvgpu/Makefile index 8fceb5ffa..cc92bdca8 100644 --- a/drivers/gpu/nvgpu/Makefile +++ b/drivers/gpu/nvgpu/Makefile @@ -49,6 +49,10 @@ ifeq ($(CONFIG_NVGPU_LOGGING),y) ccflags-y += -DCONFIG_NVGPU_LOGGING=1 endif +ifeq ($(CONFIG_NVGPU_HAL_NON_FUSA),y) +ccflags-y += -DCONFIG_NVGPU_HAL_NON_FUSA +endif + obj-$(CONFIG_GK20A) := nvgpu.o # OS independent parts of nvgpu. The work to collect files here @@ -174,19 +178,6 @@ nvgpu-y += \ common/nvlink/nvlink.o \ common/nvlink/nvlink_gv100.o \ common/nvlink/nvlink_tu104.o \ - hal/mm/mm_gk20a.o \ - hal/mm/mm_gm20b.o \ - hal/mm/mm_gp10b.o \ - hal/mm/mm_gv11b.o \ - hal/mm/mm_gv100.o \ - hal/mm/mm_tu104.o \ - hal/mm/cache/flush_gk20a.o \ - hal/mm/cache/flush_gv11b.o \ - hal/mm/gmmu/gmmu_gk20a.o \ - hal/mm/gmmu/gmmu_gm20b.o \ - hal/mm/gmmu/gmmu_gp10b.o \ - hal/mm/gmmu/gmmu_gv11b.o \ - hal/mm/mmu_fault/mmu_fault_gv11b.o \ hal/mc/mc_gm20b.o \ hal/mc/mc_gp10b.o \ hal/mc/mc_gv11b.o \ @@ -231,14 +222,8 @@ nvgpu-y += \ hal/gr/gr/gr_gv11b.o \ hal/gr/gr/gr_tu104.o \ hal/fbpa/fbpa_tu104.o \ - hal/init/hal_gm20b.o \ - hal/init/hal_gm20b_litter.o \ - hal/init/hal_gp10b.o \ - hal/init/hal_gp10b_litter.o \ hal/init/hal_gv11b.o \ hal/init/hal_gv11b_litter.o \ - hal/init/hal_tu104.o \ - hal/init/hal_tu104_litter.o \ hal/init/hal_init.o \ hal/perf/perf_gm20b.o \ hal/perf/perf_gv11b.o \ @@ -609,9 +594,7 @@ nvgpu-$(CONFIG_TEGRA_GR_VIRTUALIZATION) += \ common/vgpu/ecc_vgpu.o \ common/vgpu/clk_vgpu.o \ common/vgpu/gr/fecs_trace_vgpu.o \ - common/vgpu/gp10b/vgpu_hal_gp10b.o \ common/vgpu/gv11b/vgpu_gv11b.o \ - common/vgpu/gv11b/vgpu_hal_gv11b.o \ hal/vgpu/fifo/fifo_gv11b_vgpu.o \ hal/vgpu/sync/syncpt_cmdbuf_gv11b_vgpu.o @@ -634,3 +617,35 @@ nvgpu-$(CONFIG_NVGPU_COMPRESSION) += \ hal/cbc/cbc_gp10b.o \ hal/cbc/cbc_gv11b.o \ hal/cbc/cbc_tu104.o \ + +# FUSA (Functionally Safe) HAL source files +nvgpu-y += \ + hal/mm/mm_gv11b_fusa.o \ + hal/mm/mm_gp10b_fusa.o \ + hal/mm/gmmu/gmmu_gv11b_fusa.o \ + hal/mm/gmmu/gmmu_gp10b_fusa.o \ + hal/mm/gmmu/gmmu_gk20a_fusa.o \ + hal/mm/gmmu/gmmu_gm20b_fusa.o \ + hal/mm/cache/flush_gk20a_fusa.o \ + hal/mm/cache/flush_gv11b_fusa.o \ + hal/mm/mmu_fault/mmu_fault_gv11b_fusa.o + +nvgpu-$(CONFIG_NVGPU_HAL_NON_FUSA) += \ + hal/init/hal_gp10b.o \ + hal/init/hal_gp10b_litter.o \ + hal/init/hal_gm20b.o \ + hal/init/hal_gm20b_litter.o \ + hal/init/hal_tu104.o \ + hal/init/hal_tu104_litter.o \ + hal/mm/mm_gm20b.o \ + hal/mm/mm_gk20a.o \ + hal/mm/mm_gv100.o \ + hal/mm/mm_tu104.o \ + hal/mm/gmmu/gmmu_gk20a.o \ + hal/mm/gmmu/gmmu_gm20b.o + +ifeq ($(CONFIG_TEGRA_GR_VIRTUALIZATION),y) +nvgpu-$(CONFIG_NVGPU_HAL_NON_FUSA) += \ + common/vgpu/gp10b/vgpu_hal_gp10b.o \ + common/vgpu/gv11b/vgpu_hal_gv11b.o +endif