Changeset e5c1186 in mainline for kernel/arch/ia64/src/start.S


Ignore:
Timestamp:
2010-06-14T22:58:20Z (14 years ago)
Author:
Jakub Jermar <jakub@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
fae1647
Parents:
84d8837
Message:

Remove the poor man's support for SMP.

Proper SMP support will be reintroduced later after the rest of the ia64 code is
cleaned up and the real hardware support is back.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • kernel/arch/ia64/src/start.S

    r84d8837 re5c1186  
    4949kernel_image_start:
    5050        .auto
    51        
    52 #ifdef CONFIG_SMP
    53         # Identify self(CPU) in OS structures by ID / EID
    54        
    55         mov r9 = cr64
    56         mov r10 = 1
    57         movl r12 = 0xffffffff
    58         movl r8 = cpu_by_id_eid_list
    59         and r8 = r8, r12
    60         shr r9 = r9, 16
    61         add r8 = r8, r9
    62         st1 [r8] = r10
    63 #endif
    6451       
    6552        mov psr.l = r0
     
    164151        bsw.1
    165152       
    166 #ifdef CONFIG_SMP
    167         # Am I BSP or AP?
    168         movl r20 = bsp_started ;;
    169         ld8 r20 = [r20] ;;
    170         cmp.eq p3, p2 = r20, r0 ;;
    171 #else
    172         cmp.eq p3, p2 = r0, r0 ;;  /* you are BSP */
    173 #endif  /* CONFIG_SMP */
    174        
    175153        # Initialize register stack
    176154        mov ar.rsc = r0
     
    191169         * Initialize bootinfo on BSP.
    192170         */
    193 (p3)    addl r21 = @gprel(bootinfo), gp ;;
    194 (p3)    st8 [r21] = r20
     171        addl r21 = @gprel(bootinfo), gp ;;
     172        st8 [r21] = r20
    195173       
    196174        ssm (1 << 19) ;; /* Disable f32 - f127 */
    197175        srlz.i
    198176        srlz.d ;;
    199        
    200 #ifdef CONFIG_SMP
    201 (p2)    movl r18 = main_ap ;;
    202 (p2)    mov b1 = r18 ;;
    203 (p2)    br.call.sptk.many b0 = b1
    204        
    205         # Mark that BSP is on
    206        
    207         mov r20 = 1 ;;
    208         movl r21 = bsp_started ;;
    209         st8 [r21] = r20 ;;
    210 #endif
    211177       
    212178        br.call.sptk.many b0 = arch_pre_main
     
    2181840:
    219185        br 0b
    220 
    221 #ifdef CONFIG_SMP
    222 
    223 .align 4096
    224 kernel_image_ap_start:
    225         .auto
    226        
    227         # Identify self(CPU) in OS structures by ID / EID
    228        
    229         mov r9 = cr64
    230         mov r10 = 1
    231         movl r12 = 0xffffffff
    232         movl r8 = cpu_by_id_eid_list
    233         and r8 = r8, r12
    234         shr r9 = r9, 16
    235         add r8 = r8, r9
    236         st1 [r8] = r10
    237        
    238         # Wait for wakeup synchro signal (#3 in cpu_by_id_eid_list)
    239 
    240 kernel_image_ap_start_loop:
    241         movl r11 = kernel_image_ap_start_loop
    242         and r11 = r11, r12
    243         mov b1 = r11
    244        
    245         ld1 r20 = [r8]
    246         movl r21 = 3
    247         cmp.eq p2, p3 = r20, r21
    248 (p3)    br.call.sptk.many b0 = b1
    249        
    250         movl r11 = kernel_image_start
    251         and r11 = r11, r12
    252         mov b1 = r11
    253         br.call.sptk.many b0 = b1
    254 
    255 .align 16
    256 .global bsp_started
    257 bsp_started:
    258         .space 8
    259 
    260 .align 4096
    261 .global cpu_by_id_eid_list
    262 cpu_by_id_eid_list:
    263         .space 65536
    264 
    265 #endif  /* CONFIG_SMP */
Note: See TracChangeset for help on using the changeset viewer.