summaryrefslogtreecommitdiff
path: root/Board/CPU/Microcode/Microcode.sdl
blob: 5744c3420e0cd9aee865dffe33198054bfce5eb6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
TOKEN
	Name  = "Microcode_SUPPORT"
	Value  = "1"
	Help  = "Main switch to enable Microcode support in Project"
	TokenType = Boolean
	TargetEQU = Yes
	TargetMAK = Yes
	Master = Yes
End

TOKEN
	Name  = "NON_PRODUCTION_MICROCODE"
	Value  = "0"
	Help  = "Enable Non-production Microcode"
	TokenType = Boolean
End

TOKEN
	Name  = "MICROCODE_SPLIT_BB_UPDATE"
	Value  = "0"
	Help  = "If enabled, \ a) Microcode added at build time is stored in boot block.\ b) Microcode updates by INT15h are stored in the main firmware volume.\If disabled, all microcode is in the main firmware volume.\\If enabled, microcode is more fault tolerant, but requires more flash space.\"
	TokenType = Boolean
	TargetEQU = Yes
	TargetMAK = Yes
	TargetH = Yes
End


TOKEN
	Name  = "MICROCODE_PAD_SIZE"
	Value  = "0x2000"
	TokenType = Integer
	TargetEQU = Yes
	TargetMAK = Yes
    Token = "MICROCODE_SPLIT_BB_UPDATE" "=" "0"
End

TOKEN
	Name  = "MICROCODE_PAD_SIZE"
	Value  = "0x5000"
	TokenType = Integer
	TargetEQU = Yes
	TargetMAK = Yes
    Token = "MICROCODE_SPLIT_BB_UPDATE" "=" "1"
End

TOKEN
	Name  = "MICROCODE_BLOCK_SIZE"
	Value  = "2048"
	Help  = "Do not change. This matches the INT15h Microcode update."
	TokenType = Integer
	TargetEQU = Yes
	TargetMAK = Yes
	TargetH = Yes
	Lock = Yes
End

TOKEN
	Name  = "PACK_MICROCODE"
	Value  = "1"
	Help  = "This packs the microcode with no gaps.\If Split microcode is disabled, it is recommended for this to be disabled\for compatibility with earlier CPU modules.\The CPU module must support this. "
	TokenType = Boolean
	TargetEQU = Yes
	TargetMAK = Yes
	TargetH = Yes
	Token = "MICROCODE_SPLIT_BB_UPDATE" "=" "1"
End

TOKEN
	Name  = "MICROCODE_ALIGNMENT"
	Value  = "$(MICROCODE_BLOCK_SIZE)"
	TokenType = Integer
	TargetEQU = Yes
	TargetMAK = Yes
End

TOKEN
	Name  = "MICROCODE_ALIGNMENT"
	Value  = "16"
	TokenType = Integer
	TargetEQU = Yes
	TargetMAK = Yes
	Token = "MICROCODE_SPLIT_BB_UPDATE" "=" "1"
End

TOKEN
	Name  = "FV_MICROCODE_BASE"
	Value  = "$(FV_MAIN_BASE)"
	TokenType = Integer
	TargetEQU = Yes
	TargetMAK = Yes
	TargetH = Yes
	Token = "MICROCODE_SPLIT_BB_UPDATE" "=" "0"
End

TOKEN
	Name  = "FV_MICROCODE_BASE"
	Value  = "$(FV_BB_BASE)"
	TokenType = Integer
	TargetEQU = Yes
	TargetMAK = Yes
	TargetH = Yes
	Token = "MICROCODE_SPLIT_BB_UPDATE" "=" "1"
End

TOKEN
	Name  = "FV_MICROCODE_UPDATE_BASE"
	Value  = "$(FV_MAIN_BASE)"
	TokenType = Integer
	TargetEQU = Yes
	TargetMAK = Yes
	TargetH = Yes
	Token = "MICROCODE_SPLIT_BB_UPDATE" "=" "1"
End

PATH
	Name  = "MICROCODE_DIR"
End

MODULE
	Help  = "Includes Microcode.mak to Project"
	File  = "Microcode.mak"
End

ELINK
	Name  = "MICROCODE_FILES"
	InvokeOrder = ReplaceParent
End

ELINK
	Name  = "$(BUILD_DIR)\Microcode.ffs"
	Parent  = "FV_MAIN"
	Token = "MICROCODE_SPLIT_BB_UPDATE" "=" "0"
	InvokeOrder = BeforeParent
End

ELINK
	Name  = "$(BUILD_DIR)\Microcode.ffs"
	Parent  = "FV_BB"
	Token = "MICROCODE_SPLIT_BB_UPDATE" "=" "1"
	InvokeOrder = BeforeParent
End

ELINK
	Name  = "$(BUILD_DIR)\Microcode_Blank.ffs"
	Parent  = "FV_MAIN"
	Token = "MICROCODE_SPLIT_BB_UPDATE" "=" "1"
	InvokeOrder = BeforeParent
End