ITE EC(IT81202)--- SMFI模块手册翻译
6.4 SMFI
Shared Memory Flash Interface Bridge
6.4.1概述
Bridge提供主机访问共享内存。它还提供映射到主机域地址空间的EC代码地址空间,以及用于读/写保护的锁定机制。
6.4.2 特征
1)充当LPC/FWH存储设备(HLPC)
2)支持主机域和EC域之间的内存映射
3)支持读/写(编程/擦除)Flash操作和保护机制
4)支持两个共享内存访问路径:主机和EC
5)支持256KB/512KB的e-flash
6.4.3 功能描述
6.4.3.1 支持的接口
SMFI可以在连接到主机南桥的LPC总线上充当LPC/FWH存储设备,该功能简称为HLPC。
6.4.3.2 支持的FLASH
256KB/512KB e-flash
6.4.3.3 HLPC:主机转换
SMFI在主机总线和M总线之间提供HLPC接口。Flash被映射到主机存储器地址空间用于主机访问。Flash还被映射到EC存储器地址空间用于EC访问。
M总线事务由主机总线转换生成,具有以下三种类型:
1) 8-bit LPC Memory Read/Write
2) 8-bit FWH Read/Write
3) 8-bit Host-Indirect(间接) Memory Read/Write
LPC地址转换完成后,如果主机内存事务正在访问未受保护的区域,则将其转发到M-BUS(Flash接口)。在固件将1写入HOSTWA位SMECCS寄存器之前,主机端无法发出写入事务。
6.4.3.4 EC-Indirect(间接)Memory Read/Write Transaction(事务)
芯片的CPU可以访问整个flash地址范围。
发出EC- Indirect(间接)内存周期的固件代码应在临时ROM内执行。
这种访问方式对于
1)读取EC BIOS的FlashID
2)自定义Flash编程界面。
3)将额外的BIOS数据放在EC 64K之外。
· EC- Indirect(间接)存储器地址寄存器(ECINDAR3-0)
表示Flash地址 [31:0]。
· EC- Indirect(间接)存储器数据寄存器(ECINDDR)
表示Flash数据 [7:0]。
· EC- Indirect(间接)Read Mode
当ECINDAR3为00h时,EC固件可以从ECINDDR读取位于ECINDAR2-0组合的Flash地址的Flash字节。
· EC- Indirect(间接)Follow Mode
对于串行Flash,通过EC-Indirect跟随模式执行另一种访问全Flash的模式。
将0Fh写入ECINDAR3寄存器后, EC-Indirect跟随模式使能。
将00h写入ECINDAR3寄存器后,EC-Indirect跟随模式被禁用。
在EC-Indirect跟随模式
1. 将00h写入EC间接存储器地址FFFF_FExxh会生成高电平的FSCE#。
2. 将数据写入EC间接存储器地址FFFF_FDxxh会产生低电平的FSCE#和写入数据的FMOSI。
3. 从EC间接存储器地址FFFF_FDxxh读取数据会生成低电平的FSCE#,并从FMISO读取数据。
4. 上述所有动作都由8个FSCK时钟节拍计时,在其他情况下停止FSCK。
6.4.3.5主机域和EC域之间共享Flash
硬件仲裁器处理主机和EC侧之间的Flash读/写转换。
·HLPC
IT81202桥接LPC总线上的内存周期,并将它们桥接到连接的SPI闪存。SMFI内部闪存控制器执行交错机制控制,让主机和EC端读取闪存
它可能会响应LPC总线上的长等待,或者由于交错机制而冻结CPU取码。没有内部硬连线机制来监控连接的SPI闪存是否处于由主机的WIP指令引起的WIP(忙)状态。
当主机想要通过跟随模式0擦除或编程闪存时,信号接口(信号量写入或KBC/PMC扩展命令,如62h/66h命令)通知固件将1写入SMECCS寄存器中的HOSTWA位。由于擦除/编程导致WIP(忙)状态,EC CPU将无法取码,因此必须应用临时ROM。一旦主机完成对闪存的访问,主机应向EC表明这一点,从而允许EC清除HOSTWA位并恢复正常操作。EC可以随时清除HOSTWA位,并防止主机发出任何擦除或编程操作。
当主机想要通过跟随模式1擦除或编程闪存时,如果EC代码未被修改,则固件没有必要将代码映射到SRAM,因为存在内部硬连线机制来监控闪存的WIP(忙)状态。有关说明和限制,请参阅第112页的6.4.3.10节HLPC:串行闪存编程。
6.4.3.6串行Flash性能注意事项
每个周期花费的Clock-tick数=8。
用于分支指令的Clock-tick数=M+(4+N)x 8
M = FSCE# Min High Width = 1 + SCEMINHW
(SCEMINHW field in FLHCTRL2R register)
N = 1 if “Fast Read” (SPIFR bit in FLHCTRL1R register)
这些寄存器的选择取决于闪存规格。
请注意,闪存时钟频率为FreqPLL。(570页的表10-2列出了FreqPLL)
如果设置了SMECCS寄存器中的HOSTWA位,则主机LPC在M总线上的读取性能非常差。
6.4.3.7 对禁止访问的响应
禁止的访问由受保护的转换后的主机地址生成。
HLPC: 对主机总线的响应取决于SMECCS寄存器中的此处字段。
6.4.3.8 临时数据存储SRAM的DMA
静态DMA编程流程:
1.通过程序寄存器STCDMACR bit4-bit1选择此静态DMA中使用的直接映射SRAM。
2.通过对寄存器SCAR0~12位19位0进行编程,设置eFlash中的逻辑存储器地址。由程序选择SCAR0~12中的哪个寄存器取决于寄存器STCDMACR位4-位1中设置的值,即如果STCDMACR[4:1]==10,则选择寄存器SCAR10[19:0]以设置eFlash中的逻辑存储器地址。
3.通过设置寄存器STCDMACR[0]=1来启动静态DMA。
4.根据STCDMACR[0]=0等待静态DMA完成。
5.通过对寄存器SCAR0~12 BIT20=0进行编程,验证直接映射SRAM功能。流程与步骤2相同,根据STCDMACR bit4-bit1中的寄存器值,选择SCAR0~12中的哪个寄存器进行设置,即如果STCDMACR[4:1]==10,则设置寄存器SCAR10[20]=0,以验证Direct-map SRAM功能。
6.调用已移至Direct-map SRAM的函数。
注意事项:
静态DMA程序流必须通过调用ROM API来执行。下面是如何使用ROMAPI的示例。
如果用户想要设置“STCDMACR[4:1]==10”和“SCAR10[19:0]=0x1000”,则调用ROM API的静态DMA程序流程如下:
eflash_to_direct_map(0x1000,10);
dm_set_segment_valid(10);
在调用这两个ROM API之后,完成了静态DMA程序流程,然后用户就可以调用要在Direct-map SRAM中运行的函数了。
6.4.3.9 HLPC: 通过带临时数据存储SRAM的主机LPC接口进行闪存编程
当通过HLPC跟随模式0对闪存进行编程时,闪存将处于忙碌状态,CPU从闪存提取代码将无效,并导致CPU无法执行指令。这意味着固件必须将必要的指令从代码空间复制到临时数据存储SRAM,启用将临时数据存储SRAM映射到临时数据存储ROM,并在对闪存进行编程之前跳转到临时数据存储ROM。
闪存编程步骤:
(A)主机侧通过KBC/PMC扩展寄存器或信号量寄存器与EC侧通信。
(B)EC端:将1写入SMECCS寄存器中的HOSTWA位。
(C)EC侧:将必要的代码复制到擦除RAM。
(D)EC侧:启用临时数据存储SRAM的代码空间映射。
(E)EC侧:必要时使主机处理器进入SMM模式。
(F)EC侧:跳转指令至擦除ROM。
(G)主机端:在南桥设置相关内存写寄存器。
(H)主机端:启动闪存编程。
(I)结束闪存编程并在必要时重置EC域。
注:在处理闪存编程流程时,不要让EC进入Doze/Deep Doze/Sleep模式。
6.4.3.10 HLPC : Serial Flash Programming
有专门用于通过主机LPC接口进行串行Flash编程的跟随模式。
跟随模式有模式0和1,不能同时启用。
在模式0中,没有内部hard-wired机制来监控Flash的WIP(忙)状态。
在模式1中,有一个内部hard-wired机制来监控Flash的WIP(忙)状态;但是,主机端的实用程序仍需要通过RDSR指令轮询Flash状态。
在模式0中,固件必须将代码映射到SRAM并停止所有Flash访问,以让HLPC占用Flash仲裁器。
在模式1中,固件没有必要将代码映射到SRAM,并且HLPC与固件发出的其他Flash访问进行交织。
在模式0下,如果硬件保护被禁用,则主机侧的程序可以构建任何SPI周期。
在模式0中,如果硬件保护被启用,则表6-25中列出的WIP指令由保护逻辑监控。
表6.25 HLPC监控的SPI指令表遵循模式0,保护已启用
在模式1中,仅支持某些指定的指令。
如果Flash的JEDEC ID的前两个字节是“BFH 25H”,则在桥接WIP指令之前将“50h 01h”发送到Flash。
6.26 HLPC遵循模式1支持的SPI指令表
Follow Mode 0 is enabled after (跟随模式0在以下情况下启用)
1. Writing 1 to HOSTWA bit in SMECCS register in the EC side.
2. Writing 00h to LPC/FWH Address FFFF_FExxh in the host side
Follow Mode 0 is disabled after
1. Writing 0 to HOSTWA bit in SMECCS register in the EC side.
Follow Mode 1 is enabled after
1. Writing 1 to HFW1EN bit in HCTRL2R register in the EC side.
2. Writing 00h to LPC/FWH Address FFFF_FExxh in the host side
3. Write 1 to ACP80 bit in SPCTRL1 register to enable LPC_IO-to-FSPI function.
Follow Mode 1 is disabled after
1. Writing 0 to HFW1EN bit in HCTRL2R register in the EC side.
In HLPC Follow Mode,
1. Writing 00h to LPC/FWH Memory Address FFFF_FExxh generates FSCE# with high level.
2. Writing data to LPC/FWH Memory Address FFFF_FDxxh generates FSCE# with low level and FMOSI with
written data.
3. Reading data from LPC/FWH Memory Address FFFF_FDxxh generates FSCE# with low level and read
data from FMISO.
4. All the above actions are clocked by 8 FSCK clock ticks and FSCK is stopped in other cases.
6.4.3.11 Host Side to EC Scratch RAM (H2RAM)
6.4.3.11主机端至EC临时数据存储RAM(H2RAM)
注:Scratch RAM 由 CPU 使用的用于临时数据存储的内存
6.4.3.11.1通过LPC内存/FWH周期将HLPC转换为EC临时数据存储RAM(H2RAM-HLPC)
·主机端软件可以使用H2RAM通过LPCMemory/FWH周期访问临时RAM。
·该功能还支持读/写保护机制。
·H2RAM不能通过主机间接内存路径使用。
Fig6.18 H2RAM-HLPC Mapping through LPC Memory/FWH Cycles HLPC to Scratch RAM
图6.18H2RAM- HLPC通过LPC存储器/FWH循环HLPC到临时RAM的映射
6.4.3.11.2通过LPC IO周期将HLPC转换为EC临时RAM(H2RAM-HLPC)
·H2RAM还可用于将某些地址从主机IO空间转换为临时RAM空间。
·该功能还支持读/写保护机制。
Figure 6-19. H2RAM-HLPC Mapping through LPC IO Cycles
图6.19 通过LPC IO周期实现H2RAM-HLPC映射
6.4.3.11.3 H2RAM EC/主机信号量
以H2RAM主机信号量为目标的LPC存储器/FWH/IO写入周期将产生一个中断(INT83)来通知EC,在H2RAM EC信号量上执行的数据写入指令也会向主机生成IRQ。通过这些信号量,主机和EC可以在H2RAM数据传输期间相互通信。
Figure 6-20. H2RAM EC/Host Semaphore Interrupt through LPC Memory/FWH Cycles
图6-20。H2RAM EC/主机信号量中断通过LPC内存/FWH周期
Figure 6-21. H2RAM EC/Host Semaphore Interrupt through LPC IO Cycles
图6-21。H2RAM EC/主机信号量通过LPC IO周期中断
6.4.3.12 e-FLASH通电检测
6.4.3.12.1 16B-签名和隐式/显式EC码基地址
使用特定的16B签名来定位EC码基地址。
这16个字节的所有内容必须与表中的内容匹配。
注:在F/W中添加16字节签名(强烈推荐)
第8字节的位7:必须是1b。
第8字节的位6: 0b:禁用
1b:暂停内部到外部时钟切换请求。
此位设置时,内部时钟将充当临时时钟,使EC能够在外部晶体准备好工作之前配置一些GPIO设置。该位仅在第8字节的位4为0时可用。请参阅第264页的第7.7.3.6节。
第8字节的第5位:必须是1b。
第8字节的第4位:必须是1b。
第8字节的位3:必须为0b。
第8字节的位2:必须是1b。
第8字节的位1:必须为0b。
第8字节的位0:必须为0b。
第一个字节必须位于16字节边界。
例如,假设第一个字节的地址为ADDR1[23:0],则ADDR1[3:0]必须为0000b。
第一个字节必须位于地址40H、50H、60H、…。到EC代码库的F0h偏移量。例如,假设第一个字节的地址为addr1[23:0],则addr1[7:0]必须为40h、50h、60h…。F0h(间隔10h),EC码基位于(ADDR1[23:12]*2^12)。
6.4.3.12.2检测顺序
表6.27 SPI闪存上电检测对应表
ITE EC(IT81202)--- SMFI模块手册翻译相关推荐
- ITE EC(IT81202)--- PMC模块手册翻译
PMC Power Management Channel 6.7.1概述 电源管理通道在ACPI规范中定义,用作主机处理器和嵌入式控制器之间的通信通道. 6.7.2功能 支持五个PM通道 支持通道1的 ...
- TypeScript手册翻译系列4-模块
为什么80%的码农都做不了架构师?>>> 模块 在TypeScript中利用模块(module)来组织代码.这里将讨论内部和外部模块,以及在何时使用哪种方式更合适,以及怎么使用 ...
- netopeer-manager手册翻译
netopeer-manager(1)手册翻译 名字 netopeer-manager 对netopeer-server的模块管理 概述 netopeer-manager [–help] [ ] 描述 ...
- 20050620 GNU Bison 中文手册翻译完成
20050620 GNU Bison 中文手册翻译完成 GNU Bison实际上是使用最广泛的Yacc-like分析器生成器,使用它可以生成解释器,编译器,协议实现等多种程序. 它不但与Yacc兼容还 ...
- awk 4.0+ man手册翻译第一版本
CentOS 7 上awk 4.0以上版本的man手册翻译第一版: 参考地址:http://www.cnblogs.com/wutao666/p/9732976.html 参考地址:https://w ...
- tcpprep man 手册翻译
TCPPREP(1) Programmer's Manual ...
- HCPL3120手册翻译
HCPL3120手册翻译 首先HCPL3120是一个2.5A电流输出的IGBT门极驱动光电耦合器. Description: HCPL3120包含一个磷砷化镓的发光LED,该LED被光电耦合于一个带有 ...
- PhysX官方手册翻译
PhysX官方手册翻译 本人水平有限,翻译中如果出现比较恶的句子...大家一定要查阅原文. 更新:2008-7-1 22:22 Raycasting(射线查询) 更新:2008-6-26 23: ...
- rsyncd.conf 文件man手册翻译
rsyncd.conf(5)rsyncd.conf(5) 姓名 rsyncd.conf-后台程序模式下rsync的配置文件 简介 rsyncd.conf文件 说明 rsyncd.conf文件是rsyn ...
最新文章
- Android中ExpandableListView的使用
- 最优布线问题(普里姆算法)
- 服务器iis7.5 配置文件,使用注册表项 - Internet Information Services | Microsoft Docs
- 使用MyBatis集成阿里巴巴druid连接池(不使用spring)
- Win32ASM学习[9]: 标志寄存器
- 微信内测“群直播”;小米发布第三代屏下相机技术;马斯克宣布脑机接口重大突破 | 极客头条...
- 跨界 +赋能——互联网的下一个关键词
- 激光雷达系统原理及相关介绍
- Cadence学习之路:什么是PCB工艺的正片与负片
- LT2611UXC-LVDS转HDMI2.0转换芯片
- 8个电脑小技巧让你在朋友圈秒杀众人!
- ArrayList集合类实现的RandomAccess空接口有何用?
- 300iq Contest 1
- vba中定时器的用法
- CSS3选择器、边框、背景、按钮
- Docker 命令操作
- jsp页面适应手机屏幕_JavaScript实现移动端页面按手机屏幕分辨率自动缩放的最强代码...
- Revit插件推荐[二]
- 《地理信息系统导论》 坐标系统 复习题
- 拼音爱好者的好消息:紫光V6发版