Unidentified PDS ethernet card

eharmon

Well-known member
So, as suspected, it's a Sonic Systems card. Can the model id be devined?
What's the DrSW and DrHW on the Network sResource?

If I remember correctly they need to be 260/256 to match the generic DP8390 drivers. You could try programming another ROM with the DeclROM modified to match those. But who knows if it's mapped memory to the same regions...so it might work or might not.
 

cgp

Well-known member
What's the DrSW and DrHW on the Network sResource?

If I remember correctly they need to be 260/256 to match the generic DP8390 drivers. You could try programming another ROM with the DeclROM modified to match those. But who knows if it's mapped memory to the same regions...so it might work or might not.
268/256 by the look:
1729792381748.png
I could try patching Glenn's driver to match this and see what happens.
 

eharmon

Well-known member
268/256 by the look:
View attachment 79871
I could try patching Glenn's driver to match this and see what happens.
268/256 matches the Sonic LC and Etherlan cards. I'd be surprised if that driver doesn't work (it certainly wouldn't be to spec for that not to work, since, if I remember my read of Designing Cards correctly, drivers match this 4-tuple).
 

cgp

Well-known member
Glen's driver fails to match my card.

Doing some archeology, in the Linux kernel, I see:
Code:
/* Known <Cat,Type,SW,HW> tuples: (according to TattleTech and Slots)
...
*  Sonic Systems Ethernet A-Series Card: <4,1,268,256>
...
*  Farallon ethernet card: <4,1,268,256> (identical to Sonic Systems card)

And over at https://staticky.com/mirrors/ftp.apple.com/, I dug up "Slots":a nice utility that parses Declaration ROMs and reports stuff as a very pretty graph. For my card, I gives:

SLot9.jpg

Poking around the Nubus slot address space with MacsBug, the card has its 16K RAM at +70000 in the slot and not at +D0000 as Glen's 8390 driver expects. And MacsBug poking *seems* to locate the 8390 resister base at +80000 in the slot.

So, if I can build a version of Glen's driver to match on <1,0,268,256> and expect registers/memory to be at F9980000/F9970000, there's a chance it might work. But I think I'll try modding the NetBSD drivers first.
 

Arbee

Well-known member
Given the Linux kernel note that it matches a Farallon card, maybe Farallon drivers would work?
 

cgp

Well-known member
Given the Linux kernel note that it matches a Farallon card, maybe Farallon drivers would work?
I wondered too. And tried. Nope :(

I am making some progress on the NetBSD front. I have a NetSBD9.3-based 8390 driver that reads and decodes the Declaration ROM, sizes the RAM, reads the MAC addr, but then gets confused .. I'm not sure I'm correctly configuring the register space.
 

cgp

Well-known member
I've now modified the NetBSD-9.3 ae driver (supporting Apple/Asante/Farallon/etc cards with 8390 NICs) to match this odd-ball Sonic card and communicate correctly.

The RAM base offset is 0x40000 and the register base is 0x80000. The tough part was figuring out (by trial and error) the register space and buffer RAM access methods over Nubus. All these card have various read/write sizing and byte-swapping peculiarities - this card is close to the Asante interface but the 8-bit 8390 NIC registers need word (16-bit) access.

Knowing this, the question is whether I can now modify Glenn's Mac driver accordingly.
 

cgp

Well-known member
So, yes .. it is possible to get Glenn's driver to work with this card .. but it's tricky:
  1. The register base offset of 0x80000 is different.
  2. The memory base offset of 0x40000 is different.
  3. The board ID is 962 (0x3c2).
  4. The byte lane wiring is awkward so register space mapping is convoluted and registers need 8-bit writes and 16-bit read/mask.
  5. The memory interface is byte-swapped requiring the 8390 to be configured accordingly.
But I now have a macOS driver that's working for System 7.6. I'll post a binary here for anyone else who comes across this beast. I'm in contact with Glenn so I'll feed back my code to him though I'm not sure whether it's feasible to integrate this into one driver.
 

cgp

Well-known member
Oh, and:

6. 8390 registers are indexed in ascending (not reversed) order.​
 
Top