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

TOMOYO Linux Cross Reference
Linux/arch/m68k/kernel/sun3-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 ] ~

  1 /* SPDX-License-Identifier: GPL-2.0 */
  2 #include <linux/linkage.h>
  3 #include <linux/init.h>
  4 
  5 #include <asm/entry.h>
  6 #include <asm/page.h>
  7 #include <asm/contregs.h>
  8 #include <asm/sun3-head.h>
  9 
 10 PSL_HIGHIPL     = 0x2700
 11 NBSG            = 0x20000
 12 ICACHE_ONLY     = 0x00000009
 13 CACHES_OFF      = 0x00000008    | actually a clear and disable --m
 14 #define MAS_STACK INT_STACK
 15 ROOT_TABLE_SIZE = 128
 16 PAGESIZE        = 8192
 17 SUN3_INVALID_PMEG = 255
 18 .globl bootup_user_stack
 19 .globl bootup_kernel_stack
 20 .globl pg0
 21 .globl swapper_pg_dir
 22 .globl kernel_pmd_table
 23 .globl availmem
 24 .global m68k_pgtable_cachemode
 25 .global kpt
 26 | todo: all these should be in bss!
 27 swapper_pg_dir:                .skip 0x2000
 28 pg0:                           .skip 0x2000
 29 kernel_pmd_table:              .skip 0x2000
 30 
 31 .globl kernel_pg_dir
 32 .equ    kernel_pg_dir,kernel_pmd_table
 33 
 34         __HEAD
 35 ENTRY(_stext)
 36 ENTRY(_start)
 37 
 38 /* Firstly, disable interrupts and set up function codes. */
 39         movew   #PSL_HIGHIPL, %sr
 40         moveq   #FC_CONTROL, %d0
 41         movec   %d0, %sfc
 42         movec   %d0, %dfc
 43 
 44 /* Make sure we're in context zero. */
 45         moveq   #0, %d0
 46         movsb   %d0, AC_CONTEXT
 47 
 48 /* map everything the bootloader left us into high memory, clean up the
 49    excess later */
 50         lea     (AC_SEGMAP+0),%a0
 51         lea     (AC_SEGMAP+KERNBASE),%a1
 52 1:
 53         movsb   %a0@, %d1
 54         movsb   %d1, %a1@
 55         cmpib   #SUN3_INVALID_PMEG, %d1
 56         beq     2f
 57         addl    #NBSG,%a0
 58         addl    #NBSG,%a1
 59         jmp     1b
 60 
 61 2:
 62 
 63 /* Disable caches and jump to high code. */
 64         moveq   #ICACHE_ONLY,%d0        | Cache disabled until we're ready to enable it
 65         movc    %d0, %cacr      |   is this the right value? (yes --m)
 66         jmp     1f:l
 67 
 68 /* Following code executes at high addresses (0xE000xxx). */
 69 1:      lea     init_task,%curptr                       | get initial thread...
 70         lea     init_thread_union+THREAD_SIZE,%sp       | ...and its stack.
 71 
 72 /* Point MSP at an invalid page to trap if it's used. --m */
 73         movl    #(PAGESIZE),%d0
 74         movc    %d0,%msp
 75         moveq   #-1,%d0
 76         movsb   %d0,(AC_SEGMAP+0x0)
 77 
 78         jbsr    sun3_init
 79 
 80         jbsr    base_trap_init
 81 
 82         jbsr    start_kernel
 83         trap    #15
 84 
 85         .data
 86         .even
 87 kpt:
 88         .long 0
 89 availmem:
 90         .long 0

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