mirror of
https://github.com/xen-project/xen.git
synced 2026-10-29 10:40:03 +01:00
[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:
1 parent
80ab525b55
commit
f85031ea1e
2 files changed
+13
-9
No files matched your search
@@ -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)
|
||||