Changeset 26095 in vbox
- Timestamp:
- Jan 29, 2010 10:27:05 AM (15 years ago)
- svn:sync-xref-src-repo-rev:
- 57068
- Location:
- trunk/src/VBox/Devices/PC
- Files:
-
- 1 added
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Devices/PC/ACPI/VBoxAcpi.cpp
r25838 r26095 42 42 /* Statically compiled AML */ 43 43 # include <vboxaml.hex> 44 # include <vboxssdt-standard.hex> 45 # include <vboxssdt-cpuhotplug.hex> 44 46 #endif 45 47 … … 137 139 #endif 138 140 139 /* Two only public functions */ 140 int acpiPrepareDsdt(PPDMDEVINS pDevIns, void * *ppPtr, size_t *puDsdtLen) 141 { 142 #ifdef VBOX_WITH_DYNAMIC_DSDT 143 return prepareDynamicDsdt(pDevIns, ppPtr, puDsdtLen); 144 #else 141 /** 142 * Loads an AML file if present in CFGM 143 * 144 * @returns VBox status code 145 * @param pDevIns The device instance 146 * @param pcszCfgName The configuration key holding the file path 147 * @param pcszSignature The signature to check for 148 * @param ppbAmlCode Where to store the pointer to the AML code on success. 149 * @param pcbAmlCode Where to store the number of bytes of the AML code on success. 150 */ 151 static int acpiAmlLoadExternal(PPDMDEVINS pDevIns, const char *pcszCfgName, const char *pcszSignature, uint8_t **ppbAmlCode, size_t *pcbAmlCode) 152 { 145 153 uint8_t *pbAmlCode = NULL; 146 154 size_t cbAmlCode = 0; 147 155 char *pszAmlFilePath = NULL; 148 int rc = CFGMR3QueryStringAlloc(pDevIns->pCfgHandle, "AmlFilePath", &pszAmlFilePath); 156 int rc = CFGMR3QueryStringAlloc(pDevIns->pCfgHandle, pcszCfgName, &pszAmlFilePath); 157 149 158 if (RT_SUCCESS(rc)) 150 159 { … … 178 187 */ 179 188 if ( RT_FAILURE(rc) 180 || strncmp((const char *)pbAmlCode, "DSDT", 4))189 || strncmp((const char *)pbAmlCode, pcszSignature, 4)) 181 190 { 182 191 RTMemFree(pbAmlCode); … … 186 195 if (RT_SUCCESS(rc)) 187 196 rc = VERR_PARSE_ERROR; 197 } 198 else 199 { 200 *ppbAmlCode = pbAmlCode; 201 *pcbAmlCode = cbAmlCode; 202 rc = VINF_SUCCESS; 188 203 } 189 204 } … … 196 211 MMR3HeapFree(pszAmlFilePath); 197 212 } 198 else if (rc == VERR_CFGM_VALUE_NOT_FOUND) 213 214 return rc; 215 } 216 217 /* Two only public functions */ 218 int acpiPrepareDsdt(PPDMDEVINS pDevIns, void * *ppPtr, size_t *puDsdtLen) 219 { 220 #ifdef VBOX_WITH_DYNAMIC_DSDT 221 return prepareDynamicDsdt(pDevIns, ppPtr, puDsdtLen); 222 #else 223 uint8_t *pbAmlCodeDsdt = NULL; 224 size_t cbAmlCodeDsdt = 0; 225 int rc = acpiAmlLoadExternal(pDevIns, "DsdtFilePath", "DSDT", &pbAmlCodeDsdt, &cbAmlCodeDsdt); 226 227 if (rc == VERR_CFGM_VALUE_NOT_FOUND) 199 228 { 200 229 rc = VINF_SUCCESS; 201 230 202 231 /* Use the compiled in AML code */ 203 cbAmlCode = sizeof(AmlCode);204 pbAmlCode = (uint8_t *)RTMemAllocZ(cbAmlCode);205 if (pbAmlCode )206 memcpy(pbAmlCode , AmlCode, cbAmlCode);232 cbAmlCodeDsdt = sizeof(AmlCode); 233 pbAmlCodeDsdt = (uint8_t *)RTMemAllocZ(cbAmlCodeDsdt); 234 if (pbAmlCodeDsdt) 235 memcpy(pbAmlCodeDsdt, AmlCode, cbAmlCodeDsdt); 207 236 else 208 237 rc = VERR_NO_MEMORY; … … 210 239 else if (RT_FAILURE(rc)) 211 240 return PDMDEV_SET_ERROR(pDevIns, rc, 212 N_("Configuration error: Failed to read \" AmlFilePath\""));241 N_("Configuration error: Failed to read \"DsdtFilePath\"")); 213 242 214 243 if (RT_SUCCESS(rc)) 215 244 { 216 patchAml(pDevIns, pbAmlCode , cbAmlCode);217 *ppPtr = pbAmlCode ;218 *puDsdtLen = cbAmlCode ;245 patchAml(pDevIns, pbAmlCodeDsdt, cbAmlCodeDsdt); 246 *ppPtr = pbAmlCodeDsdt; 247 *puDsdtLen = cbAmlCodeDsdt; 219 248 } 220 249 return rc; … … 233 262 } 234 263 264 int acpiPrepareSsdt(PPDMDEVINS pDevIns, void* *ppPtr, size_t *puSsdtLen) 265 { 266 uint8_t *pbAmlCodeSsdt = NULL; 267 size_t cbAmlCodeSsdt = 0; 268 int rc = acpiAmlLoadExternal(pDevIns, "SsdtFilePath", "SSDT", &pbAmlCodeSsdt, &cbAmlCodeSsdt); 269 270 if (rc == VERR_CFGM_VALUE_NOT_FOUND) 271 { 272 bool fCpuHotPlug = false; 273 uint8_t *pbAmlCode = NULL; 274 rc = CFGMR3QueryBoolDef(pDevIns->pCfgHandle, "CpuHotPlug", &fCpuHotPlug, false); 275 276 if (RT_FAILURE(rc)) 277 return rc; 278 279 if (fCpuHotPlug) 280 { 281 pbAmlCode = AmlCodeSsdtCpuHotPlug; 282 cbAmlCodeSsdt = sizeof(AmlCodeSsdtCpuHotPlug); 283 } 284 else 285 { 286 pbAmlCode = AmlCodeSsdtStandard; 287 cbAmlCodeSsdt = sizeof(AmlCodeSsdtStandard); 288 } 289 290 pbAmlCodeSsdt = (uint8_t *)RTMemAllocZ(cbAmlCodeSsdt); 291 if (pbAmlCodeSsdt) 292 memcpy(pbAmlCodeSsdt, pbAmlCode, cbAmlCodeSsdt); 293 else 294 rc = VERR_NO_MEMORY; 295 } 296 else if (RT_FAILURE(rc)) 297 return PDMDEV_SET_ERROR(pDevIns, rc, 298 N_("Configuration error: Failed to read \"SsdtFilePath\"")); 299 300 if (RT_SUCCESS(rc)) 301 { 302 patchAml(pDevIns, pbAmlCodeSsdt, cbAmlCodeSsdt); 303 *ppPtr = pbAmlCodeSsdt; 304 *puSsdtLen = cbAmlCodeSsdt; 305 } 306 307 return VINF_SUCCESS; 308 } 309 310 int acpiCleanupSsdt(PPDMDEVINS pDevIns, void* pPtr) 311 { 312 if (pPtr) 313 RTMemFree(pPtr); 314 return VINF_SUCCESS; 315 } 316 -
trunk/src/VBox/Devices/PC/DevACPI.cpp
r26078 r26095 45 45 int acpiPrepareDsdt(PPDMDEVINS pDevIns, void* *ppPtr, size_t *puDsdtLen); 46 46 int acpiCleanupDsdt(PPDMDEVINS pDevIns, void* pPtr); 47 48 int acpiPrepareSsdt(PPDMDEVINS pDevIns, void* *ppPtr, size_t *puSsdtLen); 49 int acpiCleanupSsdt(PPDMDEVINS pDevIns, void* pPtr); 47 50 #endif /* !IN_RING3 */ 48 51 … … 682 685 } 683 686 687 /** Secondary System Description Table (SSDT) */ 688 689 static void acpiSetupSSDT(ACPIState *s, RTGCPHYS32 addr, 690 void* pPtr, size_t uSsdtLen) 691 { 692 acpiPhyscpy(s, addr, pPtr, uSsdtLen); 693 } 694 684 695 /** Firmware ACPI Control Structure (FACS) */ 685 696 static void acpiSetupFACS(ACPIState *s, RTGCPHYS32 addr) … … 1940 1951 int rc; 1941 1952 RTGCPHYS32 GCPhysCur, GCPhysRsdt, GCPhysXsdt, GCPhysFadtAcpi1, GCPhysFadtAcpi2, GCPhysFacs, GCPhysDsdt; 1942 RTGCPHYS32 GCPhysHpet = 0, GCPhysApic = 0 ;1953 RTGCPHYS32 GCPhysHpet = 0, GCPhysApic = 0, GCPhysSsdt = 0; 1943 1954 uint32_t addend = 0; 1944 1955 RTGCPHYS32 aGCPhysRsdt[4]; 1945 1956 RTGCPHYS32 aGCPhysXsdt[4]; 1946 uint32_t cAddr, iMadt = 0, iHpet = 0 ;1957 uint32_t cAddr, iMadt = 0, iHpet = 0, iSsdt = 0; 1947 1958 size_t cbRsdt = sizeof(ACPITBLHEADER); 1948 1959 size_t cbXsdt = sizeof(ACPITBLHEADER); … … 1954 1965 if (s->fUseHpet) 1955 1966 iHpet = cAddr++; /* HPET */ 1967 1968 iSsdt = cAddr++; /* SSDT */ 1956 1969 1957 1970 cbRsdt += cAddr*sizeof(uint32_t); /* each entry: 32 bits phys. address. */ … … 2009 2022 GCPhysCur = RT_ALIGN_32(GCPhysCur + sizeof(ACPITBLHPET), 16); 2010 2023 } 2024 2025 void* pSsdtCode = NULL; 2026 size_t cbSsdtSize = 0; 2027 rc = acpiPrepareSsdt(s->pDevIns, &pSsdtCode, &cbSsdtSize); 2028 if (RT_FAILURE(rc)) 2029 return rc; 2030 2031 GCPhysSsdt = GCPhysCur; 2032 GCPhysCur = RT_ALIGN_32(GCPhysCur + cbSsdtSize, 16); 2033 2011 2034 GCPhysDsdt = GCPhysCur; 2012 2035 … … 2018 2041 2019 2042 GCPhysCur = RT_ALIGN_32(GCPhysCur + cbDsdtSize, 16); 2043 2020 2044 if (GCPhysCur > 0x10000) 2021 2045 return PDMDEV_SET_ERROR(s->pDevIns, VERR_TOO_MUCH_DATA, … … 2031 2055 if (s->fUseHpet) 2032 2056 Log((" HPET 0x%08X", GCPhysHpet + addend)); 2057 Log((" SSDT 0x%08X", GCPhysSsdt + addend)); 2033 2058 Log(("\n")); 2034 2059 … … 2053 2078 aGCPhysXsdt[iHpet] = GCPhysHpet + addend; 2054 2079 } 2080 acpiSetupSSDT(s, GCPhysSsdt + addend, pSsdtCode, cbSsdtSize); 2081 acpiCleanupSsdt(s->pDevIns, pSsdtCode); 2082 aGCPhysRsdt[iSsdt] = GCPhysSsdt + addend; 2083 aGCPhysXsdt[iSsdt] = GCPhysSsdt + addend; 2055 2084 2056 2085 rc = acpiSetupRSDT(s, GCPhysRsdt + addend, cAddr, aGCPhysRsdt); -
trunk/src/VBox/Devices/PC/vbox-cpuhotplug.dsl
r26078 r26095 18 18 // additional information or have any questions. 19 19 20 DefinitionBlock (" DSDT.aml", "DSDT", 1, "VBOX ", "VBOXBIOS", 2)20 DefinitionBlock ("SSDT-cpuhotplug.aml", "SSDT", 1, "VBOX ", "VBOXCPUT", 2) 21 21 { 22 // Declare debugging ports withing SystemIO 23 OperationRegion(DBG0, SystemIO, 0x3000, 4) 24 25 // Writes to this field Will dump hex char 26 Field (DBG0, ByteAcc, NoLock, Preserve) 27 { 28 DHE1, 8, 29 } 30 31 // Writes to this field Will dump hex word 32 Field (DBG0, WordAcc, NoLock, Preserve) 33 { 34 DHE2, 16, 35 } 36 37 // Writes to this field Will dump hex double word 38 Field (DBG0, DWordAcc, NoLock, Preserve) 39 { 40 DHE4, 32, 41 } 42 43 // Writes to this field will dump ascii char 44 Field (DBG0, ByteAcc, NoLock, Preserve) 45 { 46 Offset (1), 47 DCHR, 8 48 } 49 50 // Shortcuts 51 Method(HEX, 1) 52 { 53 Store (Arg0, DHE1) 54 } 55 56 Method(HEX2, 1) 57 { 58 Store (Arg0, DHE2) 59 } 60 61 Method(HEX4, 1) 62 { 63 Store (Arg0, DHE4) 64 } 65 66 // Code from Microsoft sample 67 // http://www.microsoft.com/whdc/system/pnppwr/powermgmt/_OSI-method.mspx 68 69 // 70 // SLEN(Str) - Returns the length of Str (excluding NULL). 71 // 72 Method(SLEN, 1) 73 { 74 // 75 // Note: The caller must make sure that the argument is a string object. 76 // 77 Store(Arg0, Local0) 78 Return(Sizeof(Local0)) 79 } 80 81 Method(S2BF, 1) 82 { 83 // 84 // Note: The caller must make sure that the argument is a string object. 85 // 86 // Local0 contains length of string + NULL. 87 // 88 Store(Arg0, Local0) 89 Add(SLEN(Local0), One, Local0) 90 // 91 // Convert the string object into a buffer object. 92 // 93 Name(BUFF, Buffer(Local0) {}) 94 Store(Arg0, BUFF) 95 Return(BUFF) 96 } 97 98 // Convert ASCII string to buffer and store it's contents (char by 99 // char) into DCHR (thus possibly writing the string to console) 100 Method (\DBG, 1, NotSerialized) 101 { 102 Store(Arg0, Local0) 103 Store(S2BF (Local0), Local1) 104 Store(SizeOf (Local1), Local0) 105 Decrement (Local0) 106 Store(Zero, Local2) 107 While (Local0) 108 { 109 Decrement (Local0) 110 Store (DerefOf (Index (Local1, Local2)), DCHR) 111 Increment (Local2) 112 } 113 } 114 115 Name(PICM, 0) 116 Method(_PIC, 1) 117 { 118 DBG ("Pic mode: ") 119 HEX4 (Arg0) 120 Store (Arg0, PICM) 121 } 22 External(\_SB.CPUC) 23 External(\_SB.CPUL) 122 24 123 25 // Method to check for the CPU status … … 128 30 } 129 31 130 // Processor object 131 // #1463: Showing the CPU can make the guest do bad things on it like SpeedStep. 132 // In this case, XP SP2 contains this buggy Intelppm.sys driver which wants to mess 133 // with SpeedStep if it finds a CPU object and when it finds out that it can't, it 134 // tries to unload and crashes (MS probably never tested this code path). 135 // So we enable this ACPI object only for certain guests, which do need it, 136 // if by accident Windows guest seen enabled CPU object, just boot from latest 137 // known good configuration, as it remembers state, even if ACPI object gets disabled. 138 Scope (\_PR) 32 Scope (\_SB) 139 33 { 140 Processor (CPU0, /* Name */ 141 0x00, /* Id */ 142 0x0, /* Processor IO ports range start */ 143 0x0 /* Processor IO ports range length */ 144 ) 145 { 146 } 147 148 // A ACPI node which contains all hot-plugable CPUs 149 // Needed on Linux or the new CPU device can't be registered 150 // after it was inserted. 151 // Windows guests will perform better if this device is present. 152 // The guest the guest seems to be kind of stuck for about 30sec 153 // (the mouse jumps if it is moved for example) without it. 154 Device(HPL) 155 { 156 Name (_HID, "ACPI0004") // Generic container, prevents that Windows guests ask for a driver 34 Device (SCK0) 35 { 36 Name (_HID, "ACPI0004") 37 Name (_UID, "SCKCPU0") 38 39 Method (_STA, 0, NotSerialized) 40 { 41 IF (CPCK(0x00)) 42 { 43 Return (0xF) 44 } 45 Else 46 { 47 Return (0x0) 48 } 49 } 50 51 Processor (CPU0, /* Name */ 52 0x00, /* Id */ 53 0x0, /* Processor IO ports range start */ 54 0x0 /* Processor IO ports range length */ 55 ) 56 { 57 Name (_HID, "ACPI0007") 58 Name (_UID, "SCK0-CPU0") 59 Name (_PXM, 0x00) 60 61 Method(_MAT, 0) 62 { 63 IF (CPCK(0x00)) 64 { 65 Name (APIC, Buffer (8) {0x00, 0x08, 0x00, 0x00, 0x01}) 66 Return(APIC) 67 } 68 Else 69 { 70 Return (0x00) 71 } 72 } 73 Method(_STA) // Used for device presence detection 74 { 75 IF (CPCK(0x00)) 76 { 77 Return (0xF) 78 } 79 Else 80 { 81 Return (0x0) 82 } 83 } 84 Method(_EJ0, 1) 85 { 86 Store(0x0, \_SB.CPUL) // Unlock the CPU 87 Return 88 } 89 } 90 } 91 92 Device (SCK1) 93 { 94 Name (_HID, "ACPI0004") 95 Name (_UID, "SCKCPU1") 96 97 Method (_STA, 0, NotSerialized) 98 { 99 Return (0xF) 100 } 157 101 158 102 Processor (CPU1, /* Name */ … … 162 106 ) 163 107 { 164 Method(_MAT, 0) { 108 Name (_HID, "ACPI0007") 109 Name (_UID, "SCK1-CPU0") 110 Name (_PXM, 0x00) 111 112 Method(_MAT, 0) 113 { 165 114 IF (CPCK(0x01)) 166 115 { … … 173 122 } 174 123 } 124 175 125 Method(_STA) // Used for device presence detection 176 126 { … … 184 134 } 185 135 } 136 186 137 Method(_EJ0, 1) 187 138 { … … 190 141 } 191 142 } 143 } 144 145 Device (SCK2) 146 { 147 Name (_HID, "ACPI0004") 148 Name (_UID, "SCKCPU2") 149 150 Method (_STA, 0, NotSerialized) 151 { 152 IF (CPCK(0x02)) 153 { 154 Return (0xF) 155 } 156 Else 157 { 158 Return (0x0) 159 } 160 } 161 192 162 Processor (CPU2, /* Name */ 193 163 0x02, /* Id */ … … 196 166 ) 197 167 { 198 Method(_MAT, 0) { 168 Name (_HID, "ACPI0007") 169 Name (_UID, "SCK2-CPU0") 170 Name (_PXM, 0x00) 171 172 Method(_MAT, 0) 173 { 199 174 IF (CPCK(0x02)) 200 175 { … … 207 182 } 208 183 } 184 209 185 Method(_STA) // Used for device presence detection 210 186 { … … 218 194 } 219 195 } 196 220 197 Method(_EJ0, 1) 221 198 { … … 224 201 } 225 202 } 203 } 204 205 Device (SCK3) 206 { 207 Name (_HID, "ACPI0004") 208 Name (_UID, "SCKCPU3") 209 210 Method (_STA, 0, NotSerialized) 211 { 212 IF (CPCK(0x03)) 213 { 214 Return (0xF) 215 } 216 Else 217 { 218 Return (0x0) 219 } 220 } 221 226 222 Processor (CPU3, /* Name */ 227 223 0x03, /* Id */ … … 230 226 ) 231 227 { 232 Method(_MAT, 0) { 228 Name (_HID, "ACPI0007") 229 Name (_UID, "SCK3-CPU0") 230 Name (_PXM, 0x00) 231 232 Method(_MAT, 0) 233 { 233 234 IF (CPCK(0x03)) 234 235 { … … 241 242 } 242 243 } 244 243 245 Method(_STA) // Used for device presence detection 244 246 { … … 252 254 } 253 255 } 256 254 257 Method(_EJ0, 1) 255 258 { … … 258 261 } 259 262 } 263 } 264 265 Device (SCK4) 266 { 267 Name (_HID, "ACPI0004") 268 Name (_UID, "SCKCPU4") 269 270 Method (_STA, 0, NotSerialized) 271 { 272 IF (CPCK(0x04)) 273 { 274 Return (0xF) 275 } 276 Else 277 { 278 Return (0x0) 279 } 280 } 281 260 282 Processor (CPU4, /* Name */ 261 283 0x04, /* Id */ … … 264 286 ) 265 287 { 266 Method(_MAT, 0) { 288 Name (_HID, "ACPI0007") 289 Name (_UID, "SCK4-CPU0") 290 Name (_PXM, 0x00) 291 292 Method(_MAT, 0) 293 { 267 294 IF (CPCK(0x04)) 268 295 { … … 275 302 } 276 303 } 304 277 305 Method(_STA) // Used for device presence detection 278 306 { … … 286 314 } 287 315 } 316 288 317 Method(_EJ0, 1) 289 318 { … … 292 321 } 293 322 } 323 } 324 325 Device (SCK5) 326 { 327 Name (_HID, "ACPI0004") 328 Name (_UID, "SCKCPU5") 329 330 Method (_STA, 0, NotSerialized) 331 { 332 IF (CPCK(0x05)) 333 { 334 Return (0xF) 335 } 336 Else 337 { 338 Return (0x0) 339 } 340 } 341 294 342 Processor (CPU5, /* Name */ 295 343 0x05, /* Id */ … … 298 346 ) 299 347 { 300 Method(_MAT, 0) { 348 Name (_HID, "ACPI0007") 349 Name (_UID, "SCK5-CPU0") 350 Name (_PXM, 0x00) 351 352 Method(_MAT, 0) 353 { 301 354 IF (CPCK(0x05)) 302 355 { … … 309 362 } 310 363 } 364 311 365 Method(_STA) // Used for device presence detection 312 366 { … … 320 374 } 321 375 } 376 322 377 Method(_EJ0, 1) 323 378 { … … 326 381 } 327 382 } 383 } 384 385 Device (SCK6) 386 { 387 Name (_HID, "ACPI0004") 388 Name (_UID, "SCKCPU6") 389 390 Method (_STA, 0, NotSerialized) 391 { 392 IF (CPCK(0x06)) 393 { 394 Return (0xF) 395 } 396 Else 397 { 398 Return (0x0) 399 } 400 } 401 328 402 Processor (CPU6, /* Name */ 329 403 0x06, /* Id */ … … 332 406 ) 333 407 { 334 Method(_MAT, 0) { 408 Name (_HID, "ACPI0007") 409 Name (_UID, "SCK6-CPU0") 410 Name (_PXM, 0x00) 411 412 Method(_MAT, 0) 413 { 414 IF (CPCK(0x6)) 415 { 416 Name (APIC, Buffer (8) {0x00, 0x08, 0x06, 0x06, 0x01}) 417 Return(APIC) 418 } 419 Else 420 { 421 Return (0x00) 422 } 423 } 424 425 Method(_STA) // Used for device presence detection 426 { 335 427 IF (CPCK(0x06)) 336 428 { 337 Name (APIC, Buffer (8) {0x00, 0x08, 0x06, 0x06, 0x01}) 338 Return(APIC) 339 } 340 Else 341 { 342 Return (0x00) 343 } 344 } 345 Method(_STA) // Used for device presence detection 346 { 347 IF (CPCK(0x06)) 348 { 349 Return (0xF) 350 } 351 Else 352 { 353 Return (0x0) 354 } 355 } 429 Return (0xF) 430 } 431 Else 432 { 433 Return (0x0) 434 } 435 } 436 356 437 Method(_EJ0, 1) 357 438 { … … 360 441 } 361 442 } 443 } 444 445 Device (SCK7) 446 { 447 Name (_HID, "ACPI0004") 448 Name (_UID, "SCKCPU7") 449 450 Method (_STA, 0, NotSerialized) 451 { 452 IF (CPCK(0x07)) 453 { 454 Return (0xF) 455 } 456 Else 457 { 458 Return (0x0) 459 } 460 } 461 362 462 Processor (CPU7, /* Name */ 363 463 0x07, /* Id */ … … 366 466 ) 367 467 { 368 Method(_MAT, 0) { 468 Name (_HID, "ACPI0007") 469 Name (_UID, "SCK7-CPU0") 470 Name (_PXM, 0x00) 471 472 Method(_MAT, 0) 473 { 369 474 IF (CPCK(0x07)) 370 475 { … … 377 482 } 378 483 } 484 379 485 Method(_STA) // Used for device presence detection 380 486 { … … 388 494 } 389 495 } 496 390 497 Method(_EJ0, 1) 391 498 { … … 394 501 } 395 502 } 503 } 504 505 Device (SCK8) 506 { 507 Name (_HID, "ACPI0004") 508 Name (_UID, "SCKCPU8") 509 510 Method (_STA, 0, NotSerialized) 511 { 512 IF (CPCK(0x08)) 513 { 514 Return (0xF) 515 } 516 Else 517 { 518 Return (0x0) 519 } 520 } 521 396 522 Processor (CPU8, /* Name */ 397 523 0x08, /* Id */ … … 400 526 ) 401 527 { 402 Method(_MAT, 0) { 528 Name (_HID, "ACPI0007") 529 Name (_UID, "SCK4-CPU0") 530 Name (_PXM, 0x00) 531 532 Method(_MAT, 0) 533 { 403 534 IF (CPCK(0x08)) 404 535 { … … 411 542 } 412 543 } 544 413 545 Method(_STA) // Used for device presence detection 414 546 { … … 422 554 } 423 555 } 556 424 557 Method(_EJ0, 1) 425 558 { … … 428 561 } 429 562 } 563 } 564 565 Device (SCK9) 566 { 567 Name (_HID, "ACPI0004") 568 Name (_UID, "SCKCPU9") 569 570 Method (_STA, 0, NotSerialized) 571 { 572 IF (CPCK(0x09)) 573 { 574 Return (0xF) 575 } 576 Else 577 { 578 Return (0x0) 579 } 580 } 581 430 582 Processor (CPU9, /* Name */ 431 583 0x09, /* Id */ … … 434 586 ) 435 587 { 436 Method(_MAT, 0) { 588 Name (_HID, "ACPI0007") 589 Name (_UID, "SCK9-CPU0") 590 Name (_PXM, 0x00) 591 592 Method(_MAT, 0) 593 { 437 594 IF (CPCK(0x09)) 438 595 { … … 445 602 } 446 603 } 604 447 605 Method(_STA) // Used for device presence detection 448 606 { … … 456 614 } 457 615 } 616 458 617 Method(_EJ0, 1) 459 618 { … … 462 621 } 463 622 } 623 } 624 625 Device (SCKA) 626 { 627 Name (_HID, "ACPI0004") 628 Name (_UID, "SCKCPUA") 629 630 Method (_STA, 0, NotSerialized) 631 { 632 IF (CPCK(0x0a)) 633 { 634 Return (0xF) 635 } 636 Else 637 { 638 Return (0x0) 639 } 640 } 641 464 642 Processor (CPUA, /* Name */ 465 643 0x0a, /* Id */ … … 468 646 ) 469 647 { 470 Method(_MAT, 0) { 648 Name (_HID, "ACPI0007") 649 Name (_UID, "SCKA-CPU0") 650 Name (_PXM, 0x00) 651 652 Method(_MAT, 0) 653 { 471 654 IF (CPCK(0x0a)) 472 655 { … … 479 662 } 480 663 } 664 481 665 Method(_STA) // Used for device presence detection 482 666 { … … 490 674 } 491 675 } 492 Method(_EJ0, 1) 493 { 494 Store(0xa, \_SB.CPUL) // Unlock the CPU 495 Return 496 } 497 } 676 677 Method(_EJ0, 1) 678 { 679 Store(0x0a, \_SB.CPUL) // Unlock the CPU 680 Return 681 } 682 } 683 } 684 685 Device (SCKB) 686 { 687 Name (_HID, "ACPI0004") 688 Name (_UID, "SCKCPUB") 689 690 Method (_STA, 0, NotSerialized) 691 { 692 IF (CPCK(0x0b)) 693 { 694 Return (0xF) 695 } 696 Else 697 { 698 Return (0x0) 699 } 700 } 701 498 702 Processor (CPUB, /* Name */ 499 703 0x0b, /* Id */ … … 502 706 ) 503 707 { 504 Method(_MAT, 0) { 708 Name (_HID, "ACPI0007") 709 Name (_UID, "SCKB-CPU0") 710 Name (_PXM, 0x00) 711 712 Method(_MAT, 0) 713 { 505 714 IF (CPCK(0x0b)) 506 715 { … … 513 722 } 514 723 } 724 515 725 Method(_STA) // Used for device presence detection 516 726 { … … 524 734 } 525 735 } 526 Method(_EJ0, 1) 527 { 528 Store(0xb, \_SB.CPUL) // Unlock the CPU 529 Return 530 } 531 } 736 737 Method(_EJ0, 1) 738 { 739 Store(0x0b, \_SB.CPUL) // Unlock the CPU 740 Return 741 } 742 } 743 } 744 745 Device (SCKC) 746 { 747 Name (_HID, "ACPI0004") 748 Name (_UID, "SCKCPUC") 749 750 Method (_STA, 0, NotSerialized) 751 { 752 IF (CPCK(0x0c)) 753 { 754 Return (0xF) 755 } 756 Else 757 { 758 Return (0x0) 759 } 760 } 761 532 762 Processor (CPUC, /* Name */ 533 763 0x0c, /* Id */ … … 536 766 ) 537 767 { 538 Method(_MAT, 0) { 768 Name (_HID, "ACPI0007") 769 Name (_UID, "SCKC-CPU0") 770 Name (_PXM, 0x00) 771 772 Method(_MAT, 0) 773 { 539 774 IF (CPCK(0x0c)) 540 775 { … … 547 782 } 548 783 } 784 549 785 Method(_STA) // Used for device presence detection 550 786 { … … 558 794 } 559 795 } 560 Method(_EJ0, 1) 561 { 562 Store(0xc, \_SB.CPUL) // Unlock the CPU 563 Return 564 } 565 } 796 797 Method(_EJ0, 1) 798 { 799 Store(0x0c, \_SB.CPUL) // Unlock the CPU 800 Return 801 } 802 } 803 } 804 805 Device (SCKD) 806 { 807 Name (_HID, "ACPI0004") 808 Name (_UID, "SCKCPUD") 809 810 Method (_STA, 0, NotSerialized) 811 { 812 IF (CPCK(0x0d)) 813 { 814 Return (0xF) 815 } 816 Else 817 { 818 Return (0x0) 819 } 820 } 821 566 822 Processor (CPUD, /* Name */ 567 823 0x0d, /* Id */ … … 570 826 ) 571 827 { 572 Method(_MAT, 0) { 828 Name (_HID, "ACPI0007") 829 Name (_UID, "SCKD-CPU0") 830 Name (_PXM, 0x00) 831 832 Method(_MAT, 0) 833 { 573 834 IF (CPCK(0x0d)) 574 835 { … … 581 842 } 582 843 } 844 583 845 Method(_STA) // Used for device presence detection 584 846 { … … 592 854 } 593 855 } 594 Method(_EJ0, 1) 595 { 596 Store(0xd, \_SB.CPUL) // Unlock the CPU 597 Return 598 } 599 } 856 857 Method(_EJ0, 1) 858 { 859 Store(0x0d, \_SB.CPUL) // Unlock the CPU 860 Return 861 } 862 } 863 } 864 865 Device (SCKE) 866 { 867 Name (_HID, "ACPI0004") 868 Name (_UID, "SCKCPUE") 869 870 Method (_STA, 0, NotSerialized) 871 { 872 IF (CPCK(0x0e)) 873 { 874 Return (0xF) 875 } 876 Else 877 { 878 Return (0x0) 879 } 880 } 881 600 882 Processor (CPUE, /* Name */ 601 883 0x0e, /* Id */ … … 604 886 ) 605 887 { 606 Method(_MAT, 0) { 888 Name (_HID, "ACPI0007") 889 Name (_UID, "SCKE-CPU0") 890 Name (_PXM, 0x00) 891 892 Method(_MAT, 0) 893 { 607 894 IF (CPCK(0x0e)) 608 895 { … … 615 902 } 616 903 } 904 617 905 Method(_STA) // Used for device presence detection 618 906 { … … 626 914 } 627 915 } 628 Method(_EJ0, 1) 629 { 630 Store(0xe, \_SB.CPUL) // Unlock the CPU 631 Return 632 } 633 } 916 917 Method(_EJ0, 1) 918 { 919 Store(0x0e, \_SB.CPUL) // Unlock the CPU 920 Return 921 } 922 } 923 } 924 925 Device (SCKF) 926 { 927 Name (_HID, "ACPI0004") 928 Name (_UID, "SCKCPUF") 929 930 Method (_STA, 0, NotSerialized) 931 { 932 IF (CPCK(0x0f)) 933 { 934 Return (0xF) 935 } 936 Else 937 { 938 Return (0x0) 939 } 940 } 941 634 942 Processor (CPUF, /* Name */ 635 943 0x0f, /* Id */ … … 638 946 ) 639 947 { 640 Method(_MAT, 0) { 948 Name (_HID, "ACPI0007") 949 Name (_UID, "SCKF-CPU0") 950 Name (_PXM, 0x00) 951 952 Method(_MAT, 0) 953 { 641 954 IF (CPCK(0x0f)) 642 955 { … … 649 962 } 650 963 } 964 651 965 Method(_STA) // Used for device presence detection 652 966 { … … 660 974 } 661 975 } 976 662 977 Method(_EJ0, 1) 663 978 { … … 666 981 } 667 982 } 983 } 984 985 Device (SCKG) 986 { 987 Name (_HID, "ACPI0004") 988 Name (_UID, "SCKCPUG") 989 990 Method (_STA, 0, NotSerialized) 991 { 992 IF (CPCK(0x10)) 993 { 994 Return (0xF) 995 } 996 Else 997 { 998 Return (0x0) 999 } 1000 } 1001 668 1002 Processor (CPUG, /* Name */ 669 1003 0x10, /* Id */ … … 672 1006 ) 673 1007 { 674 Method(_MAT, 0) { 1008 Name (_HID, "ACPI0007") 1009 Name (_UID, "SCKG-CPU0") 1010 Name (_PXM, 0x00) 1011 1012 Method(_MAT, 0) 1013 { 675 1014 IF (CPCK(0x10)) 676 1015 { … … 683 1022 } 684 1023 } 1024 685 1025 Method(_STA) // Used for device presence detection 686 1026 { … … 694 1034 } 695 1035 } 1036 696 1037 Method(_EJ0, 1) 697 1038 { … … 700 1041 } 701 1042 } 1043 } 1044 1045 Device (SCKH) 1046 { 1047 Name (_HID, "ACPI0004") 1048 Name (_UID, "SCKCPUH") 1049 1050 Method (_STA, 0, NotSerialized) 1051 { 1052 IF (CPCK(0x11)) 1053 { 1054 Return (0xF) 1055 } 1056 Else 1057 { 1058 Return (0x0) 1059 } 1060 } 1061 702 1062 Processor (CPUH, /* Name */ 703 1063 0x11, /* Id */ … … 706 1066 ) 707 1067 { 708 Method(_MAT, 0) { 1068 Name (_HID, "ACPI0007") 1069 Name (_UID, "SCKH-CPU0") 1070 Name (_PXM, 0x00) 1071 1072 Method(_MAT, 0) 1073 { 709 1074 IF (CPCK(0x11)) 710 1075 { … … 717 1082 } 718 1083 } 1084 719 1085 Method(_STA) // Used for device presence detection 720 1086 { … … 728 1094 } 729 1095 } 1096 730 1097 Method(_EJ0, 1) 731 1098 { … … 734 1101 } 735 1102 } 1103 } 1104 1105 Device (SCKI) 1106 { 1107 Name (_HID, "ACPI0004") 1108 Name (_UID, "SCKCPUI") 1109 1110 Method (_STA, 0, NotSerialized) 1111 { 1112 IF (CPCK(0x12)) 1113 { 1114 Return (0xF) 1115 } 1116 Else 1117 { 1118 Return (0x0) 1119 } 1120 } 1121 736 1122 Processor (CPUI, /* Name */ 737 1123 0x12, /* Id */ … … 740 1126 ) 741 1127 { 742 Method(_MAT, 0) { 1128 Name (_HID, "ACPI0007") 1129 Name (_UID, "SCKI-CPU0") 1130 Name (_PXM, 0x00) 1131 1132 Method(_MAT, 0) 1133 { 743 1134 IF (CPCK(0x12)) 744 1135 { … … 751 1142 } 752 1143 } 1144 753 1145 Method(_STA) // Used for device presence detection 754 1146 { … … 762 1154 } 763 1155 } 1156 764 1157 Method(_EJ0, 1) 765 1158 { … … 768 1161 } 769 1162 } 1163 } 1164 1165 Device (SCKJ) 1166 { 1167 Name (_HID, "ACPI0004") 1168 Name (_UID, "SCKCPUJ") 1169 1170 Method (_STA, 0, NotSerialized) 1171 { 1172 IF (CPCK(0x13)) 1173 { 1174 Return (0xF) 1175 } 1176 Else 1177 { 1178 Return (0x0) 1179 } 1180 } 1181 770 1182 Processor (CPUJ, /* Name */ 771 1183 0x13, /* Id */ … … 774 1186 ) 775 1187 { 776 Method(_MAT, 0) { 1188 Name (_HID, "ACPI0007") 1189 Name (_UID, "SCKJ-CPU0") 1190 Name (_PXM, 0x00) 1191 1192 Method(_MAT, 0) 1193 { 777 1194 IF (CPCK(0x13)) 778 1195 { … … 785 1202 } 786 1203 } 1204 787 1205 Method(_STA) // Used for device presence detection 788 1206 { … … 796 1214 } 797 1215 } 1216 798 1217 Method(_EJ0, 1) 799 1218 { … … 802 1221 } 803 1222 } 1223 } 1224 1225 Device (SCKK) 1226 { 1227 Name (_HID, "ACPI0004") 1228 Name (_UID, "SCKCPUK") 1229 1230 Method (_STA, 0, NotSerialized) 1231 { 1232 IF (CPCK(0x14)) 1233 { 1234 Return (0xF) 1235 } 1236 Else 1237 { 1238 Return (0x0) 1239 } 1240 } 1241 804 1242 Processor (CPUK, /* Name */ 805 1243 0x14, /* Id */ … … 808 1246 ) 809 1247 { 810 Method(_MAT, 0) { 1248 Name (_HID, "ACPI0007") 1249 Name (_UID, "SCKK-CPU0") 1250 Name (_PXM, 0x00) 1251 1252 Method(_MAT, 0) 1253 { 811 1254 IF (CPCK(0x14)) 812 1255 { … … 819 1262 } 820 1263 } 1264 821 1265 Method(_STA) // Used for device presence detection 822 1266 { … … 830 1274 } 831 1275 } 1276 832 1277 Method(_EJ0, 1) 833 1278 { … … 836 1281 } 837 1282 } 1283 } 1284 1285 Device (SCKL) 1286 { 1287 Name (_HID, "ACPI0004") 1288 Name (_UID, "SCKCPUL") 1289 1290 Method (_STA, 0, NotSerialized) 1291 { 1292 IF (CPCK(0x15)) 1293 { 1294 Return (0xF) 1295 } 1296 Else 1297 { 1298 Return (0x0) 1299 } 1300 } 1301 838 1302 Processor (CPUL, /* Name */ 839 1303 0x15, /* Id */ … … 842 1306 ) 843 1307 { 844 Method(_MAT, 0) { 1308 Name (_HID, "ACPI0007") 1309 Name (_UID, "SCKL-CPU0") 1310 Name (_PXM, 0x00) 1311 1312 Method(_MAT, 0) 1313 { 845 1314 IF (CPCK(0x15)) 846 1315 { … … 853 1322 } 854 1323 } 1324 855 1325 Method(_STA) // Used for device presence detection 856 1326 { … … 864 1334 } 865 1335 } 1336 866 1337 Method(_EJ0, 1) 867 1338 { … … 870 1341 } 871 1342 } 1343 } 1344 1345 Device (SCKM) 1346 { 1347 Name (_HID, "ACPI0004") 1348 Name (_UID, "SCKCPUM") 1349 1350 Method (_STA, 0, NotSerialized) 1351 { 1352 IF (CPCK(0x16)) 1353 { 1354 Return (0xF) 1355 } 1356 Else 1357 { 1358 Return (0x0) 1359 } 1360 } 1361 872 1362 Processor (CPUM, /* Name */ 873 1363 0x16, /* Id */ … … 876 1366 ) 877 1367 { 878 Method(_MAT, 0) { 1368 Name (_HID, "ACPI0007") 1369 Name (_UID, "SCKM-CPU0") 1370 Name (_PXM, 0x00) 1371 1372 Method(_MAT, 0) 1373 { 879 1374 IF (CPCK(0x16)) 880 1375 { … … 887 1382 } 888 1383 } 1384 889 1385 Method(_STA) // Used for device presence detection 890 1386 { … … 898 1394 } 899 1395 } 1396 900 1397 Method(_EJ0, 1) 901 1398 { … … 904 1401 } 905 1402 } 1403 } 1404 1405 Device (SCKN) 1406 { 1407 Name (_HID, "ACPI0004") 1408 Name (_UID, "SCKCPUN") 1409 1410 Method (_STA, 0, NotSerialized) 1411 { 1412 IF (CPCK(0x17)) 1413 { 1414 Return (0xF) 1415 } 1416 Else 1417 { 1418 Return (0x0) 1419 } 1420 } 1421 906 1422 Processor (CPUN, /* Name */ 907 1423 0x17, /* Id */ … … 910 1426 ) 911 1427 { 912 Method(_MAT, 0) { 1428 Name (_HID, "ACPI0007") 1429 Name (_UID, "SCKN-CPU0") 1430 Name (_PXM, 0x00) 1431 1432 Method(_MAT, 0) 1433 { 913 1434 IF (CPCK(0x17)) 914 1435 { … … 921 1442 } 922 1443 } 1444 923 1445 Method(_STA) // Used for device presence detection 924 1446 { … … 932 1454 } 933 1455 } 1456 934 1457 Method(_EJ0, 1) 935 1458 { … … 938 1461 } 939 1462 } 1463 } 1464 1465 Device (SCKO) 1466 { 1467 Name (_HID, "ACPI0004") 1468 Name (_UID, "SCKCPUO") 1469 1470 Method (_STA, 0, NotSerialized) 1471 { 1472 IF (CPCK(0x18)) 1473 { 1474 Return (0xF) 1475 } 1476 Else 1477 { 1478 Return (0x0) 1479 } 1480 } 1481 940 1482 Processor (CPUO, /* Name */ 941 1483 0x18, /* Id */ … … 944 1486 ) 945 1487 { 946 Method(_MAT, 0) { 1488 Name (_HID, "ACPI0007") 1489 Name (_UID, "SCKO-CPU0") 1490 Name (_PXM, 0x00) 1491 1492 Method(_MAT, 0) 1493 { 947 1494 IF (CPCK(0x18)) 948 1495 { … … 955 1502 } 956 1503 } 1504 957 1505 Method(_STA) // Used for device presence detection 958 1506 { … … 966 1514 } 967 1515 } 1516 968 1517 Method(_EJ0, 1) 969 1518 { … … 972 1521 } 973 1522 } 1523 } 1524 1525 Device (SCKP) 1526 { 1527 Name (_HID, "ACPI0004") 1528 Name (_UID, "SCKCPUP") 1529 1530 Method (_STA, 0, NotSerialized) 1531 { 1532 IF (CPCK(0x19)) 1533 { 1534 Return (0xF) 1535 } 1536 Else 1537 { 1538 Return (0x0) 1539 } 1540 } 1541 974 1542 Processor (CPUP, /* Name */ 975 1543 0x19, /* Id */ … … 978 1546 ) 979 1547 { 980 Method(_MAT, 0) { 1548 Name (_HID, "ACPI0007") 1549 Name (_UID, "SCKP-CPU0") 1550 Name (_PXM, 0x00) 1551 1552 Method(_MAT, 0) 1553 { 981 1554 IF (CPCK(0x19)) 982 1555 { … … 989 1562 } 990 1563 } 1564 991 1565 Method(_STA) // Used for device presence detection 992 1566 { … … 1000 1574 } 1001 1575 } 1576 1002 1577 Method(_EJ0, 1) 1003 1578 { … … 1006 1581 } 1007 1582 } 1583 } 1584 1585 Device (SCKQ) 1586 { 1587 Name (_HID, "ACPI0004") 1588 Name (_UID, "SCKCPUQ") 1589 1590 Method (_STA, 0, NotSerialized) 1591 { 1592 IF (CPCK(0x1a)) 1593 { 1594 Return (0xF) 1595 } 1596 Else 1597 { 1598 Return (0x0) 1599 } 1600 } 1601 1008 1602 Processor (CPUQ, /* Name */ 1009 1603 0x1a, /* Id */ … … 1012 1606 ) 1013 1607 { 1014 Method(_MAT, 0) { 1608 Name (_HID, "ACPI0007") 1609 Name (_UID, "SCKQ-CPU0") 1610 Name (_PXM, 0x00) 1611 1612 Method(_MAT, 0) 1613 { 1015 1614 IF (CPCK(0x1a)) 1016 1615 { … … 1023 1622 } 1024 1623 } 1624 1025 1625 Method(_STA) // Used for device presence detection 1026 1626 { … … 1034 1634 } 1035 1635 } 1636 1036 1637 Method(_EJ0, 1) 1037 1638 { … … 1040 1641 } 1041 1642 } 1643 } 1644 1645 Device (SCKR) 1646 { 1647 Name (_HID, "ACPI0004") 1648 Name (_UID, "SCKCPUR") 1649 1650 Method (_STA, 0, NotSerialized) 1651 { 1652 IF (CPCK(0x1b)) 1653 { 1654 Return (0xF) 1655 } 1656 Else 1657 { 1658 Return (0x0) 1659 } 1660 } 1661 1042 1662 Processor (CPUR, /* Name */ 1043 1663 0x1b, /* Id */ … … 1046 1666 ) 1047 1667 { 1048 Method(_MAT, 0) { 1668 Name (_HID, "ACPI0007") 1669 Name (_UID, "SCKR-CPU0") 1670 Name (_PXM, 0x00) 1671 1672 Method(_MAT, 0) 1673 { 1049 1674 IF (CPCK(0x1b)) 1050 1675 { … … 1057 1682 } 1058 1683 } 1684 1059 1685 Method(_STA) // Used for device presence detection 1060 1686 { … … 1068 1694 } 1069 1695 } 1696 1070 1697 Method(_EJ0, 1) 1071 1698 { … … 1074 1701 } 1075 1702 } 1703 } 1704 1705 Device (SCKS) 1706 { 1707 Name (_HID, "ACPI0004") 1708 Name (_UID, "SCKCPUS") 1709 1710 Method (_STA, 0, NotSerialized) 1711 { 1712 IF (CPCK(0x1c)) 1713 { 1714 Return (0xF) 1715 } 1716 Else 1717 { 1718 Return (0x0) 1719 } 1720 } 1721 1076 1722 Processor (CPUS, /* Name */ 1077 1723 0x1c, /* Id */ … … 1080 1726 ) 1081 1727 { 1082 Method(_MAT, 0) { 1728 Name (_HID, "ACPI0007") 1729 Name (_UID, "SCKS-CPU0") 1730 Name (_PXM, 0x00) 1731 1732 Method(_MAT, 0) 1733 { 1083 1734 IF (CPCK(0x1c)) 1084 1735 { … … 1091 1742 } 1092 1743 } 1744 1093 1745 Method(_STA) // Used for device presence detection 1094 1746 { … … 1102 1754 } 1103 1755 } 1756 1104 1757 Method(_EJ0, 1) 1105 1758 { … … 1108 1761 } 1109 1762 } 1763 } 1764 1765 Device (SCKT) 1766 { 1767 Name (_HID, "ACPI0004") 1768 Name (_UID, "SCKCPUT") 1769 1770 Method (_STA, 0, NotSerialized) 1771 { 1772 IF (CPCK(0x1d)) 1773 { 1774 Return (0xF) 1775 } 1776 Else 1777 { 1778 Return (0x0) 1779 } 1780 } 1781 1110 1782 Processor (CPUT, /* Name */ 1111 1783 0x1d, /* Id */ … … 1114 1786 ) 1115 1787 { 1116 Method(_MAT, 0) { 1788 Name (_HID, "ACPI0007") 1789 Name (_UID, "SCKT-CPU0") 1790 Name (_PXM, 0x00) 1791 1792 Method(_MAT, 0) 1793 { 1117 1794 IF (CPCK(0x1d)) 1118 1795 { … … 1125 1802 } 1126 1803 } 1804 1127 1805 Method(_STA) // Used for device presence detection 1128 1806 { … … 1136 1814 } 1137 1815 } 1816 1138 1817 Method(_EJ0, 1) 1139 1818 { … … 1142 1821 } 1143 1822 } 1823 } 1824 1825 Device (SCKU) 1826 { 1827 Name (_HID, "ACPI0004") 1828 Name (_UID, "SCKCPUU") 1829 1830 Method (_STA, 0, NotSerialized) 1831 { 1832 IF (CPCK(0x1e)) 1833 { 1834 Return (0xF) 1835 } 1836 Else 1837 { 1838 Return (0x0) 1839 } 1840 } 1841 1144 1842 Processor (CPUU, /* Name */ 1145 1843 0x1e, /* Id */ … … 1148 1846 ) 1149 1847 { 1150 Method(_MAT, 0) { 1848 Name (_HID, "ACPI0007") 1849 Name (_UID, "SCKU-CPU0") 1850 Name (_PXM, 0x00) 1851 1852 Method(_MAT, 0) 1853 { 1151 1854 IF (CPCK(0x1e)) 1152 1855 { … … 1159 1862 } 1160 1863 } 1864 1161 1865 Method(_STA) // Used for device presence detection 1162 1866 { … … 1170 1874 } 1171 1875 } 1876 1172 1877 Method(_EJ0, 1) 1173 1878 { … … 1176 1881 } 1177 1882 } 1883 } 1884 1885 Device (SCKV) 1886 { 1887 Name (_HID, "ACPI0004") 1888 Name (_UID, "SCKCPUV") 1889 1890 Method (_STA, 0, NotSerialized) 1891 { 1892 IF (CPCK(0x1f)) 1893 { 1894 Return (0xF) 1895 } 1896 Else 1897 { 1898 Return (0x0) 1899 } 1900 } 1901 1178 1902 Processor (CPUV, /* Name */ 1179 1903 0x1f, /* Id */ … … 1182 1906 ) 1183 1907 { 1184 Method(_MAT, 0) { 1908 Name (_HID, "ACPI0007") 1909 Name (_UID, "SCKV-CPU0") 1910 Name (_PXM, 0x00) 1911 1912 Method(_MAT, 0) 1913 { 1185 1914 IF (CPCK(0x1f)) 1186 1915 { … … 1193 1922 } 1194 1923 } 1924 1195 1925 Method(_STA) // Used for device presence detection 1196 1926 { … … 1204 1934 } 1205 1935 } 1936 1206 1937 Method(_EJ0, 1) 1207 1938 { … … 1224 1955 //IF (And(\_SB.CPUD, 0x2)) 1225 1956 //{ 1226 // Notify(\_PR. HPL.CPU1, 0x3)1957 // Notify(\_PR.SCK1, 0x3) 1227 1958 //} 1228 1959 1229 1960 IF (CPCK(0x01)) 1230 1961 { 1231 Notify (\_ PR.HPL.CPU1, 0x0)1962 Notify (\_SB.SCK1, 0x1) 1232 1963 } 1233 1964 IF (CPCK(0x02)) 1234 1965 { 1235 Notify (\_ PR.HPL.CPU2, 0x0)1966 Notify (\_SB.SCK2, 0x1) 1236 1967 } 1237 1968 IF (CPCK(0x03)) 1238 1969 { 1239 Notify (\_ PR.HPL.CPU3, 0x0)1970 Notify (\_SB.SCK3, 0x1) 1240 1971 } 1241 1972 IF (CPCK(0x04)) 1242 1973 { 1243 Notify (\_ PR.HPL.CPU4, 0x0)1974 Notify (\_SB.SCK4, 0x1) 1244 1975 } 1245 1976 IF (CPCK(0x05)) 1246 1977 { 1247 Notify (\_ PR.HPL.CPU5, 0x0)1978 Notify (\_SB.SCK5, 0x1) 1248 1979 } 1249 1980 IF (CPCK(0x06)) 1250 1981 { 1251 Notify (\_ PR.HPL.CPU6, 0x0)1982 Notify (\_SB.SCK6, 0x1) 1252 1983 } 1253 1984 IF (CPCK(0x07)) 1254 1985 { 1255 Notify (\_ PR.HPL.CPU7, 0x0)1986 Notify (\_SB.SCK7, 0x1) 1256 1987 } 1257 1988 IF (CPCK(0x08)) 1258 1989 { 1259 Notify (\_ PR.HPL.CPU8, 0x0)1990 Notify (\_SB.SCK8, 0x1) 1260 1991 } 1261 1992 IF (CPCK(0x09)) 1262 1993 { 1263 Notify (\_ PR.HPL.CPU9, 0x0)1994 Notify (\_SB.SCK9, 0x1) 1264 1995 } 1265 1996 IF (CPCK(0x0a)) 1266 1997 { 1267 Notify (\_ PR.HPL.CPUA, 0x0)1998 Notify (\_SB.SCKA, 0x1) 1268 1999 } 1269 2000 IF (CPCK(0x0b)) 1270 2001 { 1271 Notify (\_ PR.HPL.CPUB, 0x0)2002 Notify (\_SB.SCKB, 0x1) 1272 2003 } 1273 2004 IF (CPCK(0x0c)) 1274 2005 { 1275 Notify (\_ PR.HPL.CPUC, 0x0)2006 Notify (\_SB.SCKC, 0x1) 1276 2007 } 1277 2008 IF (CPCK(0x0d)) 1278 2009 { 1279 Notify (\_ PR.HPL.CPUD, 0x0)2010 Notify (\_SB.SCKD, 0x1) 1280 2011 } 1281 2012 IF (CPCK(0x0e)) 1282 2013 { 1283 Notify (\_ PR.HPL.CPUE, 0x0)2014 Notify (\_SB.SCKE, 0x1) 1284 2015 } 1285 2016 IF (CPCK(0x0f)) 1286 2017 { 1287 Notify (\_ PR.HPL.CPUF, 0x0)2018 Notify (\_SB.SCKF, 0x1) 1288 2019 } 1289 2020 IF (CPCK(0x10)) 1290 2021 { 1291 Notify (\_ PR.HPL.CPUG, 0x0)2022 Notify (\_SB.SCKG, 0x1) 1292 2023 } 1293 2024 IF (CPCK(0x11)) 1294 2025 { 1295 Notify (\_ PR.HPL.CPUH, 0x0)2026 Notify (\_SB.SCKH, 0x1) 1296 2027 } 1297 2028 IF (CPCK(0x12)) 1298 2029 { 1299 Notify (\_ PR.HPL.CPUI, 0x0)2030 Notify (\_SB.SCKI, 0x1) 1300 2031 } 1301 2032 IF (CPCK(0x13)) 1302 2033 { 1303 Notify (\_ PR.HPL.CPUJ, 0x0)2034 Notify (\_SB.SCKJ, 0x1) 1304 2035 } 1305 2036 IF (CPCK(0x14)) 1306 2037 { 1307 Notify (\_ PR.HPL.CPUK, 0x0)2038 Notify (\_SB.SCKK, 0x1) 1308 2039 } 1309 2040 IF (CPCK(0x15)) 1310 2041 { 1311 Notify (\_ PR.HPL.CPUL, 0x0)2042 Notify (\_SB.SCKL, 0x1) 1312 2043 } 1313 2044 IF (CPCK(0x16)) 1314 2045 { 1315 Notify (\_ PR.HPL.CPUM, 0x0)2046 Notify (\_SB.SCKM, 0x1) 1316 2047 } 1317 2048 IF (CPCK(0x17)) 1318 2049 { 1319 Notify (\_ PR.HPL.CPUN, 0x0)2050 Notify (\_SB.SCKN, 0x1) 1320 2051 } 1321 2052 IF (CPCK(0x18)) 1322 2053 { 1323 Notify (\_ PR.HPL.CPUO, 0x0)2054 Notify (\_SB.SCKO, 0x1) 1324 2055 } 1325 2056 IF (CPCK(0x19)) 1326 2057 { 1327 Notify (\_ PR.HPL.CPUP, 0x0)2058 Notify (\_SB.SCKP, 0x1) 1328 2059 } 1329 2060 IF (CPCK(0x1a)) 1330 2061 { 1331 Notify (\_ PR.HPL.CPUQ, 0x0)2062 Notify (\_SB.SCKQ, 0x1) 1332 2063 } 1333 2064 IF (CPCK(0x1b)) 1334 2065 { 1335 Notify (\_ PR.HPL.CPUR, 0x0)2066 Notify (\_SB.SCKR, 0x1) 1336 2067 } 1337 2068 IF (CPCK(0x1c)) 1338 2069 { 1339 Notify (\_ PR.HPL.CPUS, 0x0)2070 Notify (\_SB.SCKS, 0x1) 1340 2071 } 1341 2072 IF (CPCK(0x1d)) 1342 2073 { 1343 Notify (\_ PR.HPL.CPUT, 0x0)2074 Notify (\_SB.SCKT, 0x1) 1344 2075 } 1345 2076 IF (CPCK(0x1e)) 1346 2077 { 1347 Notify (\_ PR.HPL.CPUU, 0x0)2078 Notify (\_SB.SCKU, 0x1) 1348 2079 } 1349 2080 IF (CPCK(0x1f)) 1350 2081 { 1351 Notify (\_ PR.HPL.CPUV, 0x0)2082 Notify (\_SB.SCKV, 0x1) 1352 2083 } 1353 2084 } 1354 2085 } 1355 2086 1356 Scope (\_SB)1357 {1358 OperationRegion (SYSI, SystemIO, 0x4048, 0x08)1359 Field (SYSI, DwordAcc, NoLock, Preserve)1360 {1361 IDX0, 32,1362 DAT0, 32,1363 }1364 1365 IndexField (IDX0, DAT0, DwordAcc, NoLock, Preserve)1366 {1367 MEML, 32,1368 UIOA, 32,1369 UHPT, 32,1370 USMC, 32,1371 UFDC, 32,1372 // @todo: maybe make it bitmask instead?1373 UCP0, 32,1374 UCP1, 32,1375 UCP2, 32,1376 UCP3, 32,1377 MEMH, 32,1378 URTC, 32,1379 CPUL, 32,1380 CPUC, 32,1381 Offset (0x80),1382 ININ, 32,1383 Offset (0x200),1384 VAIN, 32,1385 }1386 1387 Method (_INI, 0, NotSerialized)1388 {1389 Store (0xbadc0de, VAIN)1390 DBG ("MEML: ")1391 HEX4 (MEML)1392 DBG ("UIOA: ")1393 HEX4 (UIOA)1394 DBG ("UHPT: ")1395 HEX4 (UHPT)1396 DBG ("USMC: ")1397 HEX4 (USMC)1398 DBG ("UFDC: ")1399 HEX4 (UFDC)1400 DBG ("UCP0: ")1401 HEX4 (UCP0)1402 DBG ("MEMH: ")1403 HEX4 (MEMH)1404 }1405 1406 // PCI PIC IRQ Routing table1407 // Must match pci.c:pci_slot_get_pirq1408 Name (PR00, Package ()1409 {1410 Package (0x04) {0x0002FFFF, 0x00, LNKB, 0x00,},1411 Package (0x04) {0x0002FFFF, 0x01, LNKC, 0x00,},1412 Package (0x04) {0x0002FFFF, 0x02, LNKD, 0x00,},1413 Package (0x04) {0x0002FFFF, 0x03, LNKA, 0x00,},1414 1415 Package (0x04) {0x0003FFFF, 0x00, LNKC, 0x00,},1416 Package (0x04) {0x0003FFFF, 0x01, LNKD, 0x00,},1417 Package (0x04) {0x0003FFFF, 0x02, LNKA, 0x00,},1418 Package (0x04) {0x0003FFFF, 0x03, LNKB, 0x00,},1419 1420 Package (0x04) {0x0004FFFF, 0x00, LNKD, 0x00,},1421 Package (0x04) {0x0004FFFF, 0x01, LNKA, 0x00,},1422 Package (0x04) {0x0004FFFF, 0x02, LNKB, 0x00,},1423 Package (0x04) {0x0004FFFF, 0x03, LNKC, 0x00,},1424 1425 Package (0x04) {0x0005FFFF, 0x00, LNKA, 0x00,},1426 Package (0x04) {0x0005FFFF, 0x01, LNKB, 0x00,},1427 Package (0x04) {0x0005FFFF, 0x02, LNKC, 0x00,},1428 Package (0x04) {0x0005FFFF, 0x03, LNKD, 0x00,},1429 1430 Package (0x04) {0x0006FFFF, 0x00, LNKB, 0x00,},1431 Package (0x04) {0x0006FFFF, 0x01, LNKC, 0x00,},1432 Package (0x04) {0x0006FFFF, 0x02, LNKD, 0x00,},1433 Package (0x04) {0x0006FFFF, 0x03, LNKA, 0x00,},1434 1435 Package (0x04) {0x0007FFFF, 0x00, LNKC, 0x00,},1436 Package (0x04) {0x0007FFFF, 0x01, LNKD, 0x00,},1437 Package (0x04) {0x0007FFFF, 0x02, LNKA, 0x00,},1438 Package (0x04) {0x0007FFFF, 0x03, LNKB, 0x00,},1439 1440 Package (0x04) {0x0008FFFF, 0x00, LNKD, 0x00,},1441 Package (0x04) {0x0008FFFF, 0x01, LNKA, 0x00,},1442 Package (0x04) {0x0008FFFF, 0x02, LNKB, 0x00,},1443 Package (0x04) {0x0008FFFF, 0x03, LNKC, 0x00,},1444 1445 Package (0x04) {0x0009FFFF, 0x00, LNKA, 0x00,},1446 Package (0x04) {0x0009FFFF, 0x01, LNKB, 0x00,},1447 Package (0x04) {0x0009FFFF, 0x02, LNKC, 0x00,},1448 Package (0x04) {0x0009FFFF, 0x03, LNKD, 0x00,},1449 1450 Package (0x04) {0x000AFFFF, 0x00, LNKB, 0x00,},1451 Package (0x04) {0x000AFFFF, 0x01, LNKC, 0x00,},1452 Package (0x04) {0x000AFFFF, 0x02, LNKD, 0x00,},1453 Package (0x04) {0x000AFFFF, 0x03, LNKA, 0x00,},1454 1455 Package (0x04) {0x000BFFFF, 0x00, LNKC, 0x00,},1456 Package (0x04) {0x000BFFFF, 0x01, LNKD, 0x00,},1457 Package (0x04) {0x000BFFFF, 0x02, LNKA, 0x00,},1458 Package (0x04) {0x000BFFFF, 0x03, LNKB, 0x00,},1459 1460 Package (0x04) {0x000CFFFF, 0x00, LNKD, 0x00,},1461 Package (0x04) {0x000CFFFF, 0x01, LNKA, 0x00,},1462 Package (0x04) {0x000CFFFF, 0x02, LNKB, 0x00,},1463 Package (0x04) {0x000CFFFF, 0x03, LNKC, 0x00,},1464 1465 Package (0x04) {0x000DFFFF, 0x00, LNKA, 0x00,},1466 Package (0x04) {0x000DFFFF, 0x01, LNKB, 0x00,},1467 Package (0x04) {0x000DFFFF, 0x02, LNKC, 0x00,},1468 Package (0x04) {0x000DFFFF, 0x03, LNKD, 0x00,},1469 1470 Package (0x04) {0x000EFFFF, 0x00, LNKB, 0x00,},1471 Package (0x04) {0x000EFFFF, 0x01, LNKC, 0x00,},1472 Package (0x04) {0x000EFFFF, 0x02, LNKD, 0x00,},1473 Package (0x04) {0x000EFFFF, 0x03, LNKA, 0x00,},1474 1475 Package (0x04) {0x000FFFFF, 0x00, LNKC, 0x00,},1476 Package (0x04) {0x000FFFFF, 0x01, LNKD, 0x00,},1477 Package (0x04) {0x000FFFFF, 0x02, LNKA, 0x00,},1478 Package (0x04) {0x000FFFFF, 0x03, LNKB, 0x00,},1479 1480 Package (0x04) {0x0010FFFF, 0x00, LNKD, 0x00,},1481 Package (0x04) {0x0010FFFF, 0x01, LNKA, 0x00,},1482 Package (0x04) {0x0010FFFF, 0x02, LNKB, 0x00,},1483 Package (0x04) {0x0010FFFF, 0x03, LNKC, 0x00,},1484 1485 Package (0x04) {0x0011FFFF, 0x00, LNKA, 0x00,},1486 Package (0x04) {0x0011FFFF, 0x01, LNKB, 0x00,},1487 Package (0x04) {0x0011FFFF, 0x02, LNKC, 0x00,},1488 Package (0x04) {0x0011FFFF, 0x03, LNKD, 0x00,},1489 1490 Package (0x04) {0x0012FFFF, 0x00, LNKB, 0x00,},1491 Package (0x04) {0x0012FFFF, 0x01, LNKC, 0x00,},1492 Package (0x04) {0x0012FFFF, 0x02, LNKD, 0x00,},1493 Package (0x04) {0x0012FFFF, 0x03, LNKA, 0x00,},1494 1495 Package (0x04) {0x0013FFFF, 0x00, LNKC, 0x00,},1496 Package (0x04) {0x0013FFFF, 0x01, LNKD, 0x00,},1497 Package (0x04) {0x0013FFFF, 0x02, LNKA, 0x00,},1498 Package (0x04) {0x0013FFFF, 0x03, LNKB, 0x00,},1499 1500 Package (0x04) {0x0014FFFF, 0x00, LNKD, 0x00,},1501 Package (0x04) {0x0014FFFF, 0x01, LNKA, 0x00,},1502 Package (0x04) {0x0014FFFF, 0x02, LNKB, 0x00,},1503 Package (0x04) {0x0014FFFF, 0x03, LNKC, 0x00,},1504 1505 Package (0x04) {0x0015FFFF, 0x00, LNKA, 0x00,},1506 Package (0x04) {0x0015FFFF, 0x01, LNKB, 0x00,},1507 Package (0x04) {0x0015FFFF, 0x02, LNKC, 0x00,},1508 Package (0x04) {0x0015FFFF, 0x03, LNKD, 0x00,},1509 1510 Package (0x04) {0x0016FFFF, 0x00, LNKB, 0x00,},1511 Package (0x04) {0x0016FFFF, 0x01, LNKC, 0x00,},1512 Package (0x04) {0x0016FFFF, 0x02, LNKD, 0x00,},1513 Package (0x04) {0x0016FFFF, 0x03, LNKA, 0x00,},1514 1515 Package (0x04) {0x0017FFFF, 0x00, LNKC, 0x00,},1516 Package (0x04) {0x0017FFFF, 0x01, LNKD, 0x00,},1517 Package (0x04) {0x0017FFFF, 0x02, LNKA, 0x00,},1518 Package (0x04) {0x0017FFFF, 0x03, LNKB, 0x00,},1519 1520 Package (0x04) {0x0018FFFF, 0x00, LNKD, 0x00,},1521 Package (0x04) {0x0018FFFF, 0x01, LNKA, 0x00,},1522 Package (0x04) {0x0018FFFF, 0x02, LNKB, 0x00,},1523 Package (0x04) {0x0018FFFF, 0x03, LNKC, 0x00,},1524 1525 Package (0x04) {0x0019FFFF, 0x00, LNKA, 0x00,},1526 Package (0x04) {0x0019FFFF, 0x01, LNKB, 0x00,},1527 Package (0x04) {0x0019FFFF, 0x02, LNKC, 0x00,},1528 Package (0x04) {0x0019FFFF, 0x03, LNKD, 0x00,},1529 1530 Package (0x04) {0x001AFFFF, 0x00, LNKB, 0x00,},1531 Package (0x04) {0x001AFFFF, 0x01, LNKC, 0x00,},1532 Package (0x04) {0x001AFFFF, 0x02, LNKD, 0x00,},1533 Package (0x04) {0x001AFFFF, 0x03, LNKA, 0x00,},1534 1535 Package (0x04) {0x001BFFFF, 0x00, LNKC, 0x00,},1536 Package (0x04) {0x001BFFFF, 0x01, LNKD, 0x00,},1537 Package (0x04) {0x001BFFFF, 0x02, LNKA, 0x00,},1538 Package (0x04) {0x001BFFFF, 0x03, LNKB, 0x00,},1539 1540 Package (0x04) {0x001CFFFF, 0x00, LNKD, 0x00,},1541 Package (0x04) {0x001CFFFF, 0x01, LNKA, 0x00,},1542 Package (0x04) {0x001CFFFF, 0x02, LNKB, 0x00,},1543 Package (0x04) {0x001CFFFF, 0x03, LNKC, 0x00,},1544 1545 Package (0x04) {0x001DFFFF, 0x00, LNKA, 0x00,},1546 Package (0x04) {0x001DFFFF, 0x01, LNKB, 0x00,},1547 Package (0x04) {0x001DFFFF, 0x02, LNKC, 0x00,},1548 Package (0x04) {0x001DFFFF, 0x03, LNKD, 0x00,},1549 1550 Package (0x04) {0x001EFFFF, 0x00, LNKB, 0x00,},1551 Package (0x04) {0x001EFFFF, 0x01, LNKC, 0x00,},1552 Package (0x04) {0x001EFFFF, 0x02, LNKD, 0x00,},1553 Package (0x04) {0x001EFFFF, 0x03, LNKA, 0x00,},1554 1555 Package (0x04) {0x001FFFFF, 0x00, LNKC, 0x00,},1556 Package (0x04) {0x001FFFFF, 0x01, LNKD, 0x00,},1557 Package (0x04) {0x001FFFFF, 0x02, LNKA, 0x00,},1558 Package (0x04) {0x001FFFFF, 0x03, LNKB, 0x00,}1559 })1560 1561 // PCI I/O APIC IRQ Routing table1562 // Must match pci.c:pci_slot_get_acpi_pirq1563 Name (PR01, Package ()1564 {1565 Package (0x04) {0x0002FFFF, 0x00, 0x00, 0x12,},1566 Package (0x04) {0x0002FFFF, 0x01, 0x00, 0x13,},1567 Package (0x04) {0x0002FFFF, 0x02, 0x00, 0x14,},1568 Package (0x04) {0x0002FFFF, 0x03, 0x00, 0x15,},1569 1570 Package (0x04) {0x0003FFFF, 0x00, 0x00, 0x13,},1571 Package (0x04) {0x0003FFFF, 0x01, 0x00, 0x14,},1572 Package (0x04) {0x0003FFFF, 0x02, 0x00, 0x15,},1573 Package (0x04) {0x0003FFFF, 0x03, 0x00, 0x16,},1574 1575 Package (0x04) {0x0004FFFF, 0x00, 0x00, 0x14,},1576 Package (0x04) {0x0004FFFF, 0x01, 0x00, 0x15,},1577 Package (0x04) {0x0004FFFF, 0x02, 0x00, 0x16,},1578 Package (0x04) {0x0004FFFF, 0x03, 0x00, 0x17,},1579 1580 Package (0x04) {0x0005FFFF, 0x00, 0x00, 0x15,},1581 Package (0x04) {0x0005FFFF, 0x01, 0x00, 0x16,},1582 Package (0x04) {0x0005FFFF, 0x02, 0x00, 0x17,},1583 Package (0x04) {0x0005FFFF, 0x03, 0x00, 0x10,},1584 1585 Package (0x04) {0x0006FFFF, 0x00, 0x00, 0x16,},1586 Package (0x04) {0x0006FFFF, 0x01, 0x00, 0x17,},1587 Package (0x04) {0x0006FFFF, 0x02, 0x00, 0x10,},1588 Package (0x04) {0x0006FFFF, 0x03, 0x00, 0x11,},1589 1590 Package (0x04) {0x0007FFFF, 0x00, 0x00, 0x17,},1591 Package (0x04) {0x0007FFFF, 0x01, 0x00, 0x10,},1592 Package (0x04) {0x0007FFFF, 0x02, 0x00, 0x11,},1593 Package (0x04) {0x0007FFFF, 0x03, 0x00, 0x12,},1594 1595 Package (0x04) {0x0008FFFF, 0x00, 0x00, 0x10,},1596 Package (0x04) {0x0008FFFF, 0x01, 0x00, 0x11,},1597 Package (0x04) {0x0008FFFF, 0x02, 0x00, 0x12,},1598 Package (0x04) {0x0008FFFF, 0x03, 0x00, 0x13,},1599 1600 Package (0x04) {0x0009FFFF, 0x00, 0x00, 0x11,},1601 Package (0x04) {0x0009FFFF, 0x01, 0x00, 0x12,},1602 Package (0x04) {0x0009FFFF, 0x02, 0x00, 0x13,},1603 Package (0x04) {0x0009FFFF, 0x03, 0x00, 0x14,},1604 1605 Package (0x04) {0x000AFFFF, 0x00, 0x00, 0x12,},1606 Package (0x04) {0x000AFFFF, 0x01, 0x00, 0x13,},1607 Package (0x04) {0x000AFFFF, 0x02, 0x00, 0x14,},1608 Package (0x04) {0x000AFFFF, 0x03, 0x00, 0x15,},1609 1610 Package (0x04) {0x000BFFFF, 0x00, 0x00, 0x13,},1611 Package (0x04) {0x000BFFFF, 0x01, 0x00, 0x14,},1612 Package (0x04) {0x000BFFFF, 0x02, 0x00, 0x15,},1613 Package (0x04) {0x000BFFFF, 0x03, 0x00, 0x16,},1614 1615 Package (0x04) {0x000CFFFF, 0x00, 0x00, 0x14,},1616 Package (0x04) {0x000CFFFF, 0x01, 0x00, 0x15,},1617 Package (0x04) {0x000CFFFF, 0x02, 0x00, 0x16,},1618 Package (0x04) {0x000CFFFF, 0x03, 0x00, 0x17,},1619 1620 Package (0x04) {0x000DFFFF, 0x00, 0x00, 0x15,},1621 Package (0x04) {0x000DFFFF, 0x01, 0x00, 0x16,},1622 Package (0x04) {0x000DFFFF, 0x02, 0x00, 0x17,},1623 Package (0x04) {0x000DFFFF, 0x03, 0x00, 0x10,},1624 1625 Package (0x04) {0x000EFFFF, 0x00, 0x00, 0x16,},1626 Package (0x04) {0x000EFFFF, 0x01, 0x00, 0x17,},1627 Package (0x04) {0x000EFFFF, 0x02, 0x00, 0x10,},1628 Package (0x04) {0x000EFFFF, 0x03, 0x00, 0x11,},1629 1630 Package (0x04) {0x000FFFFF, 0x00, 0x00, 0x17,},1631 Package (0x04) {0x000FFFFF, 0x01, 0x00, 0x10,},1632 Package (0x04) {0x000FFFFF, 0x02, 0x00, 0x11,},1633 Package (0x04) {0x000FFFFF, 0x03, 0x00, 0x12,},1634 1635 Package (0x04) {0x0010FFFF, 0x00, 0x00, 0x10,},1636 Package (0x04) {0x0010FFFF, 0x01, 0x00, 0x11,},1637 Package (0x04) {0x0010FFFF, 0x02, 0x00, 0x12,},1638 Package (0x04) {0x0010FFFF, 0x03, 0x00, 0x13,},1639 1640 Package (0x04) {0x0011FFFF, 0x00, 0x00, 0x11,},1641 Package (0x04) {0x0011FFFF, 0x01, 0x00, 0x12,},1642 Package (0x04) {0x0011FFFF, 0x02, 0x00, 0x13,},1643 Package (0x04) {0x0011FFFF, 0x03, 0x00, 0x14,},1644 1645 Package (0x04) {0x0012FFFF, 0x00, 0x00, 0x12,},1646 Package (0x04) {0x0012FFFF, 0x01, 0x00, 0x13,},1647 Package (0x04) {0x0012FFFF, 0x02, 0x00, 0x14,},1648 Package (0x04) {0x0012FFFF, 0x03, 0x00, 0x15,},1649 1650 Package (0x04) {0x0013FFFF, 0x00, 0x00, 0x13,},1651 Package (0x04) {0x0013FFFF, 0x01, 0x00, 0x14,},1652 Package (0x04) {0x0013FFFF, 0x02, 0x00, 0x15,},1653 Package (0x04) {0x0013FFFF, 0x03, 0x00, 0x16,},1654 1655 Package (0x04) {0x0014FFFF, 0x00, 0x00, 0x14,},1656 Package (0x04) {0x0014FFFF, 0x01, 0x00, 0x15,},1657 Package (0x04) {0x0014FFFF, 0x02, 0x00, 0x16,},1658 Package (0x04) {0x0014FFFF, 0x03, 0x00, 0x17,},1659 1660 Package (0x04) {0x0015FFFF, 0x00, 0x00, 0x15,},1661 Package (0x04) {0x0015FFFF, 0x01, 0x00, 0x16,},1662 Package (0x04) {0x0015FFFF, 0x02, 0x00, 0x17,},1663 Package (0x04) {0x0015FFFF, 0x03, 0x00, 0x10,},1664 1665 Package (0x04) {0x0016FFFF, 0x00, 0x00, 0x16,},1666 Package (0x04) {0x0016FFFF, 0x01, 0x00, 0x17,},1667 Package (0x04) {0x0016FFFF, 0x02, 0x00, 0x10,},1668 Package (0x04) {0x0016FFFF, 0x03, 0x00, 0x11,},1669 1670 Package (0x04) {0x0017FFFF, 0x00, 0x00, 0x17,},1671 Package (0x04) {0x0017FFFF, 0x01, 0x00, 0x10,},1672 Package (0x04) {0x0017FFFF, 0x02, 0x00, 0x11,},1673 Package (0x04) {0x0017FFFF, 0x03, 0x00, 0x12,},1674 1675 Package (0x04) {0x0018FFFF, 0x00, 0x00, 0x10,},1676 Package (0x04) {0x0018FFFF, 0x01, 0x00, 0x11,},1677 Package (0x04) {0x0018FFFF, 0x02, 0x00, 0x12,},1678 Package (0x04) {0x0018FFFF, 0x03, 0x00, 0x13,},1679 1680 Package (0x04) {0x0019FFFF, 0x00, 0x00, 0x11,},1681 Package (0x04) {0x0019FFFF, 0x01, 0x00, 0x12,},1682 Package (0x04) {0x0019FFFF, 0x02, 0x00, 0x13,},1683 Package (0x04) {0x0019FFFF, 0x03, 0x00, 0x14,},1684 1685 Package (0x04) {0x001AFFFF, 0x00, 0x00, 0x12,},1686 Package (0x04) {0x001AFFFF, 0x01, 0x00, 0x13,},1687 Package (0x04) {0x001AFFFF, 0x02, 0x00, 0x14,},1688 Package (0x04) {0x001AFFFF, 0x03, 0x00, 0x15,},1689 1690 Package (0x04) {0x001BFFFF, 0x00, 0x00, 0x13,},1691 Package (0x04) {0x001BFFFF, 0x01, 0x00, 0x14,},1692 Package (0x04) {0x001BFFFF, 0x02, 0x00, 0x15,},1693 Package (0x04) {0x001BFFFF, 0x03, 0x00, 0x16,},1694 1695 Package (0x04) {0x001CFFFF, 0x00, 0x00, 0x14,},1696 Package (0x04) {0x001CFFFF, 0x01, 0x00, 0x15,},1697 Package (0x04) {0x001CFFFF, 0x02, 0x00, 0x16,},1698 Package (0x04) {0x001CFFFF, 0x03, 0x00, 0x17,},1699 1700 Package (0x04) {0x001DFFFF, 0x00, 0x00, 0x15,},1701 Package (0x04) {0x001DFFFF, 0x01, 0x00, 0x16,},1702 Package (0x04) {0x001DFFFF, 0x02, 0x00, 0x17,},1703 Package (0x04) {0x001DFFFF, 0x03, 0x00, 0x10,},1704 1705 Package (0x04) {0x001EFFFF, 0x00, 0x00, 0x16,},1706 Package (0x04) {0x001EFFFF, 0x01, 0x00, 0x17,},1707 Package (0x04) {0x001EFFFF, 0x02, 0x00, 0x10,},1708 Package (0x04) {0x001EFFFF, 0x03, 0x00, 0x11,},1709 1710 Package (0x04) {0x001FFFFF, 0x00, 0x00, 0x17,},1711 Package (0x04) {0x001FFFFF, 0x01, 0x00, 0x10,},1712 Package (0x04) {0x001FFFFF, 0x02, 0x00, 0x11,},1713 Package (0x04) {0x001FFFFF, 0x03, 0x00, 0x12,}1714 })1715 1716 // Possible resource settings for PCI link A1717 Name (PRSA, ResourceTemplate ()1718 {1719 IRQ (Level, ActiveLow, Shared) {5,9,10,11}1720 })1721 1722 // Possible resource settings for PCI link B1723 Name (PRSB, ResourceTemplate ()1724 {1725 IRQ (Level, ActiveLow, Shared) {5,9,10,11}1726 })1727 1728 // Possible resource settings for PCI link C1729 Name (PRSC, ResourceTemplate ()1730 {1731 IRQ (Level, ActiveLow, Shared) {5,9,10,11}1732 })1733 1734 // Possible resource settings for PCI link D1735 Name (PRSD, ResourceTemplate ()1736 {1737 IRQ (Level, ActiveLow, Shared) {5,9,10,11}1738 })1739 1740 // PCI bus 01741 Device (PCI0)1742 {1743 Name (_HID, EisaId ("PNP0A03"))1744 Name (_ADR, 0x00) // address1745 Name (_BBN, 0x00) // base bus adddress1746 Name (_UID, 0x00)1747 1748 // Method that returns routing table1749 Method (_PRT, 0, NotSerialized)1750 {1751 if (LEqual (LAnd (PICM, UIOA), Zero)) {1752 DBG ("RETURNING PIC\n")1753 Store (0x00, \_SB.PCI0.SBRG.APDE)1754 Store (0x00, \_SB.PCI0.SBRG.APAD)1755 Return (PR00)1756 }1757 else {1758 DBG ("RETURNING APIC\n")1759 Store (0xbe, \_SB.PCI0.SBRG.APDE)1760 Store (0xef, \_SB.PCI0.SBRG.APAD)1761 Return (PR01)1762 }1763 }1764 1765 Device (SBRG)1766 {1767 // Address of the PIIX3 (device 1 function 0)1768 Name (_ADR, 0x00010000)1769 OperationRegion (PCIC, PCI_Config, 0x00, 0xff)1770 1771 Field (PCIC, ByteAcc, NoLock, Preserve)1772 {1773 Offset (0xad),1774 APAD, 8,1775 Offset (0xde),1776 APDE, 8,1777 }1778 1779 // Keyboard device1780 Device (PS2K)1781 {1782 Name (_HID, EisaId ("PNP0303"))1783 Method (_STA, 0, NotSerialized)1784 {1785 Return (0x0F)1786 }1787 1788 Name (_CRS, ResourceTemplate ()1789 {1790 IO (Decode16, 0x0060, 0x0060, 0x00, 0x01)1791 IO (Decode16, 0x0064, 0x0064, 0x00, 0x01)1792 IRQNoFlags () {1}1793 })1794 }1795 1796 // DMA Controller1797 Device (DMAC)1798 {1799 Name (_HID, EisaId ("PNP0200"))1800 Name (_CRS, ResourceTemplate ()1801 {1802 IO (Decode16, 0x0000, 0x0000, 0x01, 0x10)1803 IO (Decode16, 0x0080, 0x0080, 0x01, 0x10)1804 IO (Decode16, 0x00C0, 0x00C0, 0x01, 0x20)1805 DMA (Compatibility, BusMaster, Transfer8_16) {4}1806 })1807 }1808 1809 // Floppy disk controller1810 Device (FDC0)1811 {1812 Name (_HID, EisaId ("PNP0700"))1813 1814 Method (_STA, 0, NotSerialized)1815 {1816 Return (UFDC)1817 }1818 1819 // Current resource settings1820 Name (_CRS, ResourceTemplate ()1821 {1822 IO (Decode16, 0x03F0, 0x03F0, 0x01, 0x06)1823 IO (Decode16, 0x03F7, 0x03F7, 0x01, 0x01)1824 IRQNoFlags () {6}1825 DMA (Compatibility, NotBusMaster, Transfer8) {2}1826 })1827 1828 // Possible resource settings1829 Name (_PRS, ResourceTemplate ()1830 {1831 IO (Decode16, 0x03F0, 0x03F0, 0x01, 0x06)1832 IO (Decode16, 0x03F7, 0x03F7, 0x01, 0x01)1833 IRQNoFlags () {6}1834 DMA (Compatibility, NotBusMaster, Transfer8) {2}1835 })1836 1837 }1838 1839 // Mouse device1840 Device (PS2M)1841 {1842 Name (_HID, EisaId ("PNP0F03"))1843 Method (_STA, 0, NotSerialized)1844 {1845 Return (0x0F)1846 }1847 1848 Name (_CRS, ResourceTemplate ()1849 {1850 IRQNoFlags () {12}1851 })1852 }1853 1854 // Parallel port1855 Device (LPT)1856 {1857 Name (_HID, EisaId ("PNP0400"))1858 Method (_STA, 0, NotSerialized)1859 {1860 Return (0x0F)1861 }1862 Name (_CRS, ResourceTemplate ()1863 {1864 IO (Decode16, 0x0378, 0x0378, 0x08, 0x08)1865 IO (Decode16, 0x0778, 0x0778, 0x08, 0x08)1866 IRQNoFlags () {7}1867 })1868 }1869 1870 // RTC and CMOS1871 Device (RTC)1872 {1873 Name (_HID, EisaId ("PNP0B00"))1874 Name (_CRS, ResourceTemplate ()1875 {1876 IO (Decode16,1877 0x0070, // Range Minimum1878 0x0070, // Range Maximum1879 0x01, // Alignment1880 0x02, // Length1881 )1882 })1883 Method (_STA, 0, NotSerialized)1884 {1885 Return (0x0f)1886 }1887 }1888 1889 // System Management Controller1890 Device (SMC)1891 {1892 Name (_HID, EisaId ("APP0001"))1893 Name (_CID, "smc-napa")1894 1895 Method (_STA, 0, NotSerialized)1896 {1897 Return (USMC)1898 }1899 Name (_CRS, ResourceTemplate ()1900 {1901 IO (Decode16,1902 0x0300, // Range Minimum1903 0x0300, // Range Maximum1904 0x01, // Alignment1905 0x20, // Length1906 )1907 // This line seriously confuses Windows ACPI driver, so not even try to1908 // enable SMC for Windows guests1909 IRQNoFlags () {8}1910 })1911 }1912 }1913 1914 // Control method battery1915 Device (BAT0)1916 {1917 Name (_HID, EisaId ("PNP0C0A"))1918 Name (_UID, 0x00)1919 1920 Scope (\_GPE)1921 {1922 // GPE bit 0 handler1923 // GPE.0 must be set and SCI raised when1924 // battery info changed and _BIF must be1925 // re-evaluated1926 Method (_L00, 0, NotSerialized)1927 {1928 Notify (\_SB.PCI0.BAT0, 0x81)1929 }1930 }1931 1932 OperationRegion (CBAT, SystemIO, 0x4040, 0x08)1933 Field (CBAT, DwordAcc, NoLock, Preserve)1934 {1935 IDX0, 32,1936 DAT0, 32,1937 }1938 1939 IndexField (IDX0, DAT0, DwordAcc, NoLock, Preserve)1940 {1941 STAT, 32,1942 PRAT, 32,1943 RCAP, 32,1944 PVOL, 32,1945 1946 UNIT, 32,1947 DCAP, 32,1948 LFCP, 32,1949 BTEC, 32,1950 DVOL, 32,1951 DWRN, 32,1952 DLOW, 32,1953 GRN1, 32,1954 GRN2, 32,1955 1956 BSTA, 32,1957 APSR, 32,1958 }1959 1960 Method (_STA, 0, NotSerialized)1961 {1962 return (BSTA)1963 }1964 1965 Name (PBIF, Package ()1966 {1967 0x01, // Power unit, 1 - mA1968 0x7fffffff, // Design capacity1969 0x7fffffff, // Last full charge capacity1970 0x00, // Battery technology1971 0xffffffff, // Design voltage1972 0x00, // Design capacity of Warning1973 0x00, // Design capacity of Low1974 0x04, // Battery capacity granularity 11975 0x04, // Battery capacity granularity 21976 "1", // Model number1977 "0", // Serial number1978 "VBOX", // Battery type1979 "innotek" // OEM Information1980 })1981 1982 Name (PBST, Package () {1983 0, // Battery state1984 0x7fffffff, // Battery present rate1985 0x7fffffff, // Battery remaining capacity1986 0x7fffffff // Battery present voltage1987 })1988 1989 // Battery information1990 Method (_BIF, 0, NotSerialized)1991 {1992 Store (UNIT, Index (PBIF, 0,))1993 Store (DCAP, Index (PBIF, 1,))1994 Store (LFCP, Index (PBIF, 2,))1995 Store (BTEC, Index (PBIF, 3,))1996 Store (DVOL, Index (PBIF, 4,))1997 Store (DWRN, Index (PBIF, 5,))1998 Store (DLOW, Index (PBIF, 6,))1999 Store (GRN1, Index (PBIF, 7,))2000 Store (GRN2, Index (PBIF, 8,))2001 2002 DBG ("_BIF:\n")2003 HEX4 (DerefOf (Index (PBIF, 0,)))2004 HEX4 (DerefOf (Index (PBIF, 1,)))2005 HEX4 (DerefOf (Index (PBIF, 2,)))2006 HEX4 (DerefOf (Index (PBIF, 3,)))2007 HEX4 (DerefOf (Index (PBIF, 4,)))2008 HEX4 (DerefOf (Index (PBIF, 5,)))2009 HEX4 (DerefOf (Index (PBIF, 6,)))2010 HEX4 (DerefOf (Index (PBIF, 7,)))2011 HEX4 (DerefOf (Index (PBIF, 8,)))2012 2013 return (PBIF)2014 }2015 2016 // Battery status2017 Method (_BST, 0, NotSerialized)2018 {2019 Store (STAT, Index (PBST, 0,))2020 Store (PRAT, Index (PBST, 1,))2021 Store (RCAP, Index (PBST, 2,))2022 Store (PVOL, Index (PBST, 3,))2023 /*2024 DBG ("_BST:\n")2025 HEX4 (DerefOf (Index (PBST, 0,)))2026 HEX4 (DerefOf (Index (PBST, 1,)))2027 HEX4 (DerefOf (Index (PBST, 2,)))2028 HEX4 (DerefOf (Index (PBST, 3,)))2029 */2030 return (PBST)2031 }2032 }2033 2034 Device (AC)2035 {2036 Name (_HID, "ACPI0003")2037 Name (_UID, 0x00)2038 Name (_PCL, Package (0x01)2039 {2040 \_SB2041 })2042 2043 Method (_PSR, 0, NotSerialized)2044 {2045 // DBG ("_PSR:\n")2046 // HEX4 (\_SB.PCI0.BAT0.APSR)2047 return (\_SB.PCI0.BAT0.APSR)2048 }2049 2050 Method (_STA, 0, NotSerialized)2051 {2052 return (0x0f)2053 }2054 }2055 }2056 }2057 2058 Scope (\_SB)2059 {2060 Scope (PCI0)2061 {2062 // PCI0 current resource settings2063 Name (CRS, ResourceTemplate ()2064 {2065 WordBusNumber (ResourceProducer, MinFixed, MaxFixed, PosDecode,2066 0x0000,2067 0x0000,2068 0x00FF,2069 0x0000,2070 0x0100)2071 IO (Decode16, 0x0CF8, 0x0CF8, 0x01, 0x08)2072 WordIO (ResourceProducer, MinFixed, MaxFixed,2073 PosDecode, EntireRange,2074 0x0000,2075 0x0000,2076 0x0CF7,2077 0x0000,2078 0x0CF8)2079 WordIO (ResourceProducer, MinFixed, MaxFixed,2080 PosDecode, EntireRange,2081 0x0000,2082 0x0D00,2083 0xFFFF,2084 0x0000,2085 0xF300)2086 2087 /* Taken from ACPI faq (with some modifications) */2088 DwordMemory( // descriptor for video RAM behind ISA bus2089 ResourceProducer, // bit 0 of general flags is 02090 PosDecode,2091 MinFixed, // Range is fixed2092 MaxFixed, // Range is Fixed2093 Cacheable,2094 ReadWrite,2095 0x00000000, // Granularity2096 0x000a0000, // Min2097 0x000bffff, // Max2098 0x00000000, // Translation2099 0x00020000 // Range Length2100 )2101 2102 DwordMemory( // Consumed-and-produced resource2103 // (all of low memory space)2104 ResourceProducer, // bit 0 of general flags is 02105 PosDecode, // positive Decode2106 MinFixed, // Range is fixed2107 MaxFixed, // Range is fixed2108 Cacheable,2109 ReadWrite,2110 0x00000000, // Granularity2111 0x00000000, // Min (calculated dynamically)2112 2113 0xffdfffff, // Max = 4GB - 2MB2114 0x00000000, // Translation2115 0xdfdfffff, // Range Length (calculated2116 // dynamically)2117 , // Optional field left blank2118 , // Optional field left blank2119 MEM3 // Name declaration for this2120 // descriptor2121 )2122 })2123 2124 // Name (TOM, ResourceTemplate () // Memory above 4GB (aka high), appended when needed.2125 // {2126 // QWORDMemory(2127 // ResourceProducer, // bit 0 of general flags is 02128 // PosDecode, // positive Decode2129 // MinFixed, // Range is fixed2130 // MaxFixed, // Range is fixed2131 // Cacheable,2132 // ReadWrite,2133 // 0x0000000000000000, // _GRA: Granularity.2134 // 0 /*0x0000000100000000*/, // _MIN: Min address, 4GB.2135 // 0 /*0x00000fffffffffff*/, // _MAX: Max possible address, 16TB.2136 // 0x0000000000000000, // _TRA: Translation2137 // 0x0000000000000000, // _LEN: Range length (calculated dynamically)2138 // , // ResourceSourceIndex: Optional field left blank2139 // , // ResourceSource: Optional field left blank2140 // MEM4 // Name declaration for this descriptor.2141 // )2142 // })2143 2144 Method (_CRS, 0, NotSerialized)2145 {2146 CreateDwordField (CRS, \_SB.PCI0.MEM3._MIN, RAMT)2147 CreateDwordField (CRS, \_SB.PCI0.MEM3._LEN, RAMR)2148 // CreateQwordField (TOM, \_SB.PCI0.MEM4._LEN, TM4L)2149 // CreateQwordField (TOM, \_SB.PCI0.MEM4._LEN, TM4N)2150 // CreateQwordField (TOM, \_SB.PCI0.MEM4._LEN, TM4X)2151 2152 Store (MEML, RAMT)2153 Subtract (0xffe00000, RAMT, RAMR)2154 2155 // If (LNotEqual (MEMH, 0x00000000))2156 // {2157 // //2158 // // Update the TOM resource template and append it to CRS.2159 // // This way old < 4GB guest doesn't see anything different.2160 // // (MEMH is the memory above 4GB specified in 64KB units.)2161 // //2162 // // Note: ACPI v2 doesn't do 32-bit integers. IASL may fail on2163 // // seeing 64-bit constants and the code probably wont work.2164 // //2165 // Store (1, TM4N)2166 // ShiftLeft (TM4N, 32, TM4N)2167 //2168 // Store (0x00000fff, TM4X)2169 // ShiftLeft (TM4X, 32, TM4X)2170 // Or (TM4X, 0xffffffff, TM4X)2171 //2172 // Store (MEMH, TM4L)2173 // ShiftLeft (TM4L, 16, TM4L)2174 //2175 // ConcatenateResTemplate (CRS, TOM, Local2)2176 // Return (Local2)2177 // }2178 2179 Return (CRS)2180 }2181 }2182 }2183 2184 Scope (\_SB)2185 {2186 // High Precision Event Timer2187 Device(HPET) {2188 Name(_HID, EISAID("PNP0103"))2189 Name (_CID, 0x010CD041)2190 Name(_UID, 0)2191 Method (_STA, 0, NotSerialized) {2192 Return(UHPT)2193 }2194 Name(_CRS, ResourceTemplate() {2195 DWordMemory(2196 ResourceConsumer, PosDecode, MinFixed, MaxFixed,2197 NonCacheable, ReadWrite,2198 0x00000000,2199 0xFED00000,2200 0xFED003FF,2201 0x00000000,2202 0x00000400 /* 1K memory: FED00000 - FED003FF */2203 )2204 })2205 }2206 2207 // Fields within PIIX3 configuration[0x60..0x63] with2208 // IRQ mappings2209 Field (\_SB.PCI0.SBRG.PCIC, ByteAcc, NoLock, Preserve)2210 {2211 Offset (0x60),2212 PIRA, 8,2213 PIRB, 8,2214 PIRC, 8,2215 PIRD, 82216 }2217 2218 Name (BUFA, ResourceTemplate ()2219 {2220 IRQ (Level, ActiveLow, Shared) {15}2221 })2222 CreateWordField (BUFA, 0x01, ICRS)2223 2224 // Generic status of IRQ routing entry2225 Method (LSTA, 1, NotSerialized)2226 {2227 And (Arg0, 0x80, Local0)2228 // DBG ("LSTA: ")2229 // HEX (Arg0)2230 If (Local0)2231 {2232 Return (0x09)2233 }2234 Else2235 {2236 Return (0x0B)2237 }2238 }2239 2240 // Generic "current resource settings" for routing entry2241 Method (LCRS, 1, NotSerialized)2242 {2243 And (Arg0, 0x0F, Local0)2244 ShiftLeft (0x01, Local0, ICRS)2245 // DBG ("LCRS: ")2246 // HEX (ICRS)2247 Return (BUFA)2248 }2249 2250 // Generic "set resource settings" for routing entry2251 Method (LSRS, 1, NotSerialized)2252 {2253 CreateWordField (Arg0, 0x01, ISRS)2254 FindSetRightBit (ISRS, Local0)2255 Return (Decrement (Local0))2256 }2257 2258 // Generic "disable" for routing entry2259 Method (LDIS, 1, NotSerialized)2260 {2261 Return (Or (Arg0, 0x80))2262 }2263 2264 // Link A2265 Device (LNKA)2266 {2267 Name (_HID, EisaId ("PNP0C0F"))2268 Name (_UID, 0x01)2269 2270 // Status2271 Method (_STA, 0, NotSerialized)2272 {2273 DBG ("LNKA._STA\n")2274 Return (LSTA (PIRA))2275 }2276 2277 // Possible resource settings2278 Method (_PRS, 0, NotSerialized)2279 {2280 DBG ("LNKA._PRS\n")2281 Return (PRSA)2282 }2283 2284 // Disable2285 Method (_DIS, 0, NotSerialized)2286 {2287 DBG ("LNKA._DIS\n")2288 Store (LDIS (PIRA), PIRA)2289 }2290 2291 // Current resource settings2292 Method (_CRS, 0, NotSerialized)2293 {2294 DBG ("LNKA._CRS\n")2295 Return (LCRS (PIRA))2296 }2297 2298 // Set resource settings2299 Method (_SRS, 1, NotSerialized)2300 {2301 DBG ("LNKA._SRS: ")2302 HEX (LSRS (Arg0))2303 Store (LSRS (Arg0), PIRA)2304 }2305 }2306 2307 // Link B2308 Device (LNKB)2309 {2310 Name (_HID, EisaId ("PNP0C0F"))2311 Name (_UID, 0x02)2312 Method (_STA, 0, NotSerialized)2313 {2314 // DBG ("LNKB._STA\n")2315 Return (LSTA (PIRB))2316 }2317 2318 Method (_PRS, 0, NotSerialized)2319 {2320 // DBG ("LNKB._PRS\n")2321 Return (PRSB)2322 }2323 2324 Method (_DIS, 0, NotSerialized)2325 {2326 // DBG ("LNKB._DIS\n")2327 Store (LDIS (PIRB), PIRB)2328 }2329 2330 Method (_CRS, 0, NotSerialized)2331 {2332 // DBG ("LNKB._CRS\n")2333 Return (LCRS (PIRB))2334 }2335 2336 Method (_SRS, 1, NotSerialized)2337 {2338 DBG ("LNKB._SRS: ")2339 HEX (LSRS (Arg0))2340 Store (LSRS (Arg0), PIRB)2341 }2342 }2343 2344 // Link C2345 Device (LNKC)2346 {2347 Name (_HID, EisaId ("PNP0C0F"))2348 Name (_UID, 0x03)2349 Method (_STA, 0, NotSerialized)2350 {2351 // DBG ("LNKC._STA\n")2352 Return (LSTA (PIRC))2353 }2354 2355 Method (_PRS, 0, NotSerialized)2356 {2357 // DBG ("LNKC._PRS\n")2358 Return (PRSC)2359 }2360 2361 Method (_DIS, 0, NotSerialized)2362 {2363 // DBG ("LNKC._DIS\n")2364 Store (LDIS (PIRC), PIRC)2365 }2366 2367 Method (_CRS, 0, NotSerialized)2368 {2369 // DBG ("LNKC._CRS\n")2370 Return (LCRS (PIRC))2371 }2372 2373 Method (_SRS, 1, NotSerialized)2374 {2375 DBG ("LNKC._SRS: ")2376 HEX (LSRS (Arg0))2377 Store (LSRS (Arg0), PIRC)2378 }2379 }2380 2381 // Link D2382 Device (LNKD)2383 {2384 Name (_HID, EisaId ("PNP0C0F"))2385 Name (_UID, 0x04)2386 Method (_STA, 0, NotSerialized)2387 {2388 // DBG ("LNKD._STA\n")2389 Return (LSTA (PIRD))2390 }2391 2392 Method (_PRS, 0, NotSerialized)2393 {2394 // DBG ("LNKD._PRS\n")2395 Return (PRSD)2396 }2397 2398 Method (_DIS, 0, NotSerialized)2399 {2400 // DBG ("LNKD._DIS\n")2401 Store (LDIS (PIRA), PIRD)2402 }2403 2404 Method (_CRS, 0, NotSerialized)2405 {2406 // DBG ("LNKD._CRS\n")2407 Return (LCRS (PIRD))2408 }2409 2410 Method (_SRS, 1, NotSerialized)2411 {2412 DBG ("LNKD._SRS: ")2413 HEX (LSRS (Arg0))2414 Store (LSRS (Arg0), PIRD)2415 }2416 }2417 }2418 2419 // Sx states2420 Name (_S0, Package (2) {2421 0x00,2422 0x00,2423 })2424 2425 Name (_S5, Package (2) {2426 0x05,2427 0x05,2428 })2429 2430 Method (_PTS, 1, NotSerialized)2431 {2432 DBG ("Prepare to sleep: ")2433 HEX (Arg0)2434 }2435 2087 } 2436 2088 -
trunk/src/VBox/Devices/PC/vbox.dsl
r25987 r26095 121 121 } 122 122 123 // Processor object124 // #1463: Showing the CPU can make the guest do bad things on it like SpeedStep.125 // In this case, XP SP2 contains this buggy Intelppm.sys driver which wants to mess126 // with SpeedStep if it finds a CPU object and when it finds out that it can't, it127 // tries to unload and crashes (MS probably never tested this code path).128 // So we enable this ACPI object only for certain guests, which do need it,129 // if by accident Windows guest seen enabled CPU object, just boot from latest130 // known good configuration, as it remembers state, even if ACPI object gets disabled.131 Scope (\_PR)132 {133 Processor (CPU0, /* Name */134 0x00, /* Id */135 0x0, /* Processor IO ports range start */136 0x0 /* Processor IO ports range length */137 )138 {139 }140 Processor (CPU1, /* Name */141 0x01, /* Id */142 0x0, /* Processor IO ports range start */143 0x0 /* Processor IO ports range length */144 )145 {146 }147 Processor (CPU2, /* Name */148 0x02, /* Id */149 0x0, /* Processor IO ports range start */150 0x0 /* Processor IO ports range length */151 )152 {153 }154 Processor (CPU3, /* Name */155 0x03, /* Id */156 0x0, /* Processor IO ports range start */157 0x0 /* Processor IO ports range length */158 )159 {160 }161 Processor (CPU4, /* Name */162 0x04, /* Id */163 0x0, /* Processor IO ports range start */164 0x0 /* Processor IO ports range length */165 )166 {167 }168 Processor (CPU5, /* Name */169 0x05, /* Id */170 0x0, /* Processor IO ports range start */171 0x0 /* Processor IO ports range length */172 )173 {174 }175 Processor (CPU6, /* Name */176 0x06, /* Id */177 0x0, /* Processor IO ports range start */178 0x0 /* Processor IO ports range length */179 )180 {181 }182 Processor (CPU7, /* Name */183 0x07, /* Id */184 0x0, /* Processor IO ports range start */185 0x0 /* Processor IO ports range length */186 )187 {188 }189 Processor (CPU8, /* Name */190 0x08, /* Id */191 0x0, /* Processor IO ports range start */192 0x0 /* Processor IO ports range length */193 )194 {195 }196 Processor (CPU9, /* Name */197 0x09, /* Id */198 0x0, /* Processor IO ports range start */199 0x0 /* Processor IO ports range length */200 )201 {202 }203 Processor (CPUA, /* Name */204 0x0a, /* Id */205 0x0, /* Processor IO ports range start */206 0x0 /* Processor IO ports range length */207 )208 {209 }210 Processor (CPUB, /* Name */211 0x0b, /* Id */212 0x0, /* Processor IO ports range start */213 0x0 /* Processor IO ports range length */214 )215 {216 }217 Processor (CPUC, /* Name */218 0x0c, /* Id */219 0x0, /* Processor IO ports range start */220 0x0 /* Processor IO ports range length */221 )222 {223 }224 Processor (CPUD, /* Name */225 0x0d, /* Id */226 0x0, /* Processor IO ports range start */227 0x0 /* Processor IO ports range length */228 )229 {230 }231 Processor (CPUE, /* Name */232 0x0e, /* Id */233 0x0, /* Processor IO ports range start */234 0x0 /* Processor IO ports range length */235 )236 {237 }238 Processor (CPUF, /* Name */239 0x0f, /* Id */240 0x0, /* Processor IO ports range start */241 0x0 /* Processor IO ports range length */242 )243 {244 }245 Processor (CPUG, /* Name */246 0x10, /* Id */247 0x0, /* Processor IO ports range start */248 0x0 /* Processor IO ports range length */249 )250 {251 }252 Processor (CPUH, /* Name */253 0x11, /* Id */254 0x0, /* Processor IO ports range start */255 0x0 /* Processor IO ports range length */256 )257 {258 }259 Processor (CPUI, /* Name */260 0x12, /* Id */261 0x0, /* Processor IO ports range start */262 0x0 /* Processor IO ports range length */263 )264 {265 }266 Processor (CPUJ, /* Name */267 0x13, /* Id */268 0x0, /* Processor IO ports range start */269 0x0 /* Processor IO ports range length */270 )271 {272 }273 Processor (CPUK, /* Name */274 0x14, /* Id */275 0x0, /* Processor IO ports range start */276 0x0 /* Processor IO ports range length */277 )278 {279 }280 Processor (CPUL, /* Name */281 0x15, /* Id */282 0x0, /* Processor IO ports range start */283 0x0 /* Processor IO ports range length */284 )285 {286 }287 Processor (CPUM, /* Name */288 0x16, /* Id */289 0x0, /* Processor IO ports range start */290 0x0 /* Processor IO ports range length */291 )292 {293 }294 Processor (CPUN, /* Name */295 0x17, /* Id */296 0x0, /* Processor IO ports range start */297 0x0 /* Processor IO ports range length */298 )299 {300 }301 Processor (CPUO, /* Name */302 0x18, /* Id */303 0x0, /* Processor IO ports range start */304 0x0 /* Processor IO ports range length */305 )306 {307 }308 Processor (CPUP, /* Name */309 0x19, /* Id */310 0x0, /* Processor IO ports range start */311 0x0 /* Processor IO ports range length */312 )313 {314 }315 Processor (CPUQ, /* Name */316 0x1a, /* Id */317 0x0, /* Processor IO ports range start */318 0x0 /* Processor IO ports range length */319 )320 {321 }322 Processor (CPUR, /* Name */323 0x1b, /* Id */324 0x0, /* Processor IO ports range start */325 0x0 /* Processor IO ports range length */326 )327 {328 }329 Processor (CPUS, /* Name */330 0x1c, /* Id */331 0x0, /* Processor IO ports range start */332 0x0 /* Processor IO ports range length */333 )334 {335 }336 Processor (CPUT, /* Name */337 0x1d, /* Id */338 0x0, /* Processor IO ports range start */339 0x0 /* Processor IO ports range length */340 )341 {342 }343 Processor (CPUU, /* Name */344 0x1e, /* Id */345 0x0, /* Processor IO ports range start */346 0x0 /* Processor IO ports range length */347 )348 {349 }350 Processor (CPUV, /* Name */351 0x1f, /* Id */352 0x0, /* Processor IO ports range start */353 0x0 /* Processor IO ports range length */354 )355 {356 }357 358 }359 360 123 Scope (\_SB) 361 124 { … … 376 139 // @todo: maybe make it bitmask instead? 377 140 UCP0, 32, 378 UCP1, 32, 379 UCP2, 32, 380 UCP3, 32, 141 UCP1, 32, 142 UCP2, 32, 143 UCP3, 32, 381 144 MEMH, 32, 382 145 URTC, 32, 146 CPUL, 32, 147 CPUC, 32, 383 148 Offset (0x80), 384 149 ININ, 32,
Note:
See TracChangeset
for help on using the changeset viewer.