Changeset 65f3117 in mainline for kernel/arch


Ignore:
Timestamp:
2023-02-25T13:16:38Z (3 years ago)
Author:
Jiří Zárevúcky <zarevucky.jiri@…>
Branches:
master, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
6188fee
Parents:
4f84ee42
git-author:
Jiří Zárevúcky <zarevucky.jiri@…> (2023-02-14 13:38:14)
git-committer:
Jiří Zárevúcky <zarevucky.jiri@…> (2023-02-25 13:16:38)
Message:

Make bootstrap stack statically, rather than dynamically allocated

With aligment requirements being part of the language now, it is
simple to allocate the extra stack area in kernel data, and we
don't need to go to so much trouble with manual allocation.
It also makes it slightly more straightforward to use the stack
from assembly, without having to dig through a saved context
structure.

Location:
kernel/arch
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • kernel/arch/amd64/src/smp/ap.S

    r4f84ee42 r65f3117  
    9898.code64
    9999start64:
    100         movabsq $ctx, %rsp
    101         movq CONTEXT_OFFSET_SP(%rsp), %rsp
     100        movabsq $bootstrap_stack_top, %rsp
     101        movq (%rsp), %rsp
    102102
     103        pushq $0
    103104        pushq $0
    104105        movq %rsp, %rbp
  • kernel/arch/ia32/src/smp/ap.S

    r4f84ee42 r65f3117  
    7575        movw %ax, %es
    7676        movw %ax, %ss
    77         movl $KA2PA(ctx), %eax          /* KA2PA((uintptr_t) &ctx) */
    78         movl CONTEXT_OFFSET_SP(%eax), %esp
     77        movl $KA2PA(bootstrap_stack_top), %eax   /* KA2PA((uintptr_t) &bootstrap_stack_top) */
     78        movl (%eax), %esp
    7979        leal KA2PA(0)(%esp), %esp       /* KA2PA(ctx.sp) */
    8080
  • kernel/arch/mips32/src/mm/frame.c

    r4f84ee42 r65f3117  
    111111        if (overlaps(frame << ZERO_PAGE_WIDTH, ZERO_PAGE_SIZE,
    112112            KA2PA(config.base), config.kernel_size))
    113                 return false;
    114 
    115         /* Kernel stack */
    116         if (overlaps(frame << ZERO_PAGE_WIDTH, ZERO_PAGE_SIZE,
    117             KA2PA(config.stack_base), config.stack_size))
    118113                return false;
    119114
  • kernel/arch/sparc64/src/sun4u/start.S

    r4f84ee42 r65f3117  
    356356         * in the ctx global variable.
    357357         */
    358         set ctx, %g1
    359         add %g1, CONTEXT_OFFSET_SP, %g1
     358        set bootstrap_stack_top, %g1
    360359        ldx [%g1], %o6
    361360
Note: See TracChangeset for help on using the changeset viewer.