diff --git a/syslinux-3.63.diff b/syslinux-3.63.diff index b08956e..b232911 100644 --- a/syslinux-3.63.diff +++ b/syslinux-3.63.diff @@ -2352,7 +2352,12 @@ gfx_init_40: --- gfxboot.inc +++ gfxboot.inc -@@ -337,7 +337,7 @@ +@@ -333,11 +333,12 @@ + ; 0: SHIFT pressed + ; 1: skip gfxboot + ; 2: skip monitor detection ++ ; 3: leave a20 untouched + gfx_sysconfig_size db gfx_sysconfig_end-gfx_sysconfig ; 4: size of sysconfig data gfx_boot_drive db 0 ; 5: BIOS boot drive gfx_callback dw gfx_cb ; 6: offset to callback handler gfx_bootloader_seg dw 0 ; 8: code/data segment used by bootloader; must follow gfx_callback @@ -2361,7 +2366,7 @@ gfx_user_info_0 dd 0 ; 12: data for info box gfx_user_info_1 dd 0 ; 16: data for info box gfx_bios_mem_size dd 0 ; 20: BIOS memory size (in bytes) -@@ -366,6 +366,8 @@ +@@ -366,6 +367,8 @@ ; gfx_get_sysconfig: push ax @@ -2370,3 +2375,54 @@ mov al,[DriveNumber] mov [gfx_boot_drive],al +@@ -407,6 +410,13 @@ + test byte [gfx_failsafe],2 + jnz gfx_init_80 + ++ test byte [gfx_failsafe],8 ++ jnz gfx_init_20 ++ pushad ++ call enable_a20 ++ popad ++gfx_init_20: ++ + call highmemsize + + ; setup extended memory areas +@@ -417,10 +427,16 @@ + shr eax,20 + cmp ax,16 + jb gfx_init_40 ; at least 16MB +- mov word [gfx_xmem_0], 81h ; 1MB at 8MB ++ ++ mov word [gfx_xmem_0], 88h ; 8MB at 8MB (a20 enabled) ++ ++ test byte [gfx_failsafe],8 ++ jz gfx_init_30 ++ mov word [gfx_xmem_0], 81h ; 1MB at 8MB (a20 disabled) + mov word [gfx_xmem_1],0a1h ; 1MB at 10MB + mov word [gfx_xmem_2],0c1h ; 1MB at 12MB + mov word [gfx_xmem_3],0e1h ; 1MB at 14MB ++gfx_init_30: + + mov dword [gfx_save_area1],7f0000h ; 8MB-64k + gfx_init_40: +@@ -1103,6 +1119,10 @@ + test byte [gfx_failsafe],2 + jnz ask_user_90 + ++ mov dx,8 ++ mov si,failsafe_msg_3 ++ call ask_question ++ + mov dx,4 + mov si,failsafe_msg_2 + call ask_question +@@ -1156,6 +1176,7 @@ + failsafe_msg_0 db 13, 10, 10, 10, 0 + failsafe_msg_1 db 'Load boot graphics', 0 + failsafe_msg_2 db 'Detect display size', 0 ++failsafe_msg_3 db 'Enable A20', 0 + + failsafe_key db 0, 13, 10, 0 + diff --git a/syslinux.changes b/syslinux.changes index 51f758e..e7f5782 100644 --- a/syslinux.changes +++ b/syslinux.changes @@ -1,3 +1,8 @@ +------------------------------------------------------------------- +Tue Nov 4 16:57:17 CET 2008 - snwint@suse.de + +- gfxboot: increase usable mem size to 8MB + ------------------------------------------------------------------- Fri Oct 17 08:52:44 CEST 2008 - olh@suse.de diff --git a/syslinux.spec b/syslinux.spec index 839ac78..fbc5f8f 100644 --- a/syslinux.spec +++ b/syslinux.spec @@ -30,7 +30,7 @@ Requires: mtools AutoReqProv: on Summary: Boot Loader for Linux Version: 3.63 -Release: 43 +Release: 44 Source: %{name}-%{version}.tar.bz2 Source1: isolinux-config Patch: %{name}-%{version}.diff @@ -76,6 +76,8 @@ rm -rf $RPM_BUILD_ROOT/%{_datadir}/syslinux/com32 %{_datadir}/syslinux %changelog +* Tue Nov 04 2008 snwint@suse.de +- gfxboot: increase usable mem size to 8MB * Fri Oct 17 2008 olh@suse.de - add ExclusiveArch x86 x86_64 * Thu Oct 16 2008 snwint@suse.de