2
0
mirror of https://github.com/edk2-porting/linux-next.git synced 2025-01-16 17:43:56 +08:00
linux-next/drivers/gpu/drm/nouveau/nvkm/subdev
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
..
bar drm/nouveau/device: cleaner abstraction for device resource functions 2015-08-28 12:40:48 +10:00
bios drm/nouveau/bios/devinit: properly handle unknown generic conditions 2016-03-14 10:13:17 +10:00
bus drm/nouveau/bus/hwsq: Implement VBLANK waiting heuristic 2015-11-03 15:02:18 +10:00
clk asm-generic changes for 4.5 2016-01-20 17:30:20 -08:00
devinit drm/nouveau/devinit/gf100-: detect if BIOS invoked devinit 2016-03-14 10:13:16 +10:00
fb drm/nouveau/fb/nv50: remove references to "daemon" 2016-01-11 11:28:23 +10:00
fuse drm/nouveau/fuse: convert to new-style nvkm_subdev 2015-08-28 12:40:43 +10:00
gpio drm/nouveau/fb/ramgt215: Transform GPIO ramfuc method from FBVREF-specific to generic 2015-11-03 15:02:18 +10:00
i2c drm/nouveau: s/gm204/gm200/ in a number of places 2016-03-14 10:13:12 +10:00
ibus drm/nouveau: s/gm204/gm200/ in a number of places 2016-03-14 10:13:12 +10:00
instmem drm/nouveau/instmem/gk20a: use DMA API CPU mapping 2016-01-11 11:17:40 +10:00
ltc drm/nouveau/ltc/gm107: fix slice intr offset 2016-03-14 10:13:16 +10:00
mc drm/nouveau/mc: move device irq handling to platform-specific code 2015-08-28 12:40:48 +10:00
mmu drm/nouveau/device: remove pci/platform_device from common struct 2015-08-28 12:40:49 +10:00
mxm drm/nouveau/device: remove pci/platform_device from common struct 2015-08-28 12:40:49 +10:00
pci drm/nouveau/pci: fix check in nvkm_pcie_set_link 2016-01-14 07:56:37 +10:00
pmu drm/nouveau/pmu: prevent falcon from acking interrupts routed to the host 2016-01-11 11:30:23 +10:00
secboot drm/nouveau/core: add support for secure boot 2016-03-14 10:13:22 +10:00
therm drm/nouveau/nvkm: add/remove 0's to make 7 (or 9)-nibble constants use 8 nibbles 2016-01-11 11:17:40 +10:00
timer drm/nouveau/tmr: convert to new-style nvkm_subdev 2015-08-28 12:40:45 +10:00
volt drm/nouveau/volt/pwm/gk104: fix an off-by-one resulting in the voltage not being set 2015-11-25 15:37:45 +10:00
Kbuild drm/nouveau/core: add support for secure boot 2016-03-14 10:13:22 +10:00