SB Live DOS emulation - my fight with SERR# to NMI routing (Developers)
Hi,
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:
- SB Live DOS emulation - my fight with SERR# to NMI routing - RayeR, 19.05.2008, 02:02 (Developers)
- SB Live DOS emulation - my fight with SERR# to NMI routing - Japheth, 19.05.2008, 09:55
- SB Live DOS emulation - my fight with SERR# to NMI routing - RayeR, 19.05.2008, 12:07
- SB Live DOS emulation - my fight with SERR# to NMI routing - Japheth, 19.05.2008, 13:03
- SB Live DOS emulation - my fight with SERR# to NMI routing - RayeR, 19.05.2008, 14:44
- SB Live DOS emulation - my fight with SERR# to NMI routing - rr, 19.05.2008, 14:47
- SB Live DOS emulation - my fight with SERR# to NMI routing - RayeR, 20.05.2008, 02:17
- SB Live DOS emulation - my fight with SERR# to NMI routing - rr, 20.05.2008, 09:35
- SB Live DOS emulation - my fight with SERR# to NMI routing - RayeR, 20.05.2008, 10:32
- SB Live DOS emulation - my fight with SERR# to NMI routing - rr, 20.05.2008, 11:24
- SB Live DOS emulation - my fight with SERR# to NMI routing - RayeR, 20.05.2008, 10:32
- SB Live DOS emulation - my fight with SERR# to NMI routing - Japheth, 20.05.2008, 09:44
- SB Live DOS emulation - my fight with SERR# to NMI routing - RayeR, 20.05.2008, 10:39
- SB Live DOS emulation - my fight with SERR# to NMI routing - Japheth, 20.05.2008, 19:37
- SB Live DOS emulation - my fight with SERR# to NMI routing - RayeR, 20.05.2008, 10:39
- SB Live DOS emulation - my fight with SERR# to NMI routing - rr, 20.05.2008, 09:35
- SB Live DOS emulation - my fight with SERR# to NMI routing - RayeR, 20.05.2008, 02:17
- SB Live DOS emulation - my fight with SERR# to NMI routing - Japheth, 19.05.2008, 15:39
- SB Live DOS emulation - my fight with SERR# to NMI routing - rr, 19.05.2008, 14:47
- SB Live DOS emulation - my fight with SERR# to NMI routing - RayeR, 19.05.2008, 14:44
- SB Live DOS emulation - my fight with SERR# to NMI routing - Japheth, 19.05.2008, 13:03
- SB Live DOS emulation - my fight with SERR# to NMI routing - Rugxulo, 19.05.2008, 23:20
- SB Live DOS emulation - my fight with SERR# to NMI routing - RayeR, 19.05.2008, 12:07
- SERR# to NMI routing enabler utility - RayeR, 20.05.2008, 02:22
- SERR# to NMI routing enabler utility - rr, 20.05.2008, 09:33
- SERR# to NMI routing enabler utility - RayeR, 20.05.2008, 10:43
- SERR# to NMI routing enabler utility - rr, 20.05.2008, 11:23
- SERR# to NMI routing enabler utility - RayeR, 20.05.2008, 10:43
- SERR# to NMI routing enabler utility - rr, 20.05.2008, 09:33
- SBEMU - DOS386, 31.05.2008, 03:31
- SBEMU - Japheth, 31.05.2008, 07:53
- SBEMU - RayeR, 31.05.2008, 14:14
- SBEMU | slow emulators | Sb Live and MPXplay - DOS386, 04.06.2008, 02:43
- SBEMU | slow emulators | Sb Live and MPXplay - RayeR, 04.06.2008, 02:50
- SBEMU | slow emulators | Sb Live and MPXplay - DOS386, 04.06.2008, 02:43
- SB Live DOS emulation - my fight with SERR# to NMI routing - Japheth, 19.05.2008, 09:55