|
|
各位前辈,有一个疑惑还忘不吝赐教:
) I/ P8 i" R: P, p2 P4 }" u% p( L4 R! R: ^
1. SMRam 的BaseAddress 用来指定 SMRam 的起始地址(reset = 30000h),可以修改, 修改的方式是在 512k 的 SMM state-save area 中, BaseAdress + 8000 是handler的入口点. AMD 的spec中有指定此 BAR 共32bit , MSR 地址是 C001_0111h x# M. F' E& b2 j
# _: S6 W; S$ w" J. E# N 2. spec中又定义2个 protected area, 即Aseg and Tseg , Tseg 也有一个BaseAddress . AMD 的spec中此MSR 地址是 C001_0112h , 其宽度从 bit 16-51 , 其余bit 保留.
# j: ?4 X$ f5 L5 e6 ^1 l
, ^, |; T* {! u f 我的疑问是: 4 e: t+ {, ~' g! |8 X- t
a. MSR C001_0111h (SMRam.BaseAddress)和 C001_0112h(Tseg.BaseAddress) 都用来指定SMRam 的BaseAddress , 而且其长度不同,请问这两者有何区别? 5 [( g3 \8 F) E7 Y/ n2 r, \
b. 如果使用Aseg, 其范围是 0A0000h - 0BFFFFh , 共128k, 此范围在dos下是 vedio buffer 和其余用途. 这两者难道没有冲突吗? |
|