找回密码
 加入计匠网
搜索
热搜: BIOS ACPI CPU Windows
查看: 52514|回复: 26

[原创]EFI application:PCI read & write 程序源码

[复制链接]
发表于 2008-3-28 20:43:50 | 显示全部楼层 |阅读模式
本来去年去南京UEFI上学习过,但一直没用,直到新工作上马,EFI成为必须,新机器也是刚拿到刚3天,自己边学边写的一个PCI配置空间的读写、EFI Application程序的作业(也是自己的第一个EFI应用程序),要知道是边学边写,函数都是乱找一通的,所以代码和流程乱七八糟,不想再整了,别见笑。(注意,本程序运行是在模拟环境,所看到的PCI Device是用驱动虚拟的)。9 K/ Z/ ^: t, R
5 E, _7 z  C! t9 L
接下来将学习EFI Driver的编写。% ^6 C" V/ J5 f' Y, |; @

3 s- w5 k. f" E, K0 A本Application的介面:
0 R, B/ p7 x9 g3 U* f) M% i1 ~* ?: u9 M pcirw_efi.JPG

PCIRW.zip

88.62 KB, 下载次数: 1645

发表于 2008-3-29 21:27:02 | 显示全部楼层
读明白了
3 ^8 ~& U# Q  R/ }弱的问一下。) w5 a4 J& P# A5 O$ w" s
部分函数的底层代码是谁实现的,也是你实现的吗?
0 O  e/ F+ l+ b- F' n+ t7 E咯。。。。。
; s9 \& P, i+ m, ]- _' w5 U小强。
回复

使用道具 举报

发表于 2008-3-30 19:43:26 | 显示全部楼层
还没看到过efi的程序,今天终于有机会看看了,谢谢南狼大哥~~~
回复

使用道具 举报

发表于 2008-3-31 09:06:16 | 显示全部楼层
一看这个界面就是干Legacy BIOS出身的,熟悉一些类似RU的Tools。
- v) ^9 b/ W! K9 H: H1 Y在EFI下,也许能更漂亮一些。3 b  Y. D+ G! E! B; }% O% e5 H" Y
/ a, i6 o! x' {+ i
或许可以开发一些新功能,使EFI Shell更加的友好。
回复

使用道具 举报

发表于 2008-4-1 22:05:14 | 显示全部楼层
第一次看EFI的程序,学习了
回复

使用道具 举报

发表于 2008-4-4 11:00:07 | 显示全部楼层
支持bini~~~
回复

使用道具 举报

发表于 2008-4-9 21:30:52 | 显示全部楼层
没有看到那几个头文件!
回复

使用道具 举报

发表于 2008-4-9 23:20:55 | 显示全部楼层
如果没记错的话,在SDK中就包含了这几个文件,忘鸟。。。
回复

使用道具 举报

发表于 2008-7-22 14:39:34 | 显示全部楼层
跟楼主共同学习!
回复

使用道具 举报

发表于 2008-7-22 14:52:28 | 显示全部楼层
一个比较白痴的问题,请问这个程序该如何编译,谢谢!
回复

使用道具 举报

发表于 2008-7-22 23:26:42 | 显示全部楼层
在vs2005+EDK里面可以编译,不过我上面运行是找不到gEfiPciRootBridgeIoProtocolGuid...
回复

使用道具 举报

 楼主| 发表于 2008-7-23 09:50:13 | 显示全部楼层
回楼上的同学,找不到,请加入这个。

pcihostbridge.zip

23.06 KB, 下载次数: 868

回复

使用道具 举报

发表于 2008-7-23 13:49:53 | 显示全部楼层
恩,好了,+ h4 ~6 o; k; e# C! _
不过第一次用的时候要自己load 才可以,' g3 G0 H6 ^) P9 {+ K9 E1 U: C. e
load一次后,firmware volume会自动加载这个DXE driver了.
5 y! ]& f! H  S: t: Y  N* Y  C8 z! A好强!!!6 @9 g* X$ H9 b! Q6 O* ?* I1 Z

* N; ?' L# Y, [0 |8 n4 H" ^9 W$ w2 X[ 本帖最后由 xtdumpling 于 2008-7-24 13:47 编辑 ]
回复

使用道具 举报

发表于 2008-7-23 14:10:42 | 显示全部楼层
不好意思, 上面的说法有误! . a2 C' e9 v# L3 q& [5 w5 y
load后,我看到FVRECOVERY.inf里面有了那个DXE了, 所以自以为load会改变FD,那时我自己加了"FV=NULL"
1 y9 j, S$ E4 m8 l1 U& P8 A1 _+ b
  W. Z3 X4 G3 k, M+ y; ^# V% N$ k楼主的那个WinNtPciHostBridge driver会自动加载的,0 m; s8 ^  s" f  E; c% b+ F
不好意思~~
回复

使用道具 举报

发表于 2008-7-24 08:38:12 | 显示全部楼层
有没有比较详细的编译步骤,谢谢!
回复

使用道具 举报

发表于 2008-7-24 11:15:43 | 显示全部楼层
EFI Developer Kit (EDK)  Getting Started Guide ---from https://www.tianocore.org3 B  @& N( Q! z( H$ `  P
5 @+ X' Z/ }3 W5 Y" F( p6 W
https://www.tianocore.org/files/ ... ed%20Guide.0.41.pdf
回复

使用道具 举报

发表于 2008-7-24 13:47:56 | 显示全部楼层
12#里面好像掉了WinNtPciHostBridge.dxs这个文件
回复

使用道具 举报

发表于 2008-9-9 14:29:28 | 显示全部楼层
原帖由 bini 于 2008-3-28 20:43 发表 (注意,本程序运行是在模拟环境,所看到的PCI Device是用驱动虚拟的)。

) q, M' s+ u7 q/ ^6 i发现一个小问题,程序只虚拟了ISA(00 1F 00) PCI Configuration Space的240个字节的,还差16个呢!
回复

使用道具 举报

发表于 2009-3-26 20:53:13 | 显示全部楼层
原帖由 xtdumpling 于 2008-7-24 13:47 发表 5 |% p# n4 U0 T- @. c" d3 L, z, N8 ]
12#里面好像掉了WinNtPciHostBridge.dxs这个文件

( L8 U) k1 M% J( C是啊,我在编译的时候出错,提示是缺少WinNtPciHostBridge.dxs,还望楼主给出解决办法啊
回复

使用道具 举报

发表于 2009-3-26 21:01:52 | 显示全部楼层
是少了一个,自己要手动添加一个就ok了,呵呵,得研究一下怎么模拟的pcihostbridge
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 加入计匠网

本版积分规则

Archiver|手机版|小黑屋|计匠网

GMT+8, 2024-5-10 01:40 , Processed in 0.036028 second(s), 19 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表