Практические Приемы По Редактированию Dsdt (Часть 2)

Тема в разделе 'DSDT', создана пользователем homepav, 24 ноя 2009.

  1. SunKi GURU

    На форуме с:
    27 ноя 2008
    посмотрел повнимаительнее на :
    Код:
    OperationRegion (EOWN, PCI_Config, 0x68, 0x04)
    Field (EOWN, ByteAcc, NoLock, Preserve)
    {
    ,   15, 
    HCB,   1, 
    ,   7, 
    HCO,   1
    }
    
    а разве не должно быть так:
    Код:
    OperationRegion (EOWN, PCI_Config, 0x68, 0x04)
    Field (EOWN, ByteAcc, NoLock, Preserve)
    {
    ,   16, 
    HCB,   1, 
    ,   7, 
    HCO,   1
    }
    
    Судя по

    [IMG]

    правильный именно второй вариант......

    P.S.: Перешить БИОС на свежий, кстати, всегда стОит.
    1 пользователям это нравится.
  2. гык-sse2 Apple Life Dev

    На форуме с:
    6 авг 2008
    Спасибо, все работает!
    Остается один вопрос: почему 15 сработало у кого-то на ICH10R?
    http://www.projectosx.com/forum/index.php?showtopic=888&st=0&gopid=9361&#entry9361
    Или он поставил фикс до "Updated the code in the first post." и записывалось в весь байт, а не бит
  3. slice Apple Life Dev

    На форуме с:
    2 июл 2007
    Круто! Поздравляю!
    Если разрешишь, сообщу об этом Кингу.
  4. гык-sse2 Apple Life Dev

    На форуме с:
    6 авг 2008
    Я уже написал в его теме.
  5. SunKi GURU

    На форуме с:
    27 ноя 2008
    Судя по спецификации, работать со смещением 15 не могло. Без понятия почему работало если честно, вполне возможно он просто неудачно пофиксил свой код, дело в том, что предыдущего варианта я у него не видел. Тем не менее рад что вам помогло ;)
  6. SunKi GURU

    На форуме с:
    27 ноя 2008
    Это ведь его идея, ну ошибся человек в одном бите, бывает, так что моего разрешения тут уж точно не требуется ;)
  7. slice Apple Life Dev

    На форуме с:
    2 июл 2007
    Кинг признал ошибку и поправил топик.
  8. GLXOZ Adv. iГуру

    На форуме с:
    24 сен 2006
    Парни поясните пожалуйста, ранее я использовал фикс, и поныне пользую, того же Кинга с OOWS ну и.т.д. тот что имеется по ссылке в данной теме, а тот что находится в оригинальной теме с семафорами HCBO , который на данный момент и обсуждается, как их соотносить друг с другом?
    Поясните пожалуйста.
  9. slice Apple Life Dev

    На форуме с:
    2 июл 2007
    Да, это одно и тоже. Только в топике ссылка на немного другой метод
    Код:
    And (\_SB.PCI0.EHCX.OOWS, 0xFFFEFFFF, \_SB.PCI0.EHCX.OOWS)
    Таким образом, ставятся все биты, и 15, и 16, потому и работает.
    Немного стремно ставить лишние биты, да и странно ставить их одновременно, а не последовательно, но раз работает, то и бог с ним.
  10. SunKi GURU

    На форуме с:
    27 ноя 2008
    Вариант, который мы обсуждали, более грамотный. Все биты кроме 16го и 24го RO - только для чтения, так что если пытаться выставить все 32 бита, страшного ничего не случится, но и смысла большого не имеет.
    ;)
  11. Sergey_Galan iНовичок

    На форуме с:
    9 апр 2010
     Мне удалось завести нативный Speedstep на мою материнку Biostar TF7150U-M7 на базе чипсета NVIDIA GeForce 7150 nForce 630i. В результате долгих поисков и экспериментов я увидел что DSDT то MacBook 5.1 является отличным образцом для DSDT моей мат. платы.

    Сделал я так:
    Было
    PHP:
                    {
                        Name (_HIDEisaId ("PNP0103"))
                        Name (ATT3ResourceTemplate ()
                        {
                            IRQNoFlags ()
                                {0}
                            IRQNoFlags ()
                                {8}
                            Memory32Fixed (ReadWrite,
                                0xFEFF0000,         // Address Base
                                0x00000400,         // Address Length
                                )
                        })
                        Name (ATT4ResourceTemplate ()
                        {
                        })
                        Method (_STA0NotSerialized)
                        {
                            If (LGreaterEqual (OSFX0x03))
                            {
                                If (HPTF)
                                {
                                    Return (0x0F)
                                }
                                Else
                                
    {
                                    Return (0x00)
                                }
                            }
                            Else
                            
    {
                                Return (0x00)
                            }
                        }

                        Method (_CRS0NotSerialized)
                        {
                            If (LGreaterEqual (OSFX0x03))
                            {
                                If (HPTF)
                                {
                                    Return (ATT3)
                                }
                                Else
                                
    {
                                    Return (ATT4)
                                }
                            }
                            Else
                            
    {
                                Return (ATT4)
                            }
                        }
                    }
     


    Стало (Device полностью от MB-5.1)
    PHP:
                    Device (HPET)
                    {
                        Name (_HIDEisaId ("PNP0103"))
                        Name (_CIDEisaId ("PNP0C01"))
                        Name (BUF0ResourceTemplate ()
                        {
                            IRQNoFlags ()
                                {0}
                            IRQNoFlags ()
                                {8}
                            Memory32Fixed (ReadOnly,
                                0xFED00000,         // Address Base
                                0x00000400,         // Address Length
                                _Y03)
                        })
                        Name (BUF1ResourceTemplate ()
                        {
                        })
                        Method (_STA0NotSerialized)
                        {
                            If (LGreaterEqual (OSYS0x07D1))
                            {
                                If (And (MTSE0x04))
                                {
                                    Return (0x0F)
                                }
                            }
                            Else
                            
    {
                                If (And (MTSE0x04))
                                {
                                    Return (0x0B)
                                }
                            }

                            Return (Zero)
                        }

                        Method (_CRS0Serialized)
                        {
                            If (And (MTSE0x04))
                            {
                                CreateDWordField (BUF0, \_SB.PCI0.LPCB.HPET._Y03._BASHPT0)
                                Store (MTBAHPT0)
                                Return (BUF0)
                            }

                            Return (BUF1)
                        }
                    }


    Значение OSFX меняем на OSYS

    Далее редактируем Device (LPCB)

    Было
    PHP:
                Device (LEG0)
                {
                    Name (_ADR0x00030000)
                    OperationRegion (PIO0PCI_Config0x040x20)
                    Scope (\)
                    {
                        Field (\_SB.PCI0.LEG0.PIO0ByteAccNoLockPreserve)
                        {
                            SMEN,   8
                                    Offset (0x0C), 
                                    Offset (0x0D), 
                            SMIO,   8
                        
    }
                    }

                    Scope (\)
                    {
                        OperationRegion (SCPPSystemIO0x142EOne)
                        Field (SCPPByteAccNoLockPreserve)
                        {............


    Стало
    PHP:
                Device (LPCB)
                {

                    Name (_ADR0x00030000)              //оставляем ваш 
                    OperationRegion (P44PCI_Config0x440x04)

                    Field (P44AnyAccNoLockPreserve)

                    {

                        MTBA,   32

                    
    }



                    OperationRegion (MMTOPCI_Config0x740x04)

                    Field (MMTODWordAccNoLockPreserve)

                    {

                        MTSE,   32

                    
    }



                    Method (_DSM4NotSerialized)

                    {

                        Store (Package (0x02)

                            {

                                "device-id"

                                Buffer (0x04)

                                {

                                    0xAC0x0A0x000x00  //NVidia 
                                }

                            }, Local0)

                        DTGP (Arg0Arg1Arg2Arg3RefOf (Local0))

                        Return (Local0)

                    }



                    OperationRegion (PIO0PCI_Config0x040x20)

                    Scope (\)

                    {

                        Field (\_SB.PCI0.LPCB.PIO0ByteAccNoLockPreserve)

                        {

                            SMEN,   8

                                    Offset (0x0C), 

                                    Offset (0x0D), 

                            SMIO,   8

                        
    }

                    }



      Scope (\)

                    {

                        OperationRegion (SCPPSystemIO0x142EOne)

                        Field (SCPPByteAccNoLockPreserve)

                        {...............


    Компилируем - должно получится

    Далее прописываем процессорную секцию от cVad
    PHP:
    Scope (_PR)   //E7500[php]Scope (_PR)   //E7500
        {

            Processor (CPU00x000x000010100x06) {}  //своё значение

            Processor (CPU10x010x000010100x06) {}

            Processor (CPU20x020x000010100x06) {}

            Processor (CPU30x030x000010100x06) {}

        }



        Scope (_PR.CPU0)

        {

            Method (_PSS0NotSerialized)  //своё значение P-States 
            {

                Return (Package (0x06)

                {

                    Package (0x06)

                    {

                        Zero

                        Zero

                        0x0A

                        0x0A

                        0x0B24

                        Zero

                    
    }, 



                    Package (0x06)

                    {

                        Zero

                        Zero

                        0x0A

                        0x0A

                        0x0A22

                        One

                    
    }, 



                    Package (0x06)

                    {

                        Zero

                        Zero

                        0x0A

                        0x0A

                        0x0920

                        0x02

                    
    }, 



                    Package (0x06)

                    {

                        Zero

                        Zero

                        0x0A

                        0x0A

                        0x081D

                        0x03

                    
    }, 



                    Package (0x06)

                    {

                        Zero

                        Zero

                        0x0A

                        0x0A

                        0x071B

                        0x04

                    
    }, 



                    Package (0x06)

                    {

                        Zero

                        Zero

                        0x0A

                        0x0A

                        0x0618

                        0x05

                    
    }

                })

            }



            Method (_PSD0NotSerialized)

            {

                Return (Package (0x05)

                {

                    0x05

                    Zero

                    Zero

                    0xFC

                    0x02

                
    })

            }



            Method (_CST0NotSerialized)

            {

                Return (Package (0x02)

                {

                    One

                    Package (0x04)

                    {

                        ResourceTemplate ()

                        {

                            Register (FFixedHW

                                0x01,               // Bit Width

                                0x02,               // Bit Offset

                                0x0000000000000000// Address

                                0x01,               // Access Size

                                )

                        }, 



                        One

                        0x9D

                        0x03E8

                    
    }

                })

            }

        }



        Scope (_PR.CPU1)

        {

            Method (_PSS0NotSerialized)

            {

                Return (^^CPU0._PSS ())

            }



            Method (_PSD0NotSerialized)

            {

                Return (^^CPU0._PSD ())

            }



            Method (_CST0NotSerialized)

            {

                Return (Package (0x04)

                {

                    0x03

                    Package (0x04)

                    {

                        ResourceTemplate ()

                        {

                            Register (FFixedHW

                                0x01,               // Bit Width

                                0x02,               // Bit Offset

                                0x0000000000000000// Address

                                0x01,               // Access Size

                                )

                        }, 



                        One

                        One

                        0x03E8

                    
    }, 



                    Package (0x04)

                    {

                        ResourceTemplate ()

                        {

                            Register (FFixedHW

                                0x08,               // Bit Width

                                0x00,               // Bit Offset

                                0x0000000000001014// Address  

                                ,)

                        }, 



                        0x02

                        One

                        0x01F4

                    
    }, 



                    Package (0x04)

                    {

                        ResourceTemplate ()

                        {

                            Register (FFixedHW

                                0x08,               // Bit Width

                                0x00,               // Bit Offset

                                0x0000000000001015// Address

                                ,)

                        }, 



                        0x03

                        0x55

                        0xFA

                    
    }

                })

            }
        }


    Убераем NullCPUPowerManagment.kext, VoodooPower.kext

    И ура! Нативный Speedstep и sleep - работают

    К сожалению не могу добиться работы C-states

    Ещё один интересный момент. Когда из DSDT убираю пропись USB, то sleep работает отлично, засыпает, просыпается кнопкой выключения, а когда ставлю нативный (MacBook 5.1), или взятый на форуме, происходит такая ситуация: засыпаю, просыпаюсь, но уже кнопкой restart далее если снова уснуть, то могу уже проснуться кнопкой выключения, через пару секунд выскакивает окно с надписью - "Во время сна из за большого потребления электроэнергии были отключены несколько USB устройств" и в дальнейшем при открытии какой либо программы ловлю панику.

    Какие будут соображения?
    Ещё прописал SATA id-MCP79 (у меня родной MCP73) 


             

    Вложения:

    • DSDT_NVIDIA.zip
      Размер файла:
      32,9 КБ
      Просмотров:
      12
  12. slice Apple Life Dev

    На форуме с:
    2 июл 2007
    Мало информации. На плате нет, случайно, встроенной видюхи? Загрузчик?
    В ДСДТ нужна не процессорная секция, а Darwin, и патч HPET, RTC, TMR.
    Ругань на экране на ЮСБ и звук не должны мешать загрузке.


    ЗЫ: А что, нельзя было картинку сюда прикрепить? Из-за твоей ссылки у меня форум закрылся.
  13. AndrewM iНовичок

    На форуме с:
    11 июн 2010
    пытаюсь правкой DSDT избавиться от 32-х битного IOPCMCIAFamily.kext (он у меня активирует шину PCI, без него не заводится вай-фай и похоже звук) и IOUSBFamily.kext (включается веб камера, но по наблюдениям ЮСБ порты становятся 1.1, 12Мб/с), хочу использовать нативные, если возможно. К сожалению после прописыванию ЮСБ секции, как указано в шапке ничего особо не произошло (поменял в загрузке DSDT.aml и загрузился с ключом -х).
    так же хочу прописать видео, сейчас заведено через хамелеоновский энейблер, но чтото не понятно откуда и куда подставлять значения, может кто покажет пальцем где подробнее, чем в шапке пролитать?


    файл со своим правленным дсдт и оригиналом прилагаю, может я чтото гдето не дописал или не правильно прописал?

    Вложения:

    • 1.zip
      Размер файла:
      26,8 КБ
      Просмотров:
      1
  14. slice Apple Life Dev

    На форуме с:
    2 июл 2007
    Это невозможно. Драйвер нельзя поменять на пропись в ДСДТ, а нативного такого нет.
    Я писал свой IOPCIFamily, но он не у всех работает. Пробуй.
  15. AndrewM iНовичок

    На форуме с:
    11 июн 2010
    спасибо за ответ, ваш пробовал, к сожалению не подошел на замену, буду использовать старый тогда ...

    а еще у меня что то не получается получить пин конфиг по звуковой с помощью дампов из вашей темы по вудуХДА. там есть нюансы или просто запустить и все?
    хочу в ДСДТ правильный пин конфиг прописать, может HDMI работать будет ...

    Ура! Дамп получил, разбираюсь теперь .....
  16. Franzzz iНовичок

    На форуме с:
    20 сен 2008
    to MacAries
    можешь попробовать мой ДСДТ - у меня Maximus Formula. Вот ссылка http://www.mediafire.com/file/o4q1nit4lc44oi5/dsdt.dsl

    Кто знает, подскажите пожалуйста - какой кусок кода в ДСДТ отвечает за объем оперативной памяти в системе? Сейчас стоит 4Гб, хочу нарастить до 8Гб - где в ДСДТ это можно поменять, чтобы не переформировывать, т.к. очень много труда заняло оптимизация и применение всевозможных патчей в коде ДСДТ.
    Спасибо!
    1 пользователям это нравится.
  17. MacAries iНовичок

    На форуме с:
    15 фев 2010
    Спасибо! Все работает. Подправил, только, PSS под свой проц...но надо еще покопать.
    А еще в коде стоят коментарии с сылкой на файл ACPIspec30a.pdf у тебя его, случайно, нет? [IMG]
  18. slice Apple Life Dev

    На форуме с:
    2 июл 2007
    http://www.acpi.info/spec.htm
  19. kozlek Apple Life Dev

    На форуме с:
    16 июл 2008
    Товарищь здесьпишет, что он просто переместил все патчи из DSDT в SSDT! Что это значит? Он также переназначил устройства, которые были объявлены в DSDT, под другим именем и в SSDT! Если это работает, и если в SSDT можно переназначать устройства, и даже под другим именем, то можно здорово упростить патчинг DSDT. И даже сделать более менее универсальные патчи, что сильно разгрузит и не даст сломаться мозгам тех людей, которые не ладят с программированием, да и не только им.

    Типа и DSDT в экстре не нужен в этом случае. Пускай себе в биосе сидит. Я попробую все патченые устройства свои перенести в SSDT, и посмотрю, как будет работать.

    Приду домой проверю.
  20. kozlek Apple Life Dev

    На форуме с:
    16 июл 2008
    Не вышло пропатчить HPET через SSDT, а без этого патча особого смысла нет переносить все-все в SSDT.

Поделиться этой страницей