[PATCH 3/3] ARM: allow kernel to be loaded in middle of phymem
From: Russell King - ARM Linux <hidden>
Date: 2014-01-23 19:32:15
Also in:
kexec, linux-mm, lkml, stable
From: Russell King - ARM Linux <hidden>
Date: 2014-01-23 19:32:15
Also in:
kexec, linux-mm, lkml, stable
On Thu, Jan 23, 2014 at 02:15:07PM -0500, Nicolas Pitre wrote:
On Wed, 22 Jan 2014, Wang Nan wrote:quoted
This patch allows the kernel to be loaded at the middle of kernel awared physical memory. Before this patch, users must use mem= or device tree to cheat kernel about the start address of physical memory. This feature is useful in some special cases, for example, building a crash dump kernel. Without it, kernel command line, atag and devicetree must be adjusted carefully, sometimes is impossible.With CONFIG_PATCH_PHYS_VIRT the value for PHYS_OFFSET is determined dynamically by rounding down the kernel image start address to the previous 16MB boundary. In the case of a crash kernel, this might be cleaner to simply readjust __pv_phys_offset during early boot and call fixup_pv_table(), and then reserve away the memory from the previous kernel. That will let you access that memory directly (with gdb for example) and no pointer address translation will be required.
We already have support in the kernel to ignore memory below the calculated PHYS_OFFSET. See 571b14375019c3a66ef70d4d4a7083f4238aca30. -- FTTC broadband for 0.8mile line: 5.8Mbps down 500kbps up. Estimation in database were 13.1 to 19Mbit for a good line, about 7.5+ for a bad. Estimate before purchase was "up to 13.2Mbit".