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