xref: /netbsd-src/sys/external/bsd/drm2/dist/drm/nouveau/include/nvkm/subdev/bios.h (revision 41ec02673d281bbb3d38e6c78504ce6e30c228c1)
1 /*	$NetBSD: bios.h,v 1.3 2021/12/18 23:45:33 riastradh Exp $	*/
2 
3 /* SPDX-License-Identifier: MIT */
4 #ifndef __NVKM_BIOS_H__
5 #define __NVKM_BIOS_H__
6 #include <core/subdev.h>
7 
8 struct nvkm_bios {
9 	struct nvkm_subdev subdev;
10 	u32 size;
11 	u8 *data;
12 
13 	u32 image0_size;
14 	u32 imaged_addr;
15 
16 	u32 bmp_offset;
17 	u32 bit_offset;
18 
19 	struct {
20 		u8 major;
21 		u8 chip;
22 		u8 minor;
23 		u8 micro;
24 		u8 patch;
25 	} version;
26 };
27 
28 u8  nvbios_checksum(const u8 *data, int size);
29 u16 nvbios_findstr(const u8 *data, int size, const char *str, int len);
30 int nvbios_memcmp(struct nvkm_bios *, u32 addr, const char *, u32 len);
31 u8  nvbios_rd08(struct nvkm_bios *, u32 addr);
32 u16 nvbios_rd16(struct nvkm_bios *, u32 addr);
33 u32 nvbios_rd32(struct nvkm_bios *, u32 addr);
34 
35 int nvkm_bios_new(struct nvkm_device *, int, struct nvkm_bios **);
36 #endif
37