[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