aboutsummaryrefslogtreecommitdiff
path: root/arch/parisc/boot/compressed/misc.c
AgeCommit message (Collapse)AuthorFilesLines
2021-09-03parisc: Fix unaligned-access crash in bootloaderHelge Deller1-1/+1
Kernel v5.14 has various changes to optimize unaligned memory accesses, e.g. commit 0652035a5794 ("asm-generic: unaligned: remove byteshift helpers"). Those changes triggered an unalignment-exception and thus crashed the bootloader on parisc because the unaligned "output_len" variable now suddenly was read word-wise while it was read byte-wise in the past. Fix this issue by declaring the external output_len variable as char which then forces the compiler to generate byte-accesses. Signed-off-by: Helge Deller <[email protected]> Cc: Arnd Bergmann <[email protected]> Cc: John David Anglin <[email protected]> Bug: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102162 Fixes: 8c031ba63f8f ("parisc: Unbreak bootloader due to gcc-7 optimizations") Fixes: 0652035a5794 ("asm-generic: unaligned: remove byteshift helpers") Cc: <[email protected]> # v5.14+
2019-05-03parisc: PA-Linux requires at least 32 MB RAMHelge Deller1-11/+20
Even a 32-bit kernel requires at least 27 MB to decompress itself, so halt the system with a message if the system has less memory than 32 MB. Signed-off-by: Helge Deller <[email protected]>
2018-10-17parisc: Include compressed vmlinux file in vmlinuz boot kernelHelge Deller1-18/+77
Change the parisc vmlinuz boot code to include and process the real compressed vmlinux.gz ELF file instead of a compressed memory dump. This brings parisc in sync on how it's done on x86_64. The benefit of this change is that, e.g. for debugging purposes, one can then extract the vmlinux file out of the vmlinuz which was booted which wasn't possible before. This can be archieved with the existing scripts/extract-vmlinux script, which just needs a small tweak to prefer to extract a compressed file before trying the existing given binary. The downside of this approach is that due to the extra round of decompression/ELF processing we need more physical memory installed to be able to boot a kernel. Signed-off-by: Helge Deller <[email protected]>
2017-12-17parisc: Fix indenting in puts()Helge Deller1-2/+2
Static analysis tools complain that we intended to have curly braces around this indent block. In this case this assumption is wrong, so fix the indenting. Fixes: 2f3c7b8137ef ("parisc: Add core code for self-extracting kernel") Reported-by: Dan Carpenter <[email protected]> Signed-off-by: Helge Deller <[email protected]> Cc: <[email protected]> # v4.14+
2017-09-22parisc: Unbreak bootloader due to gcc-7 optimizationsHelge Deller1-1/+2
gcc-7 optimizes the byte-wise accesses of get_unaligned_le32() into word-wise accesses if the 32-bit integer output_len is declared as external. This panics then the bootloader since we don't have the unaligned access fault trap handler installed during boot time. Avoid this optimization by declaring output_len as byte-aligned and thus unbreak the bootloader code. Additionally, compile the boot code optimized for size. Signed-off-by: Helge Deller <[email protected]>
2017-08-22parisc: Add core code for self-extracting kernelHelge Deller1-0/+301
Signed-off-by: Helge Deller <[email protected]>