BIOS备忘录之SPI(fingerprint)设备】的更多相关文章

Reset和INT信号使用的是GPIO功能,需要显式的使用(INT信号使用了GPIO的int number,RST信号使用了GPIO的absolute number): 问题举例 漏电导致功能异常:在sleep mode下拉低RST#和CS#,需要注意两点: 1. C code和ASL code里面都要实现: 2. RST#是使用的GPIO功能,所以直接调用API来拉低就行了,CS#是native功能,需要首先配置为GPIO mode,然后拉低(针对GPIO的一系列操作,IHV的RC code里…
简述BIOS中对IIC device的支持,以touchpad为例. 信息收集 收集平台的硬件信息: 1. IIC controller number(PCH一般包含多个controller,我们使用的是哪一个): 2. INT / Reset信号用的是哪个GPIO: 3. Enable信号用的是哪个GPIO(Enable信号一般由EC控制,这样可以通过Hotkey来Enable/Disable) 收集device的信息: 1. slave address; 2. hid descriptor…
BIOS工程师眼中常用的EC知识点汇总: EC的硬件架构 EC硬件结构上主要分为两部分:Host Domain和EC Domain Host Domain就是通过LPC与CPU通信的部分(LPC部分需要先执行相关的初始化:比如decode 62/66  68/6c,设置LPC Serial IRQ mode to continus mode等,这样EC才能通过IO与PCH通信),可以看成ISA的设备卡: EC Domain可以看成一个51的单片机. BADRSEL寄存器是在EC初始化的时候设置的…
Floppy 软式磁盘驱动器,简称FDD,也就是我们平时所说的软驱. CD-ROM 不用多说了,大家都知道,这是光盘驱动器,也就是我们平时说得光驱. SCSI SCSI的全名是:Small Computer System Interface,直译是“小型计算机系统专用接口”:顾名思义,这是为了小型计算机设计的扩充接口,它可以让计算机加装其他外设设备以提高系统性能或增加新的功能,这里一般指SCSI的硬盘或光驱. ZIP与LS120 ZIP和LS120是一种大容量磁盘,是在原1.44MB磁盘的基础上…
SOC固件(BIOS)开发: 1.熟悉硬件原理图:要弄清楚pin脚的功能: 2.配置GPIO引脚,配置成Native功能还是GPIO功能(如果是配置成GPIO,需要在code里面显式的使用): 3.硬件驱动是通过controller的寄存器来访问device的:以IIC为例,如果SOC有IIC的controller,固件程序只需要配置IIC的GPIO为native功能,然后code里面通过读写IIC controller的寄存器就可以完成对IIC device的访问(IIC的硬件时序由硬件con…
_HID:device唯一 _STA:决定device在不在(在DM下面能不能看到) _CRS:描述分配给device的资源 _INI:在OSPM加载描述表的时候运行一次(比如,如果要根据不同情况给device赋值不同的_HID,可以把代码加在这里) BIOS code与ASL code之间传递数据 通过ASL code定义的OperationRegion,OperationRegion实例: 1. BIOS code里面定义了一个结构体,ASL code里面定义了一个OperationRegi…
通过Windbg来追踪ASL code的运行: 目标机的配置: 第一步: 在BIOS Setup下面 disable secure boot(不然下面debug on 命令会失败):关闭防火墙. 第二步:替换acpi.sys1. 获取与目标机OS 同版本的check build ACPI.sys文件,替换系统中的C:\Windows\System32\drivers\acpi.sys 2.acpi.sys属于系统文件,直接替换会出错,可以把下面的内容保存为:TrustedIntsaller.re…
本文记录spi设备节点的操作方法. SPI总线设备文件名通常为/dev/spidevN.P(N=0.1.2--,P=0.1.2--), 其中N表示第几路SPI总线,而P表示在该路SPI总线中使用哪个CS信号线. 参考链接: http://www.wzaobao.com/p/l5079K.html http://www.emcraft.com/stm32f429discovery/accessing-spi-devices-in-linux http://blog.csdn.net/yuanlul…
通过第一篇文章,我们已经知道,整个SPI驱动架构可以分为协议驱动.通用接口层和控制器驱动三大部分.其中,控制器驱动负责最底层的数据收发工作,为了完成数据的收发工作,控制器驱动需要完成以下这些功能:1.    申请必要的硬件资源,例如中断,DMA通道,DMA内存缓冲区等等:2.    配置SPI控制器的工作模式和参数,使之可以和相应的设备进行正确的数据交换工作: 3.    向通用接口层提供接口,使得上层的协议驱动可以通过通用接口层访问控制器驱动: 4.    配合通用接口层,完成数据消息队列的排…
SPI是"Serial Peripheral Interface" 的缩写,是一种四线制的同步串行通信接口,用来连接微控制器.传感器.存储设备,SPI设备分为主设备和从设备两种,用于通信和控制的四根线分别是: CS    片选信号 SCK  时钟信号 MISO  主设备的数据输入.从设备的数据输出脚 MOSI  主设备的数据输出.从设备的数据输入脚 因为在大多数情况下,CPU或SOC一侧通常都是工作在主设备模式,所以,目前的Linux内核版本中,只实现了主模式的驱动框架. /*****…