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 |