Accepting request 22593 from system:install:head
Copy from system:install:head/syslinux based on submit request 22593 from user snwint OBS-URL: https://build.opensuse.org/request/show/22593 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/syslinux?expand=0&rev=20
This commit is contained in:
parent
b4c7b00d54
commit
2c6dfb9773
@ -252,10 +252,24 @@ index 8bfc8b8..f458fc7 100644
|
|||||||
call writestr
|
call writestr
|
||||||
mov si,InitRDCName
|
mov si,InitRDCName
|
||||||
diff --git a/core/ui.inc b/core/ui.inc
|
diff --git a/core/ui.inc b/core/ui.inc
|
||||||
index 1b40717..be4f385 100644
|
index 1b40717..9413f16 100644
|
||||||
--- a/core/ui.inc
|
--- a/core/ui.inc
|
||||||
+++ b/core/ui.inc
|
+++ b/core/ui.inc
|
||||||
@@ -468,6 +468,8 @@ bad_kernel:
|
@@ -402,8 +402,12 @@ vk_check:
|
||||||
|
%if HAS_LOCALBOOT
|
||||||
|
; Is this a "localboot" pseudo-kernel?
|
||||||
|
cmp al,VK_LOCALBOOT ; al == KernelType
|
||||||
|
+ jne .no_local_boot
|
||||||
|
+ mov al,7
|
||||||
|
+ call [comboot_hook]
|
||||||
|
mov ax,[VKernelBuf+vk_rname] ; Possible localboot type
|
||||||
|
- je local_boot
|
||||||
|
+ jmp local_boot
|
||||||
|
+.no_local_boot:
|
||||||
|
%endif
|
||||||
|
jmp get_kernel
|
||||||
|
|
||||||
|
@@ -468,6 +472,8 @@ bad_kernel:
|
||||||
.really:
|
.really:
|
||||||
mov si,KernelName
|
mov si,KernelName
|
||||||
mov di,KernelCName
|
mov di,KernelCName
|
||||||
@ -264,7 +278,7 @@ index 1b40717..be4f385 100644
|
|||||||
push di
|
push di
|
||||||
call unmangle_name ; Get human form
|
call unmangle_name ; Get human form
|
||||||
mov si,err_notfound ; Complain about missing kernel
|
mov si,err_notfound ; Complain about missing kernel
|
||||||
@@ -510,7 +512,10 @@ on_error:
|
@@ -510,7 +516,10 @@ on_error:
|
||||||
;
|
;
|
||||||
; kernel_corrupt: Called if the kernel file does not seem healthy
|
; kernel_corrupt: Called if the kernel file does not seem healthy
|
||||||
;
|
;
|
||||||
@ -351,10 +365,10 @@ index f458fc7..f6ed644 100644
|
|||||||
+ section .data
|
+ section .data
|
||||||
+QuietBoot db 0 ; Set if a quiet boot is requested
|
+QuietBoot db 0 ; Set if a quiet boot is requested
|
||||||
diff --git a/core/ui.inc b/core/ui.inc
|
diff --git a/core/ui.inc b/core/ui.inc
|
||||||
index be4f385..2bc56a1 100644
|
index 9413f16..353d59a 100644
|
||||||
--- a/core/ui.inc
|
--- a/core/ui.inc
|
||||||
+++ b/core/ui.inc
|
+++ b/core/ui.inc
|
||||||
@@ -596,7 +596,7 @@ kernel_good:
|
@@ -600,7 +600,7 @@ kernel_good:
|
||||||
;
|
;
|
||||||
xor ax,ax
|
xor ax,ax
|
||||||
mov [InitRDPtr],ax
|
mov [InitRDPtr],ax
|
||||||
@ -406,7 +420,7 @@ index f6ed644..286c9c8 100644
|
|||||||
+ alignz 4
|
+ alignz 4
|
||||||
+KernelStart dd 100000h
|
+KernelStart dd 100000h
|
||||||
diff --git a/core/comboot.inc b/core/comboot.inc
|
diff --git a/core/comboot.inc b/core/comboot.inc
|
||||||
index 1a1dbfe..1a147c9 100644
|
index 1a1dbfe..1923308 100644
|
||||||
--- a/core/comboot.inc
|
--- a/core/comboot.inc
|
||||||
+++ b/core/comboot.inc
|
+++ b/core/comboot.inc
|
||||||
@@ -962,6 +962,45 @@ comapi_shufraw:
|
@@ -962,6 +962,45 @@ comapi_shufraw:
|
||||||
@ -455,7 +469,7 @@ index 1a1dbfe..1a147c9 100644
|
|||||||
section .data
|
section .data
|
||||||
|
|
||||||
%macro int21 2
|
%macro int21 2
|
||||||
@@ -969,6 +1008,108 @@ comapi_shufraw:
|
@@ -969,6 +1008,109 @@ comapi_shufraw:
|
||||||
dw %2
|
dw %2
|
||||||
%endmacro
|
%endmacro
|
||||||
|
|
||||||
@ -529,6 +543,7 @@ index 1a1dbfe..1a147c9 100644
|
|||||||
+; 4: progress start
|
+; 4: progress start
|
||||||
+; 5: progress increment
|
+; 5: progress increment
|
||||||
+; 6: progress end: kernel loaded, stop gfxboot
|
+; 6: progress end: kernel loaded, stop gfxboot
|
||||||
|
+; 7: stop gfxboot
|
||||||
+;
|
+;
|
||||||
+comboot_hook_entry:
|
+comboot_hook_entry:
|
||||||
+ pushad
|
+ pushad
|
||||||
@ -564,7 +579,7 @@ index 1a1dbfe..1a147c9 100644
|
|||||||
int21_table:
|
int21_table:
|
||||||
int21 00h, comboot_return
|
int21 00h, comboot_return
|
||||||
int21 01h, comboot_getkey
|
int21 01h, comboot_getkey
|
||||||
@@ -1021,8 +1162,16 @@ int22_table:
|
@@ -1021,8 +1163,16 @@ int22_table:
|
||||||
dw comapi_closedir ; 0022 close directory
|
dw comapi_closedir ; 0022 close directory
|
||||||
dw comapi_shufsize ; 0023 query shuffler size
|
dw comapi_shufsize ; 0023 query shuffler size
|
||||||
dw comapi_shufraw ; 0024 cleanup, shuffle and boot raw
|
dw comapi_shufraw ; 0024 cleanup, shuffle and boot raw
|
||||||
@ -581,7 +596,7 @@ index 1a1dbfe..1a147c9 100644
|
|||||||
APIKeyWait db 0
|
APIKeyWait db 0
|
||||||
APIKeyFlag db 0
|
APIKeyFlag db 0
|
||||||
|
|
||||||
@@ -1041,8 +1190,10 @@ feature_flags_len equ ($-feature_flags)
|
@@ -1041,8 +1191,10 @@ feature_flags_len equ ($-feature_flags)
|
||||||
err_notdos db ': attempted DOS system call INT ',0
|
err_notdos db ': attempted DOS system call INT ',0
|
||||||
err_comlarge db 'COMBOOT image too large.', CR, LF, 0
|
err_comlarge db 'COMBOOT image too large.', CR, LF, 0
|
||||||
|
|
||||||
@ -594,7 +609,7 @@ index 1a1dbfe..1a147c9 100644
|
|||||||
ConfigName resb FILENAME_MAX
|
ConfigName resb FILENAME_MAX
|
||||||
CurrentDirName resb FILENAME_MAX
|
CurrentDirName resb FILENAME_MAX
|
||||||
diff --git a/core/comboot.inc b/core/comboot.inc
|
diff --git a/core/comboot.inc b/core/comboot.inc
|
||||||
index 1a147c9..e5dc115 100644
|
index 1923308..f39bfb1 100644
|
||||||
--- a/core/comboot.inc
|
--- a/core/comboot.inc
|
||||||
+++ b/core/comboot.inc
|
+++ b/core/comboot.inc
|
||||||
@@ -1043,12 +1043,14 @@ comapi_run2:
|
@@ -1043,12 +1043,14 @@ comapi_run2:
|
||||||
@ -612,7 +627,7 @@ index 1a147c9..e5dc115 100644
|
|||||||
clc
|
clc
|
||||||
ret
|
ret
|
||||||
|
|
||||||
@@ -1171,6 +1173,7 @@ int22_count equ ($-int22_table)/2
|
@@ -1172,6 +1174,7 @@ int22_count equ ($-int22_table)/2
|
||||||
comboot_sp_save dw 0
|
comboot_sp_save dw 0
|
||||||
comboot_hook dw comboot_hook_nop
|
comboot_hook dw comboot_hook_nop
|
||||||
comboot_far dd 0
|
comboot_far dd 0
|
||||||
@ -621,7 +636,7 @@ index 1a147c9..e5dc115 100644
|
|||||||
APIKeyWait db 0
|
APIKeyWait db 0
|
||||||
APIKeyFlag db 0
|
APIKeyFlag db 0
|
||||||
diff --git a/core/ui.inc b/core/ui.inc
|
diff --git a/core/ui.inc b/core/ui.inc
|
||||||
index 2bc56a1..59b5724 100644
|
index 353d59a..e37f2a7 100644
|
||||||
--- a/core/ui.inc
|
--- a/core/ui.inc
|
||||||
+++ b/core/ui.inc
|
+++ b/core/ui.inc
|
||||||
@@ -379,9 +379,13 @@ vk_check:
|
@@ -379,9 +379,13 @@ vk_check:
|
||||||
@ -639,10 +654,10 @@ index 2bc56a1..59b5724 100644
|
|||||||
pop es
|
pop es
|
||||||
mov di,KernelName
|
mov di,KernelName
|
||||||
diff --git a/core/comboot.inc b/core/comboot.inc
|
diff --git a/core/comboot.inc b/core/comboot.inc
|
||||||
index e5dc115..60506ce 100644
|
index f39bfb1..0874526 100644
|
||||||
--- a/core/comboot.inc
|
--- a/core/comboot.inc
|
||||||
+++ b/core/comboot.inc
|
+++ b/core/comboot.inc
|
||||||
@@ -1087,6 +1087,7 @@ comboot_hook_entry:
|
@@ -1088,6 +1088,7 @@ comboot_hook_entry:
|
||||||
push fs
|
push fs
|
||||||
push es
|
push es
|
||||||
push ds
|
push ds
|
||||||
@ -651,10 +666,10 @@ index e5dc115..60506ce 100644
|
|||||||
pop ds
|
pop ds
|
||||||
pop es
|
pop es
|
||||||
diff --git a/core/ui.inc b/core/ui.inc
|
diff --git a/core/ui.inc b/core/ui.inc
|
||||||
index 59b5724..d56c148 100644
|
index e37f2a7..6137dc9 100644
|
||||||
--- a/core/ui.inc
|
--- a/core/ui.inc
|
||||||
+++ b/core/ui.inc
|
+++ b/core/ui.inc
|
||||||
@@ -612,7 +612,11 @@ kernel_good:
|
@@ -616,7 +616,11 @@ kernel_good:
|
||||||
mov [KernelCNameLen],di
|
mov [KernelCNameLen],di
|
||||||
|
|
||||||
; Default memory limit, can be overridden by image loaders
|
; Default memory limit, can be overridden by image loaders
|
||||||
@ -666,7 +681,7 @@ index 59b5724..d56c148 100644
|
|||||||
mov [MyHighMemSize],eax
|
mov [MyHighMemSize],eax
|
||||||
|
|
||||||
popad
|
popad
|
||||||
@@ -633,6 +637,7 @@ kernel_good:
|
@@ -637,6 +641,7 @@ kernel_good:
|
||||||
; At this point, EAX contains the size of the kernel, SI contains
|
; At this point, EAX contains the size of the kernel, SI contains
|
||||||
; the file handle/cluster pointer, and ECX contains the extension (if any.)
|
; the file handle/cluster pointer, and ECX contains the extension (if any.)
|
||||||
;
|
;
|
||||||
@ -773,10 +788,10 @@ index 0000000..a98f9aa
|
|||||||
+}
|
+}
|
||||||
diff --git a/modules/gfxboot.c b/modules/gfxboot.c
|
diff --git a/modules/gfxboot.c b/modules/gfxboot.c
|
||||||
new file mode 100644
|
new file mode 100644
|
||||||
index 0000000..b4a794c
|
index 0000000..01c6c84
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/modules/gfxboot.c
|
+++ b/modules/gfxboot.c
|
||||||
@@ -0,0 +1,1036 @@
|
@@ -0,0 +1,1039 @@
|
||||||
+/*
|
+/*
|
||||||
+ *
|
+ *
|
||||||
+ * gfxboot.c
|
+ * gfxboot.c
|
||||||
@ -1683,7 +1698,7 @@ index 0000000..b4a794c
|
|||||||
+
|
+
|
||||||
+ r.edi = comboot + (uint32_t) cmdline;
|
+ r.edi = comboot + (uint32_t) cmdline;
|
||||||
+ r.ecx = sizeof cmdline;
|
+ r.ecx = sizeof cmdline;
|
||||||
+ r.eax = timeout;
|
+ r.eax = timeout * 182 / 100;
|
||||||
+ timeout = 0; // use timeout only first time
|
+ timeout = 0; // use timeout only first time
|
||||||
+ farcall(gfx.jmp_table[GFX_BC_INPUT], &r);
|
+ farcall(gfx.jmp_table[GFX_BC_INPUT], &r);
|
||||||
+ if((r.eflags & X86_CF)) r.eax = 1;
|
+ if((r.eflags & X86_CF)) r.eax = 1;
|
||||||
@ -1780,7 +1795,6 @@ index 0000000..b4a794c
|
|||||||
+
|
+
|
||||||
+ case 4: // progress start
|
+ case 4: // progress start
|
||||||
+ r->eax = r->ecx >> gfx_config.sector_shift; // kernel size in sectors
|
+ r->eax = r->ecx >> gfx_config.sector_shift; // kernel size in sectors
|
||||||
+ r->eax = 0;
|
|
||||||
+ r->esi = comboot + (uint32_t) current_label;
|
+ r->esi = comboot + (uint32_t) current_label;
|
||||||
+ farcall(gfx.jmp_table[GFX_BC_PROGRESS_INIT], r);
|
+ farcall(gfx.jmp_table[GFX_BC_PROGRESS_INIT], r);
|
||||||
+ break;
|
+ break;
|
||||||
@ -1795,6 +1809,10 @@ index 0000000..b4a794c
|
|||||||
+ farcall(gfx.jmp_table[GFX_BC_PROGRESS_DONE], r);
|
+ farcall(gfx.jmp_table[GFX_BC_PROGRESS_DONE], r);
|
||||||
+ gfx_done();
|
+ gfx_done();
|
||||||
+ break;
|
+ break;
|
||||||
|
+
|
||||||
|
+ case 7: // stop gfxboot
|
||||||
|
+ gfx_done();
|
||||||
|
+ break;
|
||||||
+ }
|
+ }
|
||||||
+}
|
+}
|
||||||
+
|
+
|
||||||
|
@ -1,3 +1,14 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Mon Oct 19 16:45:35 CEST 2009 - snwint@suse.de
|
||||||
|
|
||||||
|
- get kernel size right
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Mon Oct 19 13:32:29 CEST 2009 - snwint@suse.de
|
||||||
|
|
||||||
|
- set correct timeout value
|
||||||
|
- localboot should return to text mode
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Mon Oct 5 13:44:54 CEST 2009 - snwint@suse.de
|
Mon Oct 5 13:44:54 CEST 2009 - snwint@suse.de
|
||||||
|
|
||||||
|
@ -27,7 +27,7 @@ Requires: mtools
|
|||||||
AutoReqProv: on
|
AutoReqProv: on
|
||||||
Summary: Boot Loader for Linux
|
Summary: Boot Loader for Linux
|
||||||
Version: 3.82
|
Version: 3.82
|
||||||
Release: 7
|
Release: 8
|
||||||
Source: %{name}-%{version}.tar.bz2
|
Source: %{name}-%{version}.tar.bz2
|
||||||
Source1: isolinux-config
|
Source1: isolinux-config
|
||||||
Source2: README.gfxboot
|
Source2: README.gfxboot
|
||||||
|
Loading…
Reference in New Issue
Block a user