dsdt.asl 5.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207
  1. /*++
  2. Copyright (c) 2015 Minoca Corp. All Rights Reserved.
  3. Module Name:
  4. dsdt.dsl
  5. Abstract:
  6. This module implements the ACPI Differentiated System Descriptor Table
  7. (DSDT) for the Broadcom 2836.
  8. Author:
  9. Chris Stevens 17-Mar-2014
  10. Environment:
  11. Firmware
  12. --*/
  13. //
  14. // --------------------------------------------------------------------- Tables
  15. //
  16. DefinitionBlock (
  17. "dsdt.aml",
  18. "DSDT",
  19. 0x01,
  20. "Minoca",
  21. "Minoca ",
  22. 0x1
  23. )
  24. {
  25. Scope(\_SB) {
  26. Device(DWHC) {
  27. Name(_HID, EISAID("DWC0000"))
  28. Name(_UID, 0)
  29. /*
  30. * Define the operation region to access the DWC configuration
  31. * space.
  32. */
  33. OperationRegion(DWCR, SystemMemory, 0x3F980000, 0x104)
  34. Field(DWCR, DWordAcc, NoLock, Preserve) {
  35. Offset(0x8),
  36. SKP1, 1,
  37. AHBB, 3,
  38. AHBW, 1,
  39. Offset(0xC),
  40. SKP2, 8,
  41. USRP, 1,
  42. UHNP, 1,
  43. Offset(0x24),
  44. RXFS, 16,
  45. Offset(0x28),
  46. NPFO, 16,
  47. NPFS, 16,
  48. Offset(0x100),
  49. PDFO, 16,
  50. PDFS, 16,
  51. }
  52. /*
  53. * Set the AHB configuration register to have a single burst length
  54. * and to wait on all writes. Also set the receive FIFO to 774
  55. * bytes, the non-periodic transmit FIFO to 256 bytes, and the
  56. * periodic transmit FIFO to 512 bytes. The Raspberry Pi's DWC USB
  57. * controller allows dynamic FIFO sizes and the maximum FIFO depth
  58. * is greater than the total FIFO sizes programmed here. Lastly,
  59. * the host is both SRP and HNP capable.
  60. */
  61. Method(_INI, 0) {
  62. Store(0x306, RXFS)
  63. Store(0x306, NPFO)
  64. Store(0x100, NPFS)
  65. Store(0x406, PDFO)
  66. Store(0x200, PDFS)
  67. Store(0x1, USRP)
  68. Store(0x1, UHNP)
  69. Store(0x0, AHBB)
  70. Store(0x1, AHBW)
  71. }
  72. Method (_STA, 0, NotSerialized) {
  73. Return(0x0F)
  74. }
  75. Name(_CRS, ResourceTemplate() {
  76. DWordMemory(ResourceConsumer, PosDecode, MinFixed, MaxFixed,
  77. NonCacheable, ReadWrite,
  78. 0x00000000,
  79. 0x3F980000,
  80. 0x3F990FFF,
  81. 0x00000000,
  82. 0x00011000
  83. )
  84. Interrupt(, Level, ActiveHigh,) { 9 }
  85. })
  86. }
  87. Device(BDMA) {
  88. Name(_HID, "BCM0000")
  89. Name(_UID, 0)
  90. Method(_STA, 0, NotSerialized) {
  91. Return(0x0F)
  92. }
  93. Name(_CRS, ResourceTemplate() {
  94. DWordMemory(ResourceConsumer, PosDecode, MinFixed, MaxFixed,
  95. NonCacheable, ReadWrite,
  96. 0x00000000,
  97. 0x3F007000,
  98. 0x3F007FFF,
  99. 0x00000000,
  100. 0x00001000)
  101. Interrupt(, Level, ActiveHigh,) {16}
  102. Interrupt(, Level, ActiveHigh,) {17}
  103. Interrupt(, Level, ActiveHigh,) {18}
  104. Interrupt(, Level, ActiveHigh,) {19}
  105. Interrupt(, Level, ActiveHigh,) {20}
  106. Interrupt(, Level, ActiveHigh,) {21}
  107. Interrupt(, Level, ActiveHigh,) {22}
  108. Interrupt(, Level, ActiveHigh,) {23}
  109. Interrupt(, Level, ActiveHigh,) {24}
  110. Interrupt(, Level, ActiveHigh,) {25}
  111. Interrupt(, Level, ActiveHigh,) {26}
  112. Interrupt(, Level, ActiveHigh,) {27}
  113. Interrupt(, Level, ActiveHigh,) {28}
  114. })
  115. }
  116. Device(GPI0) {
  117. Name(_HID, "BCM0001")
  118. Name(_UID, 0)
  119. Method(_STA, 0, NotSerialized) {
  120. Return(0x0F)
  121. }
  122. Name(_CRS, ResourceTemplate() {
  123. DWordMemory(ResourceConsumer, PosDecode, MinFixed, MaxFixed,
  124. NonCacheable, ReadWrite,
  125. 0x00000000,
  126. 0x3F200000,
  127. 0x3F200FFF,
  128. 0x00000000,
  129. 0x00001000)
  130. Interrupt(, Level, ActiveHigh,) {52}
  131. })
  132. }
  133. }
  134. //
  135. // Stick things that use system DMA underneath the DMA controller.
  136. //
  137. Scope(\_SB.BDMA) {
  138. Device(SDMC) {
  139. Name(_HID, EISAID("BCM0D40"))
  140. Name(_UID, 0)
  141. Method(_STA, 0, NotSerialized) {
  142. Return(0x0F)
  143. }
  144. Name(_CRS, ResourceTemplate() {
  145. DWordMemory(ResourceConsumer, PosDecode, MinFixed, MaxFixed,
  146. NonCacheable, ReadWrite,
  147. 0x00000000,
  148. 0x3F300000,
  149. 0x3F300FFF,
  150. 0x00000000,
  151. 0x00001000)
  152. Interrupt(, Level, ActiveHigh,) {62}
  153. FixedDMA(11, 4, Width32Bit, )
  154. })
  155. }
  156. }
  157. Name (\_S3, Package (0x04)
  158. {
  159. 0x01,
  160. 0x01,
  161. Zero,
  162. Zero
  163. })
  164. Name (\_S4, Package (0x04)
  165. {
  166. Zero,
  167. Zero,
  168. Zero,
  169. Zero
  170. })
  171. Name (\_S5, Package (0x04)
  172. {
  173. Zero,
  174. Zero,
  175. Zero,
  176. Zero
  177. })
  178. }