Reply 40 of 55, by jakethompson1
- Rank
- Oldbie
I got the Dallas in the other board. First, the 32-bit IDE port issue is specific to the first board. It works fine on this other one. I did not mention previously, the first board insists on putting the parallel port at 278h in automatic mode and claims there is a resource conflict when set manually to 378h. So something is wrong with that one.
I made some progress with the 3-2-2-2 DRAM issue. I modified the new board to 2X clock mode as well. A 74F244 has pin 4 - CLK2OUT, pin 6 - SCLKOUT, pin 16 - CLK2IN so it is properly buffered for 2X clock.
First, booting into Linux and running a small program to switch to it works fine!
Lacking a better memory test, hdparm -T averages 12.88 MB/sec before and 14.39 MB/sec after.
The issue has something to do with executing code from shadow RAM while in 3-2-2-2 mode. But not always. Rebooting with Ctrl-Alt-Del after flipping the bit in Linux causes the BIOS to hang at post code 13h.
EMM386.EXE ROM=F000-FFFF is enough to at least be able to set the 3-2-2-2 bit from DOS. But the common cachechk, speedsys, etc. don't want to run under EMM386 so it's hard to say immediately whether it's effective.
I have tried various forms of this in debug:
cli
mov ax,1010
out 22,al
in al,23
and al,fe
xchg al,ah
out 22,al
xchg al,ah
out 23,al
sti
<some other code>
then: out 80,al / inc ax / jmp to out 80,al
or: mov ax,e41 / int 10 / jmp to mov ax,e41
Both of those work fine until I press a key on the keyboard at which point the system freezes. The IRQ 1 handler must be enough to freeze the system, but whatever BIOS code is in the timer interrupt is not.
<some other code> can be: call f000:ef31 or call c000:48 (both RETFs on my system), neither of which freezes the system.
mov ah,88 / int 15 doesn't freeze it either.
In Linux, dd if=/dev/mem of=bios.bin bs=65536 skip=15 count=1 / dd if=/dev/mem of=vbios.bin bs=32768 skip=24 count=1 don't freeze the system, and produce the same results before or after.
I have messed with the shadow cacheability settings to no avail. And the BIOS is new enough it's impossible to disable shadowing of the system BIOS as it's compressed. That it can get multiple POST codes in on Ctrl-Alt-Del (causing the BIOS to re-execute but from shadow RAM) seems to indicate it's some esoteric but reproducible situation that causes the system to freeze.