- 12 Oct, 2015 1 commit
-
-
Will Deacon authored
Commit df057cc7 ("arm64: errata: add module build workaround for erratum #843419") sets CFLAGS_MODULE to ensure that the large memory model is used by the compiler when building kernel modules. However, CFLAGS_MODULE is an environment variable and intended to be overridden on the command line, which appears to be the case with the Ubuntu kernel packaging system, so use KBUILD_CFLAGS_MODULE instead. Cc: <stable@vger.kernel.org> Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org> Fixes: df057cc7 ("arm64: errata: add module build workaround for erratum #843419") Reported-by:
Dann Frazier <dann.frazier@canonical.com> Tested-by:
Dann Frazier <dann.frazier@canonical.com> Signed-off-by:
Will Deacon <will.deacon@arm.com>
-
- 17 Sep, 2015 1 commit
-
-
Will Deacon authored
Cortex-A53 processors <= r0p4 are affected by erratum #843419 which can lead to a memory access using an incorrect address in certain sequences headed by an ADRP instruction. There is a linker fix to generate veneers for ADRP instructions, but this doesn't work for kernel modules which are built as unlinked ELF objects. This patch adds a new config option for the erratum which, when enabled, builds kernel modules with the mcmodel=large flag. This uses absolute addressing for all kernel symbols, thereby removing the use of ADRP as a PC-relative form of addressing. The ADRP relocs are removed from the module loader so that we fail to load any potentially affected modules. Cc: <stable@vger.kernel.org> Acked-by:
Catalin Marinas <catalin.marinas@arm.com> Signed-off-by:
Will Deacon <will.deacon@arm.com>
-
- 27 Jul, 2015 2 commits
-
-
Will Deacon authored
On CPUs which support the LSE atomic instructions introduced in ARMv8.1, it makes sense to use them in preference to ll/sc sequences. This patch introduces runtime patching of atomic_t and atomic64_t routines so that the call-site for the out-of-line ll/sc sequences is patched with an LSE atomic instruction when we detect that the CPU supports it. If binutils is not recent enough to assemble the LSE instructions, then the ll/sc sequences are inlined as though CONFIG_ARM64_LSE_ATOMICS=n. Reviewed-by:
Catalin Marinas <catalin.marinas@arm.com> Signed-off-by:
Will Deacon <will.deacon@arm.com>
-
Olof Johansson authored
Plumb up Makefile arguments for the already supported formats in the kbuild system: lz4, bzip2, lzma, and lzo. Note that just as with Image.gz, these images are not self-decompressing and the booting firmware still needs to handle decompression before launching the kernel image. Signed-off-by:
Olof Johansson <olof@lixom.net> Signed-off-by:
Will Deacon <will.deacon@arm.com>
-
- 17 Mar, 2015 1 commit
-
-
Steve Capper authored
Commit f4f75ad5 ("efi: efistub: Convert into static library") introduced a static library for EFI stub, libstub. The EFI libstub directory is referenced by the kernel build system via a obj subdirectory rule in: drivers/firmware/efi/Makefile Unfortunately, arm64 also references the EFI libstub via: libs-$(CONFIG_EFI_STUB) += drivers/firmware/efi/libstub/ If we're unlucky, the kernel build system can enter libstub via two simultaneous threads resulting in build failures such as: fixdep: error opening depfile: drivers/firmware/efi/libstub/.efi-stub-helper.o.d: No such file or directory scripts/Makefile.build:257: recipe for target 'drivers/firmware/efi/libstub/efi-stub-helper.o' failed make[1]: *** [drivers/firmware/efi/libstub/efi-stub-helper.o] Error 2 Makefile:939: recipe for target 'drivers/firmware/efi/libstub' failed make: *** [drivers/firmware/efi/libstub] Error 2 make: *** Waiting for unfinished jobs.... This patch adjusts the arm64 Makefile to reference the compiled library explicitly (as is currently done in x86), rather than the directory. Fixes: f4f75ad5 efi: efistub: Convert into static library Signed-off-by:
Steve Capper <steve.capper@linaro.org> Signed-off-by:
Will Deacon <will.deacon@arm.com>
-
- 20 Jan, 2015 1 commit
-
-
Jungseok Lee authored
As dts files have been reorganised under vendor subdirs, dtb files cannot be removed with "make distclean" now. Thus, this patch moves dtb files under archclean rule and removes unnecessary entries. Cc: Robert Richter <rrichter@cavium.com> Cc: Catalin Marinas <catalin.marinas@arm.com> Cc: Will Deacon <will.deacon@arm.com> Signed-off-by:
Jungseok Lee <jungseoklee85@gmail.com> Signed-off-by:
Will Deacon <will.deacon@arm.com>
-
- 15 Jan, 2015 1 commit
-
-
Kevin Hao authored
The arm64 kernel builds fine without the libgcc. Actually it should not be used at all in the kernel. The following are the reasons indicated by Russell King: Although libgcc is part of the compiler, libgcc is built with the expectation that it will be running in userland - it expects to link to a libc. That's why you can't build libgcc without having the glibc headers around. [...] Meanwhile, having the kernel build the compiler support functions that it needs ensures that (a) we know what compiler support functions are being used, (b) we know the implementation of those support functions are sane for use in the kernel, (c) we can build them with appropriate compiler flags for best performance, and (d) we remove an unnecessary dependency on the build toolchain. Signed-off-by:
Kevin Hao <haokexin@gmail.com> Acked-by:
Will Deacon <will.deacon@arm.com> Signed-off-by:
Catalin Marinas <catalin.marinas@arm.com>
-
- 21 Oct, 2014 3 commits
-
-
Robert Richter authored
Add dtb files to build targets and let kbuild handle them. Thus, special dtbs rules can be removed. This eases Makefiles and the implementation of the support of vendor dtb subdirectories. Signed-off-by:
Robert Richter <rrichter@cavium.com>
-
Robert Richter authored
Move dtbs install rules to Makefile.dtbinst. This change is needed to implement support for dts vendor subdirs. The change makes Makefiles easier and smaller as no longer the dtbs_install rule needs to be defined. Another advantage is that install goals are not encoded in targets anymore (%.dtb_dtbinst_). Signed-off-by:
Robert Richter <rrichter@cavium.com>
-
Robert Richter authored
This adds the dtbs_install make target to arm64. The target has been introduced already to arch/arm with the following commit: f4d4ffc0 kbuild: dtbs_install: new make target Implementation for arm64 is the same as for arm. With 'dtbs_install' all config enabled dtb files are installed to either the INSTALL_DTBS_PATH directory or the default location: $INSTALL_PATH/dtbs/$KERNELRELEASE Signed-off-by:
Robert Richter <rrichter@cavium.com>
-
- 02 Oct, 2014 1 commit
-
-
Masahiro Yamada authored
The definition of "comma" exists in scripts/Kbuild.include. We should not double it. Signed-off-by:
Masahiro Yamada <yamada.m@jp.panasonic.com> Cc: linux-arm-kernel@lists.infradead.org Signed-off-by:
Michal Marek <mmarek@suse.cz>
-
- 08 Sep, 2014 1 commit
-
-
Zi Shen Lim authored
The JIT compiler emits A64 instructions. It supports eBPF only. Legacy BPF is supported thanks to conversion by BPF core. JIT is enabled in the same way as for other architectures: echo 1 > /proc/sys/net/core/bpf_jit_enable Or for additional compiler output: echo 2 > /proc/sys/net/core/bpf_jit_enable See Documentation/networking/filter.txt for more information. The implementation passes all 57 tests in lib/test_bpf.c on ARMv8 Foundation Model :) Also tested by Will on Juno platform. Signed-off-by:
Zi Shen Lim <zlim.lnx@gmail.com> Acked-by:
Alexei Starovoitov <ast@plumgrid.com> Acked-by:
Will Deacon <will.deacon@arm.com> Signed-off-by:
Will Deacon <will.deacon@arm.com>
-
- 19 Aug, 2014 1 commit
-
-
Ard Biesheuvel authored
When booting via UEFI, the kernel Image is loaded at a 4 kB boundary and the embedded EFI stub is executed in place. The EFI stub relocates the Image to reside TEXT_OFFSET bytes above a 2 MB boundary, and jumps into the kernel proper. In AArch64, PC relative symbol references are emitted using adrp/add or adrp/ldr pairs, where the offset into a 4 kB page is resolved using a separate :lo12: relocation. This implicitly assumes that the code will always be executed at the same relative offset with respect to a 4 kB boundary, or the references will point to the wrong address. This means we should link the kernel at a 4 kB aligned base address in order to remain compatible with the base address the UEFI loader uses when doing the initial load of Image. So update the code that generates TEXT_OFFSET to choose a multiple of 4 kB. At the same time, update the code so it chooses from the interval [0..2MB) as the author originally intended. Reviewed-by:
Mark Rutland <mark.rutland@arm.com> Signed-off-by:
Ard Biesheuvel <ard.biesheuvel@linaro.org> Signed-off-by:
Will Deacon <will.deacon@arm.com>
-
- 18 Jul, 2014 1 commit
-
-
Ard Biesheuvel authored
This patch changes both x86 and arm64 efistub implementations from #including shared .c files under drivers/firmware/efi to building shared code as a static library. The x86 code uses a stub built into the boot executable which uncompresses the kernel at boot time. In this case, the library is linked into the decompressor. In the arm64 case, the stub is part of the kernel proper so the library is linked into the kernel proper as well. Signed-off-by:
Ard Biesheuvel <ard.biesheuvel@linaro.org> Signed-off-by:
Matt Fleming <matt.fleming@intel.com>
-
- 10 Jul, 2014 1 commit
-
-
Mark Rutland authored
The arm64 Image header contains a text_offset field which bootloaders are supposed to read to determine the offset (from a 2MB aligned "start of memory" per booting.txt) at which to load the kernel. The offset is not well respected by bootloaders at present, and due to the lack of variation there is little incentive to support it. This is unfortunate for the sake of future kernels where we may wish to vary the text offset (even zeroing it). This patch adds options to arm64 to enable fuzz-testing of text_offset. CONFIG_ARM64_RANDOMIZE_TEXT_OFFSET forces the text offset to a random 16-byte aligned value value in the range [0..2MB) upon a build of the kernel. It is recommended that distribution kernels enable randomization to test bootloaders such that any compliance issues can be fixed early. Signed-off-by:
Mark Rutland <mark.rutland@arm.com> Acked-by:
Tom Rini <trini@ti.com> Acked-by:
Will Deacon <will.deacon@arm.com> Signed-off-by:
Catalin Marinas <catalin.marinas@arm.com>
-
- 14 May, 2014 1 commit
-
-
Ard Biesheuvel authored
This patch adds support for the SHA-1 Secure Hash Algorithm for CPUs that have support for the SHA-1 part of the ARM v8 Crypto Extensions. Signed-off-by:
Ard Biesheuvel <ard.biesheuvel@linaro.org> Acked-by:
Herbert Xu <herbert@gondor.apana.org.au>
-
- 25 Oct, 2013 1 commit
-
-
Will Deacon authored
This patch adds big-endian support to the AArch64 top-level Makefile. This currently just passes the relevant flags to the toolchain and is predicated on a Kconfig option that will be introduced later on. Signed-off-by:
Will Deacon <will.deacon@arm.com> Signed-off-by:
Catalin Marinas <catalin.marinas@arm.com>
-
- 19 Jun, 2013 1 commit
-
-
Kyle McMartin authored
Provide a vdso_install target in the arm64 Makefile, as other architectures with a vdso do. Signed-off-by:
Kyle McMartin <kyle@redhat.com> Acked-by:
Will Deacon <will.deacon@arm.com> Signed-off-by:
Catalin Marinas <catalin.marinas@arm.com>
-
- 12 Jun, 2013 1 commit
-
-
Marc Zyngier authored
Only the Makefile is plugged in. The Kconfig stuff is in a separate patch to allow for an easier merge process. Reviewed-by:
Christopher Covington <cov@codeaurora.org> Signed-off-by:
Marc Zyngier <marc.zyngier@arm.com>
-
- 07 Jun, 2013 1 commit
-
-
Stefano Stabellini authored
Introduce CONFIG_XEN and the implementation of hypercall.S (that is the only ARMv8 specific code in Xen support for ARM). Compile enlighten.c and grant_table.c from arch/arm. Signed-off-by:
Stefano Stabellini <stefano.stabellini@eu.citrix.com> Acked-by:
Ian Campbell <ian.campbell@citrix.com>
-
- 10 Dec, 2012 1 commit
-
-
Catalin Marinas authored
The arch/arm64/Makefile was not passing the right target to the boot/dts/Makefile. Signed-off-by:
Catalin Marinas <catalin.marinas@arm.com> Signed-off-by:
Rob Herring <rob.herring@calxeda.com>
-
- 03 Dec, 2012 2 commits
-
-
Rob Herring authored
Based on Rob Herring's patches for arch/arm, this patch adds a dtbs target to arch/arm64/boot/Makefile. Signed-off-by:
Catalin Marinas <catalin.marinas@arm.com> Signed-off-by:
Rob Herring <rob.herring@calxeda.com>
-
Stephen Warren authored
The current rules have the .dtb files build in a different directory from the .dts files. This patch changes arm64 to use the generic dtb rule which builds .dtb files in the same directory as the source .dts. This requires moving parts of arch/arm64/boot/Makefile into newly created arch/arm64/boot/dts/Makefile, and updating arch/arm64/Makefile to call the new Makefile. Acked-by:
Catalin Marinas <catalin.marinas@arm.com> Cc: linux-arm-kernel@lists.infradead.org Signed-off-by:
Stephen Warren <swarren@nvidia.com> Signed-off-by:
Rob Herring <rob.herring@calxeda.com>
-
- 17 Sep, 2012 1 commit
-
-
Catalin Marinas authored
This patch adds Makefile and Kconfig files required for building an AArch64 kernel. Signed-off-by:
Will Deacon <will.deacon@arm.com> Signed-off-by:
Catalin Marinas <catalin.marinas@arm.com> Acked-by:
Tony Lindgren <tony@atomide.com> Acked-by:
Nicolas Pitre <nico@linaro.org> Acked-by:
Olof Johansson <olof@lixom.net> Acked-by:
Santosh Shilimkar <santosh.shilimkar@ti.com> Acked-by:
Arnd Bergmann <arnd@arndb.de>
-