linux/drivers/gpu/drm/nouveau/nvkm/core
Alexandre Courbot 7d12388a1f drm/nouveau/core: add support for secure boot
On GM200 and later GPUs, firmware for some essential falcons (notably
GR ones) must be authenticated by a NVIDIA-produced signature and
loaded by a high-secure falcon in order to be able to access privileged
registers, in a process known as Secure Boot.

Secure Boot requires building a binary blob containing the firmwares
and signatures of the falcons to be loaded. This blob is then given to
a high-secure falcon running a signed loader firmware that copies the
blob into a write-protected region, checks that the signatures are
valid, and finally loads the verified firmware into the managed falcons
and switches them to privileged mode.

This patch adds infrastructure code to support this process on chips
that require it.

v2:
- The IRQ mask of the PMU falcon was left - replace it with the proper
  irq_mask variable.
- The falcon reset procedure expecting a falcon in an initialized state,
  which was accidentally provided by the PMU subdev. Make sure that
  secboot can manage the falcon on its own.

Signed-off-by: Alexandre Courbot <acourbot@nvidia.com>
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2016-03-14 10:13:22 +10:00
..
client.c drm/nouveau/nvif: modify nvif_unvers/nvif_unpack macros to be more obvious 2016-01-11 11:17:40 +10:00
engine.c drm/nouveau/core: remove the remainder of the previous style 2015-08-28 12:40:47 +10:00
enum.c drm/nouveau/sec: switch to subdev printk macros 2015-08-28 12:40:26 +10:00
event.c drm/nouveau/core: namespace + nvidia gpu names (no binary change) 2015-01-22 12:17:49 +10:00
firmware.c drm/nouveau/core: add firmware handling functions 2016-03-14 10:11:06 +10:00
gpuobj.c drm/nouveau/core: add gpuobj memcpy helper functions 2016-03-14 10:13:19 +10:00
ioctl.c drm/nouveau/nvif: modify nvif_unvers/nvif_unpack macros to be more obvious 2016-01-11 11:17:40 +10:00
Kbuild drm/nouveau/core: add firmware handling functions 2016-03-14 10:11:06 +10:00
memory.c drm/nouveau/imem: convert to new-style nvkm_subdev 2015-08-28 12:40:44 +10:00
mm.c drm/nouveau/fb: transition nvkm_ram away from being based on nvkm_object 2015-08-28 12:40:29 +10:00
notify.c drm/nouveau/core: namespace + nvidia gpu names (no binary change) 2015-01-22 12:17:49 +10:00
object.c drm/nouveau/object: merge with handle 2015-08-28 12:40:47 +10:00
oproxy.c drm/nouveau/object: merge with handle 2015-08-28 12:40:47 +10:00
option.c drm/nouveau/pci: merge agp handling from nouveau drm 2015-08-28 12:40:49 +10:00
ramht.c drm/nouveau/core: remove the remainder of the previous style 2015-08-28 12:40:47 +10:00
subdev.c drm/nouveau/core: add support for secure boot 2016-03-14 10:13:22 +10:00