summaryrefslogtreecommitdiffstats
path: root/pk/ppe42/ppe42_thread_init.S
diff options
context:
space:
mode:
Diffstat (limited to 'pk/ppe42/ppe42_thread_init.S')
-rw-r--r--pk/ppe42/ppe42_thread_init.S54
1 files changed, 28 insertions, 26 deletions
diff --git a/pk/ppe42/ppe42_thread_init.S b/pk/ppe42/ppe42_thread_init.S
index 6e6c34fe..7185f7c7 100644
--- a/pk/ppe42/ppe42_thread_init.S
+++ b/pk/ppe42/ppe42_thread_init.S
@@ -48,54 +48,56 @@ __pk_thread_context_initialize:
stw %r7, \prefix\reg(%r6)
.endm
- ## Initialize a fast context on the thread stack. The CR is cleared,
+ ## Initialize volatile context on the thread stack. The CR is cleared,
## the LR = pk_complete(), R3 has the private parameter.
lwz %r6, PK_THREAD_OFFSET_SAVED_STACK_POINTER(%r3)
- stwu %r6, -PK_FAST_CTX_SIZE(%r6)
+ stwu %r6, -PK_CTX_SIZE(%r6)
li %r7, 0
- stw %r7, PK_FAST_CTX_CR(%r6)
+ stw %r7, PK_CTX_CR(%r6)
_liw %r7, pk_complete
- stw %r7, PK_FAST_CTX_LR(%r6)
+ stw %r7, PK_CTX_LR(%r6)
- stw %r5, PK_FAST_CTX_GPR3(%r6)
+ stw %r5, PK_CTX_GPR3(%r6)
- _gpr_init PK_FAST_CTX_GPR, 4, 0x0404
- _gpr_init PK_FAST_CTX_GPR, 5, 0x0505
- _gpr_init PK_FAST_CTX_GPR, 6, 0x0606
+ _gpr_init PK_CTX_GPR, 4, 0x0404
+ _gpr_init PK_CTX_GPR, 5, 0x0505
+ _gpr_init PK_CTX_GPR, 6, 0x0606
- ## Initialize the (volatile - fast) context on the thread stack. XER
- ## and CTR are clear, SRR0 = thread_routine, SRR1 = default machine
+ ## XER and CTR are clear, SRR0 = thread_routine, SRR1 = default machine
## context.
- stwu %r6, -PK_VOL_FAST_CTX_SIZE(%r6)
-
li %r7, 0
- stw %r7, PK_VOL_FAST_CTX_XER(%r6)
- stw %r7, PK_VOL_FAST_CTX_CTR(%r6)
+ stw %r7, PK_CTX_XER(%r6)
+ stw %r7, PK_CTX_CTR(%r6)
- stw %r4, PK_VOL_FAST_CTX_SRR0(%r6)
+ stw %r4, PK_CTX_SRR0(%r6)
_lwzsd %r7, __pk_thread_machine_context_default
- stw %r7, PK_VOL_FAST_CTX_SRR1(%r6)
+ stw %r7, PK_CTX_SRR1(%r6)
- _gpr_init PK_VOL_FAST_CTX_GPR, 0, 0x0000
- _gpr_init PK_VOL_FAST_CTX_GPR, 7, 0x0707
- _gpr_init PK_VOL_FAST_CTX_GPR, 8, 0x0808
- _gpr_init PK_VOL_FAST_CTX_GPR, 9, 0x0909
- _gpr_init PK_VOL_FAST_CTX_GPR, 10, 0x1010
+ _gpr_init PK_CTX_GPR, 0, 0x0000
+ _gpr_init PK_CTX_GPR, 7, 0x0707
+ _gpr_init PK_CTX_GPR, 8, 0x0808
+ _gpr_init PK_CTX_GPR, 9, 0x0909
+ _gpr_init PK_CTX_GPR, 10, 0x1010
## Initialize the non-volatile context on the thread stack.
- stwu %r6, -PK_NON_VOL_CTX_SIZE(%r6)
+ _gpr_init PK_CTX_GPR, 28, 0x2828
+ _gpr_init PK_CTX_GPR, 29, 0x2929
+ _gpr_init PK_CTX_GPR, 30, 0x3030
+ _gpr_init PK_CTX_GPR, 31, 0x3131
+
+ ## Initialize the kernel context on the thread stack.
+ ## Note: Thread priority is set later each time the thread is
+ ## resumed.
- _gpr_init PK_NON_VOL_CTX_GPR, 28, 0x2828
- _gpr_init PK_NON_VOL_CTX_GPR, 29, 0x2929
- _gpr_init PK_NON_VOL_CTX_GPR, 30, 0x3030
- _gpr_init PK_NON_VOL_CTX_GPR, 31, 0x3131
+ lis %r7, PPE42_THREAD_MODE
+ stw %r7, PK_CTX_KERNEL_CTX(%r6)
## Initialization is done - the stack pointer is stored back in the
## thread.
OpenPOWER on IntegriCloud