[BACK]Return to locore.S CVS log [TXT][DIR] Up to [cvs.NetBSD.org] / src / sys / arch / arm / arm32

Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.

Diff for /src/sys/arch/arm/arm32/locore.S between version 1.26 and 1.27

version 1.26, 2012/08/16 18:22:40 version 1.27, 2012/08/29 07:14:04
Line 56  ENTRY_NP(kernel_text)
Line 56  ENTRY_NP(kernel_text)
   
 ASENTRY_NP(start)  ASENTRY_NP(start)
         adr     r1, .Lstart          adr     r1, .Lstart
         ldmia   r1, {r1, r2, sp}        /* Set initial stack and */          ldmia   r1, {r1, r2, r8, sp}    /* Set initial stack and */
         sub     r2, r2, r1              /* get zero init data */          sub     r2, r2, r1              /* get zero init data and cpu_info_store */
   
 #ifdef PROCESS_ID_IS_CURCPU  #if defined(TPIDRPRW_IS_CURCPU) || defined(TPIDRPRW_IS_CURLWP)
         ldr     r3, .Lcpu_info_store          mcr     p15, 0, r8, c13, c0, 4
         mcr     p15, 0, r3, c13, c0, 4  
 #endif  #endif
   
         mov     r3, #0          mov     r3, #0
Line 70  ASENTRY_NP(start)
Line 69  ASENTRY_NP(start)
         subs    r2, r2, #4          subs    r2, r2, #4
         bgt     .L1          bgt     .L1
   
           mrc     p15, 0, r3, c0, c0, 0   /* get our cpuid and save it early */
           str     r3, [r8, #CI_ARM_CPUID]
   
         mov     fp, #0x00000000         /* trace back starts here */          mov     fp, #0x00000000         /* trace back starts here */
         bl      _C_LABEL(initarm)       /* Off we go */          bl      _C_LABEL(initarm)       /* Off we go */
   
Line 87  ASENTRY_NP(start)
Line 89  ASENTRY_NP(start)
         b       _C_LABEL(panic)          b       _C_LABEL(panic)
         /* NOTREACHED */          /* NOTREACHED */
   
 #ifdef PROCESS_ID_IS_CURCPU  
 .Lcpu_info_store:  
         .word   _C_LABEL(cpu_info_store)  
 #endif  
   
 .Lstart:  .Lstart:
         .word   _edata          .word   _edata
         .word   _end          .word   _end
   #if defined(TPIDRPRW_IS_CURCPU)
           .word   _C_LABEL(cpu_info_store)
   #elif defined(TPIDRPRW_IS_CURLWP)
           .word   _C_LABEL(lwp0)
   #else
           .word   0
   #endif
         .word   svcstk + INIT_ARM_STACK_SIZE          .word   svcstk + INIT_ARM_STACK_SIZE
   
 .Lmainreturned:  .Lmainreturned:
Line 115  svcstk:
Line 119  svcstk:
         .word   _C_LABEL(cpufuncs)          .word   _C_LABEL(cpufuncs)
   
 ENTRY_NP(cpu_reset)  ENTRY_NP(cpu_reset)
   #ifdef _ARM_ARCH_6
           cpsid   if, #PSR_SVC32_MODE
   #else
         mrs     r2, cpsr          mrs     r2, cpsr
         bic     r2, r2, #(PSR_MODE)          bic     r2, r2, #(PSR_MODE)
         orr     r2, r2, #(PSR_SVC32_MODE)          orr     r2, r2, #(PSR_SVC32_MODE)
         orr     r2, r2, #(IF32_bits)          orr     r2, r2, #(IF32_bits)
         msr     cpsr_c, r2          msr     cpsr_c, r2
   #endif
   
         ldr     r0, .Lcpufuncs          ldr     r0, .Lcpufuncs
         mov     lr, pc          mov     lr, pc
Line 142  ENTRY_NP(cpu_reset)
Line 150  ENTRY_NP(cpu_reset)
          * MMU & IDC off, 32 bit program & data space           * MMU & IDC off, 32 bit program & data space
          * Hurl ourselves into the ROM           * Hurl ourselves into the ROM
          */           */
         mov     r0, #(CPU_CONTROL_32BP_ENABLE | CPU_CONTROL_32BD_ENABLE)          mrc     p15, 0, r0, c1, c0, 0
         mcr     15, 0, r0, c1, c0, 0          bic     r0, #(CPU_CONTROL_MMU_ENABLE | CPU_CONTROL_DC_ENABLE)
         mcreq   15, 0, r2, c8, c7, 0    /* nail I+D TLB on ARMv4 and greater */          bic     r0, #(CPU_CONTROL_IC_ENABLE)
           orr     r0, #(CPU_CONTROL_32BP_ENABLE | CPU_CONTROL_32BD_ENABLE)
           mcr     p15, 0, r0, c1, c0, 0
           mcreq   p15, 0, r2, c8, c7, 0   /* nail I+D TLB on ARMv4 and greater */
         mov     pc, r4          mov     pc, r4
   
         /*          /*

Legend:
Removed from v.1.26  
changed lines
  Added in v.1.27

CVSweb <webmaster@jp.NetBSD.org>