mirror of
git://nv-tegra.nvidia.com/linux-nvgpu.git
synced 2025-12-24 02:22:34 +03:00
gpu: nvgpu: gv11b: sm priv reg related changes
Included all basic ops for gv11b and updated sm related functions to include new priv register addresses. Bug 1735757 Change-Id: Ie48651f918ee97fba00487111e4b28d6c95747f5 Signed-off-by: Seshendra Gadagottu <sgadagottu@nvidia.com> Reviewed-on: http://git-master/r/1126961 GVS: Gerrit_Virtual_Submit Reviewed-by: Terje Bergstrom <tbergstrom@nvidia.com>
This commit is contained in:
committed by
Terje Bergstrom
parent
07cd80ab09
commit
c84ddceda6
@@ -1,8 +1,18 @@
|
|||||||
nvgpu-t19x := ../../../../kernel-nvgpu-t19x/drivers/gpu/nvgpu
|
nvgpu-t19x := ../../../../kernel-nvgpu-t19x/drivers/gpu/nvgpu
|
||||||
|
|
||||||
nvgpu-y += \
|
nvgpu-y += \
|
||||||
|
$(nvgpu-t19x)/gv11b/gv11b.o \
|
||||||
$(nvgpu-t19x)/gv11b/mc_gv11b.o \
|
$(nvgpu-t19x)/gv11b/mc_gv11b.o \
|
||||||
|
$(nvgpu-t19x)/gv11b/ltc_gv11b.o \
|
||||||
$(nvgpu-t19x)/gv11b/hal_gv11b.o \
|
$(nvgpu-t19x)/gv11b/hal_gv11b.o \
|
||||||
$(nvgpu-t19x)/gv11b/gr_gv11b.o
|
$(nvgpu-t19x)/gv11b/gr_gv11b.o \
|
||||||
|
$(nvgpu-t19x)/gv11b/fecs_trace_gv11b.o \
|
||||||
|
$(nvgpu-t19x)/gv11b/fb_gv11b.o \
|
||||||
|
$(nvgpu-t19x)/gv11b/fifo_gv11b.o \
|
||||||
|
$(nvgpu-t19x)/gv11b/mm_gv11b.o \
|
||||||
|
$(nvgpu-t19x)/gv11b/ce2_gv11b.o \
|
||||||
|
$(nvgpu-t19x)/gv11b/gr_ctx_gv11b.o \
|
||||||
|
$(nvgpu-t19x)/gv11b/pmu_gv11b.o \
|
||||||
|
$(nvgpu-t19x)/gv11b/therm_gv11b.o
|
||||||
|
|
||||||
nvgpu-$(CONFIG_TEGRA_GK20A) += $(nvgpu-t19x)/gv11b/platform_gv11b_tegra.o
|
nvgpu-$(CONFIG_TEGRA_GK20A) += $(nvgpu-t19x)/gv11b/platform_gv11b_tegra.o
|
||||||
|
|||||||
28
drivers/gpu/nvgpu/gv11b/ce2_gv11b.c
Normal file
28
drivers/gpu/nvgpu/gv11b/ce2_gv11b.c
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
/*
|
||||||
|
* GV11B Graphics Copy Engine (gr host)
|
||||||
|
*
|
||||||
|
* Copyright (c) 2016, NVIDIA CORPORATION. All rights reserved.
|
||||||
|
*
|
||||||
|
* This program is free software; you can redistribute it and/or modify it
|
||||||
|
* under the terms and conditions of the GNU General Public License,
|
||||||
|
* version 2, as published by the Free Software Foundation.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope it will be useful, but WITHOUT
|
||||||
|
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
|
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||||
|
* more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License along with
|
||||||
|
* this program; if not, write to the Free Software Foundation, Inc.,
|
||||||
|
* 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "gk20a/gk20a.h" /* FERMI and MAXWELL classes defined here */
|
||||||
|
#include "hw_ce2_gv11b.h"
|
||||||
|
#include "gp10b/ce2_gp10b.h"
|
||||||
|
#include "ce2_gv11b.h"
|
||||||
|
|
||||||
|
void gv11b_init_ce2(struct gpu_ops *gops)
|
||||||
|
{
|
||||||
|
gp10b_init_ce2(gops);
|
||||||
|
}
|
||||||
27
drivers/gpu/nvgpu/gv11b/ce2_gv11b.h
Normal file
27
drivers/gpu/nvgpu/gv11b/ce2_gv11b.h
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
/*
|
||||||
|
*
|
||||||
|
* GV11B graphics copy engine
|
||||||
|
*
|
||||||
|
* Copyright (c) 2016, NVIDIA CORPORATION. All rights reserved.
|
||||||
|
*
|
||||||
|
* This program is free software; you can redistribute it and/or modify it
|
||||||
|
* under the terms and conditions of the GNU General Public License,
|
||||||
|
* version 2, as published by the Free Software Foundation.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope it will be useful, but WITHOUT
|
||||||
|
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
|
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||||
|
* more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License along with
|
||||||
|
* this program; if not, write to the Free Software Foundation, Inc.,
|
||||||
|
* 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
|
||||||
|
*/
|
||||||
|
#ifndef __CE2_GV11B_H__
|
||||||
|
#define __CE2_GV11B_H__
|
||||||
|
|
||||||
|
struct gpu_ops;
|
||||||
|
|
||||||
|
void gv11b_init_ce2(struct gpu_ops *gops);
|
||||||
|
|
||||||
|
#endif /*__CE2_GV11B_H__*/
|
||||||
28
drivers/gpu/nvgpu/gv11b/fb_gv11b.c
Normal file
28
drivers/gpu/nvgpu/gv11b/fb_gv11b.c
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
/*
|
||||||
|
* GV11B FB
|
||||||
|
*
|
||||||
|
* Copyright (c) 2016, NVIDIA CORPORATION. All rights reserved.
|
||||||
|
*
|
||||||
|
* This program is free software; you can redistribute it and/or modify it
|
||||||
|
* under the terms and conditions of the GNU General Public License,
|
||||||
|
* version 2, as published by the Free Software Foundation.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope it will be useful, but WITHOUT
|
||||||
|
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
|
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||||
|
* more details.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <linux/types.h>
|
||||||
|
|
||||||
|
#include "gk20a/gk20a.h"
|
||||||
|
#include "gp10b/fb_gp10b.h"
|
||||||
|
#include "gv11b/fb_gv11b.h"
|
||||||
|
#include "gk20a/kind_gk20a.h"
|
||||||
|
|
||||||
|
#include "hw_gmmu_gv11b.h"
|
||||||
|
|
||||||
|
void gv11b_init_fb(struct gpu_ops *gops)
|
||||||
|
{
|
||||||
|
gp10b_init_fb(gops);
|
||||||
|
}
|
||||||
21
drivers/gpu/nvgpu/gv11b/fb_gv11b.h
Normal file
21
drivers/gpu/nvgpu/gv11b/fb_gv11b.h
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
/*
|
||||||
|
* GV11B FB
|
||||||
|
*
|
||||||
|
* Copyright (c) 2016, NVIDIA CORPORATION. All rights reserved.
|
||||||
|
*
|
||||||
|
* This program is free software; you can redistribute it and/or modify it
|
||||||
|
* under the terms and conditions of the GNU General Public License,
|
||||||
|
* version 2, as published by the Free Software Foundation.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope it will be useful, but WITHOUT
|
||||||
|
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
|
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||||
|
* more details.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef _NVGPU_GV11B_FB
|
||||||
|
#define _NVGPU_GV11B_FB
|
||||||
|
struct gpu_ops;
|
||||||
|
|
||||||
|
void gv11b_init_fb(struct gpu_ops *gops);
|
||||||
|
#endif
|
||||||
30
drivers/gpu/nvgpu/gv11b/fecs_trace_gv11b.c
Normal file
30
drivers/gpu/nvgpu/gv11b/fecs_trace_gv11b.c
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
/*
|
||||||
|
* GV11B GPU FECS traces
|
||||||
|
*
|
||||||
|
* Copyright (c) 2016, NVIDIA CORPORATION. All rights reserved.
|
||||||
|
*
|
||||||
|
* This program is free software; you can redistribute it and/or modify it
|
||||||
|
* under the terms and conditions of the GNU General Public License,
|
||||||
|
* version 2, as published by the Free Software Foundation.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope it will be useful, but WITHOUT
|
||||||
|
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
|
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||||
|
* more details.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "gp10b/fecs_trace_gp10b.h"
|
||||||
|
#include "gv11b/fecs_trace_gv11b.h"
|
||||||
|
|
||||||
|
#ifdef CONFIG_GK20A_CTXSW_TRACE
|
||||||
|
int gv11b_init_fecs_trace_ops(struct gpu_ops *ops)
|
||||||
|
{
|
||||||
|
gp10b_init_fecs_trace_ops(ops);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
#else
|
||||||
|
int gv11b_init_fecs_trace_ops(struct gpu_ops *ops)
|
||||||
|
{
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
#endif /* CONFIG_GK20A_CTXSW_TRACE */
|
||||||
23
drivers/gpu/nvgpu/gv11b/fecs_trace_gv11b.h
Normal file
23
drivers/gpu/nvgpu/gv11b/fecs_trace_gv11b.h
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
/*
|
||||||
|
* GV11B GPU FECS traces
|
||||||
|
*
|
||||||
|
* Copyright (c) 2016, NVIDIA CORPORATION. All rights reserved.
|
||||||
|
*
|
||||||
|
* This program is free software; you can redistribute it and/or modify it
|
||||||
|
* under the terms and conditions of the GNU General Public License,
|
||||||
|
* version 2, as published by the Free Software Foundation.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope it will be useful, but WITHOUT
|
||||||
|
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
|
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||||
|
* more details.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef _NVGPU_FECS_TRACE_GV11B_H_
|
||||||
|
#define _NVGPU_FECS_TRACE_GV11B_H_
|
||||||
|
|
||||||
|
struct gpu_ops;
|
||||||
|
|
||||||
|
int gv11b_init_fecs_trace_ops(struct gpu_ops *);
|
||||||
|
|
||||||
|
#endif
|
||||||
28
drivers/gpu/nvgpu/gv11b/fifo_gv11b.c
Normal file
28
drivers/gpu/nvgpu/gv11b/fifo_gv11b.c
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
/*
|
||||||
|
* GV11B fifo
|
||||||
|
*
|
||||||
|
* Copyright (c) 2015-2016, NVIDIA CORPORATION. All rights reserved.
|
||||||
|
*
|
||||||
|
* This program is free software; you can redistribute it and/or modify it
|
||||||
|
* under the terms and conditions of the GNU General Public License,
|
||||||
|
* version 2, as published by the Free Software Foundation.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope it will be useful, but WITHOUT
|
||||||
|
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
|
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||||
|
* more details.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <linux/delay.h>
|
||||||
|
#include <linux/types.h>
|
||||||
|
|
||||||
|
#include "gk20a/gk20a.h"
|
||||||
|
#include "gp10b/fifo_gp10b.h"
|
||||||
|
#include "hw_pbdma_gv11b.h"
|
||||||
|
#include "fifo_gv11b.h"
|
||||||
|
#include "hw_fifo_gv11b.h"
|
||||||
|
|
||||||
|
void gv11b_init_fifo(struct gpu_ops *gops)
|
||||||
|
{
|
||||||
|
gp10b_init_fifo(gops);
|
||||||
|
}
|
||||||
20
drivers/gpu/nvgpu/gv11b/fifo_gv11b.h
Normal file
20
drivers/gpu/nvgpu/gv11b/fifo_gv11b.h
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
/*
|
||||||
|
* GV11B Fifo
|
||||||
|
*
|
||||||
|
* Copyright (c) 2016, NVIDIA CORPORATION. All rights reserved.
|
||||||
|
*
|
||||||
|
* This program is free software; you can redistribute it and/or modify it
|
||||||
|
* under the terms and conditions of the GNU General Public License,
|
||||||
|
* version 2, as published by the Free Software Foundation.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope it will be useful, but WITHOUT
|
||||||
|
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
|
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||||
|
* more details.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef FIFO_GV11B_H
|
||||||
|
#define FIFO_GV11B_H
|
||||||
|
struct gpu_ops;
|
||||||
|
void gv11b_init_fifo(struct gpu_ops *gops);
|
||||||
|
#endif
|
||||||
72
drivers/gpu/nvgpu/gv11b/gr_ctx_gv11b.c
Normal file
72
drivers/gpu/nvgpu/gv11b/gr_ctx_gv11b.c
Normal file
@@ -0,0 +1,72 @@
|
|||||||
|
/*
|
||||||
|
*
|
||||||
|
* GV11B Graphics Context
|
||||||
|
*
|
||||||
|
* Copyright (c) 2016, NVIDIA CORPORATION. All rights reserved.
|
||||||
|
*
|
||||||
|
* This program is free software; you can redistribute it and/or modify it
|
||||||
|
* under the terms and conditions of the GNU General Public License,
|
||||||
|
* version 2, as published by the Free Software Foundation.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope it will be useful, but WITHOUT
|
||||||
|
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
|
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||||
|
* more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License along with
|
||||||
|
* this program; if not, write to the Free Software Foundation, Inc.,
|
||||||
|
* 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "gk20a/gk20a.h"
|
||||||
|
#include "gr_ctx_gv11b.h"
|
||||||
|
|
||||||
|
static int gr_gv11b_get_netlist_name(int index, char *name)
|
||||||
|
{
|
||||||
|
switch (index) {
|
||||||
|
#ifdef GV11B_NETLIST_IMAGE_FW_NAME
|
||||||
|
case NETLIST_FINAL:
|
||||||
|
sprintf(name, GV11B_NETLIST_IMAGE_FW_NAME);
|
||||||
|
return 0;
|
||||||
|
#endif
|
||||||
|
#ifdef GK20A_NETLIST_IMAGE_A
|
||||||
|
case NETLIST_SLOT_A:
|
||||||
|
sprintf(name, GK20A_NETLIST_IMAGE_A);
|
||||||
|
return 0;
|
||||||
|
#endif
|
||||||
|
#ifdef GK20A_NETLIST_IMAGE_B
|
||||||
|
case NETLIST_SLOT_B:
|
||||||
|
sprintf(name, GK20A_NETLIST_IMAGE_B);
|
||||||
|
return 0;
|
||||||
|
#endif
|
||||||
|
#ifdef GK20A_NETLIST_IMAGE_C
|
||||||
|
case NETLIST_SLOT_C:
|
||||||
|
sprintf(name, GK20A_NETLIST_IMAGE_C);
|
||||||
|
return 0;
|
||||||
|
#endif
|
||||||
|
#ifdef GK20A_NETLIST_IMAGE_D
|
||||||
|
case NETLIST_SLOT_D:
|
||||||
|
sprintf(name, GK20A_NETLIST_IMAGE_D);
|
||||||
|
return 0;
|
||||||
|
#endif
|
||||||
|
default:
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
static bool gr_gv11b_is_firmware_defined(void)
|
||||||
|
{
|
||||||
|
#ifdef GV11B_NETLIST_IMAGE_FW_NAME
|
||||||
|
return true;
|
||||||
|
#else
|
||||||
|
return false;
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
void gv11b_init_gr_ctx(struct gpu_ops *gops) {
|
||||||
|
gops->gr_ctx.get_netlist_name = gr_gv11b_get_netlist_name;
|
||||||
|
gops->gr_ctx.is_fw_defined = gr_gv11b_is_firmware_defined;
|
||||||
|
gops->gr_ctx.use_dma_for_fw_bootstrap = false;
|
||||||
|
}
|
||||||
28
drivers/gpu/nvgpu/gv11b/gr_ctx_gv11b.h
Normal file
28
drivers/gpu/nvgpu/gv11b/gr_ctx_gv11b.h
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
/*
|
||||||
|
* GV11B Graphics Context
|
||||||
|
*
|
||||||
|
* Copyright (c) 2016, NVIDIA CORPORATION. All rights reserved.
|
||||||
|
*
|
||||||
|
* This program is free software; you can redistribute it and/or modify it
|
||||||
|
* under the terms and conditions of the GNU General Public License,
|
||||||
|
* version 2, as published by the Free Software Foundation.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope it will be useful, but WITHOUT
|
||||||
|
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
|
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||||
|
* more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
#ifndef __GR_CTX_GV11B_H__
|
||||||
|
#define __GR_CTX_GV11B_H__
|
||||||
|
|
||||||
|
#include "gk20a/gr_ctx_gk20a.h"
|
||||||
|
|
||||||
|
/* production netlist, one and only one from below */
|
||||||
|
#define GV11B_NETLIST_IMAGE_FW_NAME GK20A_NETLIST_IMAGE_A
|
||||||
|
|
||||||
|
void gv11b_init_gr_ctx(struct gpu_ops *gops);
|
||||||
|
|
||||||
|
#endif /*__GR_CTX_GV11B_H__*/
|
||||||
File diff suppressed because it is too large
Load Diff
25
drivers/gpu/nvgpu/gv11b/gv11b.c
Normal file
25
drivers/gpu/nvgpu/gv11b/gv11b.c
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
/*
|
||||||
|
* GV11B Graphics
|
||||||
|
*
|
||||||
|
* Copyright (c) 2016, NVIDIA CORPORATION. All rights reserved.
|
||||||
|
*
|
||||||
|
* This program is free software; you can redistribute it and/or modify it
|
||||||
|
* under the terms and conditions of the GNU General Public License,
|
||||||
|
* version 2, as published by the Free Software Foundation.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope it will be useful, but WITHOUT
|
||||||
|
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
|
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||||
|
* more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "gk20a/gk20a.h"
|
||||||
|
|
||||||
|
int gv11b_init_gpu_characteristics(struct gk20a *g)
|
||||||
|
{
|
||||||
|
gk20a_init_gpu_characteristics(g);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
26
drivers/gpu/nvgpu/gv11b/gv11b.h
Normal file
26
drivers/gpu/nvgpu/gv11b/gv11b.h
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
/*
|
||||||
|
* GV11B Graphics
|
||||||
|
*
|
||||||
|
* Copyright (c) 2016, NVIDIA CORPORATION. All rights reserved.
|
||||||
|
*
|
||||||
|
* This program is free software; you can redistribute it and/or modify it
|
||||||
|
* under the terms and conditions of the GNU General Public License,
|
||||||
|
* version 2, as published by the Free Software Foundation.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope it will be useful, but WITHOUT
|
||||||
|
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
|
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||||
|
* more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef GV11B_H
|
||||||
|
#define GV11B_H
|
||||||
|
|
||||||
|
#include "gk20a/gk20a.h"
|
||||||
|
|
||||||
|
int gv11b_init_gpu_characteristics(struct gk20a *g);
|
||||||
|
|
||||||
|
#endif /* GV11B_H */
|
||||||
@@ -22,6 +22,14 @@
|
|||||||
|
|
||||||
#include "gv11b/gr_gv11b.h"
|
#include "gv11b/gr_gv11b.h"
|
||||||
#include "gv11b/mc_gv11b.h"
|
#include "gv11b/mc_gv11b.h"
|
||||||
|
#include "gv11b/ltc_gv11b.h"
|
||||||
|
#include "gv11b/fecs_trace_gv11b.h"
|
||||||
|
#include "gv11b/gv11b.h"
|
||||||
|
#include "gv11b/ce2_gv11b.h"
|
||||||
|
#include "gv11b/gr_ctx_gv11b.h"
|
||||||
|
#include "gv11b/mm_gv11b.h"
|
||||||
|
#include "gv11b/pmu_gv11b.h"
|
||||||
|
#include "gv11b/therm_gv11b.h"
|
||||||
|
|
||||||
#include "gm20b/gr_gm20b.h"
|
#include "gm20b/gr_gm20b.h"
|
||||||
|
|
||||||
@@ -30,9 +38,22 @@ int gv11b_init_hal(struct gk20a *g)
|
|||||||
struct gpu_ops *gops = &g->ops;
|
struct gpu_ops *gops = &g->ops;
|
||||||
struct nvgpu_gpu_characteristics *c = &g->gpu_characteristics;
|
struct nvgpu_gpu_characteristics *c = &g->gpu_characteristics;
|
||||||
|
|
||||||
|
/* boot in non-secure modes for time beeing */
|
||||||
|
gops->privsecurity = 0;
|
||||||
|
gops->securegpccs = 0;
|
||||||
|
|
||||||
gv11b_init_mc(gops);
|
gv11b_init_mc(gops);
|
||||||
|
gv11b_init_ltc(gops);
|
||||||
gv11b_init_gr(gops);
|
gv11b_init_gr(gops);
|
||||||
|
gv11b_init_fecs_trace_ops(gops);
|
||||||
|
gv11b_init_ce2(gops);
|
||||||
|
gv11b_init_mm(gops);
|
||||||
|
gv11b_init_gr_ctx(gops);
|
||||||
|
gv11b_init_pmu_ops(gops);
|
||||||
|
gk20a_init_debug_ops(gops);
|
||||||
|
gv11b_init_therm_ops(gops);
|
||||||
gops->name = "gv11b";
|
gops->name = "gv11b";
|
||||||
|
gops->chip_init_gpu_characteristics = gv11b_init_gpu_characteristics;
|
||||||
|
|
||||||
c->twod_class = FERMI_TWOD_A;
|
c->twod_class = FERMI_TWOD_A;
|
||||||
c->threed_class = VOLTA_A;
|
c->threed_class = VOLTA_A;
|
||||||
|
|||||||
@@ -72,7 +72,7 @@ static inline u32 gmmu_new_pde_aperture_video_memory_f(void)
|
|||||||
}
|
}
|
||||||
static inline u32 gmmu_new_pde_address_sys_f(u32 v)
|
static inline u32 gmmu_new_pde_address_sys_f(u32 v)
|
||||||
{
|
{
|
||||||
return (v & 0xffffff) << 8;
|
return (v & 0xfffffff) << 8;
|
||||||
}
|
}
|
||||||
static inline u32 gmmu_new_pde_address_sys_w(void)
|
static inline u32 gmmu_new_pde_address_sys_w(void)
|
||||||
{
|
{
|
||||||
@@ -164,7 +164,7 @@ static inline u32 gmmu_new_dual_pde_vol_big_false_f(void)
|
|||||||
}
|
}
|
||||||
static inline u32 gmmu_new_dual_pde_address_small_sys_f(u32 v)
|
static inline u32 gmmu_new_dual_pde_address_small_sys_f(u32 v)
|
||||||
{
|
{
|
||||||
return (v & 0xffffff) << 8;
|
return (v & 0xfffffff) << 8;
|
||||||
}
|
}
|
||||||
static inline u32 gmmu_new_dual_pde_address_small_sys_w(void)
|
static inline u32 gmmu_new_dual_pde_address_small_sys_w(void)
|
||||||
{
|
{
|
||||||
@@ -212,7 +212,7 @@ static inline u32 gmmu_new_pte_privilege_false_f(void)
|
|||||||
}
|
}
|
||||||
static inline u32 gmmu_new_pte_address_sys_f(u32 v)
|
static inline u32 gmmu_new_pte_address_sys_f(u32 v)
|
||||||
{
|
{
|
||||||
return (v & 0xffffff) << 8;
|
return (v & 0xfffffff) << 8;
|
||||||
}
|
}
|
||||||
static inline u32 gmmu_new_pte_address_sys_w(void)
|
static inline u32 gmmu_new_pte_address_sys_w(void)
|
||||||
{
|
{
|
||||||
|
|||||||
26
drivers/gpu/nvgpu/gv11b/ltc_gv11b.c
Normal file
26
drivers/gpu/nvgpu/gv11b/ltc_gv11b.c
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
/*
|
||||||
|
* GV11B LTC
|
||||||
|
*
|
||||||
|
* Copyright (c) 2016, NVIDIA CORPORATION. All rights reserved.
|
||||||
|
*
|
||||||
|
* This program is free software; you can redistribute it and/or modify it
|
||||||
|
* under the terms and conditions of the GNU General Public License,
|
||||||
|
* version 2, as published by the Free Software Foundation.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope it will be useful, but WITHOUT
|
||||||
|
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
|
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||||
|
* more details.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <linux/types.h>
|
||||||
|
|
||||||
|
#include "gk20a/gk20a.h"
|
||||||
|
#include "gp10b/ltc_gp10b.h"
|
||||||
|
#include "gv11b/ltc_gv11b.h"
|
||||||
|
#include "hw_ltc_gv11b.h"
|
||||||
|
|
||||||
|
void gv11b_init_ltc(struct gpu_ops *gops)
|
||||||
|
{
|
||||||
|
gp10b_init_ltc(gops);
|
||||||
|
}
|
||||||
19
drivers/gpu/nvgpu/gv11b/ltc_gv11b.h
Normal file
19
drivers/gpu/nvgpu/gv11b/ltc_gv11b.h
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (c) 2016, NVIDIA CORPORATION. All rights reserved.
|
||||||
|
*
|
||||||
|
* This program is free software; you can redistribute it and/or modify it
|
||||||
|
* under the terms and conditions of the GNU General Public License,
|
||||||
|
* version 2, as published by the Free Software Foundation.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope it will be useful, but WITHOUT
|
||||||
|
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
|
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||||
|
* more details.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef LTC_GV11B_H
|
||||||
|
#define LTC_GV11B_H
|
||||||
|
struct gk20a;
|
||||||
|
|
||||||
|
void gv11b_init_ltc(struct gpu_ops *gops);
|
||||||
|
#endif
|
||||||
25
drivers/gpu/nvgpu/gv11b/mm_gv11b.c
Normal file
25
drivers/gpu/nvgpu/gv11b/mm_gv11b.c
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
/*
|
||||||
|
* GV11B MMU
|
||||||
|
*
|
||||||
|
* Copyright (c) 2016, NVIDIA CORPORATION. All rights reserved.
|
||||||
|
*
|
||||||
|
* This program is free software; you can redistribute it and/or modify it
|
||||||
|
* under the terms and conditions of the GNU General Public License,
|
||||||
|
* version 2, as published by the Free Software Foundation.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope it will be useful, but WITHOUT
|
||||||
|
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
|
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||||
|
* more details.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <linux/pm_runtime.h>
|
||||||
|
#include <linux/dma-mapping.h>
|
||||||
|
#include "gk20a/gk20a.h"
|
||||||
|
#include "gp10b/mm_gp10b.h"
|
||||||
|
#include "mm_gv11b.h"
|
||||||
|
|
||||||
|
void gv11b_init_mm(struct gpu_ops *gops)
|
||||||
|
{
|
||||||
|
gp10b_init_mm(gops);
|
||||||
|
}
|
||||||
21
drivers/gpu/nvgpu/gv11b/mm_gv11b.h
Normal file
21
drivers/gpu/nvgpu/gv11b/mm_gv11b.h
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
/*
|
||||||
|
* GV11B MM
|
||||||
|
* Copyright (c) 2016, NVIDIA CORPORATION. All rights reserved.
|
||||||
|
*
|
||||||
|
* This program is free software; you can redistribute it and/or modify it
|
||||||
|
* under the terms and conditions of the GNU General Public License,
|
||||||
|
* version 2, as published by the Free Software Foundation.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope it will be useful, but WITHOUT
|
||||||
|
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
|
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||||
|
* more details.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef MM_GV11B_H
|
||||||
|
#define MM_GV11B_H
|
||||||
|
|
||||||
|
struct gpu_ops;
|
||||||
|
|
||||||
|
void gv11b_init_mm(struct gpu_ops *gops);
|
||||||
|
#endif
|
||||||
27
drivers/gpu/nvgpu/gv11b/pmu_gv11b.c
Normal file
27
drivers/gpu/nvgpu/gv11b/pmu_gv11b.c
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
/*
|
||||||
|
* GV11B PMU
|
||||||
|
*
|
||||||
|
* Copyright (c) 2016, NVIDIA CORPORATION. All rights reserved.
|
||||||
|
*
|
||||||
|
* This program is free software; you can redistribute it and/or modify it
|
||||||
|
* under the terms and conditions of the GNU General Public License,
|
||||||
|
* version 2, as published by the Free Software Foundation.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope it will be useful, but WITHOUT
|
||||||
|
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
|
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||||
|
* more details.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <linux/delay.h> /* for udelay */
|
||||||
|
#include <linux/tegra-fuse.h>
|
||||||
|
#include "gk20a/gk20a.h"
|
||||||
|
#include "gp10b/pmu_gp10b.h"
|
||||||
|
|
||||||
|
#include "pmu_gv11b.h"
|
||||||
|
#include "hw_pwr_gv11b.h"
|
||||||
|
|
||||||
|
void gv11b_init_pmu_ops(struct gpu_ops *gops)
|
||||||
|
{
|
||||||
|
gp10b_init_pmu_ops(gops);
|
||||||
|
}
|
||||||
21
drivers/gpu/nvgpu/gv11b/pmu_gv11b.h
Normal file
21
drivers/gpu/nvgpu/gv11b/pmu_gv11b.h
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
/*
|
||||||
|
* GV11B PMU
|
||||||
|
*
|
||||||
|
* Copyright (c) 2016, NVIDIA CORPORATION. All rights reserved.
|
||||||
|
*
|
||||||
|
* This program is free software; you can redistribute it and/or modify it
|
||||||
|
* under the terms and conditions of the GNU General Public License,
|
||||||
|
* version 2, as published by the Free Software Foundation.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope it will be useful, but WITHOUT
|
||||||
|
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
|
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||||
|
* more details.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef __PMU_GV11B_H_
|
||||||
|
#define __PMU_GV11B_H_
|
||||||
|
|
||||||
|
void gv11b_init_pmu_ops(struct gpu_ops *gops);
|
||||||
|
|
||||||
|
#endif /*__PMU_GV11B_H_*/
|
||||||
25
drivers/gpu/nvgpu/gv11b/therm_gv11b.c
Normal file
25
drivers/gpu/nvgpu/gv11b/therm_gv11b.c
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
/*
|
||||||
|
*
|
||||||
|
* GV11B Therm
|
||||||
|
*
|
||||||
|
* Copyright (c) 2016, NVIDIA CORPORATION. All rights reserved.
|
||||||
|
*
|
||||||
|
* This program is free software; you can redistribute it and/or modify it
|
||||||
|
* under the terms and conditions of the GNU General Public License,
|
||||||
|
* version 2, as published by the Free Software Foundation.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope it will be useful, but WITHOUT
|
||||||
|
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
|
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||||
|
* more details.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "gk20a/gk20a.h"
|
||||||
|
#include "gp10b/therm_gp10b.h"
|
||||||
|
#include "hw_therm_gv11b.h"
|
||||||
|
#include "therm_gv11b.h"
|
||||||
|
|
||||||
|
void gv11b_init_therm_ops(struct gpu_ops *gops)
|
||||||
|
{
|
||||||
|
gp10b_init_therm_ops(gops);
|
||||||
|
}
|
||||||
19
drivers/gpu/nvgpu/gv11b/therm_gv11b.h
Normal file
19
drivers/gpu/nvgpu/gv11b/therm_gv11b.h
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (c) 2016, NVIDIA CORPORATION. All rights reserved.
|
||||||
|
*
|
||||||
|
* This program is free software; you can redistribute it and/or modify it
|
||||||
|
* under the terms and conditions of the GNU General Public License,
|
||||||
|
* version 2, as published by the Free Software Foundation.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope it will be useful, but WITHOUT
|
||||||
|
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
|
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||||
|
* more details.
|
||||||
|
*/
|
||||||
|
#ifndef THERM_GV11B_H
|
||||||
|
#define THERM_GV11B_H
|
||||||
|
|
||||||
|
struct gpu_ops;
|
||||||
|
void gv11b_init_therm_ops(struct gpu_ops *gops);
|
||||||
|
|
||||||
|
#endif /* THERM_GV11B_H */
|
||||||
Reference in New Issue
Block a user