I have an problem with my Gemlight P6LIAK V0 motherboard. The BIOS did not recognize my 80GB, Maxtor 4D080H4 harddisk. I have upgrade to the last BIOS from DTK for the DTK PRM-0076I E0. It now recognizes the harddisk but hangs on size calculation. If I limit the harddisk to 4092 cylinders it works fine.
Current BIOS:
http://www.dtk.com.tw/download/bios/76ie0b.html
BIOS Type: Award Modular BIOS v4.51PG
BIOS ID: 12/18/1999-i440LX-SMC67X-2A69JD19C
OEM Sign-On: (2A69JD19) DTKPRM0076I.P02.01.07-V1.07
Any ideas?
Thanks!
80GB: 12/18/1999-i440LX-SMC67X-2A69JDC-00
Looking at it now....yes, 32GiB bug fixed but not 64GiB bug. Should be at the "untested" link in my signature shortly...
Tested patched BIOSes. Untested patched BIOSes.
Emails *will* be ignored unless the subject line starts "Wim's BIOS forum"
Emails *will* be ignored unless the subject line starts "Wim's BIOS forum"
-
- New visitors - please read the rules.
- Posts: 5
- Joined: Tue Mar 01, 2005 11:10 pm
Thanks NickS,
I have tried the untested BIOS and it does not work. It will not get past the 'Systems Configurations' table. It usually hangs on size calculation with any attached harddrive. If it doesn't, it just crashes displaying random garbage after the size calculation part.
I have tried the untested BIOS and it does not work. It will not get past the 'Systems Configurations' table. It usually hangs on size calculation with any attached harddrive. If it doesn't, it just crashes displaying random garbage after the size calculation part.
OK, thanks for the feedback. Is it set in CMOS to autodetect? Rumours say that using User Defined parameters sometimes works in this situation, particularly with WD drives.
If it is set to autodetect but crashing or displaying garbage at the Configuration display screen, I assume that it is getting through the autodetect phase ok; does it also cause a system hang when you enter the CMOS configuration page to display drive parameters? I'm just wondering whether it is worth taking a look at the BIOS manually.
Would you like me to patch with apple_rom's "bp", or try that yourself (www.rom.by)?
If it is set to autodetect but crashing or displaying garbage at the Configuration display screen, I assume that it is getting through the autodetect phase ok; does it also cause a system hang when you enter the CMOS configuration page to display drive parameters? I'm just wondering whether it is worth taking a look at the BIOS manually.
Would you like me to patch with apple_rom's "bp", or try that yourself (www.rom.by)?
Tested patched BIOSes. Untested patched BIOSes.
Emails *will* be ignored unless the subject line starts "Wim's BIOS forum"
Emails *will* be ignored unless the subject line starts "Wim's BIOS forum"
Hmm, maybe not.Would you like me to patch with apple_rom's "bp", or try that yourself (www.rom.by)?
Code: Select all
(c)2002-2003 apple_rom, www.ROM.by
76I107.bin have not enough space for adding ROM. (Over 4EB2h bytes)
Tested patched BIOSes. Untested patched BIOSes.
Emails *will* be ignored unless the subject line starts "Wim's BIOS forum"
Emails *will* be ignored unless the subject line starts "Wim's BIOS forum"
-
- New visitors - please read the rules.
- Posts: 5
- Joined: Tue Mar 01, 2005 11:10 pm
All drives are set to autodetect. I have tried user CHS settings too.
With the original BIOS, it detects my WD Caviar 26400R and can calculate and display its size (6448.6MB). It detects 80GB Maxtor, but can not display the size.
With the modded BIOS it can't diplay the size in 'Systems Configurations' table for both drives. It just hangs when its supposed to display it. But it can display the size of the WD in the 'Standard CMOS setup' BIOS page.
I can't get it to display random garbage anymore. (no more inverted M's and omegas and such). But sometimes it gets past the size part, then it lists all ports at adress 720 and 4 harddrives SMART messages.
If I look at http://www.ryston.cz/petr/bios/ga586t2_mod.html
it looks to me I can just skip the whole part and start with: 'X:05D4 ret', or am I missing something here?
I don't know much about ASM, but I'm going to try it anyway.
With the original BIOS, it detects my WD Caviar 26400R and can calculate and display its size (6448.6MB). It detects 80GB Maxtor, but can not display the size.
With the modded BIOS it can't diplay the size in 'Systems Configurations' table for both drives. It just hangs when its supposed to display it. But it can display the size of the WD in the 'Standard CMOS setup' BIOS page.
I can't get it to display random garbage anymore. (no more inverted M's and omegas and such). But sometimes it gets past the size part, then it lists all ports at adress 720 and 4 harddrives SMART messages.
If I look at http://www.ryston.cz/petr/bios/ga586t2_mod.html
it looks to me I can just skip the whole part and start with: 'X:05D4 ret', or am I missing something here?
I don't know much about ASM, but I'm going to try it anyway.
Code: Select all
;-------------------
;calculate HDD size
;-------------------
-- MACRO F000_call Get_HDD_CMOS_Info
X:05D4 0E push cs
X:05D5 68 05E0 push ret_addr_1
X:05D8 68 7B4A push offset Get_HDD_CMOS_Info
X:05DB EA E000ECC0 jmp far ptr F000_call_proc
X:05E0 ret_addr_1
X:05E0 1E push ds
X:05E1 53 push bx
X:05E2 75 1D jnz short Get_User_Type
X:05E4 0F B6 02 movzx ax,byte ptr [bp+si] ;Hdd type no.
X:05E7 FE C8 dec al
X:05E9 C1 E0 04 shl ax,4
X:05EC BB 56F2 mov bx,offset HDISK_PARMS
X:05EF 03 D8 add bx,ax
X:05F1 68 F000 push 0f000h
X:05F4 1F pop ds
X:05F5 0F B6 47 02 movzx ax,byte ptr [bx+2] ;heads
X:05F9 0F B6 4F 0E movzx cx,byte ptr [bx+14] ;sectors
X:05FD 8B 1F mov bx,[bx] ;cylinders
X:05FF EB 0A jmp short Disp_HDD_Size
X:0601 Get_User_Type:
X:0601 0F B6 43 02 movzx ax,byte ptr [bp+di+2] ;heads
X:0605 0F B6 4B 07 movzx cx,byte ptr [bp+di+7] ;sectors
X:0609 8B 1B mov bx,[bp+di+0] ;cylinders
X:060B Disp_HDD_Size:
X:060B C1 E1 02 shl cx,2
X:060E F7 E1 mul cx
X:0610 F7 E3 mul bx
X:0612 5B pop bx
X:0613 1F pop ds
X:0614 B9 1E84 mov cx,15625/2
X:0617 F7 F1 div cx ;Divide overflow here!!!
X:0619 89 86 009C mov HDDSIZE[bp],ax
-- MACRO F000_call Disp_Word_Int5
X:061D 0E push cs
X:061F 68 0629 push offset ret_addr_2
X:0621 68 43AA push offset Disp_Word_Int5
X:0624 EA E000ECC0 jmp far ptr F000_call_proc
X:0629 ret_addr_2:
X:0629 BE 02EC mov si,offset MB_Str
X:062C @@:
-- MACRO post_func_call Disp_Str_In_BIOS
X:062C 0E push cs
X:062D 68 0638 push offset ret_addr_3
X:0630 68 6681 push offset Disp_Str_In_BIOS
X:0633 EA F0004F32 jmp far ptr Post_call_proc ; (F000:4F32)
X:0638 ret_addr_3:
X:0638 C3 ret
The first step is to identify the correct entry point in the AWARDEXT.ROM component of the BIOS, as it is not at 0x05D4 in your BIOS. I am not at my patching machine right now, so I can't tell you where it is. I assume you know how to use CBROM, or will do soon! Also, I find that the sequence shown as: appears to be different in your BIOS, so it is not straightforward and this could be why Rainbow's utility has not worked.
I guess a RET might simply bypass the configuration display as you hope; good luck!
Code: Select all
X:05F5 0F B6 47 02 movzx ax,byte ptr [bx+2] ;heads
X:05F9 0F B6 4F 0E movzx cx,byte ptr [bx+14] ;sectors
I guess a RET might simply bypass the configuration display as you hope; good luck!
Tested patched BIOSes. Untested patched BIOSes.
Emails *will* be ignored unless the subject line starts "Wim's BIOS forum"
Emails *will* be ignored unless the subject line starts "Wim's BIOS forum"
if the BIOS can be patched with an alternative patcher that would both detect and display a drive's size correctly, I would consider this preferable as long as other features and functionality are not compromised.
Failing that, I would set the drive type and mode (LBA, CHS, etc.) to AUTO for all ATA disks. Reason being that if they are a user setting and display the drive size incorrectly, this may confuse you each time you look in that section of the BIOS. But with the auto settings, they get detected every time you boot and you will probably get used to the idea that drives are being detected properly each time you boot even if they are not displaying correctly.
If AUTO for some reason can not be used, revert to USER. And if the auto-detect will not work but manual parameters will, I would consider that as a last resort.
Off-topic slightly, if anyone can explain, in a private message if need be (to avoid me hijacking the post) why Western Digital drives often do not display their size correctly while other makes usually will, this would be quite useful to be aware of.
Failing that, I would set the drive type and mode (LBA, CHS, etc.) to AUTO for all ATA disks. Reason being that if they are a user setting and display the drive size incorrectly, this may confuse you each time you look in that section of the BIOS. But with the auto settings, they get detected every time you boot and you will probably get used to the idea that drives are being detected properly each time you boot even if they are not displaying correctly.
If AUTO for some reason can not be used, revert to USER. And if the auto-detect will not work but manual parameters will, I would consider that as a last resort.
Off-topic slightly, if anyone can explain, in a private message if need be (to avoid me hijacking the post) why Western Digital drives often do not display their size correctly while other makes usually will, this would be quite useful to be aware of.
...
Last edited by sulbert on Thu Mar 03, 2005 10:54 pm, edited 1 time in total.
You MUST use CBROM 1.xx (not 2.xx) for Award 4.51 BIOSes.
Patched and tested BIOSes are at http://wims.rainbow-software.org
UniFlash - Flash anything anywhere
UniFlash - Flash anything anywhere
CBROM 1.13 has no problem.sulbert wrote:Looks like the CBROM has troubles with that BIOS.
Code: Select all
CBROM v1.13a
Copyright (c) Award Software, Inc. 1995-1997 All Rights Reserved.
******** 76i107.bin BIOS component ********
No. Item-Name Original-Size Compressed-Size Original-File-Name
==========================================================================
0. System BIOS 20000h(128.00K)13DB8h(79.43K)original.tmp
1. CPU micro code 04000h(16.00K)022EFh(8.73K)CPUCODE.BIN
2. ACPI table 024CAh(9.20K)00E51h(3.58K)ACPITBL.BIN
3. EPA pattern 00642h(1.56K)002A1h(0.66K)AWARDEPA.BIN
4. Other(4100:0000) 0432Dh(16.79K)02E64h(11.60K)awardext.rom
Total compress code space = 1A000h(104.00K)
Total compressed code size = 19FFDh(104.00K)
Remain compress code space = 00003h(0.00K)
Tested patched BIOSes. Untested patched BIOSes.
Emails *will* be ignored unless the subject line starts "Wim's BIOS forum"
Emails *will* be ignored unless the subject line starts "Wim's BIOS forum"
...
Last edited by sulbert on Thu Mar 03, 2005 10:54 pm, edited 1 time in total.
-
- New visitors - please read the rules.
- Posts: 5
- Joined: Tue Mar 01, 2005 11:10 pm
I had to hotflash the chip in another bord to get the machine booting again.
I used AwardMod and WinHex to do it.
Sweet, it works!Selfdefence wrote: it looks to me I can just skip the whole part and start with: 'X:05D4 ret'
I used AwardMod and WinHex to do it.
I'm still interested in what went wrong with Rainbow's patcher. My statement above about the code being different is wrong, I was looking in the wrong place. For this BIOS the configuration "display size" entry point apears to be at 0x0980 in the XGROUP code.
Tested patched BIOSes. Untested patched BIOSes.
Emails *will* be ignored unless the subject line starts "Wim's BIOS forum"
Emails *will* be ignored unless the subject line starts "Wim's BIOS forum"
Looks like I should remember how the code works (or should work) and debug it...
Patched and tested BIOSes are at http://wims.rainbow-software.org
UniFlash - Flash anything anywhere
UniFlash - Flash anything anywhere