Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 24 Jul 2019 18:07:22 +0300
From:      Toomas Soome <tsoome@me.com>
To:        "O. Hartmann" <ohartmann@walstatt.org>
Cc:        "freebsd-embedded@freebsd.org" <embedded@freebsd.org>, FreeBSD CURRENT <freebsd-current@freebsd.org>
Subject:   Re: PCengines APU2C4, 12-STABLE: bootloader failure: Panic: free: guard2 fail @ 0x1000 + 2311663946 from
Message-ID:  <93EFC481-50A1-491C-87BB-12A35F3302EE@me.com>
In-Reply-To: <20190724154901.0c114ebe@thor.intern.walstatt.dynvpn.de>
References:  <20190724101132.5560377a@thor.intern.walstatt.dynvpn.de> <B7BF6016-E4B1-4B34-9C22-CC7CD789FA79@me.com> <20190724120720.4382397c@thor.intern.walstatt.dynvpn.de> <20190724154901.0c114ebe@thor.intern.walstatt.dynvpn.de>

next in thread | previous in thread | raw e-mail | index | archive | help


> On 24 Jul 2019, at 16:48, O. Hartmann <ohartmann@walstatt.org> wrote:
>=20
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA256
>=20
> Am Wed, 24 Jul 2019 12:06:53 +0200
> "O. Hartmann" <o.hartmann@walstatt.org =
<mailto:o.hartmann@walstatt.org>> schrieb:
>=20
>> -----BEGIN PGP SIGNED MESSAGE-----
>> Hash: SHA256
>>=20
>> Am Wed, 24 Jul 2019 12:09:16 +0300
>> Toomas Soome <tsoome@me.com> schrieb:
>>=20
>>>> On 24 Jul 2019, at 11:11, O. Hartmann <ohartmann@walstatt.org> =
wrote:
>>>>=20
>>>> -----BEGIN PGP SIGNED MESSAGE-----
>>>> Hash: SHA256
>>>>=20
>>>> Hallo,
>>>>=20
>>>> on APU2C4 from PCengines with latest firmware apu2_v4.9.0.7.rom, =
SeaBIOS
>>>> rel-1.12.1.3-0-g300e8b7, booting via legacy MBR FreeBSD 12-STABLE =
r350274 (the same with
>>>> r350115) fails to boot with an immediate loader error:
>>>>=20
>>>> [...]
>>>> SeaBIOS (version rel-1.12.1.3-0-g300e8b7)
>>>>=20
>>>> Press F10 key now for boot menu
>>>>=20
>>>> Booting from Hard Disk...
>>>> /
>>>>=20
>>>> onsoles: internal video/keyboard  =20
>>>> IOS drive C: is disk0=20
>>>> IOS drive D: is disk1=20
>>>> IOS 639kB/3404444kB available memory=20
>>>>=20
>>>> reeBSD/x86 bootstrap loader, Revision 1.1 =20
>>>> Mon Apr 15 21:28:11 CEST 2019 root@thor)=20
>>>> anic: free: guard2 fail @ 0x1000 + 2311663946 from =
X=C3=A7u0=C3=A7}4=C3=A7l$=E2=99=A6=E2=94=9C=C3=AD@=E2=94=A4=E2=99=A0:21061=
63957    =20
>>>> -> Press a key on the console to reboot <--    =20
>>>> [=E2=80=A6]   =20
>>>=20
>>>=20
>>> This is definitely something =E2=80=9Cfunny=E2=80=9D, we are =
apparently attempting to free pointer 0x1000
>>> which is definitely wrong because our heap should be just below 4GB =
line. Since we do get
>>> list of disks printed, also memory and version, it means we get =
error from interpretator -
>>> it is possible the stack did clash with bss and hence the =
corruption. =20
>>=20
>> I realized that I have defined=20
>>=20
>> WITH_KERNEL_RETPOLINE=3DYES
>>=20
>> and since I use to build NanoBSD with -DNO_CLEAN, I'm just now =
compiling a clean NanoBSD with
>> RETPOLINE mitigations disabled so far - trying to check whether =
either of the ways to build=20
>> causes the issue.
>>=20
>>>=20
>>> You can try to press space on first spinner and enter alternate =
loader on boot: prompt.
>>> (enter ?/boot on boot: prompt to see the file list). =20
>>=20
>> I try a soon as the build process has finished and if the problem is =
then still present.
>=20
>=20
> With a fresh build and no RETPOLINE mitigation (neither kernel nor =
world) the phenomenon as
> described above is still the same. I tried an alternative loader as =
requested, but without
> success. When choosing loader_4th, I get this error:
>=20
> [...]
> FreeBSD/x86 boot
> Default: 0:ad(0p3)/boot/loader
> boot:  /boot/loader_4th/
>=20
> onsoles: internal video/keyboard
> IOS drive C: is disk0
> IOS drive D: is disk1
> IOS 639kB/3404444kB available memory
>=20
> reeBSD/x86 bootstrap loader, Revision 1.1
> Wed Jul 24 12:51:12 CEST 2019 root@thor)
> anic: No heap setup
> -> Press a key on the console to reboot <=E2=80=94
>=20

Now this is bad. if my math is correct, this system is supposed to have =
3GB of RAM, so are there specific build exceptions in place? see =
stand/i386/loader/main.c, function main, after call to bios_getmem().

rgds,
toomas

>=20
> Loader loader_simp ends up in stuck console with no output:
>=20
> [...]
> FreeBSD/x86 boot
> Default: 0:ad(0p3)/boot/loader
> boot:  /boot/loader_4th/
>=20
> onsoles: internal video/keyboard
> IOS drive C: is disk0
> IOS drive D: is disk1
> IOS 639kB/3404444kB available memory
>=20
> reeBSD/x86 bootstrap loader, Revision 1.1
> Wed Jul 24 12:59:23 CEST 2019 root@thor)
> [...]
>=20
> regards
> oh
>>=20
>>>=20
>>>=20
>>>>=20
>>>>=20
>>>>=20
>>>>=20
>>>> Booting 12.0-STABLE #78 r349288: Sat Jun 22 09:10:25 CEST 2019 =
amd64 works fine with
>>>> nothing changed except the OS version.
>>>>=20
>>>>=20
>>>> Booting 2.0-STABLE #78 r349288 works fine:
>>>>=20
>>>> [...]
>>>> SeaBIOS (version rel-1.12.1.3-0-g300e8b7)
>>>>=20
>>>> Press F10 key now for boot menu
>>>>=20
>>>> Booting from Hard Disk...
>>>> |
>>>>=20
>>>> onsoles: internal video/keyboard  =20
>>>> IOS drive C: is disk0=20
>>>> IOS drive D: is disk1=20
>>>> IOS 639kB/3404444kB available memory=20
>>>>=20
>>>> reeBSD/x86 bootstrap loader, Revision 1.1=20
>>>> Mon Apr 15 21:28:11 CEST 2019 root@thor)=20
>>>> oading /boot/defaults/loader.conf=20
>>>> oading /boot/device.hints=20
>>>> oading /boot/loader.conf=20
>>>> oading /boot/loader.conf.local=20
>>>> Loading kernel...
>>>> /boot/kernel/kernel text=3D0xb005e8 \
>>>> [...]
>>>>=20
>>>> In the message taken from the serial console the first column of =
characters is lost due
>>>> to an error in the output which seems FreeBSD related.
>>>>=20
>>>=20
>>> It certainly does look weird - sio_putc() is used in boot2 and =
it=E2=80=99s implementation is using
>>> same principe as comc_putchat() in comconsole.c (even if it is asm =
versus c code). Since
>>> the serial data is interpreted by terminal, it feels more about =
terminal emulator issue
>>> (line discipline, cabling, usb to serial dongle?) =20
>>=20
>> We use here a null modem cabling with an integrated USB-to-UART/TTL =
converter, which is
>> attached to a FreeBSD CURRENT (most recent) box:
>>=20
>> [...]
>> ugen2.3: <FTDI FT232R USB UART> at usbus2
>> uftdi0 on uhub4
>> uftdi0: <FT232R USB UART> on usbus2
>> [...]
>>=20
>> it is a=20
>> StarTech.com 1 Port USB Nullmodem RS232 Adapter Kabel (USB 2.0 FTDI =
chipset).
>>=20
>> Regards,
>> oh
>>=20
>>=20
>>>=20
>>> rgds,
>>> toomas
>>>=20
>>>=20
>>>>=20
>>>> The file /boot/loader.conf.local contains these lines in both, =
working and non-working,
>>>> scenario:
>>>>=20
>>>> [...]
>>>> boot_serial=3D"YES"
>>>> # serial speed in bits/s
>>>> comconsole_speed=3D"115200"
>>>> console=3D"comconsole"
>>>>=20
>>>> autoboot_delay=3D"0"
>>>>=20
>>>> verbose_loading=3D"YES"
>>>> loader_logo=3D"orb"
>>>> beastie_disable=3D"YES"
>>>>=20
>>>> ###  Microcode
>>>> #cpu_microcode_load=3D"YES"                # Set this to YES to =
load and apply a
>>>> #cpu_microcode_name=3D"/boot/firmware/intel-ucode.bin" # Set this =
to the microcode
>>>> #cpu_microcode_type=3D"cpu_microcode"      # Required for the =
kernel to find
>>>>                                        # the microcode update file.
>>>>=20
>>>>=20
>>>> # disable Process Table Isolation
>>>> #vm.pmap.pti=3D0
>>>>=20
>>>> kern.geom.label.gptid.enable=3D0
>>>>=20
>>>> # Limit the phys. memory
>>>> #hw.physmem=3D1073741824  # 1 G
>>>> #hw.physmem=3D536870912   # 512 MB
>>>> #hw.physmem=3D268435456   # 256 MB
>>>>=20
>>>> # Da mehr als 1 igb NIC an Bord! Siehe man igb(4)
>>>> kern.ipc.nmbclusters=3D757350
>>>> #kern.ipc.nmbjumbo9k=3D8192
>>>>=20
>>>> # NIC
>>>> #hw.em.max_interrupt_rate=3D32000
>>>> hw.em.max_interrupt_rate=3D16000
>>>>=20
>>>> #If non-zero, enable EXPERIMENTAL feature to improve concurrent =
Fortuna performance
>>>> kern.random.fortuna.concurrent_read=3D"1"
>>>>=20
>>>> # Forward Information Bases (FIBs)
>>>> net.fibs=3D10
>>>> net.add_addr_allfibs=3D0
>>>>=20
>>>> [...]
>>>>=20
>>>>=20
>>>> Again, with the exact same setting 12-STABLE r349288 boots fine, =
rr350274 doesn't.=20
>>>> FreeBSD 12-STABLE r
>>>>=20
>>>> Can someone please help?
>>>>=20
>>>> Thanks in advance, oh
>=20
> [...]
>=20
>=20
> - --=20
> O. Hartmann
>=20
> Ich widerspreche der Nutzung oder =C3=9Cbermittlung meiner Daten f=C3=BC=
r
> Werbezwecke oder f=C3=BCr die Markt- oder Meinungsforschung (=C2=A7 28 =
Abs. 4 BDSG).
> -----BEGIN PGP SIGNATURE-----
>=20
> iHUEARYIAB0WIQSy8IBxAPDkqVBaTJ44N1ZZPba5RwUCXThhzQAKCRA4N1ZZPba5
> R5SrAQDMEZQPGXsD9dqGsq9wNOPYPY7o0y/sBm9ovRkyepI5VwD/WUulyFprjlPI
> hKYI/AJ/VVqI3EfPd/dUiSyBf1toeQw=3D
> =3DaLz0
> -----END PGP SIGNATURE-----
> _______________________________________________
> freebsd-current@freebsd.org <mailto:freebsd-current@freebsd.org> =
mailing list
> https://lists.freebsd.org/mailman/listinfo/freebsd-current =
<https://lists.freebsd.org/mailman/listinfo/freebsd-current>;
> To unsubscribe, send any mail to =
"freebsd-current-unsubscribe@freebsd.org =
<mailto:freebsd-current-unsubscribe@freebsd.org>"




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?93EFC481-50A1-491C-87BB-12A35F3302EE>