summaryrefslogtreecommitdiff
path: root/entry.S
diff options
context:
space:
mode:
authorRobert Morris <[email protected]>2019-06-05 11:42:03 -0400
committerRobert Morris <[email protected]>2019-06-05 11:42:03 -0400
commitf1a727b971a59bab6025b4c4111342c27356ca40 (patch)
treed22d52c613bfc003e6fb75b5d137aeff9d954201 /entry.S
parentec3d3a1fceee437c640f9c5c05fc517edfb1899e (diff)
downloadxv6-labs-f1a727b971a59bab6025b4c4111342c27356ca40.tar.gz
xv6-labs-f1a727b971a59bab6025b4c4111342c27356ca40.tar.bz2
xv6-labs-f1a727b971a59bab6025b4c4111342c27356ca40.zip
start at support for multiple CPUs
Diffstat (limited to 'entry.S')
-rw-r--r--entry.S13
1 files changed, 8 insertions, 5 deletions
diff --git a/entry.S b/entry.S
index 8b3316c..b3d2c55 100644
--- a/entry.S
+++ b/entry.S
@@ -10,12 +10,15 @@
.section .text
.globl _entry
_entry:
- # set up a stack for C; stack0 is declared in start.
+ # set up a stack for C.
+ # stack0 is declared in start,
+ # with 4096 bytes per CPU.
la sp, stack0
- addi sp, sp, 1024
- addi sp, sp, 1024
- addi sp, sp, 1024
- addi sp, sp, 1024
+ li a0, 1024*4
+ csrr a1, mhartid
+ addi a1, a1, 1
+ mul a0, a0, a1
+ add sp, sp, a0
# jump to mstart() in start.c
call mstart
junk: