Back to home page

DOS ain't dead

Forum index page

Log in | Register

Back to the forum
Board view  Mix view

SB Live DOS emulation - my fight with SERR# to NMI routing (Developers)

posted by RayeR(R) Homepage, CZ, 19.05.2008, 02:02

as I wrote before, the problem why SBEMU don't work on new mobos is due to (hardware or software) routing SERR# to NMI is broken. Today I had some time to check hardware routing on my mobo and read ICH7 datasheet for proper config registers.
1) I looked on mobo and checked if PCI pin SERR# is routed on PCB. Yes it was but due to BGA package of ICH7 I couldn't trace it if really connected.
2) I checked if my BIOS have some NMI ISR. Yes it have. I called INT02h (mapped to NMI) and "PCI Parity Error !" message appeared. Then I can choose continue or reboot by pressing a Fx keys.
3) I soldered a wire on SB Live PCI edge connector to SERR# pin to be able to trigger SERR# manually. Of course when I grounded the wire NMI was not triggered because of it was disabled in chipset. Fortunatelly this can be changed be software way.
4) I studied ICH7 datasheet and found the SERR#/NMI releated PCI registers. They are located in PCI2PCI bridge (8086:244E), bus 0, device 30, func 0.
5) I set PCICMD.SEE16 (D30:F0:Offset 04h:bit 8) = 1 (SERR# enable) and
BCTRL.SEE16 (D30:F0:Offset 3Eh:bit 1) = 1 (SERR# forwarding)
Then I checked if bit PSTS.SSE16 (D30:F0:Offset 06h:bit 14)
is set when I ground SERR# wire, yeah it did!
This flag is cleared by writting one to this bit
6) I set NMI_SC?NMI8 (I/O space 61h:bit 2) = 0 (NMI SERR# source enable)
and NMI_EN?NMI8 (IO space 70h:bit 7) = 0 (NMI enable). Now when I ground
the wire the "PCI Parity Error !" message apper so finally SERR# to NMI
route is working.
I wrote a simple utility to enable it and put in autoexec before loading the SBEMU driver. Now when I run SBEGO.EXE it passed all IO, IRQ and DMA tests. SBEMU parameters was properly synchronized with PCI resources by windows98 drivers. So go on and run Doom. I can now hear MIDI music but still don't hear SFX :-(. I tried some other games, e.g. Blood reports high DMA error - I use common SB values SET BLASTER=A220 I5 D1 H5 P330 T6, both DMAs are not conflicting with other HW (in windows CPL i can see DMA2 is used by FDC and DMA4 by 2nd DMA others are free). Oher games hang during sound init.

So the conclusion is that properly working SERR# to NMI rounting is only a partial condition for working SBEMU. I have no any idea what the Hell is in DMA :(

BTW Japheth, what about SB Live/AC97 JLM? ;-)

DOS gives me freedom to unlimited HW access.


Complete thread:

Back to the forum
Board view  Mix view
15108 Postings in 1358 Threads, 246 registered users, 14 users online (0 registered, 14 guests)
DOS ain't dead | Admin contact
RSS Feed
powered by my little forum