返回列表 发帖

一直在看代码,今天自己添了点东西。报如下错。请高手指点下

想在post阶段把时钟芯片的一个寄存器置低,停掉SAS控制器的时钟。
在CRB_InitAtStartPOST_FAR在里添加
  1. extern        Write_SMBus_blk_FAR       
复制代码

后,build All报如下错误。
  1. BUILD\jmp.lib(CORE\SRC\JMP.ASM) : warning L4020: RUN_CSEG : code-segment size exceeds 64K-36

  2. BUILD\PROJECT.OBJ(PROJECT\PROJECT.asm) : error L2029: 'write_smbus_byte_far' : unresolved external

  3. NMAKE : fatal error U1077: 'C:\WINDOWS\system32\cmd.exe' : return code '0x2'
  4. Stop.
  5. NMAKE : fatal error U1077: 'C:\WINDOWS\system32\cmd.exe' : return code '0x2'
  6. Stop.
复制代码

请高手执教下。

  1. extern        Write_SMBus_blk_FAR:FAR
复制代码
studying

TOP

为什么楼主写的code跟报的error不符合咧?...是不是自己在try 函数啊?
Direct your life, and be a good actor.

TOP

请记得先打开相应的 token, RUNTIME_SMBUS_BLOCK_ACCESS 再去调用函数....函数名的部分相信可以在你的code里面搜出来的...
Direct your life, and be a good actor.

TOP

先谢过,慢慢调。
是在自己写。不过也只是改了一点点。

TOP

Disabled Controller放在Boots Block比较好~

TOP

不就是没声明么。。。。。。这种报错

TOP

对CLOCK的操作建议在还没有post的时候就完成,楼主这个错误应该是跨段出现的错误,你所调用的hook不在你使用的那个段里面。

TOP

8# laoshumice
一再的感觉无路可走, 所以一再的前行

TOP

问题是BB阶段的哪个,我看了有下面这些可能的。
  1. mBODY_JMP_PROC_NEAR 0FFFFh, OEM_InitAtPowerOn        ; CpInitAtPowerOn
  2.         mBODY_JMP_PROC_NEAR 0FFFFh, PCIEOEM_InitAtPowerOn        ; OEM_InitAtPowerOn
  3.         mBODY_JMP_PROC_NEAR 0FFFFh, Project_InitAtPowerOn        ; EM_InitAtPowerOn
  4.         mBODY_JMP_PROC_NEAR 0FFFFh,  CpInitAtEarlyBB               
  5.         mBODY_JMP_PROC_NEAR 0FFFFh, OEM_InitAtEarlyBB
  6.        mBODY_JMP_PROC_NEAR 0FFFFh, CRB_InitAtEarlyBB        ; CpInitAtEarlyBB
复制代码
而且这些阶段都不能call函数的。请指教。

TOP

搞定,在OEM_InitAtEarlyBB里面加的。
这样合适吗?

TOP

'write_smbus_byte_far'  就是在BB阶段调用的。 放在BB中Disable才合适。

TOP

可以的,只要你不用build all,可以保存。。。仅仅限于debug··

TOP

可是我想用于release版,那怎么办。难道在BB阶段就不能用SMBUs了吗

TOP

可以的。
studying

TOP

今天在看pci spec的时候看到,里面有个command register。
我以前用关掉时钟的办法来禁用SAS控制器,是不是把这个command register填成0也可以达到目的。
谢谢

TOP

新人,表示还没拿到Code,不过学习了
我不是那么随便的人

TOP

返回列表