2wsx 发表于 2022-12-30 13:45:09

bios

有没有懂BIOS开发的

高山 发表于 2022-12-30 13:51:49

不懂,BIOS还有开发这说法?

人造人 发表于 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.perlrombios.h          VGABIOS-elpin-LICENSE
BIOS-bochs-latestnotes       SeaBIOS-README   VGABIOS-lgpl-latest
BIOS-bochs-legacyrombios32.c       SeaVGABIOS-READMEVGABIOS-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      dataseghackvbe_display_api.txtvgabios-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.oldtests          vbetables.h               VGABIOS-lgpl-latest.banshee.binvgatables.h
clext.c      TODO          vgabios-banshee.txtVGABIOS-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就是那个接口部分的代码
页: [1]
查看完整版本: bios