How to > HP BIOS MiniPCI Fix- nc6000/others

Don't ask how to hack password. (BIOS Passwords)
sharky
BIOS Newbie
Posts: 27
Joined: Wed Oct 07, 2009 2:29 pm

nando4 wrote: There is no DOS tool that I've been able to find to change the extended pci config registers prior to boot which may give a more positive result here. So another way would be to write a grub2 module as instructed by Uncle Joe [...] to change both PCI bridge memory ranges and PCI configuration registers. Source code here [...]. Just look at 4gb.c in the function SetBridgeMemoryRange() could be used as a basis.
You can save yourself the trouble of recalculating PCI bridge resource windows if you either use a recent Linux kernel or Windows Vista. According to
http:// tjworld. net/wiki/Linux/PCIDynamicResourceAllocationManagement (remove the spaces)
Vista (and probably Win 7) does fix bridge resources, so you can restrict yourself to just finding a free range for the PCI card resources which is hard enough to do generically, but pretty easy if the system doesn't change (no BIOS updates, no new/changed PCI devices). You can determine the resource size by booting Linux (maybe the R/W utility will tell you as well, not sure) and if you have a Linux kernel version which does not perform resource reallocation, you even know where the holes in the address space are.

Believe me, writing a full-blown resource allocator (with bridge support and chipset quirk support) is extremely painful and only a few people in the world can do it correctly. I do quite some x86 firmware development, but even I don't touch the resource allocator there (well, unless I get reviews from the person who wrote the allocator in the first place).

The GRUB module looks like a neat way to fix card resources before the OS (Windows/Linux/OSX) runs.
nando4
BIOS Rookie
Posts: 46
Joined: Sat Aug 22, 2009 2:44 pm

sharky wrote:The GRUB module looks like a neat way to fix card resources before the OS (Windows/Linux/OSX) runs.
Thanks for the reply. Would you have any DOS tools to do two things:

1/ Write bytes to the FULL 32-bit address space, eg: Root Base Configuration Address (RCBA) as used by Intel chipsets. Quite a few pci configuraiton details can be altered in that space.

2/ allow writing the pci-e extended configuration space so can load the pci-e configuration details as they appear when have a wifi card installed. That would override whitelisting altogether.

If I had such tools then can boot into DOS, make the changes, then chainload the OS using grub4dos. The grub2 module is nifty but is definitely for an advanced user. I've also requested a DOS compile of the the Linux pci-utils with extended pci-e configuration space support (4096 bytes) but so far have had no positive response.
sharky
BIOS Newbie
Posts: 27
Joined: Wed Oct 07, 2009 2:29 pm

nando4 wrote:Would you have any DOS tools to do two things:
1/ Write bytes to the FULL 32-bit address space
2/ allow writing the pci-e extended configuration space
You'd need a tool which uses protected mode under DOS. Even if you get pciutils compiled under DOS with extended PCIe config space support, you'll still lack the ability to access RCBA.
nando4 wrote: If I had such tools then can boot into DOS, make the changes, then chainload the OS using grub4dos. The grub2 module is nifty but is definitely for an advanced user. I've also requested a DOS compile of the the Linux pci-utils with extended pci-e configuration space support (4096 bytes) but so far have had no positive response.
I think the GRUB2 module is way easier to get/build, but it's your choice. If you manage to get hold of a recent pciutils for DOS, please tell me who created it. The pciutils source has a few quirks which make that quite non-trivial and I'm interested in all the knowledge I can get about compiling pciutils for DOS.
nando4
BIOS Rookie
Posts: 46
Joined: Sat Aug 22, 2009 2:44 pm

sharky wrote: I think the GRUB2 module is way easier to get/build, but it's your choice. If you manage to get hold of a recent pciutils for DOS, please tell me who created it. The pciutils source has a few quirks which make that quite non-trivial and I'm interested in all the knowledge I can get about compiling pciutils for DOS.
It's looking more and more like the grub2 module will be the likely solution. I was hoping for a DOS solution as that opens the door for novice users to correct whitelisting and for other functions like the DIY ViDock's PCI bridge window requirements. It's crazy that I could not find one protected mode 32-bit debugger that could successfully read/write to my RCBA Function-Disable memory mapped config space: FED93418.

As to pciutils, below is the most comprehensive answer I got from Martin Mares (a significant contributor to pciutils) on my request of a newer DOS port:

> It seems that nobody at the list (including the maintainer of pciutils)
> is aware of any DOS port capable of accessing the extended configuration
> space. So far, the only back-end supporting them is linux-sysfs.
>
> Feel free to contribute a patch ;)
>
> (However, you need MMCONFIG to access the extended configuration space,
> which is far from being trivial.)
>
sugark
New visitors - please read the rules.
Posts: 10
Joined: Wed Oct 07, 2009 3:05 pm

sugark wrote:Hi Fellows,

I have the same problem on my nc8000 with 68BAR.BIN rom file. Were you able to modify the wlan whitelist? In my case I would like to physically change

from Intel Pro Wireless 2200BG
PCI\VEN_8086&DEV_4220&SUBSYS_12F6103C&REV_05\4&16793A72&0&20F0 - 868020423C10F612

to TP-Link TL-WN660G
PCI\VEN_168C&DEV_0013&SUBSYS_2051168C&REV_01\4&16793A72&0&20F0 - 8C1613008C165120

The problem is ADDCCv2 was not able to find the Bios notation 868020423C10F612 for Intel. Thus the process stucked here.

Thanks in advance,
Krisztian
I have made the changes regarding semi's video. Changing vendor, device, subsystem id was clear. Also have changed checksum using "Boot Wake On LAN" but was not sure about what are the GREEN, RED correction fields are for. But anyway I was able to flash the modified ROM using "Rompaq BIOS Update Utility, Rompaq.exe". New WLAN card was inserted, Windows booted up, driver was installed, connected to wi-fi network, everything worked fine. Happy day!

BUT!!!!!!!!!!!!!!

After two days I have removed battery and unplugged AC adapter from laptop, so laptop had no electricity. And after putting back the same battery, the same AC adapter laptop was not able to boot up. It has a black screen, cd-rom periodically seeks its head, I think it restarts itself in every 0,5 sec.

Before I had realized the issue I have already flashed 3 more laptop. So I am not too happy today :). I am able to write the BIOS with external programmer, if I unsolder the chip, but it will take days.

Question:
What the hell is going on my HP nc8000? It is not logical. It was working 2 days with several reboot. Have I made some mistake on editing checksum? Have I forget something? Any idea?

I thought maybe CMOS should be cleared, so I have removed the CMOS battery and shorted the connector to discharge the connected condensers. But not helped.

Thanks in advance,
Krisztian
Last edited by sugark on Sat Oct 10, 2009 3:05 pm, edited 2 times in total.
nando4
BIOS Rookie
Posts: 46
Joined: Sat Aug 22, 2009 2:44 pm

sugark wrote:Before I had realized the issue I have already flashed 3 more laptop. So I am not too happy today :). I am able to flash the BIOS if I unsolder the chip, but it will take days.

Question:
What the hell is going on my HP nc8000? It is not logical. It was working 2 days with several reboot. Have I made some mistake on editing checksum? Have I forget something? Any idea?

I thought maybe CMOS should be cleared, so I have removed the CMOS battery and shorted the connector to discharge the connected condensers. But not helped.
Try Emergency Bios recovery by copying the bios.rom as 68xxx.bin onto a floppy and pressing <four arrows> or WIN+B on startup to do bootblock recovery. Might save you some soldering effort.
sugark
New visitors - please read the rules.
Posts: 10
Joined: Wed Oct 07, 2009 3:05 pm

nando4 wrote:Try Emergency Bios recovery by copying the bios.rom as 68xxx.bin onto a floppy and pressing <four arrows> or WIN+B on startup to do bootblock recovery. Might save you some soldering effort.
Thanks nando4,

This method doesn't work on a nc8000. Think because it is a Compaq BIOS and not a Phoenix BIOS.

Thanks,
Krisztian
sugark
New visitors - please read the rules.
Posts: 10
Joined: Wed Oct 07, 2009 3:05 pm

sugark wrote: I have made the changes regarding semi's video. Changing vendor, device, subsystem id was clear. Also have changed checksum using "Boot Wake On LAN" but was not sure about what are the GREEN, RED correction fields are for. But anyway I was able to flash the modified ROM using "Rompaq BIOS Update Utility, Rompaq.exe". New WLAN card was inserted, Windows booted up, driver was installed, connected to wi-fi network, everything worked fine. Happy day!

BUT!!!!!!!!!!!!!!

After two days I have removed battery and unplugged AC adapter from laptop, so laptop had no electricity. And after putting back the same battery, the same AC adapter laptop was not able to boot up. It has a black screen, cd-rom periodically seeks its head, I think it restarts itself in every 0,5 sec.
Hey,
After I have flashed my modified BIOS with Rompaq.exe than I have also backed up the BIOS to see if there is some differences. And there was number of differences After address 0x0E0000. Is it normal?

[img]bios.phrox.hu/68BAR_diff.gif[/img]

Bye,
Kr.
sugark
New visitors - please read the rules.
Posts: 10
Joined: Wed Oct 07, 2009 3:05 pm

this post deleted by sugark
Last edited by sugark on Sun Oct 11, 2009 9:53 am, edited 1 time in total.
sharky
BIOS Newbie
Posts: 27
Joined: Wed Oct 07, 2009 2:29 pm

sugark wrote:I was able to flash the modified ROM using "Rompaq BIOS Update Utility, Rompaq.exe". New WLAN card was inserted, Windows booted up, everything worked fine.
After two days I have removed battery and unplugged AC adapter from laptop, so laptop had no electricity. And after putting back the same battery, the same AC adapter laptop was not able to boot up. It has a black screen, cd-rom periodically seeks its head, I think it restarts itself in every 0,5 sec.

Question:
What the hell is going on my HP nc8000? It is not logical. It was working 2 days with several reboot.
To summarize:
You could shutdown the laptop and boot it again and it worked? Did you see the BIOS screen during these boots?

Then you removed all power (battery etc.) and tried to boot again, but it didn't boot anymore. Right?

If yes, this sounds like the embedded controller (which handles powerup on laptops/notebooks) doesn't like your new ROM. The embedded controller (EC) is always running, even if your laptop is switched off. If you remove all power, the EC stops and will start again once you insert the battery or the power supply. If something goes wrong when the EC starts, you have to remove all power again (for at least 30 minutes, maybe more) and hope that next time it works. If it still does not work, I think you will have to solder or try top hat flash.

EC problems are seen quite often after reflashing the whole ROM (instead of partial reflash) on some laptops...
nando4
BIOS Rookie
Posts: 46
Joined: Sat Aug 22, 2009 2:44 pm

sugark wrote:Thanks nando4,

This method doesn't work on a nc8000. Think because it is a Compaq BIOS and not a Phoenix BIOS.

Thanks,
Krisztian
Just a minor point. My 2510P and a colleagues 6910p both use Compaq bios and both can do the Emergency Bios recovery using this method. Can't confirm if nc8000 does/doesn't work. It *must* be a USB floppy drive. When it's connected and you press WIN+B or the four-arrow keys, the numlock LED will start flashing, followed by a floppy drive seek + associated noises when reading the bios ROM file.
sugark
New visitors - please read the rules.
Posts: 10
Joined: Wed Oct 07, 2009 3:05 pm

Hi nando4,
nando4 wrote:I will try a DELL USB FDD in the afternoon.
I have tried BIOS crisis recovery on working nc8000 with DELL USB FDD but it was the same nothing. We can declare that BIOS crisis recovery doesn't work on HP nc8000.
Bye,
Kr.
Last edited by sugark on Tue Oct 13, 2009 5:22 pm, edited 1 time in total.
sugark
New visitors - please read the rules.
Posts: 10
Joined: Wed Oct 07, 2009 3:05 pm

sharky wrote: To summarize:
You could shutdown the laptop and boot it again and it worked? Did you see the BIOS screen during these boots?

Then you removed all power (battery etc.) and tried to boot again, but it didn't boot anymore. Right?
Hi sharky,

Yes it was so. After flashing computer it was booted up properly with HP logo, etc. than I have installed WinXP and used the computer for 2 days with several reboots/shutdowns.

Same situation on another 3x nc8000 :(
sharky wrote:If yes, this sounds like the embedded controller (which handles powerup on laptops/notebooks) doesn't like your new ROM.
This EC thing sounds logical. So you think the problem must be on ROM checksum verified by EC? :?: If it is so than it means
  • - semi's ADDCC_V2 calculates checksum wrong?
  • - or I have made a mistake during semi's method?
  • - or there are some other checksums in BIOS which is verified by Embedded Controller and find out there is an error in BIOS?
Thanks,
Kr.
sugark
New visitors - please read the rules.
Posts: 10
Joined: Wed Oct 07, 2009 3:05 pm

Could someone please have a look on my work I have made on BIOS 68BAR.BIN and check it if I have made a mistake especially on checksum correction!

Aim was to replace

Code: Select all

from Intel PRO/Wireless 2100 LAN Adapter
PCI\VEN_8086&DEV_1043&SUBSYS_25228086 - 8680 4310 8680 2225

to TP-Link TL-WN660G
PCI\VEN_168C&DEV_0013&SUBSYS_2051168C - 8C16 1300 8C16 5120
Please check it with ADDCC_V2!
You can find files at bios.phrox.hu/68BAR_ORIG.BIN and bios.phrox.hu/68BAR_MOD.BIN.

These two rom files's Additive Checksum are not equal! Could it be the problem?

I would appreciate it very much!

Thanks in advance,
Kr.
Last edited by sugark on Sun Oct 11, 2009 2:44 pm, edited 1 time in total.
nando4
BIOS Rookie
Posts: 46
Joined: Sat Aug 22, 2009 2:44 pm

Moved here.
Last edited by nando4 on Sat Oct 17, 2009 10:55 am, edited 7 times in total.
Post Reply