0001
0002 #ifndef __NVKM_BIOS_H__
0003 #define __NVKM_BIOS_H__
0004 #include <core/subdev.h>
0005
0006 struct nvkm_bios {
0007 struct nvkm_subdev subdev;
0008 u32 size;
0009 u8 *data;
0010
0011 u32 image0_size;
0012 u32 imaged_addr;
0013
0014 u32 bmp_offset;
0015 u32 bit_offset;
0016
0017 struct {
0018 u8 major;
0019 u8 chip;
0020 u8 minor;
0021 u8 micro;
0022 u8 patch;
0023 } version;
0024 };
0025
0026 u8 nvbios_checksum(const u8 *data, int size);
0027 u16 nvbios_findstr(const u8 *data, int size, const char *str, int len);
0028 int nvbios_memcmp(struct nvkm_bios *, u32 addr, const char *, u32 len);
0029 u8 nvbios_rd08(struct nvkm_bios *, u32 addr);
0030 u16 nvbios_rd16(struct nvkm_bios *, u32 addr);
0031 u32 nvbios_rd32(struct nvkm_bios *, u32 addr);
0032
0033 int nvkm_bios_new(struct nvkm_device *, enum nvkm_subdev_type, int, struct nvkm_bios **);
0034 #endif