X86平台开发随记

主要是基于Intel X86平台的开发经验做分享,欢迎讨论交流。

X86平台相对于ARM平台会复杂很多,从芯片的电源的路数就可以清晰的看到。X86平台的电源,通常有十几路甚至二十几路需要处理和控制,要求的上下电时序通常比较复杂;而ARM平台则通常只有几路电源需要处理,要求的上下电时序通常比较简单,甚至没有特别的要求。

如下就是X86平台的一个典型的上下电时序要求:

X86平台的上下电时序比较复杂,且电源和需要控制的信号比较多,通常需要借助于特定的芯片做相应的控制处理,比如CPLD、单片机等。

CPLD如lattice和intel都是主流的厂家,通过灵活的硬件编程语言(Verilog或者VHDL)可以方便的实现上下电时序的控制,在首次回板调试过程中,可以通过编程进行调试,避免来回拆焊硬件器件。需要注意的是,硬件原理设计时,可以将一些暂时不知道如何使用的管脚拉到CPLD中,后期可以通过编码的方式实现对管脚的控制或者监控,从而可以减少改板的需求,当然这跟器件可以支持的管脚数量是有直接关系的,而管脚数量跟成本也是有对应关系的。

在X86平台中,会有一个双BIOS的概念,intel官方也有这样的设计,不过主要是通过软件的方式实现,一个flash中分成两个区域,存放两份固件,一份有异常无法启机时切换到另一份启机,这样的方式碰到硬件的flash有异常时,就无法实现目的了,而且这个设计非常依赖于BIOS厂家;所以,我们也有通过硬件的方式来实现双BIOS设计的方式,通过使用两颗flash存放两份固件,一颗无法启机时,通过硬件切换的方式切换到另一颗flash启动,可以通过控制片选信号CS或者通过控制所有的硬件信号通路的方式,比如3384就可以实现一颗隔离芯片控制两颗flash硬件信号的通断(当然,3384能支持的信号频率只能到50MHz左右)(隔离芯片3384(SN74CB3Q3384A)-优快云博客)。当然,这也需要借助于CPLD等控制芯片来实现控制逻辑。另外,为保证可靠性,需要关注flash芯片的电源和控制信号的控制方式,在芯片没有电的时候对信号做切换是比较合适的(带电状态切换信号,有可能踩到flash信号有跳变的时候,会导致异常情况发生)。

对于intel的X86平台,intel会提供非常完整的数据手册,非常丰富的资源,有些人看起来觉得非常多,非常复杂。其实观察下来可以发现,vol 1通常是这个系列芯片的整体介绍,强大的功能以及牛逼之处;vol 2 通常是这个系列芯片的CPU部分的寄存器说明介绍,详细定义的相关寄存器以及对应的bit的定义;vol 3通常是电气参数的说明介绍,电源以及上下电控制需求经常会放这里,各个接口的电气要求和电气指标也会体现;vol 4通常是这个系列芯片的PCH部分的寄存器说明介绍,就是以前说的南桥的部分;vol 5通常是这个系列芯片集成网卡的相关介绍。比如intel的XEON -D的就是这么分布的。这些文档会分成五份文档,或者也可能汇集到一份文档里,当然不仅仅是这些,还有PDG,硬件设计指南,画原理图和PCB的时候很多需要参考PDG的文档,每颗芯片都会有对应的设计指南可以参考(所以很多时候老板总觉得你只是在抄板子而已),散热部分也有专门的thermal的文档可以供散热设计做参考,会有相关散热方案供参考,甚至散热片的厂家都给出来了;产线的可制造性也有对应的文档可以参考,对于生产线的管控还是有重要的作用的。

先到这,待后续。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值