Changeset a35b458 in mainline for kernel/arch/ia64/src/start.S
- Timestamp:
- 2018-03-02T20:10:49Z (7 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- f1380b7
- Parents:
- 3061bc1
- git-author:
- Jiří Zárevúcky <zarevucky.jiri@…> (2018-02-28 17:38:31)
- git-committer:
- Jiří Zárevúcky <zarevucky.jiri@…> (2018-03-02 20:10:49)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
kernel/arch/ia64/src/start.S
r3061bc1 ra35b458 54 54 SYMBOL(kernel_image_start) 55 55 .auto 56 56 57 57 mov psr.l = r0 58 58 srlz.i 59 59 srlz.d 60 60 61 61 # Fill TR.i and TR.d using Region Register #VRN_KERNEL 62 62 63 63 movl r8 = (VRN_KERNEL << VRN_SHIFT) 64 64 mov r9 = rr[r8] 65 65 66 66 movl r10 = (RR_MASK) 67 67 and r9 = r10, r9 68 68 movl r10 = (((RID_KERNEL7) << RID_SHIFT) | (KERNEL_PAGE_WIDTH << PS_SHIFT)) 69 69 or r9 = r10, r9 70 70 71 71 mov rr[r8] = r9 72 72 73 73 movl r8 = (VRN_KERNEL << VRN_SHIFT) 74 74 mov cr.ifa = r8 75 75 76 76 mov r11 = cr.itir 77 77 movl r10 = (KERNEL_PAGE_WIDTH << PS_SHIFT) 78 78 or r10 = r10, r11 79 79 mov cr.itir = r10 80 80 81 81 movl r10 = (KERNEL_TRANSLATION_I) 82 82 itr.i itr[r0] = r10 83 83 movl r10 = (KERNEL_TRANSLATION_D) 84 84 itr.d dtr[r0] = r10 85 85 86 86 # Initialize DCR 87 87 88 88 movl r10 = (DCR_DP_MASK | DCR_DK_MASK | DCR_DX_MASK | DCR_DR_MASK | DCR_DA_MASK | DCR_DD_MASK | DCR_LC_MASK) 89 89 mov r9 = cr.dcr 90 90 or r10 = r10, r9 91 91 mov cr.dcr = r10 92 92 93 93 # Initialize PSR 94 94 95 95 movl r10 = (PSR_DT_MASK | PSR_RT_MASK | PSR_IT_MASK | PSR_IC_MASK) /* Enable paging */ 96 96 mov r9 = psr 97 97 98 98 or r10 = r10, r9 99 99 mov cr.ipsr = r10 … … 103 103 srlz.d 104 104 srlz.i 105 105 106 106 .explicit 107 107 108 108 /* 109 109 * Return From Interrupt is the only way to … … 113 113 114 114 paging_start: 115 115 116 116 /* 117 117 * Now we are paging. … … 126 126 srlz.d ;; 127 127 128 128 129 129 # Switch to register bank 1 130 130 bsw.1 131 131 132 132 # Initialize register stack 133 133 mov ar.rsc = r0 … … 135 135 mov ar.bspstore = r8 136 136 loadrs 137 137 138 138 # 139 139 # Initialize memory stack to some sane value and allocate a scratch area … … 142 142 movl sp = stack0 ;; 143 143 add sp = -16, sp 144 144 145 145 # Initialize gp (Global Pointer) register 146 146 movl gp = __gp 147 147 148 148 # 149 149 # Initialize bootinfo on BSP. … … 153 153 addl r21 = @gprel(bootinfo), gp ;; 154 154 st8 [r21] = r20 155 155 156 156 ssm (1 << 19) ;; /* Disable f32 - f127 */ 157 157 srlz.i 158 158 srlz.d ;; 159 159 160 160 br.call.sptk.many b0 = ia64_pre_main 161 161 0:
Note:
See TracChangeset
for help on using the changeset viewer.