|
各位前辈,有一个疑惑还忘不吝赐教:% l7 u) |! L" T) A) ?$ k- R% g
$ Z3 G. ]7 R: E1 b3 [1 t7 {& G 1. SMRam 的BaseAddress 用来指定 SMRam 的起始地址(reset = 30000h),可以修改, 修改的方式是在 512k 的 SMM state-save area 中, BaseAdress + 8000 是handler的入口点. AMD 的spec中有指定此 BAR 共32bit , MSR 地址是 C001_0111h
* |6 p6 v* H6 I0 F2 G
- i& c& U5 H0 D# ^& F7 u# o* [ 2. spec中又定义2个 protected area, 即Aseg and Tseg , Tseg 也有一个BaseAddress . AMD 的spec中此MSR 地址是 C001_0112h , 其宽度从 bit 16-51 , 其余bit 保留.
9 [ T8 h7 h9 ^9 O
2 C2 o7 Q+ l' w, k 我的疑问是: - q+ `( Y% p0 n# H9 e1 p! o2 c5 c; c
a. MSR C001_0111h (SMRam.BaseAddress)和 C001_0112h(Tseg.BaseAddress) 都用来指定SMRam 的BaseAddress , 而且其长度不同,请问这两者有何区别?
8 B9 K7 [/ P+ F1 G t b. 如果使用Aseg, 其范围是 0A0000h - 0BFFFFh , 共128k, 此范围在dos下是 vedio buffer 和其余用途. 这两者难道没有冲突吗? |
|