Loading arch/sparc/Kconfig +0 −56 Original line number Original line Diff line number Diff line Loading @@ -25,62 +25,6 @@ source "init/Kconfig" menu "General machine setup" menu "General machine setup" config VT bool select INPUT default y ---help--- If you say Y here, you will get support for terminal devices with display and keyboard devices. These are called "virtual" because you can run several virtual terminals (also called virtual consoles) on one physical terminal. This is rather useful, for example one virtual terminal can collect system messages and warnings, another one can be used for a text-mode user session, and a third could run an X session, all in parallel. Switching between virtual terminals is done with certain key combinations, usually Alt-<function key>. The setterm command ("man setterm") can be used to change the properties (such as colors or beeping) of a virtual terminal. The man page console_codes(4) ("man console_codes") contains the special character sequences that can be used to change those properties directly. The fonts used on virtual terminals can be changed with the setfont ("man setfont") command and the key bindings are defined with the loadkeys ("man loadkeys") command. You need at least one virtual terminal device in order to make use of your keyboard and monitor. Therefore, only people configuring an embedded system would want to say N here in order to save some memory; the only way to log into such a system is then via a serial or network connection. If unsure, say Y, or else you won't be able to do much with your new shiny Linux system :-) config VT_CONSOLE bool default y ---help--- The system console is the device which receives all kernel messages and warnings and which allows logins in single user mode. If you answer Y here, a virtual terminal (the device used to interact with a physical terminal) can be used as system console. This is the most common mode of operations, so you should say Y here unless you want the kernel messages be output only to a serial port (in which case you should say Y to "Console on serial port", below). If you do say Y here, by default the currently visible virtual terminal (/dev/tty0) will be used as system console. You can change that with a kernel command line option such as "console=tty3" which would use the third virtual terminal as system console. (Try "man bootparam" or see the documentation of your boot loader (lilo or loadlin) about how to pass options to the kernel at boot time.) If unsure, say Y. config HW_CONSOLE bool default y config SMP config SMP bool "Symmetric multi-processing support (does not work on sun4/sun4c)" bool "Symmetric multi-processing support (does not work on sun4/sun4c)" depends on BROKEN depends on BROKEN Loading arch/sparc64/kernel/entry.S +8 −35 Original line number Original line Diff line number Diff line Loading @@ -97,8 +97,8 @@ do_fpdis: faddd %f0, %f2, %f4 faddd %f0, %f2, %f4 fmuld %f0, %f2, %f6 fmuld %f0, %f2, %f6 ldxa [%g3] ASI_DMMU, %g5 ldxa [%g3] ASI_DMMU, %g5 cplus_fptrap_insn_1: sethi %hi(sparc64_kern_sec_context), %g2 sethi %hi(0), %g2 ldx [%g2 + %lo(sparc64_kern_sec_context)], %g2 stxa %g2, [%g3] ASI_DMMU stxa %g2, [%g3] ASI_DMMU membar #Sync membar #Sync add %g6, TI_FPREGS + 0xc0, %g2 add %g6, TI_FPREGS + 0xc0, %g2 Loading Loading @@ -126,8 +126,8 @@ cplus_fptrap_insn_1: fzero %f34 fzero %f34 ldxa [%g3] ASI_DMMU, %g5 ldxa [%g3] ASI_DMMU, %g5 add %g6, TI_FPREGS, %g1 add %g6, TI_FPREGS, %g1 cplus_fptrap_insn_2: sethi %hi(sparc64_kern_sec_context), %g2 sethi %hi(0), %g2 ldx [%g2 + %lo(sparc64_kern_sec_context)], %g2 stxa %g2, [%g3] ASI_DMMU stxa %g2, [%g3] ASI_DMMU membar #Sync membar #Sync add %g6, TI_FPREGS + 0x40, %g2 add %g6, TI_FPREGS + 0x40, %g2 Loading @@ -153,8 +153,8 @@ cplus_fptrap_insn_2: 3: mov SECONDARY_CONTEXT, %g3 3: mov SECONDARY_CONTEXT, %g3 add %g6, TI_FPREGS, %g1 add %g6, TI_FPREGS, %g1 ldxa [%g3] ASI_DMMU, %g5 ldxa [%g3] ASI_DMMU, %g5 cplus_fptrap_insn_3: sethi %hi(sparc64_kern_sec_context), %g2 sethi %hi(0), %g2 ldx [%g2 + %lo(sparc64_kern_sec_context)], %g2 stxa %g2, [%g3] ASI_DMMU stxa %g2, [%g3] ASI_DMMU membar #Sync membar #Sync mov 0x40, %g2 mov 0x40, %g2 Loading Loading @@ -319,8 +319,8 @@ do_fptrap_after_fsr: stx %g3, [%g6 + TI_GSR] stx %g3, [%g6 + TI_GSR] mov SECONDARY_CONTEXT, %g3 mov SECONDARY_CONTEXT, %g3 ldxa [%g3] ASI_DMMU, %g5 ldxa [%g3] ASI_DMMU, %g5 cplus_fptrap_insn_4: sethi %hi(sparc64_kern_sec_context), %g2 sethi %hi(0), %g2 ldx [%g2 + %lo(sparc64_kern_sec_context)], %g2 stxa %g2, [%g3] ASI_DMMU stxa %g2, [%g3] ASI_DMMU membar #Sync membar #Sync add %g6, TI_FPREGS, %g2 add %g6, TI_FPREGS, %g2 Loading @@ -341,33 +341,6 @@ cplus_fptrap_insn_4: ba,pt %xcc, etrap ba,pt %xcc, etrap wr %g0, 0, %fprs wr %g0, 0, %fprs cplus_fptrap_1: sethi %hi(CTX_CHEETAH_PLUS_CTX0), %g2 .globl cheetah_plus_patch_fpdis cheetah_plus_patch_fpdis: /* We configure the dTLB512_0 for 4MB pages and the * dTLB512_1 for 8K pages when in context zero. */ sethi %hi(cplus_fptrap_1), %o0 lduw [%o0 + %lo(cplus_fptrap_1)], %o1 set cplus_fptrap_insn_1, %o2 stw %o1, [%o2] flush %o2 set cplus_fptrap_insn_2, %o2 stw %o1, [%o2] flush %o2 set cplus_fptrap_insn_3, %o2 stw %o1, [%o2] flush %o2 set cplus_fptrap_insn_4, %o2 stw %o1, [%o2] flush %o2 retl nop /* The registers for cross calls will be: /* The registers for cross calls will be: * * * DATA 0: [low 32-bits] Address of function to call, jmp to this * DATA 0: [low 32-bits] Address of function to call, jmp to this Loading arch/sparc64/kernel/etrap.S +4 −47 Original line number Original line Diff line number Diff line Loading @@ -68,12 +68,8 @@ etrap_irq: wrpr %g3, 0, %otherwin wrpr %g3, 0, %otherwin wrpr %g2, 0, %wstate wrpr %g2, 0, %wstate cplus_etrap_insn_1: sethi %hi(sparc64_kern_pri_context), %g2 sethi %hi(0), %g3 ldx [%g2 + %lo(sparc64_kern_pri_context)], %g3 sllx %g3, 32, %g3 cplus_etrap_insn_2: sethi %hi(0), %g2 or %g3, %g2, %g3 stxa %g3, [%l4] ASI_DMMU stxa %g3, [%l4] ASI_DMMU flush %l6 flush %l6 wr %g0, ASI_AIUS, %asi wr %g0, ASI_AIUS, %asi Loading Loading @@ -215,12 +211,8 @@ scetrap: rdpr %pil, %g2 mov PRIMARY_CONTEXT, %l4 mov PRIMARY_CONTEXT, %l4 wrpr %g3, 0, %otherwin wrpr %g3, 0, %otherwin wrpr %g2, 0, %wstate wrpr %g2, 0, %wstate cplus_etrap_insn_3: sethi %hi(sparc64_kern_pri_context), %g2 sethi %hi(0), %g3 ldx [%g2 + %lo(sparc64_kern_pri_context)], %g3 sllx %g3, 32, %g3 cplus_etrap_insn_4: sethi %hi(0), %g2 or %g3, %g2, %g3 stxa %g3, [%l4] ASI_DMMU stxa %g3, [%l4] ASI_DMMU flush %l6 flush %l6 Loading Loading @@ -264,38 +256,3 @@ cplus_etrap_insn_4: #undef TASK_REGOFF #undef TASK_REGOFF #undef ETRAP_PSTATE1 #undef ETRAP_PSTATE1 cplus_einsn_1: sethi %uhi(CTX_CHEETAH_PLUS_NUC), %g3 cplus_einsn_2: sethi %hi(CTX_CHEETAH_PLUS_CTX0), %g2 .globl cheetah_plus_patch_etrap cheetah_plus_patch_etrap: /* We configure the dTLB512_0 for 4MB pages and the * dTLB512_1 for 8K pages when in context zero. */ sethi %hi(cplus_einsn_1), %o0 sethi %hi(cplus_etrap_insn_1), %o2 lduw [%o0 + %lo(cplus_einsn_1)], %o1 or %o2, %lo(cplus_etrap_insn_1), %o2 stw %o1, [%o2] flush %o2 sethi %hi(cplus_etrap_insn_3), %o2 or %o2, %lo(cplus_etrap_insn_3), %o2 stw %o1, [%o2] flush %o2 sethi %hi(cplus_einsn_2), %o0 sethi %hi(cplus_etrap_insn_2), %o2 lduw [%o0 + %lo(cplus_einsn_2)], %o1 or %o2, %lo(cplus_etrap_insn_2), %o2 stw %o1, [%o2] flush %o2 sethi %hi(cplus_etrap_insn_4), %o2 or %o2, %lo(cplus_etrap_insn_4), %o2 stw %o1, [%o2] flush %o2 retl nop arch/sparc64/kernel/head.S +5 −28 Original line number Original line Diff line number Diff line Loading @@ -325,23 +325,7 @@ cheetah_tlb_fixup: 1: sethi %hi(tlb_type), %g1 1: sethi %hi(tlb_type), %g1 stw %g2, [%g1 + %lo(tlb_type)] stw %g2, [%g1 + %lo(tlb_type)] BRANCH_IF_CHEETAH_PLUS_OR_FOLLOWON(g1,g7,1f) /* Patch copy/page operations to cheetah optimized versions. */ ba,pt %xcc, 2f nop 1: /* Patch context register writes to support nucleus page * size correctly. */ call cheetah_plus_patch_etrap nop call cheetah_plus_patch_rtrap nop call cheetah_plus_patch_fpdis nop call cheetah_plus_patch_winfixup nop 2: /* Patch copy/page operations to cheetah optimized versions. */ call cheetah_patch_copyops call cheetah_patch_copyops nop nop call cheetah_patch_copy_page call cheetah_patch_copy_page Loading Loading @@ -484,20 +468,13 @@ spitfire_vpte_base: call prom_set_trap_table call prom_set_trap_table sethi %hi(sparc64_ttable_tl0), %o0 sethi %hi(sparc64_ttable_tl0), %o0 BRANCH_IF_CHEETAH_PLUS_OR_FOLLOWON(g2,g3,1f) /* Start using proper page size encodings in ctx register. */ ba,pt %xcc, 2f sethi %hi(sparc64_kern_pri_context), %g3 nop ldx [%g3 + %lo(sparc64_kern_pri_context)], %g2 1: /* Start using proper page size encodings in ctx register. */ sethi %uhi(CTX_CHEETAH_PLUS_NUC), %g3 mov PRIMARY_CONTEXT, %g1 mov PRIMARY_CONTEXT, %g1 sllx %g3, 32, %g3 stxa %g2, [%g1] ASI_DMMU sethi %hi(CTX_CHEETAH_PLUS_CTX0), %g2 or %g3, %g2, %g3 stxa %g3, [%g1] ASI_DMMU membar #Sync membar #Sync 2: rdpr %pstate, %o1 rdpr %pstate, %o1 or %o1, PSTATE_IE, %o1 or %o1, PSTATE_IE, %o1 wrpr %o1, 0, %pstate wrpr %o1, 0, %pstate Loading arch/sparc64/kernel/rtrap.S +2 −21 Original line number Original line Diff line number Diff line Loading @@ -256,9 +256,8 @@ rt_continue: ldx [%sp + PTREGS_OFF + PT_V9_G1], %g1 brnz,pn %l3, kern_rtt brnz,pn %l3, kern_rtt mov PRIMARY_CONTEXT, %l7 mov PRIMARY_CONTEXT, %l7 ldxa [%l7 + %l7] ASI_DMMU, %l0 ldxa [%l7 + %l7] ASI_DMMU, %l0 cplus_rtrap_insn_1: sethi %hi(sparc64_kern_pri_nuc_bits), %l1 sethi %hi(0), %l1 ldx [%l1 + %lo(sparc64_kern_pri_nuc_bits)], %l1 sllx %l1, 32, %l1 or %l0, %l1, %l0 or %l0, %l1, %l0 stxa %l0, [%l7] ASI_DMMU stxa %l0, [%l7] ASI_DMMU flush %g6 flush %g6 Loading Loading @@ -345,21 +344,3 @@ kern_fpucheck: ldub [%g6 + TI_FPDEPTH], %l5 wr %g0, FPRS_DU, %fprs wr %g0, FPRS_DU, %fprs ba,pt %xcc, rt_continue ba,pt %xcc, rt_continue stb %l5, [%g6 + TI_FPDEPTH] stb %l5, [%g6 + TI_FPDEPTH] cplus_rinsn_1: sethi %uhi(CTX_CHEETAH_PLUS_NUC), %l1 .globl cheetah_plus_patch_rtrap cheetah_plus_patch_rtrap: /* We configure the dTLB512_0 for 4MB pages and the * dTLB512_1 for 8K pages when in context zero. */ sethi %hi(cplus_rinsn_1), %o0 sethi %hi(cplus_rtrap_insn_1), %o2 lduw [%o0 + %lo(cplus_rinsn_1)], %o1 or %o2, %lo(cplus_rtrap_insn_1), %o2 stw %o1, [%o2] flush %o2 retl nop Loading
arch/sparc/Kconfig +0 −56 Original line number Original line Diff line number Diff line Loading @@ -25,62 +25,6 @@ source "init/Kconfig" menu "General machine setup" menu "General machine setup" config VT bool select INPUT default y ---help--- If you say Y here, you will get support for terminal devices with display and keyboard devices. These are called "virtual" because you can run several virtual terminals (also called virtual consoles) on one physical terminal. This is rather useful, for example one virtual terminal can collect system messages and warnings, another one can be used for a text-mode user session, and a third could run an X session, all in parallel. Switching between virtual terminals is done with certain key combinations, usually Alt-<function key>. The setterm command ("man setterm") can be used to change the properties (such as colors or beeping) of a virtual terminal. The man page console_codes(4) ("man console_codes") contains the special character sequences that can be used to change those properties directly. The fonts used on virtual terminals can be changed with the setfont ("man setfont") command and the key bindings are defined with the loadkeys ("man loadkeys") command. You need at least one virtual terminal device in order to make use of your keyboard and monitor. Therefore, only people configuring an embedded system would want to say N here in order to save some memory; the only way to log into such a system is then via a serial or network connection. If unsure, say Y, or else you won't be able to do much with your new shiny Linux system :-) config VT_CONSOLE bool default y ---help--- The system console is the device which receives all kernel messages and warnings and which allows logins in single user mode. If you answer Y here, a virtual terminal (the device used to interact with a physical terminal) can be used as system console. This is the most common mode of operations, so you should say Y here unless you want the kernel messages be output only to a serial port (in which case you should say Y to "Console on serial port", below). If you do say Y here, by default the currently visible virtual terminal (/dev/tty0) will be used as system console. You can change that with a kernel command line option such as "console=tty3" which would use the third virtual terminal as system console. (Try "man bootparam" or see the documentation of your boot loader (lilo or loadlin) about how to pass options to the kernel at boot time.) If unsure, say Y. config HW_CONSOLE bool default y config SMP config SMP bool "Symmetric multi-processing support (does not work on sun4/sun4c)" bool "Symmetric multi-processing support (does not work on sun4/sun4c)" depends on BROKEN depends on BROKEN Loading
arch/sparc64/kernel/entry.S +8 −35 Original line number Original line Diff line number Diff line Loading @@ -97,8 +97,8 @@ do_fpdis: faddd %f0, %f2, %f4 faddd %f0, %f2, %f4 fmuld %f0, %f2, %f6 fmuld %f0, %f2, %f6 ldxa [%g3] ASI_DMMU, %g5 ldxa [%g3] ASI_DMMU, %g5 cplus_fptrap_insn_1: sethi %hi(sparc64_kern_sec_context), %g2 sethi %hi(0), %g2 ldx [%g2 + %lo(sparc64_kern_sec_context)], %g2 stxa %g2, [%g3] ASI_DMMU stxa %g2, [%g3] ASI_DMMU membar #Sync membar #Sync add %g6, TI_FPREGS + 0xc0, %g2 add %g6, TI_FPREGS + 0xc0, %g2 Loading Loading @@ -126,8 +126,8 @@ cplus_fptrap_insn_1: fzero %f34 fzero %f34 ldxa [%g3] ASI_DMMU, %g5 ldxa [%g3] ASI_DMMU, %g5 add %g6, TI_FPREGS, %g1 add %g6, TI_FPREGS, %g1 cplus_fptrap_insn_2: sethi %hi(sparc64_kern_sec_context), %g2 sethi %hi(0), %g2 ldx [%g2 + %lo(sparc64_kern_sec_context)], %g2 stxa %g2, [%g3] ASI_DMMU stxa %g2, [%g3] ASI_DMMU membar #Sync membar #Sync add %g6, TI_FPREGS + 0x40, %g2 add %g6, TI_FPREGS + 0x40, %g2 Loading @@ -153,8 +153,8 @@ cplus_fptrap_insn_2: 3: mov SECONDARY_CONTEXT, %g3 3: mov SECONDARY_CONTEXT, %g3 add %g6, TI_FPREGS, %g1 add %g6, TI_FPREGS, %g1 ldxa [%g3] ASI_DMMU, %g5 ldxa [%g3] ASI_DMMU, %g5 cplus_fptrap_insn_3: sethi %hi(sparc64_kern_sec_context), %g2 sethi %hi(0), %g2 ldx [%g2 + %lo(sparc64_kern_sec_context)], %g2 stxa %g2, [%g3] ASI_DMMU stxa %g2, [%g3] ASI_DMMU membar #Sync membar #Sync mov 0x40, %g2 mov 0x40, %g2 Loading Loading @@ -319,8 +319,8 @@ do_fptrap_after_fsr: stx %g3, [%g6 + TI_GSR] stx %g3, [%g6 + TI_GSR] mov SECONDARY_CONTEXT, %g3 mov SECONDARY_CONTEXT, %g3 ldxa [%g3] ASI_DMMU, %g5 ldxa [%g3] ASI_DMMU, %g5 cplus_fptrap_insn_4: sethi %hi(sparc64_kern_sec_context), %g2 sethi %hi(0), %g2 ldx [%g2 + %lo(sparc64_kern_sec_context)], %g2 stxa %g2, [%g3] ASI_DMMU stxa %g2, [%g3] ASI_DMMU membar #Sync membar #Sync add %g6, TI_FPREGS, %g2 add %g6, TI_FPREGS, %g2 Loading @@ -341,33 +341,6 @@ cplus_fptrap_insn_4: ba,pt %xcc, etrap ba,pt %xcc, etrap wr %g0, 0, %fprs wr %g0, 0, %fprs cplus_fptrap_1: sethi %hi(CTX_CHEETAH_PLUS_CTX0), %g2 .globl cheetah_plus_patch_fpdis cheetah_plus_patch_fpdis: /* We configure the dTLB512_0 for 4MB pages and the * dTLB512_1 for 8K pages when in context zero. */ sethi %hi(cplus_fptrap_1), %o0 lduw [%o0 + %lo(cplus_fptrap_1)], %o1 set cplus_fptrap_insn_1, %o2 stw %o1, [%o2] flush %o2 set cplus_fptrap_insn_2, %o2 stw %o1, [%o2] flush %o2 set cplus_fptrap_insn_3, %o2 stw %o1, [%o2] flush %o2 set cplus_fptrap_insn_4, %o2 stw %o1, [%o2] flush %o2 retl nop /* The registers for cross calls will be: /* The registers for cross calls will be: * * * DATA 0: [low 32-bits] Address of function to call, jmp to this * DATA 0: [low 32-bits] Address of function to call, jmp to this Loading
arch/sparc64/kernel/etrap.S +4 −47 Original line number Original line Diff line number Diff line Loading @@ -68,12 +68,8 @@ etrap_irq: wrpr %g3, 0, %otherwin wrpr %g3, 0, %otherwin wrpr %g2, 0, %wstate wrpr %g2, 0, %wstate cplus_etrap_insn_1: sethi %hi(sparc64_kern_pri_context), %g2 sethi %hi(0), %g3 ldx [%g2 + %lo(sparc64_kern_pri_context)], %g3 sllx %g3, 32, %g3 cplus_etrap_insn_2: sethi %hi(0), %g2 or %g3, %g2, %g3 stxa %g3, [%l4] ASI_DMMU stxa %g3, [%l4] ASI_DMMU flush %l6 flush %l6 wr %g0, ASI_AIUS, %asi wr %g0, ASI_AIUS, %asi Loading Loading @@ -215,12 +211,8 @@ scetrap: rdpr %pil, %g2 mov PRIMARY_CONTEXT, %l4 mov PRIMARY_CONTEXT, %l4 wrpr %g3, 0, %otherwin wrpr %g3, 0, %otherwin wrpr %g2, 0, %wstate wrpr %g2, 0, %wstate cplus_etrap_insn_3: sethi %hi(sparc64_kern_pri_context), %g2 sethi %hi(0), %g3 ldx [%g2 + %lo(sparc64_kern_pri_context)], %g3 sllx %g3, 32, %g3 cplus_etrap_insn_4: sethi %hi(0), %g2 or %g3, %g2, %g3 stxa %g3, [%l4] ASI_DMMU stxa %g3, [%l4] ASI_DMMU flush %l6 flush %l6 Loading Loading @@ -264,38 +256,3 @@ cplus_etrap_insn_4: #undef TASK_REGOFF #undef TASK_REGOFF #undef ETRAP_PSTATE1 #undef ETRAP_PSTATE1 cplus_einsn_1: sethi %uhi(CTX_CHEETAH_PLUS_NUC), %g3 cplus_einsn_2: sethi %hi(CTX_CHEETAH_PLUS_CTX0), %g2 .globl cheetah_plus_patch_etrap cheetah_plus_patch_etrap: /* We configure the dTLB512_0 for 4MB pages and the * dTLB512_1 for 8K pages when in context zero. */ sethi %hi(cplus_einsn_1), %o0 sethi %hi(cplus_etrap_insn_1), %o2 lduw [%o0 + %lo(cplus_einsn_1)], %o1 or %o2, %lo(cplus_etrap_insn_1), %o2 stw %o1, [%o2] flush %o2 sethi %hi(cplus_etrap_insn_3), %o2 or %o2, %lo(cplus_etrap_insn_3), %o2 stw %o1, [%o2] flush %o2 sethi %hi(cplus_einsn_2), %o0 sethi %hi(cplus_etrap_insn_2), %o2 lduw [%o0 + %lo(cplus_einsn_2)], %o1 or %o2, %lo(cplus_etrap_insn_2), %o2 stw %o1, [%o2] flush %o2 sethi %hi(cplus_etrap_insn_4), %o2 or %o2, %lo(cplus_etrap_insn_4), %o2 stw %o1, [%o2] flush %o2 retl nop
arch/sparc64/kernel/head.S +5 −28 Original line number Original line Diff line number Diff line Loading @@ -325,23 +325,7 @@ cheetah_tlb_fixup: 1: sethi %hi(tlb_type), %g1 1: sethi %hi(tlb_type), %g1 stw %g2, [%g1 + %lo(tlb_type)] stw %g2, [%g1 + %lo(tlb_type)] BRANCH_IF_CHEETAH_PLUS_OR_FOLLOWON(g1,g7,1f) /* Patch copy/page operations to cheetah optimized versions. */ ba,pt %xcc, 2f nop 1: /* Patch context register writes to support nucleus page * size correctly. */ call cheetah_plus_patch_etrap nop call cheetah_plus_patch_rtrap nop call cheetah_plus_patch_fpdis nop call cheetah_plus_patch_winfixup nop 2: /* Patch copy/page operations to cheetah optimized versions. */ call cheetah_patch_copyops call cheetah_patch_copyops nop nop call cheetah_patch_copy_page call cheetah_patch_copy_page Loading Loading @@ -484,20 +468,13 @@ spitfire_vpte_base: call prom_set_trap_table call prom_set_trap_table sethi %hi(sparc64_ttable_tl0), %o0 sethi %hi(sparc64_ttable_tl0), %o0 BRANCH_IF_CHEETAH_PLUS_OR_FOLLOWON(g2,g3,1f) /* Start using proper page size encodings in ctx register. */ ba,pt %xcc, 2f sethi %hi(sparc64_kern_pri_context), %g3 nop ldx [%g3 + %lo(sparc64_kern_pri_context)], %g2 1: /* Start using proper page size encodings in ctx register. */ sethi %uhi(CTX_CHEETAH_PLUS_NUC), %g3 mov PRIMARY_CONTEXT, %g1 mov PRIMARY_CONTEXT, %g1 sllx %g3, 32, %g3 stxa %g2, [%g1] ASI_DMMU sethi %hi(CTX_CHEETAH_PLUS_CTX0), %g2 or %g3, %g2, %g3 stxa %g3, [%g1] ASI_DMMU membar #Sync membar #Sync 2: rdpr %pstate, %o1 rdpr %pstate, %o1 or %o1, PSTATE_IE, %o1 or %o1, PSTATE_IE, %o1 wrpr %o1, 0, %pstate wrpr %o1, 0, %pstate Loading
arch/sparc64/kernel/rtrap.S +2 −21 Original line number Original line Diff line number Diff line Loading @@ -256,9 +256,8 @@ rt_continue: ldx [%sp + PTREGS_OFF + PT_V9_G1], %g1 brnz,pn %l3, kern_rtt brnz,pn %l3, kern_rtt mov PRIMARY_CONTEXT, %l7 mov PRIMARY_CONTEXT, %l7 ldxa [%l7 + %l7] ASI_DMMU, %l0 ldxa [%l7 + %l7] ASI_DMMU, %l0 cplus_rtrap_insn_1: sethi %hi(sparc64_kern_pri_nuc_bits), %l1 sethi %hi(0), %l1 ldx [%l1 + %lo(sparc64_kern_pri_nuc_bits)], %l1 sllx %l1, 32, %l1 or %l0, %l1, %l0 or %l0, %l1, %l0 stxa %l0, [%l7] ASI_DMMU stxa %l0, [%l7] ASI_DMMU flush %g6 flush %g6 Loading Loading @@ -345,21 +344,3 @@ kern_fpucheck: ldub [%g6 + TI_FPDEPTH], %l5 wr %g0, FPRS_DU, %fprs wr %g0, FPRS_DU, %fprs ba,pt %xcc, rt_continue ba,pt %xcc, rt_continue stb %l5, [%g6 + TI_FPDEPTH] stb %l5, [%g6 + TI_FPDEPTH] cplus_rinsn_1: sethi %uhi(CTX_CHEETAH_PLUS_NUC), %l1 .globl cheetah_plus_patch_rtrap cheetah_plus_patch_rtrap: /* We configure the dTLB512_0 for 4MB pages and the * dTLB512_1 for 8K pages when in context zero. */ sethi %hi(cplus_rinsn_1), %o0 sethi %hi(cplus_rtrap_insn_1), %o2 lduw [%o0 + %lo(cplus_rinsn_1)], %o1 or %o2, %lo(cplus_rtrap_insn_1), %o2 stw %o1, [%o2] flush %o2 retl nop