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