1 /* SPDX-License-Identifier: MIT 2 * 3 * Copyright (c) 2025, NVIDIA CORPORATION. All rights reserved. 4 */ 5 #ifndef __NVKM_FSP_PRIV_H__ 6 #define __NVKM_FSP_PRIV_H__ 7 #define nvkm_fsp(p) container_of((p), struct nvkm_fsp, subdev) 8 #include <subdev/fsp.h> 9 10 struct nvkm_fsp_func { 11 int (*wait_secure_boot)(struct nvkm_fsp *); 12 13 struct { 14 u32 version; 15 u32 size_hash; 16 u32 size_pkey; 17 u32 size_sig; 18 int (*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 } cot; 21 }; 22 23 int nvkm_fsp_new_(const struct nvkm_fsp_func *, 24 struct nvkm_device *, enum nvkm_subdev_type, int inst, struct nvkm_fsp **); 25 26 int gh100_fsp_wait_secure_boot(struct nvkm_fsp *); 27 int gh100_fsp_boot_gsp_fmc(struct nvkm_fsp *, u64 args_addr, u32 rsvd_size, bool resume, 28 u64 img_addr, const u8 *hash, const u8 *pkey, const u8 *sig); 29 #endif 30