JonesTseng 发表于 2009-8-18 22:40:29

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

请求各位BIOS或EC高手帮忙,不知道有谁遇到类似问题.

Peter , Bini有何高见?

注:我是UEFI BIOS Engineer

Computer: Notebook
Platform: PineTrail-M--> CPU and NB:Pineview   PCH: TigerPoint
EC:ITE8502
EC Source code: AMI C code
BIOS EC Share ROM: Yes
Legacy Code: AMI CORE 8
UEFI Code:AMI Aptio

Issue description:
1.Build BIOS Use 2M flash part,Legacy code halt in StartRecovery_FAR,checkpoint is E9h.
2.Build BIOS Use 1M flash part,Legacy code post OK.

1.Build BIOS Use 2M flash part,UEFI code always restart when code run to 4Fh
2.Build BIOS Use 1M flash part,UEFI code post OK.

经过分析,Legacy code 2M 出问题可能是因为post的code损坏或者是checksum error,又或者是这段code不在原定的位置,导致CPU找不到post code entry。
       EFI Code 2M 出问题是因为BIOS 找到 next FV FV_Main时,再在DXE_CORE.FFS中以类型为EFI_FILE_DXE_CORE找DXE CORE的入口时找不到该入口,故返回导致重启.

以上分析中,Legacy部分只是我的猜测,EFI部分是我经过DEBUG发现的。
看来不管哪种CODE,2M的都有问题,为什么呢?是不是EC部分有些东西没设置好或者BIOS部分也要做一些关于Flash part方面的porting呢????

请各位高手救命啊,不胜感激!!!!

JonesTseng 发表于 2009-8-18 22:48:17

急救啊,帮帮忙

bini 发表于 2009-8-18 23:18:02

向AMI问一下便知 :) Porting code的时候,他们应该碰到过这个问题.:lol

JonesTseng 发表于 2009-8-18 23:45:24

谢谢你的回答,我已经问过AMI的EFI工程师,他们没有遇到过类似问题,但他叫我检查build出来的DXE_CORE.ffs的头结构,我检查时与1M build出来的没有差别,所以我还是怀疑是否与flash part方面的定义有关

bini 发表于 2009-8-18 23:47:43

你要是用Insyde code,我帮你解掉它,哈哈:loveliness:

JonesTseng 发表于 2009-8-19 08:49:29

公司决定用AMI的,我拿不了主意,呵呵
希望以后有机会用Insyde的

还有哪位高手有什么高见没有?

harborwang 发表于 2009-8-19 09:00:49

没做过ITE的ec,像ene 里有bit控制 LPC decoding memory,可能是你ite的
Decoded BIOS Address 目前设置的是1M,改成2M decode看看

JonesTseng 发表于 2009-8-19 13:49:57

我们的EC工程师说没有找到关于Decoded BIOS Address的设置,你能具体说明一下吗?谢谢

JonesTseng 发表于 2009-8-19 17:11:24

最新update:
Non-share BIOS.EC模式,即BIOS,EC分开存放在不同的ROM是没有问题的,但为什么呢?各位高手帮忙想想

pwnissan 发表于 2009-8-19 20:25:41

应该是解析flash的地址范围不对,你现在设的是0xFFF0 0000 ~ 0xFFFF FFFF,看看SB的data sheet,把它改为0xFFE00000 ~ 0xFFFF FFFF就行

bobby_yang 发表于 2009-8-19 21:52:07

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

ITE8502中有一个寄存器是控制FLASH的大小的:Flash Memory Size Select Register(FMSSR),这个寄存器的地址在0x1007,2M的FLASH,你就将这个寄存器设为0x1F
同样的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

(__XXK__) 发表于 2009-9-3 00:07:28

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

一切以cpu, nb.sb为中心,其他的都是device
其它的device 要想存在,必须占用MEMORY Address, or IO address, 这个方向,你就可以去debug了,

wzl19850909 发表于 2009-9-10 14:33:28

楼主怎么样了,我也遇到同样的问题呀,后来将FWH_SEL1—Firmware Hub Select 1 Register

(LPC I/F—D31:F0) 的FWH_E8_IDSEL,FWH_E0_IDSEL写入0x00后,会hang在0x61

iipeach 发表于 2009-9-15 09:19:22

学习中,这几天没人跟进了

woodhuman 发表于 2009-11-16 21:20:30

楼主这个问题解决了吗?我最近也碰到这个问题,茫然中。

eject 发表于 2009-11-16 22:59:18

小小提議. 若把1M的ROM CODE多複製一份放在2M裡會怎麼樣?
也就是 1M + 1M = 2M

woodhuman 发表于 2009-11-19 21:00:42

没有人知道吗?高手们来指点一下啊。

liwenf98 发表于 2009-11-21 12:06:10

兄弟,你要弄清楚 ITE EC的共享接口是否 是fwh接口
南桥的fwh DECODE 1M空间是 fwh id 为0
如果ITE 的和华邦的EC是一样的原理的话,你要去看看南桥的 fwh id设置.
譬如ICH7-M的 fwh id默认为 00112233 ,你只要设置为00002233就ok

woodhuman 发表于 2009-11-23 20:56:27

兄弟,你要弄清楚 ITE EC的共享接口是否 是fwh接口
    BIOS和EC的连接是用的LPC接口。

madsys 发表于 2010-4-12 15:55:38

请问别的EC有FMSSR这个寄存器吗?
页: [1]
查看完整版本: 救命:1M与2M Flash Part问题