[syslinux] com32/modules: Split build by architecture and #37

Geert Stappers stappers at stappers.nl
Sun Sep 20 06:33:37 PDT 2015


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 # 37

Yes, 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


More information about the Syslinux mailing list