Hi,
i need some help or advice for modifying a DELL bios of XPS one A2010. The XPS A2010 is an old all-in-one computer released by DELL i guess 8 or 9 years ago so its pretty old but still a very nice piece. I started to modify it a little bit, changed the CPU to Q6600, add some RAM, changed the HDD to an SSD and installed also Windows 10 on it, with everything working. The last thing I would like to change is the GPU. The default GPU inside the XPS is an ATI HD2400 and I would like to swap it for nVidia FX770m. The XPS has a MXM slot on the mobo so the change is possible but apparently the bios has a whitelist for the ATI card (this was discussed back in 2011 on a different forum where one modder confirmed the whitelist, removed it but its not accessible anymore). If I place the FX770m into the XPS I hear around 30beeps (very strange) but afterwards it will boot to windows but with the screen black all the time. I have TeamViewer on the machine and the card is recognized by Windows and so it looks it should work but the screen is black all the time, even while booting.
So, I decided to look on it myself. Found a tutorial about changing the IDs of a wifi card inside BIOS to allow the use of another card and this method I tried to follow. I extracted al modules from BIOS and searched for the HEX code of the ATI card (the mobo has also a on-board card). Found the DEV, VEN and SUBSYS ids inside one module (ID 1B, Single Link Arch BIOS) – see attached, I also highlighted the on-board GPU (DEV/VEN), the SUBSYS is the same for both GPUs. I have changed the DEV/VEN and SUBSYS of the ATI card, flashed the BIOS but the Vidia card is still not working and moreover the ATI card is still working. Apparently these changes are not doing anything. However, I found that the SUBSYS string is multiple times inside this extracted module but I have no idea what to change and where. The best solution would be to disable the whitelist check, but where to find it? Or at least swap it from the ATI card to the nVidia one… anyway, Iam lost already, have no idea how to proceed
Below some information about it:
-Manufacturer: DELL
-Motherboard Model: XPS one A2010
-Bios revision: 2.0.6
-Bios Type: AMI BIOS
-Bios Download Link: dell.com/support/home/us/en/04/Drivers/DriversDetails?driverId=R215335
ATI card:
Device Key: Enum\PCI\VEN_1002&DEV_94C9&SUBSYS_02261028&REV_00
VEN: 02 10
DEV: C9 94
SUBSYS: 28 10 26 02
On-board card:
VEN 8086 DEV 29C2 SUBSYS 02261028
VEN: 86 80
DEV: C2 29
SUBSYS: 28 10 26 02
What I would like to add or replace with (nVidia card)
Device Key: Enum\PCI\VEN_10DE&DEV_065C&SUBSYS_30E7103C&REV_A1
VEN: DE 10
DEV: 5C 06
SUBSYS: 3C 10 E7 30
Any help would be appreciated, Tomas
Help with removing GPU whitelist, XPS A2010
Guys,
iam fighting with this already for almost a month and not going to give up until i will know if its or isnt possible Smile. I found a German forum where one user had the modified bios from here but he told me it wasnt working with it anyway...this doesnt mean that it cant work but its at least some information. Iam already quite sure that the FX770m is not HW compatible with the system, because the beeps i hear and even though the system will boot afterwards with a black screen the beeps are not a good sign Smile
I was reading about this a lot but usually found articles about wlan whitelists but at the end ist should be the same. I dont want to remove the whitelist, for me it would be enough to replace it with the ids of the new card. Anyway, after reading a lot i found a nice amisplitter which will split the 1B module of ami bioses. Unfortunately the splitter didnt found the ACPI table but anyway. The 1B module should be the right one to edit in this case... So i downloaded also IDA pro and imported one of the 1B splitted files, the one which included as the only one the DEV/VEN ids of the ATI card... The DEV/VEN is mentioned through the whole bios just once, in this 1B module.
So here is the part of the code with the SUBSYS, DEV/VEN....
Ok, here we go with the assembler language and my knowledge ends right now. The subsys is mentioned two times and in between there is the DEV/VEN. Question is if both entries of the SUBSYS are referring to the ATI card or not...well, i really hope that someone could give some hint right now and tell me if to change both SUBSYS entries and also DEV/VEN... or just one entry of the SUBSYS....
Tomas
iam fighting with this already for almost a month and not going to give up until i will know if its or isnt possible Smile. I found a German forum where one user had the modified bios from here but he told me it wasnt working with it anyway...this doesnt mean that it cant work but its at least some information. Iam already quite sure that the FX770m is not HW compatible with the system, because the beeps i hear and even though the system will boot afterwards with a black screen the beeps are not a good sign Smile
I was reading about this a lot but usually found articles about wlan whitelists but at the end ist should be the same. I dont want to remove the whitelist, for me it would be enough to replace it with the ids of the new card. Anyway, after reading a lot i found a nice amisplitter which will split the 1B module of ami bioses. Unfortunately the splitter didnt found the ACPI table but anyway. The 1B module should be the right one to edit in this case... So i downloaded also IDA pro and imported one of the 1B splitted files, the one which included as the only one the DEV/VEN ids of the ATI card... The DEV/VEN is mentioned through the whole bios just once, in this 1B module.
So here is the part of the code with the SUBSYS, DEV/VEN....
Code: Select all
BIOS_F:86C0 dec bp
BIOS_F:86C1 inc bp
BIOS_F:86C2 dec cx
BIOS_F:86C3 dec si
BIOS_F:86C4 inc si
BIOS_F:86C5 dec di
BIOS_F:86C6 add [di], ax
BIOS_F:86C8 pushad
BIOS_F:86CA xor ah, ah
BIOS_F:86CC mov dx, 8
BIOS_F:86CF call sub_F2BEA
BIOS_F:86D4 inc bx
BIOS_F:86D5 jz short loc_F8712
BIOS_F:86D7 mov ah, 8Ch ; 'î'
BIOS_F:86D9 mov ebx, 2261028h - SUBSYS
BIOS_F:86DF mov dx, 8
BIOS_F:86E2 call sub_F2C05
BIOS_F:86E7 mov dx, 8
BIOS_F:86EA mov ah, 19h
BIOS_F:86EC call sub_F2B5D
BIOS_F:86F1 mov dh, al
BIOS_F:86F3 mov dl, 0
BIOS_F:86F5 mov ah, 0
BIOS_F:86F7 call sub_F2BEA
BIOS_F:86FC cmp ebx, 94C91002h - DEV/VEN
BIOS_F:8703 jnz short loc_F8712
BIOS_F:8705 mov ah, 4Ch ; 'L'
BIOS_F:8707 mov ebx, 2261028h - SUBSYS
BIOS_F:870D call sub_F2C05
BIOS_F:8712
BIOS_F:8712 loc_F8712: ; CODE XREF: BIOS_F:86D5j
BIOS_F:8712 ; BIOS_F:8703j
BIOS_F:8712 popad
BIOS_F:8714 retf
Tomas