怎样写程序到网卡的扩展ROM里面?

waiyan 2004-01-02 10:17:11
把还原卡做到网卡上了。。 看完之后有几个问题:
华苏还原卡修改、安装说明
华苏还原卡的制作如下:
1、把网卡插在主板上,导出并修改网卡串行芯片中的内容(导入我们提供的卡号等)。
2、修改网卡的启动芯片文件27C512.BIN,修改的内容,与1中的要对应。
3、把网卡启动芯片按正确的方向,安装到网卡上的ROM芯片插座中,注意二者的缺口方向要一致。
也可以按后面介绍的方法,把27C512.BIN文件写到主板的BIOS文件中。
4、重新安装网卡的驱动程序。

下面是具体操作方法:
 

一、网卡串行芯片的修改:

1、首先,在计算机中插入一块8139网卡(不插BootRom启动芯片)。利用pg8139.exe软件导出此pci8139卡中的93c64串行存储芯片的内容,存盘文件为8139x.map。 格式: pg8139 /r /pci

注意:此文件的大小为800字节,如果你没有,可从下面下载。

2、其次,修改存盘文件8139x.map文件的内容,此文件为文本文档,edit命令修改即可。在DOS状态下,输入命令:

EDIT 8139x.map,出现如下画面:



在第一行的数据中,从EC开始的4个字节为厂商信息,必须被改为57 FF 14 57 ;从00开始至下行的6个字节为:00 E0 4C 00 00 0F。其中,00 E0 4C 00 00 0F是卡号,把E0改为05,后面四位卡号按我们给出的修改。此外,卡号后面的第一个字节需改为14。以上的修改完成后存盘退出。

3、把上面修改好的文件写入网卡的串行芯片中,使用的命令为:

pg8139 /w /pci


二、网卡启动芯片文件的修改:

1、用编辑软件(如WINHEX等),对启动芯片文件27C512.BIN进行修改,修改00007FF0H那一行,其中,20020819不要改,只改后面四位卡号,和网卡串行芯片中的卡号一致即可,这样就没有时间限制了。




2、把修改后的写入27C512.BIN到一片27C512芯片中,把芯片插在网卡的启动芯片的插座中,插入时,注意芯片缺口的方向和插座缺口的方向一致。
如果没有启动芯片,也可以把该文件写入到主板的BIOS文件中。主板BIOS一般以AWARD和AMI居多,两家也分别提供了BIOS修改工具:CBROM 和 AMIBCP。CBROM是基于命令行的程序,具体功能可以通过CBROM /? 获得。我们这里只会用到两种:CBROM BIOS.BIN /PCI 27C512.BIN和 CBROM BIOS.BIN /XXX RELEASE。第一个命令就是将启动的ROM文件加入到BIOS文件里,第二个命令意思是当你的BIOS剩余空间不足50K时,从BIOS里删除一些你认为不重要的模块来获得多余空间(因为网卡的ROM文件压缩后至少需要50K的空间)至于AMI的BIOS工具AMIBCP是图形界面的,比较友好。进入到修改模块的选项后,通过DEL 和 INSERT 键就可以删除和添加模块。
具体操作如下:(以AWARD bios 为例子)
1.用 awdflash 备份你主板的BIOS到文件:bios.bin
2.用 cbrom bios.bin /d 察看BIOS文件里的剩余容量是否大于50K
3.如果小于50K,则用 cbrom bios.bin /不重要的模块 release 来获得空间
4.如果大于50K,则直接用 cbrom bios.bin /pci 27C512.bin 来合成
5.最后用 awdflash bios.bin /py /sn 将文件刷到主板。

具体的看这里:
http://sdkh.51.net/bhk/hus.htm

为什么在如下操作:
在第一行的数据中,从EC开始的4个字节为厂商信息,必须被改为57 FF 14 57 ;(为什么要这样改?)从00开始至下行的6个字节为:00 E0 4C 00 00 0F。其中,00 E0 4C 00 00 0F是卡号,(网卡的卡号吗?是怎么回事)把E0改为05,(为什么是05?)后面四位卡号按我们给出的修改。此外,卡号后面的第一个字节需改为14(为什么是14?)。以上的修改完成后存盘退出。

我想自己写段程序像还原卡那样也可以放到网卡ROM里面启动运行,程序的开头该怎么写?有关PCI的要怎么写?大侠们请指教!!



...全文
440 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
weileily 2004-01-02
  • 打赏
  • 举报
回复
这个要看PCI协议中关于BIOS的内容,具体我记不清,现在手上又没有spec。你可以自己查一下,上面有几张表,根据你的卡的功能和属性可以查到相应的内容。

查到相应的内容后把数据写到一个汇编文件中,用mov的方法给相应位置赋值,就可以了。

生成的bin文件可以有两种常用方法灌到rom中:
1。直接烧;
2。根据你的rom的类型,查它的data manual,自己写个load程序。

21,600

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 驱动开发/核心开发
社区管理员
  • 驱动开发/核心开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧