TULC!
News & About
IPC Starnote
Compaq B1800
Linux on IPC
FreeBSD
Hardware
Software
FAQ
Laptop-Forum
Links


Modifying the BIOS Whitelist


HP/Compaq as well as DELL and other manufacturers built a whitelist of allowed vendor ID's into their BIOS. As a result you can only use "their" cards and accessories which usually come with a price premium. When trying to use a 3rd party card you will only get the infamous 104-Unsupported wireless network device detected error message and the notebook will refuse to boot. This guide will show you how to modify the BIOS of the Compaq Presario B1800 to allow the usage of a 3rd party Broadcom MiniPCi 802.11b/g WiFi card. The idea was taken from richud.com where you can also find modifications of a range of other HP machines.


Here goes the step by step guide. Please get the mentioned software packages at your discretion.

Get the latest BIOS update (currently F.09A, sp32325.exe) from the HP driver download website. Run the program and confirm the terms. If executed on another machine (a second PC is always handy when playing with the BIOS) you possibly get an error "Sorry, this BIOS is not for this model". Don't worry. It already extracted all you need. Go to "C:\Documents and Settings\YOUR USERNAME\Local Settings\Temp\Winphlash\RomFile>". The file we're looking for is 309AF09.ROM.

Get a copy of the Phoenix BIOS Editor and install it. Then start the tool and open the 309AF09.ROM file we've just extracted. There will be some error messages, click ok until all parts are open. Now you can look around a bit but don't change anything. Keep the program open in the background.

Now start a HEX editor of you choice. One good tool is WinHex, but others will work fine as well. Click on Open Files and browse to "C:\Program Files\Phoenix Technologies Ltd\BIOS Editor\TEMP>". That's the place where the Phoenix BIOS Editor extracted all BIOS parts to.

If you took a look at richud.com you saw that the required changes are not always in the same place. For the B1800 the file of interest is BIOSCOD3.ROM. Open this in your HEX editor. We're looking now for the vendor ID's HP/Compaq put in place for their own MiniPCi cards. According to the downloads on the website the B1800 should support Intel and Broadcom cards. Intel's vendor ID is 8086, Broadcom uses 14E4. Digits in the BIOS are swapped, so we need to find 8680 or E414 (use HEX search). And here they are:

As you can see only 2 different models with 2 subsys ID's each are working in this machine:

Intel 2200BG:
Vendor: 8086
Device: 4220
Subsys: 12F6 103C and 12F5 103C
or corresponding to the driver .inf:
PCI\VEN_8086&DEV_4220&SUBSYS_12F5103C
PCI\VEN_8086&DEV_4220&SUBSYS_12F6103C

Broadcom BCM430G:
Vendor: 14E4
Device: 4318
Subsys: 1356 103C and 1357 103C
or in the driver .inf:
%BCM430G_DeviceDesc% = BCM43XG2, PCI\VEN_14E4&DEV_4318&SUBSYS_1356103C
%BCM430G_DeviceDesc% = BCM43XG3, PCI\VEN_14E4&DEV_4318&SUBSYS_1357103C

What you need now is the correct information from the new MiniPCi you want to use in your machine. It's pretty straight forward, if you have access to another unblocked laptop. If this is not the case open the MiniPCi compartment on the bottom of your machine and remove the original MiniPCI card and the antenna cables. Then put it back without locking it into place. Boot the machine, as soon as the power on self test (POST) is finished remove the original MiniPCi and put your new card into place. Just be careful that you don't shorten any pins. Your laptop should boot into Windows, recognize the new card and try to install drivers. Usually you can cancel this if it doesn't find the correct ones. Then go to your device manager and look up the device ID's as shown here:

The details may differ from your card, however the principle is the same. We get the following:

Vendor: 14E4
Device: 4320
Subsys: 0418 14E4

Alright, now you have to decide which of the predefined cards in the BIOS you want to sacrifice. I suggest to keep the entry for the MiniPCi card the machine came with, so if it was an Intel card, keep the 8086 profiles. This will allow you to revert back in case you have a warranty issue or want to sell it.

Having said that we're going to modify the first existing Broadcom entry to match the new card. So you have to modify three ID's (the Vendor ID stays the same for Broadcom). We replace:

E4 14 unchanged => Vendor ID 14E4
18 43 with 20 43 => Device ID 4320
3C 10 with E4 14 => second part of subsys ID 14E4
57 13 with 18 04 => first part of subsys ID 0418

That's it, check the file again, then save it (and make sure you've used your own ID's, not the ones from this example). It should look like this (compare with above):

if everything is fine you can close your HEX editor now and go back to the Phoenix BIOS editor still running in the background. We're now going to create and package the new BIOS ready for flashing. In the BIOS editor look under "File", the option "Build BIOS" there should be grayed out. So we have to modify something first to enable this menu point.

On the right side select the Window "BIOS Configuration Parameters". Select "MultiBoot III" and change any value below with a double click, then change it back to its original setting (any other option will do also, just make sure you set it back to original). Bingo, now the "File/Build BIOS" is enabled.

Click on "Build BIOS". Check the logfile that there are no errors or warnings, then save the new BIOS under a new name like B309F09N.ROM and remember the place where it is.

And now to the last and most scary part...we flash the modified BIOS which potentially can kill the machine! Keep that in mind. It's all your personal risk, so please don't blame me later ;).

Remember in the beginning that we extracted the original BIOS? Right. Now we're going back to the WinPhlash Utility we've extracted together with the BIOS ROM. It's here: "C:\Documents and Settings\YOUR USERNAME\Local Settings\Temp\Winphlash". Go to this directory, but don't start the winphlash.exe yet. First we have to enable the advanced features. To do that we have to open the "PHLASH.INI" config file and change the parameter "Hideall=1" to "Hideall=0". Save the file and start winphlash.exe.

Always create a backup. Then select the new BIOS image you've created in the previous step. And that's it! Click "Flash BIOS" and start praying. If the prayer did not help and by any chance the machine doesn't reboot anymore, help is at hand :). Here is the required Phoenix BIOS Crisis Recovery Disk.

When all it's done, plug in your new card and your notebook should boot fine without any 104-Unsupported blablabla error message :). Please let us know when you were successful (or also when something went wrong to updated this guide accordingly) via E-Mail!

If this was helpful please feel to

Partner: