Rev 993 | Rev 1187 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 993 | Rev 1138 | ||
---|---|---|---|
Line 41... | Line 41... | ||
41 | { |
41 | { |
42 | __address base; |
42 | __address base; |
43 | 43 | ||
44 | base = ALIGN_DOWN(config.base, 1<<KERNEL_PAGE_WIDTH); |
44 | base = ALIGN_DOWN(config.base, 1<<KERNEL_PAGE_WIDTH); |
45 | 45 | ||
46 | if ((__address) THREAD->kstack < base || (__address) THREAD->kstack > base + (1<<KERNEL_PAGE_WIDTH)) { |
46 | if ((__address) THREAD->kstack < base || (__address) THREAD->kstack > base + (1<<(KERNEL_PAGE_WIDTH))) { |
47 | /* |
47 | /* |
48 | * Kernel stack of this thread is not mapped by DTR[TR_KERNEL]. |
48 | * Kernel stack of this thread is not mapped by DTR[TR_KERNEL]. |
49 | * Use DTR[TR_KSTACK] to map it. |
49 | * Use DTR[TR_KSTACK1] and DTR[TR_KSTACK2] to map it. |
50 | */ |
50 | */ |
51 | dtlb_kernel_mapping_insert((__address) THREAD->kstack, KA2PA(THREAD->kstack), true, DTR_KSTACK); |
51 | dtlb_kernel_mapping_insert((__address) THREAD->kstack, KA2PA(THREAD->kstack), true, DTR_KSTACK1); |
- | 52 | dtlb_kernel_mapping_insert((__address) THREAD->kstack + PAGE_SIZE, KA2PA(THREAD->kstack) + FRAME_SIZE, true, DTR_KSTACK2); |
|
52 | } |
53 | } |
53 | 54 | ||
54 | /* |
55 | /* |
55 | * Record address of kernel backing store to bank 0 r22. |
56 | * Record address of kernel backing store to bank 0 r22. |
56 | * Record address of kernel stack to bank 0 r23. |
57 | * Record address of kernel stack to bank 0 r23. |