~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/arch/alpha/kernel/head.S

Version: ~ [ linux-6.12-rc7 ] ~ [ linux-6.11.7 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.60 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.116 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.171 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.229 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.285 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.323 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.12 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

Diff markup

Differences between /arch/alpha/kernel/head.S (Version linux-6.12-rc7) and /arch/alpha/kernel/head.S (Version linux-4.15.18)


  1 /* SPDX-License-Identifier: GPL-2.0 */              1 /* SPDX-License-Identifier: GPL-2.0 */
  2 /*                                                  2 /*
  3  * arch/alpha/kernel/head.S                         3  * arch/alpha/kernel/head.S
  4  *                                                  4  *
  5  * initial boot stuff.. At this point, the boo      5  * initial boot stuff.. At this point, the bootloader has already
  6  * switched into OSF/1 PAL-code, and loaded us      6  * switched into OSF/1 PAL-code, and loaded us at the correct address
  7  * (START_ADDR).  So there isn't much left for      7  * (START_ADDR).  So there isn't much left for us to do: just set up
  8  * the kernel global pointer and jump to the k      8  * the kernel global pointer and jump to the kernel entry-point.
  9  */                                                 9  */
 10                                                    10 
 11 #include <linux/init.h>                            11 #include <linux/init.h>
 12 #include <asm/asm-offsets.h>                       12 #include <asm/asm-offsets.h>
 13 #include <asm/pal.h>                               13 #include <asm/pal.h>
 14 #include <asm/setup.h>                             14 #include <asm/setup.h>
 15                                                    15 
 16 __HEAD                                             16 __HEAD
 17 .globl _stext                                      17 .globl _stext
 18         .set noreorder                             18         .set noreorder
 19         .globl  __start                            19         .globl  __start
 20         .ent    __start                            20         .ent    __start
 21 _stext:                                            21 _stext:
 22 __start:                                           22 __start:
 23         .prologue 0                                23         .prologue 0
 24         br      $27,1f                             24         br      $27,1f
 25 1:      ldgp    $29,0($27)                         25 1:      ldgp    $29,0($27)
 26         /* We need to get current_task_info lo     26         /* We need to get current_task_info loaded up...  */
 27         lda     $8,init_thread_union               27         lda     $8,init_thread_union
 28         /* ... and find our stack ... */           28         /* ... and find our stack ... */
 29         lda     $30,0x4000 - SIZEOF_PT_REGS($8     29         lda     $30,0x4000 - SIZEOF_PT_REGS($8)
 30         /* ... and then we can start the kerne     30         /* ... and then we can start the kernel.  */
 31         jsr     $26,start_kernel                   31         jsr     $26,start_kernel
 32         call_pal PAL_halt                          32         call_pal PAL_halt
 33         .end __start                               33         .end __start
 34                                                    34 
 35 #ifdef CONFIG_SMP                                  35 #ifdef CONFIG_SMP
 36         .align 3                                   36         .align 3
 37         .globl  __smp_callin                       37         .globl  __smp_callin
 38         .ent    __smp_callin                       38         .ent    __smp_callin
 39         /* On entry here from SRM console, the     39         /* On entry here from SRM console, the HWPCB of the per-cpu
 40            slot for this processor has been lo     40            slot for this processor has been loaded.  We've arranged
 41            for the UNIQUE value for this proce     41            for the UNIQUE value for this process to contain the PCBB
 42            of the target idle task.  */            42            of the target idle task.  */
 43 __smp_callin:                                      43 __smp_callin:
 44         .prologue 1                                44         .prologue 1
 45         ldgp    $29,0($27)      # First order      45         ldgp    $29,0($27)      # First order of business, load the GP.
 46                                                    46 
 47         call_pal PAL_rduniq     # Grab the tar     47         call_pal PAL_rduniq     # Grab the target PCBB.
 48         mov     $0,$16          # Install it.      48         mov     $0,$16          # Install it.
 49         call_pal PAL_swpctx                        49         call_pal PAL_swpctx
 50                                                    50 
 51         lda     $8,0x3fff       # Find "curren     51         lda     $8,0x3fff       # Find "current".
 52         bic     $30,$8,$8                          52         bic     $30,$8,$8
 53                                                    53         
 54         jsr     $26,smp_callin                     54         jsr     $26,smp_callin
 55         call_pal PAL_halt                          55         call_pal PAL_halt
 56         .end __smp_callin                          56         .end __smp_callin
 57 #endif /* CONFIG_SMP */                            57 #endif /* CONFIG_SMP */
 58                                                    58 
 59         #                                          59         #
 60         # The following two functions are need     60         # The following two functions are needed for supporting SRM PALcode
 61         # on the PC164 (at least), since that      61         # on the PC164 (at least), since that PALcode manages the interrupt
 62         # masking, and we cannot duplicate the     62         # masking, and we cannot duplicate the effort without causing problems
 63         #                                          63         #
 64                                                    64 
 65         .align 3                                   65         .align 3
 66         .globl  cserve_ena                         66         .globl  cserve_ena
 67         .ent    cserve_ena                         67         .ent    cserve_ena
 68 cserve_ena:                                        68 cserve_ena:
 69         .prologue 0                                69         .prologue 0
 70         bis     $16,$16,$17                        70         bis     $16,$16,$17
 71         lda     $16,52($31)                        71         lda     $16,52($31)
 72         call_pal PAL_cserve                        72         call_pal PAL_cserve
 73         ret     ($26)                              73         ret     ($26)
 74         .end    cserve_ena                         74         .end    cserve_ena
 75                                                    75 
 76         .align 3                                   76         .align 3
 77         .globl  cserve_dis                         77         .globl  cserve_dis
 78         .ent    cserve_dis                         78         .ent    cserve_dis
 79 cserve_dis:                                        79 cserve_dis:
 80         .prologue 0                                80         .prologue 0
 81         bis     $16,$16,$17                        81         bis     $16,$16,$17
 82         lda     $16,53($31)                        82         lda     $16,53($31)
 83         call_pal PAL_cserve                        83         call_pal PAL_cserve
 84         ret     ($26)                              84         ret     ($26)
 85         .end    cserve_dis                         85         .end    cserve_dis
 86                                                    86 
 87         #                                          87         #
 88         # It is handy, on occasion, to make ha     88         # It is handy, on occasion, to make halt actually just loop. 
 89         # Putting it here means we dont have t     89         # Putting it here means we dont have to recompile the whole
 90         # kernel.                                  90         # kernel.
 91         #                                          91         #
 92                                                    92 
 93         .align 3                                   93         .align 3
 94         .globl  halt                               94         .globl  halt
 95         .ent    halt                               95         .ent    halt
 96 halt:                                              96 halt:
 97         .prologue 0                                97         .prologue 0
 98         call_pal PAL_halt                          98         call_pal PAL_halt
 99         .end    halt                               99         .end    halt
                                                      

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php