]>
git.proxmox.com Git - mirror_ubuntu-bionic-kernel.git/blob - drivers/gpu/drm/nouveau/nvkm/subdev/secboot/priv.h
2 * Copyright (c) 2015, NVIDIA CORPORATION. All rights reserved.
4 * Permission is hereby granted, free of charge, to any person obtaining a
5 * copy of this software and associated documentation files (the "Software"),
6 * to deal in the Software without restriction, including without limitation
7 * the rights to use, copy, modify, merge, publish, distribute, sublicense,
8 * and/or sell copies of the Software, and to permit persons to whom the
9 * Software is furnished to do so, subject to the following conditions:
11 * The above copyright notice and this permission notice shall be included in
12 * all copies or substantial portions of the Software.
14 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
17 * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
19 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
20 * DEALINGS IN THE SOFTWARE.
23 #ifndef __NVKM_SECBOOT_PRIV_H__
24 #define __NVKM_SECBOOT_PRIV_H__
26 #include <subdev/secboot.h>
27 #include <subdev/mmu.h>
29 struct nvkm_secboot_func
{
30 int (*oneinit
)(struct nvkm_secboot
*);
31 int (*fini
)(struct nvkm_secboot
*, bool suspend
);
32 void *(*dtor
)(struct nvkm_secboot
*);
33 int (*run_blob
)(struct nvkm_secboot
*, struct nvkm_gpuobj
*);
36 int nvkm_secboot_ctor(const struct nvkm_secboot_func
*, struct nvkm_acr
*,
37 struct nvkm_device
*, int, struct nvkm_secboot
*);
38 int nvkm_secboot_falcon_reset(struct nvkm_secboot
*);
39 int nvkm_secboot_falcon_run(struct nvkm_secboot
*);
46 static inline u64
flcn64_to_u64(const struct flcn_u64 f
)
48 return ((u64
)f
.hi
) << 32 | f
.lo
;
51 static inline struct flcn_u64
u64_to_flcn64(u64 u
)
55 ret
.hi
= upper_32_bits(u
);
56 ret
.lo
= lower_32_bits(u
);