[Linaro-acpi] Touching the initrd before paging_init

Leif Lindholm leif.lindholm at linaro.org
Tue Dec 15 02:14:55 PST 2015


On Mon, Dec 14, 2015 at 11:51:09PM -0500, Jon Masters wrote:
> Addendum. I was able to get the initrd based ACPI table override
> working...HOWEVER...
> 
> *** I had to implement a custom memcpy routine to do so ***
> 
> Per some internal suggestions, I tried moving map_mem earlier (prior to
> doing boot time ACPI table parsing, in order to avoid needing to abuse
> fixmaps to touch the initrd contents), which works. For reading the
> ramdisk cpio content (the kernel code still uses a fixmap in the initrd
> override driver code to map the newly created tables in memory).
> 
> But the reading of that cpio content into the new table locations is
> done using the kernel memcpy routine to early_ioremap'd memory (Device
> memory), which is architecturally sensitive to missaligned accesses.

Why is it mapped as device memory?

If that is a legal thing, shouldn't drivers/acpi/osl.c be using
memcpy_fromio(), which (on ARM*) does the alignment fixups if
required, without going full-bytewise?

/
    Leif



More information about the linux-arm-kernel mailing list