ProjectOSX

Welcome Guest!

Returning User? Login here.

Want membership privileges? Register here.

2 Pages V  < 1 2  
Start a new topic Add Reply
> Enhanced Intel Speedstep, Теория и прk
osik
post Apr 15 2010, 12:27 PM
Post #21
QUOTE (Slice @ Apr 15 2010, 03:23 PM) *
Итак, традиционным dumpacpitbls я получаю кучу таблиц, но только одну SSDT, и в ней нет _PSS. Но я заблуждался, думая, что их совсем нет.
По реалке у меня 5 таблиц SSDT, только нужно уметь их вынимать.
Подробности в мировой части форума
http://www.projectosx.com/forum/index.php?...&#entry6437

а эверест под виндой тоже не видит эти 5 таблиц?
MacBook (MB403RS/A) Intel C2D 2.4, GMA X3100, 4Gb SDRAMMac, HDD 500Gb. MAc OS X 10.6.3  Apple Magic Mouse
Desktop: Intel C2D E6750 2.66, Asus P5K-E/WiFi-AP, 4Gb, ASUS EN8600GT 256Mb, 2хHDD 320 Gb+1,5Tb, DVD Optiarc AD-7170SATA OS: Mac OS X 10.5.8 Original & Snow Leopard 10.6.3 Original, Хам2 РК4 + boot_RC4_Duvelv2.1_Rekursor + DSDT.aml (спасибо Гусару за проц секцию) & Win7 Ultimate x64
Notebook: Acer Aspire 5310 Celeron M 1.6, GMA950, 2Гб DDR II, HDD 500Gb. OS: Mac OS X 10.5.8 Хам 2 РК4 + boot_RC4_Duvelv2.1_Rekursor + DSDT.aml, не работает слип :( & Win7 Ultimate x64
 iPhone 2G 8Gb 3.1.2
 iPhone 3G 8Gb 3.1.2
 iPad 64Gb
Slice
post Apr 15 2010, 04:49 PM
Post #22
QUOTE (osik @ Apr 15 2010, 03:27 PM) *
а эверест под виндой тоже не видит эти 5 таблиц?

Говорят,что он несколько таблиц видит, только я в винде не был уже черт знает сколько.
i3-2120 GA-H61M-S1 UEFI, Radeon HD6670-UEFI, ALC887(VoodooHDA 2.8.6), OS⌘10.9.5, OS⌘ 10.7.5 Clover FakeSMC_plugins_3.3.1 Realtek LAN v3.1.2
Slice
post Apr 20 2010, 08:55 AM
Post #23
Продолжаю вчитываться в документацию.
CODE
Method (_PPC, 0) {     // Performance Present Capabilities method
{
    If (\_SB.DOCK) {  // All _PSS states available (650, 600, 500).
        Return(0)
    } If (\_SB.AC) {  // States 1 and 2 available (600, 500).
        Return(1)
    } Else {          // State 2 available (500)
        Return(2)
    }
} // End of _PPC method

Итак, метод определяет, какие состояния процессора допустимы, в зависимости от состояния энергопитания. Если ноутбук в Доке, то доступны турбо-режимы, если подключен к розетке (AC), то нормальные, если от батарейки - то энергосберегающие.
А вот живой пример с Делл 1525
CODE
        Method (_PPC, 0, NotSerialized)
        {
            Store (SMI (0xAD, 0x00), Local0)   // информация считывается с SMBUS(?)
            Return (Local0)
        }


Теперь метод _PCT.
По спецификации определяет регистры, по которым система АЦПИ сама будет управлять питанием процессора.
Обычно здесь пишут 0, т.е. поручают это дело операционной системе, а именно AppleIntelCPUPowerManagement.kext.
CODE
        Method (_PCT, 0, NotSerialized)
        {
            Return (Package (0x02)
            {
                ResourceTemplate ()
                {
                    Register (FFixedHW,
                        0x00,               // Bit Width
                        0x00,               // Bit Offset
                        0x0000000000000000, // Address
                        ,)
                },

                ResourceTemplate ()
                {
                    Register (FFixedHW,
                        0x00,               // Bit Width
                        0x00,               // Bit Offset
                        0x0000000000000000, // Address
                        ,)
                }
            })
        }

Однако, я вижу варианты. Мой ноутбук Самсунг не имеет НРЕТ, а потому AppleIntelCPUPM невозможен. Зато АПЦИ
CODE
Method (_PCT, 0, NotSerialized)
{
If (LEqual (And (PDC0, 0x01), 0x01))
{
Return (Package (0x02)
{
ResourceTemplate ()
{
Register (FFixedHW,
0x00, // Bit Width
0x00, // Bit Offset
0x0000000000000000, // Address
,)
},

ResourceTemplate ()
{
Register (FFixedHW,
0x00, // Bit Width
0x00, // Bit Offset
0x0000000000000000, // Address
,)
}
})
}
Else
{
Return (Package (0x02)
{
ResourceTemplate ()
{
Register (SystemIO,
0x10, // Bit Width
0x00, // Bit Offset
0x00000000000000B0, // Address
,)
},

ResourceTemplate ()
{
Register (SystemIO,
0x08, // Bit Width
0x00, // Bit Offset
0x00000000000000B1, // Address
,)
}
})
}
}

Этот регистр В0 (В1) определен в таблице FADT
CODE
[030h 0048  4]             SMI Command Port : 000000B0

Ах, да, на Делл 1525 также сделано, только регистр В2 (В3)

Метод _PDC устаревший в пользу _OSC. Есть стандартный переходник с одного на другой, см в посте №3.
А вот метод _OSC посложнее, он то и заполняет поле PDC0 в зависимости от. huh.gif
Жду подсказок.

PS: А вот в SSDT Самсунга меня ожидала маленькая неприятность
CODE
    Scope (\_PR.CPU0)
    {
        Name (PDC0, 0x00)
        Method (ZPDC, 1, NotSerialized)
        {
            CreateDWordField (Arg0, 0x08, CAP0)
            Store (CAP0, PDC0)
        }

Этот метод ZPDC не является стандартным для АЦПИ, и не используется в MacOSX, а также не используется ни в ДСДТ, ни в ССДТ-№. Скорее всего, он написан в расчете на ОЕМ драйвер от компании Самсунг, естественно для Винды.

Вывод: SSDT таблицы обязательно нужно переписывать. Рассчитывать на таблицы из БИОСа не стоит.
i3-2120 GA-H61M-S1 UEFI, Radeon HD6670-UEFI, ALC887(VoodooHDA 2.8.6), OS⌘10.9.5, OS⌘ 10.7.5 Clover FakeSMC_plugins_3.3.1 Realtek LAN v3.1.2
Slice
post Apr 20 2010, 10:41 AM
Post #24
Теперь метод _CST
Общий формат (пример от cvad)
CODE
        Name (CST, Package (0x04)
        {
            0x03,  // Количество C-State packages: 3 (C1, C2 и C3 (или C4 если CPU поддерживает)).
            Package (0x04) {ResourceTemplate () {Register (FFixedHW, 0x01, 0x02, 0x000, ,)}, 1, 0, 1000},  // C1-State
            Package (0x04) {ResourceTemplate () {Register (SystemIO, 0x08, 0x00, 0x814, ,)}, 2, 1, 500},   // C2-State
            Package (0x04) {ResourceTemplate () {Register (SystemIO, 0x08, 0x00, 0x815, ,)}, 3, 0x55, 250} // или C3-State
          //Package (0x04) {ResourceTemplate () {Register (SystemIO, 0x08, 0x00, 0x816, ,)}, 3, 0x55, 250} // или C4-State
        })

CODE
Package { Register, Type, Latency, Power}

Type - это номер С-стейта
Latency - время задержки в микросекундах на переход между С-стейтами. Откуда брать? Начальные значения из таблицы FACP
CODE
[060h 0096  2]                   C2 Latency : 0096
[062h 0098  2]                   C3 Latency : 00FA

Можете поуменьшать и половить глюки, с какого момента начнутся. Для С1 значение минимальное. Здесь вижу 0, в Делле - 1, также и на С2 вижу 1. Большие значения только на С3 и С4 (который тоже обозначается 3).
Адреса регистров.
cvad - 814, 815, 816. Цифра 800 из FACP ([038h 0056 4] PM1A Event Block Address)
Samsung - 8014, 8015, 8016.
Dell1525 - C2=1014, как у всех, а вот адрес для С3 отличается, в зависимости от конфигурации 1015, 1016 и даже 1018.
CODE
            If (And (CFGD, 0x0200))
            {
...........
                    Package (0x04)
                    {
                        ResourceTemplate ()
                        {
                            Register (SystemIO,
                                0x08,               // Bit Width
                                0x00,               // Bit Offset
                                0x0000000000001018, // Address
                                ,)
                        },

                        0x03,
                        0xA2,
                        0x64
                    }


i3-2120 GA-H61M-S1 UEFI, Radeon HD6670-UEFI, ALC887(VoodooHDA 2.8.6), OS⌘10.9.5, OS⌘ 10.7.5 Clover FakeSMC_plugins_3.3.1 Realtek LAN v3.1.2
Slice
post Apr 26 2010, 01:37 PM
Post #25
Еще прикол.
Удалил всю процессорную секцию из ДСДТ, а у меня спидстеп работает как и раньше, т.е. на родных SSDT таблицах из БИОСа. Это же ноутбук, да еще и от серьезной компании Делл. У меня, конечно, есть мечта поменять все эти таблицы, и добиться меньшего энергопотребления.
Универсальная процессорная секция от квада наверно это сделает, но там нет зависимостей от подключения к розетке, а я пока не разобрался, как это сделать.
Метод _OSC получает информацию от системы, и что-то ей возвращает. Что?
i3-2120 GA-H61M-S1 UEFI, Radeon HD6670-UEFI, ALC887(VoodooHDA 2.8.6), OS⌘10.9.5, OS⌘ 10.7.5 Clover FakeSMC_plugins_3.3.1 Realtek LAN v3.1.2
AlexSM
post Mar 11 2011, 12:55 PM
Post #26
Slice!
У меня на HP 8710w во время загрузки GenericCPUPowerManagement.kext выдает 13 P-state, но после загрузки GenericCPUPMControl показываеи минимальную скорость проца и производительнось низкая - 1900 Geekbench. Если запускаю PStateChanger, то проц работает при нагрузке на полную и производительнось 3700 Geekbench. Что это и как с этим можно побороться?
Slice
post Mar 16 2011, 08:04 PM
Post #27
Я в соседней теме описывал, что еще надо править ACPI_SMC_PlatformPlugin под свою модель Мака.
Без этой правки тоже наблюдал застревание на нижней частоте.
i3-2120 GA-H61M-S1 UEFI, Radeon HD6670-UEFI, ALC887(VoodooHDA 2.8.6), OS⌘10.9.5, OS⌘ 10.7.5 Clover FakeSMC_plugins_3.3.1 Realtek LAN v3.1.2

2 Pages V  < 1 2
Add Reply Start a new topic
1 User(s) are reading this topic (1 Guests and 0 Anonymous Users)
0 Members: