Subversion Repositories Kolibri OS

Rev

Rev 8220 | Rev 8656 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 8220 Rev 8284
Line 23... Line 23...
23
LIP_BUFFER_SIZE = 0x100
23
LIP_BUFFER_SIZE = 0x100
24
FILE_BUFFER_SIZE = 0x1000
24
FILE_BUFFER_SIZE = 0x1000
Line 25... Line 25...
25
 
25
 
26
KERNEL_BASE  =  0x10000
26
KERNEL_BASE  =  0x10000
-
 
27
RAMDISK_BASE = 0x100000
Line 27... Line 28...
27
RAMDISK_BASE = 0x100000
28
MAX_FILE_SIZE = 0x10000000
28
 
29
 
29
CODE_32_SELECTOR = 8
30
CODE_32_SELECTOR = 8
Line 398... Line 399...
398
.skip_mode:
399
.skip_mode:
399
        inc     [cfg_opt_value_vmode]
400
        inc     [cfg_opt_value_vmode]
400
        movzx   eax, [cfg_opt_value_vmode]
401
        movzx   eax, [cfg_opt_value_vmode]
401
        mov     rcx, [gop_interface]
402
        mov     rcx, [gop_interface]
402
        mov     rdx, [rcx+EFI_GRAPHICS_OUTPUT_PROTOCOL.Mode]
403
        mov     rdx, [rcx+EFI_GRAPHICS_OUTPUT_PROTOCOL.Mode]
403
        cmp     eax, 8;[rdx+EFI_GRAPHICS_OUTPUT_PROTOCOL_MODE.MaxMode]
404
        cmp     eax, [rdx+EFI_GRAPHICS_OUTPUT_PROTOCOL_MODE.MaxMode]
404
        jnz     .next_mode
405
        jnz     .next_mode
405
        mov     [cfg_opt_used_resolution], 0
406
        mov     [cfg_opt_used_resolution], 0
406
        mov     [cfg_opt_value_ask_params], 1
407
        mov     [cfg_opt_value_ask_params], 1
Line 407... Line 408...
407
 
408
 
Line 524... Line 525...
524
        ; read kernel file
525
        ; read kernel file
525
        mov     rbx, [efi_table]
526
        mov     rbx, [efi_table]
526
        mov     rbx, [rbx+EFI_SYSTEM_TABLE.ConOut]
527
        mov     rbx, [rbx+EFI_SYSTEM_TABLE.ConOut]
527
        eficall rbx, EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL.OutputString, rbx, \
528
        eficall rbx, EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL.OutputString, rbx, \
528
                msg_load_kernel
529
                msg_load_kernel
529
        push    1
530
        push    1       ; fatal
530
        push    -1
531
        push    MAX_FILE_SIZE
531
        push    KERNEL_BASE
532
        push    KERNEL_BASE
532
;        push    kernel_name
533
;        push    kernel_name
533
        mov     rax, kernel_name
534
        mov     rax, kernel_name
534
        push    rax
535
        push    rax
535
        push    [esp_root]
536
        push    [esp_root]
Line 538... Line 539...
538
        ; read ramdisk image
539
        ; read ramdisk image
539
        mov     rbx, [efi_table]
540
        mov     rbx, [efi_table]
540
        mov     rbx, [rbx+EFI_SYSTEM_TABLE.ConOut]
541
        mov     rbx, [rbx+EFI_SYSTEM_TABLE.ConOut]
541
        eficall rbx, EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL.OutputString, rbx, \
542
        eficall rbx, EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL.OutputString, rbx, \
542
                msg_load_ramdisk
543
                msg_load_ramdisk
543
        push    1
544
        push    1       ; fatal
544
        push    -1
545
        push    MAX_FILE_SIZE
545
        push    RAMDISK_BASE
546
        push    RAMDISK_BASE
546
;        push    ramdisk_name
547
;        push    ramdisk_name
547
        mov     rax, ramdisk_name
548
        mov     rax, ramdisk_name
548
        push    rax
549
        push    rax
549
        push    [esp_root]
550
        push    [esp_root]
Line 1083... Line 1084...
1083
        mov     rdi, msg
1084
        mov     rdi, msg
1084
        rep stosw
1085
        rep stosw
1085
        pop     rdi rsi rdx rcx rbx rax
1086
        pop     rdi rsi rdx rcx rbx rax
1086
        ret
1087
        ret
Line 1087... Line 1088...
1087
 
1088
 
1088
section '.data' data readable writeable
1089
section '.rodata' data readable
1089
efi_handle  dq 0
-
 
1090
efi_table   dq 0
-
 
1091
uefi_rsptmp dq 0
-
 
1092
 
1090
align 16
1093
GDTR:
1091
GDTR:
1094
        dw 4*8-1
1092
        dw 4*8-1
-
 
1093
        dq GDT
1095
        dq GDT
1094
align 16
1096
GDT:
1095
GDT:
1097
        dw 0, 0, 0, 0
1096
        dw 0, 0, 0, 0
1098
        dw 0FFFFh,0,9A00h,0CFh          ; 32-bit code
1097
        dw 0FFFFh,0,9A00h,0CFh          ; 32-bit code
1099
        dw 0FFFFh,0,9200h,0CFh          ; flat data
1098
        dw 0FFFFh,0,9200h,0CFh          ; flat data
Line 1100... Line -...
1100
        dw 0FFFFh,0,9A00h,0AFh          ; 64-bit code
-
 
1101
 
-
 
1102
 
-
 
1103
fb_base         dq 0
1099
        dw 0FFFFh,0,9A00h,0AFh          ; 64-bit code
1104
 
-
 
1105
gopuuid         db EFI_GRAPHICS_OUTPUT_PROTOCOL_GUID
-
 
1106
gop_buffer_size dq GOP_BUFFER_SIZE
-
 
1107
gop_handle      dq 0
-
 
1108
gop_interface   dq 0
-
 
1109
gop_info_size   dq 0
-
 
1110
gop_info        dq 0
1100
 
1111
 
-
 
1112
lipuuid         db EFI_LOADED_IMAGE_PROTOCOL_GUID
-
 
1113
lip_buffer_size dq LIP_BUFFER_SIZE
-
 
1114
lip_handle      dq 0
-
 
1115
lip_interface   dq 0
1101
gopuuid         db EFI_GRAPHICS_OUTPUT_PROTOCOL_GUID
1116
 
-
 
Line 1117... Line -...
1117
sfspguid        db EFI_SIMPLE_FILE_SYSTEM_PROTOCOL_GUID
-
 
1118
sfsp_interface  dq 0
-
 
1119
 
1102
lipuuid         db EFI_LOADED_IMAGE_PROTOCOL_GUID
1120
esp_root        dq ?
1103
sfspguid        db EFI_SIMPLE_FILE_SYSTEM_PROTOCOL_GUID
1121
file_handle     dq ?
1104
 
1122
file_name       du '\EFI\KOLIBRIOS\KOLIBRI.INI',0
1105
file_name       du '\EFI\KOLIBRIOS\KOLIBRI.INI',0
1123
kernel_name     du '\EFI\KOLIBRIOS\KOLIBRI.KRN',0
-
 
Line 1124... Line 1106...
1124
ramdisk_name    du '\EFI\KOLIBRIOS\KOLIBRI.IMG',0
1106
kernel_name     du '\EFI\KOLIBRIOS\KOLIBRI.KRN',0
1125
devicesdat_name du '\EFI\KOLIBRIOS\DEVICES.DAT',0
1107
ramdisk_name    du '\EFI\KOLIBRIOS\KOLIBRI.IMG',0
1126
file_buffer_size dq FILE_BUFFER_SIZE-1  ; leave the last byte for \0
1108
devicesdat_name du '\EFI\KOLIBRIOS\DEVICES.DAT',0
1127
 
1109
 
Line 1162... Line 1144...
1162
cfg_opt_cmnt_ask_params     db "# Interrupt booting to ask the user for boot", \
1144
cfg_opt_cmnt_ask_params     db "# Interrupt booting to ask the user for boot", \
1163
                               " params",0
1145
                               " params",0
1164
cfg_opt_cmnt_imgfrom        db "# Where to load ramdisk image from",0
1146
cfg_opt_cmnt_imgfrom        db "# Where to load ramdisk image from",0
1165
cfg_opt_cmnt_syspath        db "# Path to /sys directory",0
1147
cfg_opt_cmnt_syspath        db "# Path to /sys directory",0
Line 1166... Line -...
1166
 
-
 
1167
cfg_opt_used_resolution     db 0
-
 
1168
cfg_opt_used_acpi           db 0
-
 
1169
cfg_opt_used_debug_print    db 0
-
 
1170
cfg_opt_used_launcher_start db 0
-
 
1171
cfg_opt_used_mtrr           db 0
-
 
1172
cfg_opt_used_ask_params     db 0
-
 
1173
cfg_opt_used_imgfrom        db 0
-
 
1174
cfg_opt_used_syspath        db 0
-
 
1175
 
-
 
1176
cfg_opt_value_vmode          db 0
-
 
1177
cfg_opt_value_acpi           db 0
-
 
1178
cfg_opt_value_debug_print    db 0
-
 
1179
cfg_opt_value_launcher_start db 1
-
 
1180
cfg_opt_value_mtrr           db 0
-
 
1181
cfg_opt_value_ask_params     db 0
-
 
1182
cfg_opt_value_imgfrom        db RD_LOAD_FROM_MEMORY
-
 
1183
cfg_opt_value_syspath        db "/RD/1",0
-
 
1184
                             rb 20
-
 
1185
 
-
 
1186
memory_map_key  dq 0
-
 
1187
descriptor_size dq 0
-
 
1188
descriptor_ver  dq 0
-
 
1189
memory_map_size dq MEMORY_MAP_SIZE
-
 
1190
 
1148
 
1191
msg_u4k_loaded            du "uefi64kos loaded",13,10,0
1149
msg_u4k_loaded            du "uefi64kos loaded",13,10,0
1192
msg_read_options          du "Read options from config file",13,10,0
1150
msg_read_options          du "Read options from config file",13,10,0
1193
msg_file_size             du "File size:",13,10,0
1151
msg_file_size             du "File size:",13,10,0
1194
msg_parsing_config        du "Parsing config file",13,10,0
1152
msg_parsing_config        du "Parsing config file",13,10,0
Line 1218... Line 1176...
1218
msg_error_out_of_handlers du "Out of handlers",13,10,0
1176
msg_error_out_of_handlers du "Out of handlers",13,10,0
1219
msg_error_open_file       du "Error: can't open file ",0
1177
msg_error_open_file       du "Error: can't open file ",0
1220
msg_error_exit_boot_services du "Error: Exit boot services",13,10,0
1178
msg_error_exit_boot_services du "Error: Exit boot services",13,10,0
1221
msg                       du 79 dup " ",13,10,0
1179
msg                       du 79 dup " ",13,10,0
Line -... Line 1180...
-
 
1180
 
-
 
1181
 
-
 
1182
section '.data' data readable writeable
-
 
1183
efi_handle  dq 0
-
 
1184
efi_table   dq 0
-
 
1185
uefi_rsptmp dq 0
-
 
1186
 
-
 
1187
fb_base         dq 0
-
 
1188
 
-
 
1189
gop_buffer_size dq GOP_BUFFER_SIZE
-
 
1190
gop_handle      dq 0
-
 
1191
gop_interface   dq 0
-
 
1192
gop_info_size   dq 0
-
 
1193
gop_info        dq 0
-
 
1194
 
-
 
1195
lip_buffer_size dq LIP_BUFFER_SIZE
-
 
1196
lip_handle      dq 0
-
 
1197
lip_interface   dq 0
-
 
1198
 
-
 
1199
sfsp_interface  dq 0
-
 
1200
 
-
 
1201
esp_root        dq ?
-
 
1202
file_handle     dq ?
-
 
1203
file_buffer_size dq FILE_BUFFER_SIZE-1  ; leave the last byte for \0
-
 
1204
 
-
 
1205
cfg_opt_used_resolution     db 0
-
 
1206
cfg_opt_used_acpi           db 0
-
 
1207
cfg_opt_used_debug_print    db 0
-
 
1208
cfg_opt_used_launcher_start db 0
-
 
1209
cfg_opt_used_mtrr           db 0
-
 
1210
cfg_opt_used_ask_params     db 0
-
 
1211
cfg_opt_used_imgfrom        db 0
-
 
1212
cfg_opt_used_syspath        db 0
-
 
1213
 
-
 
1214
cfg_opt_value_vmode          db 0
-
 
1215
cfg_opt_value_acpi           db 0
-
 
1216
cfg_opt_value_debug_print    db 0
-
 
1217
cfg_opt_value_launcher_start db 1
-
 
1218
cfg_opt_value_mtrr           db 0
-
 
1219
cfg_opt_value_ask_params     db 0
-
 
1220
cfg_opt_value_imgfrom        db RD_LOAD_FROM_MEMORY
-
 
1221
cfg_opt_value_syspath        db "/RD/1",0
-
 
1222
                             rb 20
-
 
1223
 
-
 
1224
memory_map_key  dq 0
-
 
1225
descriptor_size dq 0
-
 
1226
descriptor_ver  dq 0
-
 
1227
memory_map_size dq MEMORY_MAP_SIZE
1222
 
1228
 
1223
efi_fs_info_id db EFI_FILE_SYSTEM_INFO_ID
1229
efi_fs_info_id db EFI_FILE_SYSTEM_INFO_ID
1224
efi_fs_info_size dq sizeof.EFI_FILE_SYSTEM_INFO
1230
efi_fs_info_size dq sizeof.EFI_FILE_SYSTEM_INFO
Line 1225... Line 1231...
1225
efi_fs_info EFI_FILE_SYSTEM_INFO
1231
efi_fs_info EFI_FILE_SYSTEM_INFO