summaryrefslogtreecommitdiffstats
path: root/arch/arm/Makefile
Commit message (Collapse)AuthorAgeFilesLines
* ARM: i.MX: Remove KaRo TX51 board supportSascha Hauer2021-05-171-1/+0
| | | | | | | | So far nobody cared enough to convert the board to multiimage support. Given that nobody seems to care for this board remove it and reduce the number of defconfigs by one. Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* Merge branch 'for-next/arm-qemu-virt64'Sascha Hauer2021-03-231-1/+0
|\
| * ARM64: qemu-virt64: migrate to generic DT imageAhmad Fatoum2021-03-171-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Current qemu-virt64 barebox support doesn't look much like what's offered on physical boards. It's not relocatable, lacks PBL and doesn't use device tree. As qemu-system-aarch64 -M virt -kernel already supplies an external device tree, we could just replace all existing support with BOARD_ARM_GENERIC_DT, which builds a barebox image that reuses an externally passed device tree. The 32-bit ARM VIRT support has some board code for host name setting and overlay applying to handle environment and state on flash. We could do without that, given the new virtio-blk support, but the code is already there, so reuse it and drop all current virt64-specific board code. As the barebox ELF image resulting from the build can no longer be directly booted as before and only with -kernel, not -bios, rename the Kconfig symbol, so existing users can notice this during build. Signed-off-by: Ahmad Fatoum <a.fatoum@pengutronix.de> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* | ARM: remove Calxeda Highbank supportSascha Hauer2021-03-221-1/+0
|/ | | | | | | | | | Calxeda went out off business back in 2013. The Calxeda Highbank port did not get any active maintenance since then. Since the Highbank support plays some tricks with devices trees passed to barebox from the firmware it becomes a maintenance burden. Remove Highbank support altogether. Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* ARM: drop no-thumb-interwork in EABI modeStefan Agner2021-02-161-1/+1
| | | | | | | | | | | | | | According to GCC documentation -m(no-)thumb-interwork is meaningless in AAPCS configurations. Also clang does not support the flag: clang-5.0: error: unknown argument: '-mno-thumb-interwork' Just drop -mno-thumb-interwork in AEABI configuration. Signed-off-by: Stefan Agner <stefan@agner.ch> [afa: ported from Linux 22905a24306c ("ARM: 8766/1: drop no-thumb-interwork in EABI mode")] Signed-off-by: Ahmad Fatoum <ahmad@a3f.at> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* Merge branch 'for-next/module'Sascha Hauer2020-07-271-1/+5
|\
| * arm: module: Allow modules outside of bl rangeDavid Dgien2020-07-011-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Unlike the Linux kernel, barebox does not have a dedicated heap for storing modules. Therefore, if the system memory configuration places the general heap further away than can be reached by a 'bl' instruction (24 bits of address, or 16 MiB), then the module relocations will fail due to being out of range. Allocate PLTs when loading modules so that jumps and calls whose targets are too far away for their relative offsets to be encoded in the instructions themselves can be bounced via veneers in the module's PLT. The modules will use slightly more memory, but after rounding up to page size, the actual memory footprint is usually the same. Adoption of Linux commits: 66e94ba3c8ea ARM: kernel: avoid brute force search on PLT generation 1031a7e674d1 ARM: kernel: sort relocation sections before allocating PLTs 05123fef0982 ARM: kernel: allocate PLT entries only for external symbols 35fa91eed817 ARM: kernel: merge core and init PLTs 7d485f647c1f ARM: 8220/1: allow modules outside of bl range Signed-off-by: David Dgien <dgienda125@gmail.com> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
| * arm: makefile: Fix compiler flag variableDavid Dgien2020-07-011-1/+1
| | | | | | | | | | | | | | | | | | | | In order for ARM modules to compile with the correct relocation types, they must be built without -fPIE. Move -fPIE from KBUILD_CPPFLAGS to KBUILD_CFLAGS_KERNEL so that the flag is only included when compiling files being built into the barebox image. Signed-off-by: David Dgien <dgienda125@gmail.com> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* | kbuild: remove AS variableMasahiro Yamada2020-06-171-2/+0
|/ | | | | | | | | | | | | | | | The assembler files in the barebox are *.S instead of *.s, so they must be preprocessed. Since 'as' of GNU binutils is not able to preprocess, we always use $(CC) as an assembler driver. Remove AS variable. Linux also removed AS. See Linux commits: aa824e0c962b ("kbuild: remove AS variable") 1ca0c2f61211 ("kbuild: remove unused AS assignment") Signed-off-by: Masahiro Yamada <masahiroy@kernel.org> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* arch: remove KBUILD_SRC checks from arch MakefileMasahiro Yamada2020-05-121-4/+0
| | | | | | | You can always add $(srctree)/ to the mach include path. Signed-off-by: Masahiro Yamada <masahiroy@kernel.org> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* kbuild: prefix compiler flag variables with KBUILD_Masahiro Yamada2020-04-271-17/+17
| | | | | | | | | | | | | | | | | | | | | | | | In old days, Linux also used to use well-known variables such CFLAGS, CPPFLAGS, etc. They were prefixed with KBUILD_ presumably for preventing users from overriding them accidentally. Rename as follows: CFLAGS -> KBUILD_CFLAGS AFLAGS -> KBUILD_AFLAGS CPPFLAGS -> KBUILD_CPPFLAGS LDFLAGS -> KBUILD_LDFLAGS HOSTCFLAGS -> KBUILD_HOSTCFLAGS HOSTCXXFLAGS -> KBUILD_HOSTCXXFLAGS HOSTLDFLAGS -> KBUILD_HOSTLDFLAGS HOST_LOADLIBES -> KBUILD_HOSTLDLIBS HOSTCFLAGS, HOSTCXXFLAGS, HOSTLDFLAGS, HOSTLDLIBS are re-used to allow users to pass-in additional flags to the host compiler. Signed-off-by: Masahiro Yamada <masahiroy@kernel.org> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* images: Use separate LDFLAGS for PBLChristian Eggers2020-02-101-0/+7
| | | | | | | | | | | | | | | When setting CONFIG_PBL_RELOCATABLE=y (selected by PBL_MULTI_IMAGES) and CONFIG_RELOCATABLE=n (trying to reduce image size), the PBL is also linked with "-static" instead of "-pie". The result is a non-working PBL. As a side effect, also get rid of erroneous "-Map barebox.map" when linking the PBL. Only changed for ARM, are any other platforms affected? Signed-off-by: Christian Eggers <ceggers@arri.de> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* ARM: Compile with -fPIESascha Hauer2019-11-121-0/+3
| | | | | | | | | | | | | | | | Early code in barebox often runs at an address the binary is not linked at. This causes problems for example when simple initializations in a switch are converted to an array lookup (-ftree-switch-conversion). These arrays are then addressed where they are linked at. Some code where this is known to cause problems is already compiled with -fno-tree-switch-conversion. This however is limited to single files. This patch compiles barebox with -fPIE enabled. This causes such tables to be looked up PC relative rather than with its absolute address. This makes the -fno-tree-switch-conversion and -fno-jump-table options unnecessary. Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* ARM: remove now unused PBL codeSascha Hauer2019-10-011-8/+0
| | | | | | | Single PBL is now built as part of the multi PBL images, so drop the now unused single PBL code. Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* ARM: NETX: remove architectureSascha Hauer2019-09-231-13/+0
| | | | | | | NETX support has been removed from the Kernel, so there's no point in supporting it in barebox any longer. Remove the architecture. Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* ARM: stm32mp1: rename to stm32mpAhmad Fatoum2019-06-131-1/+1
| | | | | | | | | | | | Serial and clk driver both depend on CONFIG_ARCH_STM32MP1, so either the Kconfig symbol or their depend needs to change. Patches posted by the vendor to Linux, U-Boot and their BSP Yocto-Layer speak of a STM32MP-Family of which the STM32MP1 is the first series, thus rename the arch by dropping the 1. Signed-off-by: Ahmad Fatoum <a.fatoum@pengutronix.de> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* arch: add KBUILD_DEFCONFIG to allow "make defconfig"Masahiro Yamada2019-05-131-0/+1
| | | | | | | | | | | | | | | | | | | | Currently, "make defconfig" is only supported for sandbox and x86. I set KBUILD_DEFCONFIG to support "make defconfig" where I was able to find a suitable one. nios2 and openrisc have a single generic_defconfig, so it is definitely good for KBUILD_DEFCONFIG. For arm, mips, I assume qemu is a preferred choice over a real board. blackfin has only one defconfig. Since it is inactive (it is gone in Linux), so no more defconfig will come in. I am not sure about ppc and riscv, so I did not touch them. Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* Merge branch 'for-next/stm32'Sascha Hauer2019-04-091-0/+1
|\
| * ARM: Add initial STM32MP1 supportSascha Hauer2019-03-131-0/+1
| | | | | | | | | | | | | | | | | | | | | | This adds initial STMicroelectronics MP1 support along with support for the DK2 devel board. Only very basic support: - UART - SDRAM memory base/size - No 1st stage support Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* | Merge branch 'for-next/layerscape'Sascha Hauer2019-04-081-0/+1
|\ \
| * | ARM: Add basic Layerscape supportSascha Hauer2019-03-131-0/+1
| |/ | | | | | | | | | | | | | | | | | | This adds basic Layerscape support: - Makefile/Kconfig - Register maps - errata workarounds Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* / ARM: Makefile: restore kindle3 imxcfg-y settingAlexander Kurz2019-03-181-0/+1
|/ | | | | | | | | Commit 45f38c1a846f ("ARM: Makefile: Drop unnecessary imxcfg-y settings") dropped the imximg generation for the kindle3. This device is not covered within multiimage support and can be configured with kindle3_defconfig. Signed-off-by: Alexander Kurz <akurz@blala.de> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* ARM: Makefile: Drop unnecessary imxcfg-y settingsSascha Hauer2019-01-161-3/+0
| | | | | | | For boards built with multiimage support imxcfg-y is not needed. Remove it for these boards. Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* Merge branch 'for-next/ultrascale'Sascha Hauer2019-01-151-0/+5
|\
| * ARM: zynqmp: add support for Xilinx ZCU104 boardMichael Tretter2018-12-101-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Add support for the Xilinx Zynq Ultrascale+ MPSoC architecture (ZynqMP) and the Xilinx ZCU104 board. Barebox is booted as BL33 in EL-1 and expects that a BL2 (i.e. the FSBL) already took care of initializing the RAM. Also for debug_ll, the UART is expected to be already setup correctly. Thus, you have to add the Barebox binary to a boot image as described in "Chapter 11: Boot and Configuration" of "Zynq Ultrascale+ Device Technical Reference Manual". Signed-off-by: Michael Tretter <m.tretter@pengutronix.de> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
| * ARM: aarch64: compile with general-regs-onlyMichael Tretter2018-12-101-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | Without this flag, gcc generates code to save the Q/V registers to the stack for handling the va_list in pr_print(). Saving the registers is useless, as the registers are never restored, but accessing the registers to save them hangs the CPU. Follow the Linux arch/arm64/Makefile and use the general-regs-only flag to prevent usage of floating point and Advanced SIMD register. Signed-off-by: Michael Tretter <m.tretter@pengutronix.de> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* | ARM: CCMX51: Switch to multiimage supportAlexander Shiyan2019-01-031-1/+0
|/ | | | | | | | | | | | This is a cumulative patch for the Digi ConnectCore CCMX51 SOM. It includes: - Switch board to devicetree probe. - Add MMC update handler. - Switch to multiimage support. - Cleanup and optimize board code. Signed-off-by: Alexander Shiyan <shc_work@mail.ru> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* Merge branch 'for-next/imx'Sascha Hauer2018-04-061-2/+0
|\
| * i.MX53/TX53: rework to dts based bootMichael Grzeschik2018-03-261-2/+0
| | | | | | | | | | | | | | | | Since nobody likes to use platformcode based machines any more, we also switch this one to use dts based booting. Signed-off-by: Michael Grzeschik <m.grzeschik@pengutronix.de> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* | ARM: aarch64: disable 32bit boot commandsSascha Hauer2018-04-041-1/+0
| | | | | | | | | | | | | | | | The 32bit boot support is full of legacy cruft. While it should be possible to merge the aarch64 support there, a fresh start looks more promising. Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* | ARM: aarch64: compile with strict alignmentSascha Hauer2018-03-291-0/+2
| | | | | | | | | | | | | | barebox runs with MMU disabled at least during startup. We need -mstrict-alignment for these parts to avoid alignment aborts. Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* | ARM: Add 64bit compilation alternativeSascha Hauer2018-03-211-0/+1
|/ | | | | | | | Our 64bit file variants have the suffix "_64". This adds a make variable that is either empty or contains "_64" which can be used to easily alternatively compile the 32bit or 64bit variant. Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* ARM: Makefile: format fixJuergen Borleis2017-01-191-1/+1
| | | | Signed-off-by: Juergen Borleis <jbe@pengutronix.de>
* arm: Add both .lds files to CLEAN_FILES unconditionallyAndrey Smirnov2016-08-241-4/+0
| | | | | | | | | | 'clean' target is listed on 'no-dot-config-targets' list in main Makefile so that conditional statement would yeild the same result every time. Given how CLEAN_FILES are rm'ed with -f there should be no harm in specifying them both unconditionally. Signed-off-by: Andrey Smirnov <andrew.smirnov@gmail.com> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* fix ARMv8 interference with ARMv7Vicente Bergas2016-08-151-1/+1
| | | | | | | | | | | CONFIG_CPU_V8 is checked against 'y' and 'n', but the case when the variable is unset is not considered. This patch only checks the variable against a single value 'y' so the logic is always coherent even when the variable is unset. Signed-off-by: Vicente Bergas <vicencb@gmail.com> Tested-by: Vicente Bergas <vicencb@gmail.com> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* ARM: i.MX: pcm043: add a flash-header.imxcfgUwe Kleine-König2016-08-031-0/+1
| | | | | | | This creates an image that can be booted via USB. Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* Merge branch 'for-next/imx'Sascha Hauer2016-07-111-0/+1
|\
| * ARM i.MX35: Add support for the Amazon Kindle3Alexander Kurz2016-07-111-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The Amazon Model No. D00901 Kindle3 is an E-Book reader based on the i.MX35 SOC. The device boots in internal boot mode from a build-in eMMC, alternatively the device may be set into USB-downloader mode when the Vol+ key is pressed on startup. Add support for this device and make barebox a drop-in replacement for the factory shipped u-boot image. Constraints for the use as drop-in replacement: - imximg header (offset 0x400) has a maximum size of 2kB minus 16 byte since the last 16 bytes are used to store a vendor specific hardware desctription identifier - the bootloader space (application plus env) is limited to 256kB minus 16 bytes when installed with offset of 4kB (the u-boot offset was 3kB). A vendor specific device identifier is stored in the gap between application and kernel. The vendor specific identifiers should not be overwritten. Notable features: - Support for eMMC, USB, UART, I2C, SPI and Keys (except keyboard) - Full support for vendor specific ATAGs - usbserial barebox console access by pressing Select button at startup, alternatively full console support on connector J14. Signed-off-by: Alexander Kurz <akurz@blala.de> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* | arm: boards: add mach-qemu and virt64 boardRaphael Poggi2016-07-061-0/+1
| | | | | | | | | | | | | | Introduce mach-qemu and add qemu virt64 board which emulates arm64 board. Signed-off-by: Raphael Poggi <poggi.raph@gmail.com> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* | arm: rework lib directory to support arm64Raphael Poggi2016-07-061-4/+20
| | | | | | | | | | | | | | | | | | | | | | This commit create a common directory, lib/, for arm and arm64 common code. It also create lib32/ and lib64/ for 32bit and 64bit code respectively. Signed-off-by: Raphael Poggi <poggi.raph@gmail.com> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* | arm: Makefile: rework makefile to handle armv8Raphael Poggi2016-07-061-0/+16
|/ | | | | Signed-off-by: Raphael Poggi <poggi.raph@gmail.com> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* Make: i.MX: Allow to pass config file to cmd_imx_imageSascha Hauer2016-02-041-1/+1
| | | | | | | | Pass the config file to cmd_imx_image as arguments to make it more flexible. Also add the possibility for another arg containing additional options. Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* bcm2835: introduce mach-bcm283xAlexander Aring2016-01-041-1/+1
| | | | | | | | | | | | This patch changes the most part of mach-bcm2835 to mach-bcm283x. This prepares to add RPi2 support which is a bcm2836. This patch changes the Kconfig entry namens to BCM283X for drivers only. These drivers should working the same in bcm2836. While updating defconfig I added LED support/trigger option. Signed-off-by: Alexander Aring <alex.aring@gmail.com> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* arm: Disable unaligned accessesAndrey Smirnov2015-10-151-0/+7
| | | | | | | | | | | | | | | | | | | From reading ARM architecture related documentation if appears that while unaligned memory access is supported by the processor in general it is not supported if MMU is disabled. The problem in question can be easily reproduced by building the code without this patch, MMU disabled, and trying to run 'memtest' command. Which would in turn call mem_test() which would eventually call show_progress(). That last function, if build without -mno-unaligned-access would result in unaligned memory access which would result in Barebox hanging. This patch instructs the compiler to not generate any unaligned accesses to memory thus avoiding the problem. Signed-off-by: Andrey Smirnov <andrew.smirnov@gmail.com> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* arm: crypto: add sha1 assembly supportJean-Christophe PLAGNIOL-VILLARD2015-03-271-0/+1
| | | | | | | | | | | | | | | | | | from Linux 3.9 linux generic implementation $ ls -al build/versatilpb/arch/arm/pbl/zbarebox.bin -rw-r--r-- 1 root root 210829 Mar 24 13:21 build/versatilpb/arch/arm/pbl/zbarebox.bin linux arm v4 asm implementation $ ls -al build/versatilpb/arch/arm/pbl/zbarebox.bin -rw-r--r-- 1 root root 207786 Mar 24 13:23 build/versatilpb/arch/arm/pbl/zbarebox.bin we win 3043 bytes and speed cf code Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* Merge branch 'for-next/misc'Sascha Hauer2015-03-091-1/+3
|\
| * ARM: do not specify -static and -pie at the same timeLucas Stach2015-03-021-1/+3
| | | | | | | | | | | | | | | | | | | | | | | | PIE is a form of dynamic linking and thus inherently incompatible with -static. It worked ok as the current behavior of ld.bfd is to not respect -static if -pie has been specified. ld.gold and future versions of ld.bfd will fail to link if both of those incompatible switches are specified at the same time. Signed-off-by: Lucas Stach <dev@lynxeye.de> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* | ARM: i.MX: remove i.MX6 ARM2 board supportSascha Hauer2015-03-091-1/+0
|/ | | | | | | This board is an early development sample that was never sold. Remove support for it. With this the last non device tree i.MX6 board is gone. Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* kbuild: arm: Do not define "comma" twiceMasahiro Yamada2015-01-131-2/+0
| | | | | | | | | | | | The definition of "comma" exists in scripts/Kbuild.include. We should not double it. Note: This was already fixed in Linux Kernel too. See commit 226422d08c33 of Linux Kernel. Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* arm: do section garbage collection also with modules enabledLucas Stach2014-12-171-2/+0
| | | | | | | | | | | | | | | | | | A lot of the arm build (especially PBL stuff) depends on section garbage collection to be enabled. If it is disabled a lot of targets fail to link properly. If module support is enabled garbage collection was disabled on the premise that we throw away too many function which may be needed in later modules. The proper way to keep the functions around for use in modules, which already works, is to annotate them with EXPORT_SYMBOL. As module support is still marked as experimental I think it's reasonable to expect users to make sure all symbols that are used by their modules are properly annotated. Signed-off-by: Lucas Stach <l.stach@pengutronix.de> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>