Dsdt.asl 31 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821
  1. /** @file
  2. Contains root level name space objects for the platform
  3. Copyright (c) 2019 - 2023 Intel Corporation. All rights reserved. <BR>
  4. SPDX-License-Identifier: BSD-2-Clause-Patent
  5. **/
  6. DefinitionBlock ("Dsdt.aml", "DSDT", 1, "INTEL ", "SIMICS ", 4) {
  7. //
  8. // System Sleep States
  9. //
  10. Name (\_S3, Package () {5, 5, 0, 0})
  11. Name (\_S4, Package () {6, 6, 0, 0})
  12. Name (\_S5, Package () {7, 7, 0, 0})
  13. Name (GPIC, Zero)
  14. Method (_PIC, 1, NotSerialized) // _PIC: Interrupt Model
  15. {
  16. GPIC = Arg0
  17. }
  18. //
  19. // System Bus
  20. //
  21. Scope (\_SB) {
  22. //
  23. // PCI Root Bridge
  24. //
  25. Device (PCI0) {
  26. Name (_HID, EISAID ("PNP0A03"))
  27. Name (_ADR, 0x00000000)
  28. Name (_BBN, 0x00)
  29. Name (_UID, 0x00)
  30. // Current resource settings
  31. Name (_CRS, ResourceTemplate () {
  32. WORDBusNumber ( // Bus number resource (0); the bridge produces bus numbers for its subsequent buses
  33. ResourceProducer, // bit 0 of general flags is 1
  34. MinFixed, // Range is fixed
  35. MaxFixed, // Range is fixed
  36. PosDecode, // PosDecode
  37. 0x0000, // Granularity
  38. 0x0000, // Min
  39. 0x00FF, // Max
  40. 0x0000, // Translation
  41. 0x0100 // Range Length = Max-Min+1
  42. )
  43. IO (Decode16, 0xCF8, 0xCF8, 0x01, 0x08) //Consumed resource (0xCF8-0xCFF)
  44. WORDIO ( // Consumed-and-produced resource (all I/O below CF8)
  45. ResourceProducer, // bit 0 of general flags is 0
  46. MinFixed, // Range is fixed
  47. MaxFixed, // Range is fixed
  48. PosDecode,
  49. EntireRange,
  50. 0x0000, // Granularity
  51. 0x0000, // Min
  52. 0x0CF7, // Max
  53. 0x0000, // Translation
  54. 0x0CF8 // Range Length
  55. )
  56. WORDIO ( // Consumed-and-produced resource (all I/O above CFF)
  57. ResourceProducer, // bit 0 of general flags is 0
  58. MinFixed, // Range is fixed
  59. MaxFixed, // Range is fixed
  60. PosDecode,
  61. EntireRange,
  62. 0x0000, // Granularity
  63. 0x0D00, // Min
  64. 0xFFFF, // Max
  65. 0x0000, // Translation
  66. 0xF300 // Range Length
  67. )
  68. DWORDMEMORY ( // Descriptor for legacy VGA video RAM
  69. ResourceProducer, // bit 0 of general flags is 0
  70. PosDecode,
  71. MinFixed, // Range is fixed
  72. MaxFixed, // Range is Fixed
  73. Cacheable,
  74. ReadWrite,
  75. 0x00000000, // Granularity
  76. 0x000A0000, // Min
  77. 0x000BFFFF, // Max
  78. 0x00000000, // Translation
  79. 0x00020000 // Range Length
  80. )
  81. DWORDMEMORY ( // Descriptor for 32-bit MMIO
  82. ResourceProducer, // bit 0 of general flags is 0
  83. PosDecode,
  84. MinFixed, // Range is fixed
  85. MaxFixed, // Range is Fixed
  86. NonCacheable,
  87. ReadWrite,
  88. 0x00000000, // Granularity
  89. 0xF0000000, // Min
  90. 0xFBFFFFFF, // Max
  91. 0x00000000, // Translation
  92. 0x0C000000, // Range Length
  93. , // ResourceSourceIndex
  94. , // ResourceSource
  95. PW32 // DescriptorName
  96. )
  97. })
  98. //
  99. // PCI Interrupt Routing Table - PIC Mode Only
  100. //
  101. // If you change the IRQ mapping here you also need
  102. // to change the mapping in the south bridge
  103. // (pci-conf.py) and in the BIOS.
  104. // INTA -> 0xa (10)
  105. // INTB -> 0xb (11)
  106. // INTC -> 0xa (10)
  107. // INTD -> 0xb (11)
  108. Method (_PRT, 0, NotSerialized) {
  109. If (GPIC) {
  110. Return (AR00) // APIC Mode
  111. }
  112. Return (PR00) // PIC Mode
  113. }
  114. Name (PR00, Package(){
  115. Package () {0x000FFFF, 0x00, \_SB.PCI0.LPC.LNKA, 0x00},
  116. Package () {0x000FFFF, 0x01, \_SB.PCI0.LPC.LNKB, 0x00},
  117. Package () {0x000FFFF, 0x02, \_SB.PCI0.LPC.LNKC, 0x00},
  118. Package () {0x000FFFF, 0x03, \_SB.PCI0.LPC.LNKD, 0x00},
  119. //
  120. // Bus 0, Device 1
  121. //
  122. Package () {0x0001FFFF, 0x00, \_SB.PCI0.LPC.LNKA, 0x00},
  123. Package () {0x0001FFFF, 0x01, \_SB.PCI0.LPC.LNKB, 0x00},
  124. Package () {0x0001FFFF, 0x02, \_SB.PCI0.LPC.LNKC, 0x00},
  125. Package () {0x0001FFFF, 0x03, \_SB.PCI0.LPC.LNKD, 0x00},
  126. Package () {0x0002FFFF, 0x00, \_SB.PCI0.LPC.LNKA, 0x00},
  127. Package () {0x0002FFFF, 0x01, \_SB.PCI0.LPC.LNKB, 0x00},
  128. Package () {0x0002FFFF, 0x02, \_SB.PCI0.LPC.LNKC, 0x00},
  129. Package () {0x0002FFFF, 0x03, \_SB.PCI0.LPC.LNKD, 0x00},
  130. //
  131. // Bus 0, Device 3
  132. //
  133. Package () {0x0003FFFF, 0x00, \_SB.PCI0.LPC.LNKA, 0x00},
  134. Package () {0x0003FFFF, 0x01, \_SB.PCI0.LPC.LNKB, 0x00},
  135. Package () {0x0003FFFF, 0x02, \_SB.PCI0.LPC.LNKC, 0x00},
  136. Package () {0x0003FFFF, 0x03, \_SB.PCI0.LPC.LNKD, 0x00},
  137. Package () {0x0004FFFF, 0x00, \_SB.PCI0.LPC.LNKA, 0x00},
  138. Package () {0x0004FFFF, 0x01, \_SB.PCI0.LPC.LNKB, 0x00},
  139. Package () {0x0004FFFF, 0x02, \_SB.PCI0.LPC.LNKC, 0x00},
  140. Package () {0x0004FFFF, 0x03, \_SB.PCI0.LPC.LNKD, 0x00},
  141. Package () {0x0005FFFF, 0x00, \_SB.PCI0.LPC.LNKA, 0x00},
  142. Package () {0x0005FFFF, 0x01, \_SB.PCI0.LPC.LNKB, 0x00},
  143. Package () {0x0005FFFF, 0x02, \_SB.PCI0.LPC.LNKC, 0x00},
  144. Package () {0x0005FFFF, 0x03, \_SB.PCI0.LPC.LNKD, 0x00},
  145. Package () {0x0006FFFF, 0x00, \_SB.PCI0.LPC.LNKA, 0x00},
  146. Package () {0x0006FFFF, 0x01, \_SB.PCI0.LPC.LNKB, 0x00},
  147. Package () {0x0006FFFF, 0x02, \_SB.PCI0.LPC.LNKC, 0x00},
  148. Package () {0x0006FFFF, 0x03, \_SB.PCI0.LPC.LNKD, 0x00},
  149. Package () {0x0007FFFF, 0x00, \_SB.PCI0.LPC.LNKA, 0x00},
  150. Package () {0x0007FFFF, 0x01, \_SB.PCI0.LPC.LNKB, 0x00},
  151. Package () {0x0007FFFF, 0x02, \_SB.PCI0.LPC.LNKC, 0x00},
  152. Package () {0x0007FFFF, 0x03, \_SB.PCI0.LPC.LNKD, 0x00},
  153. Package () {0x0008FFFF, 0x00, \_SB.PCI0.LPC.LNKA, 0x00},
  154. Package () {0x0008FFFF, 0x01, \_SB.PCI0.LPC.LNKB, 0x00},
  155. Package () {0x0008FFFF, 0x02, \_SB.PCI0.LPC.LNKC, 0x00},
  156. Package () {0x0008FFFF, 0x03, \_SB.PCI0.LPC.LNKD, 0x00},
  157. Package () {0x0009FFFF, 0x00, \_SB.PCI0.LPC.LNKA, 0x00},
  158. Package () {0x0009FFFF, 0x01, \_SB.PCI0.LPC.LNKB, 0x00},
  159. Package () {0x0009FFFF, 0x02, \_SB.PCI0.LPC.LNKC, 0x00},
  160. Package () {0x0009FFFF, 0x03, \_SB.PCI0.LPC.LNKD, 0x00},
  161. Package () {0x000AFFFF, 0x00, \_SB.PCI0.LPC.LNKA, 0x00},
  162. Package () {0x000AFFFF, 0x01, \_SB.PCI0.LPC.LNKB, 0x00},
  163. Package () {0x000AFFFF, 0x02, \_SB.PCI0.LPC.LNKC, 0x00},
  164. Package () {0x000AFFFF, 0x03, \_SB.PCI0.LPC.LNKD, 0x00},
  165. Package () {0x000BFFFF, 0x00, \_SB.PCI0.LPC.LNKA, 0x00},
  166. Package () {0x000BFFFF, 0x01, \_SB.PCI0.LPC.LNKB, 0x00},
  167. Package () {0x000BFFFF, 0x02, \_SB.PCI0.LPC.LNKC, 0x00},
  168. Package () {0x000BFFFF, 0x03, \_SB.PCI0.LPC.LNKD, 0x00},
  169. Package () {0x000CFFFF, 0x00, \_SB.PCI0.LPC.LNKA, 0x00},
  170. Package () {0x000CFFFF, 0x01, \_SB.PCI0.LPC.LNKB, 0x00},
  171. Package () {0x000CFFFF, 0x02, \_SB.PCI0.LPC.LNKC, 0x00},
  172. Package () {0x000CFFFF, 0x03, \_SB.PCI0.LPC.LNKD, 0x00},
  173. Package () {0x000DFFFF, 0x00, \_SB.PCI0.LPC.LNKA, 0x00},
  174. Package () {0x000DFFFF, 0x01, \_SB.PCI0.LPC.LNKB, 0x00},
  175. Package () {0x000DFFFF, 0x02, \_SB.PCI0.LPC.LNKC, 0x00},
  176. Package () {0x000DFFFF, 0x03, \_SB.PCI0.LPC.LNKD, 0x00},
  177. Package () {0x000EFFFF, 0x00, \_SB.PCI0.LPC.LNKA, 0x00},
  178. Package () {0x000EFFFF, 0x01, \_SB.PCI0.LPC.LNKB, 0x00},
  179. Package () {0x000EFFFF, 0x02, \_SB.PCI0.LPC.LNKC, 0x00},
  180. Package () {0x000EFFFF, 0x03, \_SB.PCI0.LPC.LNKD, 0x00},
  181. Package () {0x000FFFFF, 0x00, \_SB.PCI0.LPC.LNKA, 0x00},
  182. Package () {0x000FFFFF, 0x01, \_SB.PCI0.LPC.LNKB, 0x00},
  183. Package () {0x000FFFFF, 0x02, \_SB.PCI0.LPC.LNKC, 0x00},
  184. Package () {0x000FFFFF, 0x03, \_SB.PCI0.LPC.LNKD, 0x00},
  185. Package () {0x00010FFFF, 0x00, \_SB.PCI0.LPC.LNKA, 0x00},
  186. Package () {0x00010FFFF, 0x01, \_SB.PCI0.LPC.LNKB, 0x00},
  187. Package () {0x00010FFFF, 0x02, \_SB.PCI0.LPC.LNKC, 0x00},
  188. Package () {0x00010FFFF, 0x03, \_SB.PCI0.LPC.LNKD, 0x00},
  189. Package () {0x00011FFFF, 0x00, \_SB.PCI0.LPC.LNKA, 0x00},
  190. Package () {0x00011FFFF, 0x01, \_SB.PCI0.LPC.LNKB, 0x00},
  191. Package () {0x00011FFFF, 0x02, \_SB.PCI0.LPC.LNKC, 0x00},
  192. Package () {0x00011FFFF, 0x03, \_SB.PCI0.LPC.LNKD, 0x00},
  193. Package () {0x00012FFFF, 0x00, \_SB.PCI0.LPC.LNKA, 0x00},
  194. Package () {0x00012FFFF, 0x01, \_SB.PCI0.LPC.LNKB, 0x00},
  195. Package () {0x00012FFFF, 0x02, \_SB.PCI0.LPC.LNKC, 0x00},
  196. Package () {0x00012FFFF, 0x03, \_SB.PCI0.LPC.LNKD, 0x00},
  197. Package () {0x00013FFFF, 0x00, \_SB.PCI0.LPC.LNKA, 0x00},
  198. Package () {0x00013FFFF, 0x01, \_SB.PCI0.LPC.LNKB, 0x00},
  199. Package () {0x00013FFFF, 0x02, \_SB.PCI0.LPC.LNKC, 0x00},
  200. Package () {0x00013FFFF, 0x03, \_SB.PCI0.LPC.LNKD, 0x00},
  201. Package () {0x00014FFFF, 0x00, \_SB.PCI0.LPC.LNKA, 0x00},
  202. Package () {0x00014FFFF, 0x01, \_SB.PCI0.LPC.LNKB, 0x00},
  203. Package () {0x00014FFFF, 0x02, \_SB.PCI0.LPC.LNKC, 0x00},
  204. Package () {0x00014FFFF, 0x03, \_SB.PCI0.LPC.LNKD, 0x00},
  205. Package () {0x00015FFFF, 0x00, \_SB.PCI0.LPC.LNKA, 0x00},
  206. Package () {0x00015FFFF, 0x01, \_SB.PCI0.LPC.LNKB, 0x00},
  207. Package () {0x00015FFFF, 0x02, \_SB.PCI0.LPC.LNKC, 0x00},
  208. Package () {0x00015FFFF, 0x03, \_SB.PCI0.LPC.LNKD, 0x00},
  209. Package () {0x00016FFFF, 0x00, \_SB.PCI0.LPC.LNKA, 0x00},
  210. Package () {0x00016FFFF, 0x01, \_SB.PCI0.LPC.LNKB, 0x00},
  211. Package () {0x00016FFFF, 0x02, \_SB.PCI0.LPC.LNKC, 0x00},
  212. Package () {0x00016FFFF, 0x03, \_SB.PCI0.LPC.LNKD, 0x00},
  213. Package () {0x00017FFFF, 0x00, \_SB.PCI0.LPC.LNKA, 0x00},
  214. Package () {0x00017FFFF, 0x01, \_SB.PCI0.LPC.LNKB, 0x00},
  215. Package () {0x00017FFFF, 0x02, \_SB.PCI0.LPC.LNKC, 0x00},
  216. Package () {0x00017FFFF, 0x03, \_SB.PCI0.LPC.LNKD, 0x00},
  217. Package () {0x00018FFFF, 0x00, \_SB.PCI0.LPC.LNKA, 0x00},
  218. Package () {0x00018FFFF, 0x01, \_SB.PCI0.LPC.LNKB, 0x00},
  219. Package () {0x00018FFFF, 0x02, \_SB.PCI0.LPC.LNKC, 0x00},
  220. Package () {0x00018FFFF, 0x03, \_SB.PCI0.LPC.LNKD, 0x00},
  221. Package () {0x0001EFFFF, 0x00, \_SB.PCI0.LPC.LNKA, 0x00},
  222. Package () {0x0001EFFFF, 0x01, \_SB.PCI0.LPC.LNKB, 0x00},
  223. Package () {0x0001EFFFF, 0x02, \_SB.PCI0.LPC.LNKC, 0x00},
  224. Package () {0x0001EFFFF, 0x03, \_SB.PCI0.LPC.LNKD, 0x00},
  225. Package () {0x00019FFFF, 0x00, \_SB.PCI0.LPC.LNKA, 0x00},
  226. Package () {0x00019FFFF, 0x01, \_SB.PCI0.LPC.LNKB, 0x00},
  227. Package () {0x00019FFFF, 0x02, \_SB.PCI0.LPC.LNKC, 0x00},
  228. Package () {0x00019FFFF, 0x03, \_SB.PCI0.LPC.LNKD, 0x00},
  229. Package () {0x0001AFFFF, 0x00, \_SB.PCI0.LPC.LNKA, 0x00},
  230. Package () {0x0001AFFFF, 0x01, \_SB.PCI0.LPC.LNKB, 0x00},
  231. Package () {0x0001AFFFF, 0x02, \_SB.PCI0.LPC.LNKC, 0x00},
  232. Package () {0x0001AFFFF, 0x03, \_SB.PCI0.LPC.LNKD, 0x00},
  233. Package () {0x0001BFFFF, 0x00, \_SB.PCI0.LPC.LNKA, 0x00},
  234. Package () {0x0001BFFFF, 0x01, \_SB.PCI0.LPC.LNKB, 0x00},
  235. Package () {0x0001BFFFF, 0x02, \_SB.PCI0.LPC.LNKC, 0x00},
  236. Package () {0x0001BFFFF, 0x03, \_SB.PCI0.LPC.LNKD, 0x00},
  237. Package () {0x0001CFFFF, 0x00, \_SB.PCI0.LPC.LNKA, 0x00},
  238. Package () {0x0001CFFFF, 0x01, \_SB.PCI0.LPC.LNKB, 0x00},
  239. Package () {0x0001CFFFF, 0x02, \_SB.PCI0.LPC.LNKC, 0x00},
  240. Package () {0x0001CFFFF, 0x03, \_SB.PCI0.LPC.LNKD, 0x00},
  241. Package () {0x0001DFFFF, 0x00, \_SB.PCI0.LPC.LNKA, 0x00},
  242. Package () {0x0001DFFFF, 0x01, \_SB.PCI0.LPC.LNKB, 0x00},
  243. Package () {0x0001DFFFF, 0x02, \_SB.PCI0.LPC.LNKC, 0x00},
  244. Package () {0x0001DFFFF, 0x03, \_SB.PCI0.LPC.LNKD, 0x00},
  245. Package () {0x0001FFFFF, 0x00, \_SB.PCI0.LPC.LNKA, 0x00},
  246. Package () {0x0001FFFFF, 0x01, \_SB.PCI0.LPC.LNKB, 0x00},
  247. Package () {0x0001FFFFF, 0x02, \_SB.PCI0.LPC.LNKC, 0x00},
  248. Package () {0x0001FFFFF, 0x03, \_SB.PCI0.LPC.LNKD, 0x00},
  249. }
  250. )
  251. Name(AR00, Package(){
  252. Package () {0x000FFFF, 0x00, 0, 16},
  253. Package () {0x000FFFF, 0x01, 0, 17},
  254. Package () {0x000FFFF, 0x02, 0, 18},
  255. Package () {0x000FFFF, 0x03, 0, 19},
  256. //
  257. // Bus 0, Device 1
  258. //
  259. Package () {0x0001FFFF, 0x00, 0, 16},
  260. Package () {0x0001FFFF, 0x01, 0, 17},
  261. Package () {0x0001FFFF, 0x02, 0, 18},
  262. Package () {0x0001FFFF, 0x03, 0, 19},
  263. Package () {0x0002FFFF, 0x00, 0, 16},
  264. Package () {0x0002FFFF, 0x01, 0, 17},
  265. Package () {0x0002FFFF, 0x02, 0, 18},
  266. Package () {0x0002FFFF, 0x03, 0, 19},
  267. //
  268. // Bus 0, Device 3
  269. //
  270. Package () {0x0003FFFF, 0x00, 0, 16},
  271. Package () {0x0003FFFF, 0x01, 0, 17},
  272. Package () {0x0003FFFF, 0x02, 0, 18},
  273. Package () {0x0003FFFF, 0x03, 0, 19},
  274. Package () {0x0004FFFF, 0x00, 0, 16},
  275. Package () {0x0004FFFF, 0x01, 0, 17},
  276. Package () {0x0004FFFF, 0x02, 0, 18},
  277. Package () {0x0004FFFF, 0x03, 0, 19},
  278. Package () {0x0005FFFF, 0x00, 0, 16},
  279. Package () {0x0005FFFF, 0x01, 0, 17},
  280. Package () {0x0005FFFF, 0x02, 0, 18},
  281. Package () {0x0005FFFF, 0x03, 0, 19},
  282. Package () {0x0006FFFF, 0x00, 0, 16},
  283. Package () {0x0006FFFF, 0x01, 0, 17},
  284. Package () {0x0006FFFF, 0x02, 0, 18},
  285. Package () {0x0006FFFF, 0x03, 0, 19},
  286. Package () {0x0007FFFF, 0x00, 0, 16},
  287. Package () {0x0007FFFF, 0x01, 0, 17},
  288. Package () {0x0007FFFF, 0x02, 0, 18},
  289. Package () {0x0007FFFF, 0x03, 0, 19},
  290. Package () {0x0008FFFF, 0x00, 0, 16},
  291. Package () {0x0008FFFF, 0x01, 0, 17},
  292. Package () {0x0008FFFF, 0x02, 0, 18},
  293. Package () {0x0008FFFF, 0x03, 0, 19},
  294. Package () {0x0009FFFF, 0x00, 0, 16},
  295. Package () {0x0009FFFF, 0x01, 0, 17},
  296. Package () {0x0009FFFF, 0x02, 0, 18},
  297. Package () {0x0009FFFF, 0x03, 0, 19},
  298. Package () {0x000AFFFF, 0x00, 0, 16},
  299. Package () {0x000AFFFF, 0x01, 0, 17},
  300. Package () {0x000AFFFF, 0x02, 0, 18},
  301. Package () {0x000AFFFF, 0x03, 0, 19},
  302. Package () {0x000BFFFF, 0x00, 0, 16},
  303. Package () {0x000BFFFF, 0x01, 0, 17},
  304. Package () {0x000BFFFF, 0x02, 0, 18},
  305. Package () {0x000BFFFF, 0x03, 0, 19},
  306. Package () {0x000CFFFF, 0x00, 0, 16},
  307. Package () {0x000CFFFF, 0x01, 0, 17},
  308. Package () {0x000CFFFF, 0x02, 0, 18},
  309. Package () {0x000CFFFF, 0x03, 0, 19},
  310. Package () {0x000DFFFF, 0x00, 0, 16},
  311. Package () {0x000DFFFF, 0x01, 0, 17},
  312. Package () {0x000DFFFF, 0x02, 0, 18},
  313. Package () {0x000DFFFF, 0x03, 0, 19},
  314. Package () {0x000EFFFF, 0x00, 0, 16},
  315. Package () {0x000EFFFF, 0x01, 0, 17},
  316. Package () {0x000EFFFF, 0x02, 0, 18},
  317. Package () {0x000EFFFF, 0x03, 0, 19},
  318. Package () {0x000FFFFF, 0x00, 0, 16},
  319. Package () {0x000FFFFF, 0x01, 0, 17},
  320. Package () {0x000FFFFF, 0x02, 0, 18},
  321. Package () {0x000FFFFF, 0x03, 0, 19},
  322. Package () {0x00010FFFF, 0x00, 0, 16},
  323. Package () {0x00010FFFF, 0x01, 0, 17},
  324. Package () {0x00010FFFF, 0x02, 0, 18},
  325. Package () {0x00010FFFF, 0x03, 0, 19},
  326. Package () {0x00011FFFF, 0x00, 0, 16},
  327. Package () {0x00011FFFF, 0x01, 0, 17},
  328. Package () {0x00011FFFF, 0x02, 0, 18},
  329. Package () {0x00011FFFF, 0x03, 0, 19},
  330. Package () {0x00012FFFF, 0x00, 0, 16},
  331. Package () {0x00012FFFF, 0x01, 0, 17},
  332. Package () {0x00012FFFF, 0x02, 0, 18},
  333. Package () {0x00012FFFF, 0x03, 0, 19},
  334. Package () {0x00013FFFF, 0x00, 0, 16},
  335. Package () {0x00013FFFF, 0x01, 0, 17},
  336. Package () {0x00013FFFF, 0x02, 0, 18},
  337. Package () {0x00013FFFF, 0x03, 0, 19},
  338. Package () {0x00014FFFF, 0x00, 0, 16},
  339. Package () {0x00014FFFF, 0x01, 0, 17},
  340. Package () {0x00014FFFF, 0x02, 0, 18},
  341. Package () {0x00014FFFF, 0x03, 0, 19},
  342. Package () {0x00015FFFF, 0x00, 0, 16},
  343. Package () {0x00015FFFF, 0x01, 0, 17},
  344. Package () {0x00015FFFF, 0x02, 0, 18},
  345. Package () {0x00015FFFF, 0x03, 0, 19},
  346. Package () {0x00016FFFF, 0x00, 0, 16},
  347. Package () {0x00016FFFF, 0x01, 0, 17},
  348. Package () {0x00016FFFF, 0x02, 0, 18},
  349. Package () {0x00016FFFF, 0x03, 0, 19},
  350. Package () {0x00017FFFF, 0x00, 0, 16},
  351. Package () {0x00017FFFF, 0x01, 0, 17},
  352. Package () {0x00017FFFF, 0x02, 0, 18},
  353. Package () {0x00017FFFF, 0x03, 0, 19},
  354. Package () {0x00018FFFF, 0x00, 0, 16},
  355. Package () {0x00018FFFF, 0x01, 0, 17},
  356. Package () {0x00018FFFF, 0x02, 0, 18},
  357. Package () {0x00018FFFF, 0x03, 0, 19},
  358. Package () {0x0001EFFFF, 0x00, 0, 16},
  359. Package () {0x0001EFFFF, 0x01, 0, 17},
  360. Package () {0x0001EFFFF, 0x02, 0, 18},
  361. Package () {0x0001EFFFF, 0x03, 0, 19},
  362. Package () {0x00019FFFF, 0x00, 0, 16},
  363. Package () {0x00019FFFF, 0x01, 0, 17},
  364. Package () {0x00019FFFF, 0x02, 0, 18},
  365. Package () {0x00019FFFF, 0x03, 0, 19},
  366. Package () {0x0001AFFFF, 0x00, 0, 16},
  367. Package () {0x0001AFFFF, 0x01, 0, 17},
  368. Package () {0x0001AFFFF, 0x02, 0, 18},
  369. Package () {0x0001AFFFF, 0x03, 0, 19},
  370. Package () {0x0001BFFFF, 0x00, 0, 16},
  371. Package () {0x0001BFFFF, 0x01, 0, 17},
  372. Package () {0x0001BFFFF, 0x02, 0, 18},
  373. Package () {0x0001BFFFF, 0x03, 0, 19},
  374. Package () {0x0001CFFFF, 0x00, 0, 16},
  375. Package () {0x0001CFFFF, 0x01, 0, 17},
  376. Package () {0x0001CFFFF, 0x02, 0, 18},
  377. Package () {0x0001CFFFF, 0x03, 0, 19},
  378. Package () {0x0001DFFFF, 0x00, 0, 16},
  379. Package () {0x0001DFFFF, 0x01, 0, 17},
  380. Package () {0x0001DFFFF, 0x02, 0, 18},
  381. Package () {0x0001DFFFF, 0x03, 0, 19},
  382. Package () {0x0001FFFFF, 0x00, 0, 16},
  383. Package () {0x0001FFFFF, 0x01, 0, 17},
  384. Package () {0x0001FFFFF, 0x02, 0, 18},
  385. Package () {0x0001FFFFF, 0x03, 0, 19},
  386. }
  387. )
  388. //
  389. // PCI to ISA Bridge (Bus 0, Device 7, Function 0)
  390. //
  391. Device (LPC) {
  392. Name (_ADR, 0x001F0000)
  393. //
  394. // PCI Interrupt Routing Configuration Registers
  395. //
  396. OperationRegion (PRR0, PCI_Config, 0x60, 0x0C)
  397. Field (PRR0, ANYACC, NOLOCK, PRESERVE) {
  398. PIRA, 8,
  399. PIRB, 8,
  400. PIRC, 8,
  401. PIRD, 8,
  402. Offset (0x04),
  403. PIRE, 8,
  404. PIRF, 8,
  405. PIRG, 8,
  406. PIRH, 8
  407. }
  408. //
  409. // _STA method for LNKA, LNKB, LNKC, LNKD, LNKE, LNKF, LNKG, LNKH
  410. //
  411. Method (PSTA, 1, NotSerialized) {
  412. If (And (Arg0, 0x80)) {
  413. Return (0x9)
  414. } Else {
  415. Return (0xB)
  416. }
  417. }
  418. //
  419. // _DIS method for LNKA, LNKB, LNKC, LNKD, LNKE, LNKF, LNKG, LNKH
  420. //
  421. Method (PDIS, 1, NotSerialized) {
  422. Or (Arg0, 0x80, Arg0)
  423. }
  424. //
  425. // _CRS method for LNKA, LNKB, LNKC, LNKD, LNKE, LNKF, LNKG, LNKH
  426. //
  427. Method (PCRS, 1, NotSerialized) {
  428. Name (BUF0, ResourceTemplate () {IRQ (Level, ActiveLow, Shared){0}})
  429. //
  430. // Define references to buffer elements
  431. //
  432. CreateWordField (BUF0, 0x01, IRQW) // IRQ low
  433. //
  434. // Write current settings into IRQ descriptor
  435. //
  436. If (And (Arg0, 0x80)) {
  437. Store (Zero, Local0)
  438. } Else {
  439. Store (One, Local0)
  440. }
  441. //
  442. // Shift 1 by value in register 70
  443. //
  444. ShiftLeft (Local0, And (Arg0, 0x0F), IRQW) // Save in buffer
  445. Return (BUF0) // Return Buf0
  446. }
  447. //
  448. // _PRS resource for LNKA, LNKB, LNKC, LNKD, LNKE, LNKF, LNKG, LNKH
  449. //
  450. Name (PPRS, ResourceTemplate () {
  451. IRQ (Level, ActiveLow, Shared) {3, 4, 5, 7, 9, 10, 11, 12, 14, 15}
  452. })
  453. //
  454. // _SRS method for LNKA, LNKB, LNKC, LNKD, LNKE, LNKF, LNKG, LNKH
  455. //
  456. Method (PSRS, 2, NotSerialized) {
  457. CreateWordField (Arg1, 0x01, IRQW) // IRQ low
  458. FindSetRightBit (IRQW, Local0) // Set IRQ
  459. If (LNotEqual (IRQW, Zero)) {
  460. And (Local0, 0x7F, Local0)
  461. Decrement (Local0)
  462. } Else {
  463. Or (Local0, 0x80, Local0)
  464. }
  465. Store (Local0, Arg0)
  466. }
  467. //
  468. // PCI IRQ Link A
  469. //
  470. Device (LNKA) {
  471. Name (_HID, EISAID("PNP0C0F"))
  472. Name (_UID, 1)
  473. Method (_STA, 0, NotSerialized) { Return (PSTA (PIRA)) }
  474. Method (_DIS, 0, NotSerialized) { PDIS (PIRA) }
  475. Method (_CRS, 0, NotSerialized) { Return (PCRS (PIRA)) }
  476. Method (_PRS, 0, NotSerialized) { Return (PPRS) }
  477. Method (_SRS, 1, NotSerialized) { PSRS (PIRA, Arg0) }
  478. }
  479. //
  480. // PCI IRQ Link B
  481. //
  482. Device (LNKB) {
  483. Name (_HID, EISAID("PNP0C0F"))
  484. Name (_UID, 2)
  485. Method (_STA, 0, NotSerialized) { Return (PSTA (PIRB)) }
  486. Method (_DIS, 0, NotSerialized) { PDIS (PIRB) }
  487. Method (_CRS, 0, NotSerialized) { Return (PCRS (PIRB)) }
  488. Method (_PRS, 0, NotSerialized) { Return (PPRS) }
  489. Method (_SRS, 1, NotSerialized) { PSRS (PIRB, Arg0) }
  490. }
  491. //
  492. // PCI IRQ Link C
  493. //
  494. Device (LNKC) {
  495. Name (_HID, EISAID("PNP0C0F"))
  496. Name (_UID, 3)
  497. Method (_STA, 0, NotSerialized) { Return (PSTA (PIRC)) }
  498. Method (_DIS, 0, NotSerialized) { PDIS (PIRC) }
  499. Method (_CRS, 0, NotSerialized) { Return (PCRS (PIRC)) }
  500. Method (_PRS, 0, NotSerialized) { Return (PPRS) }
  501. Method (_SRS, 1, NotSerialized) { PSRS (PIRC, Arg0) }
  502. }
  503. //
  504. // PCI IRQ Link D
  505. //
  506. Device (LNKD) {
  507. Name (_HID, EISAID("PNP0C0F"))
  508. Name (_UID, 4)
  509. Method (_STA, 0, NotSerialized) { Return (PSTA (PIRD)) }
  510. Method (_DIS, 0, NotSerialized) { PDIS (PIRD) }
  511. Method (_CRS, 0, NotSerialized) { Return (PCRS (PIRD)) }
  512. Method (_PRS, 0, NotSerialized) { Return (PPRS) }
  513. Method (_SRS, 1, NotSerialized) { PSRS (PIRD, Arg0) }
  514. }
  515. //
  516. // PCI IRQ Link E
  517. //
  518. Device (LNKE) {
  519. Name (_HID, EISAID("PNP0C0F"))
  520. Name (_UID, 5)
  521. Method (_STA, 0, NotSerialized) { Return (PSTA (PIRE)) }
  522. Method (_DIS, 0, NotSerialized) { PDIS (PIRE) }
  523. Method (_CRS, 0, NotSerialized) { Return (PCRS (PIRE)) }
  524. Method (_PRS, 0, NotSerialized) { Return (PPRS) }
  525. Method (_SRS, 1, NotSerialized) { PSRS (PIRE, Arg0) }
  526. }
  527. //
  528. // PCI IRQ Link F
  529. //
  530. Device (LNKF) {
  531. Name (_HID, EISAID("PNP0C0F"))
  532. Name (_UID, 6)
  533. Method (_STA, 0, NotSerialized) { Return (PSTA (PIRF)) }
  534. Method (_DIS, 0, NotSerialized) { PDIS (PIRF) }
  535. Method (_CRS, 0, NotSerialized) { Return (PCRS (PIRF)) }
  536. Method (_PRS, 0, NotSerialized) { Return (PPRS) }
  537. Method (_SRS, 1, NotSerialized) { PSRS (PIRF, Arg0) }
  538. }
  539. //
  540. // PCI IRQ Link G
  541. //
  542. Device (LNKG) {
  543. Name (_HID, EISAID("PNP0C0F"))
  544. Name (_UID, 7)
  545. Method (_STA, 0, NotSerialized) { Return (PSTA (PIRG)) }
  546. Method (_DIS, 0, NotSerialized) { PDIS (PIRG) }
  547. Method (_CRS, 0, NotSerialized) { Return (PCRS (PIRG)) }
  548. Method (_PRS, 0, NotSerialized) { Return (PPRS) }
  549. Method (_SRS, 1, NotSerialized) { PSRS (PIRG, Arg0) }
  550. }
  551. //
  552. // PCI IRQ Link H
  553. //
  554. Device (LNKH) {
  555. Name (_HID, EISAID("PNP0C0F"))
  556. Name (_UID, 8)
  557. Method (_STA, 0, NotSerialized) { Return (PSTA (PIRH)) }
  558. Method (_DIS, 0, NotSerialized) { PDIS (PIRH) }
  559. Method (_CRS, 0, NotSerialized) { Return (PCRS (PIRH)) }
  560. Method (_PRS, 0, NotSerialized) { Return (PPRS) }
  561. Method (_SRS, 1, NotSerialized) { PSRS (PIRH, Arg0) }
  562. }
  563. //
  564. // Programmable Interrupt Controller (PIC)
  565. //
  566. Device(PIC) {
  567. Name (_HID, EISAID ("PNP0000"))
  568. Name (_CRS, ResourceTemplate () {
  569. IO (Decode16, 0x020, 0x020, 0x00, 0x02)
  570. IO (Decode16, 0x0A0, 0x0A0, 0x00, 0x02)
  571. IO (Decode16, 0x4D0, 0x4D0, 0x00, 0x02)
  572. IRQNoFlags () {2}
  573. })
  574. }
  575. //
  576. // ISA DMA
  577. //
  578. Device (DMAC) {
  579. Name (_HID, EISAID ("PNP0200"))
  580. Name (_CRS, ResourceTemplate () {
  581. IO (Decode16, 0x00, 0x00, 0, 0x10)
  582. IO (Decode16, 0x81, 0x81, 0, 0x03)
  583. IO (Decode16, 0x87, 0x87, 0, 0x01)
  584. IO (Decode16, 0x89, 0x89, 0, 0x03)
  585. IO (Decode16, 0x8f, 0x8f, 0, 0x01)
  586. IO (Decode16, 0xc0, 0xc0, 0, 0x20)
  587. DMA (Compatibility, NotBusMaster, Transfer8) {4}
  588. })
  589. }
  590. //
  591. // 8254 Timer
  592. //
  593. Device(TMR) {
  594. Name(_HID,EISAID("PNP0100"))
  595. Name(_CRS, ResourceTemplate () {
  596. IO (Decode16, 0x40, 0x40, 0x00, 0x04)
  597. IRQNoFlags () {0}
  598. })
  599. }
  600. //
  601. // Real Time Clock
  602. //
  603. Device (RTC) {
  604. Name (_HID, EISAID ("PNP0B00"))
  605. Name (_CRS, ResourceTemplate () {
  606. IO (Decode16, 0x70, 0x70, 0x00, 0x02)
  607. IRQNoFlags () {8}
  608. })
  609. }
  610. //
  611. // PCAT Speaker
  612. //
  613. Device(SPKR) {
  614. Name (_HID, EISAID("PNP0800"))
  615. Name (_CRS, ResourceTemplate () {
  616. IO (Decode16, 0x61, 0x61, 0x01, 0x01)
  617. })
  618. }
  619. //
  620. // Floating Point Coprocessor
  621. //
  622. Device(FPU) {
  623. Name (_HID, EISAID("PNP0C04"))
  624. Name (_CRS, ResourceTemplate () {
  625. IO (Decode16, 0xF0, 0xF0, 0x00, 0x10)
  626. IRQNoFlags () {13}
  627. })
  628. }
  629. //
  630. // Generic motherboard devices and pieces that don't fit anywhere else
  631. //
  632. Device(XTRA) {
  633. Name (_HID, EISAID ("PNP0C02"))
  634. Name (_UID, 0x01)
  635. Name (_CRS, ResourceTemplate () {
  636. IO (Decode16, 0x010, 0x010, 0x00, 0x10)
  637. IO (Decode16, 0x022, 0x022, 0x00, 0x1E)
  638. IO (Decode16, 0x044, 0x044, 0x00, 0x1C)
  639. IO (Decode16, 0x062, 0x062, 0x00, 0x02)
  640. IO (Decode16, 0x065, 0x065, 0x00, 0x0B)
  641. IO (Decode16, 0x072, 0x072, 0x00, 0x0E)
  642. IO (Decode16, 0x080, 0x080, 0x00, 0x01)
  643. IO (Decode16, 0x084, 0x084, 0x00, 0x03)
  644. IO (Decode16, 0x088, 0x088, 0x00, 0x01)
  645. IO (Decode16, 0x08c, 0x08c, 0x00, 0x03)
  646. IO (Decode16, 0x090, 0x090, 0x00, 0x10)
  647. IO (Decode16, 0x0A2, 0x0A2, 0x00, 0x1E)
  648. IO (Decode16, 0x0E0, 0x0E0, 0x00, 0x10)
  649. IO (Decode16, 0x1E0, 0x1E0, 0x00, 0x10)
  650. IO (Decode16, 0x160, 0x160, 0x00, 0x10)
  651. IO (Decode16, 0x278, 0x278, 0x00, 0x08)
  652. IO (Decode16, 0x370, 0x370, 0x00, 0x02)
  653. IO (Decode16, 0x378, 0x378, 0x00, 0x08)
  654. IO (Decode16, 0x400, 0x400, 0x00, 0x40) // PMBLK1
  655. IO (Decode16, 0x440, 0x440, 0x00, 0x10)
  656. IO (Decode16, 0x678, 0x678, 0x00, 0x08)
  657. IO (Decode16, 0x778, 0x778, 0x00, 0x08)
  658. Memory32Fixed (ReadOnly, 0xFEC00000, 0x1000) // IO APIC
  659. Memory32Fixed (ReadOnly, 0xFEE00000, 0x100000) // LAPIC
  660. })
  661. }
  662. //
  663. // PS/2 Keyboard and PC/AT Enhanced Keyboard 101/102
  664. //
  665. Device (PS2K) {
  666. Name (_HID, EISAID ("PNP0303"))
  667. Name (_CID, EISAID ("PNP030B"))
  668. Name(_CRS,ResourceTemplate() {
  669. IO (Decode16, 0x60, 0x60, 0x00, 0x01)
  670. IO (Decode16, 0x64, 0x64, 0x00, 0x01)
  671. IRQNoFlags () {1}
  672. })
  673. }
  674. //
  675. // PS/2 Mouse and Microsoft Mouse
  676. //
  677. Device (PS2M) { // PS/2 stype mouse port
  678. Name (_HID, EISAID ("PNP0F03"))
  679. Name (_CID, EISAID ("PNP0F13"))
  680. Name (_CRS, ResourceTemplate() {
  681. IRQNoFlags () {12}
  682. })
  683. }
  684. //
  685. // UART Serial Port - COM1
  686. //
  687. Device (UAR1) {
  688. Name (_HID, EISAID ("PNP0501"))
  689. Name (_DDN, "COM1")
  690. Name (_UID, 0x01)
  691. Name(_CRS,ResourceTemplate() {
  692. IO (Decode16, 0x3F8, 0x3F8, 0x00, 0x08)
  693. IRQ (Edge, ActiveHigh, Exclusive, ) {4}
  694. })
  695. }
  696. //
  697. // UART Serial Port - COM2
  698. //
  699. Device (UAR2) {
  700. Name (_HID, EISAID ("PNP0501"))
  701. Name (_DDN, "COM2")
  702. Name (_UID, 0x02)
  703. Name(_CRS,ResourceTemplate() {
  704. IO (Decode16, 0x2F8, 0x2F8, 0x00, 0x08)
  705. IRQ (Edge, ActiveHigh, Exclusive, ) {3}
  706. })
  707. }
  708. }
  709. }
  710. }
  711. }