|
发表于 2022-12-31 11:58:51
|
显示全部楼层
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就是那个接口部分的代码
|
|