1 /* SPDX-License-Identifier: MIT */ 2 #ifndef __NVFW_HS_H__ 3 #define __NVFW_HS_H__ 4 #include <core/os.h> 5 struct nvkm_subdev; 6 7 struct nvfw_hs_header { 8 u32 sig_dbg_offset; 9 u32 sig_dbg_size; 10 u32 sig_prod_offset; 11 u32 sig_prod_size; 12 u32 patch_loc; 13 u32 patch_sig; 14 u32 hdr_offset; 15 u32 hdr_size; 16 }; 17 18 const struct nvfw_hs_header *nvfw_hs_header(struct nvkm_subdev *, const void *); 19 20 struct nvfw_hs_header_v2 { 21 u32 sig_prod_offset; 22 u32 sig_prod_size; 23 u32 patch_loc; 24 u32 patch_sig; 25 u32 meta_data_offset; 26 u32 meta_data_size; 27 u32 num_sig; 28 u32 header_offset; 29 u32 header_size; 30 }; 31 32 const struct nvfw_hs_header_v2 *nvfw_hs_header_v2(struct nvkm_subdev *, const void *); 33 34 struct nvfw_hs_load_header { 35 u32 non_sec_code_off; 36 u32 non_sec_code_size; 37 u32 data_dma_base; 38 u32 data_size; 39 u32 num_apps; 40 u32 apps[]; 41 }; 42 43 const struct nvfw_hs_load_header * 44 nvfw_hs_load_header(struct nvkm_subdev *, const void *); 45 46 struct nvfw_hs_load_header_v2 { 47 u32 os_code_offset; 48 u32 os_code_size; 49 u32 os_data_offset; 50 u32 os_data_size; 51 u32 num_apps; 52 struct { 53 u32 offset; 54 u32 size; 55 } app[0]; 56 }; 57 58 const struct nvfw_hs_load_header_v2 *nvfw_hs_load_header_v2(struct nvkm_subdev *, const void *); 59 #endif 60