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