We could make maprom reallocate a new FRB even if one already exists.
Or maybe just have it check if the FRB exists as a separate thing. I can't remember for sure but I think you're assumption is correct in that it only installs the FRB if it also had to install alt-ram.
I think you have a very good point. When it installs the FRB itself it should be >4k but if it's already there it would be good if it double checked and avoided that (or just create and install a new one)
Yeah the thing is, you can't 100% cache inhibit areas from the hardware side only.
For that you need the PMMU to be properly set up from software. Usually this'll be the task of an operating system.
This has nothing to do with the TF536, it's just how the 68030 CPU works.
The CIIN pin on the 68030 is only cache-inhibit for cpu-reads (and also only if that data is not already in the cache, for whatever reason)
The pin has no effect when the cpu is writing.
Even if you're asserting CIIN for some region, a write to that region will still put the data in the cache.
And since it's now in the cache, a subsequent cpu-reads will get it from the cache even if you assert CIIN..
Combined with DMA this can cause bad-things of course:
1) cpu writes something to a buffer (CIIN does not effect writes, so the data ends up in cache)
2) something is DMA'ed to the buffer
3) cpu reads from the buffer -- it gets the cached data from 1 (CIIN is ignored because the data is already in the cache)
The MMU is needed to avoid things like that example from happening.