wok annotate virtualbox-ose/stuff/vbox-cpuhotplug.dsl @ rev 25052

ruby-ncurses: typo
author Pascal Bellard <pascal.bellard@slitaz.org>
date Sun Jun 05 11:43:47 2022 +0000 (2022-06-05)
parents
children
rev   line source
pascal@21808 1 // $Id: vbox-cpuhotplug.dsl $
pascal@21808 2 /// @file
pascal@21808 3 //
pascal@21808 4 // VirtualBox ACPI
pascal@21808 5 //
pascal@21808 6 // Copyright (C) 2006-2007 Oracle Corporation
pascal@21808 7 //
pascal@21808 8 // This file is part of VirtualBox Open Source Edition (OSE), as
pascal@21808 9 // available from http://www.virtualbox.org. This file is free software;
pascal@21808 10 // you can redistribute it and/or modify it under the terms of the GNU
pascal@21808 11 // General Public License (GPL) as published by the Free Software
pascal@21808 12 // Foundation, in version 2 as it comes in the "COPYING" file of the
pascal@21808 13 // VirtualBox OSE distribution. VirtualBox OSE is distributed in the
pascal@21808 14 // hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
pascal@21808 15
pascal@21808 16 DefinitionBlock ("SSDT-cpuhotplug.aml", "SSDT", 1, "VBOX ", "VBOXCPUT", 2)
pascal@21808 17 {
pascal@21808 18 External(CPUC)
pascal@21808 19 External(CPUL)
pascal@21808 20 External(CPEV)
pascal@21808 21 External(CPET)
pascal@21808 22
pascal@21808 23 // Method to check for the CPU status
pascal@21808 24 Method(CPCK, 1)
pascal@21808 25 {
pascal@21808 26 Store (Arg0, CPUC)
pascal@21808 27 Return(LEqual(CPUL, 0x01))
pascal@21808 28 }
pascal@21808 29
pascal@21808 30 // Method to notify the VMM that a CPU is not
pascal@21808 31 // in use anymore and can be safely removed.
pascal@21808 32 // Using the extra method here because the CPUL
pascal@21808 33 // register identifer clashes with the CPUL object defined
pascal@21808 34 // below making iasl starting with version 20150930 fail.
pascal@21808 35 //
pascal@21808 36 // Think of CPLO as "CPU Lock Open"
pascal@21808 37 Method(CPLO, 1)
pascal@21808 38 {
pascal@21808 39 Store(Arg0, CPUL)
pascal@21808 40 }
pascal@21808 41
pascal@21808 42 Scope (\_SB)
pascal@21808 43 {
pascal@21808 44
pascal@21808 45 #define GENERATE_CPU_OBJECT(id, sck, sckuid, cpu, cpuuid) \
pascal@21808 46 Device (sck) \
pascal@21808 47 { \
pascal@21808 48 Name (_HID, "ACPI0004") \
pascal@21808 49 Name (_UID, sckuid) \
pascal@21808 50 \
pascal@21808 51 \
pascal@21808 52 Processor (cpu, /* Name */ \
pascal@21808 53 id, /* Id */ \
pascal@21808 54 0x0, /* Processor IO ports range start */ \
pascal@21808 55 0x0 /* Processor IO ports range length */ \
pascal@21808 56 ) \
pascal@21808 57 { \
pascal@21808 58 Name (_HID, "ACPI0007") \
pascal@21808 59 Name (_UID, cpuuid) \
pascal@21808 60 Name (_PXM, 0x00) \
pascal@21808 61 \
pascal@21808 62 Method(_MAT, 0, Serialized) \
pascal@21808 63 { \
pascal@21808 64 Name (APIC, Buffer (8) {0x00, 0x08, id, id}) \
pascal@21808 65 IF (CPCK(id)) \
pascal@21808 66 { \
pascal@21808 67 Store (One, Index (APIC, 4)) \
pascal@21808 68 } \
pascal@21808 69 Else \
pascal@21808 70 { \
pascal@21808 71 Store (Zero, Index (APIC, 4)) \
pascal@21808 72 } \
pascal@21808 73 Return (APIC) \
pascal@21808 74 } \
pascal@21808 75 Method(_STA) /* Used for device presence detection */ \
pascal@21808 76 { \
pascal@21808 77 IF (CPCK(id)) \
pascal@21808 78 { \
pascal@21808 79 Return (0xF) \
pascal@21808 80 } \
pascal@21808 81 Else \
pascal@21808 82 { \
pascal@21808 83 Return (0x0) \
pascal@21808 84 } \
pascal@21808 85 } \
pascal@21808 86 Method(_EJ0, 1) \
pascal@21808 87 { \
pascal@21808 88 CPLO(id) /* Unlock the CPU */ \
pascal@21808 89 Return \
pascal@21808 90 } \
pascal@21808 91 } \
pascal@21808 92 } \
pascal@21808 93
pascal@21808 94 GENERATE_CPU_OBJECT(0x00, SCK0, "SCKCPU0", CPU0, "SCK0-CPU0")
pascal@21808 95 GENERATE_CPU_OBJECT(0x01, SCK1, "SCKCPU1", CPU1, "SCK1-CPU0")
pascal@21808 96 GENERATE_CPU_OBJECT(0x02, SCK2, "SCKCPU2", CPU2, "SCK2-CPU0")
pascal@21808 97 GENERATE_CPU_OBJECT(0x03, SCK3, "SCKCPU3", CPU3, "SCK3-CPU0")
pascal@21808 98 GENERATE_CPU_OBJECT(0x04, SCK4, "SCKCPU4", CPU4, "SCK4-CPU0")
pascal@21808 99 GENERATE_CPU_OBJECT(0x05, SCK5, "SCKCPU5", CPU5, "SCK5-CPU0")
pascal@21808 100 GENERATE_CPU_OBJECT(0x06, SCK6, "SCKCPU6", CPU6, "SCK6-CPU0")
pascal@21808 101 GENERATE_CPU_OBJECT(0x07, SCK7, "SCKCPU7", CPU7, "SCK7-CPU0")
pascal@21808 102 GENERATE_CPU_OBJECT(0x08, SCK8, "SCKCPU8", CPU8, "SCK8-CPU0")
pascal@21808 103 GENERATE_CPU_OBJECT(0x09, SCK9, "SCKCPU9", CPU9, "SCK9-CPU0")
pascal@21808 104 GENERATE_CPU_OBJECT(0x0a, SCKA, "SCKCPUA", CPUA, "SCKA-CPU0")
pascal@21808 105 GENERATE_CPU_OBJECT(0x0b, SCKB, "SCKCPUB", CPUB, "SCKB-CPU0")
pascal@21808 106 GENERATE_CPU_OBJECT(0x0c, SCKC, "SCKCPUC", CPUC, "SCKC-CPU0")
pascal@21808 107 GENERATE_CPU_OBJECT(0x0d, SCKD, "SCKCPUD", CPUD, "SCKD-CPU0")
pascal@21808 108 GENERATE_CPU_OBJECT(0x0e, SCKE, "SCKCPUE", CPUE, "SCKE-CPU0")
pascal@21808 109 GENERATE_CPU_OBJECT(0x0f, SCKF, "SCKCPUF", CPUF, "SCKF-CPU0")
pascal@21808 110 GENERATE_CPU_OBJECT(0x10, SCKG, "SCKCPUG", CPUG, "SCKG-CPU0")
pascal@21808 111 GENERATE_CPU_OBJECT(0x11, SCKH, "SCKCPUH", CPUH, "SCKH-CPU0")
pascal@21808 112 GENERATE_CPU_OBJECT(0x12, SCKI, "SCKCPUI", CPUI, "SCKI-CPU0")
pascal@21808 113 GENERATE_CPU_OBJECT(0x13, SCKJ, "SCKCPUJ", CPUJ, "SCKJ-CPU0")
pascal@21808 114 GENERATE_CPU_OBJECT(0x14, SCKK, "SCKCPUK", CPUK, "SCKK-CPU0")
pascal@21808 115 GENERATE_CPU_OBJECT(0x15, SCKL, "SCKCPUL", CPUL, "SCKL-CPU0")
pascal@21808 116 GENERATE_CPU_OBJECT(0x16, SCKM, "SCKCPUM", CPUM, "SCKM-CPU0")
pascal@21808 117 GENERATE_CPU_OBJECT(0x17, SCKN, "SCKCPUN", CPUN, "SCKN-CPU0")
pascal@21808 118 GENERATE_CPU_OBJECT(0x18, SCKO, "SCKCPUO", CPUO, "SCKO-CPU0")
pascal@21808 119 GENERATE_CPU_OBJECT(0x19, SCKP, "SCKCPUP", CPUP, "SCKP-CPU0")
pascal@21808 120 GENERATE_CPU_OBJECT(0x1a, SCKQ, "SCKCPUQ", CPUQ, "SCKQ-CPU0")
pascal@21808 121 GENERATE_CPU_OBJECT(0x1b, SCKR, "SCKCPUR", CPUR, "SCKR-CPU0")
pascal@21808 122 GENERATE_CPU_OBJECT(0x1c, SCKS, "SCKCPUS", CPUS, "SCKS-CPU0")
pascal@21808 123 GENERATE_CPU_OBJECT(0x1d, SCKT, "SCKCPUT", CPUT, "SCKT-CPU0")
pascal@21808 124 GENERATE_CPU_OBJECT(0x1e, SCKU, "SCKCPUU", CPUU, "SCKU-CPU0")
pascal@21808 125 GENERATE_CPU_OBJECT(0x1f, SCKV, "SCKCPUV", CPUV, "SCKV-CPU0")
pascal@21808 126
pascal@21808 127 #undef GENERATE_CPU_OBJECT
pascal@21808 128 }
pascal@21808 129
pascal@21808 130 Scope (\_GPE)
pascal@21808 131 {
pascal@21808 132
pascal@21808 133 #define CHECK_CPU(cpu, sck, cpuname) \
pascal@21808 134 IF (LEqual(Local0, cpu)) \
pascal@21808 135 { \
pascal@21808 136 Notify (\_SB.sck.cpuname, Local1) \
pascal@21808 137 } \
pascal@21808 138
pascal@21808 139 // GPE bit 1 handler
pascal@21808 140 // GPE.1 must be set and SCI raised when
pascal@21808 141 // processor info changed and CPU must be
pascal@21808 142 // re-evaluated
pascal@21808 143 Method (_L01, 0, NotSerialized)
pascal@21808 144 {
pascal@21808 145 Store(CPEV, Local0)
pascal@21808 146 Store(CPET, Local1)
pascal@21808 147
pascal@21808 148 CHECK_CPU(0x01, SCK1, CPU1)
pascal@21808 149 CHECK_CPU(0x02, SCK2, CPU2)
pascal@21808 150 CHECK_CPU(0x03, SCK3, CPU3)
pascal@21808 151 CHECK_CPU(0x04, SCK4, CPU4)
pascal@21808 152 CHECK_CPU(0x05, SCK5, CPU5)
pascal@21808 153 CHECK_CPU(0x06, SCK6, CPU6)
pascal@21808 154 CHECK_CPU(0x07, SCK7, CPU7)
pascal@21808 155 CHECK_CPU(0x08, SCK8, CPU8)
pascal@21808 156 CHECK_CPU(0x09, SCK9, CPU9)
pascal@21808 157 CHECK_CPU(0x0a, SCKA, CPUA)
pascal@21808 158 CHECK_CPU(0x0b, SCKB, CPUB)
pascal@21808 159 CHECK_CPU(0x0c, SCKC, CPUC)
pascal@21808 160 CHECK_CPU(0x0d, SCKD, CPUD)
pascal@21808 161 CHECK_CPU(0x0e, SCKE, CPUE)
pascal@21808 162 CHECK_CPU(0x0f, SCKF, CPUF)
pascal@21808 163 CHECK_CPU(0x10, SCKG, CPUG)
pascal@21808 164 CHECK_CPU(0x11, SCKH, CPUH)
pascal@21808 165 CHECK_CPU(0x12, SCKI, CPUI)
pascal@21808 166 CHECK_CPU(0x13, SCKJ, CPUJ)
pascal@21808 167 CHECK_CPU(0x14, SCKK, CPUK)
pascal@21808 168 CHECK_CPU(0x15, SCKL, CPUL)
pascal@21808 169 CHECK_CPU(0x16, SCKM, CPUM)
pascal@21808 170 CHECK_CPU(0x17, SCKN, CPUN)
pascal@21808 171 CHECK_CPU(0x18, SCKO, CPUO)
pascal@21808 172 CHECK_CPU(0x19, SCKP, CPUP)
pascal@21808 173 CHECK_CPU(0x1a, SCKQ, CPUQ)
pascal@21808 174 CHECK_CPU(0x1b, SCKR, CPUR)
pascal@21808 175 CHECK_CPU(0x1c, SCKS, CPUS)
pascal@21808 176 CHECK_CPU(0x1d, SCKT, CPUT)
pascal@21808 177 CHECK_CPU(0x1e, SCKU, CPUU)
pascal@21808 178 CHECK_CPU(0x1f, SCKV, CPUV)
pascal@21808 179 }
pascal@21808 180
pascal@21808 181 #undef CHECK_CPU
pascal@21808 182 }
pascal@21808 183
pascal@21808 184 }
pascal@21808 185
pascal@21808 186 /*
pascal@21808 187 * Local Variables:
pascal@21808 188 * comment-start: "//"
pascal@21808 189 * End:
pascal@21808 190 */