Just so that it doesn't rot away on my hard drive, here is the experimental firmware with L2 cache:
This is for the old rev2 board.
So.. what's new then?
Without userfriendly support tools, nothing really. you'll get 6MB less fastram..
This firmware gives
no benefit for "mainstream" use until support tools are written.
It *should* behave like the old normal ones and be compatible with maprom and so on, but this is experimental so maybe there are issues.
I do realize it'll be of limited use even when/if it has proper support tools.
ST-RAM L2 is not compatible with Floppy or ACSI devices. Plus, TF536r2 is old and superseded by the TF536 ST Edition.
Still, it's useful for me. I wanted to make some proper and nice tools but I'm not sure I'll ever get around to it so I may end up just making some simple "enable go-fast mode" type thing. But in case I never get around to making any software at all for this, then someone else now can.
If you still want to give it a whirl, then you'll want to grab "mon.tos" from the tftools repository.
It's just a generic commandline utility for peeking and poking the machine.
You can run it from the EmuTOS console, some other console, or just rename it to .TTP
https://github.com/agranlund/tftools
So... what's actually new then?
- 6MB ram is reserved for ram/rom shadows
- There's a control register to toggle L1 and L2 individually for both ST-RAM and ST-ROM
- It's possible to retrieve some basic firmware info
L1 cache is not new, it was enabled in previous firmwares too.
The only thing new here is that they can be toggled using the control register
L2 cache for RAM & ROM is new.
ROM-L2:
Put a copy of the ROM in Shadow, then enable ROM-L2 for fast ROM access.
Same result as maprom, except built-in and not having to use the PMMU.
Not needing to use the PMMU can have some benefits in certain scenarios.
RAM-L2:
Writes to ST-RAM are always written both to ST-RAM and the Shadow.
Enabling L2 will make it read from the shadow instead of real ST-RAM.
Very fast, but not compatible with disk DMA.
You can set ramsize to 0 and enable L2 to only cache the first 2048 bytes.
This is *probably* compatible with disk DMA but will only accelerate
vectors + mmu table.
Example on how to enable all the go-fast stuff:
(assuming existing ROM is at e00000, machine has 4MB ST-RAM, and the card is a 64MB TF536..
modify as needed using the technical info below if that is not the case)
Copy 256kb of ROM at 00e00000 to Shadow at 04b00000:
Code: Select all
MON.TOS c 04b00000 00e00000 262144
Enable L1+L2 for both ROM and RAM, ram size is 4MB:
Or if you already have ROM in RAM due to maprom and just want to enable ST-RAM L1+L2:
Instructions for MON.TOS:
Code: Select all
mon <cmd> {options}
pb <addr> {value} : peek or poke byte
pw <addr> {value} : peek or poke word
pl <addr> {value} : peek or poke dword
d <addr> {len} : dump memory to screen
l <addr> <filename> : load memory from file
s <addr> <len> <filename> : save memory to file
x <addr> <len> {value} : set memory
c <dst> <src> <len> : copy memory
e <addr> : execute from memory
TF536r2 technical bits:
Code: Select all
ST-RAM shadow is located at $04C00000 on 64MB cards, $08C00000 on 128MB cards
ST-ROM shadow is located at $04B00000 on 64MB cards, $08B00000 on 128MB cards
* -------------------------------------------------
* control register $00FFFD10 (read / write)
* -------------------------------------------------
*
* bit 76543210
* eeeedcba
* a = Rom L1 : 0 = enable, 1 = disable
* b = Rom L2 : 0 = enable, 1 = disable
* c = Ram L1 : 0 = enable, 1 = disable
* d = Ram L2 : 0 = enable, 1 = disable
* eeee = Ramsize : 0 = 2048 bytes (vectors + mmu table)
* 1 = 0.5 MB
* 2 = 1.0 MB
* 3 = 1.5 MB
* 4 = 2.0 MB
* 5 = 2.5 MB
* 6 = 3.0 MB
* 7 = 3.5 MB
* 8 = 4.0 MB
* -------------------------------------------------
* info registers $00FFFD00 - $00FFFD0F (read only)
* -------------------------------------------------
*
* 00FFFD00 : T
* 00FFFD01 : F
* 00FFFD02 : 5
* 00FFFD03 : 3
* 00FFFD04 : 6
* 00FFFD05 : r
* 00FFFD06 : <revision number>
* 00FFFD07 : 0
* 00FFFD08 : <version hi>
* 00FFFD09 : <version lo>
* 00FFFD0A : <year hi>
* 00FFFD0B : <year lo>
* 00FFFD0C : <month>
* 00FFFD0D : <day>
* 00FFFD0E : <config>
* 000baaaa
* aaaa = ide channel
* b = ram (0 = 64, 1 = 128)
* 00FFFD0F : 0
Hard Drivin' should fly, Frontbench will be faster, and Memspeed should give you speeds like this when ST-RAM L2 is enabled:
- IMG_6371.jpg (76.32 KiB) Viewed 952 times