bootloader: Pass the boot disk id to the kernel

This commit is contained in:
Ry 2023-03-04 21:29:12 -08:00
parent b51e17a4cf
commit 63fe33cdc9

View File

@ -4,8 +4,11 @@
const LOAD_ADDRESS: 0x03000000 const LOAD_ADDRESS: 0x03000000
; fox32rom passed the boot disk id in r0, save it
mov.8 [boot_disk_id], r0
; open kernel.fxf ; open kernel.fxf
mov r1, r0 ; fox32rom passed the boot disk id in r0 mov r1, r0
mov r0, kernel_file_name mov r0, kernel_file_name
mov r2, kernel_file_struct mov r2, kernel_file_struct
call [0xF0045008] ; ryfs_open call [0xF0045008] ; ryfs_open
@ -20,7 +23,9 @@ const LOAD_ADDRESS: 0x03000000
; relocate it and off we go!! ; relocate it and off we go!!
mov r0, LOAD_ADDRESS mov r0, LOAD_ADDRESS
call fxf_reloc call fxf_reloc
jmp r0 mov r1, r0
movz.8 r0, [boot_disk_id]
jmp r1
error: error:
mov r0, error_str mov r0, error_str
@ -34,6 +39,7 @@ error:
kernel_file_name: data.strz "kernel fxf" kernel_file_name: data.strz "kernel fxf"
kernel_file_struct: data.32 0 data.32 0 kernel_file_struct: data.32 0 data.32 0
error_str: data.strz "failed to open kernel file" error_str: data.strz "failed to open kernel file"
boot_disk_id: data.8 0
#include "reloc.asm" #include "reloc.asm"