Bug 201495 - Initramfs support broken on ARMv7
Summary: Initramfs support broken on ARMv7
Status: NEW
Alias: None
Product: Platform Specific/Hardware
Classification: Unclassified
Component: ARM (show other bugs)
Hardware: ARM Linux
: P1 normal
Assignee: linux-arm-kernel@lists.arm.linux.org.uk
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2018-10-23 13:16 UTC by Guillaume GARDET
Modified: 2018-10-23 14:50 UTC (History)
6 users (show)

See Also:
Kernel Version: 4.17-rc7 and later
Tree: Mainline
Regression: No


Attachments

Description Guillaume GARDET 2018-10-23 13:16:13 UTC
On armv7, it is not possible to boot with initrd since commit d883c6cf3b39f1f42506e82ad2779fb88004acf3: 
  Revert "mm/cma: manage the memory of the CMA area by using the ZONE_MOVABLE"
  https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=d883c6cf3b39f1f42506e82ad2779fb88004acf3


Kernel 4.17-rc7 is the first broken version. I tested kernel 4.19.0 and the problem is still present.


The problem is the initrd is overwritten by kernel (verified by partial dump), so the kernel does not find the initrd anymore at the expected address. So, kernel is relocated and overwrite initrd.
Please note that all initial addresses (fdt, kernel and initrd) are fine to avoid overlapping. 


It is worth to note that switching from CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE to CONFIG_CC_OPTIMIZE_FOR_SIZE make it work properly.


This bug was initially reported in openSUSE bugzilla: https://bugzilla.opensuse.org/show_bug.cgi?id=1104833

Note You need to log in before you can comment on or make changes to this bug.