bios_ia32: Fix hdd stage1 boot
* haiku_loader is the hpkg name in system/packages and not the loader name. * bios_ia32 stage1 assumes the bios_ia32 loader is the first file in haiku_loader.hpkg. This isn't ideal.. but space in stage1 is *limited*
This commit is contained in:
@@ -5,10 +5,13 @@
|
|||||||
; partitions. The offset of the partition in 512 byte blocks must be written at
|
; partitions. The offset of the partition in 512 byte blocks must be written at
|
||||||
; position PARTITION_OFFSET_OFFSET (32 bit little endian; makebootable does
|
; position PARTITION_OFFSET_OFFSET (32 bit little endian; makebootable does
|
||||||
; that) or otherwise the code can't find the partition.
|
; that) or otherwise the code can't find the partition.
|
||||||
; The partition must be BFS formatted. The file "system/haiku_loader"
|
; The partition must be BFS formatted. The haiku_loader hpkg file must be located
|
||||||
; (the stage 2 boot loader) loaded into memory at 0x1000:0x0000 (linear address
|
; at "system/packages/haiku_loader*" and the haiku_loader.bios_ia32 must be the
|
||||||
; 0x10000) and entered at 0x:1000:0x0200 with parameters eax - partition offset
|
; first file in the haiku_loader package.
|
||||||
; in 512 byte blocks and dl - BIOS ID of the boot drive.
|
;
|
||||||
|
; The bios_ia32 stage 2 boot loader is loaded into memory at 0x1000:0x0000
|
||||||
|
; (linear address 0x10000) and entered at 0x:1000:0x0200 with parameters
|
||||||
|
; eax - partition offset in 512 byte blocks and dl - BIOS ID of the boot drive.
|
||||||
;
|
;
|
||||||
; Compile via:
|
; Compile via:
|
||||||
; nasm -f bin -O5 -o stage1.bin stage1.S
|
; nasm -f bin -O5 -o stage1.bin stage1.S
|
||||||
@@ -639,19 +642,15 @@ kNotADirectoryString db "not a directory", 0
|
|||||||
kBadInodeMagicString db "bad inode", 0
|
kBadInodeMagicString db "bad inode", 0
|
||||||
kNoZbeosString db "no loader", 0
|
kNoZbeosString db "no loader", 0
|
||||||
%else
|
%else
|
||||||
kErrorString db "Failed to load OS. Press any key to reboot..."
|
kErrorString db "bios_ia32 stage1: Failed to load OS. Press any key to reboot..."
|
||||||
db 0
|
db 0
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
; the path to the boot loader
|
|
||||||
%defstr platformName KERNEL_PLATFORM
|
|
||||||
%defstr loaderName
|
|
||||||
%strcat loaderName "haiku_loader",".",platformName
|
|
||||||
kPathComponents:
|
kPathComponents:
|
||||||
pathComponent "system"
|
pathComponent "system"
|
||||||
pathComponent "packages"
|
pathComponent "packages"
|
||||||
kLastPathComponent:
|
kLastPathComponent:
|
||||||
pathComponent loaderName
|
pathComponent "haiku_loader"
|
||||||
db 0
|
db 0
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user