Merge lp:~noskcaj/ubuntu/trusty/elilo/merge into lp:ubuntu/trusty/elilo

Proposed by Jackson Doak
Status: Merged
Merge reported by: Michael Terry
Merged at revision: not available
Proposed branch: lp:~noskcaj/ubuntu/trusty/elilo/merge
Merge into: lp:ubuntu/trusty/elilo
Diff against target: 3477 lines (+1147/-1046)
53 files modified
.pc/.quilt_patches (+1/-0)
.pc/.quilt_series (+1/-0)
.pc/apple.diff/Makefile (+1/-1)
.pc/apple.diff/elilo.c (+1/-1)
.pc/applied-patches (+0/-1)
.pc/debian-changes-3.12-3/Makefile (+0/-109)
.pc/debian-changes-3.12-3/choosers/Makefile (+0/-58)
.pc/debian-changes-3.12-3/devschemes/Makefile (+0/-46)
.pc/debian-changes-3.12-3/fs/Makefile (+0/-70)
.pc/debian-changes-3.12-3/ia32/Makefile (+0/-51)
.pc/debian-changes-3.12-3/ia64/Makefile (+0/-42)
.pc/debian-changes-3.12-3/tools/Makefile (+0/-47)
.pc/debian-changes-3.12-3/x86_64/Makefile (+0/-52)
.pc/fix-paths.diff/Make.defaults (+1/-1)
ChangeLog (+57/-0)
Makefile (+6/-11)
alloc.c (+15/-7)
bootparams.c (+2/-0)
choosers/Makefile (+10/-19)
choosers/simple.c (+7/-6)
choosers/textmenu.c (+3/-3)
config.c (+5/-5)
debian/changelog (+49/-3)
debian/control (+4/-2)
debian/elilo.sh (+1/-1)
debian/patches/cross-build.diff (+266/-0)
debian/patches/debian-changes-3.12-3 (+0/-284)
debian/patches/fix-paths.diff (+1/-1)
debian/patches/series (+1/-1)
debian/po/da.po (+86/-0)
debian/po/pl.po (+90/-0)
debian/rules (+5/-9)
devschemes/Makefile (+5/-10)
elilo.c (+1/-1)
elilo.h (+8/-2)
fileops.c (+1/-1)
fs/Makefile (+10/-19)
fs/localfs.c (+1/-1)
glue_netfs.c (+23/-0)
ia32/Makefile (+7/-12)
ia32/bzimage.c (+1/-1)
ia32/system.c (+19/-1)
ia64/Makefile (+4/-9)
ia64/system.c (+6/-0)
initrd.c (+10/-2)
strops.c (+6/-6)
tools/Makefile (+4/-9)
tools/eliloalt.c (+23/-12)
x86_64/Makefile (+7/-12)
x86_64/bzimage.c (+136/-32)
x86_64/config.c (+16/-3)
x86_64/sysdeps.h (+27/-36)
x86_64/system.c (+219/-46)
To merge this branch: bzr merge lp:~noskcaj/ubuntu/trusty/elilo/merge
Reviewer Review Type Date Requested Status
Michael Terry Approve
Review via email: mp+198125@code.launchpad.net

Description of the change

Merge from debian

To post a comment you must log in.
Revision history for this message
Michael Terry (mterry) wrote :

Thanks so much! I uploaded this to trusty.

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== removed file '.ChangeLog.swp'
0Binary files .ChangeLog.swp 2009-11-01 22:37:21 +0000 and .ChangeLog.swp 1970-01-01 00:00:00 +0000 differ0Binary files .ChangeLog.swp 2009-11-01 22:37:21 +0000 and .ChangeLog.swp 1970-01-01 00:00:00 +0000 differ
=== added file '.pc/.quilt_patches'
--- .pc/.quilt_patches 1970-01-01 00:00:00 +0000
+++ .pc/.quilt_patches 2013-12-06 20:30:39 +0000
@@ -0,0 +1,1 @@
1debian/patches
02
=== added file '.pc/.quilt_series'
--- .pc/.quilt_series 1970-01-01 00:00:00 +0000
+++ .pc/.quilt_series 2013-12-06 20:30:39 +0000
@@ -0,0 +1,1 @@
1series
02
=== modified file '.pc/apple.diff/Makefile'
--- .pc/apple.diff/Makefile 2011-08-22 21:17:34 +0000
+++ .pc/apple.diff/Makefile 2013-12-06 20:30:39 +0000
@@ -81,7 +81,7 @@
8181
82elilo.so: $(FILES)82elilo.so: $(FILES)
8383
84elilo.o : elilo.c84elilo.o : elilo.c $(ARCH)/sysdeps.h
8585
86fileops.o : Make.defaults86fileops.o : Make.defaults
87chooser.o : Make.defaults87chooser.o : Make.defaults
8888
=== modified file '.pc/apple.diff/elilo.c'
--- .pc/apple.diff/elilo.c 2011-08-22 21:17:34 +0000
+++ .pc/apple.diff/elilo.c 2013-12-06 20:30:39 +0000
@@ -93,7 +93,7 @@
93INTN93INTN
94kernel_load(EFI_HANDLE image, CHAR16 *kname, kdesc_t *kd, memdesc_t *imem, memdesc_t *mmem)94kernel_load(EFI_HANDLE image, CHAR16 *kname, kdesc_t *kd, memdesc_t *imem, memdesc_t *mmem)
95{95{
96 CHAR16 kernel[CMDLINE_MAXLEN];96 CHAR16 kernel[FILENAME_MAXLEN];
9797
98 /*98 /*
99 * Do the vm image switch here99 * Do the vm image switch here
100100
=== modified file '.pc/applied-patches'
--- .pc/applied-patches 2011-08-22 21:17:34 +0000
+++ .pc/applied-patches 2013-12-06 20:30:39 +0000
@@ -1,3 +1,2 @@
1fix-paths.diff1fix-paths.diff
2apple.diff2apple.diff
3debian-changes-3.12-3
43
=== removed directory '.pc/debian-changes-3.12-3'
=== removed file '.pc/debian-changes-3.12-3/Makefile'
--- .pc/debian-changes-3.12-3/Makefile 2011-08-22 21:17:34 +0000
+++ .pc/debian-changes-3.12-3/Makefile 1970-01-01 00:00:00 +0000
@@ -1,109 +0,0 @@
1#
2# Copyright (C) 2001-2003 Hewlett-Packard Co.
3# Contributed by Stephane Eranian <eranian@hpl.hp.com>
4# Contributed by Fenghua Yu<fenghua.yu@intel.com>
5# Contributed by Chandramouli Narayanan<mouli@linux.intel.com>
6#
7# This file is part of ELILO, the LINUX EFI boot loader.
8#
9# ELILO is free software; you can redistribute it and/or modify
10# it under the terms of the GNU General Public License as published by
11# the Free Software Foundation; either version 2, or (at your option)
12# any later version.
13#
14# ELILO is distributed in the hope that it will be useful,
15# but WITHOUT ANY WARRANTY; without even the implied warranty of
16# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17# GNU General Public License for more details.
18#
19# You should have received a copy of the GNU General Public License
20# along with ELILO; see the file COPYING. If not, write to the Free
21# Software Foundation, 59 Temple Place - Suite 330, Boston, MA
22# 02111-1307, USA.
23#
24# Please check out the elilo.txt for complete documentation on how
25# to use this program.
26#
27
28include Make.defaults
29TOPDIR=.
30
31
32CRTOBJS = $(EFICRT0)/crt0-efi-$(ARCH).o
33LDSCRIPT = $(EFICRT0)/elf_$(ARCH)_efi.lds
34
35LDFLAGS += -T $(LDSCRIPT) -shared -Bsymbolic -L$(EFILIB) -L$(GNUEFILIB) $(CRTOBJS)
36LOADLIBES = -lefi -lgnuefi $(shell $(CC) -print-libgcc-file-name)
37FORMAT = efi-app-$(ARCH)
38
39FILESYSTEM =
40
41ifeq ($(CONFIG_localfs),y)
42FILESYSTEMS += glue_localfs.o
43endif
44
45ifeq ($(CONFIG_ext2fs),y)
46FILESYSTEMS += glue_ext2fs.o
47endif
48
49ifeq ($(CONFIG_netfs),y)
50FILESYSTEMS += glue_netfs.o
51endif
52
53SUBDIRS = fs choosers devschemes tools
54
55ifeq ($(ARCH),ia64)
56SUBDIRS += ia64
57endif
58
59ifeq ($(ARCH),ia32)
60SUBDIRS += ia32
61endif
62
63ifeq ($(ARCH),x86_64)
64SUBDIRS += x86_64
65endif
66
67FILES = elilo.o getopt.o strops.o loader.o \
68 fileops.o util.o vars.o alloc.o chooser.o \
69 config.o initrd.o alternate.o bootparams.o \
70 gunzip.o console.o apple.o fs/fs.o \
71 choosers/choosers.o \
72 devschemes/devschemes.o \
73 $(ARCH)/sysdeps.o \
74 $(FILESYSTEMS)
75
76TARGETS = elilo.efi
77
78all: check_gcc $(SUBDIRS) $(TARGETS)
79
80elilo.efi: elilo.so
81
82elilo.so: $(FILES)
83
84elilo.o : elilo.c
85
86fileops.o : Make.defaults
87chooser.o : Make.defaults
88
89$(SUBDIRS): dummy
90 $(MAKE) -C $@
91
92dummy:
93
94clean:
95 @set -e ; for d in $(SUBDIRS) ; do $(MAKE) -C $$d $@ ; done
96 rm -f $(TARGETS) *~ *.so $(FILES)
97
98.PRECIOUS: elilo.so
99
100#
101# on both platforms you must use gcc 3.0 or higher
102#
103check_gcc:
104ifeq ($(GCC_VERSION),2)
105 @echo "you need to use a version of gcc >= 3.0, you are using `$(CC) --version`"
106 @exit 1
107endif
108
109include Make.rules
1100
=== removed directory '.pc/debian-changes-3.12-3/choosers'
=== removed file '.pc/debian-changes-3.12-3/choosers/Makefile'
--- .pc/debian-changes-3.12-3/choosers/Makefile 2010-06-08 13:42:05 +0000
+++ .pc/debian-changes-3.12-3/choosers/Makefile 1970-01-01 00:00:00 +0000
@@ -1,58 +0,0 @@
1#
2# Copyright (C) 2001-2003 Hewlett-Packard Co.
3# Contributed by Stephane Eranian <eranian@hpl.hp.com>
4#
5# This file is part of the ELILO, the EFI Linux boot loader.
6#
7# ELILO is free software; you can redistribute it and/or modify
8# it under the terms of the GNU General Public License as published by
9# the Free Software Foundation; either version 2, or (at your option)
10# any later version.
11#
12# ELILO is distributed in the hope that it will be useful,
13# but WITHOUT ANY WARRANTY; without even the implied warranty of
14# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15# GNU General Public License for more details.
16#
17# You should have received a copy of the GNU General Public License
18# along with ELILO; see the file COPYING. If not, write to the Free
19# Software Foundation, 59 Temple Place - Suite 330, Boston, MA
20# 02111-1307, USA.
21#
22# Please check out the elilo.txt for complete documentation on how
23# to use this program.
24#
25
26include ../Make.defaults
27include ../Make.rules
28
29TOPDIR=$(CDIR)/..
30
31FILES=
32
33ifeq ($(CONFIG_chooser_simple),y)
34FILES +=simple.o
35endif
36
37ifeq ($(CONFIG_chooser_textmenu),y)
38FILES +=textmenu.o
39endif
40
41TARGET=choosers.o
42
43all: $(TARGET)
44
45$(TARGET): check-choosers $(TOPDIR)/Make.defaults $(FILES)
46 $(LD) -o $@ -r $(FILES)
47
48clean:
49 $(RM) -f $(TARGET) $(FILES)
50
51check-choosers:
52 @if [ -n "$(FILES)" ]; then \
53 exit 0; \
54 else \
55 echo "You need to define at least one chooser in Make.defaults"; \
56 exit 1; \
57 fi
58
590
=== removed directory '.pc/debian-changes-3.12-3/devschemes'
=== removed file '.pc/debian-changes-3.12-3/devschemes/Makefile'
--- .pc/debian-changes-3.12-3/devschemes/Makefile 2010-06-08 13:42:05 +0000
+++ .pc/debian-changes-3.12-3/devschemes/Makefile 1970-01-01 00:00:00 +0000
@@ -1,46 +0,0 @@
1#
2# Copyright (C) 2001-2003 Hewlett-Packard Co.
3# Contributed by Stephane Eranian <eranian@hpl.hp.com>
4#
5# This file is part of the ELILO, the EFI Linux boot loader.
6#
7# ELILO is free software; you can redistribute it and/or modify
8# it under the terms of the GNU General Public License as published by
9# the Free Software Foundation; either version 2, or (at your option)
10# any later version.
11#
12# ELILO is distributed in the hope that it will be useful,
13# but WITHOUT ANY WARRANTY; without even the implied warranty of
14# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15# GNU General Public License for more details.
16#
17# You should have received a copy of the GNU General Public License
18# along with ELILO; see the file COPYING. If not, write to the Free
19# Software Foundation, 59 Temple Place - Suite 330, Boston, MA
20# 02111-1307, USA.
21#
22# Please check out the elilo.txt for complete documentation on how
23# to use this program.
24#
25
26include ../Make.defaults
27include ../Make.rules
28
29TOPDIR=$(CDIR)/..
30
31FILES=simple.o
32
33
34TARGET=devschemes.o
35
36all: $(TARGET)
37
38#
39# XXX: does not trigger recompile when changing filesystem selection
40# without doing make clean.
41#
42$(TARGET): $(FILES)
43 $(LD) -r -o $@ $(FILES)
44
45clean:
46 $(RM) -f $(TARGET) $(FILES)
470
=== removed directory '.pc/debian-changes-3.12-3/fs'
=== removed file '.pc/debian-changes-3.12-3/fs/Makefile'
--- .pc/debian-changes-3.12-3/fs/Makefile 2010-06-08 13:42:05 +0000
+++ .pc/debian-changes-3.12-3/fs/Makefile 1970-01-01 00:00:00 +0000
@@ -1,70 +0,0 @@
1#
2# Copyright (C) 2001-2003 Hewlett-Packard Co.
3# Contributed by Stephane Eranian <eranian@hpl.hp.com>
4#
5# This file is part of the ELILO, the EFI Linux boot loader.
6#
7# ELILO is free software; you can redistribute it and/or modify
8# it under the terms of the GNU General Public License as published by
9# the Free Software Foundation; either version 2, or (at your option)
10# any later version.
11#
12# ELILO is distributed in the hope that it will be useful,
13# but WITHOUT ANY WARRANTY; without even the implied warranty of
14# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15# GNU General Public License for more details.
16#
17# You should have received a copy of the GNU General Public License
18# along with ELILO; see the file COPYING. If not, write to the Free
19# Software Foundation, 59 Temple Place - Suite 330, Boston, MA
20# 02111-1307, USA.
21#
22# Please check out the elilo.txt for complete documentation on how
23# to use this program.
24#
25
26include ../Make.defaults
27include ../Make.rules
28
29TOPDIR=$(CDIR)/..
30
31FILES=
32ifeq ($(CONFIG_localfs),y)
33FILES += localfs.o
34endif
35
36#
37# Ext2 is now disabled by default. See top level Makefile
38# for details
39#
40ifeq ($(CONFIG_ext2fs),y)
41FILES += ext2fs.o
42endif
43
44ifeq ($(CONFIG_netfs),y)
45FILES += netfs.o
46endif
47
48
49TARGET=fs.o
50
51all: $(TARGET)
52
53#
54# XXX: does not trigger recompile when changing filesystem selection
55# without doing make clean.
56#
57$(TARGET): check-filesystems $(TOPDIR)/Make.defaults $(FILES)
58 $(LD) -r -o $@ $(FILES)
59
60clean:
61 $(RM) -f $(TARGET) $(FILES)
62
63check-filesystems:
64 @if [ -n "$(FILES)" ]; then \
65 exit 0; \
66 else \
67 echo "You need to define at least one filesystem in Make.defaults"; \
68 exit 1; \
69 fi
70
710
=== removed directory '.pc/debian-changes-3.12-3/ia32'
=== removed file '.pc/debian-changes-3.12-3/ia32/Makefile'
--- .pc/debian-changes-3.12-3/ia32/Makefile 2010-06-08 13:42:05 +0000
+++ .pc/debian-changes-3.12-3/ia32/Makefile 1970-01-01 00:00:00 +0000
@@ -1,51 +0,0 @@
1#
2# Copyright (C) 2001-2003 Hewlett-Packard Co.
3# Contributed by Stephane Eranian <eranian@hpl.hp.com>
4#
5# This file is part of the ELILO, the EFI Linux boot loader.
6#
7# ELILO is free software; you can redistribute it and/or modify
8# it under the terms of the GNU General Public License as published by
9# the Free Software Foundation; either version 2, or (at your option)
10# any later version.
11#
12# ELILO is distributed in the hope that it will be useful,
13# but WITHOUT ANY WARRANTY; without even the implied warranty of
14# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15# GNU General Public License for more details.
16#
17# You should have received a copy of the GNU General Public License
18# along with ELILO; see the file COPYING. If not, write to the Free
19# Software Foundation, 59 Temple Place - Suite 330, Boston, MA
20# 02111-1307, USA.
21#
22# Please check out the elilo.txt for complete documentation on how
23# to use this program.
24#
25
26include ../Make.defaults
27include ../Make.rules
28
29TOPDIR=$(CDIR)/..
30
31FILES=system.o config.o bzimage.o plain_loader.o gzip_loader.o gzip.o
32
33TARGET=sysdeps.o
34
35all: $(TARGET)
36
37system.o: rmswitch.h
38
39rmswitch.h: bin_to_h.c rmswitch.S
40 $(CC) -o bin_to_h bin_to_h.c
41 $(AS) -o rmswitch.o rmswitch.S
42 $(LD) -Ttext 0x0 -s --oformat binary -o rmswitch rmswitch.o
43 ./bin_to_h <rmswitch >rmswitch.h
44
45$(TARGET): $(FILES)
46 $(LD) -r -o $@ $(FILES)
47
48clean:
49 $(RM) -f $(TARGET) $(FILES)
50 $(RM) -f bin_to_h.o bin_to_h
51 $(RM) -f rmswitch.h rmswitch.o rmswitch
520
=== removed directory '.pc/debian-changes-3.12-3/ia64'
=== removed file '.pc/debian-changes-3.12-3/ia64/Makefile'
--- .pc/debian-changes-3.12-3/ia64/Makefile 2010-06-08 13:42:05 +0000
+++ .pc/debian-changes-3.12-3/ia64/Makefile 1970-01-01 00:00:00 +0000
@@ -1,42 +0,0 @@
1#
2# Copyright (C) 2001-2003 Hewlett-Packard Co.
3# Contributed by Stephane Eranian <eranian@hpl.hp.com>
4#
5# This file is part of the ELILO, the EFI Linux boot loader.
6#
7# ELILO is free software; you can redistribute it and/or modify
8# it under the terms of the GNU General Public License as published by
9# the Free Software Foundation; either version 2, or (at your option)
10# any later version.
11#
12# ELILO is distributed in the hope that it will be useful,
13# but WITHOUT ANY WARRANTY; without even the implied warranty of
14# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15# GNU General Public License for more details.
16#
17# You should have received a copy of the GNU General Public License
18# along with ELILO; see the file COPYING. If not, write to the Free
19# Software Foundation, 59 Temple Place - Suite 330, Boston, MA
20# 02111-1307, USA.
21#
22# Please check out the elilo.txt for complete documentation on how
23# to use this program.
24#
25
26include ../Make.defaults
27include ../Make.rules
28
29TOPDIR=$(CDIR)/..
30
31FILES=system.o config.o fpswa.o plain_loader.o gzip_loader.o \
32 gzip.o memset.o memcpy.o setjmp.o longjmp.o
33
34TARGET=sysdeps.o
35
36all: $(TARGET)
37
38$(TARGET): $(FILES)
39 $(LD) -o $@ -r $(FILES)
40
41clean:
42 $(RM) -f $(TARGET) $(FILES)
430
=== removed directory '.pc/debian-changes-3.12-3/tools'
=== removed file '.pc/debian-changes-3.12-3/tools/Makefile'
--- .pc/debian-changes-3.12-3/tools/Makefile 2010-06-08 13:42:05 +0000
+++ .pc/debian-changes-3.12-3/tools/Makefile 1970-01-01 00:00:00 +0000
@@ -1,47 +0,0 @@
1#
2# Copyright (C) 2001-2003 Hewlett-Packard Co.
3# Contributed by Stephane Eranian <eranian@hpl.hp.com>
4#
5# This file is part of the ELILO, the EFI Linux boot loader.
6#
7# ELILO is free software; you can redistribute it and/or modify
8# it under the terms of the GNU General Public License as published by
9# the Free Software Foundation; either version 2, or (at your option)
10# any later version.
11#
12# ELILO is distributed in the hope that it will be useful,
13# but WITHOUT ANY WARRANTY; without even the implied warranty of
14# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15# GNU General Public License for more details.
16#
17# You should have received a copy of the GNU General Public License
18# along with ELILO; see the file COPYING. If not, write to the Free
19# Software Foundation, 59 Temple Place - Suite 330, Boston, MA
20# 02111-1307, USA.
21#
22# Please check out the elilo.txt for complete documentation on how
23# to use this program.
24#
25
26include ../Make.defaults
27include ../Make.rules
28
29TOPDIR=$(CDIR)/..
30
31FILES=eliloalt.o
32TARGET=eliloalt
33
34all: $(TARGET)
35
36#
37# redefine local rule (we build a Linux/ia64 binary here)
38#
39%.o: %.c
40 $(CC) $(OPTIMFLAGS) $(DEBUGFLAGS) -c $< -o $@
41
42$(TARGET): %:%.o
43 $(CC) -o $@ $(OPTIMFLAGS) $(DEBUGFLAGS) $^
44
45clean:
46 $(RM) -f $(TARGET) $(FILES)
47
480
=== removed directory '.pc/debian-changes-3.12-3/x86_64'
=== removed file '.pc/debian-changes-3.12-3/x86_64/Makefile'
--- .pc/debian-changes-3.12-3/x86_64/Makefile 2010-06-08 13:42:05 +0000
+++ .pc/debian-changes-3.12-3/x86_64/Makefile 1970-01-01 00:00:00 +0000
@@ -1,52 +0,0 @@
1#
2# Copyright (C) 2001-2003 Hewlett-Packard Co.
3# Contributed by Stephane Eranian <eranian@hpl.hp.com>
4#
5# This file is part of the ELILO, the EFI Linux boot loader.
6#
7# ELILO is free software; you can redistribute it and/or modify
8# it under the terms of the GNU General Public License as published by
9# the Free Software Foundation; either version 2, or (at your option)
10# any later version.
11#
12# ELILO is distributed in the hope that it will be useful,
13# but WITHOUT ANY WARRANTY; without even the implied warranty of
14# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15# GNU General Public License for more details.
16#
17# You should have received a copy of the GNU General Public License
18# along with ELILO; see the file COPYING. If not, write to the Free
19# Software Foundation, 59 Temple Place - Suite 330, Boston, MA
20# 02111-1307, USA.
21#
22# Please check out the elilo.txt for complete documentation on how
23# to use this program.
24#
25
26include ../Make.defaults
27include ../Make.rules
28
29TOPDIR=$(CDIR)/..
30
31FILES=system.o config.o bzimage.o plain_loader.o gzip_loader.o gzip.o
32#FILES=system.o config.o plain_loader.o
33
34TARGET=sysdeps.o
35
36all: $(TARGET)
37
38system.o: rmswitch.h
39
40rmswitch.h: bin_to_h.c rmswitch.S
41 $(CC) -o bin_to_h bin_to_h.c
42 $(AS) -o rmswitch.o rmswitch.S
43 $(LD) -Ttext 0x0 -s --oformat binary -o rmswitch rmswitch.o
44 ./bin_to_h <rmswitch >rmswitch.h
45
46$(TARGET): $(FILES)
47 $(LD) -r -o $@ $(FILES)
48
49clean:
50 $(RM) -f $(TARGET) $(FILES)
51 $(RM) -f bin_to_h.o bin_to_h
52 $(RM) -f rmswitch.h rmswitch.o rmswitch
530
=== modified file '.pc/fix-paths.diff/Make.defaults'
--- .pc/fix-paths.diff/Make.defaults 2010-06-08 13:42:05 +0000
+++ .pc/fix-paths.diff/Make.defaults 2013-12-06 20:30:39 +0000
@@ -68,7 +68,7 @@
6868
69OPTIMFLAGS = -O2 69OPTIMFLAGS = -O2
70DEBUGFLAGS = -Wall70DEBUGFLAGS = -Wall
71CFLAGS = $(OPTIMFLAGS) -fno-strict-aliasing -fpic -fshort-wchar $(DEBUGFLAGS)71CFLAGS = $(OPTIMFLAGS) -fno-stack-protector -fno-strict-aliasing -fpic -fshort-wchar $(DEBUGFLAGS)
72LDFLAGS = -nostdlib -znocombreloc72LDFLAGS = -nostdlib -znocombreloc
73INSTALL = install73INSTALL = install
7474
7575
=== modified file 'ChangeLog'
--- ChangeLog 2011-08-22 21:17:34 +0000
+++ ChangeLog 2013-12-06 20:30:39 +0000
@@ -1,3 +1,17 @@
12011-1-10 signed off by Jason Fleischli <jason.fleischli@hp.com>
2 * Uptake of SUSE patches
3 - add sysfs support for efi vars (formerly /proc/efi/vars)
4 - fix strncpy overflow
5 - fix bzimage alloc
6 - cleanups
7 - support longer command line
8 - yet some more mac fixes
9 - align elilo with latest kernel boot protocol format.
10 - new memory management strategy for initrd and kernel image loading.
11 * add force text mode command line option.
12 * replace error output on GOP handle failed, downgraded to normal
13 print status with more informative output.
14
12009-10-22 signed off by Jason Fleischli <jason.fleischli@hp.com>152009-10-22 signed off by Jason Fleischli <jason.fleischli@hp.com>
2 * elilo 3.12 release commit16 * elilo 3.12 release commit
3 * Added additional #defines for debug levels to reduce the output17 * Added additional #defines for debug levels to reduce the output
@@ -39,8 +53,10 @@
39 subtree53 subtree
40 * bugfix loader_probe now correctly errors out if no loaders54 * bugfix loader_probe now correctly errors out if no loaders
41 registered.55 registered.
56
422008-01-11 signed off by Jason Fleischli <jason.fleischli@hp.com>572008-01-11 signed off by Jason Fleischli <jason.fleischli@hp.com>
43 * Various compile warning cleanups.58 * Various compile warning cleanups.
59
442008-01-03 signed off by Jason Fleischli <jason.fleischli@hp.com>602008-01-03 signed off by Jason Fleischli <jason.fleischli@hp.com>
45 * Patch contribution from Scott Davilla <davilla@4pi.com>61 * Patch contribution from Scott Davilla <davilla@4pi.com>
46 when x is zero for the first call to add_memory_region, e820_map[-1] 62 when x is zero for the first call to add_memory_region, e820_map[-1]
@@ -49,6 +65,7 @@
49 above the e820_map[0] location that should have been zeroed by the 65 above the e820_map[0] location that should have been zeroed by the
50 bootloader, the code should not access outside the bounds of 66 bootloader, the code should not access outside the bounds of
51 structures. 67 structures.
68
522008-01-03 Jason Fleischli <jason.fleischli@hp.com>692008-01-03 Jason Fleischli <jason.fleischli@hp.com>
53 * initrd.c -- Let the allocator decide where to grab the memory from 70 * initrd.c -- Let the allocator decide where to grab the memory from
54 the efi memory map. Current start_addr=image->start_addr forces the 71 the efi memory map. Current start_addr=image->start_addr forces the
@@ -57,8 +74,10 @@
57 the image->start_addr resulting in an elilo hang. Leaving start_addr 74 the image->start_addr resulting in an elilo hang. Leaving start_addr
58 NULL at initialization forces alloc_pages to get a memory region 75 NULL at initialization forces alloc_pages to get a memory region
59 sufficient for the size of the initrd image.76 sufficient for the size of the initrd image.
77
602007-12-19 Jason Fleischli <jason.fleischli@hp.com>782007-12-19 Jason Fleischli <jason.fleischli@hp.com>
61 * bumping version string to 3.879 * bumping version string to 3.8
80
622007-12-19 Jason Fleischli <jason.fleischli@hp.com>812007-12-19 Jason Fleischli <jason.fleischli@hp.com>
63 * MORE PATCHES FROM INTEL FOR IA32 X86_64.82 * MORE PATCHES FROM INTEL FOR IA32 X86_64.
64 * Fix compile warning for cmdline_addr assignment.83 * Fix compile warning for cmdline_addr assignment.
@@ -83,11 +102,13 @@
83 EFI framebuffer type ID setting code in ELILO is changed accordingly.102 EFI framebuffer type ID setting code in ELILO is changed accordingly.
84 * E820 memory map is added to IA32 to make it possible for103 * E820 memory map is added to IA32 to make it possible for
85 Linux kernel not to depend on EFI memory map on EFI 32.104 Linux kernel not to depend on EFI memory map on EFI 32.
105
862007-09-27 Jason Fleischli <jason.fleischli@hp.com>1062007-09-27 Jason Fleischli <jason.fleischli@hp.com>
87 * updating changelog for last commit that was omitted107 * updating changelog for last commit that was omitted
88 * incorporating AGriffis patches to enhance parsing108 * incorporating AGriffis patches to enhance parsing
89 passes root= option to kernel options and accounts for -- option109 passes root= option to kernel options and accounts for -- option
90 designation.110 designation.
111
912007-07-19 Jason Fleischli <jason.fleischli@hp.com>1122007-07-19 Jason Fleischli <jason.fleischli@hp.com>
92 * Integrated x86_64 support patches from Chandramouli Narayanan113 * Integrated x86_64 support patches from Chandramouli Narayanan
93 <mouli@linux.intel.com> changes summarized in following bullets.114 <mouli@linux.intel.com> changes summarized in following bullets.
@@ -159,13 +180,17 @@
159 * x86_64/sysdeps.c -- new file, system stuff for x86_64180 * x86_64/sysdeps.c -- new file, system stuff for x86_64
160 * elilo.txt -- documentation update, add Intel to copyright181 * elilo.txt -- documentation update, add Intel to copyright
161 * README.gnu-efi -- documentation update for x86_64182 * README.gnu-efi -- documentation update for x86_64
183
1622006-01-27 Alex Williamson <alex.williamson@hp.com>1842006-01-27 Alex Williamson <alex.williamson@hp.com>
163 * Found a couple more places where vmcode isn't zeroed, causing the185 * Found a couple more places where vmcode isn't zeroed, causing the
164 option to get carried over to labels it shouldn't.186 option to get carried over to labels it shouldn't.
187
1652006-01-09 Brett Johnson <brett@hp.com>1882006-01-09 Brett Johnson <brett@hp.com>
166 * Released 3.6189 * Released 3.6
190
1672005-12-22 Alex Williamson <alex.williamson@hp.com>1912005-12-22 Alex Williamson <alex.williamson@hp.com>
168 * Fixed vmcode_name initialization in textmenu chooser192 * Fixed vmcode_name initialization in textmenu chooser
193
1692005-12-01 Alex Williamson <alex.williamson@hp.com>1942005-12-01 Alex Williamson <alex.williamson@hp.com>
170 * Applied patch from Fred Yang <fred.yang@intel.com> to support the195 * Applied patch from Fred Yang <fred.yang@intel.com> to support the
171 vmm= boot option. This option specifies the kernel image for a196 vmm= boot option. This option specifies the kernel image for a
@@ -179,29 +204,37 @@
179 image will be uncompressed into memory before it is provided to the204 image will be uncompressed into memory before it is provided to the
180 hypervisor. Any combination of compressed and uncompressed images205 hypervisor. Any combination of compressed and uncompressed images
181 can be used for the image and vmm options.206 can be used for the image and vmm options.
207
1822005-09-15 Brett Johnson <brett@hp.com>2082005-09-15 Brett Johnson <brett@hp.com>
183 * Applied patch from Tristan Gingold to add dcache flush and sync with209 * Applied patch from Tristan Gingold to add dcache flush and sync with
184 icache to gzip and plain loaders. This ommision was just noticed now210 icache to gzip and plain loaders. This ommision was just noticed now
185 due to the much larger caches in Montecito, and the smaller size of211 due to the much larger caches in Montecito, and the smaller size of
186 Xen (as compared to the linux kernel).212 Xen (as compared to the linux kernel).
213
1872004-09-27 Brett Johnson <brett@hp.com>2142004-09-27 Brett Johnson <brett@hp.com>
188 * Increase the hardcoded size of the texmenu chooser menu from 16 to 64215 * Increase the hardcoded size of the texmenu chooser menu from 16 to 64
216
1892004-09-23 Brett Johnson <brett@hp.com>2172004-09-23 Brett Johnson <brett@hp.com>
190 * Fix for 924147. Thanks to Stephanie Schaaf <sas@sgi.com> for a patch218 * Fix for 924147. Thanks to Stephanie Schaaf <sas@sgi.com> for a patch
191 that the fix is based on.219 that the fix is based on.
220
1922004-02-19 Brett Johnson <brett@hp.com>2212004-02-19 Brett Johnson <brett@hp.com>
193 * Fixed bug where default image initrd would carry over to another222 * Fixed bug where default image initrd would carry over to another
194 image that was selected interactively (iff the newly selected image223 image that was selected interactively (iff the newly selected image
195 did not have an initrd).224 did not have an initrd).
196 * Added support for subnet-specific config files in netfs.225 * Added support for subnet-specific config files in netfs.
226
1972004-02-17 Brett Johnson <brett@hp.com>2272004-02-17 Brett Johnson <brett@hp.com>
198 * integrated ia32 compressed kernel support from Matt Tolentino228 * integrated ia32 compressed kernel support from Matt Tolentino
199 <matthew.e.tolentino@intel.com>229 <matthew.e.tolentino@intel.com>
230
2002003-08-20 Stephane Eranian <eranian@hpl.hp.com>2312003-08-20 Stephane Eranian <eranian@hpl.hp.com>
201 * released 3.4232 * released 3.4
233
2022003-08-19 Stephane Eranian <eranian@hpl.hp.com>2342003-08-19 Stephane Eranian <eranian@hpl.hp.com>
203 * integrated ia32 updates from Matt235 * integrated ia32 updates from Matt
204 Tolentino <matthew.e.tolentino@intel.com>236 Tolentino <matthew.e.tolentino@intel.com>
237
2052003-08-13 Stephane Eranian <eranian@hpl.hp.com>2382003-08-13 Stephane Eranian <eranian@hpl.hp.com>
206 * updated elilo.txt and netbooting.txt239 * updated elilo.txt and netbooting.txt
207 * fix a bug in choosers/simple.c:print_infos().240 * fix a bug in choosers/simple.c:print_infos().
@@ -214,37 +247,47 @@
214 * updated simple chooser set of builtin command keys247 * updated simple chooser set of builtin command keys
215 * command keys are only valid if first on the line248 * command keys are only valid if first on the line
216 * increase default buffer size and increment when netbooting249 * increase default buffer size and increment when netbooting
250
2172003-06-04 Stephane Eranian <eranian@hpl.hp.com>2512003-06-04 Stephane Eranian <eranian@hpl.hp.com>
218 * fix fs/netfs.c to work with recent version252 * fix fs/netfs.c to work with recent version
219 of EFI (14.61 or higher) which do not have the 253 of EFI (14.61 or higher) which do not have the
220 TFTP problem anymore. fix submitted by Guy Laborde254 TFTP problem anymore. fix submitted by Guy Laborde
255
2212003-04-21 Stephane Eranian <eranian@hpl.hp.com>2562003-04-21 Stephane Eranian <eranian@hpl.hp.com>
222 * ext2fs support is turned off by default to avoid257 * ext2fs support is turned off by default to avoid
223 problems with ext3-formatted partitions.258 problems with ext3-formatted partitions.
224 * added gcc version check. MUST use 3.0 or higher259 * added gcc version check. MUST use 3.0 or higher
260
2252003-03-03 Stephane Eranian <eranian@hpl.hp.com>2612003-03-03 Stephane Eranian <eranian@hpl.hp.com>
226 * added check on dev_tab in fs/*fs.c:*_uninstall()262 * added check on dev_tab in fs/*fs.c:*_uninstall()
263
2272003-02-07 Stephane Eranian <eranian@hpl.hp.com>2642003-02-07 Stephane Eranian <eranian@hpl.hp.com>
228 * clean up in glue_localfs.c w.r.t. CHAR16 in set_default_path()265 * clean up in glue_localfs.c w.r.t. CHAR16 in set_default_path()
229 * added support for extracting basename of bootloader path266 * added support for extracting basename of bootloader path
230 when using BOOTP (DHCP) only. The prefix is then used for all files267 when using BOOTP (DHCP) only. The prefix is then used for all files
231 open via netfs. Suggestion and initial patch by Guy Laborde from HP.268 open via netfs. Suggestion and initial patch by Guy Laborde from HP.
269
2322003-01-28 Stephane Eranian <eranian@hpl.hp.com>2702003-01-28 Stephane Eranian <eranian@hpl.hp.com>
233 * fix the set_default_path() routine in glue_localfs.c. It would not271 * fix the set_default_path() routine in glue_localfs.c. It would not
234 correctly get the basename of the devpath. This caused the272 correctly get the basename of the devpath. This caused the
235 elilo.conf not to be found sometimes.273 elilo.conf not to be found sometimes.
274
2362003-01-21 Stephane Eranian <eranian@hpl.hp.com>2752003-01-21 Stephane Eranian <eranian@hpl.hp.com>
237 * fix bug in glue_netfs.c convert_ip2decstr() which caused some IP276 * fix bug in glue_netfs.c convert_ip2decstr() which caused some IP
238 addresses to be incorrectly converted to strings.277 addresses to be incorrectly converted to strings.
278
2392002-11-01 Stephane Eranian <eranian@hpl.hp.com>2792002-11-01 Stephane Eranian <eranian@hpl.hp.com>
240 * fix bug in -r option for IA64. There is no argument to this option.280 * fix bug in -r option for IA64. There is no argument to this option.
281
2412002-10-15 Stephane Eranian <eranian@hpl.hp.com>2822002-10-15 Stephane Eranian <eranian@hpl.hp.com>
242 * fixed a double free bug for the kernel memory in case of abort.283 * fixed a double free bug for the kernel memory in case of abort.
243 (bug spotted by Levent Akyl from Intel)284 (bug spotted by Levent Akyl from Intel)
244 * released 3.3a285 * released 3.3a
286
2452002-09-14 Stephane Eranian <eranian@hpl.hp.com>2872002-09-14 Stephane Eranian <eranian@hpl.hp.com>
246 * applied patch from Andreas Schwab <schwab@suse.de> to eliloalt.c.288 * applied patch from Andreas Schwab <schwab@suse.de> to eliloalt.c.
247 eliloalt dynamically selects a variable in /proc/efi/vars.289 eliloalt dynamically selects a variable in /proc/efi/vars.
290
2482002-09-12 Stephane Eranian <eranian@hpl.hp.com>2912002-09-12 Stephane Eranian <eranian@hpl.hp.com>
249 * removed extra free() from fs/ext2fs.c:ext2fs_init_state().292 * removed extra free() from fs/ext2fs.c:ext2fs_init_state().
250 Bug report and fix by NOMURA Jun'ichi <j-nomura@ce.jp.nec.com>293 Bug report and fix by NOMURA Jun'ichi <j-nomura@ce.jp.nec.com>
@@ -252,25 +295,31 @@
252 was bigger than the 128KB limit of EFI causing some weird fimrware295 was bigger than the 128KB limit of EFI causing some weird fimrware
253 errors. bug reported by OMURA Jun'ichi <j-nomura@ce.jp.nec.com>296 errors. bug reported by OMURA Jun'ichi <j-nomura@ce.jp.nec.com>
254 * on IA-64 forbid the use of f32-f127 by the compiler (EFI spec)297 * on IA-64 forbid the use of f32-f127 by the compiler (EFI spec)
298
2552002-09-10 Stephane Eranian <eranian@hpl.hp.com>2992002-09-10 Stephane Eranian <eranian@hpl.hp.com>
256 * fix a bug in argify() that was causing an EFI assertion 300 * fix a bug in argify() that was causing an EFI assertion
257 when aborting at the elilo prompt when netbooted.301 when aborting at the elilo prompt when netbooted.
302
2582002-08-26 Stephane Eranian <eranian@hpl.hp.com>3032002-08-26 Stephane Eranian <eranian@hpl.hp.com>
259 * fixed devschemes/simple.c to use SPrint() instead of its own buggy304 * fixed devschemes/simple.c to use SPrint() instead of its own buggy
260 conversion code (spotted by Richard Hirst).305 conversion code (spotted by Richard Hirst).
261 * fix bug in argify() when there was no NULL character in the string.306 * fix bug in argify() when there was no NULL character in the string.
262 * released 3.3307 * released 3.3
308
2632002-08-19 Stephane Eranian <eranian@hpl.hp.com>3092002-08-19 Stephane Eranian <eranian@hpl.hp.com>
264 * added fpswa.txt in the docs directory310 * added fpswa.txt in the docs directory
265 * updated elilo.txt311 * updated elilo.txt
312
2662002-08-15 Stephane Eranian <eranian@hpl.hp.com>3132002-08-15 Stephane Eranian <eranian@hpl.hp.com>
267 * added -F file option for IA-64 to allow a specific fpswa driver to be loaded314 * added -F file option for IA-64 to allow a specific fpswa driver to be loaded
268 * fixed fpswa.c to try and load the driver from all accessible partitions315 * fixed fpswa.c to try and load the driver from all accessible partitions
269 * added support to load (plain or gzipped) big-endian ELF/ia64 binaries using p_paddr.316 * added support to load (plain or gzipped) big-endian ELF/ia64 binaries using p_paddr.
270 * fixed problem in fs/netfs.c causing large (>4MB) binaries to fail the Mftp() call317 * fixed problem in fs/netfs.c causing large (>4MB) binaries to fail the Mftp() call
318
2712002-06-13 Stephane Eranian <eranian@hpl.hp.com>3192002-06-13 Stephane Eranian <eranian@hpl.hp.com>
272 * Changed the despecialization character for the variables from \\ to &320 * Changed the despecialization character for the variables from \\ to &
273 to avoid conflicts with \\ as a path separator321 to avoid conflicts with \\ as a path separator
322
2742002-06-11 Stephane Eranian <eranian@hpl.hp.com>3232002-06-11 Stephane Eranian <eranian@hpl.hp.com>
275 * fixed the return value in efi_main(). elilo was always returning324 * fixed the return value in efi_main(). elilo was always returning
276 success even in case of failure. Bug reported by Egan Ford <egan@sense.net>325 success even in case of failure. Bug reported by Egan Ford <egan@sense.net>
@@ -280,11 +329,13 @@
280 compliant with EFI spec with regards to where it looks for files.329 compliant with EFI spec with regards to where it looks for files.
281 With this patch, elilo will look in the directory it was loaded330 With this patch, elilo will look in the directory it was loaded
282 from, not on the root of the partition anymore.331 from, not on the root of the partition anymore.
332
2832002-03-04 Stephane Eranian <eranian@hpl.hp.com>3332002-03-04 Stephane Eranian <eranian@hpl.hp.com>
284 * released version 3.2334 * released version 3.2
285 * cleanup some GNU extension in fs/ext2fs.c (variable size array)335 * cleanup some GNU extension in fs/ext2fs.c (variable size array)
286 * updated all documentation. Added netbooting.txt, simple_chooser.txt,336 * updated all documentation. Added netbooting.txt, simple_chooser.txt,
287 eliloalt.txt, elilovar.txt337 eliloalt.txt, elilovar.txt
338
2882002-02-21 Stephane Eranian <eranian@hpl.hp.com>3392002-02-21 Stephane Eranian <eranian@hpl.hp.com>
289 * added a Linux utility program (elilovar in tools) to set/read/delete 340 * added a Linux utility program (elilovar in tools) to set/read/delete
290 the EliloAlt EFI variable used to specify an alternate kernel to boot.341 the EliloAlt EFI variable used to specify an alternate kernel to boot.
@@ -292,19 +343,24 @@
292 * added support for hostname,domain name extraction in fs/netfs.c343 * added support for hostname,domain name extraction in fs/netfs.c
293 * fixed all known bugs in alternate.c344 * fixed all known bugs in alternate.c
294 * integrated patch from SGI to fix load offset for relocatable kernels (Jack Steiner, Brent Casavant)345 * integrated patch from SGI to fix load offset for relocatable kernels (Jack Steiner, Brent Casavant)
346
2952002-02-21 Michael Johnston <michael.johnston@intel.com> and Chris Ahna <christopher.j.ahna@intel.com>3472002-02-21 Michael Johnston <michael.johnston@intel.com> and Chris Ahna <christopher.j.ahna@intel.com>
296 * major update to ia32 support: can now boot 2.4.x, and 2.2.x kernels348 * major update to ia32 support: can now boot 2.4.x, and 2.2.x kernels
349
2972002-02-20 Stephane Eranian <eranian@hpl.hp.com>3502002-02-20 Stephane Eranian <eranian@hpl.hp.com>
298 * fixed missing netfs_fd_free() in case of file not found in netfs.c351 * fixed missing netfs_fd_free() in case of file not found in netfs.c
352
2992002-02-19 Stephane Eranian <eranian@hpl.hp.com>3532002-02-19 Stephane Eranian <eranian@hpl.hp.com>
300 * added support for substitution variables (vars.c)354 * added support for substitution variables (vars.c)
301 * changed the bootparam structure size back to 4kB355 * changed the bootparam structure size back to 4kB
302 * added support to simple to print final command line option with tab key356 * added support to simple to print final command line option with tab key
303 * got rid of all the \r characters in strings use only \n (adjust emulator)357 * got rid of all the \r characters in strings use only \n (adjust emulator)
304 * added EFICRT0 variable in Makefile to indicate location of loader script+crt0358 * added EFICRT0 variable in Makefile to indicate location of loader script+crt0
359
3052002-02-14 Stephane Eranian <eranian@hpl.hp.com>3602002-02-14 Stephane Eranian <eranian@hpl.hp.com>
306 * added support for message= option to simple chooser361 * added support for message= option to simple chooser
307 * added support for description= option to simple chooser362 * added support for description= option to simple chooser
363
3082002-02-13 Stephane Eranian <eranian@hpl.hp.com>3642002-02-13 Stephane Eranian <eranian@hpl.hp.com>
309 * choosers/textmenu.c: new textmenu chooser (by rhirst@linuxcare.com) used by Debian365 * choosers/textmenu.c: new textmenu chooser (by rhirst@linuxcare.com) used by Debian
310 * config.c: added support for dynamic global/per-image option management366 * config.c: added support for dynamic global/per-image option management
@@ -333,6 +389,7 @@
333 mode was specified in config file. In this case, we now autoboot389 mode was specified in config file. In this case, we now autoboot
334 and ignore the prompt directive.390 and ignore the prompt directive.
335 * updated elilo.txt391 * updated elilo.txt
392
3362001-08-15 Brent Casavant <bcasavan@sgi.com>3932001-08-15 Brent Casavant <bcasavan@sgi.com>
337 * fix a bug in config.c:find_option() where it would do394 * fix a bug in config.c:find_option() where it would do
338 a strXcmp() on a NULL string.395 a strXcmp() on a NULL string.
339396
=== modified file 'Makefile'
--- Makefile 2011-08-22 21:17:34 +0000
+++ Makefile 2013-12-06 20:30:39 +0000
@@ -25,19 +25,15 @@
25# to use this program.25# to use this program.
26#26#
2727
28SRCDIR = .28include Make.defaults
2929TOPDIR=.
30VPATH = $(SRCDIR)
31
32include $(SRCDIR)/Make.defaults
33TOPDIR = $(SRCDIR)
3430
3531
36CRTOBJS = $(EFICRT0)/crt0-efi-$(ARCH).o32CRTOBJS = $(EFICRT0)/crt0-efi-$(ARCH).o
37LDSCRIPT = $(EFICRT0)/elf_$(ARCH)_efi.lds33LDSCRIPT = $(EFICRT0)/elf_$(ARCH)_efi.lds
3834
39LDFLAGS += -T $(LDSCRIPT) -shared -Bsymbolic -L$(EFILIB) -L$(GNUEFILIB) $(CRTOBJS)35LDFLAGS += -T $(LDSCRIPT) -shared -Bsymbolic -L$(EFILIB) -L$(GNUEFILIB) $(CRTOBJS)
40LOADLIBES = -lefi -lgnuefi $(shell $(CC) $(ARCH3264) -print-libgcc-file-name)36LOADLIBES = -lefi -lgnuefi $(shell $(CC) -print-libgcc-file-name)
41FORMAT = efi-app-$(ARCH)37FORMAT = efi-app-$(ARCH)
4238
43FILESYSTEM =39FILESYSTEM =
@@ -85,14 +81,13 @@
8581
86elilo.so: $(FILES)82elilo.so: $(FILES)
8783
88elilo.o : elilo.c84elilo.o : elilo.c $(ARCH)/sysdeps.h
8985
90fileops.o : Make.defaults86fileops.o : Make.defaults
91chooser.o : Make.defaults87chooser.o : Make.defaults
9288
93$(SUBDIRS): dummy89$(SUBDIRS): dummy
94 mkdir -p $@90 $(MAKE) -C $@
95 $(MAKE) -C $@ -f $(SRCDIR)/../$@/Makefile SRCDIR=$(SRCDIR)/../$@ ARCH=$(ARCH)
9691
97dummy:92dummy:
9893
@@ -111,4 +106,4 @@
111 @exit 1106 @exit 1
112endif107endif
113108
114include $(SRCDIR)/Make.rules109include Make.rules
115110
=== modified file 'alloc.c'
--- alloc.c 2011-08-22 21:17:34 +0000
+++ alloc.c 2013-12-06 20:30:39 +0000
@@ -110,7 +110,7 @@
110 }110 }
111 alloc_add(tmp, size, ALLOC_POOL);111 alloc_add(tmp, size, ALLOC_POOL);
112#ifdef DEBUG_MEM112#ifdef DEBUG_MEM
113 DBG_PRT((L"alloc: allocated %d bytes @[" PTR_FMT "-" PTR_FMT "]\n", size, tmp, tmp+size));113 DBG_PRT((L"alloc: allocated %d bytes @[" PTR_FMT "-" PTR_FMT "]", size, tmp, tmp+size));
114#endif114#endif
115 return tmp;115 return tmp;
116}116}
@@ -140,7 +140,7 @@
140140
141 alloc_add(addr, pgcnt, ALLOC_PAGES);141 alloc_add(addr, pgcnt, ALLOC_PAGES);
142142
143 DBG_PRT((L"allocator: allocated %d pages @0x%lx\n", pgcnt, tmp));143 DBG_PRT((L"allocator: allocated %d pages @" PTR_FMT, pgcnt, tmp));
144144
145 return addr;145 return addr;
146}146}
@@ -162,7 +162,7 @@
162 return; 162 return;
163found:163found:
164#ifdef DEBUG_MEM164#ifdef DEBUG_MEM
165 DBG_PRT((L"free: %s @" PTR_FMT " size=%d\n", 165 DBG_PRT((L"free: %s @" PTR_FMT " size=%d",
166 p->type == ALLOC_POOL ? L"Pool": L"Page", 166 p->type == ALLOC_POOL ? L"Pool": L"Page",
167 addr, p->size));167 addr, p->size));
168#endif168#endif
@@ -196,7 +196,7 @@
196196
197 while(used_allocs) {197 while(used_allocs) {
198#ifdef DEBUG_MEM198#ifdef DEBUG_MEM
199 DBG_PRT((L"free_all %a @ " PTR_FMT "\n", used_allocs->type == ALLOC_POOL ? "pool" : "pages", used_allocs->addr));199 DBG_PRT((L"free_all %a @ " PTR_FMT, used_allocs->type == ALLOC_POOL ? "pool" : "pages", used_allocs->addr));
200#endif 200#endif
201 if (used_allocs->type == ALLOC_POOL)201 if (used_allocs->type == ALLOC_POOL)
202 uefi_call_wrapper(BS->FreePool, 1, used_allocs->addr);202 uefi_call_wrapper(BS->FreePool, 1, used_allocs->addr);
@@ -217,7 +217,15 @@
217alloc_kmem_anywhere(VOID **start_addr, UINTN pgcnt)217alloc_kmem_anywhere(VOID **start_addr, UINTN pgcnt)
218{218{
219 void * tmp;219 void * tmp;
220 if ((tmp = alloc_pages(pgcnt, EfiLoaderData, AllocateAnyPages, *start_addr)) == 0) return -1;220 /*
221 * During "AllocateAnyPages" *start_addr will be ignored.
222 * Therefore we can safely subvert it to reuse this function with
223 * an alloc_kmem_anyhwere_below() semantic...
224 */
225 tmp = alloc_pages(pgcnt, EfiLoaderData,
226 (*start_addr) ? AllocateMaxAddress : AllocateAnyPages,
227 *start_addr);
228 if (tmp == NULL) return -1;
221229
222 kmem_addr = tmp;230 kmem_addr = tmp;
223 kmem_pgcnt = pgcnt;231 kmem_pgcnt = pgcnt;
@@ -241,7 +249,7 @@
241free_kmem(VOID)249free_kmem(VOID)
242{250{
243#ifdef DEBUG_MEM251#ifdef DEBUG_MEM
244 DBG_PRT((L"free_kmem before (" PTR_FMT ", %d)\n", kmem_addr, kmem_pgcnt));252 DBG_PRT((L"free_kmem before (" PTR_FMT ", %d)", kmem_addr, kmem_pgcnt));
245#endif253#endif
246 if (kmem_addr && kmem_pgcnt != 0) {254 if (kmem_addr && kmem_pgcnt != 0) {
247 free(kmem_addr);255 free(kmem_addr);
@@ -249,7 +257,7 @@
249 kmem_pgcnt = 0;257 kmem_pgcnt = 0;
250 }258 }
251#ifdef DEBUG_MEM259#ifdef DEBUG_MEM
252 DBG_PRT((L"free_kmem after (" PTR_FMT ", %d)\n", kmem_addr, kmem_pgcnt));260 DBG_PRT((L"free_kmem after (" PTR_FMT ", %d)", kmem_addr, kmem_pgcnt));
253#endif261#endif
254}262}
255263
256264
=== modified file 'bootparams.c'
--- bootparams.c 2009-12-08 23:48:32 +0000
+++ bootparams.c 2013-12-06 20:30:39 +0000
@@ -96,6 +96,8 @@
96 */96 */
97 Memset(bp, 0, BOOT_PARAM_MEMSIZE);97 Memset(bp, 0, BOOT_PARAM_MEMSIZE);
9898
99 U2ascii(args, cp, cmdline_size);
100
99 if (sysdeps_create_boot_params(bp, cp, initrd, vmcode, cookie) == -1) return 0;101 if (sysdeps_create_boot_params(bp, cp, initrd, vmcode, cookie) == -1) return 0;
100102
101 /*103 /*
102104
=== modified file 'choosers/Makefile'
--- choosers/Makefile 2009-11-01 22:37:21 +0000
+++ choosers/Makefile 2013-12-06 20:30:39 +0000
@@ -23,15 +23,10 @@
23# to use this program.23# to use this program.
24#24#
2525
26SRCDIR = .26include ../Make.defaults
2727include ../Make.rules
28VPATH = $(SRCDIR)28
2929TOPDIR=$(CDIR)/..
30include $(SRCDIR)/../Make.defaults
31include $(SRCDIR)/../Make.rules
32
33TOPDIR=$(SRCDIR)/..
34
3530
36FILES=31FILES=
3732
@@ -47,17 +42,13 @@
4742
48all: $(TARGET)43all: $(TARGET)
4944
50$(TARGET): check-choosers $(TOPDIR)/Make.defaults $(FILES)45$(TARGET): $(TOPDIR)/Make.defaults $(FILES)
51 $(LD) $(LD3264) -o $@ -r $(FILES)46 @if [ -z "$(FILES)" ]; then \
52
53clean:
54 $(RM) -f $(TARGET) $(FILES)
55
56check-choosers:
57 @if [ -n "$(FILES)" ]; then \
58 exit 0; \
59 else \
60 echo "You need to define at least one chooser in Make.defaults"; \47 echo "You need to define at least one chooser in Make.defaults"; \
61 exit 1; \48 exit 1; \
62 fi49 fi
50 $(LD) -o $@ -r $(FILES)
51
52clean:
53 $(RM) -f $(TARGET) $(FILES)
6354
6455
=== modified file 'choosers/simple.c'
--- choosers/simple.c 2011-08-22 21:17:34 +0000
+++ choosers/simple.c 2013-12-06 20:30:39 +0000
@@ -41,8 +41,8 @@
41display_label_info(CHAR16 *name)41display_label_info(CHAR16 *name)
42{42{
43 CHAR16 *desc;43 CHAR16 *desc;
44 CHAR16 initrd_name[CMDLINE_MAXLEN];44 CHAR16 initrd_name[PATHNAME_MAXLEN];
45 CHAR16 vmcode_name[CMDLINE_MAXLEN];45 CHAR16 vmcode_name[PATHNAME_MAXLEN];
46 CHAR16 options_tmp[CMDLINE_MAXLEN];46 CHAR16 options_tmp[CMDLINE_MAXLEN];
47 CHAR16 options[CMDLINE_MAXLEN];47 CHAR16 options[CMDLINE_MAXLEN];
48 CHAR16 kname[FILENAME_MAXLEN];48 CHAR16 kname[FILENAME_MAXLEN];
@@ -254,10 +254,10 @@
254# define BOOT_IMG_STR L"BOOT_IMAGE="254# define BOOT_IMG_STR L"BOOT_IMAGE="
255 CHAR16 buffer[CMDLINE_MAXLEN];255 CHAR16 buffer[CMDLINE_MAXLEN];
256 CHAR16 alt_buffer[CMDLINE_MAXLEN];256 CHAR16 alt_buffer[CMDLINE_MAXLEN];
257 CHAR16 initrd_name[CMDLINE_MAXLEN];257 CHAR16 initrd_name[PATHNAME_MAXLEN];
258 CHAR16 vmcode_name[CMDLINE_MAXLEN];258 CHAR16 vmcode_name[PATHNAME_MAXLEN];
259 CHAR16 args[CMDLINE_MAXLEN];259 CHAR16 args[CMDLINE_MAXLEN];
260 CHAR16 devname[CMDLINE_MAXLEN];260 CHAR16 devname[PATHNAME_MAXLEN];
261 CHAR16 dpath[FILENAME_MAXLEN];261 CHAR16 dpath[FILENAME_MAXLEN];
262 CHAR16 *slash_pos, *colon_pos, *backslash_pos;262 CHAR16 *slash_pos, *colon_pos, *backslash_pos;
263 UINTN len;263 UINTN len;
@@ -290,8 +290,9 @@
290290
291 if (elilo_opt.prompt) {291 if (elilo_opt.prompt) {
292 console_textmode();292 console_textmode();
293 ret = select_kernel(buffer, sizeof(buffer));293 ret = select_kernel(buffer, CMDLINE_MAXLEN);
294 if (ret == -1) return -1;294 if (ret == -1) return -1;
295 /* this function takes really the number of bytes ... */
295 argc = argify(buffer,sizeof(buffer), argv); 296 argc = argify(buffer,sizeof(buffer), argv);
296 index = 0;297 index = 0;
297 }298 }
298299
=== modified file 'choosers/textmenu.c'
--- choosers/textmenu.c 2011-08-22 21:17:34 +0000
+++ choosers/textmenu.c 2013-12-06 20:30:39 +0000
@@ -363,10 +363,10 @@
363{ 363{
364# define BOOT_IMG_STR L"BOOT_IMAGE="364# define BOOT_IMG_STR L"BOOT_IMAGE="
365 CHAR16 label[CMDLINE_MAXLEN];365 CHAR16 label[CMDLINE_MAXLEN];
366 CHAR16 initrd_name[CMDLINE_MAXLEN];366 CHAR16 initrd_name[PATHNAME_MAXLEN];
367 CHAR16 vmcode_name[CMDLINE_MAXLEN];367 CHAR16 vmcode_name[PATHNAME_MAXLEN];
368 CHAR16 args[CMDLINE_MAXLEN];368 CHAR16 args[CMDLINE_MAXLEN];
369 CHAR16 devname[CMDLINE_MAXLEN];369 CHAR16 devname[PATHNAME_MAXLEN];
370 CHAR16 dpath[FILENAME_MAXLEN];370 CHAR16 dpath[FILENAME_MAXLEN];
371 CHAR16 *slash_pos, *colon_pos, *backslash_pos;371 CHAR16 *slash_pos, *colon_pos, *backslash_pos;
372 UINTN len;372 UINTN len;
373373
=== modified file 'config.c'
--- config.c 2011-08-22 21:17:34 +0000
+++ config.c 2013-12-06 20:30:39 +0000
@@ -56,7 +56,7 @@
56 */56 */
57#define ELILO_DEFAULT_CONFIG L"elilo.conf"57#define ELILO_DEFAULT_CONFIG L"elilo.conf"
5858
59#define MAX_STRING CMDLINE_MAXLEN59#define MAX_STRING 512
60#define CONFIG_BUFSIZE 512 /* input buffer size */60#define CONFIG_BUFSIZE 512 /* input buffer size */
6161
62/*62/*
@@ -71,7 +71,7 @@
71 struct boot_image *next;71 struct boot_image *next;
72 CHAR16 label[MAX_STRING];72 CHAR16 label[MAX_STRING];
73 CHAR16 kname[FILENAME_MAXLEN];73 CHAR16 kname[FILENAME_MAXLEN];
74 CHAR16 options[MAX_STRING];74 CHAR16 options[CMDLINE_MAXLEN];
75 CHAR16 initrd[FILENAME_MAXLEN];75 CHAR16 initrd[FILENAME_MAXLEN];
76 CHAR16 vmcode[FILENAME_MAXLEN];76 CHAR16 vmcode[FILENAME_MAXLEN];
77 CHAR16 root[FILENAME_MAXLEN];77 CHAR16 root[FILENAME_MAXLEN];
@@ -100,7 +100,7 @@
100 CHAR16 root[FILENAME_MAXLEN]; /* globally defined root fs */100 CHAR16 root[FILENAME_MAXLEN]; /* globally defined root fs */
101 CHAR16 initrd[FILENAME_MAXLEN];/* globally defined initrd */101 CHAR16 initrd[FILENAME_MAXLEN];/* globally defined initrd */
102 CHAR16 vmcode[FILENAME_MAXLEN];/* globally defined boot-time module */102 CHAR16 vmcode[FILENAME_MAXLEN];/* globally defined boot-time module */
103 CHAR16 options[MAX_STRING];103 CHAR16 options[CMDLINE_MAXLEN];
104 CHAR16 default_image_name[MAX_STRING];104 CHAR16 default_image_name[MAX_STRING];
105 CHAR16 message_file[MAX_MESSAGES][FILENAME_MAXLEN]; 105 CHAR16 message_file[MAX_MESSAGES][FILENAME_MAXLEN];
106 CHAR16 chooser[FILENAME_MAXLEN];/* which image chooser to use */106 CHAR16 chooser[FILENAME_MAXLEN];/* which image chooser to use */
@@ -909,10 +909,10 @@
909{909{
910 boot_image_t *img, *dfl = global_config.default_image;910 boot_image_t *img, *dfl = global_config.default_image;
911911
912 if (dfl) Print(L"\t%s\n", dfl->label);912 if (dfl) Print(L" %s\n", dfl->label);
913913
914 for (img = image_list; img; img = img->next) {914 for (img = image_list; img; img = img->next) {
915 if (img != dfl) Print(L"\t%s\n", img->label);915 if (img != dfl) Print(L" %s\n", img->label);
916 }916 }
917}917}
918918
919919
=== modified file 'debian/changelog'
--- debian/changelog 2011-08-22 21:17:34 +0000
+++ debian/changelog 2013-12-06 20:30:39 +0000
@@ -1,3 +1,52 @@
1elilo (3.14-3ubuntu1) trusty; urgency=low
2
3 * Merge from Debian. LP: #1175026 Remaining changes:
4 - Add nasty hacks for Apple systems - switch to text mode on startup,
5 pass the framebuffer size to the system on boot, and automatically set
6 legacy-free option on ia32 Apple systems.
7 (needs-to-go-upstream)
8 - Perform some Ubuntu branding, put all files in /EFI/ubuntu.
9 (ubuntu-only)
10 - Add a modprobe call if efivars facility is not found.
11
12 -- Jackson Doak <noskcaj@ubuntu.com> Sat, 07 Dec 2013 07:11:04 +1100
13
14elilo (3.14-3) unstable; urgency=low
15
16 * orphan this package as I no longer use it myself
17
18 -- Bdale Garbee <bdale@gag.com> Tue, 07 May 2013 09:37:59 -0600
19
20elilo (3.14-2) unstable; urgency=low
21
22 * remove unnecessary explicit iocharset request in elilo.sh that prevents
23 ia64 installations from succeeding, closes: #685186
24
25 -- Bdale Garbee <bdale@gag.com> Tue, 16 Oct 2012 21:52:16 -0600
26
27elilo (3.14-1) unstable; urgency=low
28
29 * new upstream version
30
31 -- Bdale Garbee <bdale@gag.com> Fri, 29 Jun 2012 11:04:12 -0600
32
33elilo (3.12-5) unstable; urgency=low
34
35 * merge 3.12-4.1 diff from Christian Perrier
36 * add VCS entries to control file
37 * update standards version
38
39 -- Bdale Garbee <bdale@gag.com> Fri, 29 Jun 2012 09:25:49 -0600
40
41elilo (3.12-4.1) unstable; urgency=low
42
43 * Non-maintainer upload.
44 * Fix pending l10n issues. Debconf translations:
45 - Danish (Joe Hansen). Closes: #602446
46 - Polish (Michał Kułach). Closes: #657502
47
48 -- Christian Perrier <bubulle@debian.org> Wed, 01 Feb 2012 20:13:32 +0100
49
1elilo (3.12-4ubuntu1) oneiric; urgency=low50elilo (3.12-4ubuntu1) oneiric; urgency=low
251
3 * Resynchronise with Debian. Remaining changes:52 * Resynchronise with Debian. Remaining changes:
@@ -531,6 +580,3 @@
531580
532 -- Bdale Garbee <bdale@gag.com> Tue, 10 Jul 2001 13:20:28 -0600581 -- Bdale Garbee <bdale@gag.com> Tue, 10 Jul 2001 13:20:28 -0600
533582
534Local variables:
535mode: debian-changelog
536End:
537583
=== modified file 'debian/control'
--- debian/control 2011-08-22 21:17:34 +0000
+++ debian/control 2013-12-06 20:30:39 +0000
@@ -2,9 +2,11 @@
2Section: admin2Section: admin
3Priority: optional3Priority: optional
4Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>4Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
5XSBC-Original-Maintainer: Bdale Garbee <bdale@gag.com>5XSBC-Original-Maintainer: Debian QA Group <packages@qa.debian.org>
6Build-Depends: debhelper (>> 5), binutils (>= 2.17.50.0.14), gcc-multilib [i386 amd64], gnu-efi (>=3.0d), po-debconf6Build-Depends: debhelper (>> 5), binutils (>= 2.17.50.0.14), gcc-multilib [i386 amd64], gnu-efi (>=3.0d), po-debconf
7Standards-Version: 3.9.17Standards-Version: 3.9.3
8Vcs-Git: git://git.gag.com/debian/elilo
9Vcs-Browser: http://git.gag.com/?p=debian/elilo
810
9Package: elilo11Package: elilo
10Architecture: i386 ia64 amd6412Architecture: i386 ia64 amd64
1113
=== modified file 'debian/elilo.sh'
--- debian/elilo.sh 2011-08-22 21:17:34 +0000
+++ debian/elilo.sh 2013-12-06 20:30:39 +0000
@@ -345,7 +345,7 @@
345 fi345 fi
346346
347 [ "$VERBOSE" = 1 ] && echo "$PRG: Mounting $boot..."347 [ "$VERBOSE" = 1 ] && echo "$PRG: Mounting $boot..."
348 mount -t "$fstype" -o codepage=437,iocharset=iso8859-1,rw,noexec,umask=077$loop "$boot" "$TMP/bootstrap.$$"348 mount -t "$fstype" -o codepage=437,rw,noexec,umask=077$loop "$boot" "$TMP/bootstrap.$$"
349 if [ $? != 0 ] ; then349 if [ $? != 0 ] ; then
350 echo 1>&2 "$PRG: An error occured mounting $boot"350 echo 1>&2 "$PRG: An error occured mounting $boot"
351 return 1351 return 1
352352
=== added file 'debian/patches/cross-build.diff'
--- debian/patches/cross-build.diff 1970-01-01 00:00:00 +0000
+++ debian/patches/cross-build.diff 2013-12-06 20:30:39 +0000
@@ -0,0 +1,266 @@
1diff --git a/Makefile b/Makefile
2index f0efebd..9d82cbf 100644
3--- a/Makefile
4+++ b/Makefile
5@@ -25,15 +25,19 @@
6 # to use this program.
7 #
8
9-include Make.defaults
10-TOPDIR=.
11+SRCDIR = .
12+
13+VPATH = $(SRCDIR)
14+
15+include $(SRCDIR)/Make.defaults
16+TOPDIR = $(SRCDIR)
17
18
19 CRTOBJS = $(EFICRT0)/crt0-efi-$(ARCH).o
20 LDSCRIPT = $(EFICRT0)/elf_$(ARCH)_efi.lds
21
22 LDFLAGS += -T $(LDSCRIPT) -shared -Bsymbolic -L$(EFILIB) -L$(GNUEFILIB) $(CRTOBJS)
23-LOADLIBES = -lefi -lgnuefi $(shell $(CC) -print-libgcc-file-name)
24+LOADLIBES = -lefi -lgnuefi $(shell $(CC) $(ARCH3264) -print-libgcc-file-name)
25 FORMAT = efi-app-$(ARCH)
26
27 FILESYSTEM =
28@@ -87,7 +91,8 @@ fileops.o : Make.defaults
29 chooser.o : Make.defaults
30
31 $(SUBDIRS): dummy
32- $(MAKE) -C $@
33+ mkdir -p $@
34+ $(MAKE) -C $@ -f $(SRCDIR)/../$@/Makefile SRCDIR=$(SRCDIR)/../$@ ARCH=$(ARCH)
35
36 dummy:
37
38@@ -106,4 +111,4 @@ ifeq ($(GCC_VERSION),2)
39 @exit 1
40 endif
41
42-include Make.rules
43+include $(SRCDIR)/Make.rules
44diff --git a/choosers/Makefile b/choosers/Makefile
45index 9915f48..85d31c7 100644
46--- a/choosers/Makefile
47+++ b/choosers/Makefile
48@@ -23,10 +23,15 @@
49 # to use this program.
50 #
51
52-include ../Make.defaults
53-include ../Make.rules
54+SRCDIR = .
55+
56+VPATH = $(SRCDIR)
57+
58+include $(SRCDIR)/../Make.defaults
59+include $(SRCDIR)/../Make.rules
60+
61+TOPDIR=$(SRCDIR)/..
62
63-TOPDIR=$(CDIR)/..
64
65 FILES=
66
67@@ -47,7 +52,8 @@ $(TARGET): $(TOPDIR)/Make.defaults $(FILES)
68 echo "You need to define at least one chooser in Make.defaults"; \
69 exit 1; \
70 fi
71- $(LD) -o $@ -r $(FILES)
72+ $(LD) $(LD3264) -o $@ -r $(FILES)
73+
74
75 clean:
76 $(RM) -f $(TARGET) $(FILES)
77diff --git a/devschemes/Makefile b/devschemes/Makefile
78index 6ac05af..5328cb1 100644
79--- a/devschemes/Makefile
80+++ b/devschemes/Makefile
81@@ -23,10 +23,15 @@
82 # to use this program.
83 #
84
85-include ../Make.defaults
86-include ../Make.rules
87+SRCDIR = .
88+
89+VPATH = $(SRCDIR)
90+
91+include $(SRCDIR)/../Make.defaults
92+include $(SRCDIR)/../Make.rules
93+
94+TOPDIR=$(SRCDIR)/..
95
96-TOPDIR=$(CDIR)/..
97
98 FILES=simple.o
99
100@@ -40,7 +45,7 @@ all: $(TARGET)
101 # without doing make clean.
102 #
103 $(TARGET): $(FILES)
104- $(LD) -r -o $@ $(FILES)
105+ $(LD) $(LD3264) -r -o $@ $(FILES)
106
107 clean:
108 $(RM) -f $(TARGET) $(FILES)
109diff --git a/fs/Makefile b/fs/Makefile
110index 8e422b2..0bb303f 100644
111--- a/fs/Makefile
112+++ b/fs/Makefile
113@@ -23,10 +23,15 @@
114 # to use this program.
115 #
116
117-include ../Make.defaults
118-include ../Make.rules
119+SRCDIR = .
120+
121+VPATH = $(SRCDIR)
122+
123+include $(SRCDIR)/../Make.defaults
124+include $(SRCDIR)/../Make.rules
125+
126+TOPDIR=$(SRCDIR)/..
127
128-TOPDIR=$(CDIR)/..
129
130 FILES=
131 ifeq ($(CONFIG_localfs),y)
132@@ -59,7 +64,7 @@ $(TARGET): $(TOPDIR)/Make.defaults $(FILES)
133 echo "You need to define at least one filesystem in Make.defaults"; \
134 exit 1; \
135 fi
136- $(LD) -r -o $@ $(FILES)
137+ $(LD) $(LD3264) -r -o $@ $(FILES)
138
139 clean:
140 $(RM) -f $(TARGET) $(FILES)
141diff --git a/ia32/Makefile b/ia32/Makefile
142index 353ae67..c5f421b 100644
143--- a/ia32/Makefile
144+++ b/ia32/Makefile
145@@ -23,10 +23,15 @@
146 # to use this program.
147 #
148
149-include ../Make.defaults
150-include ../Make.rules
151+SRCDIR = .
152+
153+VPATH = $(SRCDIR)
154+
155+include $(SRCDIR)/../Make.defaults
156+include $(SRCDIR)/../Make.rules
157+
158+TOPDIR=$(SRCDIR)/..
159
160-TOPDIR=$(CDIR)/..
161
162 FILES=system.o config.o bzimage.o plain_loader.o gzip_loader.o gzip.o
163
164@@ -37,13 +42,13 @@ all: $(TARGET)
165 system.o: rmswitch.h
166
167 rmswitch.h: bin_to_h.c rmswitch.S
168- $(CC) -o bin_to_h bin_to_h.c
169- $(AS) -o rmswitch.o rmswitch.S
170+ $(CC) -o bin_to_h $(SRCDIR)/bin_to_h.c
171+ $(AS) -o rmswitch.o $(SRCDIR)/rmswitch.S
172 $(LD) -Ttext 0x0 -s --oformat binary -o rmswitch rmswitch.o
173 ./bin_to_h <rmswitch >rmswitch.h
174
175 $(TARGET): $(FILES)
176- $(LD) -r -o $@ $(FILES)
177+ $(LD) $(LD3264) -r -o $@ $(FILES)
178
179 clean:
180 $(RM) -f $(TARGET) $(FILES)
181diff --git a/ia64/Makefile b/ia64/Makefile
182index a243d0f..bee0a2b 100644
183--- a/ia64/Makefile
184+++ b/ia64/Makefile
185@@ -23,10 +23,15 @@
186 # to use this program.
187 #
188
189-include ../Make.defaults
190-include ../Make.rules
191+SRCDIR = .
192+
193+VPATH = $(SRCDIR)
194+
195+include $(SRCDIR)/../Make.defaults
196+include $(SRCDIR)/../Make.rules
197+
198+TOPDIR=$(SRCDIR)/..
199
200-TOPDIR=$(CDIR)/..
201
202 FILES=system.o config.o fpswa.o plain_loader.o gzip_loader.o \
203 gzip.o memset.o memcpy.o setjmp.o longjmp.o
204diff --git a/tools/Makefile b/tools/Makefile
205index 8858224..97083d7 100644
206--- a/tools/Makefile
207+++ b/tools/Makefile
208@@ -23,10 +23,15 @@
209 # to use this program.
210 #
211
212-include ../Make.defaults
213-include ../Make.rules
214+SRCDIR = .
215+
216+VPATH = $(SRCDIR)
217+
218+include $(SRCDIR)/../Make.defaults
219+include $(SRCDIR)/../Make.rules
220+
221+TOPDIR=$(SRCDIR)/..
222
223-TOPDIR=$(CDIR)/..
224
225 FILES=eliloalt.o
226 TARGET=eliloalt
227diff --git a/x86_64/Makefile b/x86_64/Makefile
228index 4af4b8d..7ade312 100644
229--- a/x86_64/Makefile
230+++ b/x86_64/Makefile
231@@ -23,10 +23,15 @@
232 # to use this program.
233 #
234
235-include ../Make.defaults
236-include ../Make.rules
237+SRCDIR = .
238+
239+VPATH = $(SRCDIR)
240+
241+include $(SRCDIR)/../Make.defaults
242+include $(SRCDIR)/../Make.rules
243+
244+TOPDIR=$(SRCDIR)/..
245
246-TOPDIR=$(CDIR)/..
247
248 FILES=system.o config.o bzimage.o plain_loader.o gzip_loader.o gzip.o
249 #FILES=system.o config.o plain_loader.o
250@@ -38,13 +43,13 @@ all: $(TARGET)
251 system.o: rmswitch.h
252
253 rmswitch.h: bin_to_h.c rmswitch.S
254- $(CC) -o bin_to_h bin_to_h.c
255- $(AS) -o rmswitch.o rmswitch.S
256+ $(CC) -o bin_to_h $(SRCDIR)/bin_to_h.c
257+ $(AS) -o rmswitch.o $(SRCDIR)/rmswitch.S
258 $(LD) -Ttext 0x0 -s --oformat binary -o rmswitch rmswitch.o
259 ./bin_to_h <rmswitch >rmswitch.h
260
261 $(TARGET): $(FILES)
262- $(LD) -r -o $@ $(FILES)
263+ $(LD) $(LD3264) -r -o $@ $(FILES)
264
265 clean:
266 $(RM) -f $(TARGET) $(FILES)
0267
=== removed file 'debian/patches/debian-changes-3.12-3'
--- debian/patches/debian-changes-3.12-3 2010-06-08 13:42:05 +0000
+++ debian/patches/debian-changes-3.12-3 1970-01-01 00:00:00 +0000
@@ -1,284 +0,0 @@
1Description: Upstream changes introduced in version 3.12-3
2 This patch has been created by dpkg-source during the package build.
3 Here's the last changelog entry, hopefully it gives details on why
4 those changes were made:
5 .
6 elilo (3.12-3) unstable; urgency=low
7 .
8 * fix paths and options to build both 32 and 64 bit versions on either
9 flavor of build host, closes: #574713
10 * don't generate noise when following symlink since that's now the normal
11 situation, closes: #581068
12 .
13 The person named in the Author field signed this changelog entry.
14Author: Bdale Garbee <bdale@gag.com>
15Bug-Debian: http://bugs.debian.org/574713
16Bug-Debian: http://bugs.debian.org/581068
17
18---
19The information above should follow the Patch Tagging Guidelines, please
20checkout http://dep.debian.net/deps/dep3/ to learn about the format. Here
21are templates for supplementary fields that you might want to add:
22
23Origin: <vendor|upstream|other>, <url of original patch>
24Bug: <url in upstream bugtracker>
25Bug-Debian: http://bugs.debian.org/<bugnumber>
26Bug-Ubuntu: https://launchpad.net/bugs/<bugnumber>
27Forwarded: <no|not-needed|url proving that it has been forwarded>
28Reviewed-By: <name and email of someone who approved the patch>
29Last-Update: <YYYY-MM-DD>
30
31--- elilo-3.12.orig/Makefile
32+++ elilo-3.12/Makefile
33@@ -25,15 +25,19 @@
34 # to use this program.
35 #
36
37-include Make.defaults
38-TOPDIR=.
39+SRCDIR = .
40+
41+VPATH = $(SRCDIR)
42+
43+include $(SRCDIR)/Make.defaults
44+TOPDIR = $(SRCDIR)
45
46
47 CRTOBJS = $(EFICRT0)/crt0-efi-$(ARCH).o
48 LDSCRIPT = $(EFICRT0)/elf_$(ARCH)_efi.lds
49
50 LDFLAGS += -T $(LDSCRIPT) -shared -Bsymbolic -L$(EFILIB) -L$(GNUEFILIB) $(CRTOBJS)
51-LOADLIBES = -lefi -lgnuefi $(shell $(CC) -print-libgcc-file-name)
52+LOADLIBES = -lefi -lgnuefi $(shell $(CC) $(ARCH3264) -print-libgcc-file-name)
53 FORMAT = efi-app-$(ARCH)
54
55 FILESYSTEM =
56@@ -87,7 +91,8 @@ fileops.o : Make.defaults
57 chooser.o : Make.defaults
58
59 $(SUBDIRS): dummy
60- $(MAKE) -C $@
61+ mkdir -p $@
62+ $(MAKE) -C $@ -f $(SRCDIR)/../$@/Makefile SRCDIR=$(SRCDIR)/../$@ ARCH=$(ARCH)
63
64 dummy:
65
66@@ -106,4 +111,4 @@ ifeq ($(GCC_VERSION),2)
67 @exit 1
68 endif
69
70-include Make.rules
71+include $(SRCDIR)/Make.rules
72--- elilo-3.12.orig/devschemes/Makefile
73+++ elilo-3.12/devschemes/Makefile
74@@ -23,10 +23,15 @@
75 # to use this program.
76 #
77
78-include ../Make.defaults
79-include ../Make.rules
80+SRCDIR = .
81+
82+VPATH = $(SRCDIR)
83+
84+include $(SRCDIR)/../Make.defaults
85+include $(SRCDIR)/../Make.rules
86+
87+TOPDIR=$(SRCDIR)/..
88
89-TOPDIR=$(CDIR)/..
90
91 FILES=simple.o
92
93@@ -40,7 +45,7 @@ all: $(TARGET)
94 # without doing make clean.
95 #
96 $(TARGET): $(FILES)
97- $(LD) -r -o $@ $(FILES)
98+ $(LD) $(LD3264) -r -o $@ $(FILES)
99
100 clean:
101 $(RM) -f $(TARGET) $(FILES)
102--- elilo-3.12.orig/ia64/Makefile
103+++ elilo-3.12/ia64/Makefile
104@@ -23,10 +23,15 @@
105 # to use this program.
106 #
107
108-include ../Make.defaults
109-include ../Make.rules
110+SRCDIR = .
111+
112+VPATH = $(SRCDIR)
113+
114+include $(SRCDIR)/../Make.defaults
115+include $(SRCDIR)/../Make.rules
116+
117+TOPDIR=$(SRCDIR)/..
118
119-TOPDIR=$(CDIR)/..
120
121 FILES=system.o config.o fpswa.o plain_loader.o gzip_loader.o \
122 gzip.o memset.o memcpy.o setjmp.o longjmp.o
123--- elilo-3.12.orig/choosers/Makefile
124+++ elilo-3.12/choosers/Makefile
125@@ -23,10 +23,15 @@
126 # to use this program.
127 #
128
129-include ../Make.defaults
130-include ../Make.rules
131+SRCDIR = .
132+
133+VPATH = $(SRCDIR)
134+
135+include $(SRCDIR)/../Make.defaults
136+include $(SRCDIR)/../Make.rules
137+
138+TOPDIR=$(SRCDIR)/..
139
140-TOPDIR=$(CDIR)/..
141
142 FILES=
143
144@@ -43,11 +48,11 @@ TARGET=choosers.o
145 all: $(TARGET)
146
147 $(TARGET): check-choosers $(TOPDIR)/Make.defaults $(FILES)
148- $(LD) -o $@ -r $(FILES)
149+ $(LD) $(LD3264) -o $@ -r $(FILES)
150
151 clean:
152 $(RM) -f $(TARGET) $(FILES)
153-
154+
155 check-choosers:
156 @if [ -n "$(FILES)" ]; then \
157 exit 0; \
158--- elilo-3.12.orig/ia32/Makefile
159+++ elilo-3.12/ia32/Makefile
160@@ -23,10 +23,15 @@
161 # to use this program.
162 #
163
164-include ../Make.defaults
165-include ../Make.rules
166+SRCDIR = .
167+
168+VPATH = $(SRCDIR)
169+
170+include $(SRCDIR)/../Make.defaults
171+include $(SRCDIR)/../Make.rules
172+
173+TOPDIR=$(SRCDIR)/..
174
175-TOPDIR=$(CDIR)/..
176
177 FILES=system.o config.o bzimage.o plain_loader.o gzip_loader.o gzip.o
178
179@@ -37,13 +42,13 @@ all: $(TARGET)
180 system.o: rmswitch.h
181
182 rmswitch.h: bin_to_h.c rmswitch.S
183- $(CC) -o bin_to_h bin_to_h.c
184- $(AS) -o rmswitch.o rmswitch.S
185+ $(CC) -o bin_to_h $(SRCDIR)/bin_to_h.c
186+ $(AS) -o rmswitch.o $(SRCDIR)/rmswitch.S
187 $(LD) -Ttext 0x0 -s --oformat binary -o rmswitch rmswitch.o
188 ./bin_to_h <rmswitch >rmswitch.h
189
190 $(TARGET): $(FILES)
191- $(LD) -r -o $@ $(FILES)
192+ $(LD) $(LD3264) -r -o $@ $(FILES)
193
194 clean:
195 $(RM) -f $(TARGET) $(FILES)
196--- elilo-3.12.orig/x86_64/Makefile
197+++ elilo-3.12/x86_64/Makefile
198@@ -23,10 +23,15 @@
199 # to use this program.
200 #
201
202-include ../Make.defaults
203-include ../Make.rules
204+SRCDIR = .
205+
206+VPATH = $(SRCDIR)
207+
208+include $(SRCDIR)/../Make.defaults
209+include $(SRCDIR)/../Make.rules
210+
211+TOPDIR=$(SRCDIR)/..
212
213-TOPDIR=$(CDIR)/..
214
215 FILES=system.o config.o bzimage.o plain_loader.o gzip_loader.o gzip.o
216 #FILES=system.o config.o plain_loader.o
217@@ -38,13 +43,13 @@ all: $(TARGET)
218 system.o: rmswitch.h
219
220 rmswitch.h: bin_to_h.c rmswitch.S
221- $(CC) -o bin_to_h bin_to_h.c
222- $(AS) -o rmswitch.o rmswitch.S
223+ $(CC) -o bin_to_h $(SRCDIR)/bin_to_h.c
224+ $(AS) -o rmswitch.o $(SRCDIR)/rmswitch.S
225 $(LD) -Ttext 0x0 -s --oformat binary -o rmswitch rmswitch.o
226 ./bin_to_h <rmswitch >rmswitch.h
227
228 $(TARGET): $(FILES)
229- $(LD) -r -o $@ $(FILES)
230+ $(LD) $(LD3264) -r -o $@ $(FILES)
231
232 clean:
233 $(RM) -f $(TARGET) $(FILES)
234--- elilo-3.12.orig/tools/Makefile
235+++ elilo-3.12/tools/Makefile
236@@ -23,10 +23,15 @@
237 # to use this program.
238 #
239
240-include ../Make.defaults
241-include ../Make.rules
242+SRCDIR = .
243+
244+VPATH = $(SRCDIR)
245+
246+include $(SRCDIR)/../Make.defaults
247+include $(SRCDIR)/../Make.rules
248+
249+TOPDIR=$(SRCDIR)/..
250
251-TOPDIR=$(CDIR)/..
252
253 FILES=eliloalt.o
254 TARGET=eliloalt
255--- elilo-3.12.orig/fs/Makefile
256+++ elilo-3.12/fs/Makefile
257@@ -23,10 +23,15 @@
258 # to use this program.
259 #
260
261-include ../Make.defaults
262-include ../Make.rules
263+SRCDIR = .
264+
265+VPATH = $(SRCDIR)
266+
267+include $(SRCDIR)/../Make.defaults
268+include $(SRCDIR)/../Make.rules
269+
270+TOPDIR=$(SRCDIR)/..
271
272-TOPDIR=$(CDIR)/..
273
274 FILES=
275 ifeq ($(CONFIG_localfs),y)
276@@ -55,7 +60,7 @@ all: $(TARGET)
277 # without doing make clean.
278 #
279 $(TARGET): check-filesystems $(TOPDIR)/Make.defaults $(FILES)
280- $(LD) -r -o $@ $(FILES)
281+ $(LD) $(LD3264) -r -o $@ $(FILES)
282
283 clean:
284 $(RM) -f $(TARGET) $(FILES)
2850
=== modified file 'debian/patches/fix-paths.diff'
--- debian/patches/fix-paths.diff 2010-06-08 13:42:05 +0000
+++ debian/patches/fix-paths.diff 2013-12-06 20:30:39 +0000
@@ -12,7 +12,7 @@
12 12
13 OPTIMFLAGS = -O2 13 OPTIMFLAGS = -O2
14 DEBUGFLAGS = -Wall14 DEBUGFLAGS = -Wall
15-CFLAGS = $(OPTIMFLAGS) -fno-strict-aliasing -fpic -fshort-wchar $(DEBUGFLAGS)15-CFLAGS = $(OPTIMFLAGS) -fno-stack-protector -fno-strict-aliasing -fpic -fshort-wchar $(DEBUGFLAGS)
16+CFLAGS = $(ARCH3264) $(OPTIMFLAGS) -fpic -fshort-wchar $(DEBUGFLAGS)16+CFLAGS = $(ARCH3264) $(OPTIMFLAGS) -fpic -fshort-wchar $(DEBUGFLAGS)
17+ASFLAGS = $(ARCH3264)17+ASFLAGS = $(ARCH3264)
18 LDFLAGS = -nostdlib -znocombreloc18 LDFLAGS = -nostdlib -znocombreloc
1919
=== modified file 'debian/patches/series'
--- debian/patches/series 2011-08-22 21:17:34 +0000
+++ debian/patches/series 2013-12-06 20:30:39 +0000
@@ -1,3 +1,3 @@
1fix-paths.diff1fix-paths.diff
2apple.diff2apple.diff
3debian-changes-3.12-33cross-build.diff
44
=== added file 'debian/po/da.po'
--- debian/po/da.po 1970-01-01 00:00:00 +0000
+++ debian/po/da.po 2013-12-06 20:30:39 +0000
@@ -0,0 +1,86 @@
1# Danish translation elilo.
2# Copyright (C) 2010 elilo & nedenstående oversættere.
3# This file is distributed under the same license as the elilo package.
4# Joe Hansen (joedalton2@yahoo.dk), 2010.
5#
6msgid ""
7msgstr ""
8"Project-Id-Version: elilo\n"
9"Report-Msgid-Bugs-To: bdale@gag.com\n"
10"POT-Creation-Date: 2007-03-13 08:22+0100\n"
11"PO-Revision-Date: 2010-11-04 12:42+0000\n"
12"Last-Translator: Joe Hansen <joedalton2@yahoo.dk>\n"
13"Language-Team: Danish <dansk@dansk-gruppen.dk>\n"
14"Language: da\n"
15"MIME-Version: 1.0\n"
16"Content-Type: text/plain; charset=UTF-8\n"
17"Content-Transfer-Encoding: 8bit\n"
18
19#. Type: boolean
20#. Description
21#: ../elilo.templates:1001
22msgid "Automatically run elilo?"
23msgstr "Kør automatisk elilo?"
24
25#. Type: boolean
26#. Description
27#: ../elilo.templates:1001
28msgid ""
29"It is necessary to run /usr/sbin/elilo to install the new elilo binary into "
30"the EFI partition."
31msgstr ""
32"Det er nødvendigt at køre /usr/sbin/elilo for at installere den nye binære "
33"elilo til EFI-partitionen."
34
35#. Type: boolean
36#. Description
37#: ../elilo.templates:1001
38msgid ""
39"WARNING: This procedure will write data into the debian directory of the EFI "
40"disk partition, possibly overwriting files installed there by hand."
41msgstr ""
42"ADVARSEL: Denne procedure vil skrive data til debianmappen på EFI-"
43"diskpartitionen, og muligvis overskrive filer installeret der manuelt."
44
45#. Type: boolean
46#. Description
47#: ../elilo.templates:1001
48msgid ""
49"Not installing the new elilo binary on the EFI disk partition may leave the "
50"system in an unbootable state. Alternatives to automatic updating of the "
51"partition include running /usr/sbin/elilo by hand, or installing the new /"
52"usr/lib/elilo/elilo.efi executable into the EFI disk partition manually."
53msgstr ""
54"Undladelse af at installere den nye binære elilo på EFI-diskpartionen kan "
55"efterlade systemet i en tilstand, hvor det ikke kan startes op. Alternativer "
56"til automatisk opdatering af partitionen inkluderer at køre /usr/sbin/elilo "
57"manuelt, eller installere den nye kørbare /usr/lib/elilo/elilo.efi i EFI-"
58"diskpartitionen manuelt."
59
60#. Type: boolean
61#. Description
62#: ../elilo.templates:2001
63msgid "Reformat and reload EFI partition?"
64msgstr "Genformater og genindlæs EFI-partition?"
65
66#. Type: boolean
67#. Description
68#: ../elilo.templates:2001
69msgid ""
70"The structure of files in the EFI disk partition has changed since pre-3.2 "
71"versions of the elilo package. The EFI boot manager entry for Debian needs "
72"to be updated to reflect these changes."
73msgstr ""
74"Strukturen på filer i EFI-diskpartitionen har ændret sig siden pre-3.2-"
75"versionerne af elilopakken. Debians punkt i EFI-opstartshåndteringen skal "
76"opdateres for at afspejle disse ændringer."
77
78#. Type: boolean
79#. Description
80#: ../elilo.templates:2001
81msgid ""
82"In most cases, if no manual changes to the EFI partition content need to be "
83"preserved, this update can be handled automatically."
84msgstr ""
85"I de fleste tilfælde, hvor der ikke er behov for at bevare manuelle "
86"ændringer, kan denne opdatering håndteres automatisk."
087
=== added file 'debian/po/pl.po'
--- debian/po/pl.po 1970-01-01 00:00:00 +0000
+++ debian/po/pl.po 2013-12-06 20:30:39 +0000
@@ -0,0 +1,90 @@
1# Copyright (C) 2007
2# This file is distributed under the same license as the elilo package.
3#
4# Michał Kułach <michal.kulach@gmail.com>, 2012.
5msgid ""
6msgstr ""
7"Project-Id-Version: \n"
8"Report-Msgid-Bugs-To: bdale@gag.com\n"
9"POT-Creation-Date: 2007-03-13 08:22+0100\n"
10"PO-Revision-Date: 2012-01-26 13:57+0100\n"
11"Last-Translator: Michał Kułach <michal.kulach@gmail.com>\n"
12"Language-Team: Polish <debian-l10n-polish@lists.debian.org>\n"
13"Language: pl\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
17"X-Generator: Lokalize 1.2\n"
18"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
19"|| n%100>=20) ? 1 : 2);\n"
20
21#. Type: boolean
22#. Description
23#: ../elilo.templates:1001
24msgid "Automatically run elilo?"
25msgstr "Uruchomić elilo automatycznie?"
26
27#. Type: boolean
28#. Description
29#: ../elilo.templates:1001
30msgid ""
31"It is necessary to run /usr/sbin/elilo to install the new elilo binary into "
32"the EFI partition."
33msgstr ""
34"Konieczne jest uruchomienie /usr/sbin/elilo, aby zainstalować nowy plik "
35"binarny elilo na partycji EFI."
36
37#. Type: boolean
38#. Description
39#: ../elilo.templates:1001
40msgid ""
41"WARNING: This procedure will write data into the debian directory of the EFI "
42"disk partition, possibly overwriting files installed there by hand."
43msgstr ""
44"OSTRZEŻENIE: Ta procedura zapisze dane do katalogu debian na partycji "
45"dyskowej EFI, potencjalnie nadpisując pliki, które zostały tam zainstalowane "
46"ręcznie."
47
48#. Type: boolean
49#. Description
50#: ../elilo.templates:1001
51msgid ""
52"Not installing the new elilo binary on the EFI disk partition may leave the "
53"system in an unbootable state. Alternatives to automatic updating of the "
54"partition include running /usr/sbin/elilo by hand, or installing the new /"
55"usr/lib/elilo/elilo.efi executable into the EFI disk partition manually."
56msgstr ""
57"Niezainstalowanie nowego pliku binarnego elilo na partycji dyskowej EFI może "
58"uniemożliwić ponowny rozruch systemu. Alternatywami dla automatycznego "
59"uaktualnienia partycji są: ręczne uruchomienie /usr/sbin/elilo lub ręczne "
60"zainstalowanie nowego pliku wykonywalnego /usr/lib/elilo/elilo.efi na "
61"partycji dyskowej EFI."
62
63#. Type: boolean
64#. Description
65#: ../elilo.templates:2001
66msgid "Reformat and reload EFI partition?"
67msgstr "Sformatować i załadować partycję EFI ponownie?"
68
69#. Type: boolean
70#. Description
71#: ../elilo.templates:2001
72msgid ""
73"The structure of files in the EFI disk partition has changed since pre-3.2 "
74"versions of the elilo package. The EFI boot manager entry for Debian needs "
75"to be updated to reflect these changes."
76msgstr ""
77"Struktura plików na partycji dyskowej EFI zmieniła się od czasu wersji "
78"pre-3.2 pakietu elilo. Wpis dla Debiana w menedżerze rozruchu EFI musi "
79"zostać uaktualniony, aby uwzględnić te zmiany."
80
81#. Type: boolean
82#. Description
83#: ../elilo.templates:2001
84msgid ""
85"In most cases, if no manual changes to the EFI partition content need to be "
86"preserved, this update can be handled automatically."
87msgstr ""
88"W większości przypadków, jeśli nie ma potrzeby zachowania, dokonanych "
89"ręcznie, zmian w zawartości partycji EFI, uaktualnienie może zostać wykonane "
90"automatycznie."
091
=== modified file 'debian/rules'
--- debian/rules 2011-08-22 21:17:34 +0000
+++ debian/rules 2013-12-06 20:30:39 +0000
@@ -7,13 +7,9 @@
77
8buildarch := $(shell dpkg-architecture -qDEB_BUILD_ARCH)8buildarch := $(shell dpkg-architecture -qDEB_BUILD_ARCH)
99
10configure: configure-stamp10build: build-arch build-indep
11configure-stamp:11build-arch: build-stamp
12 dh_testdir12build-indep: build-stamp
13
14 touch configure-stamp
15
16build: configure-stamp build-stamp
17build-stamp:13build-stamp:
18 dh_testdir14 dh_testdir
1915
@@ -34,7 +30,7 @@
34clean:30clean:
35 dh_testdir31 dh_testdir
36 dh_testroot32 dh_testroot
37 rm -f build-stamp configure-stamp33 rm -f build-stamp
3834
39 [ ! -f Makefile ] || $(MAKE) clean35 [ ! -f Makefile ] || $(MAKE) clean
4036
@@ -107,4 +103,4 @@
107 dh_builddeb103 dh_builddeb
108104
109binary: binary-indep binary-arch105binary: binary-indep binary-arch
110.PHONY: build clean binary-indep binary-arch binary install configure106.PHONY: build-indep build-arch build clean binary-indep binary-arch binary install
111107
=== modified file 'devschemes/Makefile'
--- devschemes/Makefile 2009-11-01 22:37:21 +0000
+++ devschemes/Makefile 2013-12-06 20:30:39 +0000
@@ -23,15 +23,10 @@
23# to use this program.23# to use this program.
24#24#
2525
26SRCDIR = .26include ../Make.defaults
2727include ../Make.rules
28VPATH = $(SRCDIR)28
2929TOPDIR=$(CDIR)/..
30include $(SRCDIR)/../Make.defaults
31include $(SRCDIR)/../Make.rules
32
33TOPDIR=$(SRCDIR)/..
34
3530
36FILES=simple.o31FILES=simple.o
3732
@@ -45,7 +40,7 @@
45# without doing make clean.40# without doing make clean.
46#41#
47$(TARGET): $(FILES)42$(TARGET): $(FILES)
48 $(LD) $(LD3264) -r -o $@ $(FILES)43 $(LD) -r -o $@ $(FILES)
4944
50clean:45clean:
51 $(RM) -f $(TARGET) $(FILES)46 $(RM) -f $(TARGET) $(FILES)
5247
=== modified file 'elilo.c'
--- elilo.c 2011-08-22 21:17:34 +0000
+++ elilo.c 2013-12-06 20:30:39 +0000
@@ -95,7 +95,7 @@
95INTN95INTN
96kernel_load(EFI_HANDLE image, CHAR16 *kname, kdesc_t *kd, memdesc_t *imem, memdesc_t *mmem)96kernel_load(EFI_HANDLE image, CHAR16 *kname, kdesc_t *kd, memdesc_t *imem, memdesc_t *mmem)
97{97{
98 CHAR16 kernel[CMDLINE_MAXLEN];98 CHAR16 kernel[FILENAME_MAXLEN];
9999
100 /*100 /*
101 * Do the vm image switch here101 * Do the vm image switch here
102102
=== modified file 'elilo.h'
--- elilo.h 2011-08-22 21:17:34 +0000
+++ elilo.h 2013-12-06 20:30:39 +0000
@@ -29,7 +29,7 @@
29#ifndef __ELILO_H__29#ifndef __ELILO_H__
30#define __ELILO_H__30#define __ELILO_H__
3131
32#define ELILO_VERSION L"3.12"32#define ELILO_VERSION L"3.14"
3333
34#include <efi.h>34#include <efi.h>
3535
@@ -54,6 +54,10 @@
54#define ROUNDUP(x,a) (((x) + (a) - 1) & ~((a) - 1))54#define ROUNDUP(x,a) (((x) + (a) - 1) & ~((a) - 1))
55#define ROUNDDOWN(x,a) ((x) & ~((a) - 1))55#define ROUNDDOWN(x,a) ((x) & ~((a) - 1))
5656
57#ifndef UINT32_MAX
58#define UINT32_MAX ((UINT32)-1)
59#endif
60
57/*61/*
58 * Elilo Boot modes62 * Elilo Boot modes
59 */63 */
@@ -65,7 +69,8 @@
65#define ELILO_DEFAULT_TIMEOUT ELILO_TIMEOUT_INFINITY69#define ELILO_DEFAULT_TIMEOUT ELILO_TIMEOUT_INFINITY
66#define ELILO_TIMEOUT_INFINITY (~0UL)70#define ELILO_TIMEOUT_INFINITY (~0UL)
6771
68#define CMDLINE_MAXLEN 512 /* needed by ia32 */72#define CMDLINE_MAXLEN 2048
73#define PATHNAME_MAXLEN 512
69#define FILENAME_MAXLEN 25674#define FILENAME_MAXLEN 256
70#define MAX_ARGS 25675#define MAX_ARGS 256
71/* Just pick an arbitrary number that's high enough for now :o) */76/* Just pick an arbitrary number that's high enough for now :o) */
@@ -212,6 +217,7 @@
212extern INTN sysdeps_getopt(INTN, INTN, CHAR16 *);217extern INTN sysdeps_getopt(INTN, INTN, CHAR16 *);
213extern VOID sysdeps_print_cmdline_opts(VOID);218extern VOID sysdeps_print_cmdline_opts(VOID);
214extern INTN sysdeps_register_options(VOID);219extern INTN sysdeps_register_options(VOID);
220extern VOID *sysdeps_checkfix_initrd(VOID *, memdesc_t *);
215221
216#define CHAR_SLASH L'/'222#define CHAR_SLASH L'/'
217#define CHAR_BACKSLASH L'\\'223#define CHAR_BACKSLASH L'\\'
218224
=== modified file 'fileops.c'
--- fileops.c 2008-06-19 19:06:08 +0000
+++ fileops.c 2013-12-06 20:30:39 +0000
@@ -497,7 +497,7 @@
497497
498 str2 = str == NULL ? L"Unknown" : str;498 str2 = str == NULL ? L"Unknown" : str;
499499
500 DBG_PRT((L"%s : %-8s : %s\n", dev_tab[idx].name,500 DBG_PRT((L"%s : %-8s : %s", dev_tab[idx].name,
501 (dev_tab[idx].fops ? dev_tab[idx].fops->name: L"N/A"), str2));501 (dev_tab[idx].fops ? dev_tab[idx].fops->name: L"N/A"), str2));
502502
503 if (str) FreePool(str);503 if (str) FreePool(str);
504504
=== modified file 'fs/Makefile'
--- fs/Makefile 2009-11-01 22:37:21 +0000
+++ fs/Makefile 2013-12-06 20:30:39 +0000
@@ -23,15 +23,10 @@
23# to use this program.23# to use this program.
24#24#
2525
26SRCDIR = .26include ../Make.defaults
2727include ../Make.rules
28VPATH = $(SRCDIR)28
2929TOPDIR=$(CDIR)/..
30include $(SRCDIR)/../Make.defaults
31include $(SRCDIR)/../Make.rules
32
33TOPDIR=$(SRCDIR)/..
34
3530
36FILES=31FILES=
37ifeq ($(CONFIG_localfs),y)32ifeq ($(CONFIG_localfs),y)
@@ -59,17 +54,13 @@
59# XXX: does not trigger recompile when changing filesystem selection54# XXX: does not trigger recompile when changing filesystem selection
60# without doing make clean.55# without doing make clean.
61#56#
62$(TARGET): check-filesystems $(TOPDIR)/Make.defaults $(FILES)57$(TARGET): $(TOPDIR)/Make.defaults $(FILES)
63 $(LD) $(LD3264) -r -o $@ $(FILES)58 @if [ -z "$(FILES)" ]; then \
64
65clean:
66 $(RM) -f $(TARGET) $(FILES)
67
68check-filesystems:
69 @if [ -n "$(FILES)" ]; then \
70 exit 0; \
71 else \
72 echo "You need to define at least one filesystem in Make.defaults"; \59 echo "You need to define at least one filesystem in Make.defaults"; \
73 exit 1; \60 exit 1; \
74 fi61 fi
62 $(LD) -r -o $@ $(FILES)
63
64clean:
65 $(RM) -f $(TARGET) $(FILES)
7566
7667
=== modified file 'fs/localfs.c'
--- fs/localfs.c 2008-06-19 19:06:08 +0000
+++ fs/localfs.c 2013-12-06 20:30:39 +0000
@@ -98,7 +98,7 @@
9898
99 DBG_PRT((L"localfs_open on %s\n", name));99 DBG_PRT((L"localfs_open on %s\n", name));
100100
101 status = uefi_call_wrapper(lfs->volume->Open, 5, lfs->volume, &fh, name, EFI_FILE_MODE_READ, 0);101 status = uefi_call_wrapper(lfs->volume->Open, 5, lfs->volume, &fh, name, EFI_FILE_MODE_READ, (UINT64)0);
102 if (status == EFI_SUCCESS) {102 if (status == EFI_SUCCESS) {
103 *fd = LOCALFS_F2FD(fh);103 *fd = LOCALFS_F2FD(fh);
104 } 104 }
105105
=== modified file 'glue_netfs.c'
--- glue_netfs.c 2011-08-22 21:17:34 +0000
+++ glue_netfs.c 2013-12-06 20:30:39 +0000
@@ -65,6 +65,19 @@
65static CHAR16 *hexa=L"0123456789ABCDEF";65static CHAR16 *hexa=L"0123456789ABCDEF";
6666
67static VOID67static VOID
68convert_mac2hex(UINT8 *hw_addr,INTN l, CHAR16 *str)
69{
70 UINTN i;
71
72 for (i=0 ; i < l; i++) {
73 str[3*i] = hexa[(hw_addr[i] & 0xf0)>>4];
74 str[3*i+1] = hexa[hw_addr[i] & 0x0f];
75 str[3*i+2] = ':';
76 }
77 str[3*l-1]='\0';
78}
79
80static VOID
68convert_ip2hex(UINT8 *ip, INTN l, CHAR16 *str)81convert_ip2hex(UINT8 *ip, INTN l, CHAR16 *str)
69{82{
70 UINTN i;83 UINTN i;
@@ -153,6 +166,8 @@
153 set_var(VAR_NETFS_DOMAINAME, info.domainame);166 set_var(VAR_NETFS_DOMAINAME, info.domainame);
154167
155 if (info.using_pxe) {168 if (info.using_pxe) {
169 DBG_PRT((L"netfs_setdefaults: using_pxe"));
170
156 status = netfs->netfs_query_layer(netfs, 0, NETFS_CONFIG_LAYER, maxlen, config[0].fname);171 status = netfs->netfs_query_layer(netfs, 0, NETFS_CONFIG_LAYER, maxlen, config[0].fname);
157 if (EFI_ERROR(status)) {172 if (EFI_ERROR(status)) {
158 StrnCpy(config[0].fname, NETFS_DEFAULT_CONFIG, maxlen-1);173 StrnCpy(config[0].fname, NETFS_DEFAULT_CONFIG, maxlen-1);
@@ -181,6 +196,8 @@
181# endif 196# endif
182197
183# define CONFIG_EXTENSION L".conf\0"198# define CONFIG_EXTENSION L".conf\0"
199
200 DBG_PRT((L"netfs_setdefaults: machine specific (!using_pxe)"));
184 /*201 /*
185 * will try machine/subnet specific files first.202 * will try machine/subnet specific files first.
186 * the filenames are constructed based on the IP(v4) address203 * the filenames are constructed based on the IP(v4) address
@@ -206,6 +223,12 @@
206223
207 StrnCpy(config[6].fname, str, maxlen-1);224 StrnCpy(config[6].fname, str, maxlen-1);
208 StrnCpy(config[6].fname+2, CONFIG_EXTENSION, 6);225 StrnCpy(config[6].fname+2, CONFIG_EXTENSION, 6);
226
227 /* use the MAC address as a possible file name as well */
228 convert_mac2hex(info.hw_addr,6,str);
229 StrnCpy(config[7].fname, str, maxlen-1);
230 StrnCpy(config[7].fname+17, CONFIG_EXTENSION, 6);
231
209#else232#else
210 StrnCpy(config[0].fname, NETFS_DEFAULT_CONFIG, maxlen-1);233 StrnCpy(config[0].fname, NETFS_DEFAULT_CONFIG, maxlen-1);
211 config[0].fname[maxlen-1] = CHAR_NULL;234 config[0].fname[maxlen-1] = CHAR_NULL;
212235
=== modified file 'ia32/Makefile'
--- ia32/Makefile 2010-03-15 16:24:32 +0000
+++ ia32/Makefile 2013-12-06 20:30:39 +0000
@@ -23,15 +23,10 @@
23# to use this program.23# to use this program.
24#24#
2525
26SRCDIR = .26include ../Make.defaults
2727include ../Make.rules
28VPATH = $(SRCDIR)28
2929TOPDIR=$(CDIR)/..
30include $(SRCDIR)/../Make.defaults
31include $(SRCDIR)/../Make.rules
32
33TOPDIR=$(SRCDIR)/..
34
3530
36FILES=system.o config.o bzimage.o plain_loader.o gzip_loader.o gzip.o31FILES=system.o config.o bzimage.o plain_loader.o gzip_loader.o gzip.o
3732
@@ -42,13 +37,13 @@
42system.o: rmswitch.h37system.o: rmswitch.h
4338
44rmswitch.h: bin_to_h.c rmswitch.S39rmswitch.h: bin_to_h.c rmswitch.S
45 $(CC) -o bin_to_h $(SRCDIR)/bin_to_h.c40 $(CC) -o bin_to_h bin_to_h.c
46 $(AS) -o rmswitch.o $(SRCDIR)/rmswitch.S41 $(AS) -o rmswitch.o rmswitch.S
47 $(LD) -Ttext 0x0 -s --oformat binary -o rmswitch rmswitch.o42 $(LD) -Ttext 0x0 -s --oformat binary -o rmswitch rmswitch.o
48 ./bin_to_h <rmswitch >rmswitch.h43 ./bin_to_h <rmswitch >rmswitch.h
4944
50$(TARGET): $(FILES)45$(TARGET): $(FILES)
51 $(LD) $(LD3264) -r -o $@ $(FILES)46 $(LD) -r -o $@ $(FILES)
5247
53clean:48clean:
54 $(RM) -f $(TARGET) $(FILES)49 $(RM) -f $(TARGET) $(FILES)
5550
=== modified file 'ia32/bzimage.c'
--- ia32/bzimage.c 2011-08-22 21:17:34 +0000
+++ ia32/bzimage.c 2013-12-06 20:30:39 +0000
@@ -169,7 +169,7 @@
169 kernel_start));169 kernel_start));
170 }170 }
171171
172 kernel_load_address = kernel_start;172 kernel_load_address = NULL; /* allocate anywhere! */
173173
174 if (alloc_kmem(kernel_start, EFI_SIZE_TO_PAGES(kernel_size)) != 0) {174 if (alloc_kmem(kernel_start, EFI_SIZE_TO_PAGES(kernel_size)) != 0) {
175 /*175 /*
176176
=== modified file 'ia32/system.c'
--- ia32/system.c 2009-12-08 23:48:32 +0000
+++ ia32/system.c 2013-12-06 20:30:39 +0000
@@ -149,6 +149,12 @@
149 return 0;149 return 0;
150}150}
151151
152VOID *
153sysdeps_checkfix_initrd(VOID *start_addr, memdesc_t *imem)
154{
155 return start_addr;
156}
157
152VOID158VOID
153sysdeps_free_boot_params(boot_params_t *bp)159sysdeps_free_boot_params(boot_params_t *bp)
154{160{
@@ -201,7 +207,19 @@
201 (VOID **)Gop_handle);207 (VOID **)Gop_handle);
202208
203 if (EFI_ERROR(efi_status) && efi_status != EFI_BUFFER_TOO_SMALL) {209 if (EFI_ERROR(efi_status) && efi_status != EFI_BUFFER_TOO_SMALL) {
204 ERR_PRT((L"LocateHandle GopProtocol failed."));210 Print(L"LocateHandle GopProtocol failed.\n");
211 Print(L"--Either no graphics head is installed,\n" \
212 "--efi console is set to serial, or,\n" \
213 "--the EFI firmware version of this machine is\n" \
214 "--older than UEFI 2.0. and does not support GOP");
215 Print(L"you can SAFELY IGNORE this error. elilo will\n" \
216 "default to text-mode.\n Alternatively you can " \
217 "now force text mode by setting config variable\n" \
218 "text_mode=1 for x86 in elilo.conf or via cmdline.\n\n");
219 Print(L"However if this is the last text output you see\n" \
220 "ensure that your kernel console command line\n " \
221 "variable matches up with the actual efi boot menu\n" \
222 "console output settings. for example efi console\n\n");
205 return -1;223 return -1;
206 }224 }
207 Gop_handle = alloc(size, 0);225 Gop_handle = alloc(size, 0);
208226
=== modified file 'ia64/Makefile'
--- ia64/Makefile 2009-11-01 22:37:21 +0000
+++ ia64/Makefile 2013-12-06 20:30:39 +0000
@@ -23,15 +23,10 @@
23# to use this program.23# to use this program.
24#24#
2525
26SRCDIR = .26include ../Make.defaults
2727include ../Make.rules
28VPATH = $(SRCDIR)28
2929TOPDIR=$(CDIR)/..
30include $(SRCDIR)/../Make.defaults
31include $(SRCDIR)/../Make.rules
32
33TOPDIR=$(SRCDIR)/..
34
3530
36FILES=system.o config.o fpswa.o plain_loader.o gzip_loader.o \31FILES=system.o config.o fpswa.o plain_loader.o gzip_loader.o \
37 gzip.o memset.o memcpy.o setjmp.o longjmp.o32 gzip.o memset.o memcpy.o setjmp.o longjmp.o
3833
=== modified file 'ia64/system.c'
--- ia64/system.c 2009-11-01 22:37:21 +0000
+++ ia64/system.c 2013-12-06 20:30:39 +0000
@@ -140,6 +140,12 @@
140 return 0;140 return 0;
141}141}
142142
143VOID *
144sysdeps_checkfix_initrd(VOID *start_addr, memdesc_t *imem)
145{
146 return start_addr;
147}
148
143/* Flush data cache [addr; addr + len], and sync with icache. */149/* Flush data cache [addr; addr + len], and sync with icache. */
144void150void
145flush_dcache (CHAR8 *addr, UINT64 len)151flush_dcache (CHAR8 *addr, UINT64 len)
146152
=== modified file 'initrd.c'
--- initrd.c 2009-12-08 23:48:32 +0000
+++ initrd.c 2013-12-06 20:30:39 +0000
@@ -41,7 +41,11 @@
41load_file(CHAR16 *filename, memdesc_t *image)41load_file(CHAR16 *filename, memdesc_t *image)
42{42{
43 EFI_STATUS status;43 EFI_STATUS status;
44 VOID *start_addr = NULL;44 /*
45 * Actually using the value from sysdeps_initrd_get_addr()
46 * instead of NULL is no change for ia64!
47 */
48 VOID *start_addr = image->start_addr;
45 UINTN pgcnt;49 UINTN pgcnt;
46 UINT64 size = 0;50 UINT64 size = 0;
47 fops_fd_t fd;51 fops_fd_t fd;
@@ -71,7 +75,11 @@
71 /* round up to get required number of pages (4KB) */75 /* round up to get required number of pages (4KB) */
72 image->pgcnt = pgcnt = EFI_SIZE_TO_PAGES(image->size);76 image->pgcnt = pgcnt = EFI_SIZE_TO_PAGES(image->size);
7377
74 start_addr = alloc_pages(pgcnt, EfiLoaderData, start_addr ? AllocateAddress : AllocateAnyPages, 0 );78 start_addr = alloc_pages(pgcnt, EfiLoaderData,
79 start_addr ? AllocateAddress : AllocateAnyPages, start_addr);
80
81 start_addr = sysdeps_checkfix_initrd(start_addr, image);
82
75 if (start_addr == NULL) {83 if (start_addr == NULL) {
76 ERR_PRT((L"Failed to allocate %d pages for %s image", pgcnt,84 ERR_PRT((L"Failed to allocate %d pages for %s image", pgcnt,
77 filename));85 filename));
7886
=== modified file 'strops.c'
--- strops.c 2004-02-14 22:21:36 +0000
+++ strops.c 2013-12-06 20:30:39 +0000
@@ -41,11 +41,11 @@
41{41{
42 CHAR16 *res = dst;42 CHAR16 *res = dst;
4343
44 while (size-- && (*dst++ = *src++) != CHAR_NULL);44 while (size && size-- && (*dst++ = *src++) != CHAR_NULL);
45 /*45 /*
46 * does the null padding46 * does the null padding
47 */47 */
48 while (size-- > 0) *dst++ = CHAR_NULL;48 while (size && size-- > 0) *dst++ = CHAR_NULL;
4949
50 return res;50 return res;
51}51}
@@ -55,11 +55,11 @@
55{55{
56 CHAR8 *res = dst;56 CHAR8 *res = dst;
5757
58 while (size-- && (*dst++ = (CHAR8)*src++) != '\0');58 while (size && size-- && (*dst++ = (CHAR8)*src++) != '\0');
59 /*59 /*
60 * does the null padding60 * does the null padding
61 */61 */
62 while (size-- > 0) *dst++ = '\0';62 while (size && size-- > 0) *dst++ = '\0';
6363
64 return res;64 return res;
65}65}
@@ -76,11 +76,11 @@
76{76{
77 CHAR8 *res = dst;77 CHAR8 *res = dst;
7878
79 while (size-- && (*dst++ = *src++) != '\0');79 while (size && size-- && (*dst++ = *src++) != '\0');
80 /*80 /*
81 * does the null padding81 * does the null padding
82 */82 */
83 while (size-- > 0) *dst++ = '\0';83 while (size && size-- > 0) *dst++ = '\0';
8484
85 return res;85 return res;
86}86}
8787
=== modified file 'tools/Makefile'
--- tools/Makefile 2009-11-01 22:37:21 +0000
+++ tools/Makefile 2013-12-06 20:30:39 +0000
@@ -23,15 +23,10 @@
23# to use this program.23# to use this program.
24#24#
2525
26SRCDIR = .26include ../Make.defaults
2727include ../Make.rules
28VPATH = $(SRCDIR)28
2929TOPDIR=$(CDIR)/..
30include $(SRCDIR)/../Make.defaults
31include $(SRCDIR)/../Make.rules
32
33TOPDIR=$(SRCDIR)/..
34
3530
36FILES=eliloalt.o31FILES=eliloalt.o
37TARGET=eliloalt32TARGET=eliloalt
3833
=== modified file 'tools/eliloalt.c'
--- tools/eliloalt.c 2004-02-14 22:21:36 +0000
+++ tools/eliloalt.c 2013-12-06 20:30:39 +0000
@@ -47,8 +47,10 @@
47#define ELILOALT_VERSION "0.02"47#define ELILOALT_VERSION "0.02"
4848
49#define ELILO_ALT_NAME "EliloAlt"49#define ELILO_ALT_NAME "EliloAlt"
50#define EFIVAR_DIR "/proc/efi/vars"50#define EFIVAR_DIR "/sys/firmware/efi/vars"
51#define OFIVAR_DIR "/proc/efi/vars"
51#define ELILO_ALTVAR EFIVAR_DIR"/"ELILO_ALT_NAME"-00000000-0000-0000-0000-000000000000"52#define ELILO_ALTVAR EFIVAR_DIR"/"ELILO_ALT_NAME"-00000000-0000-0000-0000-000000000000"
53#define OLILO_ALTVAR OFIVAR_DIR"/"ELILO_ALT_NAME"-00000000-0000-0000-0000-000000000000"
5254
53#define EFI_VARIABLE_NON_VOLATILE 0x000000000000000155#define EFI_VARIABLE_NON_VOLATILE 0x0000000000000001
54#define EFI_VARIABLE_BOOTSERVICE_ACCESS 0x000000000000000256#define EFI_VARIABLE_BOOTSERVICE_ACCESS 0x0000000000000002
@@ -80,7 +82,9 @@
80 uint32_t attributes;82 uint32_t attributes;
81} __attribute__((packed)) efi_variable_t;83} __attribute__((packed)) efi_variable_t;
8284
85static char *efivar_dir = EFIVAR_DIR;
83static char *elilo_alt_name = ELILO_ALT_NAME;86static char *elilo_alt_name = ELILO_ALT_NAME;
87static char *elilo_altvar = ELILO_ALTVAR;
8488
85static struct option cmd_options[]={89static struct option cmd_options[]={
86 { "version", 0, 0, 1},90 { "version", 0, 0, 1},
@@ -129,9 +133,15 @@
129 if (getuid() != 0) {133 if (getuid() != 0) {
130 fatal_error("This program must be run as root\n");134 fatal_error("This program must be run as root\n");
131 }135 }
132 efi_vars = opendir(EFIVAR_DIR);136 efi_vars = opendir(efivar_dir);
133 if (efi_vars == NULL) {137 if (efi_vars == NULL) {
134 fatal_error("Cannot access %s\n", EFIVAR_DIR);138 efivar_dir = OFIVAR_DIR;
139 elilo_altvar = OLILO_ALTVAR;
140 efi_vars = opendir(efivar_dir);
141 }
142 if (efi_vars == NULL) {
143 fatal_error("Can access neither %s nor %s\n",
144 EFIVAR_DIR, efivar_dir);
135 }145 }
136 if (!find_entry) {146 if (!find_entry) {
137 closedir(efi_vars);147 closedir(efi_vars);
@@ -143,9 +153,10 @@
143 break;153 break;
144 }154 }
145 if (entry == NULL) {155 if (entry == NULL) {
146 fatal_error("Cannot find entry in %s\n", EFIVAR_DIR);156 fatal_error("Cannot find entry in %s\n", efivar_dir);
147 }157 }
148 sprintf(name, "%s/%s", EFIVAR_DIR, entry->d_name);158 snprintf(name, 1023, "%s/%s", efivar_dir, entry->d_name);
159 name[1023] = 0;
149 closedir(efi_vars);160 closedir(efi_vars);
150 return name;161 return name;
151}162}
@@ -158,7 +169,7 @@
158169
159 check_proc_efi(0);170 check_proc_efi(0);
160171
161 fd = open(ELILO_ALTVAR, O_WRONLY);172 fd = open(elilo_altvar, O_WRONLY);
162 if (fd == -1) {173 if (fd == -1) {
163 fatal_error("variable not defined\n");174 fatal_error("variable not defined\n");
164 }175 }
@@ -176,7 +187,7 @@
176 187
177 r = write(fd, &var, sizeof(var));188 r = write(fd, &var, sizeof(var));
178 if (r != sizeof(var)) {189 if (r != sizeof(var)) {
179 fatal_error("Variable %s defined but invalid content\n", ELILO_ALTVAR);190 fatal_error("Variable %s defined but invalid content\n", elilo_altvar);
180 }191 }
181 close(fd);192 close(fd);
182}193}
@@ -191,7 +202,7 @@
191202
192 check_proc_efi(0);203 check_proc_efi(0);
193204
194 fd = open(ELILO_ALTVAR, O_RDONLY);205 fd = open(elilo_altvar, O_RDONLY);
195 if (fd == -1) {206 if (fd == -1) {
196 fatal_error("variable not defined\n");207 fatal_error("variable not defined\n");
197 }208 }
@@ -200,7 +211,7 @@
200211
201 r = read(fd, &var, sizeof(var));212 r = read(fd, &var, sizeof(var));
202 if (r != sizeof(var)) {213 if (r != sizeof(var)) {
203 fatal_error("Variable %s defined but invalid content\n", ELILO_ALTVAR);214 fatal_error("Variable %s defined but invalid content\n", elilo_altvar);
204 }215 }
205 printf("EliloAlt=\"");216 printf("EliloAlt=\"");
206 for(i=0; i < var.datasize; i+=1){217 for(i=0; i < var.datasize; i+=1){
@@ -231,7 +242,7 @@
231242
232 fd = open(name, O_WRONLY);243 fd = open(name, O_WRONLY);
233 if (fd == -1) {244 if (fd == -1) {
234 fatal_error("can't open %s: %s\n", ELILO_ALTVAR, strerror(errno));245 fatal_error("can't open %s: %s\n", elilo_altvar, strerror(errno));
235 }246 }
236247
237 memset(&var, 0, sizeof(var));248 memset(&var, 0, sizeof(var));
@@ -256,7 +267,7 @@
256 267
257 r = write(fd, &var, sizeof(var));268 r = write(fd, &var, sizeof(var));
258 if (r != sizeof(var)) {269 if (r != sizeof(var)) {
259 fatal_error("Variable %s defined but invalid content %d\n", ELILO_ALTVAR, r);270 fatal_error("Variable %s defined but invalid content %d\n", elilo_altvar, r);
260 }271 }
261 close(fd);272 close(fd);
262273
263274
=== modified file 'x86_64/Makefile'
--- x86_64/Makefile 2011-08-22 21:17:34 +0000
+++ x86_64/Makefile 2013-12-06 20:30:39 +0000
@@ -23,15 +23,10 @@
23# to use this program.23# to use this program.
24#24#
2525
26SRCDIR = .26include ../Make.defaults
2727include ../Make.rules
28VPATH = $(SRCDIR)28
2929TOPDIR=$(CDIR)/..
30include $(SRCDIR)/../Make.defaults
31include $(SRCDIR)/../Make.rules
32
33TOPDIR=$(SRCDIR)/..
34
3530
36FILES=system.o config.o bzimage.o plain_loader.o gzip_loader.o gzip.o31FILES=system.o config.o bzimage.o plain_loader.o gzip_loader.o gzip.o
37#FILES=system.o config.o plain_loader.o32#FILES=system.o config.o plain_loader.o
@@ -43,13 +38,13 @@
43system.o: rmswitch.h38system.o: rmswitch.h
4439
45rmswitch.h: bin_to_h.c rmswitch.S40rmswitch.h: bin_to_h.c rmswitch.S
46 $(CC) -o bin_to_h $(SRCDIR)/bin_to_h.c41 $(CC) -o bin_to_h bin_to_h.c
47 $(AS) -o rmswitch.o $(SRCDIR)/rmswitch.S42 $(AS) -o rmswitch.o rmswitch.S
48 $(LD) -Ttext 0x0 -s --oformat binary -o rmswitch rmswitch.o43 $(LD) -Ttext 0x0 -s --oformat binary -o rmswitch rmswitch.o
49 ./bin_to_h <rmswitch >rmswitch.h44 ./bin_to_h <rmswitch >rmswitch.h
5045
51$(TARGET): $(FILES)46$(TARGET): $(FILES)
52 $(LD) $(LD3264) -r -o $@ $(FILES)47 $(LD) -r -o $@ $(FILES)
5348
54clean:49clean:
55 $(RM) -f $(TARGET) $(FILES)50 $(RM) -f $(TARGET) $(FILES)
5651
=== modified file 'x86_64/bzimage.c'
--- x86_64/bzimage.c 2011-08-22 21:17:34 +0000
+++ x86_64/bzimage.c 2013-12-06 20:30:39 +0000
@@ -36,6 +36,129 @@
3636
37UINTN kernel_size = 0x800000; /* 8M (default x86_64 bzImage size limit) */37UINTN kernel_size = 0x800000; /* 8M (default x86_64 bzImage size limit) */
3838
39static VOID *
40bzImage_alloc()
41{
42 UINTN pages = EFI_SIZE_TO_PAGES(kernel_size);
43 int reloc_kernel = 0;
44 VOID *kla, *kend = kernel_start + kernel_size;
45 UINT32 kalign, kmask;
46 boot_params_t *ps = param_start;
47
48 /*
49 * Get address for kernel from header, if applicable & available.
50 */
51 if ((ps->s.hdr_major < 2) ||
52 (ps->s.hdr_major == 2 && ps->s.hdr_minor < 5)) {
53 reloc_kernel = 0;
54 } else {
55 if (ps->s.kernel_start >= DEFAULT_KERNEL_START)
56 kernel_start = (void *)(UINT64)ps->s.kernel_start;
57 reloc_kernel = ps->s.relocatable_kernel;
58 kalign = ps->s.kernel_alignment;
59 kmask = kalign - 1;
60 VERB_PRT(3, Print(L"kernel header (%d.%d) suggests kernel "
61 "start at address "PTR_FMT" (%srelocatable!)\n",
62 ps->s.hdr_major, ps->s.hdr_minor, ps->s.kernel_start,
63 (reloc_kernel ? L"": L"not ")));
64 }
65
66 /*
67 * Best effort for old (< 2.6.20) and non-relocatable kernels
68 */
69 if (alloc_kmem(kernel_start, pages) == 0) {
70 VERB_PRT(3, Print(L"kernel_start: "PTR_FMT" kernel_size: %d\n",
71 kernel_start, kernel_size));
72 return kernel_start;
73 } else if ( ! reloc_kernel ) {
74 /*
75 * Couldn't get desired address--just load it anywhere and
76 * (try to) move it later. It's the only chance for non-
77 * relocatable kernels, but it breaks occassionally...
78 */
79 ERR_PRT((L"Kernel header (%d.%d) suggests kernel "
80 "start at address "PTR_FMT" (non relocatable!)\n"
81 "This address is not available, so an attempt"
82 "is made to copy the kernel there later on\n"
83 "BEWARE: this is unsupported and may not work. "
84 "Please update your kernel.\n",
85 ps->s.hdr_major, ps->s.hdr_minor, ps->s.kernel_start));
86 kla = (VOID *)(UINT32_MAX - kernel_size);
87 /* NULL would preserve the "anywhere" semantic, */
88 /* but it would not prevent allocation above 4GB! */
89
90 if (alloc_kmem_anywhere(&kla, pages) != 0) {
91 /* out of luck */
92 return NULL;
93 }
94 VERB_PRT(3, Print(L"kernel_start: "PTR_FMT
95 " kernel_size: %d loading at: "PTR_FMT"\n",
96 kernel_start, kernel_size, kla));
97 return kla;
98 }
99
100
101 /* Is 'ps->s.kernel_alignment' guaranteed to be sane? */
102 if (kalign < EFI_PAGE_SIZE) {
103 kalign = EFI_PAGE_SIZE;
104 kmask = EFI_PAGE_MASK;
105 }
106 DBG_PRT((L"alignment: kernel=0x%x efi_page=0x%x : 0x%x\n",
107 ps->s.kernel_alignment, EFI_PAGE_SIZE, kalign));
108
109 /*
110 * Couldn't get the preferred address, but luckily it's
111 * a relocatable kernel, so ...
112 *
113 * 1. use 'find_kernel_memory()' (like Itanium)
114 * 2. try out the 16 lowest possible aligned addresses (> 0)
115 * 3. get enough memory to align "creatively"
116 * 4. forget alignment (and start praying)...
117 */
118
119 /* 1. */
120 if ((find_kernel_memory(kernel_start, kend, kalign, &kla) != 0) ||
121 (alloc_kmem(kla, pages) != 0)) {
122 kla = NULL;
123 }
124
125 /* 2. */
126 if ( ! kla && (UINT64)kernel_start < kalign ) {
127 int i;
128 for ( i = 1; i < 16 && !kla; i++ ) {
129 VOID *tmp = (VOID *)((UINT64)kalign * i);
130 if (alloc_kmem(tmp, pages) == 0) {
131 kla = tmp;
132 }
133 }
134 }
135
136 /* 3. */
137 if ( ! kla ) {
138 UINTN apages = EFI_SIZE_TO_PAGES(kernel_size + kmask);
139 kla = (VOID *)(UINT32_MAX - kernel_size - kmask);
140
141 if (alloc_kmem_anywhere(&kla, apages) == 0) {
142 kla = (VOID *)(((UINT64)kla + kmask) & ~kmask);
143 } else {
144 kla = NULL;
145 }
146 }
147
148 /* 4. last resort */
149 if ( ! kla ) {
150 kla = (VOID *)(UINT32_MAX - kernel_size);
151 if (alloc_kmem_anywhere(&kla, pages) != 0) {
152 return NULL;
153 }
154 }
155
156 kernel_start = kla;
157 VERB_PRT(1, Print(L"relocating kernel_start: "PTR_FMT
158 " kernel_size: %d\n", kernel_start, kernel_size));
159 return kla;
160}
161
39static INTN162static INTN
40bzImage_probe(CHAR16 *kname)163bzImage_probe(CHAR16 *kname)
41{164{
@@ -158,53 +281,34 @@
158 * Allocate memory for kernel.281 * Allocate memory for kernel.
159 */282 */
160283
161 /*284 kernel_load_address = bzImage_alloc();
162 * Get correct address for kernel from header, if applicable & available. 285 if ( ! kernel_load_address ) {
163 */286 ERR_PRT((L"Could not allocate memory for kernel."));
164 if ((param_start->s.hdr_major == 2) &&287 free(param_start);
165 (param_start->s.hdr_minor >= 6) &&288 param_start = NULL;
166 (param_start->s.kernel_start >= DEFAULT_KERNEL_START)) {289 param_size = 0;
167 kernel_start = (void *)param_start->s.kernel_start;290 fops_close(fd);
168 VERB_PRT(3, Print(L"kernel header suggests kernel start at address "PTR_FMT"\n", 291 return -1;
169 kernel_start));292 }
170 }
171
172 kernel_load_address = kernel_start;
173
174 if (alloc_kmem(kernel_start, EFI_SIZE_TO_PAGES(kernel_size)) != 0) {
175 /*
176 * Couldn't get desired address--just load it anywhere and move it later.
177 * (Easier than relocating kernel, and also works with non-relocatable kernels.)
178 */
179 if (alloc_kmem_anywhere(&kernel_load_address, EFI_SIZE_TO_PAGES(kernel_size)) != 0) {
180 ERR_PRT((L"Could not allocate memory for kernel."));
181 free(param_start);
182 param_start = NULL;
183 param_size = 0;
184 fops_close(fd);
185 return -1;
186 }
187 }
188
189 VERB_PRT(3, Print(L"kernel_start: "PTR_FMT" kernel_size: %d loading at: "PTR_FMT"\n",
190 kernel_start, kernel_size, kernel_load_address));
191293
192 /*294 /*
193 * Now read the rest of the kernel image into memory.295 * Now read the rest of the kernel image into memory.
194 */296 */
195297
196 DBG_PRT((L"reading kernel image...\n"));298 Print(L"Loading kernel %s... ", kname);
197299
198 size = kernel_size;300 size = kernel_size;
199 efi_status = fops_read(fd, kernel_load_address, &size);301 efi_status = fops_read(fd, kernel_load_address, &size);
200 if (EFI_ERROR(efi_status) || size < 0x10000) {302 if (EFI_ERROR(efi_status) || size < 0x10000) {
201 ERR_PRT((L"Error reading kernel image %s.", kname));303 ERR_PRT((L"Error reading kernel image (0x%x).", efi_status));
202 free(param_start);304 free(param_start);
203 param_start = NULL;305 param_start = NULL;
204 param_size = 0;306 param_size = 0;
205 fops_close(fd);307 fops_close(fd);
206 free_kmem();308 free_kmem();
207 return -1;309 return -1;
310 } else {
311 Print(L" done\n");
208 }312 }
209313
210 DBG_PRT((L"kernel image read: %d bytes, %d Kbytes\n", size, size / 1024));314 DBG_PRT((L"kernel image read: %d bytes, %d Kbytes\n", size, size / 1024));
211315
=== modified file 'x86_64/config.c'
--- x86_64/config.c 2008-06-19 19:06:08 +0000
+++ x86_64/config.c 2013-12-06 20:30:39 +0000
@@ -33,15 +33,23 @@
3333
34typedef struct {34typedef struct {
35 UINTN legacy_free_boot;35 UINTN legacy_free_boot;
36 UINTN text_mode;
36} x86_64_global_config_t;37} x86_64_global_config_t;
3738
3839
40#define x86_64_opt_offsetof(option) (&((sys_img_options_t *)(0x0))->option)
41
39static x86_64_global_config_t x86_64_gconf;42static x86_64_global_config_t x86_64_gconf;
4043
41static config_option_t sysdeps_global_options[]={44static config_option_t sysdeps_global_options[]={
42 {OPT_BOOL, OPT_GLOBAL, L"legacy-free", NULL, NULL, &x86_64_gconf.legacy_free_boot}45 {OPT_BOOL, OPT_GLOBAL, L"legacy-free", NULL, NULL, &x86_64_gconf.legacy_free_boot}
43};46};
4447
48static config_option_t sysdeps_image_options[]={
49 {OPT_BOOL, OPT_IMAGE_SYS, L"text-mode", NULL, NULL, x86_64_opt_offsetof(text_mode)}
50};
51
52
45/*53/*
46 * X86_64 operations that need to be done only once and just before 54 * X86_64 operations that need to be done only once and just before
47 * entering the main loop of the loader55 * entering the main loop of the loader
@@ -81,6 +89,14 @@
81 return x86_64_gconf.legacy_free_boot ? 1 : 0;89 return x86_64_gconf.legacy_free_boot ? 1 : 0;
82}90}
8391
92
93INTN
94x86_64_text_mode(VOID)
95{
96 return (elilo_opt.sys_img_opts &&
97 elilo_opt.sys_img_opts->text_mode == TRUE) ? 1 : 0;
98}
99
84INTN100INTN
85sysdeps_register_options(VOID)101sysdeps_register_options(VOID)
86{102{
@@ -89,14 +105,11 @@
89 ret = register_config_options(sysdeps_global_options, 105 ret = register_config_options(sysdeps_global_options,
90 sizeof(sysdeps_global_options)/sizeof(config_option_t),106 sizeof(sysdeps_global_options)/sizeof(config_option_t),
91 OPTIONS_GROUP_GLOBAL);107 OPTIONS_GROUP_GLOBAL);
92#if 0
93 /* no per image options yet */
94 if (ret == -1 ) return ret;108 if (ret == -1 ) return ret;
95109
96 ret = register_config_options(sysdeps_image_options, 110 ret = register_config_options(sysdeps_image_options,
97 sizeof(sysdeps_image_options)/sizeof(config_option_t),111 sizeof(sysdeps_image_options)/sizeof(config_option_t),
98 OPTIONS_GROUP_IMAGE);112 OPTIONS_GROUP_IMAGE);
99#endif
100113
101 return ret;114 return ret;
102}115}
103116
=== modified file 'x86_64/sysdeps.h'
--- x86_64/sysdeps.h 2009-12-08 23:48:32 +0000
+++ x86_64/sysdeps.h 2013-12-06 20:30:39 +0000
@@ -107,12 +107,12 @@
107/* 0x06 */ UINT8 orig_video_mode; /* LDR */107/* 0x06 */ UINT8 orig_video_mode; /* LDR */
108/* 0x07 */ UINT8 orig_video_cols; /* LDR */108/* 0x07 */ UINT8 orig_video_cols; /* LDR */
109109
110/* 0x08 */ UINT16 unused_1; /* unused */110/* 0x08 */ UINT16 pad_1; /* unused */
111111
112/* %%TBD */112/* %%TBD */
113/* 0x0A */ UINT16 orig_ega_bx; /* LDR */113/* 0x0A */ UINT16 orig_ega_bx; /* LDR */
114114
115/* 0x0C */ UINT16 unused_2; /* unused */115/* 0x0C */ UINT16 pad_2; /* unused */
116116
117/* Screen height before passing control to kernel. */117/* Screen height before passing control to kernel. */
118/* 0x0E */ UINT8 orig_video_rows; /* LDR */118/* 0x0E */ UINT8 orig_video_rows; /* LDR */
@@ -174,7 +174,7 @@
174/* 0x4E */ UINT32 bios_code_len; /* LDR */174/* 0x4E */ UINT32 bios_code_len; /* LDR */
175/* 0x52 */ UINT16 bios_data_len; /* LDR */175/* 0x52 */ UINT16 bios_data_len; /* LDR */
176176
177/* 0x54 */ UINT8 unused_3[0x2C]; /* unused */177/* 0x54 */ UINT8 pad_3[0x2C]; /* unused */
178178
179/* %%TBD */179/* %%TBD */
180/* 0x80 */ UINT8 hd0_info[0x10]; /* LDR */180/* 0x80 */ UINT8 hd0_info[0x10]; /* LDR */
@@ -184,7 +184,7 @@
184/* 0xA0 */ UINT16 mca_info_len; /* LDR */184/* 0xA0 */ UINT16 mca_info_len; /* LDR */
185/* 0xA2 */ UINT8 mca_info_buf[0x10]; /* LDR */185/* 0xA2 */ UINT8 mca_info_buf[0x10]; /* LDR */
186186
187/* 0xB2 */ UINT8 unused_4[0x10E]; /* unused */187/* 0xB2 */ UINT8 pad_4[0x10E]; /* unused */
188188
189/* EFI boot loader signature. */189/* EFI boot loader signature. */
190/* 0x1C0 */ UINT8 efi_loader_sig[4]; /* LDR */190/* 0x1C0 */ UINT8 efi_loader_sig[4]; /* LDR */
@@ -209,9 +209,9 @@
209/* Available contiguous extended memory in KB. */209/* Available contiguous extended memory in KB. */
210/* 0x1E0 */ UINT32 alt_mem_k; /* LDR */210/* 0x1E0 */ UINT32 alt_mem_k; /* LDR */
211211
212/* 0x1E4 */ UINT32 unused_51; /* unused */212/* 0x1E4 */ UINT32 pad_51; /* unused */
213/* 0x1E8 */ UINT8 e820_nrmap;213/* 0x1E8 */ UINT8 e820_nrmap;
214/* 0x1E9 */ UINT32 unused_52[2]; /* unused */214/* 0x1E9 */ UINT32 pad_52[2]; /* unused */
215215
216/* Size of setup code in sectors (1 sector == 512 bytes). */216/* Size of setup code in sectors (1 sector == 512 bytes). */
217/* 0x1F1 */ UINT8 setup_sectors; /* BLD */217/* 0x1F1 */ UINT8 setup_sectors; /* BLD */
@@ -220,15 +220,10 @@
220/* 0x1F2 */ UINT16 mount_root_rdonly; /* BLD */220/* 0x1F2 */ UINT16 mount_root_rdonly; /* BLD */
221221
222/* %%TBD */222/* %%TBD */
223/* 0x1F4 */ UINT16 sys_size; /* BLD */223/* 0x1F4 */ UINT32 sys_size; /* BLD */
224224
225/* %%TBD */225/* %%TBD */
226/* 0x1F6 */ UINT16 swap_dev; /* BLD */226/* 0x1F8 */ UINT16 ram_size_DNU; /* BLD */
227
228/* %%TBD */
229/* 0x1F8 */ UINT16 ramdisk_flags; /* BLD */
230#define RAMDISK_PROMPT 0x8000
231#define RAMDISK_LOAD 0x4000
232227
233/* %%TBD */228/* %%TBD */
234/* 0x1FA */ UINT16 video_mode_flag; /* BLD */229/* 0x1FA */ UINT16 video_mode_flag; /* BLD */
@@ -236,12 +231,8 @@
236/* %%TBD */231/* %%TBD */
237/* 0x1FC */ UINT16 orig_root_dev; /* BLD */232/* 0x1FC */ UINT16 orig_root_dev; /* BLD */
238233
239/* 0x1FE */ UINT8 unused_6; /* unused */
240
241/* %%TBD */234/* %%TBD */
242/* 0x1FF */ UINT8 aux_dev_info; /* LDR */235/* 0x1FE */ UINT16 boot_flag; /* ? */
243#define NO_MOUSE 0x00
244#define FOUND_MOUSE 0xAA
245236
246/* Jump past setup data (not used in EFI). */237/* Jump past setup data (not used in EFI). */
247/* 0x200 */ UINT16 jump; /* BLD */238/* 0x200 */ UINT16 jump; /* BLD */
@@ -283,16 +274,21 @@
283/* 0x21C */ UINT32 initrd_size; /* LDR */274/* 0x21C */ UINT32 initrd_size; /* LDR */
284275
285/* %%TBD */276/* %%TBD */
286/* 0x220 */ UINT32 bootsect_helper; /* BLD */277/* 0x220 */ UINT32 bootsect_helper_DNU; /* BLD */
287278
288/* %%TBD */279/* %%TBD */
289/* 0x224 */ UINT16 heap_end_ptr; /* LDR */280/* 0x224 */ UINT16 heap_end_ptr; /* LDR */
290281
291/* %%TBD */282/* %%TBD */
292/* 0x226 */ UINT16 unused_7; /* LDR */283/* 0x226 */ UINT8 ext_loader_ver; /* LDR */
284/* 0x227 */ UINT8 ext_loader_type; /* LDR */
293285
294/* 0x228 */ UINT32 cmdline_addr; /* LDR */286/* 0x228 */ UINT32 cmdline_addr; /* LDR */
295/* 0x22C */ UINT32 unused_8[41];287/* 0x22C */ UINT32 initrd_addr_max; /* BLD */
288/* 0x230 */ UINT32 kernel_alignment; /* BLD */
289/* 0x234 */ UINT8 relocatable_kernel; /* BLD */
290/* 0x235 */ UINT8 pad_8[3];
291/* 0x238 */ UINT32 pad_9[38];
296/* 0x2D0 */ UINT8 e820_map[2560];292/* 0x2D0 */ UINT8 e820_map[2560];
297 } s;293 } s;
298} boot_params_t;294} boot_params_t;
@@ -368,6 +364,7 @@
368extern UINTN rmswitch_size;364extern UINTN rmswitch_size;
369365
370extern INTN x86_64_use_legacy_free_boot();366extern INTN x86_64_use_legacy_free_boot();
367extern INTN x86_64_text_mode();
371368
372/*369/*
373 * How to jump to kernel code370 * How to jump to kernel code
@@ -382,7 +379,6 @@
382 UINT16 kernel_cs;379 UINT16 kernel_cs;
383 } jumpvector;380 } jumpvector;
384 VOID *jump_start;381 VOID *jump_start;
385 uint64_t temp;
386382
387 /*383 /*
388 * Disable interrupts.384 * Disable interrupts.
@@ -390,22 +386,16 @@
390 asm volatile ( "cli" : : );386 asm volatile ( "cli" : : );
391387
392 /*388 /*
393 * Relocate kernel (if needed), and initrd (if present).389 * Relocate kernel (if needed).
394 * Copy kernel first, in case kernel was loaded overlapping where we're390 * This assumes that the initrd didn't get loaded overlapping where
395 * planning to copy the initrd. This assumes that the initrd didn't391 * we're planning to copy the kernel, but that's pretty unlikely
396 * get loaded overlapping where we're planning to copy the kernel, but392 * since we couldn't alloc that space for the kernel (or the kernel
397 * that's pretty unlikely since we couldn't alloc that space for the393 * would already be there).
398 * kernel (or the kernel would already be there).
399 */394 */
400 if (kernel_start != kernel_load_address) {395 if (kernel_start != kernel_load_address) {
401 MEMCPY(kernel_start, kernel_load_address, kernel_size);396 MEMCPY(kernel_start, kernel_load_address, kernel_size);
402 }397 }
403398
404 if (bp->s.initrd_start) {
405 temp = bp->s.initrd_start;
406 MEMCPY(INITRD_START, temp , bp->s.initrd_size);
407 bp->s.initrd_start = INITRD_START;
408 }
409 /*399 /*
410 * Copy boot sector, setup data and command line400 * Copy boot sector, setup data and command line
411 * to final resting place. We need to copy401 * to final resting place. We need to copy
@@ -468,7 +458,8 @@
468}458}
469459
470typedef struct sys_img_options {460typedef struct sys_img_options {
471 UINT8 nothing_yet;461 UINT8 dummy; /* forces non-zero offset for first field */
462 UINT8 text_mode; /* do not try to initialize Graphics Output Protocol */
472} sys_img_options_t;463} sys_img_options_t;
473464
474#endif /* __ELILO_SYSDEPS_X86_64_H__ */465#endif /* __ELILO_SYSDEPS_X86_64_H__ */
475466
=== modified file 'x86_64/system.c'
--- x86_64/system.c 2009-12-08 23:48:32 +0000
+++ x86_64/system.c 2013-12-06 20:30:39 +0000
@@ -38,11 +38,19 @@
38 */38 */
39#include <efi.h>39#include <efi.h>
40#include <efilib.h>40#include <efilib.h>
41#include <string.h>
4142
42#include "elilo.h"43#include "elilo.h"
43#include "loader.h"44#include "loader.h"
44#include "rmswitch.h"45#include "rmswitch.h"
4546
47#define DEBUG_CREATE_BOOT_PARAMS 0
48#if DEBUG_CREATE_BOOT_PARAMS
49#define DPR(a) do { if (elilo_opt.debug) { Print a; } } while ( 0 )
50#else
51#define DPR(a)
52#endif
53
46extern loader_ops_t bzimage_loader, plain_loader, gzip_loader; 54extern loader_ops_t bzimage_loader, plain_loader, gzip_loader;
4755
48/*56/*
@@ -105,14 +113,16 @@
105UINTN high_ext_mem = 32 * 1024 * 1024;113UINTN high_ext_mem = 32 * 1024 * 1024;
106114
107/* This starting address will hold true for all of the loader types for now */115/* This starting address will hold true for all of the loader types for now */
108VOID *kernel_start = (void *)DEFAULT_KERNEL_START;116VOID *kernel_start = (VOID *)DEFAULT_KERNEL_START;
109117
110/* The kernel may load elsewhere if EFI firmware reserves kernel_start */118/* The kernel may load elsewhere if EFI firmware reserves kernel_start */
111VOID *kernel_load_address = DEFAULT_KERNEL_START; 119VOID *kernel_load_address = (VOID *)DEFAULT_KERNEL_START;
112120
113VOID *initrd_start = NULL;121VOID *initrd_start = NULL;
114UINTN initrd_size = 0;122UINTN initrd_size = 0;
115123
124INTN e820_map_overflow = 0;
125
116INTN126INTN
117sysdeps_init(EFI_HANDLE dev)127sysdeps_init(EFI_HANDLE dev)
118{128{
@@ -131,10 +141,8 @@
131/*141/*
132 * initrd_get_addr()142 * initrd_get_addr()
133 * Compute a starting address for the initial RAMdisk image.143 * Compute a starting address for the initial RAMdisk image.
134 * For now, this image is placed immediately after the end of144 * For now we suggest 'initrd_addr_max' with room for 32MB,
135 * the kernel memory. Inside the start_kernel() code, the145 * as image->pgcnt is not initialized yet.
136 * RAMdisk image will be relocated to the top of available
137 * extended memory.
138 */146 */
139INTN147INTN
140sysdeps_initrd_get_addr(kdesc_t *kd, memdesc_t *imem)148sysdeps_initrd_get_addr(kdesc_t *kd, memdesc_t *imem)
@@ -146,10 +154,12 @@
146 return -1;154 return -1;
147 }155 }
148156
149 VERB_PRT(3, Print(L"kstart="PTR_FMT" kentry="PTR_FMT" kend="PTR_FMT"\n", 157 VERB_PRT(3, Print(L"initrd_addr_max="PTR_FMT" reserve=%d\n",
150 kd->kstart, kd->kentry, kd->kend));158 param_start->s.initrd_addr_max, 32*MB));
151159
152 imem->start_addr = kd->kend;160 imem->start_addr = (VOID *)
161 (((UINT64)param_start->s.initrd_addr_max - 32*MB + 1)
162 & ~EFI_PAGE_MASK);
153163
154 VERB_PRT(3, Print(L"initrd start_addr="PTR_FMT" pgcnt=%d\n", 164 VERB_PRT(3, Print(L"initrd start_addr="PTR_FMT" pgcnt=%d\n",
155 imem->start_addr, imem->pgcnt));165 imem->start_addr, imem->pgcnt));
@@ -157,6 +167,48 @@
157 return 0;167 return 0;
158}168}
159169
170
171/*
172 * checkfix_initrd()
173 * Check and possibly fix allocation of initrd memory.
174 */
175VOID *
176sysdeps_checkfix_initrd(VOID *start_addr, memdesc_t *imem)
177{
178 UINTN pgcnt = EFI_SIZE_TO_PAGES(imem->size);
179 UINT64 initrd_addr_max = (UINT64)param_start->s.initrd_addr_max;
180 UINT64 ki_max = initrd_addr_max - imem->size + 1;
181 VOID *ki_max_addr;
182
183 VERB_PRT( 3, Print(L"loadfile: start_addr="PTR_FMT
184 " ki_max_addr="PTR_FMT"\n", start_addr, (VOID *)ki_max));
185 if (ki_max > UINT32_MAX) {
186 ERR_PRT((L"Force kernel specified initrd_addr_max="PTR_FMT
187 " below 4GB\n", (VOID *)initrd_addr_max));
188 ki_max = UINT32_MAX - imem->size + 1;
189 }
190 ki_max_addr = (VOID *)ki_max;
191
192 if ((UINT64)start_addr > ki_max) {
193 VERB_PRT(1, Print(L"initrd start_addr="PTR_FMT" above "
194 "limit="PTR_FMT"\n", start_addr, ki_max_addr));
195 free(start_addr);
196 start_addr = NULL;
197 }
198 /* so either the initial allocation failed or it's been to high! */
199 if (start_addr == NULL) {
200 start_addr = alloc_pages(pgcnt, EfiLoaderData,
201 AllocateMaxAddress, ki_max_addr);
202 }
203 if ((UINT64)start_addr > ki_max) {
204 ERR_PRT((L"Failed to allocate %d pages below %dMB",
205 pgcnt, (param_start->s.initrd_addr_max+1)>>20));
206 free(start_addr);
207 start_addr = NULL;
208 }
209 return start_addr;
210}
211
160VOID212VOID
161sysdeps_free_boot_params(boot_params_t *bp)213sysdeps_free_boot_params(boot_params_t *bp)
162{214{
@@ -199,6 +251,10 @@
199 UINTN size1;251 UINTN size1;
200 UINT8 i;252 UINT8 i;
201253
254 if (x86_64_text_mode() == 1) {
255 Print((L"Skip GOP init, force text-mode.\n"));
256 return -1;
257 }
202 efi_status = uefi_call_wrapper(258 efi_status = uefi_call_wrapper(
203 BS->LocateHandle,259 BS->LocateHandle,
204 5,260 5,
@@ -209,7 +265,19 @@
209 (VOID **)Gop_handle);265 (VOID **)Gop_handle);
210 266
211 if (EFI_ERROR(efi_status) && efi_status != EFI_BUFFER_TOO_SMALL) {267 if (EFI_ERROR(efi_status) && efi_status != EFI_BUFFER_TOO_SMALL) {
212 ERR_PRT((L"LocateHandle GopProtocol failed."));268 Print(L"LocateHandle GopProtocol failed.\n");
269 Print(L"--Either no graphics head is installed,\n" \
270 "--efi console is set to serial, or,\n" \
271 "--the EFI firmware version of this machine is\n" \
272 "--older than UEFI 2.0. and does not support GOP");
273 Print(L"you can SAFELY IGNORE this error. elilo will\n" \
274 "default to text-mode.\n Alternatively you can " \
275 "now force text mode by setting config variable\n" \
276 "text_mode=1 for x86 in elilo.conf or via cmdline.\n\n");
277 Print(L"However if this is the last text output you see\n" \
278 "ensure that your kernel console command line\n " \
279 "variable matches up with the actual efi boot menu\n" \
280 "console output settings.\n\n");
213 return -1;281 return -1;
214 }282 }
215 Gop_handle = alloc(size, 0);283 Gop_handle = alloc(size, 0);
@@ -326,10 +394,56 @@
326 return 0;394 return 0;
327}395}
328396
397CHAR16 *
398StrStr(IN const CHAR16 *h, IN const CHAR16 *n)
399{
400 const CHAR16 *t = h;
401 CHAR16 *res;
402 int len = 0, i;
403
404 len = StrLen((CHAR16 *)n);
405 while(*t != CHAR_NULL) {
406 res = StrChr( t, n[0]);
407 if (!res) return res;
408 for( i = 1; i < len && res[i] != CHAR_NULL && res[i] == n[i]; i++);
409 if ( i == len ) return res;
410 t = res + 1;
411 if (t > h + CMDLINE_MAXLEN) return (CHAR16 *)0;
412 }
413
414 return (CHAR16 *)0;
415}
416
417CHAR8 *
418StrStr8(IN const CHAR8 *h, IN const CHAR8 *n)
419{
420 const CHAR8 *t = h;
421 CHAR8 *res;
422 int len = 0, i;
423
424 len = strlena((CHAR8 *)n);
425 while(*t != 0) {
426 res = strchra( t, n[0]);
427 if (!res) return res;
428 for( i = 1; i < len && res[i] != 0 && res[i] == n[i]; i++);
429 if ( i == len ) return res;
430 t = res + 1;
431 if (t > (h + CMDLINE_MAXLEN)) return (CHAR8 *)0;
432 }
433
434 return (CHAR8 *)0;
435}
436
329/* Convert EFI memory map to E820 map for the operating system 437/* Convert EFI memory map to E820 map for the operating system
330 * This code is based on a Linux kernel patch submitted by Edgar Hucek438 * This code is based on a Linux kernel patch submitted by Edgar Hucek
331 */439 */
332440
441#if DEBUG_CREATE_BOOT_PARAMS
442static int e820_max = 6;
443#else
444static int e820_max = E820_MAX;
445#endif
446
333/* Add a memory region to the e820 map */447/* Add a memory region to the e820 map */
334static void add_memory_region (struct e820entry *e820_map,448static void add_memory_region (struct e820entry *e820_map,
335 int *e820_nr_map,449 int *e820_nr_map,
@@ -338,21 +452,56 @@
338 unsigned int type)452 unsigned int type)
339{453{
340 int x = *e820_nr_map;454 int x = *e820_nr_map;
341455 static unsigned long long estart = 0ULL;
342 if (x == E820_MAX) {456 static unsigned long esize = 0L;
343 Print(L"Too many entries in the memory map!\n");457 static unsigned int etype = -1;
344 return;458 static int merge = 0;
345 }459
346460 if (x == 0)
461 DPR((L"AMR: %3s %4s %16s/%12s/%s\n",
462 L"idx", L" ", L"start", L"size", L"type"));
463
464 /* merge adjacent regions of same type */
347 if ((x > 0) && e820_map[x-1].addr + e820_map[x-1].size == start465 if ((x > 0) && e820_map[x-1].addr + e820_map[x-1].size == start
348 && e820_map[x-1].type == type)466 && e820_map[x-1].type == type) {
349 e820_map[x-1].size += size;467 e820_map[x-1].size += size;
350 else {468 estart = e820_map[x-1].addr;
469 esize = e820_map[x-1].size;
470 etype = e820_map[x-1].type;
471 merge++;
472 return;
473 }
474 /* fill up to E820_MAX */
475 if ( x < e820_max ) {
351 e820_map[x].addr = start;476 e820_map[x].addr = start;
352 e820_map[x].size = size;477 e820_map[x].size = size;
353 e820_map[x].type = type;478 e820_map[x].type = type;
354 (*e820_nr_map)++;479 (*e820_nr_map)++;
355 }480 if (merge) DPR((L"AMR: %3d ==> %016llx/%012lx/%d (%d)\n",
481 x-1, estart, esize, etype, merge));
482 merge=0;
483 DPR((L"AMR: %3d add %016llx/%012lx/%d\n",
484 x, start, size, type));
485 return;
486 }
487 /* different type means another region didn't fit */
488 /* or same type, but there's a hole */
489 if (etype != type || (estart + esize) != start) {
490 if (merge) DPR((L"AMR: %3d ===> %016llx/%012lx/%d (%d)\n",
491 e820_map_overflow, estart, esize, etype, merge));
492 merge = 0;
493 estart = start;
494 esize = size;
495 etype = type;
496 e820_map_overflow++;
497 DPR((L"AMR: %3d OVER %016llx/%012lx/%d\n",
498 e820_map_overflow, start, size, type));
499 return;
500 }
501 /* same type and no hole, merge it */
502 estart += esize;
503 esize += size;
504 merge++;
356}505}
357506
358void fill_e820map(boot_params_t *bp, mmap_desc_t *mdesc)507void fill_e820map(boot_params_t *bp, mmap_desc_t *mdesc)
@@ -431,6 +580,7 @@
431 break;580 break;
432 default:581 default:
433 /* We should not hit this case */582 /* We should not hit this case */
583 DBG_PRT((L"hit default!?"));
434 add_memory_region(e820_map, &e820_nr_map,584 add_memory_region(e820_map, &e820_nr_map,
435 md->PhysicalStart,585 md->PhysicalStart,
436 md->NumberOfPages << EFI_PAGE_SHIFT,586 md->NumberOfPages << EFI_PAGE_SHIFT,
@@ -444,6 +594,8 @@
444594
445/*595/*
446 * x86_64 specific boot parameters initialization routine596 * x86_64 specific boot parameters initialization routine
597 *
598 * Note: debug and verbose messages have already been turned off!
447 */599 */
448INTN600INTN
449sysdeps_create_boot_params(601sysdeps_create_boot_params(
@@ -459,6 +611,12 @@
459 UINT8 row, col;611 UINT8 row, col;
460 UINT8 mode;612 UINT8 mode;
461 UINT16 hdr_version;613 UINT16 hdr_version;
614 UINT8 e820_map_overflow_warned = 0;
615
616#if DEBUG_CREATE_BOOT_PARAMS
617 elilo_opt.debug=1;
618 elilo_opt.verbose=5;
619#endif
462620
463 DBG_PRT((L"fill_boot_params()\n"));621 DBG_PRT((L"fill_boot_params()\n"));
464622
@@ -493,17 +651,9 @@
493 hdr_version = (bp->s.hdr_major << 8) | bp->s.hdr_minor;651 hdr_version = (bp->s.hdr_major << 8) | bp->s.hdr_minor;
494652
495 /*653 /*
496 * Clear out unused memory in boot sector image.654 * Do NOT clear out unknown memory in boot sector image.
655 * This breaks boot protocol >= 2.10 (2.6.31).
497 */656 */
498 bp->s.unused_1 = 0;
499 bp->s.unused_2 = 0;
500 ZeroMem(&bp->s.unused_3, sizeof bp->s.unused_3);
501 ZeroMem(&bp->s.unused_4, sizeof bp->s.unused_4);
502 ZeroMem(&bp->s.unused_51, sizeof bp->s.unused_51);
503 ZeroMem(&bp->s.unused_52, sizeof bp->s.unused_52);
504 bp->s.unused_6 = 0;
505 bp->s.unused_7 = 0;
506 ZeroMem(bp->s.unused_8, sizeof bp->s.unused_8);
507657
508 /*658 /*
509 * Tell kernel this was loaded by an advanced loader type.659 * Tell kernel this was loaded by an advanced loader type.
@@ -553,19 +703,19 @@
553 DBG_PRT((L"initrd->start_addr="PTR_FMT" initrd->pgcnt=%d\n",703 DBG_PRT((L"initrd->start_addr="PTR_FMT" initrd->pgcnt=%d\n",
554 initrd->start_addr, initrd->pgcnt));704 initrd->start_addr, initrd->pgcnt));
555705
556 /* These RAMdisk flags are not needed, just zero them. */706 /* These RAMdisk flags are not needed, just zero them. NOT!*/
557 bp->s.ramdisk_flags = 0;707 /* 'ramdisk_flags' (@0x1F8) is called 'ram_size' in the meantime, */
708 /* see Documentation/x86/boot.txt. */
558709
559 if (initrd->start_addr && initrd->pgcnt) {710 if (initrd->start_addr && initrd->pgcnt) {
711 if ( (UINT64)initrd->start_addr > UINT32_MAX ) {
712 ERR_PRT((L"Start of initrd out of reach (>4GB)."));
713 free_kmem();
714 return -1;
715 }
560 /* %%TBD - This will probably have to be changed. */716 /* %%TBD - This will probably have to be changed. */
561 bp->s.initrd_start = (UINT32)(UINT64)initrd->start_addr;717 bp->s.initrd_start = (UINT32)(UINT64)initrd->start_addr;
562 bp->s.initrd_size = (UINT32)(initrd->size);718 bp->s.initrd_size = (UINT32)(initrd->size);
563 /*
564 * This is the RAMdisk root device for RedHat 2.2.x
565 * kernels (major 0x01, minor 0x00).
566 */
567
568 bp->s.orig_root_dev = 0x0100;
569 } else {719 } else {
570 bp->s.initrd_start = 0;720 bp->s.initrd_start = 0;
571 bp->s.initrd_size = 0;721 bp->s.initrd_size = 0;
@@ -590,11 +740,6 @@
590 ZeroMem(bp->s.mca_info_buf, sizeof bp->s.mca_info_buf);740 ZeroMem(bp->s.mca_info_buf, sizeof bp->s.mca_info_buf);
591741
592 /*742 /*
593 * Pointing device presence. The kernel will detect this.
594 */
595 bp->s.aux_dev_info = NO_MOUSE;
596
597 /*
598 * EFI loader signature 743 * EFI loader signature
599 */744 */
600 CopyMem(bp->s.efi_loader_sig, EFI_LOADER_SIG_X64, 4);745 CopyMem(bp->s.efi_loader_sig, EFI_LOADER_SIG_X64, 4);
@@ -602,6 +747,11 @@
602 /*747 /*
603 * Kernel entry point.748 * Kernel entry point.
604 */749 */
750 if ( (UINT64)kernel_start != (UINT32)(UINT64)kernel_start ) {
751 ERR_PRT((L"Start of kernel (will be) out of reach (>4GB)."));
752 free_kmem();
753 return -1;
754 }
605 bp->s.kernel_start = (UINT32)(UINT64)kernel_start;755 bp->s.kernel_start = (UINT32)(UINT64)kernel_start;
606756
607 /*757 /*
@@ -692,11 +842,9 @@
692 CHECK_OFFSET(setup_sectors, 0x1F1, L"%xh");842 CHECK_OFFSET(setup_sectors, 0x1F1, L"%xh");
693 CHECK_OFFSET(mount_root_rdonly, 0x1F2, L"%xh");843 CHECK_OFFSET(mount_root_rdonly, 0x1F2, L"%xh");
694 CHECK_OFFSET(sys_size, 0x1F4, L"%xh");844 CHECK_OFFSET(sys_size, 0x1F4, L"%xh");
695 CHECK_OFFSET(swap_dev, 0x1F6, L"%xh");
696 CHECK_OFFSET(ramdisk_flags, 0x1F8, L"%xh");
697 CHECK_OFFSET(video_mode_flag, 0x1FA, L"%xh");845 CHECK_OFFSET(video_mode_flag, 0x1FA, L"%xh");
698 CHECK_OFFSET(orig_root_dev, 0x1FC, L"%xh");846 CHECK_OFFSET(orig_root_dev, 0x1FC, L"%xh");
699 CHECK_OFFSET(aux_dev_info, 0x1FF, L"%xh");847 CHECK_OFFSET(boot_flag, 0x1FE, L"%xh");
700 CHECK_OFFSET(jump, 0x200, L"%xh");848 CHECK_OFFSET(jump, 0x200, L"%xh");
701 CHECK_OFFSET(setup_sig, 0x202, L"'%-4.4a'");849 CHECK_OFFSET(setup_sig, 0x202, L"'%-4.4a'");
702 CHECK_OFFSET(hdr_minor, 0x206, L"%xh");850 CHECK_OFFSET(hdr_minor, 0x206, L"%xh");
@@ -710,9 +858,9 @@
710 CHECK_OFFSET(kernel_start, 0x214, L"%xh");858 CHECK_OFFSET(kernel_start, 0x214, L"%xh");
711 CHECK_OFFSET(initrd_start, 0x218, L"%xh");859 CHECK_OFFSET(initrd_start, 0x218, L"%xh");
712 CHECK_OFFSET(initrd_size, 0x21C, L"%xh");860 CHECK_OFFSET(initrd_size, 0x21C, L"%xh");
713 CHECK_OFFSET(bootsect_helper, 0x220, L"%xh");
714 CHECK_OFFSET(heap_end_ptr, 0x224, L"%xh");861 CHECK_OFFSET(heap_end_ptr, 0x224, L"%xh");
715 CHECK_OFFSET(cmdline_addr, 0x228, L"%xh");862 CHECK_OFFSET(cmdline_addr, 0x228, L"%xh");
863 CHECK_OFFSET(e820_map, 0x2D0, L"%xh");
716864
717 if (test) {865 if (test) {
718 ERR_PRT((L"Boot sector and/or setup parameter alignment error."));866 ERR_PRT((L"Boot sector and/or setup parameter alignment error."));
@@ -802,6 +950,31 @@
802 * and update the bootparam accordingly950 * and update the bootparam accordingly
803 */951 */
804 fill_e820map(bp, &mdesc);952 fill_e820map(bp, &mdesc);
953
954#if DEBUG_CREATE_BOOT_PARAMS
955 if ( e820_map_overflow == 0 )
956 e820_map_overflow = -1; /* force second get_memmap()! */
957#endif
958 if (e820_map_overflow && !e820_map_overflow_warned) {
959 CHAR8 *aem = (CHAR8 *)"add_efi_memmap";
960 e820_map_overflow_warned++;
961
962#if DEBUG_CREATE_BOOT_PARAMS
963 elilo_opt.debug=0;
964 elilo_opt.verbose=0;
965#endif
966 if (e820_map_overflow == -1 || StrStr8(cmdline, aem)) {
967 /* Print(L"...mapping again, silently!\n"); */
968 goto do_memmap;
969 }
970
971 Print(L"\nCAUTION: EFI memory map has %d more entr%a"
972 " than E820 map supports.\n"
973 "To access all memory, '%a' may be necessary.\n\n",
974 e820_map_overflow, (e820_map_overflow==1)?"y":"ies",
975 aem);
976 goto do_memmap;
977 }
805 978
806 return 0;979 return 0;
807}980}

Subscribers

People subscribed via source and target branches

to all changes: