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