-
Notifications
You must be signed in to change notification settings - Fork 5.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
kexec fails with 3.18.12 #958
Comments
Any different with DT disabled (add |
Hi, With DT:
|
|
1.) I can not change it, the boss decided a while ago to use 9600 as most Cisco devices use. Okay, I identified the problem. When using u-boot as intermediate bootloader it Hmpf. So a u-boot problem? |
Similar stack traces I've found online have been caused by the kernel memory overlapping something else - the compressed kernel, etc. From my previous experience with u-boot I recall you have to compile it to run at a particular base address - I suggest you look at that configuration and think about your memory layout. |
But this means that u-boot+kernel-with-dt uses another memory layout than u-boot+kernel-without-dt? |
No - the layout is the largely the same, except that more of the first 32KB is used to hold the DT blob. Does your u-boot implementation preserve that space? I presume it must be passing on the address of the DTB in r2, since that mechanism is also used for ATAGs. Is it possible that u-boot is making use of the ATAGs provided by the firmware, and that their absence (as hinted at above, you either provide ATAGs or DTB, but not both) is causing problem? |
If you want the GPU provided dtb, this may apply to your case: How to U-Boot with FDT on a Pi 2? |
I changed the u-boot settings to use following: But kexec still fails. So u-boot uses the DTB provided by the GPU bootloader in 0x00000100. |
@wbx-github has your issue been resolved? If so, please close this issue. Thanks. |
Duplicate of #27 |
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.
The text was updated successfully, but these errors were encountered: