TPM芯片SSX35的BIOS模块化开发(3)

来源:网络(转载) 作者:林聪发 发表于:2011-08-17 14:31  点击:
【关健词】TPM; SSX35;模块化
3.5 检查SSX35状态是否正确 为保证SSX35的状态和设置一致,需要加入一个双重检测的步骤,这个步骤的BIOS节点安排,必须放在尽量靠近BIOS Setup结束之后的BIOS自检过程中。 该步骤主要对TPM使能和TPM当前所有者状态

  3.5 检查SSX35状态是否正确
  为保证SSX35的状态和设置一致,需要加入一个双重检测的步骤,这个步骤的BIOS节点安排,必须放在尽量靠近BIOS Setup结束之后的BIOS自检过程中。
  该步骤主要对TPM使能和TPM当前所有者状态(对应的序号3和序号6)这两个状态进行硬件和BIOS Setup显示状态的对比,如果发现硬件状态和BIOS Setup的显示状态不一致,则系统需要进行重启,以保证硬件和客户设置一致。
  3.6 锁定SSX35
  在进入操作系统之前,为防止其他非法的SSX35访问、调用硬件,甚至篡改SSX35的设置,需要进行一个锁定动作。SSX35的锁定动作,一般放在BIOS将控制权转交给操作系统之前的BIOS节点,一般是TP_INT19,代码如下:
  ;;;TPM MP driver fun4 commands completed, lock it
  ;1, TPM_PhyPre_NotPre
  mov eax, 0c04h
  mov word ptr cs:[Transmit_TO_32bitCall], ax
  call TPM_PM32_Handler
  mov al, byte ptr cs:[TPMMP_Call_Return]
  cmp al, 0
  mov ax, 0A4h
  jne Sinosun_TPM_MP_Fail
  out 0ebh,al
  mov edx,TPM_ORD_Startup.pbOutBuf
  add edx,6
  mov eax,ds:[edx]
  cmp eax,00000000h
  mov ax, 0A4h
  jne Sinosun_TPM_MP_Fail
  ;2, TPM_PhyPre_Lock
  mov eax, 0d04h
  mov word ptr cs:[Transmit_TO_32bitCall], ax
  call TPM_PM32_Handler
  mov al, byte ptr cs:[TPMMP_Call_Return]
  cmp al, 0
  mov ax, 0A4h
  jne Sinosun_TPM_MP_Fail
  out 0ebh,al
  mov edx,TPM_ORD_Startup.pbOutBuf
  add edx,6
  mov eax,ds:[edx]
  cmp eax,00000000h
  mov ax, 0A4h
  jne Sinosun_TPM_MP_Fail
  ;3, TPM_PhyPre_CmdDisable
  mov eax, 0e04h
  mov word ptr cs:[Transmit_TO_32bitCall], ax
  call TPM_PM32_Handler
mov al, byte ptr cs:[TPMMP_Call_Return]
  cmp al, 0
  mov ax, 0A4h
  jne Sinosun_TPM_MP_Fail
  out 0ebh,al
  mov edx,TPM_ORD_Startup.pbOutBuf
  add edx,6
  mov eax,ds:[edx]
  cmp eax,00000000h
  mov ax, 0A4h
  jne Sinosun_TPM_MP_Fail
  3.7 两种需要系统重启的情况
  因SSX35相关的需要强制系统重新启动的情况有以下两种:
  1) 用户在BIOS Setup中设置或者更改了SSX35,在BIOS对SSX35硬件做了相应动作之后,需要重新启动后才能生效;
  2) 在BIOS检测到SSX35硬件状态和CMOS的状态不一致时,表示BIOS对SSX35的初始化动作有问题,需要重新启动系统。
  4 SSX35 BIOS测试向导
  当系统BIOS更新为支持SSX35的BIOS之后,我们可以看到在BIOS Setup菜单的Security中多了几个关于SSX35的选项。如图3所示,下面我们就对这几个选项作一下说明。
  4.1 SSX35状态项
  4.1.1 TPM H/W Status
  显示TPM芯片是否存在的信息。当笔记本电脑中安装有TPM的芯片时,这一项显示信息为Exist。当笔记本电脑中没有安装TPM的芯片时,这一项显示信息为No Exist,而且其他关于TPM的五个选项将被隐藏,不显示。
  4.1.2 TPM Current Status
  显示TPM当前的状态是Enable或者Disable.
  4.1.3 TPM Activation Status
  显示TPM Active的状态是Active或者Deactive。
  4.1.4 TPM Owner Current Status
  显示TPM Owner当前是否存在的状态,Owner或者NOT Owner.
  4.2 SSX35控制项
  4.2.1 TPM En/Disable: [Enable/Disable]
  这是供用户对TPM功能进行启用或禁用的选项。
  当选择Enable保存退出后,用户可以在操作系统中对TPM功能进行相关操作。重新进入SETUP后,TPM Current Status为Enable,TPM Activation Status为Active。
  当选择Disable保存退出后, 用户无法在操作系统中对TPM进行任何操作。重新进入SETUP后,TPM Current Status为Disable,TPM Activation Status为Deactive。
  当用户load setup default value时,这一项的值不会被改变,保持用户上一次的选择。
  当cmos 放电后,这个选项会恢复成disable。
  4.2.2 TPM Clear Owner: [No Change/Clear]
  当TPM Current Status为Disable、没有设置supervisor password或者TPM Owner Current Status 为 NOT Owned时,这一项不可选。
  选择No Change即对TPM Owner不进行任何操作。
  选择Clear后保存退出重新进入SETUP菜单后,TPM Current Status为Disable, TPM Activation Status为Deactive, TPM Owner Current Status 为 NOT Owned.
  5 总结
  关于SSX35的BIOS移植过程中,最关键的几个技术点如以下所示:
  1) SSX35初始化过程各段代码需要保证置于合适、正确的位置,主要的部分是:硬件初始化需要在内存和LCP总线初始化结束之后;需要在BIOS Setup退出之前进行SSX35设置侦测,如果用户改动,需要进行相应动作并重新启动;在自检点超过用户进入BIOS Setup的地方,需要进行SSX35硬件和CMOS状态的检验,如果不匹配则需要重新启动;BIOS转交控制权给操作系统之前,需要进行SSX35的锁定动作。
  2) SSX35的MP Driver要求在保护模式下进行,因此调用之前必须要保证保护模式和实模式的正常切换。
  3) 需要向用户提供完整的系统信息,提供合理的用户交互界面。
  4) 需要保护SSX35的设置不受非法用户改动。
  5) 需要出错时的处理及通过完成测试。
  尽管关于TPM芯片的支持需要遵循TPM标准的约束,但是由于各个TPM芯片厂家的做法不同,并且TPM也是一种新兴技术,因此没有可以借鉴的先有案例,本次通过与原厂的共同协作,在Phoenix BIOS(TrustedCode)中实现对SSX35的支持,并且将之模块化,使得夏新不仅在LODM(Local ODM)中率先掌握了该项技术,还使得该项技术可以快速应用于任何一款新型的笔记本电脑产品中去,具有技术前沿的科研型并带来了实际的经济效益。 (责任编辑:南粤论文中心)转贴于南粤论文中心: http://www.nylw.net(南粤论文中心__代写代发论文_毕业论文带写_广州职称论文代发_广州论文网)
顶一下
(0)
0%
踩一下
(0)
0%


版权声明:因本文均来自于网络,如果有版权方面侵犯,请及时联系本站删除.