Hacking Award BIOS to disable onboard video

Only for programmers and BIOS gurus with technical questions.
Denniss
BIOS Guru
Posts: 3153
Joined: Thu Mar 21, 2002 8:16 pm
Location: Near Hannover (CEBIT) Germany
Contact:

01/03/2001-SIS-630-6A6IRZ19C-00
V630E BABY AT Ver 1.08 (2001/JAN/08)

Is this your Bios ?

Is your "Init Display First" set to PCI ?
Is your Shared Memory set to a low value ?
-> Bios shows 2 or 2+2 MB as the lowest possible

Have you tried to load the Setup Defaults in Bios to see what happens ?
maman
Master Flasher
Posts: 173
Joined: Sun Mar 31, 2002 2:08 pm
Location: Taka Bonerate National Park, Indonesia
Contact:

Is your "Init Display First" set to PCI ?
Is your Shared Memory set to a low value ?
-> Bios shows 2 or 2+2 MB as the lowest possible
I don't know for sure, but based on what I've discussed with ruelnov, it seems to me that he already try all of these alternatives. Also, from his BIOS binary I've been "hacking" so far, it seems to be the onboard AGP will always be in use unless we are hacking that BIOS to disable it. I've crosschecked this by using Awdbedit, a disassembler and the chipset's datasheet :(. Modbin 6 always failed in my machine here in the lab (probably due to it's an NTFS partition), I'll check it later with my other machine at home which has a FAT32 partition.
ruelnov
Master Flasher
Posts: 172
Joined: Tue Jun 08, 2004 2:11 pm
Contact:

Denniss:

Yes, that's my bios.

Have tried all alternatives including the ones you suggested. No go. It's "bios hacking" that's needed.

maman:

Have tried changing to bit 0 the default for Address 9Ch in the bios chipset registry defaults, still no go.
ruelnov
Master Flasher
Posts: 172
Joined: Tue Jun 08, 2004 2:11 pm
Contact:

maman:

I have used this trick to prevent Modbin6 from complaining in my dual-boot system with NTFS partition: Unpack xgroup, group, and cpucode using Cbrom215. Then proceed with editing the resulting bios image file with Modbin6, and you won't have any more problem saving the changes. And simply put back the extracted modules afterwards.
ruelnov
Master Flasher
Posts: 172
Joined: Tue Jun 08, 2004 2:11 pm
Contact:

I've came across this stuff in my chipset datasheet on how to disable AGP:

1. Setting bit 8 in register C8h enables AGP.
2. Clearing bit 8 in register C8h disables AGP.
3. Setting bit 9 enables SBA.
4. Changing bit 2:0 sets the data transfer rate.

And Modbin6 reveals register address C8h with a bit representation as XXXXX100.

So which one is bit 8 in XXXXX100?

And which one is bit 9 and bit 2:0?

Please help.
ruelnov
Master Flasher
Posts: 172
Joined: Tue Jun 08, 2004 2:11 pm
Contact:

Allow me to keep this post alive, as I believe that there are a lot of end users out there (aside from me) waiting for the appropriate solution.

Regarding my last post, I've figured out how to set any bit in the chipset register. But this is not the long-term solution because this is not hard-coded into the bios binary.

Currently, I'm disassembling my bios binary using looking for ways to disable onboard video, inasmuch as nobody yet has ever come forward to present the solution.

And if I may repeat it, anybody who has the solution?
apple_rom
Use my patch at your own risk!!
Posts: 125
Joined: Tue Jan 07, 2003 11:39 am
Location: Minsk
Contact:

...Some comments - don`t use "cbrom v.2.15" - is a VERY_BAD version! Only v.2.07/2.08 is a stable-versions.
...And you try with old bios-versions (1.04 - ftp://ftpdriver:s5dkf34jbg@ftp2.nix.ru/ ... 30e104.zip)?

p.s. some docs - http://www.rom.by/doki.htm
ruelnov
Master Flasher
Posts: 172
Joined: Tue Jun 08, 2004 2:11 pm
Contact:

apple_rom:

I had a problem downloading from the site you suggested. Kindly send the old bios file to my email if you can download it with no problem.

Thanks.
sulbert
Master Flasher
Posts: 204
Joined: Wed Jul 17, 2002 1:38 pm
Contact:

Try this link:
ftp://ftpdriver:s5dkf34jbg@ftp2.nix.ru/ ... 30e104.zip

At least worked for me.
maman
Master Flasher
Posts: 173
Joined: Sun Mar 31, 2002 2:08 pm
Location: Taka Bonerate National Park, Indonesia
Contact:

hints for anyone interested in this "project":
# Disassemble the BIOS, better to use IDA Pro 8)
# Locate the POST code from the POST jump table in original.tmp into the onboard VGA chip. I haven't got the time to do this. I've done disassembling the bootblock and it seems to me the onboard VGA init routine there is only executed if system BIOS (original.tmp) corrupted, so it's better to start with the POST code.
ruelnov
Master Flasher
Posts: 172
Joined: Tue Jun 08, 2004 2:11 pm
Contact:

apple_rom/sulbert:

Tried the older bios version, no go.

maman:

I have also looked into the Bootblock and Decompression blocks using IDA Pro. Onboard VGA is disabled at early POST, and PCI VGA is initialized when a checksum error in original.bin is detected, purposely to be able to display video so that the user could recover from Bootblock via a reflash.

This means that all the code needed to initialize PCI VGA could be borrowed from Decompression block and patched into original.bin (i.e. replacing the onboard VGA initialization routine in original.bin by this block of code).
apple_rom
Use my patch at your own risk!!
Posts: 125
Joined: Tue Jan 07, 2003 11:39 am
Location: Minsk
Contact:

...else you can try some bioses from another mobos on this chip, for example - pcchips-m758 ( http://www.amptron.com/html/lbca.m758lmr+.html ) or another (search web with "sis630e+bios").
ruelnov
Master Flasher
Posts: 172
Joined: Tue Jun 08, 2004 2:11 pm
Contact:

I've already tried flashing my bios before with another board's file using the same chipset. Not successful on this. System won't boot.

I would rather continue exploring my disassembled bios binary and look for ways to disable onboard video.
apple_rom
Use my patch at your own risk!!
Posts: 125
Joined: Tue Jan 07, 2003 11:39 am
Location: Minsk
Contact:

I would rather continue exploring my disassembled bios binary and look for ways to disable onboard video.
Try search in the area POST_codes 2Bh/2Dh/2Eh...
ruelnov
Master Flasher
Posts: 172
Joined: Tue Jun 08, 2004 2:11 pm
Contact:

Not being able to get the desired results since I originally posted this thread, I proceeded to write my own assembly code to disable Onboard VGA and initialize PCI VGA.

The plan is to first build a .com file which is called by Autoexec.bat before the OS is loaded (purposely to test my code fully before I patch it into my bios binary), then if everything works fine convert the code into an ISA ROM.

I have already tested the routine that disables Onboard VGA and it works fine, which means that the video was effectively switched off when Autoexec.bat runs and the system just continued to load the OS without video.

But does anyone know whether writing directly to the video subsystem port (to disable onboard vga) also automatically disables the I/O Space and Memory Space?

Also, copying the PCI VGA ROM to RAM requires that the Global Descriptor Table is loaded first and then the system is temporarily switched to Protected Mode, then switched back to Real Mode after the copy process. I don't have problems doing the mode switching, but on what settings/values to load for the GDT. Does anyone knows this?
Post Reply