On 23 April 2016 at 09:55, Mark Kettenis <mark.kette...@xs4all.nl> wrote: >> Date: Sat, 23 Apr 2016 08:25:22 -0400 >> From: Kenneth Westerback <kwesterb...@gmail.com> >> >> > And here is a possible fix. Got the inspiration from the SYSLINUX >> > bootloader. This forces alignment of the EFI-specific 64-bit types. >> > It leaves the normal int64_t/uint64_t alone, but we shouldn't use >> > those directly to define EFI data structures. >> > >> > John, can you confirm that this fixes the issue for you? >> > >> > Jonathan, Ken, provided that it does, ok? >> > >> > >> > Index: efi/include/i386/efibind.h >> > =================================================================== >> > RCS file: /home/cvs/src/sys/arch/amd64/stand/efi/include/i386/efibind.h,v >> > retrieving revision 1.2 >> > diff -u -p -r1.2 efibind.h >> > --- efi/include/i386/efibind.h 11 Dec 2015 20:17:10 -0000 1.2 >> > +++ efi/include/i386/efibind.h 23 Apr 2016 11:38:26 -0000 >> > @@ -88,8 +88,8 @@ Revision History >> > #ifndef ACPI_THREAD_ID /* ACPI's definitions are fine, use those >> > */ >> > #define ACPI_USE_SYSTEM_INTTYPES 1 /* Tell ACPI we've defined types */ >> > >> > -typedef uint64_t UINT64; >> > -typedef int64_t INT64; >> > +typedef uint64_t UINT64 __attribute__((__aligned__(8))); >> > +typedef int64_t INT64 __attribute__((__aligned__(8))); >> > >> > #ifndef _BASETSD_H_ >> > typedef uint32_t UINT32; >> > >> >> Your analysis is much more useful than mine was. :-). I was wondering >> how many other places might get bit by the mis-alignment, but this >> approach would seem to get them all in one fell swoop. >> >> If this works it is ok with me. It would be good to get yasuoka@ ok too. > > I can confirm it works here. Just did an install on the eMMC of the > lenovo stick 300. Got the same messages that John reported. But > boots fine now after installing the BOOTIA32.EFI with my fix.
Excellent. ok krw@ .... Ken