摘要: 上一篇讲到最后一号SMI的流程,callback函数最后会把SCI enable起来。但是,这样还不能够发SCI,代码里面不仅仅要做这些。经过老大的讲解,再去查看AMD的FCH规范,发现还需要去把GPIO99,即GEVENT3那根pin,设置成EC_SCI的功能。这里要做如下三件事:1. SMI_Reg:A0h [7:6], SmiControl_3(control for GEVENT3) set to 00. 00: disable. 01: SMI. 10: NMI. 11: IRQ13.2. SMI_Reg:40h [28:24], SciMap_3, Mapping of GEVEN 阅读全文
posted @ 2011-08-11 16:55 晨風拂雪 阅读(616) 评论(0) 推荐(0) 编辑
摘要: 接着上一篇的笔记。以下是简易流程,还有一些不明白的问题。#define ACPI_ENABLE SBOEM_ENABLE_ACPI_SWSMI#define SBOEM_ENABLE_ACPI_SWSMI 0xA0AmdSbSmmEntryPoint() //Driver EntryPoint-->SbSmmRegistrationCenter() //AmdSbSmm.c 这个函数很重要。汇集了所有sb有关SMI?这个有待考证。-->SbSmmRegisterSwSmi() //SwSmi.c 其中,把A0的值赋给SwRegisterContex.AmdSwValue,呼叫这一号 阅读全文
posted @ 2011-08-10 17:02 晨風拂雪 阅读(1383) 评论(0) 推荐(0) 编辑
摘要: ACPI table之FACP(Fixed ACPI Description Table).在代码里面:Resources\AcpiTables\Fadt\Fadt3.0.act 定义了EFI_ACPI_3_0_FIXED_ACPI_DESCRIPTION_TABLE Fadt.列举出比较重要且常用的几项:INT_MODEL, //System Interrupt ModelSCI_INT_VECTOR, //System Vector of SCI interruptSMI_CMD_IO_PORT, //Port Address of SMI command portACPI_ENABLE, 阅读全文
posted @ 2011-08-09 12:59 晨風拂雪 阅读(3325) 评论(0) 推荐(1) 编辑
摘要: INT 21是计算机中断的一种,不同的AH值表示不同的中断功能。举个例子,如果在DOS下面,键入两行代码:MOV AH, 02HINT 21H它代表的意思是在屏幕上显示输出。这里有一份table,收纳了全部的INT 21中断类型。表:DOS系统功能调INT 21HAH功能调用参数返回参数00程序终止(同INT 20H)CS=程序段前缀 01键盘输入并回显 AL=输入字符02显示输出DL=输出字符 03异步通迅输入 AL=输入数据04异步通迅输出DL=输出数据 05打印机输出DL=输出字符 06直接控制台I/ODL=FF(输入)DL=字符(输出)AL=输入字符07键盘输入(无回显) AL=输入字 阅读全文
posted @ 2011-08-08 15:37 晨風拂雪 阅读(3826) 评论(1) 推荐(1) 编辑
摘要: INT 09: 这种中断,是由于keyboard上面的普通键被按而产生的。普通键被按后,kbc会侦测到,发出int 09中断。CPU会去执行09号中断对应的程序。这个程序包括:(通过60port)读取操作键的scancode(扫描码)->转换成ASCII码->将扫描码、字符码存放在一个buffer(缓冲区,在内存)中。 INT 16: 这种中断,是在应用程序去调用它的时候产生的。它有个重要的功能是,当AH = 0时,会去buffer里面读取一个键盘的输入。这个中断的程序包括:循环检测buffer中是否有数据->若有,读取数据->将scancode送入ah,将ASCII码 阅读全文
posted @ 2011-08-05 11:04 晨風拂雪 阅读(1066) 评论(2) 推荐(1) 编辑