~ [ 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-2.6.32.71)


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