153913Sarchie/* SPDX-License-Identifier: MIT */ 253913Sarchie#ifndef __NVKM_BIOS_H__ 3139823Simp#define __NVKM_BIOS_H__ 4139823Simp#include <core/subdev.h> 5139823Simp 653913Sarchiestruct nvkm_bios { 753913Sarchie struct nvkm_subdev subdev; 853913Sarchie u32 size; 953913Sarchie u8 *data; 1053913Sarchie 1153913Sarchie u32 image0_size; 1253913Sarchie u32 imaged_addr; 1353913Sarchie 1453913Sarchie u32 bmp_offset; 1553913Sarchie u32 bit_offset; 1653913Sarchie 1753913Sarchie struct { 1853913Sarchie u8 major; 1953913Sarchie u8 chip; 2053913Sarchie u8 minor; 2153913Sarchie u8 micro; 2253913Sarchie u8 patch; 2353913Sarchie } version; 2453913Sarchie}; 2553913Sarchie 2653913Sarchieu8 nvbios_checksum(const u8 *data, int size); 2753913Sarchieu16 nvbios_findstr(const u8 *data, int size, const char *str, int len); 2853913Sarchieint nvbios_memcmp(struct nvkm_bios *, u32 addr, const char *, u32 len); 2953913Sarchieu8 nvbios_rd08(struct nvkm_bios *, u32 addr); 3053913Sarchieu16 nvbios_rd16(struct nvkm_bios *, u32 addr); 3153913Sarchieu32 nvbios_rd32(struct nvkm_bios *, u32 addr); 3253913Sarchievoid *nvbios_pointer(struct nvkm_bios *, u32 addr); 3353913Sarchie 3453913Sarchieint nvkm_bios_new(struct nvkm_device *, enum nvkm_subdev_type, int, struct nvkm_bios **); 3553913Sarchie#endif 3653913Sarchie