August 25, 2025

Sun 3 bootrom souce - the Sun 3/80 - black magic with the MMU

It is way too confusing to try to sort out what is going on with virtual addresses by looking at the dump of the MMU tables. So I wrote a python program to take the dumped table information and generate a civilized map for the high address range. Here is the output, we have a listing of the page table addresses, so this is 8k pages and we have the virtual address and then the physical address. There are many interesting things here.

I'll mention one. There were already several mappings to the physical address for the page map ( 00ffa000 ). Not knowing this (how could I know). I set up the mapping at fedfa000, but I could have used the one at fede4000 or any of the others.

There are several duplicate mappings for the scc and three for the lance ethernet.
Take your pick! There is only one for the printer though.

Here is an idea. There are two mappings for the eeprom/idprom. The official one at fef04000 has software limits in the bootrom that prohibit that address from being used to modify the IDPROM values, but perhaps the other mapping at fed84000 is not restricted. This would be something to try out the next time I need to hand craft the IDPROM values.

fed80000  62000000		scc - kb/mouse
fed82000  62002000		scc - serial
fed84000  64000000		eeprom
fed86000  64000800
fed88000  61001000
fed8a000  61001400
fed8c000  ---
fed8e000  65002000		lance ethernet
fed90000  ---
fed92000  66002000
fed94000  ---
fed96000  61000000
fed98000  61000400
fed9a000  61000800
fed9c000  61000c00
fed9e000  50300000
feda0000  ---
feda2000  ---
feda4000  ---
feda6000  ---
feda8000  ---
fedaa000  ---
fedac000  ---
fedae000  ---
fedb0000  ---
fedb2000  ---
fedb4000  ---
fedb6000  ---
fedb8000  ---
fedba000  ---
fedbc000  ---
fedbe000  ---
fedc0000  ---
fedc2000  ---
fedc4000  ---
fedc6000  ---
fedc8000  ---
fedca000  ---
fedcc000  ---
fedce000  ---
fedd0000  ---
fedd2000  ---
fedd4000  ---
fedd6000  ---
fedd8000  ---
fedda000  ---
feddc000  ---
fedde000  ---
fede0000  00ffe000
fede2000  ---
fede4000  00ffa000
fede6000  60000000
fede8000  ---
fedea000  ---
fedec000  ---
fedee000  ---
fedf0000  ---
fedf2000  00ffc000
fedf4000  00ffa000
fedf6000  ---
fedf8000  ---
fedfa000  00ffa000
fedfc000  ---
fedfe000  ---
fee00000  ---
fee02000  ---
fee04000  ---
fee06000  ---
fee08000  ---
fee0a000  ---
fee0c000  ---
fee0e000  ---
fee10000  ---
fee12000  ---
fee14000  ---
fee16000  ---
fee18000  ---
fee1a000  ---
fee1c000  ---
fee1e000  ---
fee20000  ---
fee22000  ---
fee24000  ---
fee26000  ---
fee28000  ---
fee2a000  ---
fee2c000  ---
fee2e000  ---
fee30000  ---
fee32000  ---
fee34000  ---
fee36000  ---
fee38000  ---
fee3a000  ---
fee3c000  ---
fee3e000  ---
fee40000  ---
fee42000  ---
fee44000  ---
fee46000  ---
fee48000  ---
fee4a000  ---
fee4c000  ---
fee4e000  ---
fee50000  ---
fee52000  ---
fee54000  ---
fee56000  ---
fee58000  ---
fee5a000  ---
fee5c000  ---
fee5e000  ---
fee60000  ---
fee62000  ---
fee64000  ---
fee66000  ---
fee68000  ---
fee6a000  ---
fee6c000  ---
fee6e000  ---
fee70000  ---
fee72000  ---
fee74000  ---
fee76000  ---
fee78000  ---
fee7a000  ---
fee7c000  ---
fee7e000  ---
fee80000  ---
fee82000  ---
fee84000  ---
fee86000  ---
fee88000  ---
fee8a000  ---
fee8c000  ---
fee8e000  ---
fee90000  ---
fee92000  ---
fee94000  ---
fee96000  ---
fee98000  ---
fee9a000  ---
fee9c000  ---
fee9e000  ---
feea0000  ---
feea2000  ---
feea4000  ---
feea6000  ---
feea8000  ---
feeaa000  ---
feeac000  ---
feeae000  ---
feeb0000  ---
feeb2000  ---
feeb4000  ---
feeb6000  ---
feeb8000  ---
feeba000  ---
feebc000  ---
feebe000  ---
feec0000  ---
feec2000  ---
feec4000  ---
feec6000  ---
feec8000  ---
feeca000  ---
feecc000  ---
feece000  ---
feed0000  ---
feed2000  ---
feed4000  ---
feed6000  ---
feed8000  ---
feeda000  ---
feedc000  ---
feede000  ---
feee0000  ---
feee2000  ---
feee4000  ---
feee6000  ---
feee8000  ---
feeea000  ---
feeec000  ---
feeee000  ---
feef0000  ---
feef2000  ---
feef4000  ---
feef6000  ---
feef8000  ---
feefa000  ---
feefc000  ---
feefe000  ---
fef00000  62000000		scc - kb/mouse
fef02000  62002000		scc - serial
fef04000  64000000		eeprom
fef06000  64000800
fef08000  61001000
fef0a000  61001400
fef0c000  ---
fef0e000  65002000		lance ethernet
fef10000  ---
fef12000  66002000
fef14000  ---
fef16000  61000000
fef18000  61000400
fef1a000  61000800
fef1c000  61000c00
fef1e000  50300000
fef20000  ---
fef22000  ---
fef24000  ---
fef26000  ---
fef28000  ---
fef2a000  ---
fef2c000  ---
fef2e000  ---
fef30000  ---
fef32000  ---
fef34000  ---
fef36000  ---
fef38000  ---
fef3a000  ---
fef3c000  ---
fef3e000  ---
fef40000  ---
fef42000  ---
fef44000  ---
fef46000  ---
fef48000  ---
fef4a000  ---
fef4c000  ---
fef4e000  ---
fef50000  ---
fef52000  ---
fef54000  ---
fef56000  ---
fef58000  ---
fef5a000  ---
fef5c000  ---
fef5e000  ---
fef60000  00ffe000
fef62000  ---
fef64000  00ffa000
fef66000  60000000
fef68000  ---
fef6a000  ---
fef6c000  ---
fef6e000  ---
fef70000  ---
fef72000  00ffc000
fef74000  00ffa000
fef76000  ---
fef78000  ---
fef7a000  00ffa000
fef7c000  ---
fef7e000  ---
fef80000  6f000000		printer
fef82000  65002000		lance ethernet
fef84000  66000000
fef86000  66000000
fef88000  66000000
fef8a000  66000000
fef8c000  ---
fef8e000  ---
fef90000  ---
fef92000  ---
fef94000  ---
fef96000  ---
fef98000  ---
fef9a000  ---
fef9c000  ---
fef9e000  ---
fefa0000  ---
fefa2000  ---
fefa4000  ---
fefa6000  ---
fefa8000  ---
fefaa000  ---
fefac000  ---
fefae000  ---
fefb0000  ---
fefb2000  ---
fefb4000  ---
fefb6000  ---
fefb8000  ---
fefba000  ---
fefbc000  ---
fefbe000  ---
fefc0000  ---
fefc2000  ---
fefc4000  ---
fefc6000  ---
fefc8000  ---
fefca000  ---
fefcc000  ---
fefce000  ---
fefd0000  ---
fefd2000  ---
fefd4000  ---
fefd6000  ---
fefd8000  ---
fefda000  ---
fefdc000  ---
fefde000  ---
fefe0000  63000000
fefe2000  63002000
fefe4000  63004000
fefe6000  63006000
fefe8000  63008000
fefea000  6300a000
fefec000  6300c000
fefee000  6300e000
feff0000  63010000
feff2000  63012000
feff4000  63014000
feff6000  63016000
feff8000  63018000
feffa000  6301a000
feffc000  6301c000
feffe000  6301e000
fff00000  00ff8000
fff02000  00ff6000
fff04000  00ff4000
fff06000  00e06000
fff08000  00e08000
fff0a000  00e0a000
fff0c000  00e0c000
fff0e000  00e0e000
fff10000  00e10000
fff12000  00e12000
fff14000  00e14000
fff16000  00e16000
fff18000  00e18000
fff1a000  00e1a000
fff1c000  00e1c000
fff1e000  00e1e000
fff20000  00e20000
fff22000  00e22000
fff24000  00e24000
fff26000  00e26000
fff28000  00e28000
fff2a000  00e2a000
fff2c000  00e2c000
fff2e000  00e2e000
fff30000  00e30000
fff32000  00e32000
fff34000  00e34000
fff36000  00e36000
fff38000  00e38000
fff3a000  00e3a000
fff3c000  00e3c000
fff3e000  00e3e000
fff40000  00e40000
fff42000  00e42000
fff44000  00e44000
fff46000  00e46000
fff48000  00e48000
fff4a000  00e4a000
fff4c000  00e4c000
fff4e000  00e4e000
fff50000  00e50000
fff52000  00e52000
fff54000  00e54000
fff56000  00e56000
fff58000  00e58000
fff5a000  00e5a000
fff5c000  00e5c000
fff5e000  00e5e000
fff60000  00e60000
fff62000  00e62000
fff64000  00e64000
fff66000  00e66000
fff68000  00e68000
fff6a000  00e6a000
fff6c000  00e6c000
fff6e000  00e6e000
fff70000  00e70000
fff72000  00e72000
fff74000  00e74000
fff76000  00e76000
fff78000  00e78000
fff7a000  00e7a000
fff7c000  00e7c000
fff7e000  00e7e000
fff80000  00e80000
fff82000  00e82000
fff84000  00e84000
fff86000  00e86000
fff88000  00e88000
fff8a000  00e8a000
fff8c000  00e8c000
fff8e000  00e8e000
fff90000  00e90000
fff92000  00e92000
fff94000  00e94000
fff96000  00e96000
fff98000  00e98000
fff9a000  00e9a000
fff9c000  00e9c000
fff9e000  00e9e000
fffa0000  00ea0000
fffa2000  00ea2000
fffa4000  00ea4000
fffa6000  00ea6000
fffa8000  00ea8000
fffaa000  00eaa000
fffac000  00eac000
fffae000  00eae000
fffb0000  00eb0000
fffb2000  00eb2000
fffb4000  00eb4000
fffb6000  00eb6000
fffb8000  00eb8000
fffba000  00eba000
fffbc000  00ebc000
fffbe000  00ebe000
fffc0000  00ec0000
fffc2000  00ec2000
fffc4000  00ec4000
fffc6000  00ec6000
fffc8000  00ec8000
fffca000  00eca000
fffcc000  00ecc000
fffce000  00ece000
fffd0000  00ed0000
fffd2000  00ed2000
fffd4000  00ed4000
fffd6000  00ed6000
fffd8000  00ed8000
fffda000  00eda000
fffdc000  00edc000
fffde000  00ede000
fffe0000  00ee0000
fffe2000  00ee2000
fffe4000  00ee4000
fffe6000  00ee6000
fffe8000  00ee8000
fffea000  00eea000
fffec000  00eec000
fffee000  00eee000
ffff0000  00ef0000
ffff2000  00ef2000
ffff4000  00ef4000
ffff6000  00ef6000
ffff8000  00ef8000
ffffa000  00efa000
ffffc000  00efc000
ffffe000  00ffc000

Feedback? Questions? Drop me a line!

Tom's Computer Info / tom@mmto.org