[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[MiNT] 040/060 MMU tree builder
Hi, all. This question might be a bit off-topic, cause its about
programming the PMMU in the 040/060. I have written a small program that
builds a valid MMU tree according to the contents of a mmutree.inf file.
The reading, interpretation of this file is not yet completed, as I only
started on this program 20 hours ago.
Anyway, I'm a bit confused right now. Thomas Binder, look here ;-) You do
have both the 040 and the 060 "Users manual"s. What confuses me is the
figure of the pointer-level descriptors on page 4-12 in the 060 manual.
This figure says that bits 9-31 are the pagetable address, while in the
040 book it says that for 8kb pages bits 7 - 31 is the page-table addres
and for 4kb pages bits 8 - 31 is the page-table address. I have used the
information from the 040 book, and I guess this is correct. But I thought
I'd ask.. Thomas? Anyone?
If this turns out to be correct, my tree bulding routines are working ok,
I think, and is very versatile. I thought I'd try setting up ST-RAM and
TT-RAM using the mmu, so that I dont loose 2Mb. Also, this will allow me
to direct addrssing to the "ST I/O area" to the I/O area in the Hades.
As for the usability of this tool, I think everyone with a 040 or 060
would benefit from using it, as it is very configurable.
The config file is intended to contain entries like the below, for each
block of logical addressing area that exists in the machine. The example
entries below would set up 4Mb ST-RAM, 36Mb ST-RAM, and relocate some of
the ST compatible I/O area to the I/O area in the Hades.
....
phys=$0
log=$0
size=4Mb
mode=c_writetrough
phys=$00400000
log=$01000000
size=36Mb
mode=c_writetrough
phys=$ffff8000
log=$00ff8000
size=dont_remember
mode=c_precise
........
Anybody interested in this? I will ofcourse make tools to handle the
cache settings and such. Any ideas, wishes are welcome.
This is a new turf for me, so if any of you with mmu-programming
experience sees any problems with this, please let me know.
Also, Bernd, could you provide me with info on how to make the OS
recognize TT-RAM? Is it as simple as setting the ramtop/ramvalid (or
something) system variables and do a warm-boot?
Odd Skancke - ozk@atari.org