2
0
mirror of https://github.com/edk2-porting/linux-next.git synced 2024-12-29 15:43:59 +08:00
linux-next/drivers/gpu/drm/nouveau/nvkm/engine
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
..
bsp drm/nouveau/xtensa: convert to new-style nvkm_engine 2015-08-28 12:40:45 +10:00
ce drm/nouveau: s/gm204/gm200/ in a number of places 2016-03-14 10:13:12 +10:00
cipher drm/nouveau/core: remove the remainder of the previous style 2015-08-28 12:40:47 +10:00
device drm/nouveau/core: add support for secure boot 2016-03-14 10:13:22 +10:00
disp drm/nouveau: s/gm204/gm200/ in a number of places 2016-03-14 10:13:12 +10:00
dma drm/nouveau/nvif: modify nvif_unvers/nvif_unpack macros to be more obvious 2016-01-11 11:17:40 +10:00
fifo drm/nouveau: s/gm204/gm200/ in a number of places 2016-03-14 10:13:12 +10:00
gr drm/nouveau/gr/gm200: load external firmware and bundles 2016-03-14 10:13:21 +10:00
mpeg drm/nouveau/core: remove the remainder of the previous style 2015-08-28 12:40:47 +10:00
mspdec drm/nouveau/falcon: convert to new-style nvkm_engine 2015-08-28 12:40:45 +10:00
msppp drm/nouveau/falcon: convert to new-style nvkm_engine 2015-08-28 12:40:45 +10:00
msvld drm/nouveau/falcon: convert to new-style nvkm_engine 2015-08-28 12:40:45 +10:00
pm drm/nouveau/nvif: modify nvif_unvers/nvif_unpack macros to be more obvious 2016-01-11 11:17:40 +10:00
sec drm/nouveau/fifo: convert to new-style nvkm_engine 2015-08-28 12:40:46 +10:00
sw drm/nouveau/nvif: modify nvif_unvers/nvif_unpack macros to be more obvious 2016-01-11 11:17:40 +10:00
vp drm/nouveau/xtensa: convert to new-style nvkm_engine 2015-08-28 12:40:45 +10:00
falcon.c drm/nouveau/device: remove pci/platform_device from common struct 2015-08-28 12:40:49 +10:00
Kbuild drm/nouveau/dma: split user classes out from engine implementations 2015-08-28 12:40:39 +10:00
xtensa.c drm/nouveau/device: remove pci/platform_device from common struct 2015-08-28 12:40:49 +10:00