Help with removing GPU whitelist, XPS A2010

Video, SCSI, modem, CDROM/CDR/CDRW, etc.
Post Reply
tsalat
New visitors - please read the rules.
Posts: 2
Joined: Mon Apr 17, 2017 6:53 pm

Mon Apr 17, 2017 6:55 pm

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
tsalat
New visitors - please read the rules.
Posts: 2
Joined: Mon Apr 17, 2017 6:53 pm

Tue Apr 25, 2017 1:09 pm

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....

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
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
Post Reply