VOGONS


First post, by AllTinker

User metadata
Rank Newbie
Rank
Newbie

Hey all!

So I recently began putting together a 486 machine for gaming and programming fun, but I'm having issues with its PCI bus.

The motherboard is apparently obscure, but it matches this one. Certainly all jumpers are identical, although this board identifies itself as PU-S7, not PU-S3.

I have a PCI S3 Trio64V video card in there which works beautifully, but anything which requires interrupts is a different story.
The no-brainer is to ditch PCI for other cards and just stick with ISA. If I can't solve this, I'll do just that. I don't have any ISA network cards lying around or I likely wouldn't have even bothered getting to this point.

Anyway, for this post I'll focus on my (thus far unsuccessful) efforts to get the packet driver working with the following RTL8139D card:
1-rtl8139d.jpg
Note that I have also tried an Intel and D-Link card with the same end result (obviously with their own appropriate packet drivers).
I've tested these cards in another machine (a Compaq Pentium 2) and they work perfectly.

First of all, without doing anything extra, this is what happens when I start the packet driver...
2-rtspkt-default.jpg
As you can see, the IRQ is 255/0xFF; obviously an invalid value.

The primary BIOS options I have for the PCI bus are as follows:
3-bios.jpg
However, none of the left-hand options seem to have any effect whatsoever!
I have also tried placing the cards in every combination of PCI slot and underclocking the PCI bus, with no changes.

Here's how the network card appears in Intel PCI View:
4-pciview-1.jpg
5-pciview-2.jpg
6-pciview-3.jpg

I grabbed the PCI 2.1 spec and had a bit of a read, and noticed that there's a call you can make called (funnily enough) "Set PCI Hardware Interrupt".
So I wrote a little program that does just that, followed by unmasking the interrupt via the PICs:
7-assignment.jpg
8-pciview-1.jpg
9-pciview-2.jpg
10-pciview-3.jpg
11-irqs.jpg

Yay, IRQ assigned! Now the Realtek diagnostic runs:
12-rset8139.jpg

Except... Nope, the Realtek remote diagnostic does NOT work (as initiator or responder), and my luck with mTCP hasn't improved either:
13-result.jpg
Probing the packet driver reveals that I've received no packets, which says to me that the IRQ still isn't firing, even though it's (by all accounts) been assigned.
Outgoing DHCP and ping packets are received by the other machine on the network, and replies are sent, but never received.
I've done quite a few idiot-checks, plugging the same network cable into a laptop, things of that nature.
I also tried getting a PCI USB card working, which had the same IRQ (or lack thereof) issues.
Lastly I've tried reinitialising the 8259 PICs from a different DOS program I put together, both into edge and level modes, since the BIOS settings seem to do absolutely nothing. Obviously no joy there either, but I'm just fumbling around with pretty rudimentary knowledge of this stuff.

Has anyone else had this issue (or better yet solved it)? I've looked around but found almost nothing...
Maybe there's something completely obvious I've overlooked, but right now I'm a bit stumped! Any PCI/AwardBIOS experts out there with any ideas?
I don't have a compatible EEPROM reader/burner to dump/rewrite the BIOS at the minute, although I'm looking at getting one for general use.
...Of course I'm also looking at just getting an ISA network card and being done with it, but I'd much rather have this figured out one way or another!

Reply 1 of 19, by PcBytes

User metadata
Rank Oldbie
Rank
Oldbie

Try using a 8139 C instead of the D revision you have.

"Enter at your own peril, past the bolted door..."
Main PC: i5 3470, GB B75M-D3H, 16GB RAM, 2x1TB
98SE : P3 650, Soyo SY-6BA+IV, 384MB RAM, 80GB

Reply 2 of 19, by mcfly

User metadata
Rank Newbie
Rank
Newbie

I got exactly the same RT8139 and mine was detected and configured without a problem in FreeDOS. Perhaps there is something electrically wrong with motherboard? If it is old, perhaps you should spray slots with some contact cleaner, check if some gunk is not in there, and clean all contacts on the card with a cotton swap. One of my sound cards suddenly stopped working and caused system to stop posting. I did some cleaning and it went back again. I'm thinking, if this was just one PCI card, then it might have been just a bad one. But two different not working cards on the same motherboard is less likely. Not saying it will definitely help, but may be worth trying.

Reply 3 of 19, by zyga64

User metadata
Rank Oldbie
Rank
Oldbie

For some reason most stable network card for me (for Socket 3 UMC based Biostar 8433UUC-A) was 10 Mbit PCI - Realtek 8029AS. I've tried 100Mbit ones: Realtek 8139 as well as 3com 3c905, but this 8029 was most reliable (especially in Windows). If I remember correctly it also allowed me to run ftp client in Necromancer Dos Navigator (after loading packet driver).

1) VLSI SCAMP /286@20 /4M /CL-GD5422 /CMI8330
2) i420EX /486DX33 /16M /TGUI9440 /GUS+ALS100+MT32PI
3) i430FX /K6-2@400 /64M /Rage Pro PCI /ES1370+YMF718
4) i440BX /P!!!750 /256M /MX440 /SBLive!
5) iB75 /3470s /4G /HD7750 /HDA

Reply 4 of 19, by AllTinker

User metadata
Rank Newbie
Rank
Newbie

Thanks guys - the motherboard is as-new, no electrical problems I can identify (e.g. capacitors, traces), all contacts are pristine, and the S3 Trio64 works in all three slots perfectly.

I mentioned four PCI cards in the post above, but to be more specific, I've tried the following:
- The Realtek RTL8139D 10/100 NIC, which I focussed on since it has a dedicated diagnostic tool mainly.
- An Intel 82552 10/100 NIC
- A D-Link DGE-530T Gigabit NIC
- A Yamaha XG YMF724
- A Sound Blaster Live! 5.1
- An NEC 5-port USB card
- A VIA 5-port USB card

All of these cards refuse to be assigned an ISA IRQ by the PCI BIOS without my (thus far unfruitful) intervention, regardless of which slot or any BIOS setting.
On other machines, e.g. my Compaq Pentium 2 or anything newer, the PCI=>ISA IRQ assignment happens automagically (and better yet is usually user-configurable per slot).
I don't care about the sound cards since I have an ISA Sound Galaxy Nova 16 Extra II which works just fine.
All the cards work fine in other systems.
In the 486, the I/O tests I can perform on the cards work fine, but anything interrupt-based fails.
I've also tried unused IRQs other than 11 obviously (e.g. 7, 9, 10, 12). Calls I made against the PCI BIOS tell me that it doesn't reserve any particular IRQs for PCI. From what I gather that isn't unusual though.

Reply 5 of 19, by zyga64

User metadata
Rank Oldbie
Rank
Oldbie

Speaking about USB card, you may try those with Opti chipset - these are more period correct (only USB 1.1), so there a chance they will work.
After all it is very early PCI implementation.

Definitely ISA sound card is the best solution here. I think compatibility is more important than performance in this case.

Do you have access to flash memory programmer ? You may try to program BIOS from different motherboard with the same chipset. I did this few times in the past with good results.

1) VLSI SCAMP /286@20 /4M /CL-GD5422 /CMI8330
2) i420EX /486DX33 /16M /TGUI9440 /GUS+ALS100+MT32PI
3) i430FX /K6-2@400 /64M /Rage Pro PCI /ES1370+YMF718
4) i440BX /P!!!750 /256M /MX440 /SBLive!
5) iB75 /3470s /4G /HD7750 /HDA

Reply 6 of 19, by AllTinker

User metadata
Rank Newbie
Rank
Newbie

I do have a couple of old serial EEPROM programmers but the software for them is long gone - I want to get my hands on a new USB one before I try anything on that front. And it'd be with a fresh chip after I've thoroughly backed up the existing one, since it seems like the current BIOS is nowhere to be found on the free internet. Also I do worry that the boards I've looked at with the same chipset seem pretty different in a myriad of ways...

I still have some hope I can manually assign the IRQ from DOS. My simple program clearly performs a good chunk of the assignment successfully - I can't shake the feeling that it's possible and I'm just missing some piece of the puzzle...

Reply 7 of 19, by BloodyCactus

User metadata
Rank Oldbie
Rank
Oldbie

some old cards dont like modern dhcp servers for getting IP.. You should try a 3com 3c905b or 3c905c. I'll never use anything but 3com. realtek made nothing but junk back in the day, I would not trust realtek at all.

--/\-[ Stu : Bloody Cactus :: [ https://bloodycactus.com :: http://kråketær.com ]-/\--

Reply 8 of 19, by mrau

User metadata
Rank Oldbie
Rank
Oldbie

stupid question: it does absofrigenlutely not bother You that that tool showing enabled as yes will not give You the name if the device? what can be set in the respective "slot using int" field?

Reply 9 of 19, by AllTinker

User metadata
Rank Newbie
Rank
Newbie

Are you talking about the output of Bret Johnson's IRQ tool? If so, look at the top of the column - "common use". Which is "n/a" because there's (apparently) no common use for IRQ 9-11. e.g. I don't have a PS/2 mouse - that's just the common use for IRQ 12.

"Slot using INT" in the BIOS can be set to AUTO, A, B, C or D (the four PCI interrupt pins). None of these options have any effect at all. Function 0 of all PCI devices always ends up on INTA, function 1 on INTB, and so on no matter what - which is perfectly acceptable in and of itself, even if newer implementations are smarter about it.

Anyway looks like there's more I can try with regard to writing to the PCI configuration space of the device and the ISA/PCI bridge itself. I also verified that the interrupt lines I'm assigning are level-triggered. I was hoping someone had played with some low-level PCI stuff before and could point me in the right direction, but if not, no big deal!

Reply 10 of 19, by AllTinker

User metadata
Rank Newbie
Rank
Newbie

Another long-shot but does anyone happen to have the datasheet/docs for the UM8886A or UM8881F lying around?
Seems like UMC docs are pretty rare in the wild. Heck, maybe they were never published in English...

EDIT: So it appears that the PCI/ISA bridge on this chipset doesn't store IRQ routing info in the PCI configuration space... I'm hardly 100% sure, but it may well be I/O-based instead. So in lieu of hardware documentation or other leads it looks like I'm pretty much stuck for now. Everything else seems correct - IRQ is assigned properly on the PCI side via BIOS call, it's unmasked and level-triggered on the ISA PIC side... But no actual routing is being done by the bridge. Frustrating.

Reply 12 of 19, by tayyare

User metadata
Rank Oldbie
Rank
Oldbie

Most probably a stupid question/suggestion, but, "PNP OS installed" option in the BIOS is configured correctly?

GA-6VTXE PIII 1.4+512MB
Geforce4 Ti 4200 64MB
Diamond Monster 3D 12MB SLI
SB AWE64 PNP+32MB
120GB IDE Samsung/80GB IDE Seagate/146GB SCSI Compaq/73GB SCSI IBM
Adaptec AHA29160
3com 3C905B-TX
Gotek+CF Reader
MSDOS 6.22+Win 3.11/95 OSR2.1/98SE/ME/2000

Reply 13 of 19, by AllTinker

User metadata
Rank Newbie
Rank
Newbie
NJRoadfan wrote:

Do any of the cards work under Windows 95/98 on the same machine?

I had no intentions of installing Windows BUT yeah... It'd be interesting to see. I'll give it a shot on a different Compact Flash card at some point soon.

tayyare wrote:

Most probably a stupid question/suggestion, but, "PNP OS installed" option in the BIOS is configured correctly?

No such option, sadly! Apart from some PCI timing/clocking settings - which I've adjusted exhaustively - there's nothing else in there related to port/IRQ resources besides the serial/parallel ports, which I've also tried disabling with no change to the PCI side of things.

Just for the sake of completeness, here are the rest of the BIOS screens (see my first post for the PCI screen):
bios1.jpgbios2.jpg
bios3.jpgbios4.jpg

I've tried adjusting everything I can imagine that might make a difference, but just so you know what I'm working with on that front.

Reply 14 of 19, by NJRoadfan

User metadata
Rank Oldbie
Rank
Oldbie

FWIW, I ran a Realtek RTL8139 for years under Linux on a PC Chips M919 which uses the same UMC chipset. IRQs were never a problem on that board.

Reply 15 of 19, by appiah4

User metadata
Rank l33t++
Rank
l33t++

Try setting Auto Configuration BIOS setting to Disabled, it might be the equivalent of PnP OS Installed.

Retronautics: A digital gallery of my retro computers, hardware and projects.

Reply 16 of 19, by Matth79

User metadata
Rank Oldbie
Rank
Oldbie

Is there a "clear ESCD" anywhere?
One other thing, 12 is one of the PCI Interrupts, but is also PS/2 port - it may help to disable unused serial and parallel ports so that their IRQs become available, it might shake the configuration up.

Also try "PCI Irq activated by: Level" - as the PCI standard is level, not edge

Reply 17 of 19, by AllTinker

User metadata
Rank Newbie
Rank
Newbie
NJRoadfan wrote:

FWIW, I ran a Realtek RTL8139 for years under Linux on a PC Chips M919 which uses the same UMC chipset. IRQs were never a problem on that board.

Ooh, interesting! That may be a good lead, thanks. I'm unsure what the differences are between the UM8886BF and UM8886A (maybe BF actually works!). Some sites seem to refer to them interchangeably...
EDIT: Hmmn they have different PCI IDs at least (673a and 886a respectively), that board's BIOS ROM may be informative perhaps.

appiah4 wrote:

Try setting Auto Configuration BIOS setting to Disabled, it might be the equivalent of PnP OS Installed.

Unfortunately not, it just unlocks some of the settings there, e.g. the PCI clock ratio, which I tried dialling down with no change (only options are 1:1 or 1:1/2).

Matth79 wrote:

Is there a "clear ESCD" anywhere?

No - I'm not even sure that this board has ESCD at all. When booting I don't get that typical table of resources you'd see on other (probably newer) boards.

Matth79 wrote:

One other thing, 12 is one of the PCI Interrupts, but is also PS/2 port - it may help to disable unused serial and parallel ports so that their IRQs become available, it might shake the configuration up.

I don't have a PS/2 port, and yeah - tried that! Those "reserved" IRQs are never assigned anyway - according to the BIOS calls they haven't been reserved for PCI at all...

Matth79 wrote:

Also try "PCI Irq activated by: Level" - as the PCI standard is level, not edge

Yep I've set it back to level since I took the photo, I was just trying stuff. My software tells the PIC(s) to set level-triggering per IRQ (I looked at how the Linux kernel does things) either way, which seems to stick just fine.
Of course it doesn't work but as far as I can see things are set up correctly for everything except the actual ISA/PCI routing table, which I have no clue how to talk to.
I can't find any UMC-specific stuff in the Linux PCI code, likely because UMC PC stuff seems completely undocumented; and/or perhaps it's only this specific chip (UM8886A) or motherboard which has a busted implementation.

Reply 18 of 19, by AllTinker

User metadata
Rank Newbie
Rank
Newbie
AllTinker wrote:
NJRoadfan wrote:

Do any of the cards work under Windows 95/98 on the same machine?

I had no intentions of installing Windows BUT yeah... It'd be interesting to see. I'll give it a shot on a different Compact Flash card at some point soon.

So I got Windows 98 SE installed - it's actually a lot snappier than I expected it be - but still no good on the PCI front.
The video card works just fine, but every other PCI device (see my previous post for the list) gave some form of general error and refused to work.
The only semi-interesting thing was the Intel NIC, which stated the obvious actual problem, unlike the others:
win98-1.jpg

I tried to configure the devices manually, but none of them gave an option to set an interrupt. Messed with different BIOS options yet again with no change.
I also tried fiddling with the PCI Bus device options (under System Devices) as suggested here. Tried the "Bridge Override" option too. No luck there either.
Urgh - still, was worth a shot!

Reply 19 of 19, by Stiletto

User metadata
Rank l33t++
Rank
l33t++
AllTinker wrote:

Another long-shot but does anyone happen to have the datasheet/docs for the UM8886A or UM8881F lying around?
Seems like UMC docs are pretty rare in the wild. Heck, maybe they were never published in English...

Agreed, UMC documentation is pretty uncommon on the 'Net. These specifically are wanted: Re: PCEm. Another PC emulator.

"I see a little silhouette-o of a man, Scaramouche, Scaramouche, will you
do the Fandango!" - Queen

Stiletto