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
8struct 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
28u8  nvbios_checksum(const u8 *data, int size);
29u16 nvbios_findstr(const u8 *data, int size, const char *str, int len);
30int nvbios_memcmp(struct nvkm_bios *, u32 addr, const char *, u32 len);
31u8  nvbios_rd08(struct nvkm_bios *, u32 addr);
32u16 nvbios_rd16(struct nvkm_bios *, u32 addr);
33u32 nvbios_rd32(struct nvkm_bios *, u32 addr);
34
35int nvkm_bios_new(struct nvkm_device *, int, struct nvkm_bios **);
36#endif
37