coreboot
coreboot is an Open Source project aimed at replacing the proprietary BIOS found in most computers.
amd64_save_state.h
Go to the documentation of this file.
1
/* SPDX-License-Identifier: GPL-2.0-only */
2
3
#ifndef __AMD64_SAVE_STATE_H__
4
#define __AMD64_SAVE_STATE_H__
5
#endif
6
7
#include <types.h>
8
#include <
cpu/x86/smm.h
>
9
10
/* AMD64 x86 SMM State-Save Area
11
* starts @ 0x7e00
12
*/
13
#define SMM_AMD64_ARCH_OFFSET 0x7e00
14
#define SMM_AMD64_SAVE_STATE_OFFSET \
15
SMM_SAVE_STATE_BEGIN(SMM_AMD64_ARCH_OFFSET)
16
typedef
struct
{
17
u16
es_selector
;
18
u16
es_attributes
;
19
u32
es_limit
;
20
u64
es_base
;
21
22
u16
cs_selector
;
23
u16
cs_attributcs
;
24
u32
cs_limit
;
25
u64
cs_base
;
26
27
u16
ss_selector
;
28
u16
ss_attributss
;
29
u32
ss_limit
;
30
u64
ss_base
;
31
32
u16
ds_selector
;
33
u16
ds_attributds
;
34
u32
ds_limit
;
35
u64
ds_base
;
36
37
u16
fs_selector
;
38
u16
fs_attributfs
;
39
u32
fs_limit
;
40
u64
fs_base
;
41
42
u16
gs_selector
;
43
u16
gs_attributgs
;
44
u32
gs_limit
;
45
u64
gs_base
;
46
47
u8
reserved0[4];
48
u16
gdtr_limit
;
49
u8
reserved1[2];
50
u64
gdtr_base
;
51
52
u16
ldtr_selector
;
53
u16
ldtr_attributes
;
54
u32
ldtr_limit
;
55
u64
ldtr_base
;
56
57
u8
reserved2[4];
58
u16
idtr_limit
;
59
u8
reserved3[2];
60
u64
idtr_base
;
61
62
u16
tr_selector
;
63
u16
tr_attributes
;
64
u32
tr_limit
;
65
u64
tr_base
;
66
67
u64
io_restart_rip
;
68
u64
io_restart_rcx
;
69
u64
io_restart_rsi
;
70
u64
io_restart_rdi
;
71
u32
smm_io_trap_offset
;
72
u32
local_smi_status
;
73
74
u8
io_restart
;
75
u8
autohalt_restart
;
76
77
u8
reserved5[6];
78
79
u64
efer
;
80
81
u8
reserved6[36];
82
83
u32
smm_revision
;
84
u32
smbase
;
85
86
u8
reserved7[68];
87
88
u64
cr4
;
89
u64
cr3
;
90
u64
cr0
;
91
u64
dr7
;
92
u64
dr6
;
93
94
u64
rflags
;
95
u64
rip
;
96
u64
r15
;
97
u64
r14
;
98
u64
r13
;
99
u64
r12
;
100
u64
r11
;
101
u64
r10
;
102
u64
r9
;
103
u64
r8
;
104
105
u64
rdi
;
106
u64
rsi
;
107
u64
rpb
;
108
u64
rsp
;
109
u64
rbx
;
110
u64
rdx
;
111
u64
rcx
;
112
u64
rax
;
113
}
__packed
amd64_smm_state_save_area_t;
smm.h
u64
uint64_t u64
Definition:
stdint.h:54
u32
uint32_t u32
Definition:
stdint.h:51
u16
uint16_t u16
Definition:
stdint.h:48
u8
uint8_t u8
Definition:
stdint.h:45
__packed
Definition:
x86.c:23
__packed::smbase
u32 smbase
Definition:
amd64_save_state.h:84
__packed::io_restart
u8 io_restart
Definition:
amd64_save_state.h:74
__packed::cs_selector
u16 cs_selector
Definition:
amd64_save_state.h:22
__packed::ldtr_base
u64 ldtr_base
Definition:
amd64_save_state.h:55
__packed::cr3
u64 cr3
Definition:
amd64_save_state.h:89
__packed::cr0
u64 cr0
Definition:
amd64_save_state.h:90
__packed::gdtr_base
u64 gdtr_base
Definition:
amd64_save_state.h:50
__packed::rsi
u64 rsi
Definition:
amd64_save_state.h:106
__packed::rcx
u64 rcx
Definition:
amd64_save_state.h:111
__packed::dr6
u64 dr6
Definition:
amd64_save_state.h:92
__packed::rpb
u64 rpb
Definition:
amd64_save_state.h:107
__packed::autohalt_restart
u8 autohalt_restart
Definition:
amd64_save_state.h:75
__packed::ds_limit
u32 ds_limit
Definition:
amd64_save_state.h:34
__packed::gdtr_limit
u16 gdtr_limit
Definition:
amd64_save_state.h:48
__packed::r9
u64 r9
Definition:
amd64_save_state.h:102
__packed::dr7
u64 dr7
Definition:
amd64_save_state.h:91
__packed::es_attributes
u16 es_attributes
Definition:
amd64_save_state.h:18
__packed::rsp
u64 rsp
Definition:
amd64_save_state.h:108
__packed::ss_base
u64 ss_base
Definition:
amd64_save_state.h:30
__packed::io_restart_rsi
u64 io_restart_rsi
Definition:
amd64_save_state.h:69
__packed::es_selector
u16 es_selector
Definition:
amd64_save_state.h:17
__packed::cs_base
u64 cs_base
Definition:
amd64_save_state.h:25
__packed::es_base
u64 es_base
Definition:
amd64_save_state.h:20
__packed::ldtr_selector
u16 ldtr_selector
Definition:
amd64_save_state.h:52
__packed::r13
u64 r13
Definition:
amd64_save_state.h:98
__packed::gs_base
u64 gs_base
Definition:
amd64_save_state.h:45
__packed::rdx
u64 rdx
Definition:
amd64_save_state.h:110
__packed::io_restart_rip
u64 io_restart_rip
Definition:
amd64_save_state.h:67
__packed::tr_base
u64 tr_base
Definition:
amd64_save_state.h:65
__packed::ds_base
u64 ds_base
Definition:
amd64_save_state.h:35
__packed::fs_limit
u32 fs_limit
Definition:
amd64_save_state.h:39
__packed::rbx
u64 rbx
Definition:
amd64_save_state.h:109
__packed::idtr_limit
u16 idtr_limit
Definition:
amd64_save_state.h:58
__packed::tr_selector
u16 tr_selector
Definition:
amd64_save_state.h:62
__packed::es_limit
u32 es_limit
Definition:
amd64_save_state.h:19
__packed::rip
u64 rip
Definition:
amd64_save_state.h:95
__packed::cs_attributcs
u16 cs_attributcs
Definition:
amd64_save_state.h:23
__packed::smm_io_trap_offset
u32 smm_io_trap_offset
Definition:
amd64_save_state.h:71
__packed::fs_selector
u16 fs_selector
Definition:
amd64_save_state.h:37
__packed::local_smi_status
u32 local_smi_status
Definition:
amd64_save_state.h:72
__packed::ldtr_attributes
u16 ldtr_attributes
Definition:
amd64_save_state.h:53
__packed::gs_limit
u32 gs_limit
Definition:
amd64_save_state.h:44
__packed::r10
u64 r10
Definition:
amd64_save_state.h:101
__packed::cr4
u64 cr4
Definition:
amd64_save_state.h:88
__packed::rdi
u64 rdi
Definition:
amd64_save_state.h:105
__packed::io_restart_rcx
u64 io_restart_rcx
Definition:
amd64_save_state.h:68
__packed::efer
u64 efer
Definition:
amd64_save_state.h:79
__packed::smm_revision
u32 smm_revision
Definition:
amd64_save_state.h:83
__packed::ss_attributss
u16 ss_attributss
Definition:
amd64_save_state.h:28
__packed::r11
u64 r11
Definition:
amd64_save_state.h:100
__packed::idtr_base
u64 idtr_base
Definition:
amd64_save_state.h:60
__packed::cs_limit
u32 cs_limit
Definition:
amd64_save_state.h:24
__packed::ds_attributds
u16 ds_attributds
Definition:
amd64_save_state.h:33
__packed::rflags
u64 rflags
Definition:
amd64_save_state.h:94
__packed::tr_attributes
u16 tr_attributes
Definition:
amd64_save_state.h:63
__packed::ss_limit
u32 ss_limit
Definition:
amd64_save_state.h:29
__packed::ldtr_limit
u32 ldtr_limit
Definition:
amd64_save_state.h:54
__packed::rax
u64 rax
Definition:
amd64_save_state.h:112
__packed::r15
u64 r15
Definition:
amd64_save_state.h:96
__packed::fs_attributfs
u16 fs_attributfs
Definition:
amd64_save_state.h:38
__packed::fs_base
u64 fs_base
Definition:
amd64_save_state.h:40
__packed::ss_selector
u16 ss_selector
Definition:
amd64_save_state.h:27
__packed::r12
u64 r12
Definition:
amd64_save_state.h:99
__packed::r14
u64 r14
Definition:
amd64_save_state.h:97
__packed::gs_selector
u16 gs_selector
Definition:
amd64_save_state.h:42
__packed::gs_attributgs
u16 gs_attributgs
Definition:
amd64_save_state.h:43
__packed::r8
u64 r8
Definition:
amd64_save_state.h:103
__packed::tr_limit
u32 tr_limit
Definition:
amd64_save_state.h:64
__packed::ds_selector
u16 ds_selector
Definition:
amd64_save_state.h:32
__packed::io_restart_rdi
u64 io_restart_rdi
Definition:
amd64_save_state.h:70
src
include
cpu
amd
amd64_save_state.h
Generated by
1.9.1