All this talk about Wandboard Quad D1 is because I'm trying to
upgrade an
existing device currently running on a Wandboard Dual C1. It's a system
that started as Fedora 25 and was upgraded to Fedora 31 (via dnf
system-upgrade). It's been running fine on the Dual. I upgraded the
U-boot and it still runs fine on the C1, however if I try to use this SD
card in the Quad-D1 I get this during boot:
[ 6.841555] Freeing unused kernel memory: 2048K
[ 6.848283] ------------[ cut here ]------------
[ 6.852985] WARNING: CPU: 2 PID: 1 at arch/arm/mm/dump.c:248
note_page+0x1604
[ 6.860609] arm/mm: Found insecure W+X mapping at address 0xf0879000
[ 6.866994] Modules linked in:
[ 6.870093] CPU: 2 PID: 1 Comm: swapper/0 Not tainted
5.4.17-200.fc31.armv7h1
[ 6.877494] Hardware name: Freescale i.MX6 Quad/DualLite (Device Tree)
[ 6.884062] [<c0311264>] (unwind_backtrace) from [<c030b744>]
(show_stack+0x)
[ 6.891825] [<c030b744>] (show_stack) from [<c0b2d580>]
(dump_stack+0xb4/0xd)
[ 6.899068] [<c0b2d580>] (dump_stack) from [<c034d5bc>]
(__warn+0xdc/0xf8)
[ 6.905958] [<c034d5bc>] (__warn) from [<c034d96c>]
(warn_slowpath_fmt+0x70/)
[ 6.913455] [<c034d96c>] (warn_slowpath_fmt) from [<c03197a8>]
(note_page+0x)
[ 6.921383] [<c03197a8>] (note_page) from [<c0319a34>]
(walk_pgd+0xc8/0xe0)
[ 6.928357] [<c0319a34>] (walk_pgd) from [<c0319b10>]
(ptdump_check_wx+0x58/)
[ 6.935858] [<c0319b10>] (ptdump_check_wx) from [<c0b4182c>]
(kernel_init+0x)
[ 6.943706] [<c0b4182c>] (kernel_init) from [<c03010e8>]
(ret_from_fork+0x14)
[ 6.951281] Exception stack(0xee943fb0 to 0xee943ff8)
[ 6.956339] 3fa0: 00000000 00000000
00000
[ 6.964524] 3fc0: 00000000 00000000 00000000 00000000 00000000 00000000
00000
[ 6.972708] 3fe0: 00000000 00000000 00000000 00000000 00000013 00000000
[ 6.979365] ---[ end trace eb98c3200f90d0b6 ]---
[ 6.984352] Checked W+X mappings: FAILED, 1 W+X pages found
[ 6.989965] rodata_test: test data was not read only
and the system doesn't come up completely.
If I used a fresh Fedora-Minimal-31 on the Quad-D1 (or the Dual-C1) it
works fine. Currently the main difference, as far as I can see, is that
there is a different kernel. The working system is running
5.3.7-301.fc31.armv7hl whereas the non-working is running
5.4.17-200.fc31.armv7hl.
I am currently working on upgrading the Fedora-Minimal to a more recent
kernel to try to reproduce the problem; if it doesn't reproduce I will
also try to upgrade the existing system. If it DOES reproduce then
clearly there's something with the F25->F31 filesystem, and I will have to
migrate everything to a fresh install :(
I'll let you know in a couple hours how the testing goes -- unless you've
seen this before and have an easy fix?
I've not seen it before but what I recommend is to go to a generic
initrd so it pulls in all the drivers, move over to the new device and
then allow it to go back to a host specific initrd.
I suspect there's slightly different HW requirements.
To do this install the dracut-config-generic package and reinstall or
upgrade the kernel, it'll be slower to boot, make sure it boots on the
current device, move to the new one.
Once it's running on the new one remove the package and the next
kernel will go back to a host specific initrd with the specific initrd
for the new HW.
Peter