Gene Cumm
2015-Sep-20 12:35 UTC
[syslinux] [syslinux:master] com32/modules: Split build by architecture. Add dir.c32
On Sun, Sep 20, 2015 at 8:33 AM, syslinux-bot for Gene Cumm <gene.cumm at gmail.com> wrote:> Commit-ID: e0ac1d2fdf7d7c58457f3796a12561cce95ca29f > Gitweb: http://www.syslinux.org/commit/e0ac1d2fdf7d7c58457f3796a12561cce95ca29f > Author: Gene Cumm <gene.cumm at gmail.com> > AuthorDate: Sun, 20 Sep 2015 08:30:55 -0400 > Committer: Gene Cumm <gene.cumm at gmail.com> > CommitDate: Sun, 20 Sep 2015 08:30:55 -0400 > > com32/modules: Split build by architecture. Add dir.c32 > > Certain modules directly make BIOS calls or call library functions that > will not be ported from BIOS (like syslinux_shuffle_boot_rm()). > > It appears dir.c32 was long-forgotten for the Makefile > > Signed-off-by: Gene Cumm <gene.cumm at gmail.com> > > --- > com32/modules/Makefile | 23 ++++++++++++++++------- > 1 file changed, 16 insertions(+), 7 deletions(-) > > diff --git a/com32/modules/Makefile b/com32/modules/Makefile > index 13cc63b..c01d633 100644 > --- a/com32/modules/Makefile > +++ b/com32/modules/Makefile > @@ -18,13 +18,22 @@ > VPATH = $(SRC) > include $(MAKEDIR)/elf.mk > > -MODULES = config.c32 ethersel.c32 dmitest.c32 cpuidtest.c32 \ > - disk.c32 pcitest.c32 elf.c32 linux.c32 reboot.c32 pmload.c32 \ > - meminfo.c32 sdi.c32 sanboot.c32 ifcpu64.c32 vesainfo.c32 \ > - kbdmap.c32 cmd.c32 vpdtest.c32 host.c32 ls.c32 gpxecmd.c32 \ > - ifcpu.c32 cpuid.c32 cat.c32 pwd.c32 ifplop.c32 zzjson.c32 \ > - whichsys.c32 prdhcp.c32 pxechn.c32 kontron_wdt.c32 ifmemdsk.c32 \ > - hexdump.c32 poweroff.c32 cptime.c32 debug.c32 > +# BIOS-specific modules > +MOD_BIOS = disk.c32 elf.c32 ethersel.c32 gpxecmd.c32 ifmemdsk.c32 ifplop.c32 \ > + kbdmap.c32 kontron_wdt.c32 pcitest.c32 pmload.c32 poweroff.c32 \ > + prdhcp.c32 pxechn.c32 sanboot.c32 sdi.c32 vesainfo.c32 > + > +# All-architecture modules > +MOD_ALL = cat.c32 cmd.c32 config.c32 cptime.c32 cpuid.c32 cpuidtest.c32 \ > + debug.c32 dir.c32 dmitest.c32 hexdump.c32 host.c32 ifcpu.c32 \ > + ifcpu64.c32 linux.c32 ls.c32 meminfo.c32 pwd.c32 reboot.c32 \ > + vpdtest.c32 whichsys.c32 zzjson.c32 > + > +ifeq ($(FIRMWARE),BIOS) > +MODULES = $(MOD_ALL) $(MOD_BIOS) > +else > +MODULES = $(MOD_ALL) > +endif > > TESTFILESA little cleaner than stripping some binaries off. This is a start on bug # 37 -- -Gene
Geert Stappers
2015-Sep-20 13:33 UTC
[syslinux] com32/modules: Split build by architecture and #37
On Sun, Sep 20, 2015 at 08:35:39AM -0400, Gene Cumm via Syslinux wrote:> On Sun, Sep 20, 2015 at 8:33 AM, syslinux-bot for Gene Cumm wrote: > > Commit-ID: e0ac1d2fdf7d7c58457f3796a12561cce95ca29f > > --- a/com32/modules/Makefile > > +++ b/com32/modules/Makefile > > @@ -18,13 +18,22 @@ > > VPATH = $(SRC) > > include $(MAKEDIR)/elf.mk > > > > -MODULES = config.c32 ethersel.c32 dmitest.c32 cpuidtest.c32 \ > > - disk.c32 pcitest.c32 elf.c32 linux.c32 reboot.c32 pmload.c32 \ > > - meminfo.c32 sdi.c32 sanboot.c32 ifcpu64.c32 vesainfo.c32 \ > > - kbdmap.c32 cmd.c32 vpdtest.c32 host.c32 ls.c32 gpxecmd.c32 \ > > - ifcpu.c32 cpuid.c32 cat.c32 pwd.c32 ifplop.c32 zzjson.c32 \ > > - whichsys.c32 prdhcp.c32 pxechn.c32 kontron_wdt.c32 ifmemdsk.c32 \ > > - hexdump.c32 poweroff.c32 cptime.c32 debug.c32 > > +# BIOS-specific modules > > +MOD_BIOS = disk.c32 elf.c32 ethersel.c32 gpxecmd.c32 ifmemdsk.c32 ifplop.c32 \ > > + kbdmap.c32 kontron_wdt.c32 pcitest.c32 pmload.c32 poweroff.c32 \ > > + prdhcp.c32 pxechn.c32 sanboot.c32 sdi.c32 vesainfo.c32 > > + > > +# All-architecture modules > > +MOD_ALL = cat.c32 cmd.c32 config.c32 cptime.c32 cpuid.c32 cpuidtest.c32 \ > > + debug.c32 dir.c32 dmitest.c32 hexdump.c32 host.c32 ifcpu.c32 \ > > + ifcpu64.c32 linux.c32 ls.c32 meminfo.c32 pwd.c32 reboot.c32 \ > > + vpdtest.c32 whichsys.c32 zzjson.c32 > > + > > +ifeq ($(FIRMWARE),BIOS) > > +MODULES = $(MOD_ALL) $(MOD_BIOS) > > +else > > +MODULES = $(MOD_ALL) > > +endif > > > > TESTFILES > > A little cleaner than stripping some binaries off.Yes, thanks!> This is a start on bug # 37Yes, it is good start. At least it make me realize there is a "variable" named 'FIRMWARE' which can have value 'BIOS'. With `grep` I found also values 'EFI32' and 'EFI64' So I think a next for fixing http://bugzilla.syslinux.org/show_bug.cgi?id=37 would be something like: --- a/com32/lib/syslinux/reboot.c +++ b/com32/lib/syslinux/reboot.c @@ -37,6 +37,7 @@ __noreturn syslinux_reboot(int warm) { +#ifdefine FIRMWARE equals 'BIOS' uint16_t *const reboot_flag = (uint16_t *) 0x472; *reboot_flag = warm ? 0x1234 : 0; @@ -44,4 +45,9 @@ __noreturn syslinux_reboot(int warm) while (1) asm volatile ("hlt"); +#endif /* BIOS FIRMWARE */ + +#ifdefine (( FIRMWARE equals 'EFI32') or ( FIRMWARE equals 'EFI64' )) + ResetSystem(warm); +#endif /* EFI FIRMWARE */ } Groeten Geert Stappers Who doesn't know if he has a syslinux bugzilla account and will report back about on that (later this week) -- Leven en laten leven