uefi的有,你所说的是uefi bios吧?还是legacy bios ?
https://kagurazakakotori.github.io/ubmp-cn/foreward.html
legacy bios好像没给接口吧?你怎么开发?
uefi的我在物理机上试过
legacy bios我没有在物理机上试过
如果是在虚拟机中的话,那就简单了,直接改代码就可以了
sh-5.1$ pwd
/source/level_1/bochs/bochs-2.6.11/bochs-2.6.11/bios
sh-5.1$ ls
acpi-dsdt.dsl biossums.c rombios32.ld usage.cc VGABIOS-lgpl-latest-cirrus-debug
acpi-dsdt.hex bios_usage rombios32start.S vgabios-cirrus.bin-1.13.0 VGABIOS-lgpl-latest-debug
apmbios.S Makefile.in rombios.c VGABIOS-elpin-2.40 VGABIOS-lgpl-README
bios.bin-1.13.0 makesym.perl rombios.h VGABIOS-elpin-LICENSE
BIOS-bochs-latest notes SeaBIOS-README VGABIOS-lgpl-latest
BIOS-bochs-legacy rombios32.c SeaVGABIOS-README VGABIOS-lgpl-latest-cirrus
sh-5.1$ du -bsh rombios.c
315K rombios.c
sh-5.1$
vga bios也一样,直接改代码sh-5.1$ pwd
/source/level_1/vgabios/vgabios-0.8a
sh-5.1$ ls
banshee.c dataseghack vbe_display_api.txt vgabios-cirrus.debug.txt VGABIOS-lgpl-latest.cirrus.debug.bin
biossums Makefile vbe.h vgabios-cirrus.txt VGABIOS-lgpl-latest.debug.bin
biossums.c Notes vbetables-gen vgabios.debug.txt vgabios.txt
BUGS README vbetables-gen.c vgabios.h vgafonts.h
ChangeLog.old tests vbetables.h VGABIOS-lgpl-latest.banshee.bin vgatables.h
clext.c TODO vgabios-banshee.txt VGABIOS-lgpl-latest.bin
COPYING vbe.c vgabios.c VGABIOS-lgpl-latest.cirrus.bin
sh-5.1$ du -bsh clext.c
39K clext.c
sh-5.1$
uefi的也一样,改代码
不过我没有研究过uefi的代码
上一次我枚举pci配置空间的时候就用的uefi的加载器
pci配置空间里面有很多的id,如果你需要对应的字符串,你需要自己去查表
因为这个表非常的大,我把这个查表的操作写到程序里面以后,uefi的加载器就不给我加载程序了
之后我就没有继续研究uefi的东西
所以,如果你需要修改uefi的代码的话,那就自己研究uefi的代码吧
如果你需要修改legacy bios的代码,是rombios.c这个文件
vga bios是clext.c这个文件,这个是32位接口部分的文件,其他的还没有研究,我目前正在32位保护模式下调用16位的vbe函数,clext.c就是那个接口部分的代码
|