1 /* SPDX-License-Identifier: MIT */ 2 #ifndef __NVKM_BIOS_PRIV_H__ 3 #define __NVKM_BIOS_PRIV_H__ 4 #define nvkm_bios(p) container_of((p), struct nvkm_bios, subdev) 5 #include <subdev/bios.h> 6 7 struct nvbios_source { 8 const char *name; 9 void *(*init)(struct nvkm_bios *, const char *); 10 void (*fini)(void *); 11 u32 (*read)(void *, u32 offset, u32 length, struct nvkm_bios *); 12 u32 (*size)(void *); 13 bool rw; 14 bool ignore_checksum; 15 bool no_pcir; 16 bool require_checksum; 17 }; 18 19 int nvbios_extend(struct nvkm_bios *, u32 length); 20 int nvbios_shadow(struct nvkm_bios *); 21 22 extern const struct nvbios_source nvbios_rom; 23 extern const struct nvbios_source nvbios_ramin; 24 extern const struct nvbios_source nvbios_acpi_fast; 25 extern const struct nvbios_source nvbios_acpi_slow; 26 extern const struct nvbios_source nvbios_pcirom; 27 extern const struct nvbios_source nvbios_platform; 28 extern const struct nvbios_source nvbios_of; 29 #endif 30