diff --git a/syslinux-3.63.diff b/syslinux-3.63.diff index 5d07741..899b42e 100644 --- a/syslinux-3.63.diff +++ b/syslinux-3.63.diff @@ -2350,3 +2350,130 @@ mov dword [gfx_save_area1],7f0000h ; 8MB-64k gfx_init_40: +--- doc/syslinux.txt 2008-04-11 18:07:31.000000000 +0200 ++++ doc/syslinux.txt 2008-09-04 13:08:03.000000000 +0200 +@@ -343,6 +343,12 @@ + ports detected by the BIOS. They may or may not correspond to + the legacy port values 0x3F8, 0x2F8, 0x3E8, 0x2E8. + ++SERIALLINES baudrate port0 [port1] [port2] [port3] ++ [only with GFXBOOT] ++ Listen on up to 4 ports for serial input. Output is sent ++ to ports input was received from. See SERIAL option for ++ a description of port values. ++ + CONSOLE flag_val + If flag_val is 0, disable output to the normal video console. + If flag_val is 1, enable output to the video console (this is +--- gfxboot.inc 2008-04-28 15:52:44.000000000 +0200 ++++ gfxboot.inc 2008-09-03 18:17:12.000000000 +0200 +@@ -324,7 +324,7 @@ + + menu_desc zb sizeof_menu_desc + +-; system config data (52 bytes) ++; system config data (62 bytes) + gfx_sysconfig equ $ + gfx_bootloader db 1 ; 0: boot loader type (0: lilo, 1: syslinux, 2: grub) + gfx_sector_shift db SECTOR_SHIFT ; 1: sector shift +@@ -337,7 +337,7 @@ + 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 +-gfx_reserved_1 dw 0 ; 10 ++gfx_serial_port dw 0 ; 10: syslinux initialized serial port from 'serial' option + 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) +@@ -350,6 +350,11 @@ + gfx_archive_end dd 0 ; 40: end of cpio archive + gfx_mem0_start dd 0 ; 44: low free memory start + gfx_mem0_end dd 0 ; 48: low free memory end ++gfx_baud dw 0 ; 52: baud rate divisor (115200/baud_rate) ++gfx_com1 dw 0 ; 54: 1st serial port (0 = none) ++gfx_com2 dw 0 ; 56: 2nd ++gfx_com3 dw 0 ; 58: 3rd ++gfx_com4 dw 0 ; 60: 4th + gfx_sysconfig_end equ $ + + gfx_slash db '/', 0 +@@ -368,6 +373,15 @@ + push ax + mov al,[DriveNumber] + mov [gfx_boot_drive],al ++ mov ax,[SerialPort] ++ mov [gfx_serial_port],ax ++ or ax,ax ++ jz gfx_get_sysconfig_10 ++ cmp word [gfx_baud],0 ++ jnz gfx_get_sysconfig_10 ++ mov ax,[BaudDivisor] ++ mov [gfx_baud],ax ++gfx_get_sysconfig_10: + + %if IS_ISOLINUX + mov ah,2 +--- keywords 2008-04-11 14:53:19.000000000 +0200 ++++ keywords 2008-09-03 14:38:18.000000000 +0200 +@@ -43,4 +43,5 @@ + f11 + f12 + gfxboot ++seriallines + disksize +--- keywords.inc 2008-04-11 14:53:19.000000000 +0200 ++++ keywords.inc 2008-09-03 15:02:58.000000000 +0200 +@@ -96,6 +96,7 @@ + + %ifdef WITH_GFX + keyword gfxboot, pc_filecmd, get_gfx_file ++ keyword seriallines, pc_seriallines + %if IS_SYSLINUX + keyword disksize, pc_disksize, DiskSize + %endif +--- parseconfig.inc 2008-04-11 14:53:30.000000000 +0200 ++++ parseconfig.inc 2008-09-03 16:18:17.000000000 +0200 +@@ -287,6 +287,43 @@ + ret + + %ifdef WITH_GFX ++ ++pc_seriallines: ++ call getint ++ jc pc_sl_90 ++ cmp ebx,75 ++ jb pc_sl_90 ; < 75 baud == bogus ++ mov eax,BAUD_DIVISOR ++ cdq ++ div ebx ++ mov [gfx_baud],ax ++ xor di,di ++pc_sl_10: ++ push di ++ call skipspace ++ jc pc_sl_20 ++ call ungetc ++ call getint ++pc_sl_20: ++ pop di ++ jc pc_sl_90 ++ cmp bx,3 ++ ja pc_sl_50 ++ add bx,bx ++ mov bx,[bx+serial_base] ; get i/o port from BIOS ++pc_sl_50: ++ mov [gfx_com1+di],bx ++ inc di ++ inc di ++ cmp di,8 ++ jb pc_sl_10 ++pc_sl_90: ++ ret ++ ++ ++ ++ ++ + %if IS_SYSLINUX + ; + ; like pc_setint16, but patch sector read funtion, too diff --git a/syslinux.changes b/syslinux.changes index 49ae858..31f6b3d 100644 --- a/syslinux.changes +++ b/syslinux.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Thu Sep 4 13:58:49 CEST 2008 - snwint@suse.de + +- added SERIALLINES config option to listen on up to four + serial lines (fate #301595) + ------------------------------------------------------------------- Mon Apr 28 16:43:51 CEST 2008 - snwint@suse.de diff --git a/syslinux.spec b/syslinux.spec index 31e655b..b62fb12 100644 --- a/syslinux.spec +++ b/syslinux.spec @@ -2,9 +2,16 @@ # spec file for package syslinux (Version 3.63) # # Copyright (c) 2008 SUSE LINUX Products GmbH, Nuernberg, Germany. -# This file and all modifications and additions to the pristine -# package are under the same license as the package itself. # +# All modifications and additions to the file contributed by third parties +# remain the property of their copyright owners, unless otherwise agreed +# upon. The license for this file, and modifications and additions to the +# file, is the same license as for the pristine package itself (unless the +# license for the pristine package is not an Open Source License, in which +# case the license is the MIT License). An "Open Source License" is a +# license that conforms to the Open Source Definition (Version 1.9) +# published by the Open Source Initiative. + # Please submit bugfixes or comments via http://bugs.opensuse.org/ # @@ -22,7 +29,7 @@ Requires: mtools AutoReqProv: on Summary: Boot Loader for Linux Version: 3.63 -Release: 5 +Release: 36 Source: %{name}-%{version}.tar.bz2 Source1: isolinux-config Patch: %{name}-%{version}.diff @@ -68,6 +75,9 @@ rm -rf $RPM_BUILD_ROOT/%{_datadir}/syslinux/com32 %{_datadir}/syslinux %changelog +* Thu Sep 04 2008 snwint@suse.de +- added SERIALLINES config option to listen on up to four + serial lines (fate #301595) * Mon Apr 28 2008 snwint@suse.de - give more memory to gfxboot code * Mon Apr 14 2008 snwint@suse.de