How to > HP BIOS MiniPCI Fix- nc6000/others

Don't ask how to hack password. (BIOS Passwords)
denj
New visitors - please read the rules.
Posts: 5
Joined: Fri Jun 11, 2010 9:37 pm

@admin: thanks for enabling PM
denj wrote:Would this be a good idea: use semi's program and reapply the same patch but this time modify only "wake" and "lan" so nothing else gets affected? or should i use modify something else to get the same effect of getting the correct checksum to work.
My previous question still stands as I'd like any feedback on how to get my resume-on-suspend functionality back again. I suspect that my modfiying the complete "Wake on" string caused this failure and I'd like to know if it's even necessary to modify this last section since the patched hp bios updater doesn't require a checksum to update the bios now.

The laptop works perfectly fine with the new card and I even updated the ram and cpu with no hiccups
semi
BIOS Rookie
Posts: 35
Joined: Mon Oct 27, 2008 6:17 pm
Contact:

Hej Denj,

why do you dont try it by your self?

If the String Wake on the Lan is the cause, try any other string or another Device ID you dont need.

The modify of this Strings are only for checksum correction, basically you can take any other string.

And if it works with the resume-on-suspend it would be a great day for U!

Good luck

Cheers Semi
Shonk
New visitors - please read the rules.
Posts: 5
Joined: Sat Mar 14, 2009 3:35 am

Its not a faulty 5300 card a second 5300 just turned up the ebay seller sent me two by accident
it does exactly the same as the other card
demond
New visitors - please read the rules.
Posts: 1
Joined: Fri Jul 09, 2010 5:33 pm

Hi semi,
i jave nc6000 and Lite-On WiFi miniPCI card (Atheros 5005G).
Help me, fix bios.
Here is my WiFi ID:
PCI\VEN_168C&DEV_001A&SUBSYS_2052168C&REV_01\4&16793A72&0&10F0

Thanks in advance... :)


P.S. Sorry, for my bad english... :)
semi
BIOS Rookie
Posts: 35
Joined: Mon Oct 27, 2008 6:17 pm
Contact:

Hi Siobhan,

to change Bitmaps in a notebook is not really a reason!!

Hey fellows, watch my new boot picture, its a pciture from my neighbors girlfriend.
Muha, what a funny imagine. NoNo, thats not a reason.

The Slic could be a reason, but the slic entrys are not compressed in bios file!

Also they are only two reasons, which are not really reasons.

You have some more?

At first, you have to understand what you have to change, that you can "see" what you have changed!!

Cheers Semi
jaynap
New visitors - please read the rules.
Posts: 1
Joined: Thu Jul 22, 2010 3:05 am

Can anyone help me. I have a v6000z currently with the broadcom bg card and I bought a intel bgn card and need to get it to work. Here is my info

Bios f.42 for v6000z
old card
PCI\VEN_14E4&DEV_4311&SUBSYS_1374103C
new card
PCI\VEN_8086&DEV_4229&SUBSYS_11008086

I have tried to search for the info in my bios and can't get a match. I also have tried the addv3 tool and it keeps crashing. Please help.

Jaynap
nando4
BIOS Rookie
Posts: 46
Joined: Sat Aug 22, 2009 2:44 pm

@Semi - have you considered providing bios which is patched to defeat the whitelisting? g: Thinkpad bios hacking. You could provide the patched bios as a donationware, like this.
hspumanti
New visitors - please read the rules.
Posts: 1
Joined: Tue Aug 03, 2010 10:39 pm

I posted a generic way to patch the Insyde BIOS to allow any WiFi PCIe device to be used. It can be found here

http://www.insanelymac.com/forum/index. ... 227226&hl=

Check it out...
quenthal
New visitors - please read the rules.
Posts: 1
Joined: Wed Aug 04, 2010 10:40 pm

@Semi

First of all, thank you for this nice application!

I've been long thinking about changing the Mini-PCI WLAN Card in my HP Compaq NX7010 (it is basically the same machine as Compaq X1000 etc.), but whitelisting naturally stops it.

Original BIOS-file (sp30915.exe) is located at HP's site http://h20000.www2.hp.com/bizsupport/Te ... ob-32938-1

Original card in this machine is Intel 2100B and I managed to find it in the Rom.bin (PCI\VEN_8086&DEV_1043&SUBSYS_25228086, to find it I copied it from the .inf provided by HP).

The card I would like to add to whitelist is Intel(R) PRO/Wireless 2915ABG (PCI\VEN_8086&DEV_4223&SUBSYS_1352103C).

I managed to replace it. However, correcting the checksum seems to be problematic. I didn't find any other Dev IDs in the bios, so I tried to correct checksum by modifying WAKE ON LAN string. Even after "Correct" checksum is bad compared to original. It changes to different one, but it is still wrong.

Any ideas?

Hope you can help!
semi
BIOS Rookie
Posts: 35
Joined: Mon Oct 27, 2008 6:17 pm
Contact:

Hey quenthal,
after "Correct" checksum is bad compared to original. It changes to different one, but it is still wrong
I think you dont have correct it correctly. Do it right and it works. But show me a picture from
your "correction".

@hspumanti,

on the first look, it shows good, good for the insiyde bios files. But I am still trying
to transfer it to the compaq bios files.

@nando4,

the same thing, this way looks also very great, but its only working for the phoenix bios files.
And a donationware its not realy my way or thing. Cause the admin is right, at first it should be
a free solution for all. Thats why "my" solution is free for all. But if the people cant use or understand
it how it works, or they simply they dont want it, how ever. Than I will take a little pocketmoney for this work.

Cheers Semi
nando4
BIOS Rookie
Posts: 46
Joined: Sat Aug 22, 2009 2:44 pm

hspumanti wrote:I posted a generic way to patch the Insyde BIOS to allow any WiFi PCIe device to be used. It can be found here

http://www.insanelymac.com/forum/index. ... 227226&hl=
The ADDCCV3 set has uncompressed bios, eg: 2510P. Can you do any digging to find the code that does the whitelist WWAN/Wifi checks and completely circumvent those? I can volunteer to test any modded 2510P bios you might come up. I have a recovery process just in case.
semi wrote:@nando4,
..
And a donationware its not realy my way or thing. Cause the admin is right, at first it should be
a free solution for all. Thats why "my" solution is free for all. But if the people cant use or understand
it how it works, or they simply they dont want it, how ever. Than I will take a little pocketmoney for this work.
The free ADDCCV3 solution is certainly in the spirit of being very helpful. I'm appreciative of ADDCCV3 being free and the amount of work that has gone into the documentation for users to use it.

Here's another good reason to consider modding the bios and distributing them under a donationware system:
Last edited by nando4 on Mon Aug 23, 2010 3:12 am, edited 1 time in total.
nando4
BIOS Rookie
Posts: 46
Joined: Sat Aug 22, 2009 2:44 pm

Modifying bios DSDT table to quieten fan

semi@ and others, I was asked here to modify the bios DSDT table to be the same as the DSDT registry override I did here. Reason being convenience - recent Ubuntu versions no longer provides kernel DSDT override out of the box. So I proceeded to:

EDIT: Figured out how to do this. I minimised my edits to be a single byte and did checksumming manually using the "wake on lan" boot string.
Last edited by nando4 on Tue Aug 24, 2010 1:16 pm, edited 3 times in total.
nando4
BIOS Rookie
Posts: 46
Joined: Sat Aug 22, 2009 2:44 pm

dual-mode IDA bios mod for 8-13% more CPU performance

Consider a dual-IDA bios mod to gain more CPU performance as explained here. Intel's Intel® 64 and IA-32 Architectures Software Developer’s Manual explains the relevant MSR 0x1a0 bit 20:
Enhanced Intel SpeedStep Technology
Select Lock. (R/WO)
When set, this bit causes the following become read-only:
• Enhanced Intel SpeedStep Technology Select Lock (this bit),
• Enhanced Intel SpeedStep Technology Enable bit.
The bit must be set before an Enhanced SpeedStep Technology transition
This bit is cleared on reset.
Meaning then a Core 2 CPU with IDA support would see anywhere from 8-15% more performance depending on what the highest multiplier is when using unclewebb's Throttlestop software if MSR 0x1a0 bit 20 is unlocked. Moreso if the system has setfsb PLL overclocking support.

Uncle Joe from thinkpads.com helped figure out how to do this mod by analysing the uncompressed 2510P bios looking for lines that the lock bit finding it in two places as quoted below.
I found 2 places where bit 20 is set:

Code: Select all

Place 0
000031BA  66B9A0010000      mov ecx,0x1a0
000031C0  0F32              rdmsr
000031C2  660D00001000      or eax,0x100000
000031C8  0F30              wrmsr

Place 1
00003F7F  66B9A0010000      mov ecx,0x1a0
00003F85  0F32              rdmsr
00003F87  660D00001000      or eax,0x100000
00003F8D  0F30              wrmsr
All you need to do is replace the OR instruction with NOPs (0x90) and redisassemble to check it was done correctly. You'd better have a BIOS recovery method before you attempt to flash, obviously.

Here's how I found it:
1. disassemble all files: "ndisasm -a -b 16 $f > $f.dis" (done in Bash program)

2. find all occurrences of register 0x1a0: "grep -i "mov ecx,0x1a0" *.dis" (ECX is register index for rdmsr/wrmsr, but looking for this instruction isn't necessary - I just noticed most rdmsr/wrmsr instructions use a hard coded value)

3. Inspect each occurrence and look for an OR instruction which sets bit 20
The exact binary sequence appears in the uncompressed 13_SMM2_000A000_68MSP_F0F-2510P.dec file but I'm stuck trying to use ADDCCV3 to change the single byte in the compressed file. I'm just trying to set the OR to use 0x0 instead of 0x100000 which is effectively cancelling out setting bit 20 to 1.

Code: Select all

FROM -> 000031C2  660D00001000      or eax,0x100000
TO ->   000031C2  660D00000000      or eax,0x000000
FROM -> 00003F87  660D00001000      or eax,0x100000
TO ->   00003F87  660D00000000      or eax,0x000000
EDIT: I found the above code in 68MSP_FOF_2510P.BIN (decompressed) 13_SMM2_000A000_68MSP_F0F-2510P.dec. I proceeded to change 10 to 0 until my decompressed code matched my desired eax, 0x0. One compressed byte did nullify both lines of code above. Another byte was needed for checksum correct. So it was a 2 byte modification. Nice and easy :)

EDIT: Turns out the checksum correction bit wasn't needed. The only requirement was changing the single compress 0x10 to 0x00. So it was a 1-byte mod!!
Last edited by nando4 on Sun Dec 05, 2010 8:29 pm, edited 14 times in total.
outrage_uk
New visitors - please read the rules.
Posts: 6
Joined: Mon Aug 23, 2010 7:06 am

Hello everyone. New to this forum.

Just to let you know I have read all 16 pages of this thread and the full tutorial on richud.com website.

Thank you to all that has put so much time and effort into helping others :)

I wonder if anyone could help as I seem to be stuck :?

I own a HP nc6320.

It has an Intel Pro Wireless 3945ABG Card in at the moment ( PCI\VEN_8086&DEV_4222&SUBSYS_135C103C )

Image

I would like to install an Intel Wireless N network card. ( PCI\VEN_8086&DEV_4236&SUBSYS_10118086 )

Image

I have downloaded the latest BIOS from HP : http://h20000.www2.hp.com/bizsupport/Te ... ob-58719-1

I have extracted the "Rom.bin" file and opened it in a Hex editor. I have searched and can not find my old wireless cards' hex :(

The only two references to the old card I can find ( 86 80 22 42 ) are as follows;

Image

Image

I am not sure what I need to edit as I can not find the old cards exact reference. Could someone help with this.

Also I have been reading about changing to the correct checksum :? :? :? I am not very good with hex editing and am lost with it all.

Any help would be much appreciated. Thanks again everyone 8)
outrage_uk
New visitors - please read the rules.
Posts: 6
Joined: Mon Aug 23, 2010 7:06 am

I have come to the conclusion that the BIOS file is compressed.

Playing around with the excellent program "Awesome Dirty Do Checksum Checker V3" (Thank you semi) - I loaded the BIOS file and chose Decompress. This leaves me with the file: "02_POST_00020100_Rom.dec" in the ADDCC_V3 folder.

Image

Opening this I can clearly see my original Wireless Card's ID in the Hex:

PCI\VEN_8086&DEV_4222&SUBSYS_135C103C Hex: 868022423C105C13

Image

So can I just edit the "02_POST_00020100_Rom.dec" file?

If I do, how do I 're-compress' this back into a BIOS file that can be reprogrammed?

Also, I am lost with the changing the Checksum. What options would I need to select to create a new checksum for the new BIOS file to work properly?
Post Reply