1*c63fe2e7SBen Skeggs /* SPDX-License-Identifier: MIT */ 2*c63fe2e7SBen Skeggs #ifndef __NVFW_FW_H__ 3*c63fe2e7SBen Skeggs #define __NVFW_FW_H__ 4*c63fe2e7SBen Skeggs #include <core/os.h> 5*c63fe2e7SBen Skeggs struct nvkm_subdev; 6*c63fe2e7SBen Skeggs 7*c63fe2e7SBen Skeggs struct nvfw_bin_hdr { 8*c63fe2e7SBen Skeggs u32 bin_magic; 9*c63fe2e7SBen Skeggs u32 bin_ver; 10*c63fe2e7SBen Skeggs u32 bin_size; 11*c63fe2e7SBen Skeggs u32 header_offset; 12*c63fe2e7SBen Skeggs u32 data_offset; 13*c63fe2e7SBen Skeggs u32 data_size; 14*c63fe2e7SBen Skeggs }; 15*c63fe2e7SBen Skeggs 16*c63fe2e7SBen Skeggs const struct nvfw_bin_hdr *nvfw_bin_hdr(struct nvkm_subdev *, const void *); 17*c63fe2e7SBen Skeggs 18*c63fe2e7SBen Skeggs struct nvfw_bl_desc { 19*c63fe2e7SBen Skeggs u32 start_tag; 20*c63fe2e7SBen Skeggs u32 dmem_load_off; 21*c63fe2e7SBen Skeggs u32 code_off; 22*c63fe2e7SBen Skeggs u32 code_size; 23*c63fe2e7SBen Skeggs u32 data_off; 24*c63fe2e7SBen Skeggs u32 data_size; 25*c63fe2e7SBen Skeggs }; 26*c63fe2e7SBen Skeggs 27*c63fe2e7SBen Skeggs const struct nvfw_bl_desc *nvfw_bl_desc(struct nvkm_subdev *, const void *); 28*c63fe2e7SBen Skeggs #endif 29