]> git.baikalelectronics.ru Git - kernel.git/commit
MIPS: Octeon: detect and fix byte swapped initramfs
authorAurelien Jarno <aurelien@aurel32.net>
Tue, 10 May 2016 22:50:03 +0000 (00:50 +0200)
committerRalf Baechle <ralf@linux-mips.org>
Fri, 13 May 2016 13:30:25 +0000 (15:30 +0200)
commit632a842eca618686ac7826149678c6b83fd20d9e
treeaa0b9a748a012065c48978b482dc9abdff1734df
parent0a7d58c20158c6db8f1596b86e560ac3eab5d0b3
MIPS: Octeon: detect and fix byte swapped initramfs

Octeon machines support running in little endian mode. U-Boot usually
runs in big endian-mode. Therefore the initramfs is loaded in big endian
mode, and the kernel later tries to access it in little endian mode.

This patch fixes that by detecting byte swapped initramfs using either the
CPIO header or the header from standard compression methods, and
byte swaps it if needed. It first checks that the header doesn't match
in the native endianness to avoid false detections. It uses the kernel
decompress library so that we don't have to maintain the list of magics
if some decompression methods are added to the kernel.

Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
Acked-by: David Daney <david.daney@cavium.com>
Cc: linux-mips@linux-mips.org
Patchwork: https://patchwork.linux-mips.org/patch/13219/
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
arch/mips/kernel/setup.c