找回密码
 加入计匠网
搜索
热搜: BIOS ACPI CPU Windows
查看: 19840|回复: 19

救命:1M与2M Flash Part问题

[复制链接]
发表于 2009-8-18 22:40:29 | 显示全部楼层 |阅读模式
请求各位BIOS或EC高手帮忙,不知道有谁遇到类似问题.
7 j; k. s/ n$ k; S2 r9 f: t0 A
: a  h0 p" f- E  n' A, BPeter , Bini有何高见?8 t3 h0 M/ [2 z1 M: D. ]
" k6 O) S1 L  G) k+ N4 O+ ?, Z+ O+ i
注:我是UEFI BIOS Engineer2 S2 N/ J! C  `: V

' M2 \1 p$ L# ^" c9 N4 l) N  ~- QComputer: Notebook
# n1 G! C* k2 P& j5 O0 A  vPlatform: PineTrail-M  --> CPU and NBineview     PCH: TigerPoint2 w8 I. e+ Z) z* X! l3 d
EC:ITE85028 }5 R* ]. G2 v4 @1 \# n9 W
EC Source code: AMI C code
6 D7 i5 ~& J; V: X3 m8 N2 x3 `8 oBIOS EC Share ROM: Yes/ i1 X( i& A: h) Q& i0 u4 A
Legacy Code: AMI CORE 8
& q. @2 t: G4 h7 T2 NUEFI Code:AMI Aptio) _0 q! H" q; B- m7 N- g& O

0 u6 \- }0 O) i$ w: C, |% m5 }* jIssue description:
# V: ~/ r' s: {1.Build BIOS Use 2M flash part,Legacy code halt in StartRecovery_FAR,checkpoint is E9h.4 _' e3 j* b. j$ b4 [
2.Build BIOS Use 1M flash part,Legacy code post OK.
/ Y0 J: W3 T: c  t2 Y! _$ T. z& t! |! D. H* P" K
1.Build BIOS Use 2M flash part,UEFI code always restart when code run to 4Fh ) P: j+ q+ l) j; R) b/ H) C8 ~
2.Build BIOS Use 1M flash part,UEFI code post OK.
& H* k) T! X, {0 {" Q. I) V+ H7 H4 U. g5 |/ k; m: U& h6 T
经过分析,Legacy code 2M 出问题可能是因为post的code损坏或者是checksum error,又或者是这段code不在原定的位置,导致CPU找不到post code entry。
& h% e6 V( W$ T9 f0 b4 z       EFI Code 2M 出问题是因为BIOS 找到 next FV FV_Main时,再在DXE_CORE.FFS中以类型为EFI_FILE_DXE_CORE找DXE CORE的入口时找不到该入口,故返回导致重启.
+ K" V6 }6 `! K# y! z' _3 f! F* ?7 L/ G9 a) c! R( e5 ~
以上分析中,Legacy部分只是我的猜测,EFI部分是我经过DEBUG发现的。
& f9 J$ u1 t1 Q- \$ l6 Z' j4 `看来不管哪种CODE,2M的都有问题,为什么呢?是不是EC部分有些东西没设置好或者BIOS部分也要做一些关于Flash part方面的porting呢????
- q4 H* E! H4 O2 ]# j, }! x3 v2 r, k! G' T3 w2 h; ~" O3 c
请各位高手救命啊,不胜感激!!!!
 楼主| 发表于 2009-8-18 22:48:17 | 显示全部楼层
急救啊,帮帮忙
回复

使用道具 举报

发表于 2009-8-18 23:18:02 | 显示全部楼层
向AMI问一下便知 Porting code的时候,他们应该碰到过这个问题.
回复

使用道具 举报

 楼主| 发表于 2009-8-18 23:45:24 | 显示全部楼层
谢谢你的回答,我已经问过AMI的EFI工程师,他们没有遇到过类似问题,但他叫我检查build出来的DXE_CORE.ffs的头结构,我检查时与1M build出来的没有差别,所以我还是怀疑是否与flash part方面的定义有关
回复

使用道具 举报

发表于 2009-8-18 23:47:43 | 显示全部楼层
你要是用Insyde code,我帮你解掉它,哈哈
回复

使用道具 举报

 楼主| 发表于 2009-8-19 08:49:29 | 显示全部楼层
公司决定用AMI的,我拿不了主意,呵呵8 {1 G( M9 `  h& E* z  n
希望以后有机会用Insyde的6 v, Y3 n+ K$ `4 p/ ^

8 R* H! \2 ^, g" t" a还有哪位高手有什么高见没有?
回复

使用道具 举报

发表于 2009-8-19 09:00:49 | 显示全部楼层
没做过ITE的ec,像ene 里有bit控制 LPC decoding memory,可能是你ite的
7 T( }8 u. d# @- j8 x# CDecoded BIOS Address 目前设置的是1M,改成2M decode看看
回复

使用道具 举报

 楼主| 发表于 2009-8-19 13:49:57 | 显示全部楼层
我们的EC工程师说没有找到关于Decoded BIOS Address的设置,你能具体说明一下吗?谢谢
回复

使用道具 举报

 楼主| 发表于 2009-8-19 17:11:24 | 显示全部楼层
最新update:/ [3 E9 v- G$ A" N, ~
Non-share BIOS.EC模式,即BIOS,EC分开存放在不同的ROM是没有问题的,但为什么呢?各位高手帮忙想想
回复

使用道具 举报

发表于 2009-8-19 20:25:41 | 显示全部楼层
应该是解析flash的地址范围不对,你现在设的是0xFFF0 0000 ~ 0xFFFF FFFF,看看SB的data sheet,把它改为0xFFE00000 ~ 0xFFFF FFFF就行
回复

使用道具 举报

发表于 2009-8-19 21:52:07 | 显示全部楼层

看下FMSSR(0x1007)是不是设为0x1F

ITE8502中有一个寄存器是控制FLASH的大小的:Flash Memory Size Select Register(FMSSR),这个寄存器的地址在0x1007,2M的FLASH,你就将这个寄存器设为0x1F
  \$ }5 p1 L5 L" c5 z( ^$ }- {同样的EC和BIOS文件,放在1M的flash中可以,而放在2M中却不可以,原因可能是这样的:ITE是BIOS代码从FLASH的最高地址开始存放,而EC代码是从FLASH的最低位置开始存放,然后将BIOS映射到从0XFFFF_FFFF开始的地方(具体请参考IT8502规格书中3.2 HOST/EC Mapped Memory Space中的那张示意图),而EC从FLASH的最低地址开始取代码执行。因为EC代码中还是认为BIOS是1M的,当用到2M的FLASH时,BIOS部分的地址映射就会错乱,而EC却还是可以正常运行,ITE的说法是,最好是多大的ROM文件就用多大的FLASH
回复

使用道具 举报

发表于 2009-9-3 00:07:28 | 显示全部楼层

一切以cpu, nb.sb为中心,其他的都是device

一切以cpu, nb.sb为中心,其他的都是device' w* L2 a6 ]; N  r/ s2 p% k
其它的device 要想存在,必须占用MEMORY Address, or IO address, 这个方向,你就可以去debug了,
回复

使用道具 举报

发表于 2009-9-10 14:33:28 | 显示全部楼层
楼主怎么样了,我也遇到同样的问题呀,后来将FWH_SEL1—Firmware Hub Select 1 Register
7 _. t" C) m2 u' A; g1 D7 O, i3 P2 P7 J- L7 Q
(LPC I/F—D31:F0) 的FWH_E8_IDSEL,FWH_E0_IDSEL写入0x00后,会hang在0x618 @/ n: c' V& K+ O
回复

使用道具 举报

发表于 2009-9-15 09:19:22 | 显示全部楼层
学习中,这几天没人跟进了
回复

使用道具 举报

发表于 2009-11-16 21:20:30 | 显示全部楼层
楼主这个问题解决了吗?我最近也碰到这个问题,茫然中。
回复

使用道具 举报

发表于 2009-11-16 22:59:18 | 显示全部楼层
小小提議. 若把1M的ROM CODE多複製一份放在2M裡會怎麼樣?8 i  c5 D$ f8 p# y* x
也就是 1M + 1M = 2M
回复

使用道具 举报

发表于 2009-11-19 21:00:42 | 显示全部楼层
没有人知道吗?高手们来指点一下啊。
回复

使用道具 举报

发表于 2009-11-21 12:06:10 | 显示全部楼层
兄弟,你要弄清楚 ITE EC的共享接口是否 是fwh  接口6 d' n8 Y0 C) l( b
南桥的fwh DECODE 1M空间是 fwh id 为0
1 ^9 u3 ]. i: _' [; P如果ITE 的和华邦的EC是一样的原理的话,你要去看看南桥的 fwh id设置., L0 ^1 Y# z, a6 A8 a! t/ @
譬如ICH7-M的 fwh id默认为 00112233 ,你只要设置为00002233就ok
回复

使用道具 举报

发表于 2009-11-23 20:56:27 | 显示全部楼层
兄弟,你要弄清楚 ITE EC的共享接口是否 是fwh  接口
/ z, z* v; P0 L9 R5 P7 i    BIOS和EC的连接是用的LPC接口。
回复

使用道具 举报

发表于 2010-4-12 15:55:38 | 显示全部楼层
请问别的EC有FMSSR这个寄存器吗?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 加入计匠网

本版积分规则

Archiver|手机版|小黑屋|计匠网

GMT+8, 2024-12-5 09:45 , Processed in 0.026219 second(s), 16 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表