1.PCI 配置空间的访问?

PCIe的配置空间访问怎么访问呢?1.当然是0XCF8/0XCFC了,但是其只能访问配置空间的256byte,所以在pci express下还有memory-map方式访问。

-CF8/CFC:

mov dx,0CF8                   ;set dx = config address port address

mov eax,80040000         ;enable=1, bus 4, dev 0, Func 0, DW 0

out dx,eax                       ;set up address port

mov dx,0CFC                   ; set dx = config data port address

in ax,dx                          ;2 byte read from config data port

-memory-map

mov ax,[50400000]           ;memory-mapped IO read

//这个地址算法:

PCI Express* Config space base address+Bus Number*100000h+Device Number*8000h+Function Number*1000h+Register offset.

*一个pci express的配置空间有FFFH=4Kbyte,所以 memory-mapped IO range需要256*32*8*4=256M大小的空间。

*PCI Express* Config space base address在哪里?HECBASE有定义它的值。这个register怎么去找?看MCH吧,它一样有两种方式去找的。

2..How to access memory SPD by Smbus?

SPD的信息很多很有用的,Smbus上挂的东西还挺多的:Smart battery、thermal senser等

首先得找到Smubus的controller,这就要知道这个controller也是个pci device,计算机架构都从PCI开始延伸展开的,以前是CPU为中心,现在呢?呵呵

1.当PCI scan的时候,怎么去知道这是一个什么device呢?呼呼,看看pci配置空间就知道有个class code的三bytes一项了,就是通过它去判断了: base Class 、sub-class、Programming Interface。每个byte值的具体含义这个你就要查了(http://www.pcidatabase.com/)。

2.看看Offset 20 - 23h它就是SMBUS Base Address Register,(有很多registers 256bytes根本放不了),找到它然后就是大家熟悉的什么base address+offset访问我们需要的东西了。

3.确保SMBus Host Enable bit是打开的,这个bit在Host Configuration Register里,大多数它是在offset 40H。

4.现在我开始关系SMBUS I/O Registers了:Status register、Control register、Command(index) register、Slaver address register、Data register。这些register干嘛的啊,具体看datasheet吧。

5.真多,以前没发现整理资料挺麻烦:

--1.因为SMbus上还有其他Device,所以先要选择对哪一个Device操作(把slave address->Transmit Slave Address寄存器中);SPD的slave address的高4位是固定的,是1010b,跟着的低3位由RAM所在Address决定,最低位用来决定读写,1为读,0为写。

--2.SPD中有256Byte的数据,需要读哪一个的值,就将这个值的offset送到command(index)register中。

--3.对control register下start动作,同时也决定以byte读还是以word读。这一动作执行之后,SMBus会将指定的SPD中的值读到Data register中。

--4.根据status register中的值,判断上一步执行是否成功。

--5.从Data register中读值

3.SMBIOS的理解?

我觉得就是收集系统的各个方面的信息方便其他人获取。。。。。。

转载于:https://www.cnblogs.com/kuwoyidai/archive/2011/07/21/2113189.html

BIOS interviews相关推荐

  1. 服务器BMC、BIOS、IPMI、UEFI技术解析

    服务器BMC.BIOS.IPMI.UEFI技术解析 以BIOS为核心的固件产业,是信创产业链的重要组成部分,可被誉为信创产业的"山海关".在计算机体系中,BIOS 有着比操作系统更 ...

  2. Intel HAXM is required to run this AVD VT-x is disabled in BIOS的处理方法

    当遇到Intel HAXM is required to run this AVD VT-x is disabled in BIOS 的问题时候 这个就是说你的模拟器出现问题了 这个问题处理方法大致分 ...

  3. 让Windows7运行速度更快的BIOS优化设置教程

    和以前使用WindowsXP一样,很多用户都在设法提高windows7的系统运行速速,比较常见的方法大多是对系统服务进行优化,去掉一些可有可无的系统服务,还有就是优化资源管理器菜单等.除此之外,还有一 ...

  4. 曙光服务器bios设置_浪潮服务器PM8060阵列卡,如何做热备盘?操作相对有点复杂...

    春节前安装调试了一台浪潮服务器,型号:5270M5,配置:2颗银牌4210 / 64G 内存 / 服务器固态硬盘:480G / 机械硬盘:8块600G SAS 3.5寸 15000转硬盘 / 1+1冗 ...

  5. 技嘉主板bios设置键盘不能用_BIOS不再硬梆梆、全新技嘉主板BIOS设置就算不是玩家也能轻松搞定...

    最近因应AMD推出全新的X570系列主板,小杨也测试了多款各家的主板,可说是把大家都搞得手忙脚乱啊!由于每家厂商的主板都各有特色,为了让玩家们能够了解每款主板的特色和其性能表现,无不卯足全力拼文!不过 ...

  6. 计算机的参数配置选项在哪,教你电脑win7如何进去bios设置相关参数

    电脑bios是电脑的基本输入输出系统,有很多设置需要在电脑bios内进行设置完成,比如说设置电脑启动项,修改bios密码,超频等等.有网友想了解win7如何进去bios设置?下面小编就教下大家win7 ...

  7. 开机BIOS语言(转载)

    开机自检时出现问题后会出现各种各样的英文短句,短句中包含了非常重要的信息,读懂这些信息可以自己解决一些小问题,可是这些英文难倒了一部分朋友,下面是一些常见的BIOS短句的解释,大家可以参考一下. 1. ...

  8. 【经验】Lenovo/ThinkPad 进入BIOS的方法汇总

    1.快捷汇总 联想电脑进入BIOS的快捷键有"F2.F1.Del/Delete.NOVO开机",部分机型按F2.F1时需要FN键配合 2.常用键 Lenovo笔记本:F2 + Fn ...

  9. BIOS, UEFI, MBR, GPT, GRUB介绍

    1. 前言 在学习 Linux 系统启动原理之前,我们先了解下与操作系统启动相关的几个概念. 2. 与操作系统启动相关的几个概念 不管是 Windows 还是 Linux 操作系统,底层设备一般均为物 ...

最新文章

  1. jQuery EasyUI 表单插件 - Datebox 日期框
  2. boost::tti模块测试函数模板
  3. 温度 数值模拟 matlab,西安交通大学——温度场数值模拟(matlab)
  4. 简单十步让你全面理解SQL
  5. 携程的 Dubbo 之路
  6. USB转TTL、USB转串口、USB转RS232的区别
  7. linux ps 程序包,linux ps 详解
  8. 用java怎么做中国象棋的小游戏_java开发中国象棋小游戏
  9. 《研究生科研能力训练与培养》
  10. TCC(TinyC)编译器汉化(中文编译器、汉语编程)之五:语法分析下
  11. 深入理解计算机系统----第四章处理器体系结构
  12. 手机RAM、ROM和储存卡的那些事
  13. 测试分享之抽奖【二】
  14. [每日电路图] 5、心率检测电路设计详解——送给想了解心率计的小白(博主推荐)...
  15. 曲面着色器初试--地面轨迹模拟(部分细节不完善)
  16. 虚拟机权限不足,无法访问文件
  17. vscode php 无法跳转到定义
  18. 明日召开 | Pulsar Summit Asia 2021 本周末线上精彩呈现
  19. 英语励志寓言:The Hare And The tortoise
  20. hive中如何计算字符串中表达式

热门文章

  1. HTML5 Maker – 在线轻松制作 HTML5 动画效果
  2. [开源]KJFramework.Message 智能二进制消息框架 -- 性能提升
  3. 配置 Spring.NET
  4. Android Stdio报错Caused by: org.gradle.api.internal.plugins.PluginApplicationException: Failed
  5. oracle datafile损坏,史上最全Oracle文件损坏处理办法(附实验步骤)
  6. Dapper的基本使用 [转]
  7. 手把手带你入门 Spring Security!
  8. 笔记“SQL与Access”
  9. activeMQ安装9(window下)
  10. 欧几里德算法(自写理解)