1/*
2 * Some or all of this work - Copyright (c) 2006 - 2021, 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// Resource Descriptor macros
30
31// For each Resource Descriptor Macro declaration
32// below Error/Warning is expected.
33
34// The same descriptor names, DN00, in the same scope
35Method(m400)
36{
37	Name(RT00,
38		ResourceTemplate () {
39			IRQ (Edge, ActiveLow, Shared, DN00) {}
40			IRQ (Edge, ActiveLow, Shared, DN00) {}
41		})
42	Name(RT01,
43		ResourceTemplate () {
44			DMA (Compatibility, NotBusMaster, Transfer8, DN00) {}
45			DMA (Compatibility, NotBusMaster, Transfer8, DN00) {}
46		})
47	Name(RT02,
48		ResourceTemplate () {
49			IO (Decode16, 0xf0f1, 0xf2f3, 0xf4, 0xf5, DN00)
50			IO (Decode16, 0xf0f1, 0xf2f3, 0xf4, 0xf5, DN00)
51		})
52	Name(RT03,
53		ResourceTemplate () {
54			Memory24 ( , 0x0000, 0xffff, 0x0001, 0xfffe, DN00)
55			Memory24 ( , 0x0000, 0xffff, 0x0001, 0xfffe, DN00)
56		})
57	Name(RT04,
58		ResourceTemplate () {
59			IO (Decode16, 0xf0f1, 0xf2f3, 0xf4, 0xf5, DN00)
60			IO (Decode16, 0xf0f1, 0xf2f3, 0xf4, 0xf5, DN00)
61		})
62}
63
64Method(m401)
65{
66	Name(RT00,
67		ResourceTemplate () {
68			DMA (Compatibility, NotBusMaster, Transfer8) {8}
69		})
70	Name(RT01,
71		ResourceTemplate () {
72			DMA (TypeA, NotBusMaster, Transfer8) {0, 0}
73		})
74}
75
76Method(m402)
77{
78	Name(RT00,
79		ResourceTemplate () {
80			DWordIO ( , , , , ,
81				0xecedeeef, 0xf0f1f2f3, 0xf4f5f6f7, 0xf8f9fafb, 0xfcfdfeff, 0x0f)
82		})
83	Name(RT01,
84		ResourceTemplate () {
85			DWordIO ( , , , , ,
86				0xecedeeef, 0xf0f1f2f3, 0xf4f5f6f7, 0xf8f9fafb, 0xfcfdfeff,, "PATHPATHPATH")
87		})
88}
89
90Method(m403)
91{
92	Name(RT00,
93		ResourceTemplate () {
94			DWordMemory ( , , , , , ,
95				0xecedeeef, 0xf0f1f2f3, 0xf4f5f6f7, 0xf8f9fafb, 0xfcfdfeff, 0x0f)
96		})
97	Name(RT01,
98		ResourceTemplate () {
99			DWordMemory ( , , , , , ,
100				0xecedeeef, 0xf0f1f2f3, 0xf4f5f6f7, 0xf8f9fafb, 0xfcfdfeff,, "PATHPATHPATH")
101		})
102}
103
104Method(m404)
105{
106	Name(RT00,
107		ResourceTemplate () {
108			DWordSpace (0xc0, , , , , 0x5a,
109				0xecedeeef, 0xf0f1f2f3, 0xf4f5f6f7, 0xf8f9fafb, 0xfcfdfeff, 0x0f)
110		})
111	Name(RT01,
112		ResourceTemplate () {
113			DWordSpace (0xc0, , , , , 0x5a,
114				0xecedeeef, 0xf0f1f2f3, 0xf4f5f6f7, 0xf8f9fafb, 0xfcfdfeff,, "PATHPATHPATH")
115		})
116}
117
118Method(m405)
119{
120	Name(RT00,
121		ResourceTemplate () {
122			Interrupt (ResourceConsumer, Edge, ActiveLow, Shared, 0x0f)
123				{0xfcfdfeff}
124		})
125	Name(RT01,
126		ResourceTemplate () {
127			Interrupt (ResourceConsumer, Edge, ActiveLow, Shared,, "PATHPATHPATH")
128				{0xfcfdfeff}
129		})
130	Name(RT02,
131		ResourceTemplate () {
132			Interrupt (ResourceConsumer, Edge, ActiveLow, Shared) {9, 9}
133		})
134	Name(RT03,
135		ResourceTemplate () {
136			Interrupt (ResourceConsumer, Edge, ActiveLow, Shared) {
137				  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15, 16,
138				 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
139				 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
140				 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
141				 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
142				 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96,
143				 97, 98, 99,100,101,102,103,104,105,106,107,108,109,110,111,112,
144				113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,
145				129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,
146				145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,
147				161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,
148				177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,
149				193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,
150				209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,
151				225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,
152				241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256}
153		})
154}
155
156Method(m406)
157{
158	Name(RT00,
159		ResourceTemplate () {
160			IRQ (Edge, ActiveLow, Shared) {16}
161		})
162	Name(RT01,
163		ResourceTemplate () {
164			IRQ (Level, ActiveLow, Shared) {9, 9}
165		})
166}
167
168Method(m407)
169{
170	Name(RT00,
171		ResourceTemplate () {
172			IRQNoFlags () {16}
173		})
174	Name(RT01,
175		ResourceTemplate () {
176			IRQNoFlags () {9, 9}
177		})
178}
179
180Method(m408)
181{
182	Name(RT00,
183		ResourceTemplate () {
184			QWordIO ( , , , , ,
185				0xd8d9dadbdcdddedf, 0xe0e1e2e3e4e5e6e7, 0xe8e9eaebecedeeef,
186				0xf0f1f2f3f4f5f6f7, 0xf8f9fafbfcfdfeff, 0x0f)
187		})
188	Name(RT01,
189		ResourceTemplate () {
190			QWordIO ( , , , , ,
191				0xd8d9dadbdcdddedf, 0xe0e1e2e3e4e5e6e7, 0xe8e9eaebecedeeef,
192				0xf0f1f2f3f4f5f6f7, 0xf8f9fafbfcfdfeff,, "PATHPATHPATH")
193		})
194}
195
196Method(m409)
197{
198	Name(RT00,
199		ResourceTemplate () {
200			QWordMemory ( , , , , , ,
201				0xd8d9dadbdcdddedf, 0xe0e1e2e3e4e5e6e7, 0xe8e9eaebecedeeef,
202				0xf0f1f2f3f4f5f6f7, 0xf8f9fafbfcfdfeff, 0x0f)
203		})
204	Name(RT01,
205		ResourceTemplate () {
206			QWordMemory ( , , , , , ,
207				0xd8d9dadbdcdddedf, 0xe0e1e2e3e4e5e6e7, 0xe8e9eaebecedeeef,
208				0xf0f1f2f3f4f5f6f7, 0xf8f9fafbfcfdfeff,, "PATHPATHPATH")
209		})
210}
211
212Method(m40a)
213{
214	Name(RT00,
215		ResourceTemplate () {
216			QWordSpace (0xc0, , , , , 0x5a,
217				0xd8d9dadbdcdddedf, 0xe0e1e2e3e4e5e6e7, 0xe8e9eaebecedeeef,
218				0xf0f1f2f3f4f5f6f7, 0xf8f9fafbfcfdfeff, 0x0f)
219		})
220	Name(RT01,
221		ResourceTemplate () {
222			QWordSpace (0xc0, , , , , 0x5a,
223				0xd8d9dadbdcdddedf, 0xe0e1e2e3e4e5e6e7, 0xe8e9eaebecedeeef,
224				0xf0f1f2f3f4f5f6f7, 0xf8f9fafbfcfdfeff,, "PATHPATHPATH")
225		})
226}
227
228Method(m40b)
229{
230	Name(RT00,
231		ResourceTemplate () {
232			Register (SystemMemory, 0xf0, 0xf1, 0xf2f3f4f5f6f7f8f9, 5)
233		})
234}
235
236Method(m40c)
237{
238	Name(RT00,
239		ResourceTemplate () {
240			VendorShort () {0x00, 0x81, 0xa2, 0xb3, 0x76, 0xd5, 0xe6, 0xf7}
241		})
242	Name(RT01,
243		ResourceTemplate () {
244			VendorShort (VS00) {0x00, 0xa2, 0xb3, 0x76, 0xd5, 0xe6, 0xf7}
245		})
246}
247
248Method(m40d)
249{
250	Name(RT00,
251		ResourceTemplate () {
252			WordBusNumber ( , , , ,
253				0xf6f7, 0xf8f9, 0xfafb, 0xfcfd, 0xfeff, 0x0f)
254		})
255	Name(RT01,
256		ResourceTemplate () {
257			WordBusNumber ( , , , ,
258				0xf6f7, 0xf8f9, 0xfafb, 0xfcfd, 0xfeff,, "PATHPATHPATH")
259		})
260}
261
262Method(m40e)
263{
264	Name(RT00,
265		ResourceTemplate () {
266			WordIO ( , , , , ,
267				0xf6f7, 0xf8f9, 0xfafb, 0xfcfd, 0xfeff, 0x0f)
268		})
269	Name(RT01,
270		ResourceTemplate () {
271			WordIO ( , , , , ,
272				0xf6f7, 0xf8f9, 0xfafb, 0xfcfd, 0xfeff,, "PATHPATHPATH")
273		})
274}
275
276Method(m40f)
277{
278	Name(RT00,
279		ResourceTemplate () {
280			WordSpace (0xc0, , , , , 0x5a,
281				0xf6f7, 0xf8f9, 0xfafb, 0xfcfd, 0xfeff, 0x0f)
282		})
283	Name(RT01,
284		ResourceTemplate () {
285			WordSpace (0xc0, , , , , 0x5a,
286				0xf6f7, 0xf8f9, 0xfafb, 0xfcfd, 0xfeff,, "PATHPATHPATH")
287		})
288}
289
290// An example to provoke message:
291// "nsaccess-0713: *** Warning: NsLookup: Type mismatch on
292// M40f (Method), searching for (ResourceDesc)".
293// Expect a compiler error because the Descriptorname M40f and
294// the Method m40f are defined on the same scope.
295Name(M410,
296	ResourceTemplate () {
297		DMA (Compatibility, NotBusMaster, Transfer8, M40f) {0}
298})
299