1 /* SPDX-License-Identifier: MIT */ 2 #ifndef __NVFW_LS_H__ 3 #define __NVFW_LS_H__ 4 #include <core/os.h> 5 struct nvkm_subdev; 6 7 struct nvfw_ls_desc_head { 8 u32 descriptor_size; 9 u32 image_size; 10 u32 tools_version; 11 u32 app_version; 12 char date[64]; 13 u32 bootloader_start_offset; 14 u32 bootloader_size; 15 u32 bootloader_imem_offset; 16 u32 bootloader_entry_point; 17 u32 app_start_offset; 18 u32 app_size; 19 u32 app_imem_offset; 20 u32 app_imem_entry; 21 u32 app_dmem_offset; 22 u32 app_resident_code_offset; 23 u32 app_resident_code_size; 24 u32 app_resident_data_offset; 25 u32 app_resident_data_size; 26 }; 27 28 struct nvfw_ls_desc { 29 struct nvfw_ls_desc_head head; 30 u32 nb_overlays; 31 struct { 32 u32 start; 33 u32 size; 34 } load_ovl[64]; 35 u32 compressed; 36 }; 37 38 const struct nvfw_ls_desc *nvfw_ls_desc(struct nvkm_subdev *, const void *); 39 40 struct nvfw_ls_desc_v1 { 41 struct nvfw_ls_desc_head head; 42 u32 nb_imem_overlays; 43 u32 nb_dmem_overlays; 44 struct { 45 u32 start; 46 u32 size; 47 } load_ovl[64]; 48 u32 compressed; 49 }; 50 51 const struct nvfw_ls_desc_v1 * 52 nvfw_ls_desc_v1(struct nvkm_subdev *, const void *); 53 #endif 54