debuggers.hg

view xen/arch/ia64/patch/linux-2.6.11/head.S @ 4615:58efb3448933

bitkeeper revision 1.1327.1.1 (426536d2PUqtjTi2v06bzD10RFwarg)

Merge bk://xen.bkbits.net/xeno-unstable.bk
into bkbits.net:/repos/x/xen-ia64/xeno-unstable-ia64.bk
author xen-ia64.adm@bkbits.net
date Tue Apr 19 16:50:26 2005 +0000 (2005-04-19)
parents f1c946e1226a
children 5b9e241131fb 0dc81495c135
line source
1 head.S | 34 ++++++++++++++++++++++++++++++++++
2 1 files changed, 34 insertions(+)
4 Index: linux-2.6.11-xendiffs/arch/ia64/kernel/head.S
5 ===================================================================
6 --- linux-2.6.11-xendiffs.orig/arch/ia64/kernel/head.S 2005-04-07 10:56:19.225128582 -0500
7 +++ linux-2.6.11-xendiffs/arch/ia64/kernel/head.S 2005-04-07 11:00:21.718513399 -0500
8 @@ -1,3 +1,8 @@
9 +#ifdef XEN
10 +#define console_print printf
11 +#define kernel_thread_helper 0
12 +#define sys_exit 0
13 +#endif
14 /*
15 * Here is where the ball gets rolling as far as the kernel is concerned.
16 * When control is transferred to _start, the bootload has already
17 @@ -187,7 +192,11 @@ start_ap:
18 dep r18=0,r3,0,12
19 ;;
20 or r18=r17,r18
21 +#ifdef XEN
22 + dep r2=-1,r3,60,4 // IMVA of task
23 +#else
24 dep r2=-1,r3,61,3 // IMVA of task
25 +#endif
26 ;;
27 mov r17=rr[r2]
28 shr.u r16=r3,IA64_GRANULE_SHIFT
29 @@ -227,7 +236,11 @@ start_ap:
30 ;;
31 mov ar.rsc=0x3 // place RSE in eager mode
33 +#ifdef XEN
34 +(isBP) dep r28=-1,r28,60,4 // make address virtual
35 +#else
36 (isBP) dep r28=-1,r28,61,3 // make address virtual
37 +#endif
38 (isBP) movl r2=ia64_boot_param
39 ;;
40 (isBP) st8 [r2]=r28 // save the address of the boot param area passed by the bootloader
41 @@ -245,7 +258,21 @@ start_ap:
42 br.call.sptk.many rp=sys_fw_init
43 .ret1:
44 #endif
45 +#ifdef XEN
46 + alloc r2=ar.pfs,8,0,2,0
47 + ;;
48 +#define fake_mbi_magic 0
49 +#define MULTIBOOT_INFO_SIZE 1024
50 + .rodata
51 +fake_mbi:
52 + .skip MULTIBOOT_INFO_SIZE
53 + .previous
54 + movl out0=fake_mbi
55 + ;;
56 + br.call.sptk.many rp=cmain
57 +#else
58 br.call.sptk.many rp=start_kernel
59 +#endif
60 .ret2: addl r3=@ltoff(halt_msg),gp
61 ;;
62 alloc r2=ar.pfs,8,0,2,0
63 @@ -254,7 +281,9 @@ start_ap:
64 br.call.sptk.many b0=console_print
66 self: hint @pause
67 + ;;
68 br.sptk.many self // endless loop
69 + ;;
70 END(_start)
72 GLOBAL_ENTRY(ia64_save_debug_regs)
73 @@ -850,7 +879,12 @@ END(ia64_delay_loop)
74 * intermediate precision so that we can produce a full 64-bit result.
75 */
76 GLOBAL_ENTRY(sched_clock)
77 +#ifdef XEN
78 + break 0;; // FIX IA64_CPUINFO_NSEC_PER_CYC_OFFSET
79 + //movl r8=THIS_CPU(cpu_info) + IA64_CPUINFO_NSEC_PER_CYC_OFFSET
80 +#else
81 addl r8=THIS_CPU(cpu_info) + IA64_CPUINFO_NSEC_PER_CYC_OFFSET,r0
82 +#endif
83 mov.m r9=ar.itc // fetch cycle-counter (35 cyc)
84 ;;
85 ldf8 f8=[r8]