225 lines
5.8 KiB
Plaintext
225 lines
5.8 KiB
Plaintext
SYSTEM-MANAGEMENT MODE Release 55 Last change 28sep97
|
|
Copyright (c) 1997 Ralf Brown
|
|
|
|
---------------------------------------------
|
|
SMM Am486
|
|
|
|
Format of Am486 SMM State-Save Map:
|
|
Offset Size Description (Table S006)
|
|
FE00h reserved
|
|
FEE4h DWORD DR3
|
|
FEE8h DWORD DR2
|
|
FEECh DWORD DR1
|
|
FEF0h DWORD DR0
|
|
FEF4h DWORD CR2
|
|
FEF8h DWORD SMM state dump base address
|
|
fEFCh DWORD SMM revision ID (see #S002)
|
|
FF00h WORD I/O restart
|
|
(set to 00FFh to re-execute trapped I/O)
|
|
FF02h WORD halt auto restart
|
|
(bit 0 set on entry if SMI during HLT)
|
|
(set to 00FFh to restart from HLT)
|
|
FF04h DWORD I/O trap word (see #S007)
|
|
FF08h DWORD reserved
|
|
FF0Ch DWORD reserved
|
|
FF10h DWORD previous EIP
|
|
FF14h 5 DWORDs ???
|
|
FF28h DWORD reserved
|
|
FF2Ch DWORD reserved
|
|
FF30h DWORD ES limit
|
|
FF34h DWORD ES base
|
|
FF38h DWORD ES attributes
|
|
FF3Ch DWORD CS limit
|
|
FF40h DWORD CS base
|
|
FF44h DWORD CS attributes
|
|
FF48h DWORD SS limit
|
|
FF4Ch DWORD SS base
|
|
FF50h DWORD SS attributes
|
|
FF54h DWORD DS limit
|
|
FF58h DWORD DS base
|
|
FF5Ch DWORD DS attributes
|
|
FF60h DWORD FS limit
|
|
FF64h DWORD FS base
|
|
FF68h DWORD FS attributes
|
|
FF6Ch DWORD GS limit
|
|
FF70h DWORD GS base
|
|
FF74h DWORD GS attributes
|
|
FF78h DWORD LDT limit
|
|
FF7Ch DWORD LDT base
|
|
FF80h DWORD LDT attribute
|
|
FF84h DWORD GDT limit
|
|
FF88h DWORD GDT base
|
|
FF8Ch DWORD GDT attribute
|
|
FF90h DWORD IDT limit
|
|
FF94h DWORD IDT base
|
|
FF98h DWORD IDT attribute
|
|
FF9Ch DWORD TSS limit
|
|
FFA0h DWORD TSS base
|
|
FFA4h DWORD TSS attribute
|
|
FFA8h WORD ES
|
|
FFAAh WORD unused???
|
|
FFACh WORD CS
|
|
FFAEh WORD unused???
|
|
FFB0h WORD SS
|
|
FFB2h WORD unused???
|
|
FFB4h WORD DS
|
|
FFB6h WORD unused???
|
|
FFB8h WORD FS
|
|
FFBAh WORD unused???
|
|
FFBCh WORD GS
|
|
FFBEh WORD unused???
|
|
FFC0h DWORD LDTR
|
|
FFC4h DWORD TR
|
|
FFC8h DWORD DR7
|
|
FFCCh DWORD DR6
|
|
FFD0h DWORD EAX
|
|
FFD4h DWORD ECX
|
|
FFD8h DWORD EDX
|
|
FFDCh DWORD EBX
|
|
FFE0h DWORD ESP
|
|
FFE4h DWORD EBP
|
|
FFE8h DWORD ESI
|
|
FFECh DWORD EDI
|
|
FFF0h DWORD EIP
|
|
FFF4h DWORD EFLAGS
|
|
FFF8h DWORD CR3
|
|
FFFCh DWORD CR0
|
|
SeeAlso: #S001
|
|
|
|
Bitfields for AMD Am486 I/O trap word:
|
|
Bit(s) Description (Table S007)
|
|
31-16 I/O address
|
|
15-2 reserved
|
|
1 valid I/O instruction
|
|
0 direction
|
|
SeeAlso: #S006
|
|
---------------------------------------------
|
|
SMM AMD-K5
|
|
|
|
Format of AMD K5 SMM State-Save Area:
|
|
Offset Size Description (Table S001)
|
|
FE00h reserved
|
|
FEF8h DWORD SMM base address
|
|
(may be set to any multiple of 32K; initially 00030000h)
|
|
FEFCh DWORD SMM revision identifier (see #S002)
|
|
FF00h WORD I/O trap restart slot (see #S005)
|
|
FF02h WORD HLT restart slot (see #S003)
|
|
FF04h DWORD I/O restart EDI
|
|
FF08h DWORD I/O restart ECX
|
|
FF0Ch DWORD I/O restart ESI
|
|
FF10h DWORD CR4
|
|
FF14h DWORD CR2
|
|
FF18h 3 DWORDs reserved
|
|
FF24h DWORD ES limit
|
|
FF28h DWORD ES base
|
|
FF2Ch DWORD ES attributes
|
|
FF30h DWORD CS limit
|
|
FF34h DWORD CS base
|
|
FF38h DWORD CS attributes
|
|
FF3Ch DWORD SS limit
|
|
FF40h DWORD SS base
|
|
FF44h DWORD SS attributes
|
|
FF48h DWORD DS limit
|
|
FF4Ch DWORD DS base
|
|
FF50h DWORD DS attributes
|
|
FF54h DWORD FS limit
|
|
FF58h DWORD FS base
|
|
FF5Ch DWORD FS attributes
|
|
FF60h DWORD GS limit
|
|
FF64h DWORD GS base
|
|
FF68h DWORD GS attributes
|
|
FF6Ch DWORD LDT limit
|
|
FF70h DWORD LDT base
|
|
FF74h DWORD LDT attributes
|
|
FF78h DWORD TSS limit
|
|
FF7Ch DWORD TSS base
|
|
FF80h DWORD TSS attributes
|
|
FF84h DWORD GDT limit
|
|
FF88h DWORD GDT base
|
|
FF8Ch DWORD IDT limit
|
|
FF90h DWORD IDT base
|
|
FF94h 2 DWORDs reserved
|
|
FF9Ch DWORD I/O trap EIP
|
|
FFA0h DWORD reserved
|
|
FFA4h DWORD I/O trap DWORD (see #S004)
|
|
FFA8h WORD ES
|
|
FFAAh WORD unused???
|
|
FFACh WORD CS
|
|
FFAEh WORD unused???
|
|
FFB0h WORD SS
|
|
FFB2h WORD unused???
|
|
FFB4h WORD DS
|
|
FFB6h WORD unused???
|
|
FFB8h WORD FS
|
|
FFBAh WORD unused???
|
|
FFBCh WORD GS
|
|
FFBEh WORD unused???
|
|
FFC0h DWORD LDTR
|
|
FFC4h DWORD TR
|
|
FFC8h DWORD DR7
|
|
FFCCh DWORD DR6
|
|
FFD0h DWORD EAX
|
|
FFD4h DWORD ECX
|
|
FFD8h DWORD EDX
|
|
FFDCh DWORD EBX
|
|
FFE0h DWORD ESP
|
|
FFE4h DWORD EBP
|
|
FFE8h DWORD ESI
|
|
FFECh DWORD EDI
|
|
FFF0h DWORD EIP
|
|
FFF4h DWORD EFLAGS
|
|
FFF8h DWORD CR3
|
|
FFFCh DWORD CR0
|
|
SeeAlso: #S006
|
|
|
|
Bitfields for AMD K5 SMM Revision Identifier:
|
|
Bit(s) Description (Table S002)
|
|
31-18 reserved (0)
|
|
17 SMM base address relocation available (always 1 [enabled] on K5)
|
|
16 I/O trap restart supported (always 1 on K5)
|
|
15-0 SMM revision level (currently 0000h)
|
|
SeeAlso: #S001
|
|
|
|
Bitfields for AMD K5 Halt Restart Slot:
|
|
Bit(s) Description (Table S003)
|
|
15-1 undefined
|
|
0 (on SMM entry) entered SMM from Halt state
|
|
(at RSM) return to Halt state instead of state in SMM state-save area
|
|
SeeAlso: #S001
|
|
|
|
Bitfields for AMD K5 I/O Trap DWORD:
|
|
Bit(s) Description (Table S004)
|
|
31-16 I/O port address
|
|
15 I/O was string operation (INS,OUTS,etc.)
|
|
14-2 reserved
|
|
1 valid I/O instruction
|
|
0 direction (0 = output, 1 = input)
|
|
SeeAlso: #S001,#S0005
|
|
|
|
Bitfields for AMD K5 I/O Trap Restart Slot:
|
|
Bit(s) Description (Table S005)
|
|
31-16 reserved
|
|
15-0 I/O instruction restart on RSM
|
|
0000h resume at next instruction following trapped I/O instruction
|
|
(default on SMM entry)
|
|
00FFh re-execute the trapped I/O instruction
|
|
Note: before changing the restart value, check that the I/O instruction is
|
|
actually valid (see #S004)
|
|
SeeAlso: #S001,#S004
|
|
--------!---Admin----------------------------
|
|
Highest Table Number = S007
|
|
--------!---FILELIST-------------------------
|
|
Please redistribute all of the files comprising the interrupt list (listed at
|
|
the beginning of the list and in INTERRUP.1ST) unmodified as a group, in a
|
|
quartet of archives named INTER55A through INTER55D (preferably the original
|
|
authenticated PKZIP archives), and the utility and hypertext conversion
|
|
programs in three additional archives called INTER55E.ZIP to INTER55G.ZIP.
|
|
|
|
Copyright (c) 1989,1990,1991,1992,1993,1994,1995,1996,1997 Ralf Brown
|
|
--------!---CONTACT_INFO---------------------
|
|
Internet: ralf@pobox.com (currently forwards to ralf@telerama.lm.com)
|
|
FIDO: Ralf Brown 1:129/26.1
|
|
or post a message to me in the DR_DEBUG echo (I probably won't see it
|
|
unless you address it to me)
|
|
CIS: >INTERNET:ralf@pobox.com
|