March 10, 2022

Silicon Graphics Multibus "IP2" board -- Address map

I am working out the addresses of on-board devices by studying the boot roms and the schematic.

Note that in "boot" state, the entire sys space is always enabled, which has the result of placing the prom addresses at 0. It puts almost everything else at lower addresses too, so boot should be turned off as soon as possible in the ROM code.

Here is the "sys0" block

3000_0000	Prom 0
3000_8000	Prom 1
3001_0000	Prom 2
3001_8000	Prom 3	(absent)
3080_0000	MBUT   (8 bits)
3100_0000	MLOC   (16 bits)
3180_0000	Switch (16 bits)
3200_0000	UART0
3280_0000	UART1
3300_0000	SRAM
Now that I have read out the decode PALs I can augment the above:
3000_0000	sys0 block (the above)
3400_0000	sys1 block
3800_0000	sys2 block
3C00_0000	sys3 block

So, here is the sys1 block

3400_0000	clkctrl
3500_0000	clock
3600_0000	kbase
3700_0000	-- not used

The all important status register is the first thing is sys2 The ctrl register comes next.

3800_0000	status (16 bits)
3900_0000	ctrl (8 bits)
3a00_0000	mbprot (8 bits)
3b00_0000	map
Interestingly, 8 bit devices get connected to D31-D24 on the data bus. Also 16 bit devices get connected to D31-D16. It seems odd, but it is correct as per the 68020 manual.

Lastly, here is sys3:

3c00_0000	tdbase
3d00_0000	tdlimit
3e00_0000	sbase
3f00_0000	slimit

To work out multibus access addresses, we need to go up a layer and look at U72, the segment0 PAL. Tentatively, it looks like this:

4000_0000	mbusreq
5000_0000	mbusio
Full details require the U27 PAL. Note that the above are each 256M address ranges.
Feedback? Questions? Drop me a line!

Tom's Computer Info / tom@mmto.org