iam aware that this forum is not primary for moding the BIOS in a way i would like but iam hoping that someone could help me here anyway. Recently i started to dig a bit more inside the DELL XPS A2010, its a quite nice all-in-one computer but with very narrow upgrade options. I changed the cpu to Q6600 from a dual core which was already a great upgrade but also i would like to upgrade the GPU. Right now the system is running ATI HD2400 256mb GPU stacked inside a MXM II slot, removable. According to the chipset information the PCI is x16 v1.1 which should be compatible also with 2.0 cards, however i got a FX770m which is a nvidia 512mb card but couldnt even boot, strange beep sound coming from the machine. Hence, i was searching if the BIOS is not locked only to a particular GPU from DELL and found that it has a whitelist for a particular GPU. I found where the DEV and VEN id for the GPU are inside one module which i extracted out but how to proceed The piece of HEX code includes two GPUs, one is the HD2400 and the second a Intel one which is disabled if something is inside the MXM II slot. Around is a bunch of code and Above and below are only zeros but i have no idea on what iam looking at. I would like to remove the whitelist absolutely but have no idea what i shoud change.
- If i will change just the dev and ven id of the ATI card to the nVidia one will it work? if not i can throw the mobo away
- Is the code between the zeros the whitelist? (attached)
Well, my knowledge of this is two days old and therefore i completely lost here… any suggestion would be great
In addition, it seems like the MOBO can handle also CPU above the Q6600 like Q8400 but it looks its restricted, maybe. Its possible to unlock this?, by updating the intel microcode? Or any other way.
here is the latest bios for the machine: http://www.dell.com/support/home/us/en/0…Id=R215335
The Vendor/Device id for the ATI and the new nVidia GPU, bellow
Dell HD 2400 mobility
Vendor Id: 0x1002
Device Id: 0x94C9
Vendor Id: 0x10DE
Device Id: 0x065C
thank you , Tomas
Welcome at Win-RAID Forum!
Since I am ot an expert regarding your special problem, I cannot help you myself.
Nevertheless I hope, that you will get support by somebody else.
Dieter (alias Fernando)
thank you for your warm welcome. I really hope that someone will / can point me the right way to solve this. It cant be so dificult even though it looks so at this moment just crossing fingers and trying to find some information in the mean time but at this moment i warent lucky to find anything useful.
hoped that someone will give some hint but anyway, i tried to dig into it myself. I read some tutorials about wifi whitelist and how to replace the card inside the whitelist with a new one…simply, just change the DEV/VEN and SUBSYS ids… sounds simple anyway :). I found the Ids for the ATI card, Device Key: Enum\PCI\VEN_1002&DEV_94C9&SUBSYS_02261028&REV_00, see attached picture (the last highlighted string is the DEV/VEN for the inbuilt Intel card) and changed them to the nVidia card, Device Key: Enum\PCI\VEN_10DE&DEV_065C&SUBSYS_30E7103C&REV_A1. However, i found that the SUBSYS is there multiple times… ok what now. I got a SPI reader to read out the BIOS just in any case but for some reasons while using the recovery pins its impossible. I tried to power the Atmel chip externally but still no readings. I would have to solder the BIOS out and for this i dont have the mood, its really impossible to get there without disassembling the whole computer. Anyway, i tried to flash the BIOS with changed Ids (DEV/VEN and SUBSYS as highlighted on the picture) but the nVidia card is still not working and moreover the ATI card is still working iam lost here, have no idea what to do next, any ideas?
i spent lots of time by solving this issue and i guess iam almost at the end By the way i got a second card for this 9600m GT 512DDR3 and proceeded with this card instead of the quadro one. Anyway, i was chating with one guy who did some modding in the past and figure out that no MXM structure is inside the BIOS. Well, this means that the vBIOS of the ATI card was customized for the machine and no other vBIOS would work. He injected the MXM structure inside the BIOS and it was light :). The screen went online with the BIOS with MXM structure but the fans (sys) are running full speed and if i install drivers for the card the screen goes black or distorted. Its not a driver issue, i tried at least 20x different drivers through 3x OS (XP, 7 and 10) but i noticed that the display is missing from the device manager after installing drivers or better, while the ATI card is plugged in everything is working but when i plug the nVidia card the display is missing or wrongly detected with no EDID. Therefore the machine morelikely refuse the new card due to missin mxm structure inside the DSDT table. Well sounds easy, its not
I tried to figure this out but i have no idea what to inject, what to change and so on inside the DSDT table. Hence, anyone has some experience with DSDT edit? - bellow link to the DSDT table. Any suggestions?
xpsone.3d-sphere.com/Files/M-020006, with MXM structure 26.zip
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
Solved, except the fans… it was the lack of MXM structure with the EDID information inside the DSDT table.
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 why it should be there in the first place
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 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
i hope that this will help someone Tomas
dsdt-modified.zip (18.8 KB)
dsdt.zip (17.3 KB)