AMI legacy BIOS里添加2个VBIOS的问题

有时候需要同时支持3种类型以上的显示器输出,一个VBIOS无法同时支持这些设备时,就需要包两个VGA BIOS进去,

然后让用户根据显示器的类型来选择从哪一个VBIOS来启动。

 

在AMI legacy code里有2种方法可以实现:

方法 1

1. 使用 user_rom token 来包 vBIOSB, 使用 PCI device sdl 来包 vBIOSA

 

2. dim_func_2 dim_2_do_c000_scan 这个 label 前面使用解压程序把 vBIOSB 解压,然后 copy C0000h 的位置

  去就好,不用加 code 跳进 C000:0003 的地方去执行。

 

注意事项:

1.Copy 的时候不用再开 C000 shadow ram W ,否则会 hang 2A

2. rep 的计数器只认 cx ,不认识 ecx

3. vBIOSB module ID 一定不能和其它的重复

 

方法2:
1. 使用user_rom来包vBIOSB
       USER_ROM1_DESTSEG =device ID
       USER_ROM1_DESTADDR=vendor ID
2. 把di-pci.asm里的copy_pci_rom_to_shadow程序里的
   PCI_OPTION_ROM_ID换成MKF_USER_ROM1_MODULEID

 


 

你可能感兴趣的:(c,user,Module,token)