Remove the 32KB VHPT section from the kernel image. We don't really
use it because we allocate a VHPT based on the size of the physical memory and even if the allocated VHPT is 32KB, we don't use the in- image section for it. Since the VHPT must be naturally aligned, we save 48K on average (due to alignment). Consequently, we start off with the VHPT disabled (it is assumed the VHPT is disabled because the EFI loader runs without memory address translation and thus has no need to setup the VHPT). It's probably a good idea to explicitly disable the VHPT if we make the use of the VHPT optional.
This commit is contained in:
parent
32054bbb7e
commit
ca13bfade5
@ -789,14 +789,6 @@ IVT_ENTRY(Reserved_7f00, 0x7f00)
|
||||
TRAP(67)
|
||||
IVT_END(Reserved_7f00)
|
||||
|
||||
.section .data.vhpt,"aw"
|
||||
|
||||
.align 32768
|
||||
.global ia64_vhpt
|
||||
.size ia64_vhpt, 32768
|
||||
ia64_vhpt:
|
||||
.skip 32768
|
||||
|
||||
.text
|
||||
|
||||
/*
|
||||
|
@ -789,14 +789,6 @@ IVT_ENTRY(Reserved_7f00, 0x7f00)
|
||||
TRAP(67)
|
||||
IVT_END(Reserved_7f00)
|
||||
|
||||
.section .data.vhpt,"aw"
|
||||
|
||||
.align 32768
|
||||
.global ia64_vhpt
|
||||
.size ia64_vhpt, 32768
|
||||
ia64_vhpt:
|
||||
.skip 32768
|
||||
|
||||
.text
|
||||
|
||||
/*
|
||||
|
@ -77,21 +77,18 @@ kstack: .space KSTACK_PAGES * PAGE_SIZE
|
||||
* register r8.
|
||||
*/
|
||||
ENTRY(__start, 1)
|
||||
mov ar.rsc=0
|
||||
movl r16=ia64_vector_table // set up IVT early
|
||||
;;
|
||||
mov cr.iva=r16
|
||||
movl r16=ia64_vhpt+(1<<8)+(15<<2)+1 // and VHPT
|
||||
;;
|
||||
mov cr.pta=r16
|
||||
movl r16=kstack
|
||||
;;
|
||||
srlz.i
|
||||
;;
|
||||
mov r17=KSTACK_PAGES*PAGE_SIZE-SIZEOF_PCB-SIZEOF_TRAPFRAME-16
|
||||
movl gp=__gp // find kernel globals
|
||||
;;
|
||||
add sp=r16,r17 // proc0's stack
|
||||
mov ar.rsc=0 // turn off rse
|
||||
movl gp=__gp // find kernel globals
|
||||
;;
|
||||
mov ar.bspstore=r16 // switch backing store
|
||||
movl r16=pa_bootinfo
|
||||
|
@ -77,21 +77,18 @@ kstack: .space KSTACK_PAGES * PAGE_SIZE
|
||||
* register r8.
|
||||
*/
|
||||
ENTRY(__start, 1)
|
||||
mov ar.rsc=0
|
||||
movl r16=ia64_vector_table // set up IVT early
|
||||
;;
|
||||
mov cr.iva=r16
|
||||
movl r16=ia64_vhpt+(1<<8)+(15<<2)+1 // and VHPT
|
||||
;;
|
||||
mov cr.pta=r16
|
||||
movl r16=kstack
|
||||
;;
|
||||
srlz.i
|
||||
;;
|
||||
mov r17=KSTACK_PAGES*PAGE_SIZE-SIZEOF_PCB-SIZEOF_TRAPFRAME-16
|
||||
movl gp=__gp // find kernel globals
|
||||
;;
|
||||
add sp=r16,r17 // proc0's stack
|
||||
mov ar.rsc=0 // turn off rse
|
||||
movl gp=__gp // find kernel globals
|
||||
;;
|
||||
mov ar.bspstore=r16 // switch backing store
|
||||
movl r16=pa_bootinfo
|
||||
|
Loading…
Reference in New Issue
Block a user