forked from KolibriOS/kolibrios
kernel: don't use ramdisk if asked.
The blue screen is not aware of this option. git-svn-id: svn://kolibrios.org@8089 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
parent
a2700ea35c
commit
bf38c73d0a
@ -287,13 +287,13 @@ else
|
||||
; \end{diamond}[02.12.2005]
|
||||
|
||||
; if bootloader sets cx = 'HA' and dx = 'RD', then bx contains identifier of source disk
|
||||
; (see comment to BOOT_LO.bx_from_load and loader_doc.txt)
|
||||
mov word [es:BOOT_LO.bx_from_load], 'r1' ; default value: /rd/1
|
||||
; (see comment to BOOT_LO.sys_disk and loader_doc.txt)
|
||||
mov word [es:BOOT_LO.sys_disk], 'r1' ; default value: /rd/1
|
||||
cmp cx, 'HA'
|
||||
jnz no_hd_load
|
||||
cmp dx, 'RD'
|
||||
jnz no_hd_load
|
||||
mov [es:BOOT_LO.bx_from_load], bx
|
||||
mov [es:BOOT_LO.sys_disk], bx
|
||||
no_hd_load:
|
||||
|
||||
; set up stack
|
||||
@ -971,14 +971,14 @@ end if
|
||||
|
||||
mov al, [preboot_device]
|
||||
dec al
|
||||
mov [es:BOOT_LO.dev], al
|
||||
mov [es:BOOT_LO.rd_load_from], al
|
||||
|
||||
; GET MEMORY MAP
|
||||
include '../detect/biosmem.inc'
|
||||
|
||||
; READ DISKETTE TO MEMORY
|
||||
|
||||
cmp byte [es:BOOT_LO.dev], 0
|
||||
cmp byte [es:BOOT_LO.rd_load_from], RD_LOAD_FROM_FLOPPY
|
||||
jne no_sys_on_floppy
|
||||
mov si, diskload
|
||||
call print
|
||||
@ -1305,7 +1305,7 @@ no_sys_on_floppy:
|
||||
out dx, al
|
||||
|
||||
if defined extended_primary_loader
|
||||
cmp [es:BOOT_LO.dev], 1
|
||||
cmp [es:BOOT_LO.rd_load_from], RD_LOAD_FROM_HD
|
||||
jne no_sys_from_primary
|
||||
; load kolibri.img using callback from primary loader
|
||||
and word [movedesc + 24 + 2], 0
|
||||
|
@ -26,9 +26,9 @@ preboot_gprobe db 0 ; probe vesa3 videomodes (1-no, 2-yes)
|
||||
preboot_debug db 0 ; load kernel in debug mode? (1-yes, 2-no)
|
||||
preboot_launcher db 0 ; start launcher after kernel is loaded? (1-yes, 2-no)
|
||||
preboot_dma db 0 ; use DMA for access to HDD (1-always, 2-only for read, 3-never)
|
||||
preboot_device db 0 ; boot device
|
||||
; (1-floppy 2-harddisk 3-kernel restart 4-format ram disk)
|
||||
;!!!! 0 - autodetect !!!!
|
||||
preboot_device db 0 ; device to load ramdisk from
|
||||
; 0-floppy 1-harddisk 2-kernel restart
|
||||
; 3-format ram disk 4-don't use ramdisk
|
||||
preboot_biosdisk db 0 ; use V86 to access disks through BIOS (1-yes, 2-no)
|
||||
if defined extended_primary_loader
|
||||
; timeout in 1/18th of second for config settings screen
|
||||
|
@ -11,7 +11,7 @@ $Revision$
|
||||
read_ramdisk:
|
||||
; READ RAMDISK IMAGE FROM HD (only for IDE0, IDE1, IDE2, IDE3)
|
||||
|
||||
cmp byte [BOOT.dev], 1
|
||||
cmp byte [BOOT.rd_load_from], RD_LOAD_FROM_HD
|
||||
jne no_sys_on_hd.1
|
||||
|
||||
xor ebp, ebp
|
||||
@ -112,7 +112,7 @@ no_sys_on_hd:
|
||||
DEBUGF 1, "K : RD not found\n"
|
||||
.1:
|
||||
; test_to_format_ram_disk (need if not using ram disk)
|
||||
cmp byte [BOOT.dev], 3
|
||||
cmp byte [BOOT.rd_load_from], RD_LOAD_FROM_FORMAT
|
||||
jne not_format_ram_disk
|
||||
; format_ram_disk
|
||||
mov edi, RAMDISK
|
||||
|
@ -232,7 +232,7 @@ main:
|
||||
mov word[esi + BOOT_LO.apm_code_16], 0
|
||||
mov word[esi + BOOT_LO.apm_data_16], 0
|
||||
mov byte[esi + BOOT_LO.bios_hd_cnt], 0
|
||||
mov word[esi + BOOT_LO.bx_from_load], 'r1' ; boot from /rd/1
|
||||
mov word[esi + BOOT_LO.sys_disk], 'r1' ; boot from /rd/1
|
||||
|
||||
|
||||
lgdt [cs:GDTR]
|
||||
|
@ -683,6 +683,12 @@ struct e820entry
|
||||
type dd ?
|
||||
ends
|
||||
|
||||
RD_LOAD_FROM_FLOPPY = 0
|
||||
RD_LOAD_FROM_HD = 1
|
||||
RD_LOAD_FROM_MEMORY = 2
|
||||
RD_LOAD_FROM_FORMAT = 3
|
||||
RD_LOAD_FROM_NONE = 4
|
||||
|
||||
struct boot_data
|
||||
bpp db ? ; bits per pixel
|
||||
pitch dw ? ; scanline length
|
||||
@ -710,13 +716,10 @@ struct boot_data
|
||||
apm_code_32 dw ?
|
||||
apm_code_16 dw ?
|
||||
apm_data_16 dw ?
|
||||
dev db ?
|
||||
rd_load_from db ? ; Device to load ramdisk from, RD_LOAD_FROM_*
|
||||
db ?
|
||||
kernel_restart dw ?
|
||||
bx_from_load dw ?
|
||||
; low byte: a,b,c,d -- hdX, r -- rdX
|
||||
; high byte: symbol 'X' as in the line above, e.g. '1', not 1
|
||||
; see loader_doc.txt for details
|
||||
sys_disk dw ? ; Device to mount on /sys/, see loader_doc.txt for details
|
||||
acpi_rsdp dd ?
|
||||
rb 0x1f
|
||||
bios_hd_cnt db ? ; number of BIOS hard disks
|
||||
|
@ -28,7 +28,7 @@ proc Parser_params
|
||||
locals
|
||||
buff rb 4 ; for test cd
|
||||
endl
|
||||
mov ax, [BOOT.bx_from_load]
|
||||
mov ax, [BOOT.sys_disk]
|
||||
mov ecx, sysdir_path
|
||||
mov [ecx-64], dword 'sys'
|
||||
mov [ecx-2], byte 3
|
||||
|
@ -697,12 +697,11 @@ endg
|
||||
call PIT_init
|
||||
|
||||
; Register ramdisk file system
|
||||
cmp byte [BOOT.dev], 1
|
||||
cmp [BOOT.rd_load_from], RD_LOAD_FROM_HD ; will be loaded later
|
||||
je @f
|
||||
|
||||
mov esi, boot_initramdisk
|
||||
call boot_log
|
||||
call ramdisk_init
|
||||
cmp [BOOT.rd_load_from], RD_LOAD_FROM_NONE
|
||||
je @f
|
||||
call register_ramdisk
|
||||
;--------------------------------------
|
||||
@@:
|
||||
mov esi, boot_initapic
|
||||
@ -794,7 +793,7 @@ include 'detect/dev_fd.inc'
|
||||
include 'detect/init_ata.inc'
|
||||
;-----------------------------------------------------------------------------
|
||||
if 0
|
||||
mov ax, [BOOT.bx_from_load]
|
||||
mov ax, [BOOT.sys_disk]
|
||||
cmp ax, 'r1'; if using not ram disk, then load librares and parameters {SPraid.simba}
|
||||
je no_lib_load
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user