summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexandre Courbot <acourbot@nvidia.com>2015-10-25 13:24:31 +0900
committerAlexandre Courbot <acourbot@nvidia.com>2015-10-26 14:55:16 +0900
commitbe704052312021cac7082c2025aa380057be3f2e (patch)
tree893dc43c17d8ecae282c277a2ebf48fdcd13baa2
parent281808a0fd301558e4b0d36659b268ae773ee39e (diff)
downloadnouveau-secure_boot/base.tar.gz
gm20b: secure-boot FECS falconsecure_boot/base
Enable secure boot of FECS for GM20B. Signed-off-by: Alexandre Courbot <acourbot@nvidia.com>
-rw-r--r--drm/nouveau/nvkm/engine/device/base.c4
-rw-r--r--drm/nouveau/nvkm/engine/gr/gm20b.c6
2 files changed, 6 insertions, 4 deletions
diff --git a/drm/nouveau/nvkm/engine/device/base.c b/drm/nouveau/nvkm/engine/device/base.c
index 3e26fc543..94ffc005c 100644
--- a/drm/nouveau/nvkm/engine/device/base.c
+++ b/drm/nouveau/nvkm/engine/device/base.c
@@ -2043,6 +2043,10 @@ nv12b_chipset = {
.fifo = gm20b_fifo_new,
.gr = gm20b_gr_new,
.sw = gf100_sw_new,
+ .secure_boot = {
+ .managed_falcons = BIT(LSF_FALCON_ID_FECS),
+ .boot_falcon = LSF_FALCON_ID_PMU,
+ },
};
static int
diff --git a/drm/nouveau/nvkm/engine/gr/gm20b.c b/drm/nouveau/nvkm/engine/gr/gm20b.c
index 65b6e3d1e..eabac5d1e 100644
--- a/drm/nouveau/nvkm/engine/gr/gm20b.c
+++ b/drm/nouveau/nvkm/engine/gr/gm20b.c
@@ -32,12 +32,10 @@ gm20b_gr_init_gpc_mmu(struct gf100_gr *gr)
struct nvkm_device *device = gr->base.engine.subdev.device;
u32 val;
- /* TODO this needs to be removed once secure boot works */
- if (1) {
+ /* Bypass MMU check for non-secure boot */
+ if (!device->chip->secure_boot.managed_falcons)
nvkm_wr32(device, 0x100ce4, 0xffffffff);
- }
- /* TODO update once secure boot works */
val = nvkm_rd32(device, 0x100c80);
val &= 0xf000087f;
nvkm_wr32(device, 0x418880, val);