Unpicking and re-creating Etherlan 550 ROM

Arc/RPCs, peripherals, RISCOS operating system & ARM kit eg GP2x, BeagleBoard
philb
Posts: 97
Joined: Sat Aug 05, 2017 6:05 pm

Re: Unpicking and re-creating Etherlan 550 ROM

Postby philb » Thu Sep 07, 2017 6:26 am

I suppose if you didn't care about RISC OS 2 compatibility at all then you could store the modules compressed in the ROM and have the loader run them through Squash_Decompress. It'd be a bit slow, but I think the OS only loads them once.

User avatar
danielj
Posts: 5152
Joined: Thu Oct 02, 2008 4:51 pm
Location: Manchester

Re: Unpicking and re-creating Etherlan 550 ROM

Postby danielj » Thu Sep 07, 2017 6:34 am

Phil, I'm going to send the others back to you, so up to you what I put in the ROM on those? From my perspective I'm fine leaving out net and bootnet as I'm never going to be booting off a fileserver.

d.

steve3000
Posts: 1694
Joined: Sun Nov 25, 2012 12:43 am

Re: Unpicking and re-creating Etherlan 550 ROM

Postby steve3000 » Thu Sep 07, 2017 6:35 am

danielj wrote:That version of adfs filer makes sure you get the Share menu. It's more important to have that on there than bootnet and net I think (in the modern day and age!) :D

Interesting, because I don't have that on my network card, and yet I definitely have the correct share menu, as I use ShareFS all the time (as you indicate, it is rather useful!).

I do recall having some issues with ShareFS itself when I first used my network card (my network card rom included ShareFS, but an old version). The solution was unplugging the ROM ShareFS then loading of the extra modules in the correct order at the start of the boot process.

User avatar
danielj
Posts: 5152
Joined: Thu Oct 02, 2008 4:51 pm
Location: Manchester

Re: Unpicking and re-creating Etherlan 550 ROM

Postby danielj » Thu Sep 07, 2017 7:00 am

Hmm - I was actually loading all the Access+ modules in the boot process from a recent uniboot, and it was exhibiting the problems. The only difference between my A3020 which behaves properly and this A5000 was a more recent ADFSFiler (0.69) which was provided by the Etherlan100 in ROM. Adding that has certainly made things behave properly.

Meanwhile, I'm really not sure why it's claiming I'm running out of space:
DSC_2873.jpg

DSC_2874.jpg

steve3000
Posts: 1694
Joined: Sun Nov 25, 2012 12:43 am

Re: Unpicking and re-creating Etherlan 550 ROM

Postby steve3000 » Thu Sep 07, 2017 8:24 am

philb wrote:I suppose if you didn't care about RISC OS 2 compatibility at all then you could store the modules compressed in the ROM and have the loader run them through Squash_Decompress. It'd be a bit slow, but I think the OS only loads them once.

A lot of ROMs for later podules include some form of decompression routine, although not usually in the loader.

The difficulty with including decompression in the loader is that the loader entry point only returns one byte at a time to RISC OS (because of the small addressing window through to the podule, and that initial load time was not seen as critical). So the loader is called repeatedly, to extract each byte of each module. Implementing decompression in this environment would be a challenge.

Much easier is to make each module self decompress at initialisation. At least by this point all data is in RAM and available. However this is more difficult to add to existing modules.

steve3000
Posts: 1694
Joined: Sun Nov 25, 2012 12:43 am

Re: Unpicking and re-creating Etherlan 550 ROM

Postby steve3000 » Thu Sep 07, 2017 8:28 am

danielj wrote:Meanwhile, I'm really not sure why it's claiming I'm running out of space:

When you add module 10, to the sizes of all the previous modules and data, you reach 150kb, which is larger than your 128kb ROM... That's why it is complaining.

User avatar
danielj
Posts: 5152
Joined: Thu Oct 02, 2008 4:51 pm
Location: Manchester

Re: Unpicking and re-creating Etherlan 550 ROM

Postby danielj » Thu Sep 07, 2017 8:54 am

But that's what you'd managed to put in there before, I think?

d.

Edit: DOH! No ShareFS! :)

d.

philb
Posts: 97
Joined: Sat Aug 05, 2017 6:05 pm

Re: Unpicking and re-creating Etherlan 550 ROM

Postby philb » Thu Sep 07, 2017 9:36 am

steve3000 wrote:The difficulty with including decompression in the loader is that the loader entry point only returns one byte at a time to RISC OS (because of the small addressing window through to the podule, and that initial load time was not seen as critical). So the loader is called repeatedly, to extract each byte of each module. Implementing decompression in this environment would be a challenge.


Right. What I think you'd have to do in practice would be to have the loader decompress the whole thing into RAM the first time it was called, and then just feed the data back to RISC OS one byte at a time from that buffer. You'd need some sort of hack to figure out when loading was "finished" and it was safe to release the buffer.

So I think it could be done, but it wouldn't be pretty.

philb
Posts: 97
Joined: Sat Aug 05, 2017 6:05 pm

Re: Unpicking and re-creating Etherlan 550 ROM

Postby philb » Thu Sep 07, 2017 9:37 am

danielj wrote:Phil, I'm going to send the others back to you, so up to you what I put in the ROM on those? From my perspective I'm fine leaving out net and bootnet as I'm never going to be booting off a fileserver.


Sure, sounds good.

steve3000
Posts: 1694
Joined: Sun Nov 25, 2012 12:43 am

Re: Unpicking and re-creating Etherlan 550 ROM

Postby steve3000 » Thu Sep 07, 2017 8:08 pm

danielj wrote:Edit: DOH! No ShareFS! :)

All working then?

User avatar
danielj
Posts: 5152
Joined: Thu Oct 02, 2008 4:51 pm
Location: Manchester

Re: Unpicking and re-creating Etherlan 550 ROM

Postby danielj » Thu Sep 07, 2017 8:14 pm

Just doing it now!

User avatar
danielj
Posts: 5152
Joined: Thu Oct 02, 2008 4:51 pm
Location: Manchester

Re: Unpicking and re-creating Etherlan 550 ROM

Postby danielj » Thu Sep 07, 2017 9:40 pm

All working :) - Many thanks Steve! :D New lease of life for these badboys :)

d.

steve3000
Posts: 1694
Joined: Sun Nov 25, 2012 12:43 am

Re: Unpicking and re-creating Etherlan 550 ROM

Postby steve3000 » Thu Sep 07, 2017 9:58 pm

Great stuff!

Can you post up your final ROM? It's bound to be useful for others in future.

User avatar
danielj
Posts: 5152
Joined: Thu Oct 02, 2008 4:51 pm
Location: Manchester

Re: Unpicking and re-creating Etherlan 550 ROM

Postby danielj » Thu Sep 07, 2017 10:03 pm

Yes, will pop it up tomorrow, but each card will need to have a new one made based on the mfr files and MAC for that card (it's unclear to me how much is hardware and how much is software on these)

d.

steve3000
Posts: 1694
Joined: Sun Nov 25, 2012 12:43 am

Re: Unpicking and re-creating Etherlan 550 ROM

Postby steve3000 » Thu Sep 07, 2017 10:36 pm

danielj wrote:Yes, will pop it up tomorrow, but each card will need to have a new one made based on the mfr files and MAC for that card (it's unclear to me how much is hardware and how much is software on these)

Can you try swapping roms between two cards, if you have two available? I'd be interested to see if the manufacture data files and device files are really used to set the MAC address/etc. I assume they are, but it's just possible they could be template files which are overwritten on initialisation of the card with the actual values from the card...

User avatar
danielj
Posts: 5152
Joined: Thu Oct 02, 2008 4:51 pm
Location: Manchester

Re: Unpicking and re-creating Etherlan 550 ROM

Postby danielj » Fri Sep 08, 2017 9:09 am

Here we go!

Bit of ROM swapping, and it's definitely taking the MAC from the ROM, not anything else on the card - hence if you use it, I'd recommend updating the MACs at &135 and &1D9 to match the one that your card's been using. They're stored as ASCII, not binary.


d.
Attachments
elan550.zip
(43.84 KiB) Downloaded 7 times


Return to “hardware”

Who is online

Users browsing this forum: lcww1 and 1 guest