PDA

View Full Version : Amiga networking, A mess?


freqmax
04-25-2009, 05:54 PM
I found this mooli.org.uk - Commodore Amiga networking FAQ (http://simon.mooli.org.uk/AF/article/GOODWIN/GW03.HTML). The summary seems to be that Amiga networking is a mess.

Suppose you were to network a WB 1.3 machine (1.3=use less memory), is there any good package that let you access network volumes just as they were local discs?

Is SANA-II the preferred hardware API?

And for the software. Envoy seems to be the best match. But I fear it might be memory hungry?

The reason I ask is for how to approach networking in an Amiga clone like Minimig, Fpgaarcade etc..

Matt_H
04-25-2009, 06:25 PM
SANA-II is the only hardware API, to my knowledge.

For 1.3, I think your only options are ParNet or SerNet. The Amiga Novell client is 1.3 compatible, but it's fairly useless without a one of very few Ethernet cards and a Novell fileserver. DoubleTalk might work under 1.3 as well, but, again, needs its own custom hardware. There are probably a few others with similar limitations.

Envoy is great for 2.x+. Not sure how you got the impression that it's memory hungry, but it's actually very lightweight. It runs beautifully on my 2MB A600. Needs only about 200K of RAM to start, and I think most of that is bloat from the supplemental firmware for the prism2 driver.

Last minute thought: considered Amiga Explorer?

mdivancic
04-25-2009, 06:49 PM
Matt_H wrote:
For 1.3, I think your only options are ParNet or SerNet. The Amiga Novell client is 1.3 compatible, but it's fairly useless without a one of very few Ethernet cards and a Novell fileserver. DoubleTalk might work under 1.3 as well, but, again, needs its own custom hardware. There are probably a few others with similar limitations.

The DoubleTalk clients and cards were designed for 1.3. The work under everything up to 3.1 (I've not yet tried them in 3.5 or 3.9).

freqmax
04-25-2009, 06:59 PM
Can you tell me more about the DoubleTalk client/server?, does it enable an 1.3 Amiga to use filesystems on other computer as it were local? (like NFS)

"Amiga Explorer" seems to be an application to use Amiga as an extra drive essentially. Not really a match ;)

Seems SANA is original work by Dale Luck (http://stason.org/TULARC/pc/amiga/networking/07-SANA-II.html) which were modified by several people and became SANA-II.

And SANA-II seems to try be everything for everyone (http://www.mail-archive.com/miamidx-talk-ml@nordicglobal.com/msg01789.html). Which gives a max of 1 MByte/s even on 68060+PCI network card. Seems no source code is publicly available for any SANA-II ethernet hardware, making development more cumbersome.
* Lack of hardware drive source code.
* Bad buffering scheme.
* Lack of proper promiscuous and multicast modes.

So is there any specification for MNI or SANA-II API anywhere to download ..?

Matt_H
04-25-2009, 07:17 PM
Can you tell me more about the DoubleTalk client/server?, does it enable an 1.3 Amiga to use filesystems on other computer as it were local? (like NFS)

I imagine that's what it does, but it's all based around a Zorro card so it's not an option for FPGA Amigas.

ChaosLord
04-25-2009, 07:39 PM
On OS 1.3 machines I use ParNet. Totally ez. Iirc I get about 0.4 Mbps (030+fastram).

On OS 3.x machines I use standard Ethernet 10 Mbps.

ChaosLord
04-25-2009, 07:41 PM
Doesn't FPGA arcade have an Ethernet port?

freqmax
04-25-2009, 08:19 PM
The fpgaarcade card doesn't have any ethernet port asfaik. But the thing with FPGAs is that they are incredibly flexible. Thus you can implement an fake "ethernet card" that looks real for the Amiga with ZorroII bus and all. And the card could still use RS232 as the physical layer ;)

But, when coding that HDL. It's better to select the chip to model after that has the most efficient API. Alternatively just make an hardware API just like the software API.

Piru
04-26-2009, 01:01 AM
@freqmax
Seems no source code is publicly available for any SANA-II ethernet hardware
Says who?

http://aminet.net/package/dev/misc/sana2_v2
http://aminet.net/package/comm/net/sana2-cslip
http://aminet.net/package/comm/net/cslip-sana2
http://aminet.net/package/driver/net/cnetdevice
http://aminet.net/package/driver/net/3c589
http://aminet.net/package/driver/net/prism2

freqmax
04-26-2009, 10:26 AM
Seems there's mainly three network hardware interfaces:
AS225r1 - Commodore TCP/IP stack with hardcoded, doh! driver for Z-II AMD 7990.
SANA-II - The most common API?
Miami Network Interface (MNI) - Improved version of SANA-II, rewrite from scratch.
(I assume SANA-II and MNI have support for Z-II AMD 7990)

So this means that if an FPGA version of A2065 Z-II using AMD 7990 is written. All ever present network APIs will be supported in one go ..?

Maybe some optimizations can be made to the AMD 7990 as only the hardware API needs to be the same?

Oh btw.. if anyone comes by the AMD 7990 datasheet. Please post a link ;)

The physical implementation is, Ethernet -> Magnetics -> PHY -> FPGA. Or possible RS232 fake driver.

Piru
04-26-2009, 12:59 PM
As far as I know MNI has more in common with linux/bsd network driver API than SANA-II.

MNI is a dead end however, it is only supported by MiamiDx for which keyfiles are no longer available.

SANA-II is the de facto network driver API.

utri007
04-26-2009, 02:38 PM
Don't forget AmigaNOS

http://aminet.net/package/comm/tcp/anos29m

It works with kickstart 1.3

Tension
04-26-2009, 04:29 PM
ProNET is good for trivial use.

Always was a bit too crash-happy for my liking though.

http://www.soundtracker.org/raw/pronet.html

If you`re using it to transfer to a MiniMig it would be ideal!!!

PC2Amiga is great if you want to transfer files from PC to Amiga or vice versa.

mdivancic
04-26-2009, 04:42 PM
freqmax wrote:
Can you tell me more about the DoubleTalk client/server?, does it enable an 1.3 Amiga to use filesystems on other computer as it were local? (like NFS)


DoubleTalk implements AppleTalk networking on the Amiga. It allows one to access shared drives and printers on other Macs that can do AppleTalk (think old Mac hardware). Once ethernet became available, I pulled the DoubleTalk cards and put them in storage.

freqmax
04-26-2009, 05:04 PM
Piru, I'll take that as there's no API docs for MNI. And that drivers will refuse usage without being "registred". Which ofcourse can't be done anymore. Correct?

Utri007, Can you tell me something more about AmigaNOS?, does it handle Ethernet?

Tension, ProNet is simple 2 Computers networking over parallel port ..?

mdivancic, DoubleTalk requires AppleTalk hardware then?, standard Amiga serial won't do 250kbps serial asfaik.

Tension
04-26-2009, 06:45 PM
freqmax wrote:

Tension, ProNet is simple 2 Computers networking over parallel port ..?



I personally only ever used the serial method. Heard about long parallel cables damaging CIA chips, so never experimented with it.

If you`re transferring small amounts of data then ProNET is great. Very tiny and simple program.

You can use the pronet-run command to run progs on remote Amiga IIRC.

Actually thinking back about it now, it really is a great program!!

freqmax
04-26-2009, 09:08 PM
My idea is for a possible ethernet use in Minimig and other clones. It seems the AMD Lance Am7990 via Zorro-II is the most used ethernet chip in existence for Amiga.

I found the AMD Am7990 datasheet (http://www.amd.com/files/connectivitysolutions/networking/archivednetworking/17881.pdf) aswell. :-D

If the Am7990 API is cloned then it should be possible to run just about ANY network software existing for Amiga (AS225, SANA-II, MNI etc..).

The idea is to be able to run any software stored on your local fileserver or aminet directly without any intermediate steps. Just click & run. It also has benefit when developing.

J-Golden
04-26-2009, 11:36 PM
So what you want to do is to be able to mount a Network Attached Storage (NAS for short) type device or structure on the MINIMig in such a way that said MINIMig thinks it is a local device.

AND you want to do this in such a manner that it is as transparent as possible...

It all sounds cool but the Aminet deal. They are all compressed files to begin with. Also, I would hate to get their bandwhith fees for hunderds of people hitting the site over and over again running the same app. or program...

But like I said, the first part of the idea does have a lot of merrit to it. It would also intigrate with the idea of keeping the MINIMig from being a bulky beast. Good luck to ya!

Piru
04-27-2009, 12:39 AM
@freqmax
I'll take that as there's no API docs for MNI.
correct
that drivers will refuse usage without being "registred".
No, the MiamiDx TCP/IP stack only works for 30 mins at a time (or was it 1 hour?) without a keyfile.

The idea is to be able to run any software stored on your local fileserver or aminet directly without any intermediate steps. Just click & run.
Well, none of the existing TCP/IP software have working DHCP.

Matt_H
04-27-2009, 12:44 AM
Your options are extremely curtailed by OS1.3. Assuming you get an FPGA 2065 working, there's still a matter of almost no existing networking software working under 1.3.

Sure, there's the AS225 stack (can you even find it anywhere?), but does it support NFS? What other system is going to serve a compatible NFS volume to the Amiga? Same problem with Novell or AppleTalk.

To mount network volumes as you describe, you can use one of the serial or parallel solutions mentioned earlier in the thread, Envoy, or FTPMount. Envoy won't work under 1.3 and FTPMount needs bsdsocket.library (AmiTCP/Miami) which also won't work under 1.3.

If you're going the FPGA route, you might as well just program it to be completely transparent to the Amiga, IE, have the remote volume appear as an RDB hard disk: OS-version independent and no network software required.

freqmax
04-27-2009, 03:24 AM
-- J-Golden --
As for the Aminet deal. The compressed files could be installed onto ramdisc or a networked disc. Which is then easily cleared. As for the bandwidth, most webpages are larger than the Amiga files. And even so one can cache the files locally and even use p2p (torrents).

The serial communications for BBS etc.. not debug, parallel for printer, floppy, joysticks, mouse etc.. could be networked.
Well even sound but that put a significant load on the network. Even some expansion cards could be networked, but then it's limited to very little i/o without latency requirements.

But big benefit is to eliminate floppy/flashmemory sneakernet, easy repeated recompiles and testing during development, use pc-printers etc..

-- Piru --
Guess the "key" is lost beyond any reasonable effort to get it?, anyway without a good API doc it's kind of worthless anyway.

The intermediate steps to avoid is downloading the application or lha archive to disc. Remove it, put it into the Amiga clone. Install it and then run it. Static IP is not a big deal.

-- Matt H --
Well v2.04 is not that a big deal. So if it's needed.. let's use it.

A transparent block device might seem nice. But is a an administrative hurdle. It's SO convinient to unpack and mess with files on one computer, and then just continue on another. What protocol to use is another story.
However for booting a faked DF0: floppy would be quite convenient.

What do you mean with FPGA 2065? ;)

But generally messing with software land might be an inefficient path. An HDL core that presents an Am7990 hardware API to the Amiga. Will enable the use just about any networking software without any modification. Which is also the reason behind the quick inventory of Amiga networking software.
Thus task reduced to implement the registers and ring buffers. And I don't have to bother with writing software ;)

ChaosLord
04-27-2009, 06:25 AM
I have been told that Miami DX DHCP works ok.

re: "2065"
The Commodore A2065 Ethernet Card was the standard way of adding Ethernet to any Zorro 2 machine for years.

freqmax
04-27-2009, 06:35 AM
FPGA 2065.. must been sleeping to little.. :-D

Good that Miami DX DHCP works. But it seems to be a dead path.

An HDL version of A2065 should do the trick. Wonder if Zorro-II is tricky to implement ;). The network controller seems quite straightforward.

mikej
04-27-2009, 06:47 AM
Ethernet and USB will be on the "larger" FPGAArcade expansion board - the small one you can see on the website just has SVHS/composite out etc.

The chip I'm looking at is the Lan9211 from SMSC. It integrates a controller and PHY and is pretty cheap. The FPGA will map the controller into some spare address space. The problem is the driver software. Maybe we can make it look a bit like the Am7990 device. Any ideas, or other interface chip suggestions welcome.

I'm looking at the ISP1760 USB 2.0 controller for USB.

Both these chips have onboard processors which off-load a lot of the grunt work, and should make driver writing a bit simpler.

Any volunteers ? :)
/Mike

freqmax
04-27-2009, 07:58 AM
I think your on the wrong path with any Ethernet controller (like SMSC Lan9211 (http://www.smsc.com/main/catalog/lan9211.html)). It's much more flexible to use a PHY (http://en.wikipedia.org/wiki/PHYceiver) which uses the MII (http://en.wikipedia.org/wiki/Media_Independent_Interface) interface (like Intel L80225.pdf (http://www.lsi.com/DistributionSystem/AssetDocument/files/docs/techdocs/networking/L80225_tm.pdf)) and wire minimum 8 i/o signals that it needs.

That way you can easily clone just about any Ethernet controller you can think of. And get that at wire speed.

If you go with the controller path. Then you either need to create a driver for that chip. Or clone a known chip. Then translate all operations before sending them to the real controller. Besides that an microprocessor bus needs way more signals than MII. And is much more complex.

To receive packets via MII. It's in essence enough to just listen to the "valid" signal going high. Then clock the bits using the "clock" signal. And grab the bits from "rxd0-3". Should one have specific wishes regarding the configuration one use an interface similar to I2C, via the pins MDIO & MDC.

You can even test this with a ordinary network card that uses separate Controller and PHY chips (just lookup the chip names). Desolder the controller with a heat gun or smash it so it won't drive the lines. Then wire onto the valid, clock and data lines. Write some HDL code. And you have the bytes showing up whereever you want ;)

mikej
04-27-2009, 08:21 AM
That was the original idea, to use a simple off the shelf RGMII Phy & MDIO interface. However, then you need the MAC inside the FPGA. A full function MAC is quite complex (I do this for a living) and takes up valuable FPGA resources which could be used for something else. An external PHY+MAC chip like the SMSC device is about the same price as a simple PHY chip.

It depends if it is less hassle to modify the driver software to support a modern chip (you can get SPI connected ones if the pincount is an issue) or to spend the time building a VHDL MAC which looks like a 20 year old chip just so we can use 20 year old software :)

The USB controller would share the address/data pins to the ethernet chip.

I'll take a look at some MAC code and see how much space it takes.

/Mike

freqmax
04-27-2009, 08:29 AM
Well old chip = simple chip I think. Anyway I had a look at the datasheet for the AMD Am7990. It doesn't look that complex. And I think only a few functions are actually used by the A2065 drivers.

An experimental version could present Am7990 API and use RS232 as backend. Just to try it out on existing hardware.

gertsy
04-27-2009, 09:20 AM
I use "Sneakernet" to get files onto my Amiga 500 1.3/2.1 with an A590. It's a very reliable and quite fast file transfer method. Just burn a rw cd with lots of files and such and load it up on my external SCSI CD Rom connected to the A590.
Having a swivel chair on castors saves your sneaker tread.
But you can hardly call it "swivel chair on castors net" 'coz it's just too much of a mouthfull.

freqmax
04-27-2009, 09:29 AM
gertsy, Sneakernet works temporarily until you want some performance this especially true when your doing development. The cycle of compiling/synthesizing (FPGA), transfer binaries, test, GOTO 10. Can be tiresome.

mikej, Maybe you have an suggestion on a Gigabit ethernet PHY that doesn't want exotic voltages like 1.8V. But rather use 5V, 3.3V, 2.5V or 1.2V ..? (and is avail from the suppliers like mouser.com etc..)

Matt_H
04-27-2009, 11:21 AM
If OS >=2.0 is on the table, then you want a SANA-II device. Use it with Envoy or FTPMount (over badsocket.library) and you'll have your transparently-attached network drives.

mikej
04-27-2009, 04:32 PM
"You can even test this with a ordinary network card that uses separate Controller and PHY chips (just lookup the chip names)."

I've just posted a picture of the expansion board with proto-type patch area for this.
/Mike