[IA64] Every processor call xen_early_setup (required on SMP-guest to set ivt).

Only BP set running_on_xen.
xensetup.S slightly compacted.

Signed-off-by: Tristan Gingold <tristan.gingold@bull.net>
This commit is contained in:
awilliam@xenbuild.aw committed 2006-03-01 10:01:54 -07:00
1 parent 80ab525b55
commit f85031ea1e
2 files changed
+13 -9

No files matched your search

+6 -4
View File
@@ -363,6 +363,12 @@ start_ap:
;;
(isBP) st8 [r2]=r28 // save the address of the boot param area passed by the bootloader
#ifdef CONFIG_XEN
// Note: isBP is used by the subprogram.
br.call.sptk.many rp=early_xen_setup
;;
#endif
#ifdef CONFIG_SMP
(isAP) br.call.sptk.many rp=start_secondary
.ret0:
@@ -371,10 +377,6 @@ start_ap:
// This is executed by the bootstrap processor (bsp) only:
#ifdef CONFIG_XEN
br.call.sptk.many rp=early_xen_setup
;;
#endif
#ifdef CONFIG_IA64_FW_EMU
// initialize PAL & SAL emulator:
br.call.sptk.many rp=sys_fw_init
@@ -14,13 +14,15 @@
running_on_xen:
data4 0
#define isBP p3 // are we the Bootstrap Processor?
.text
GLOBAL_ENTRY(early_xen_setup)
mov r8=cr.dcr;;
extr.u r8=r8,63,1
movl r9=running_on_xen;;
st4 [r9]=r8;;
mov r8=cr.dcr
(isBP) movl r9=running_on_xen;;
extr.u r8=r8,63,1;;
cmp.ne p7,p0=r8,r0;;
(isBP) st4 [r9]=r8
(p7) movl r10=xen_ivt;;
(p7) mov cr.iva=r10
br.ret.sptk.many rp;;
@@ -28,6 +30,6 @@ END(early_xen_setup)
GLOBAL_ENTRY(is_running_on_xen)
movl r9=running_on_xen;;
ld4 r8=[r9];;
ld4 r8=[r9]
br.ret.sptk.many rp;;
END(is_running_on_xen)
Reference in new issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.