Mark sent me the first prototype card from Canada, and I duly plugged it into my trusty SE/30.

Nothing exploded, which is always a good start.

I then set about trying to probe at the card’s address space using MacsBug. Unfortunately, joy was not forthcoming.

By default, PDS slot cards which follow the “Pseudo-Slot” design rules are meant to respond to the read/write operations in the address space reserved for NuBus or PDS expansion cards. For the SE/30, the primary slot address is 0xF9000000.

We map the first 256 bytes of the slot’s address space to the registers on the LAN9218.

The first useful register on the LAN9218 chip is the “ID_REV” register, which reports the chip ID and revision information. This is at offset 0x50.

Reading address 0xF9000050 should return the contents of the ID_REV.

I dropped into MacsBug (Cmd-Power) and tried “DL F9000050”. This yielded a Bus Error, which means our card was not responding to reads for that address. (Sad Trombone)

Top board

In talking to Mark, it turns out he had programmed the CPLD on the card to check the Function Code bits on the bus, and only respond to User Space Data read codes (0b001). This is not the function code we were getting, so the card was ignoring the requests.

Mark removed that check, and sent me some new CPLD firmware which I duly loaded.

Plugged it back in, and we’re in business! I can now read the registers on the LAN9218.

Top board

I can now access the card from my simple probe application:

Top board Top board

I’ve verified that I can now program the card to enable it, program the LEDs to disable link/speed activity, configure link auto-negotiation.

I’m now busying myself fleshing out a userspace program which can read/write the registers on the LAN9218 to confirm it is operating correctly, can control & query the parameters of the link, and ultimately hopefully send & receive packets.

Once that is working, I can move that code into an Ethernet driver that will handle sending & receiving Ethernet packets on behalf of other parts of MacOS (AppleTalk, MacTCP, OpenTransport), ultimately getting this Mac back on the Ethernet & Internet.