xref: /linux/drivers/gpu/drm/nouveau/include/nvkm/subdev/fsp.h (revision b08494a8f7416e5f09907318c5460ad6f6e2a548)
1 /* SPDX-License-Identifier: MIT
2  *
3  * Copyright (c) 2025, NVIDIA CORPORATION. All rights reserved.
4  */
5 #ifndef __NVKM_FSP_H__
6 #define __NVKM_FSP_H__
7 #include <core/subdev.h>
8 #include <core/falcon.h>
9 
10 struct nvkm_fsp {
11 	const struct nvkm_fsp_func *func;
12 	struct nvkm_subdev subdev;
13 
14 	struct nvkm_falcon falcon;
15 };
16 
17 bool nvkm_fsp_verify_gsp_fmc(struct nvkm_fsp *, u32 hash_size, u32 pkey_size, u32 sig_size);
18 int nvkm_fsp_boot_gsp_fmc(struct nvkm_fsp *, u64 args_addr, u32 rsvd_size, bool resume,
19 			  u64 img_addr, const u8 *hash, const u8 *pkey, const u8 *sig);
20 
21 int gh100_fsp_new(struct nvkm_device *, enum nvkm_subdev_type, int inst, struct nvkm_fsp **);
22 int gb100_fsp_new(struct nvkm_device *, enum nvkm_subdev_type, int inst, struct nvkm_fsp **);
23 int gb202_fsp_new(struct nvkm_device *, enum nvkm_subdev_type, int inst, struct nvkm_fsp **);
24 #endif
25