SysIII/usr/src/uts/vax/ml/end.s
# define user area virtual address
.set kernsize,512 # number pte's allocated to kernal
.globl _u
.set usize,4 # size of user area, in pages
.set maxu,64 # size of user pte area
.set _u,0x80000000 + kernsize*512
.globl _temputl
.set _temputl,_u+maxu*512
.globl _ubavad
.set _ubavad,_temputl+16*512
.globl _umemvad
.set _umemvad,_ubavad+16*512
.globl _mba0vad
.set _mba0vad,_umemvad+16*512
.globl _mba1vad
.set _mba1vad,_mba0vad+16*512
.globl _mba2vad
.set _mba2vad,_mba1vad+16*512
.globl _mba3vad
.set _mba3vad,_mba2vad+16*512
.globl _memmap
.set _memmap,_mba3vad+16*512
.globl _mbautl
.set _mbautl,_memmap+16*512
.globl _swaputl
.set _swaputl,_mbautl+maxu*512
.globl _swap2utl
.set _swap2utl,_swaputl+maxu*512
.globl _forkutl
.set _forkutl,_swap2utl+maxu*512
.globl _xswaputl
.set _xswaputl,_forkutl+maxu*512
.globl _xallutl
.set _xallutl,_xswaputl+maxu*512
.globl _xccdutl
.set _xccdutl,_xallutl+maxu*512
.globl _xswap2utl
.set _xswap2utl,_xccdutl+maxu*512
.set u_ptoffset,kernsize*4 # offset of pte's of _u
.set CMAP1,u_ptoffset+maxu*4 # offset of 1st seg copy entry
.set CMAP2,CMAP1+4 # ditto second entry
.set CADDR1,_u+maxu*512 # virtual addr of 1st copy segment
.set CADDR2,CADDR1+512 # ditto second segment
.set PHYSUBA,0x20006000 # real addr of uba
.set PHYSMBA0,0x20010000 # real addr of mba 0
.set PHYSMBA1,0x20012000 # real addr of mba1
.set PHYSUMEM,0x2013e000 # real addr of unibus memory
#
# Error messages
#
.data
# Bootstrap program executed in user mode
# to bring up the system.
.globl _icode
.globl _szicode
.set exec, 11
.align 2
_icode:
ic0:
pushab ic1
pushab ic2
pushl $2
movl sp,ap
chmk $exec
ic00:
brb ic00
.align 2
ic1:
.long ic2-ic0
.long 0
ic2:
.byte '/,'e,'t,'c,'/,'i,'n,'i,'t,0
.align 2
ic9:
_szicode:
.long ic9-_icode
KSPmsg:
.byte 'K,'e,'r,'n,'a,'l,' ,'s,'t,'a,'c,'k,012,0
.align 2
.globl _cputype
_cputype:
.word 780
.align 2
.globl ispstack
ispstack:
.space 512*2
ispstend:
.space 4
#
# _Sysmap:
# system page table
#
# structure:
# kernsize page table entries
# reserved for kernal text and data.
# additional page table entries
# used in mapping the u area (maxu entries),
# utility entries (16 entries),
# unibus adapter (16 entries),
# unibus device memory (16 entries),
# massbus adapter 0 (16 entries),
# massbus adapter 1 (16 entries),
# massbus adapter 2 (16 entries),
# massbus adapter 3 (16 entries).
# used for phys & swap I/O
.align 2
.globl _Sysmap
.globl _Umap
.globl _Tempmap
.globl _Mbamap
.globl _Swapmap
.globl _Swap2map
.globl _Forkmap
.globl _Xswapmap
.globl _Xallmap
.globl _Xccdmap
.globl _Xswap2map
.globl _mempte
_Sysmap:
.space kernsize*4 # page table entries for kernal
_Umap:
.space maxu*4 # u-area
_Tempmap:
.space 16*4 # utility area
uba_pte:
.space 16*4 # unibus
umem_pte:
.space 16*4 # unibus IO page
mba0_pte:
.space 16*4
mba1_pte:
.space 16*4
mba2_pte:
.space 16*4
mba3_pte:
.space 16*4
_mempte:
.space 16*4 # memmap area
_Mbamap:
.space maxu*4 # map for phys & swap I/O
_Swapmap:
.space maxu*4 # swap utility area
_Swap2map:
.space maxu*4 # second swap area
_Forkmap:
.space maxu*4 # fork area
_Xswapmap:
.space maxu*4 # xswap area
_Xallmap:
.space maxu*4 # xalloc area
_Xccdmap:
.space maxu*4 # xccdec area
_Xswap2map:
.space maxu*4 # xswap2 area
Endsys:
.set Syssize,(Endsys-_Sysmap)/4 # number pte's in sys page table
.globl _mmap
.set _mmap,_Sysmap+CMAP2+4
.globl _vmmap
.set _vmmap,CADDR2+512
.globl _pmapte
.set _pmapte,_mmap+4
.globl _pmavad
.set _pmavad,_vmmap+512