Get the APs into rust code, set stack and page table in trampoline
This commit is contained in:
parent
a8948fb246
commit
27d5996abf
5 changed files with 82 additions and 42 deletions
|
@ -65,31 +65,31 @@ load:
|
|||
mov [DAPACK.count], cx
|
||||
mov [DAPACK.seg], dx
|
||||
|
||||
mov si, loading
|
||||
call print
|
||||
; mov si, loading
|
||||
; call print
|
||||
|
||||
mov bx, [DAPACK.addr]
|
||||
call print_num
|
||||
; mov bx, [DAPACK.addr]
|
||||
; call print_num
|
||||
|
||||
mov al, '#'
|
||||
call print_char
|
||||
|
||||
mov bx, [DAPACK.count]
|
||||
call print_num
|
||||
|
||||
mov al, ' '
|
||||
call print_char
|
||||
|
||||
mov bx, [DAPACK.seg]
|
||||
call print_num
|
||||
|
||||
mov al, ':'
|
||||
call print_char
|
||||
|
||||
mov bx, [DAPACK.buf]
|
||||
call print_num
|
||||
|
||||
call print_line
|
||||
; mov al, '#'
|
||||
; call print_char
|
||||
;
|
||||
; mov bx, [DAPACK.count]
|
||||
; call print_num
|
||||
;
|
||||
; mov al, ' '
|
||||
; call print_char
|
||||
;
|
||||
; mov bx, [DAPACK.seg]
|
||||
; call print_num
|
||||
;
|
||||
; mov al, ':'
|
||||
; call print_char
|
||||
;
|
||||
; mov bx, [DAPACK.buf]
|
||||
; call print_num
|
||||
;
|
||||
; call print_line
|
||||
|
||||
mov dl, [disk]
|
||||
mov si, DAPACK
|
||||
|
|
|
@ -1,6 +1,8 @@
|
|||
trampoline:
|
||||
.ready: dq 0
|
||||
.page_table: dq 0
|
||||
.stack: dq 0
|
||||
.code: dq 0
|
||||
|
||||
times 512 - ($ - trampoline) db 0
|
||||
|
||||
|
@ -126,10 +128,14 @@ long_mode_ap:
|
|||
mov gs, rax
|
||||
mov ss, rax
|
||||
|
||||
mov rax, [trampoline.page_table]
|
||||
mov cr3, rax
|
||||
|
||||
mov rsp, [trampoline.stack]
|
||||
|
||||
mov qword [trampoline.ready], 1
|
||||
.lp:
|
||||
hlt
|
||||
jmp .lp
|
||||
mov rax, [trampoline.code]
|
||||
jmp rax
|
||||
|
||||
gdtr:
|
||||
dw gdt.end + 1 ; size
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue