高分小问题,请cnzdgs,侯佩,BAYNPU等高手进来看下

masterkill 2008-11-12 01:45:01
对于南桥上的PCI Device,我想在BIOS POST过程中建立好LIST,但不能通过SCAN,即BUS*DEVICE*FUCTION的循环来做,要求必须用P2P Bridge的方式写Code,我只知道从PCIE Header Region中能读出Primary,Secondary,Sub BUS Number,请问接下来我应该怎么做呢
边写作业边等
...全文
86 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
cxdzxc 2008-11-12
  • 打赏
  • 举报
回复
P2P Bridge----什摸东东,不懂,麻烦楼主和其他高手给扫盲下,越详细越好,再此先谢谢了!
xiaopoy 2008-11-12
  • 打赏
  • 举报
回复
学习..

纯帮顶
masterkill 2008-11-12
  • 打赏
  • 举报
回复
你有EFI BIOS的source code?
xtdumpling 2008-11-12
  • 打赏
  • 举报
回复
...

大势所趋啊~~
Intel 2009年起就没Legacy BIOS的support了
masterkill 2008-11-12
  • 打赏
  • 举报
回复
居然去学EFI BIOS,你完了
xtdumpling 2008-11-12
  • 打赏
  • 举报
回复
...
if(0==function&&!IsMultiFunc(...)){
xtdumpling 2008-11-12
  • 打赏
  • 举报
回复
建议用IO的方式,Memory的方式要在PCIE Base Address设置以后才可以用的.
bus=n
for(device=0;device<=2^5;device++){
for(function=0;function<=2^3;function++){
if(!IsMultiFunc(...)){
break;
...
masterkill 2008-11-12
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 xtdumpling 的回复:]
大概流程:
Root(0,0,0),bus=0,MaxBusNo=0
1.record bus,set Primary Bus No.
2.scan device,function,check multi-function,record device/function
3.got bridge(s)? update MaxBusNo goto 5 : goto 4
4.set SubordinaryBusNo, (SubordinaryBusNo. <=MaxBusNo)? bus++,goto 1 : goto 6
5.set SecondaryBusNo ,bus++, goto 1
6.done
[/Quote]
我得到BUS Number,也设置了Primary Bus,根据第一条信息怎么进行Scan?Memory?IO Config?由于以前只用过这两种方式,所以......不懂
xtdumpling 2008-11-12
  • 打赏
  • 举报
回复
大概流程:
Root(0,0,0),bus=0,MaxBusNo=0
1.record bus,set Primary Bus No.
2.scan device,function,check multi-function,record device/function
3.got bridge(s)? update MaxBusNo goto 5 : goto 4
4.set SubordinaryBusNo, (SubordinaryBusNo.<=MaxBusNo)? bus++,goto 1 : goto 6
5.set SecondaryBusNo ,bus++, goto 1
6.done
masterkill 2008-11-12
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 xtdumpling 的回复:]


另外,PCI/E Bridge的Primary,Secondary,Sub BUS Number是BIOS在POST过程中填的,所以对于BIOS来说没有什么用.
[/Quote]
- -#
是阿,是在BIOS POST过程中建立好的,但问题是BIOS POST也是人写的阿......不写好它也只有死在ROM里......
还有哦,我知道是要用Bridge来做,问题是......怎么做
xtdumpling 2008-11-12
  • 打赏
  • 举报
回复
我看见UEFI EDK中有这么一个目录PciBusNoEnumeration,
它的方式是从RootBridge(0,0,0)到最后一个HostBridge逐级扫描device和function(有判断multi-function)
这样基本就是最少的扫描次数了.

另外,PCI/E Bridge的Primary,Secondary,Sub BUS Number是BIOS在POST过程中填的,所以对于BIOS来说没有什么用.

21,459

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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