xref: /openbmc/linux/drivers/gpu/drm/nouveau/include/nvfw/fw.h (revision 8dd06ef34b6e2f41b29fbf5fc1663780f2524285)
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