brintos

brintos / linux-shallow public Read only

0
0
Text · 2.1 KiB · d531121 Raw
105 lines · c
1/* SPDX-License-Identifier: MIT */2#ifndef __NVFW_LS_H__3#define __NVFW_LS_H__4#include <core/os.h>5struct nvkm_subdev;6 7struct 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 28struct 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 38const struct nvfw_ls_desc *nvfw_ls_desc(struct nvkm_subdev *, const void *);39 40struct 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 51const struct nvfw_ls_desc_v1 *52nvfw_ls_desc_v1(struct nvkm_subdev *, const void *);53 54struct nvfw_ls_desc_v2 {55	u32 descriptor_size;56	u32 image_size;57	u32 tools_version;58	u32 app_version;59	char date[64];60	u32 secure_bootloader;61	u32 bootloader_start_offset;62	u32 bootloader_size;63	u32 bootloader_imem_offset;64	u32 bootloader_entry_point;65	u32 app_start_offset;66	u32 app_size;67	u32 app_imem_offset;68	u32 app_imem_entry;69	u32 app_dmem_offset;70	u32 app_resident_code_offset;71	u32 app_resident_code_size;72	u32 app_resident_data_offset;73	u32 app_resident_data_size;74	u32 nb_imem_overlays;75	u32 nb_dmem_overlays;76	struct {77		u32 start;78		u32 size;79	} load_ovl[64];80};81 82const struct nvfw_ls_desc_v2 *nvfw_ls_desc_v2(struct nvkm_subdev *, const void *);83 84struct nvfw_ls_hsbl_bin_hdr {85	u32 bin_magic;86	u32 bin_ver;87	u32 bin_size;88	u32 header_offset;89};90 91const struct nvfw_ls_hsbl_bin_hdr *nvfw_ls_hsbl_bin_hdr(struct nvkm_subdev *, const void *);92 93struct nvfw_ls_hsbl_hdr {94	u32 sig_prod_offset;95	u32 sig_prod_size;96	u32 patch_loc;97	u32 patch_sig;98	u32 meta_data_offset;99	u32 meta_data_size;100	u32 num_sig;101};102 103const struct nvfw_ls_hsbl_hdr *nvfw_ls_hsbl_hdr(struct nvkm_subdev *, const void *);104#endif105