vs不能调试_x86的Port80调试口

本文介绍了x86系统中Port80在启动过程中的作用,作为BIOS调试的重要工具,它通过POST代码提供硬件初始化信息。内容包括Port80的两种实现机制——基于LPC总线的TPM接口和PCIe-PCI桥,以及POST代码的分类和含义。读者将了解到如何利用Port80进行x86系统的故障排查。
摘要由CSDN通过智能技术生成

[写在前面]哇塞哥贡献了本文的主要素材,老戚进行了编辑和风格整理。

x86启动过程中,BIOS会把POST code(POSTPower-On Self Test)不断的发送到IO空间0x80地址(Port80),硬件设计上常常用Port80来驱动LED灯,从而直观的获取BIOS进程的信息。当我们遇到系统启动问题时,Port80 LED能够显示问题发生的前后场景,是调试x86不可或缺的工具。

本文探讨了两种常用Port80(POST code) LED的实现机制:

  • 基于x86 LPC总线(TPM接口)(见图<1>的1/2)

  • 基于PCIe-PCI桥(PCIe扩展卡)(图<1>的3)

他们都是基于PCIe桥设备,但是对 IO空间访问译码转发采用了完全不同的机制: 负向译码 vs 减法译码

dc0609d86dc99eea3dd91ca1b3c81554.png

图<1> Port80 LED诊断卡

1. IO Port80 x86以PCI总线的方式来管理内外部设备。PCI协议定义了配置(Configuration)空间、IO空间、Memory空间(点击打开:x86的设备寻址),三种空间的寻址互相独立。 IO空间的地址范围为0x0~0xFFFF(64KB)。理论上,PCI设备都可以申请IO空间,限制是必须以4KB的倍数为边界(0xZ000~0xZFFF)。跟memory空间地址分配相似,系统也是根据配置空间提供的信息,来分配IO BAR。 现实中, IO空间的存在主要是为了 兼容早期(l
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值