Description
Hi,
we implemented some firmware update mechanism. You can upload a new firmware
to a second partition on the SD card and then use kexec to boot into the new firmware
including a new kernel. When the bootup works fine, the U-Boot configuration is changed,
so on next boot, the new kernel and system is used.
With 3.12.x and ATAGS this worked fine. Now I tried today with 3.18.12 with device-tree enabled.
I get following crash:
kreboot
Currten Kernel Partition: /dev/mmcblk0p2
Partition Number 2
Partiton without number: mmcblk0p
Current Device: /dev/mmcblk0p2
mount -r /dev/mmcblk0p3 /mnt
Device Tree available
Modified cmdline:dma.dmachans=0x7f35 sdhci-bcm2708.emmc_clock_freq=250000000 console=ttyAMA0,9600 root=/dev/mmcblk0p3 ro�o�ooting Linux on physical CPU 0x0
Linux version 3.18.12 (wbrodkorb@wbrodkorb-ws) (gcc version 4.9.2 (GCC) ) #1 Wed May 6 11:34:41 CEST 2015
CPU: ARMv6-compatible processor [410fb767] revision 7 (ARMv7), cr=00c5387d
CPU: PIPT / VIPT nonaliasing data cache, VIPT nonaliasing instruction cache
Machine model: Raspberry Pi Model B
cma: Reserved 128 MiB at 0x14000000
Memory policy: Data cache writeback
Built 1 zonelists in Zone order, mobility grouping on. Total pages: 113792
Kernel command line: dma.dmachans=0x7f35 sdhci-bcm2708.emmc_clock_freq=250000000 console=ttyAMA0,9600 root=/dev/mmcblk0p3 rootwait smsc95xx.macaddr=00:50:C2:F9:22:F4
PID hash table entries: 2048 (order: 1, 8192 bytes)
Dentry cache hash table entries: 65536 (order: 6, 262144 bytes)
Inode-cache hash table entries: 32768 (order: 5, 131072 bytes)
Sorting __ex_table...
BUG: Bad page state in process swapper pfn:0e400
page:d3e00000 count:0 mapcount:0 mapping:fff70028 index:0xfff6002a
flags: 0x7ff80026(error|referenced|lru|swapbacked|unevictable|mlocked)
page dumped because: PAGE_FLAGS_CHECK_AT_FREE flag(s) set
bad because of flags:
flags: 0x300020(lru|unevictable|mlocked)
Modules linked in:
CPU: 0 PID: 0 Comm: swapper Not tainted 3.18.12 #1
Any ideas what is causing this? Will enable symbols now for the backtrace.