Edit / Add DSDT table

Discussion in 'BIOS Mods' started by tsalat, Jun 19, 2017.

  1. tsalat

    tsalat MDL Novice

    Apr 15, 2017
    8
    3
    0
    Hi,

    iam trying to solve one problem with MXM support. My BIOS didnt have any MXM structure by default but one guy injected the MXM structure in it but the BIOS is refusing the MXM card due to missing information inside the DSDT table. The GPU is working, the screen is working but in the moment i install the drivers the screen will become distorted. Its not a driver issue but missing MXM structure inside the DSDT table. I dumped the DSDT table but i have no idea what i should add... can anyone help me with this? The GPU is a 9600m GT DDR3 / 512MB, the BIOS is AMI CORE8 (both files bellow). Any help would be appreciated.

    xpsone.3d-sphere.com/Files/M-020006, with MXM structure 26.zip
    xpsone.3d-sphere.com/Files/dsdt-ATI-24.zip

    Tomas
     
  2. tsalat

    tsalat MDL Novice

    Apr 15, 2017
    8
    3
    0
    Anyone any suggestion at least? It looks like the BIOS is still refusing the new GPU card for some reason and from this the fans are running full speed and afterwards i get problems with the monitor (no EDID). Iam completely lost here and i have no idea what to try. Iam even not sure if its really the DSDT table or not, the fans are starting at full speed while the BIOS check, so not after the power button is pressed, just some seconds later after the DELL logo appears and the bios beeps/check starts. I dont know where to start to dig in, try to change or similar and any suggestion or help will be appreciated. If any info is missing just let me know.

    If there is anyone willing and able to solve this iam open to send him a nVidia FX770m (MXM II) as "thank you". I have no use for it anyway. Tomas
     
  3. tsalat

    tsalat MDL Novice

    Apr 15, 2017
    8
    3
    0
    Well, did it :)

    In the first place, the XPS A2010 which is was modding has an MXM II slot but no entry about the MXM structure inside system BIOS. The reason why its not there is because they modified the video BIOS of the default ATI card to inject this while loading the vBIOS into the memory. Therefore there wasnt anything mentioned about the MXM interface in the DSDT as well, thats logicaly [​IMG] why it should be there in the first place [​IMG]

    Hence, i had to modify all these to make it work. One user injected the MXM structure inside the system BIOS according to the MXM specification 2.1. Wasnt so hard i believe but you need to place there appropriated callbacks for the BIOS to load these, this is something which i cant explain more to be honest. The MXM structure consists from information like the interfaces to which the card can push the signal (internal LCD and so on), maximum power, maximum cooling capabilities and so on. Right after the MXM structure, EDID for the LCD can be add if the LCD doesnt have EDID pins to identify himself. Well, this was the part which add absolutely new feature to the system BIOS and the new card started to work with 3 major problems:
    • The performance was set to throttling
    • The picture was ok without the drivers but bad, and i mean really like distorted signal, after installing the drivers
    • The fans were all the time at full speed (system and CPU)

    Now, the first two problems are a DSDT issue. Because no MXM structure was present before no was added to the description table. Problem is that the DSDT table has some length. IF you want to inject it back to the SBIOS it has to be the same size or smaller. I was lucky because the XPS has a on-board GPU as well. Well, i deleted it from the DSDT table to make room together with some OS entries. The on-board GPU is in this case never active, even with the default DSDT, and therefore no sense to keep it there. After making room i added the MXM structure according to the MXM specification, you can compare both *.dsl files which are attached to see the changes. The MXM structure has an buffer which is equal to the structure which was injected to the SBIOS. This solved the performance problem. To solve the LCD problem i added the _DDC method to the LCD and created an buffer with the EDID of the LCD. This solved the LCD problem.

    Now, the fans were a bit more tricky. The DSDT doesnt have any Thermalzone and neither embedded controllers inside. Therefore the DSDT cant be the problem. The SBIOS could have some white list but no error at all. After some time i realized that the Fintek microchip which should control the fans is not used for that but instead Intel QST is controlling it. Well, dammit [​IMG] The Intel ME is not a part of the SBIOS but, i was lucky here, i found tools which could manipulate with the QST config. I looked on the status and realized that while changing the GPU the address of the fan changed and therefore the QST was in an emergency mod and set all fans to 100%. Well, dumped the settings, removed the GPU sensor and its done [​IMG]

    i hope that this will help someone [​IMG] Tomas
     

    Attached Files:

  4. LatinMcG

    LatinMcG Bios Borker

    Feb 27, 2011
    5,268
    1,422
    180
    im pretty sure this info is commonly found in hackintosh forums like insanelymac.com/forums

    good job, its no easy task even with steps!
     
  5. tsalat

    tsalat MDL Novice

    Apr 15, 2017
    8
    3
    0
    #5 tsalat, Aug 5, 2017
    Last edited: Aug 5, 2017
    (OP)
    Iam pretty sure that not because I wrote there and didn't get any help or info. The OSx patch / hacks are for fooling the OSx. Patches for GPUs will not work under windows if you apply them and so on...therefore no, I don't think you will find there information about this. I would be supprised if they would know what MXM is :D

    I forgot to mention, the changes I saw for OSx are not following the ACPI specification, they will not work under windows.