Acorn Machines with RO 5
Jess Hampshire (158) 865 posts |
In case anyone had missed it, there are now drivers for a couple of network cards for Risc PCs and A7000s. I have tried an A7000+ with RO 3.7 ROMs and an SA Risc PC and (after a bit of fiddling) they both seem to work well. (The native 3.7 machine has some restrictions due to having an old format drive.) That means I now have RO 5 running on ARMv3, ARMv4, ARMv5 and ARMv6 here. |
Martin Bazley (331) 379 posts |
Did the IOMD ROM not previously have network access? Or did it only affect some cards? |
Steve Pampling (1551) 8170 posts |
I seem to recall that the issue was non-32-bit network drivers1 and that this was given as a to not use it on a production device (quite apart from non-32 bit apps scattered around. 1 Which might well be only certain cards |
Jess Hampshire (158) 865 posts |
There are no network drivers built into the ROM itself, (AFAIK), and when I tried it a while ago, it was stand alone. (I think RPCEmu has its own network support, like VA). I recently became aware of 32 bit versions of some drivers being available, (but they may have been there for a while.) to add to the boot sequence. |
Steve Pampling (1551) 8170 posts |
Check the cvs recent changes and in the last week it will show the entry for addition of the source from DesignIT. Import of EtherH driver for i-cubed/Acorn/DesignIT NIC Authors: rool Import of EtherH driver for i-cubed/Acorn/DesignIT NIC Special thanks to Rob Cowell of Design IT for taking the time to locate the sources, and agreeing to them being published. This is EtherH 4.52, the last public release. |
Owen Smith (1978) 3 posts |
I’d been looking out for this, but obviously I missed it. The EtherH 4.52 sources came off my Risc PC, Rob Cowell emailed me to ask if I still had them and luckily I did. I was the maintainer of EtherH for a while, I did all the work to add proper multicast filtering and I also added *Configure EHConnection for the EH600 NIC cards to stop them defaulting to coax. I’m pleased to see it has made it into cvs and is freely available. Now all I have to do is find where it is in the cvs tree, I had a look and I couldn’t find anything at all, it seems quite complex and deeply nested. I do note that the version has increased to 4.59 and I’m intrgued to see what has changed, |
Sprow (202) 1158 posts |
The top level is just the licence type, then ‘RiscOS/Sources’ because the tree used to have other OS stuff in the same basic heirarchy, then it’s much more sensible from there down |
Owen Smith (1978) 3 posts |
OK that’s the EtherH module source. So where are the tools for building the podule ROM image and programming the image into the flash on the card? At least one of the distributions I’ve found on this site supplies a flash image and the tool to program it (though only for the EH600 NIC card, does no-one use anything else?) so the sources for all that should be around somewhere. |
Jon Abbott (1421) 2651 posts |
Was EtherM added? Its showing up in !InetSetup but DHCP doesn’t seem to see it as an available interface. Thought I’d best check before I spend any time 32-bit’ing the EtherM module. |
Steve Pampling (1551) 8170 posts |
From RISC OS 5.20 IOMD ROM Guide ANT ‘Myson’ Combo (EtherM) Contact supplier ROM/EPROM upgrade So I don’t think it’s a waste of time. The shipped CD has only the EtherH and EtherB. “Contact supplier” seems optimistic as one seems dead and the other is seemingly deaf/mute. BTW. The visibility in !InetSetup will be the presence of a BASIC file “EtherM” in !InetSetup and a non-existent or unplugged EtherM module in !System.310.Modules.Network 1 Perhaps I should add that I don’t have the NIC so neither is of interest here, at this time. |
Jon Abbott (1421) 2651 posts |
I’ll 32bit it then as it’s becoming a real pain having to power off/on and switch between OS versions to copy files across. If I can find the latest EtherX, or someone wants to send it to me, I’ll 32bit that as well. However the page below implies it’s already been done: |
Steve Pampling (1551) 8170 posts |
“…and the other is seemingly deaf/mute.” Apparently it exists, it just isn’t circulated. I think they lost interest in RO. It happens. |
Jon Abbott (1421) 2651 posts |
If someone has an Advantage Six A9Home with RO 4.42 on it, it could be extracted. Unfortunately, that’s one of the ROM’s I haven’t managed to get hold of yet. I’ve analysed both EtherM and EtherX, both are dependent on SharedCLib so may not work after 32-bit conversion. I’ll give EtherM a go though. |
Steve Pampling (1551) 8170 posts |
The same dependency exists in at least one of the other drivers, hence the built in Clib in the flash for etherH etc. As I understand things it’s just a case of having the right Clib loaded. |
Sprow (202) 1158 posts |
A few extra dimensions here
If it went in the main system ROM the C library functions will have been statically linked, which will make 32 bitting it much harder.
Companies House suggests Simtec is dormant, so it may not be that they lost interest, more that they’re not trading at all.
I recall that Colin Ferris has looked at EtherX. Unlike application code it’s not a simple 32 bitting job as you need to make sure any I/O accesses use the proper APIs rather than poking around at 0×03200000. It’s perfectly possible to make a driver that will work from 3.50 upwards but sadly Podule_ReadInfo didn’t seem to get used much! The results are unlikely to be distributed by ROOL though, as you don’t hold the copyright to EtherM or EtherX. I know ROOL are attempting dialogue with both ANT and Simtec, but that progress is almost non existant and sometimes backwards – for example ANT recently got bought out meaning the previous contacts built up all get moved around.
And EtherY too now. |
Jon Abbott (1421) 2651 posts |
I spent an hour on EtherM last night and the code is pretty bad. Its using the Supervisor stack for variable passing and stacks PC at every label entry, not to mention a huge static jump table, lots of code with no obvious entry point and every function exits modifying the PSR. I counted over 300 32bit issues, roughly 10% of the code needs rewriting. I think I may be better off extending my ARM3 JIT to cover modules, hypervise the IO space and let it handle the 26bit issues! In the meantime, to solve my immediate issue, which ironically is testing the JIT on RO5/IOMD, I’ll put a supported NIC in. |