[PATCH 3/3] ARM: allow kernel to be loaded in middle of phymem
nico at fluxnic.net
Thu Jan 23 15:01:09 EST 2014
On Thu, 23 Jan 2014, Russell King - ARM Linux wrote:
> On Thu, Jan 23, 2014 at 02:15:07PM -0500, Nicolas Pitre wrote:
> > On Wed, 22 Jan 2014, Wang Nan wrote:
> > > 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.
Sure. Anyway what I'm suggesting above would require that the crash
kernel be linked at a different virtual address for that to work.
That's probably more trouble than simply mapping the otherwise still
unmapped memory from the crashed kernel.
More information about the kexec