• Home
  • History
  • Annotate
  • Line#
  • Navigate
  • Raw
  • Download
  • only in /barrelfish-2018-10-04/lib/acpica/tests/aslts/src/runtime/collections/functional/descriptor/
1/*
2 * Some or all of this work - Copyright (c) 2006 - 2016, Intel Corp.
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without modification,
6 * are permitted provided that the following conditions are met:
7 *
8 * Redistributions of source code must retain the above copyright notice,
9 * this list of conditions and the following disclaimer.
10 * Redistributions in binary form must reproduce the above copyright notice,
11 * this list of conditions and the following disclaimer in the documentation
12 * and/or other materials provided with the distribution.
13 * Neither the name of Intel Corporation nor the names of its contributors
14 * may be used to endorse or promote products derived from this software
15 * without specific prior written permission.
16 *
17 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
18 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
19 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
20 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
21 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
22 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
23 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
24 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
25 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
26 * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27 */
28
29/*
30 * Resource Descriptor macros
31 *
32 * Word Space Resource Descriptor Macro
33 */
34
35Name (p430, Package() {
36
37	// Byte 4 (General Flags) of Word Address Space Descriptor
38
39	ResourceTemplate () {
40		WordSpace (0xc0, ResourceProducer, PosDecode, MinNotFixed, MaxNotFixed, 0x0a,
41			0xf6f7, 0xf8f9, 0xfafb, 0xfcfd, 0xfeff)
42	},
43	ResourceTemplate () {
44		WordSpace (0xc1, ResourceProducer, PosDecode, MinNotFixed, MaxFixed, 0x1a,
45			0xf6f7, 0xf8f9, 0xfafb, 0xfcfd, 0xfeff)
46	},
47	ResourceTemplate () {
48		WordSpace (0xc2, ResourceProducer, PosDecode, MinFixed, MaxNotFixed, 0x2a,
49			0xf6f7, 0xf8f9, 0xfafb, 0xfcfd, 0xfeff)
50	},
51	ResourceTemplate () {
52		WordSpace (0xc3, ResourceProducer, PosDecode, MinFixed, MaxFixed, 0x3a,
53			0xf6f7, 0xf8f9, 0xfafb, 0xfcfd, 0xfeff)
54	},
55	ResourceTemplate () {
56		WordSpace (0xc4, ResourceProducer, SubDecode, MinNotFixed, MaxNotFixed, 0x4a,
57			0xf6f7, 0xf8f9, 0xfafb, 0xfcfd, 0xfeff)
58	},
59	ResourceTemplate () {
60		WordSpace (0xc5, ResourceProducer, SubDecode, MinNotFixed, MaxFixed, 0x5a,
61			0xf6f7, 0xf8f9, 0xfafb, 0xfcfd, 0xfeff)
62	},
63	ResourceTemplate () {
64		WordSpace (0xc6, ResourceProducer, SubDecode, MinFixed, MaxNotFixed, 0x6a,
65			0xf6f7, 0xf8f9, 0xfafb, 0xfcfd, 0xfeff)
66	},
67	ResourceTemplate () {
68		WordSpace (0xc7, ResourceProducer, SubDecode, MinFixed, MaxFixed, 0x7a,
69			0xf6f7, 0xf8f9, 0xfafb, 0xfcfd, 0xfeff)
70	},
71	ResourceTemplate () {
72		WordSpace (0xc8, ResourceConsumer, PosDecode, MinNotFixed, MaxNotFixed, 0x8a,
73			0xf6f7, 0xf8f9, 0xfafb, 0xfcfd, 0xfeff)
74	},
75	ResourceTemplate () {
76		WordSpace (0xc9, ResourceConsumer, PosDecode, MinNotFixed, MaxFixed, 0x9a,
77			0xf6f7, 0xf8f9, 0xfafb, 0xfcfd, 0xfeff)
78	},
79	ResourceTemplate () {
80		WordSpace (0xca, ResourceConsumer, PosDecode, MinFixed, MaxNotFixed, 0xaa,
81			0xf6f7, 0xf8f9, 0xfafb, 0xfcfd, 0xfeff)
82	},
83	ResourceTemplate () {
84		WordSpace (0xcb, ResourceConsumer, PosDecode, MinFixed, MaxFixed, 0xba,
85			0xf6f7, 0xf8f9, 0xfafb, 0xfcfd, 0xfeff)
86	},
87	ResourceTemplate () {
88		WordSpace (0xcc, ResourceConsumer, SubDecode, MinNotFixed, MaxNotFixed, 0xca,
89			0xf6f7, 0xf8f9, 0xfafb, 0xfcfd, 0xfeff)
90	},
91	ResourceTemplate () {
92		WordSpace (0xcd, ResourceConsumer, SubDecode, MinNotFixed, MaxFixed, 0xda,
93			0xf6f7, 0xf8f9, 0xfafb, 0xfcfd, 0xfeff)
94	},
95	ResourceTemplate () {
96		WordSpace (0xce, ResourceConsumer, SubDecode, MinFixed, MaxNotFixed, 0xea,
97			0xf6f7, 0xf8f9, 0xfafb, 0xfcfd, 0xfeff)
98	},
99	ResourceTemplate () {
100		WordSpace (0xff, ResourceConsumer, SubDecode, MinFixed, MaxFixed, 0xfa,
101			0xf6f7, 0xf8f9, 0xfafb, 0xfcfd, 0xfeff)
102	},
103
104	// Byte 5 (Type Specific Flags) of Word Address Space Descriptor
105
106	ResourceTemplate () {
107		WordSpace (0xc0, , , , , 0x00,
108			0xf6f7, 0xf8f9, 0xfafb, 0xfcfd, 0xfeff)
109	},
110	ResourceTemplate () {
111		WordSpace (0xc0, , , , , 0xff,
112			0xf6f7, 0xf8f9, 0xfafb, 0xfcfd, 0xfeff)
113	},
114
115	// Particular cases
116
117	ResourceTemplate () {
118		WordSpace (0xc0, , , , , 0x5a,
119			0xf6f7, 0xf8f9, 0xfafb, 0xfcfd, 0xfeff,
120			 , )
121	},
122	ResourceTemplate () {
123		WordSpace (0xc0, , , , , 0x5a,
124			0xf6f7, 0xf8f9, 0xfafb, 0xfcfd, 0xfeff,
125			 , , )
126	},
127
128	// Resource Source
129
130	ResourceTemplate () {
131		WordSpace (0xc0, , , , , 0x5a,
132			0xf6f7, 0xf8f9, 0xfafb, 0xfcfd, 0xfeff,
133			0x01, "")
134	},
135	ResourceTemplate () {
136		WordSpace (0xc0, , , , , 0x5a,
137			0xf6f7, 0xf8f9, 0xfafb, 0xfcfd, 0xfeff,
138			0x0f, "P")
139	},
140	ResourceTemplate () {
141		WordSpace (0xc0, , , , , 0x5a,
142			0xf6f7, 0xf8f9, 0xfafb, 0xfcfd, 0xfeff,
143			0xf0, "PATH")
144	},
145	ResourceTemplate () {
146		WordSpace (0xc0, , , , , 0x5a,
147			0xf6f7, 0xf8f9, 0xfafb, 0xfcfd, 0xfeff,
148			0xff,
149			"!\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ !\"#$%&'()*",
150			)
151	},
152
153	// Particular cases
154
155	ResourceTemplate () {
156		WordSpace (0xc0, ResourceConsumer, SubDecode, MinFixed, MaxFixed, 0x5a,
157			0xf6f7, 0xf8f9, 0xfafb, 0xfcfd, 0xfeff,
158			0xff, "PATHPATHPATH", WSP0)
159	},
160	ResourceTemplate () {
161		WordSpace (0xc0, ResourceConsumer, SubDecode, MinFixed, MaxFixed, 0,
162			0, 0, 0, 0, 0,
163			0xff, "PATHPATHPATH", )
164	},
165
166	// 20051021, relaxation for omitted ResourceSource (bug-fix 70 rejection)
167	ResourceTemplate () {
168		WordSpace (0xc0, , , , , 0x5a,
169			0xf6f7, 0xf8f9, 0xfafb, 0xfcfd, 0xfeff,
170			0x0f)
171	},
172})
173
174/*
175ACPI Specification, Revision 3.0, September 2, 2004
1766.4.3.5.3   Word Address Space Descriptor
177
178Memory Word Address Space Descriptor layout:
179
180Byte 0 (Tag Bits): Value=10001000B (0x88) (Type = 1, Large item name = 0x8)
181Byte 1 (Length, bits[7:0]): Variable: Value = 13 (minimum)
182Byte 2 (Length, bits[15:8]): Variable: Value = 0 (minimum)
183Byte 3 (Resource Type):
184	192-255	Hardware Vendor Defined
185Byte 4 (General Flags):
186	Bits[7:4] 	Reserved (must be 0)
187	Bit[3] 		Min Address Fixed, _MAF:
188			1	The specified maximum address is fixed
189			0	The specified maximum address is not fixed
190				and can be changed
191	Bit[2] 		Max Address Fixed,_MIF:
192			1	The specified minimum address is fixed
193			0	The specified minimum address is not fixed
194				and can be changed
195	Bit[1] 		Decode Type, _DEC:
196			1	This bridge subtractively decodes this address
197	 	 	 	(top level bridges only)
198			0	This bridge positively decodes this address
199	Bit[0] 		Consumer/Producer:
200			1-This device consumes this resource
201			0-This device produces and consumes this resource
202Byte 5 (Type Specific Flags):
203		Flags that are specific to each resource type. The meaning of the flags
204		in this field depends on the value of the Resource Type field (see above)
205Byte 6 (Address space granularity, _GRA bits[7:0]):
206	A set bit in this mask means that this bit is decoded. All bits less
207	significant than the most significant set bit must be set. (in other
208	words, the value of the full Address Space Granularity field (all 16
209	bits) must be a number (2**n-1).
210Byte 7 (Address space granularity, _GRA bits[15:8])
211Byte 8 (Address range minimum, _MIN bits [7:0]):
212	For bridges that translate addresses, this is the address space
213	on the secondary side of the bridge
214Byte 9 (Address range minimum, _MIN bits[15:8])
215Byte 10 (Address range maximum, _MAX bits [7:0]): See comment for _MIN
216Byte 11 (Address range maximum, _MAX bits[15:8])
217Byte 12 (Address Translation offset, _TRA bits [7:0]):
218	For bridges that translate addresses across the bridge, this is the
219	offset that must be added to the address on the secondary side to obtain
220	the address on the primary side. Non-bridge devices must list 0 for all
221	Address Translation offset bits
222Byte 13 (Address Translation offset, _TRA bits[15:8])
223Byte 14 (Address Length, _LEN bits [7:0])
224Byte 15 (Address Length, _LEN bits[15:8])
225Byte 16 (Resource Source Index):
226	(Optional) Only present if Resource Source (below) is present. This
227	field gives an index to the specific resource descriptor that this
228	device consumes from in the current resource template for the device
229	object pointed to in Resource Source
230String (Resource Source):
231	(Optional) If present, the device that uses this descriptor consumes
232	its resources from the resources produced by the named device object.
233	If not present, the device consumes its resources out of a global pool.
234	If not present, the device consumes this resource from its hierarchical
235	parent.
236*/
237
238Name (p431, Package() {
239
240	// Byte 4 (General Flags) of Word Address Space Descriptor
241
242	Buffer () {0x88, 0x0d, 0x00, 0xc0, 0x00, 0x0a,
243		0xf7, 0xf6, 0xf9, 0xf8, 0xfb, 0xfa, 0xfd, 0xfc, 0xff, 0xfe, 0x79, 0x00},
244	Buffer () {0x88, 0x0d, 0x00, 0xc1, 0x08, 0x1a,
245		0xf7, 0xf6, 0xf9, 0xf8, 0xfb, 0xfa, 0xfd, 0xfc, 0xff, 0xfe, 0x79, 0x00},
246	Buffer () {0x88, 0x0d, 0x00, 0xc2, 0x04, 0x2a,
247		0xf7, 0xf6, 0xf9, 0xf8, 0xfb, 0xfa, 0xfd, 0xfc, 0xff, 0xfe, 0x79, 0x00},
248	Buffer () {0x88, 0x0d, 0x00, 0xc3, 0x0c, 0x3a,
249		0xf7, 0xf6, 0xf9, 0xf8, 0xfb, 0xfa, 0xfd, 0xfc, 0xff, 0xfe, 0x79, 0x00},
250	Buffer () {0x88, 0x0d, 0x00, 0xc4, 0x02, 0x4a,
251		0xf7, 0xf6, 0xf9, 0xf8, 0xfb, 0xfa, 0xfd, 0xfc, 0xff, 0xfe, 0x79, 0x00},
252	Buffer () {0x88, 0x0d, 0x00, 0xc5, 0x0a, 0x5a,
253		0xf7, 0xf6, 0xf9, 0xf8, 0xfb, 0xfa, 0xfd, 0xfc, 0xff, 0xfe, 0x79, 0x00},
254	Buffer () {0x88, 0x0d, 0x00, 0xc6, 0x06, 0x6a,
255		0xf7, 0xf6, 0xf9, 0xf8, 0xfb, 0xfa, 0xfd, 0xfc, 0xff, 0xfe, 0x79, 0x00},
256	Buffer () {0x88, 0x0d, 0x00, 0xc7, 0x0e, 0x7a,
257		0xf7, 0xf6, 0xf9, 0xf8, 0xfb, 0xfa, 0xfd, 0xfc, 0xff, 0xfe, 0x79, 0x00},
258	Buffer () {0x88, 0x0d, 0x00, 0xc8, 0x01, 0x8a,
259		0xf7, 0xf6, 0xf9, 0xf8, 0xfb, 0xfa, 0xfd, 0xfc, 0xff, 0xfe, 0x79, 0x00},
260	Buffer () {0x88, 0x0d, 0x00, 0xc9, 0x09, 0x9a,
261		0xf7, 0xf6, 0xf9, 0xf8, 0xfb, 0xfa, 0xfd, 0xfc, 0xff, 0xfe, 0x79, 0x00},
262	Buffer () {0x88, 0x0d, 0x00, 0xca, 0x05, 0xaa,
263		0xf7, 0xf6, 0xf9, 0xf8, 0xfb, 0xfa, 0xfd, 0xfc, 0xff, 0xfe, 0x79, 0x00},
264	Buffer () {0x88, 0x0d, 0x00, 0xcb, 0x0d, 0xba,
265		0xf7, 0xf6, 0xf9, 0xf8, 0xfb, 0xfa, 0xfd, 0xfc, 0xff, 0xfe, 0x79, 0x00},
266	Buffer () {0x88, 0x0d, 0x00, 0xcc, 0x03, 0xca,
267		0xf7, 0xf6, 0xf9, 0xf8, 0xfb, 0xfa, 0xfd, 0xfc, 0xff, 0xfe, 0x79, 0x00},
268	Buffer () {0x88, 0x0d, 0x00, 0xcd, 0x0b, 0xda,
269		0xf7, 0xf6, 0xf9, 0xf8, 0xfb, 0xfa, 0xfd, 0xfc, 0xff, 0xfe, 0x79, 0x00},
270	Buffer () {0x88, 0x0d, 0x00, 0xce, 0x07, 0xea,
271		0xf7, 0xf6, 0xf9, 0xf8, 0xfb, 0xfa, 0xfd, 0xfc, 0xff, 0xfe, 0x79, 0x00},
272	Buffer () {0x88, 0x0d, 0x00, 0xff, 0x0f, 0xfa,
273		0xf7, 0xf6, 0xf9, 0xf8, 0xfb, 0xfa, 0xfd, 0xfc, 0xff, 0xfe, 0x79, 0x00},
274
275	// Byte 5 (Type Specific Flags) of Word Address Space Descriptor
276
277	Buffer () {0x88, 0x0d, 0x00, 0xc0, 0x01, 0x00,
278		0xf7, 0xf6, 0xf9, 0xf8, 0xfb, 0xfa, 0xfd, 0xfc, 0xff, 0xfe, 0x79, 0x00},
279	Buffer () {0x88, 0x0d, 0x00, 0xc0, 0x01, 0xff,
280		0xf7, 0xf6, 0xf9, 0xf8, 0xfb, 0xfa, 0xfd, 0xfc, 0xff, 0xfe, 0x79, 0x00},
281
282	// Particular cases
283
284	Buffer () {0x88, 0x0d, 0x00, 0xc0, 0x01, 0x5a,
285		0xf7, 0xf6, 0xf9, 0xf8, 0xfb, 0xfa, 0xfd, 0xfc, 0xff, 0xfe, 0x79, 0x00},
286	Buffer () {0x88, 0x0d, 0x00, 0xc0, 0x01, 0x5a,
287		0xf7, 0xf6, 0xf9, 0xf8, 0xfb, 0xfa, 0xfd, 0xfc, 0xff, 0xfe, 0x79, 0x00},
288
289	// Resource Source
290
291	Buffer () {0x88, 0x0f, 0x00, 0xc0, 0x01, 0x5a,
292		0xf7, 0xf6, 0xf9, 0xf8, 0xfb, 0xfa, 0xfd, 0xfc, 0xff, 0xfe,
293		0x01, 0x00, 0x79, 0x00},
294	Buffer () {0x88, 0x10, 0x00, 0xc0, 0x01, 0x5a,
295		0xf7, 0xf6, 0xf9, 0xf8, 0xfb, 0xfa, 0xfd, 0xfc, 0xff, 0xfe,
296		0x0f, 0x50, 0x00, 0x79, 0x00},
297	Buffer () {0x88, 0x13, 0x00, 0xc0, 0x01, 0x5a,
298		0xf7, 0xf6, 0xf9, 0xf8, 0xfb, 0xfa, 0xfd, 0xfc, 0xff, 0xfe,
299		0xf0, 0x50, 0x41, 0x54, 0x48, 0x00, 0x79, 0x00},
300	Buffer () {0x88, 0xd7, 0x00, 0xc0, 0x01, 0x5a,
301		0xf7, 0xf6, 0xf9, 0xf8, 0xfb, 0xfa, 0xfd, 0xfc, 0xff, 0xfe,
302		0xff,
303		0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28,
304		0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30,
305		0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38,
306		0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, 0x40,
307		0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48,
308		0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50,
309		0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58,
310		0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, 0x60,
311		0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68,
312		0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70,
313		0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78,
314		0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x20, 0x21,
315		0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29,
316		0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30, 0x31,
317		0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39,
318		0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, 0x40, 0x41,
319		0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49,
320		0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51,
321		0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59,
322		0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, 0x60, 0x61,
323		0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69,
324		0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71,
325		0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79,
326		0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x20, 0x21, 0x22,
327		0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a,
328		0x00, 0x79, 0x00},
329
330	// Particular cases
331
332	Buffer () {0x88, 0x1b, 0x00, 0xc0, 0x0f, 0x5a,
333		0xf7, 0xf6, 0xf9, 0xf8, 0xfb, 0xfa, 0xfd, 0xfc, 0xff, 0xfe,
334		0xff, 0x50, 0x41, 0x54, 0x48, 0x50, 0x41, 0x54,
335		0x48, 0x50, 0x41, 0x54, 0x48, 0x00, 0x79, 0x00},
336	Buffer () {0x88, 0x1b, 0x00, 0xc0, 0x0f, 0x00,
337		0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
338		0xff, 0x50, 0x41, 0x54, 0x48, 0x50, 0x41, 0x54,
339		0x48, 0x50, 0x41, 0x54, 0x48, 0x00, 0x79, 0x00},
340
341	// 20051021, relaxation for omitted ResourceSource (bug-fix 70 rejection)
342	Buffer () {0x88, 0x0e, 0x00, 0xc0, 0x01, 0x5a,
343		0xf7, 0xf6, 0xf9, 0xf8, 0xfb, 0xfa, 0xfd, 0xfc, 0xff, 0xfe,
344		0x0f, 0x79, 0x00},
345})
346
347Method(RT16,, Serialized)
348{
349	Name(ts, "RT16")
350
351	// Emit test header, set the filename
352
353	THDR (ts, "WordSpace Resource Descriptor Macro", __FILE__)
354
355    // Main test case for packages above
356
357	m330(ts, 27, "p430", p430, p431)
358
359    // Check resource descriptor tag offsets
360
361	Store (
362		ResourceTemplate () {
363			WordSpace (0xc0, ResourceProducer, PosDecode, MinNotFixed, MaxNotFixed, 0x5a,
364				0xf6f7, 0xf8f9, 0xfafb, 0xfcfd, 0xfeff, , , WSP0)
365			WordSpace (0xc0, ResourceConsumer, PosDecode, MinNotFixed, MaxNotFixed, 0x5a,
366				0xf6f7, 0xf8f9, 0xfafb, 0xfcfd, 0xfeff, , , WSP1)
367		}, Local0)
368
369	m331(ts, 1,  WSP0._DEC, 0x21, WSP1._DEC, 0xa1, "_DEC")
370	m331(ts, 2,  WSP0._MIF, 0x22, WSP1._MIF, 0xa2, "_MIF")
371	m331(ts, 3,  WSP0._MAF, 0x23, WSP1._MAF, 0xa3, "_MAF")
372	m331(ts, 7,  WSP0._GRA, 0x30, WSP1._GRA, 0xB0, "_GRA")
373	m331(ts, 8,  WSP0._MIN, 0x40, WSP1._MIN, 0xC0, "_MIN")
374	m331(ts, 9,  WSP0._MAX, 0x50, WSP1._MAX, 0xD0, "_MAX")
375	m331(ts, 10, WSP0._TRA, 0x60, WSP1._TRA, 0xE0, "_TRA")
376	m331(ts, 11, WSP0._LEN, 0x70, WSP1._LEN, 0xF0, "_LEN")
377}
378