blob: 0cdbb9d2ddcb01c69a18d634a29679ade073ce1d [file] [log] [blame]
Damien Zammit06853222016-11-16 21:06:54 +11001#
2# Copyright (C) 2014 Steve Shenton <sgsit@libreboot.org>
3# Copyright (C) 2014, 2015 Leah Rowe <info@minifree.org>
4# Copyright (C) 2017 Damien Zammit <damien@zamaudio.com>
5#
6# This program is free software: you can redistribute it and/or modify
7# it under the terms of the GNU General Public License as published by
8# the Free Software Foundation, either version 3 of the License, or
9# (at your option) any later version.
10#
11# This program is distributed in the hope that it will be useful,
12# but WITHOUT ANY WARRANTY; without even the implied warranty of
13# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14# GNU General Public License for more details.
15
16#
17# Info on flash descriptor (page 845 onwards):
18#
19# http://www.intel.co.uk/content/dam/doc/datasheet/io-controller-hub-9-datasheet.pdf
20
21# Flash Descriptor SPEC for GM45/ICH9M
22{
23 # Signature for descriptor mode
24 "fd_signature" : 32,
25
26 # Flash map registers
27 "flmap0_fcba" : 8,
28 "flmap0_nc" : 2,
29 "flmap0_reserved0" : 6,
30 "flmap0_frba" : 8,
31 "flmap0_nr" : 3,
32 "flmap0_reserved1" : 5,
33 "flmap1_fmba" : 8,
34 "flmap1_nm" : 3,
35 "flmap1_reserved" : 5,
36 "flmap1_fisba" : 8,
37 "flmap1_isl" : 8,
38 "flmap2_fmsba" : 8,
39 "flmap2_msl" : 8,
40 "flmap2_reserved" : 16,
41
42 # Component section
43 "flcomp_density1" : 3,
44 "flcomp_density2" : 3,
45 "flcomp_reserved0" : 2,
46 "flcomp_reserved1" : 8,
47 "flcomp_reserved2" : 1,
48 "flcomp_readclockfreq" : 3,
49 "flcomp_fastreadsupp" : 1,
50 "flcomp_fastreadfreq" : 3,
51 "flcomp_w_eraseclkfreq" : 3,
52 "flcomp_r_statclkfreq" : 3,
53 "flcomp_reserved3" : 2,
54 "flill" : 32,
55 "flbp" : 32,
56 "comp_padding"[36] : 8,
57
58 # Region section
59 "flreg0_base" : 13,
60 "flreg0_reserved0" : 3,
61 "flreg0_limit" : 13,
62 "flreg0_reserved1" : 3,
63 "flreg1_base" : 13,
64 "flreg1_reserved0" : 3,
65 "flreg1_limit" : 13,
66 "flreg1_reserved1" : 3,
67 "flreg2_base" : 13,
68 "flreg2_reserved0" : 3,
69 "flreg2_limit" : 13,
70 "flreg2_reserved1" : 3,
71 "flreg3_base" : 13,
72 "flreg3_reserved0" : 3,
73 "flreg3_limit" : 13,
74 "flreg3_reserved1" : 3,
75 "flreg4_base" : 13,
76 "flreg4_reserved0" : 3,
77 "flreg4_limit" : 13,
78 "flreg4_reserved1" : 3,
79 "flreg_padding"[12] : 8,
80
81 # Master access section
82
83 # 1: Host CPU/BIOS
84 "flmstr1_requesterid" : 16,
85 "flmstr1_r_fd" : 1,
86 "flmstr1_r_bios" : 1,
87 "flmstr1_r_me" : 1,
88 "flmstr1_r_gbe" : 1,
89 "flmstr1_r_pd" : 1,
90 "flmstr1_r_reserved" : 3,
91 "flmstr1_w_fd" : 1,
92 "flmstr1_w_bios" : 1,
93 "flmstr1_w_me" : 1,
94 "flmstr1_w_gbe" : 1,
95 "flmstr1_w_pd" : 1,
96 "flmstr1_w_reserved" : 3,
97
98 # 2: ME
99 "flmstr2_requesterid" : 16,
100 "flmstr2_r_fd" : 1,
101 "flmstr2_r_bios" : 1,
102 "flmstr2_r_me" : 1,
103 "flmstr2_r_gbe" : 1,
104 "flmstr2_r_pd" : 1,
105 "flmstr2_r_reserved" : 3,
106 "flmstr2_w_fd" : 1,
107 "flmstr2_w_bios" : 1,
108 "flmstr2_w_me" : 1,
109 "flmstr2_w_gbe" : 1,
110 "flmstr2_w_pd" : 1,
111 "flmstr2_w_reserved" : 3,
112
113 # 3: GbE
114 "flmstr3_requesterid" : 16,
115 "flmstr3_r_fd" : 1,
116 "flmstr3_r_bios" : 1,
117 "flmstr3_r_me" : 1,
118 "flmstr3_r_gbe" : 1,
119 "flmstr3_r_pd" : 1,
120 "flmstr3_r_reserved" : 3,
121 "flmstr3_w_fd" : 1,
122 "flmstr3_w_bios" : 1,
123 "flmstr3_w_me" : 1,
124 "flmstr3_w_gbe" : 1,
125 "flmstr3_w_pd" : 1,
126 "flmstr3_w_reserved" : 3,
127
128 "flmstr_padding"[148] : 8,
129
130 # ICHSTRAP0
131 "ich0_medisable" : 1,
132 "ich0_reserved0" : 6,
133 "ich0_tcomode" : 1,
134 "ich0_mesmbusaddr" : 7,
135 "ich0_bmcmode" : 1,
136 "ich0_trippointsel" : 1,
137 "ich0_reserved1" : 2,
138 "ich0_integratedgbe" : 1,
139 "ich0_lanphy" : 1,
140 "ich0_reserved2" : 3,
141 "ich0_dmireqiddisable" : 1,
142 "ich0_me2smbusaddr" : 7,
143
144 # ICHSTRAP1
145 "ich1_dynclk_nmlink" : 1,
146 "ich1_dynclk_smlink" : 1,
147 "ich1_dynclk_mesmbus" : 1,
148 "ich1_dynclk_sst" : 1,
149 "ich1_reserved0" : 4,
150 "ich1_nmlink_npostreqs" : 1,
151 "ich1_reserved1" : 7,
152 "ich1_reserved2" : 16,
153
154 "ichstrap_padding"[248] : 8,
155
156 # MCHSTRAP0
157 "mch0_medisable" : 1,
158 "mch0_mebootfromflash" : 1,
159 "mch0_tpmdisable" : 1,
160 "mch0_reserved0" : 3,
161 "mch0_spifingerprinton" : 1,
162 # Alternate disable - allows ME to perform chipset
163 # init functions but disables FW apps such as AMT
164 "mch0_mealtdisable" : 1,
165 "mch0_reserved1" : 8,
166 "mch0_reserved2" : 16,
167
168 "mchstrap_padding"[3292]: 8,
169
170 # ME VSCC Table
171 "mevscc_jid0" : 32,
172 "mevscc_vscc0" : 32,
173 "mevscc_jid1" : 32,
174 "mevscc_vscc1" : 32,
175 "mevscc_jid2" : 32,
176 "mevscc_vscc2" : 32,
177 "mevscc_padding"[4] : 8,
178
179 # Descriptor Map 2 Record
180 "mevscc_tablebase" : 8,
181 "mevscc_tablelength" : 8,
182 "mevscc_reserved" : 16,
183
184 # OEM section
185 "oem_magic"[8] : 8,
186 "oem_padding"[248] : 8
187}