summaryrefslogtreecommitdiff
path: root/arch/arm/lib/Makefile
AgeCommit message (Collapse)Author
2020-06-25bdinfo: arm: Move ARM-specific info into its own fileSimon Glass
We don't really want to have ARM-specific code in a generic file. Create a new arch-specific function to hold it, and move it into that. Make the function weak so that any arch can implement it. Signed-off-by: Simon Glass <[email protected]> Reviewed-by: Bin Meng <[email protected]>
2020-05-01ARM: reset: use do_reset in SPL/TPL if SYSRESET was not enabled for themClaudius Heine
In case CONFIG_SYSRESET is set, do_reset from reset.c will not be available anywere, even if SYSRESET is disabled for SPL/TPL. 'do_reset' is called from SPL for instance from the panic handler and PANIC_HANG is not set Signed-off-by: Claudius Heine <[email protected]> Reviewed-by: Marek Vasut <[email protected]>
2020-01-10arch: arm: Program GIC LPI configuration tableBharat Kumar Reddy Gooty
Programs the following: 1. Redistributor PROCBASER configuration table (which is common for all redistributors) 2. Redistributor pending table (PENDBASER), for all the available redistributors. Signed-off-by: Bharat Kumar Reddy Gooty <[email protected]> Signed-off-by: Vladimir Olovyannikov <[email protected]>
2019-11-17spl: separate SPL_FRAMEWORK config for spl and tplHeiko Stuebner
Right now enabling SPL_FRAMEWORK will also enable it for the TPL in all cases, making the TPL bigger. There may be cases where the TPL is really size constrained due to its underlying ram size. Therefore introduce a new TPL_FRAMEWORK option and make the relevant conditionals check for both. The default is set to "y if SPL_FRAMEWORK" to mimic the previous behaviour where the TPL would always get the SPL framework if it was enabled in SPL. Signed-off-by: Heiko Stuebner <[email protected]> Reviewed-by: Kever Yang <[email protected]>
2019-02-13efi_selftest: allow building on ARMv7-MHeinrich Schuchardt
ARMv7-M only supports the Thumb instruction set. Our current crt0 code does not support it. With the patch we can build all unit tests of the EFI subsystem that do not require crt0. Signed-off-by: Heinrich Schuchardt <[email protected]> Signed-off-by: Alexander Graf <[email protected]>
2018-05-07arm: v7: Kconfig: Introduce SYS_ARM_CACHE_CP15Lokesh Vutla
Certain ARM architectures like ARMv7-A, ARMv7-R has support for enabling caches using CP15 registers. To have a common support for all these architectures, introduce a Kconfig symbol SYS_ARM_CACHE_CP15 that selects cache-cp15.c Tested-by: Michal Simek <[email protected]> Reviewed-by: Tom Rini <[email protected]> Signed-off-by: Lokesh Vutla <[email protected]>
2018-05-07SPDX: Convert all of our single license tags to Linux Kernel styleTom Rini
When U-Boot started using SPDX tags we were among the early adopters and there weren't a lot of other examples to borrow from. So we picked the area of the file that usually had a full license text and replaced it with an appropriate SPDX-License-Identifier: entry. Since then, the Linux Kernel has adopted SPDX tags and they place it as the very first line in a file (except where shebangs are used, then it's second line) and with slightly different comment styles than us. In part due to community overlap, in part due to better tag visibility and in part for other minor reasons, switch over to that style. This commit changes all instances where we have a single declared license in the tag as both the before and after are identical in tag contents. There's also a few places where I found we did not have a tag and have introduced one. Signed-off-by: Tom Rini <[email protected]>
2018-04-11ARM: Fix Makefile during SPL and TPL buildMarek Vasut
The tiny variants of memset and memcpy implementations can be built for TPL as well, check whether a TPL build is in progress and avoid including the default variants. Signed-off-by: Marek Vasut <[email protected]> Cc: Simon Glass <[email protected]> Cc: Tom Rini <[email protected]>
2018-02-07move booti_setup to arch/arm/lig/image.cBin Chen
Follow bootz's pattern by moving the booti_setup to arch/arm/lib. This allows to use booti_setup in other paths, e.g booting an Android image containing Image format. Note that kernel relocation is move out of booti_setup and it is the caller's responsibility to do it and allows them do it differently. say, cmd/booti.c just do a manually, while in the bootm path, we can use bootm_load_os(with some changes). Signed-off-by: Bin Chen <[email protected]> Reviewed-by: Tom Rini <[email protected]>
2018-01-22efi_selftest: test start imageHeinrich Schuchardt
This pair of tests checks the StartImage boot service. Each test loads an EFI application into memory and starts it. One returns by calling the Exit boot service. The other returns directly. The tests are not built on x86_64 because the relocation code for the efi binary cannot be created. Signed-off-by: Heinrich Schuchardt <[email protected]> Signed-off-by: Alexander Graf <[email protected]>
2017-11-21arm: provide a PCS-compliant setjmp implementationPhilipp Tomsich
The previous setjmp-implementation (as a static inline function that contained an 'asm volatile' sequence) was extremely fragile: (some versions of) GCC optimised the set of registers. One critical example was the removal of 'r9' from the clobber list, if -ffixed-reg9 was supplied. To increase robustness and ensure PCS-compliant behaviour, the setjmp and longjmp implementation are now in assembly and closely match what one would expect to find in a libc implementation. Signed-off-by: Philipp Tomsich <[email protected]> Tested-by: Andy Yan <[email protected]>
2017-06-05arm: Add Kconfig symbols used for Linux asm compatibilityPhil Edworthy
Rather than change asm files that come from Linux, add the symbols to Kconfig. Since one of the symbols is for thumb2 builds, make CPU_V7M always select them. Signed-off-by: Phil Edworthy <[email protected]>
2017-05-17armv8: fsl: move ccn504 code into FSL MakefileAndre Przywara
The generic ARMv8 assembly code contains routines for setting up a CCN interconnect, though the Freescale SoCs are the only user. Link this code only for Freescale targets, this saves some precious bytes in the chronically tight SPL. Signed-off-by: Andre Przywara <[email protected]>
2017-05-17armv8: SPL: only compile GIC code if neededAndre Przywara
Not every SoC needs to set up the GIC interrupt controller, so link think code only when the respective config option is set. This shaves off some bytes from the SPL code size. Signed-off-by: Andre Przywara <[email protected]> Reviewed-by: Simon Glass <[email protected]> Reviewed-by: Jagan Teki <[email protected]>
2017-05-11spl: fdt: support for fdt fixup for falcon bootB, Ravi
Adding support for fdt fixup to update the memory node in device tree for falcon boot. This is needed for single stage or falcon bootmode, to pass memory configuration to kernel through DT memory node. Signed-off-by: Ravi Babu <[email protected]> Reviewed-by: Lukasz Majewski <[email protected]>
2017-04-08armv7m: add instruction & data cache supportVikas Manocha
This patch adds armv7m instruction & data cache support. Signed-off-by: Vikas Manocha <[email protected]> cc: Christophe KERELLO <[email protected]>
2017-03-18arm: Migrate SYS_THUMB_BUILD to Kconfig, introduce SPL_SYS_THUMB_BUILDTom Rini
Today, we have cases where we wish to build all of U-Boot in Thumb2 mode for various reasons. We also have cases where we only build SPL in Thumb2 mode due to size constraints and wish to build the rest of the system in ARM mode. So in this migration we introduce a new symbol as well, SPL_SYS_THUMB_BUILD to control if we build everything or just SPL (or in theory, just U-Boot) in Thumb2 mode. Signed-off-by: Tom Rini <[email protected]> Acked-by: Siarhei Siamashka <[email protected]>
2017-01-20ARM: Default to using optimized memset and memcpy routinesTom Rini
We have long had available optimized versions of the memset and memcpy functions that are borrowed from the Linux kernel. We should use these in normal conditions as the speed wins in many workflows outweigh the relatively minor size increase. However, we have a number of places where we're simply too close to size limits in SPL and must be able to make the size vs performance trade-off in those cases. Cc: Philippe Reynes <[email protected]> Cc: Eric Jarrige <[email protected]> Cc: Heiko Schocher <[email protected]> Cc: Magnus Lilja <[email protected]> Cc: Lokesh Vutla <[email protected]> Cc: Chander Kashyap <[email protected]> Cc: Akshay Saraswat <[email protected]> Cc: Simon Glass <[email protected]> Cc: Stefan Roese <[email protected]> Signed-off-by: Tom Rini <[email protected]> Acked-by: Stefan Roese <[email protected]> Reviewed-by: Simon Glass <[email protected]>
2017-01-04armv8: prevent using THUMBAndre Przywara
The predominantely 32-bit ARM targets try to compile the SPL in Thumb mode to reduce code size. The 64-bit AArch64 instruction set does not know an alternative, concise encoding, so the Thumb build option should only be set for 32-bit targets. Likewise -marm machine options are only valid for ARMv7 targets. Signed-off-by: Andre Przywara <[email protected]> Reviewed-by: Alexander Graf <[email protected]> Reviewed-by: Simon Glass <[email protected]> Reviewed-by: Tom Rini <[email protected]> Acked-by: Maxime Ripard <[email protected]> Reviewed-by: Jagan Teki <[email protected]>
2016-11-27efi_loader: Allow to compile helloworld.efi w/o bundling itAlexander Graf
Today we can compile a self-contained hello world efi test binary that allows us to quickly verify whether the EFI loader framwork works. We can use that binary outside of the self-contained test case though, by providing it to a to-be-tested system via tftp. This patch separates compilation of the helloworld.efi file from including it in the u-boot binary for "bootefi hello". It also modifies the efi_loader test case to enable travis to pick up the compiled file. Because we're now no longer bloating the resulting u-boot binary, we can enable compilation always, giving us good travis test coverage. Signed-off-by: Alexander Graf <[email protected]> Reviewed-by: Tom Rini <[email protected]>
2016-11-14efi: arm: Add EFI app supportSimon Glass
Add support for EFI apps on ARM. This includes start-up and relocation code, plus a link script and some compiler setting changes. Signed-off-by: Simon Glass <[email protected]> [agraf: Remove whitespace change, add kconfig dep] Signed-off-by: Alexander Graf <[email protected]>
2016-08-20cmd: Split 'bootz' and 'booti' out from 'bootm'Tom Rini
The bootz and booti commands rely on common functionality that is found in common/bootm.c and common/bootm_os.c. They do not however rely on the rest of cmd/bootm.c to be implemented so split them into their own files. Have various Makefiles include the required infrastructure for CONFIG_CMD_BOOT[IZ] as well as CONFIG_CMD_BOOTM. Move the declaration of 'images' over to common/bootm.c. Cc: Masahiro Yamada <[email protected]> Signed-off-by: Tom Rini <[email protected]>
2016-08-05ARM: Rework and correct barrier definitionsTom Rini
As part of testing booting Linux kernels on Rockchip devices, it was discovered by Ziyuan Xu and Sandy Patterson that we had multiple and for some cases incomplete isb definitions. This was causing a failure to boot of the Linux kernel. In order to solve this problem as well as cover any corner cases that we may also have had a number of changes are made in order to consolidate things. First, <asm/barriers.h> now becomes the source of isb/dsb/dmb definitions. This however introduces another complexity. Due to needing to build SPL for 32bit tegra with -march=armv4 we need to borrow the __LINUX_ARM_ARCH__ logic from the Linux Kernel in a more complete form. Move this from arch/arm/lib/Makefile to arch/arm/Makefile and add a comment about it. Now that we can always know what the target CPU is capable off we can get always do the correct thing for the barrier. The final part of this is that need to be consistent everywhere and call isb()/dsb()/dmb() and NOT call ISB/DSB/DMB in some cases and the function names in others. Reviewed-by: Stephen Warren <[email protected]> Tested-by: Stephen Warren <[email protected]> Acked-by: Ziyuan Xu <[email protected]> Acked-by: Sandy Patterson <[email protected]> Reported-by: Ziyuan Xu <[email protected]> Reported-by: Sandy Patterson <[email protected]> Signed-off-by: Tom Rini <[email protected]>
2016-07-22spl: zImage support in Falcon modeLadislav Michl
Other payload than uImage is currently considered to be raw U-Boot image. Check also for zImage in Falcon mode. Signed-off-by: Ladislav Michl <[email protected]> Reviewed-by: Heiko Schocher <[email protected]>
2016-07-19ARMv8/PSCI: Fixup the device tree for PSCIHou Zhiqiang
Set the enable-method in the cpu node to PSCI, and create device node for PSCI, when PSCI was enabled. Signed-off-by: Hou Zhiqiang <[email protected]> Reviewed-by: York Sun <[email protected]>
2016-06-02arm: lib: import muldi3.S from LinuxMarek Vasut
Import muldi3.S from Linux 4.4.6 , commit 0d1912303e54ed1b2a371be0bba51c384dd57326 on arm32. This file implements __aeabi_lmul and it's alias __muldi3, which is needed when doing Thumb1 builds. This patch also defines CONFIG_THUMB2_KERNEL and CONFIG_ARM_ASM_UNIFIED which is necessary for correct build of these files both in ARM and Thumb mode, just like Linux does. Signed-off-by: Marek Vasut <[email protected]> Cc: Albert Aribaud <[email protected]> Cc: Masahiro Yamada <[email protected]> Cc: Simon Glass <[email protected]> Cc: Tom Rini <[email protected]> Reviewed-by: Tom Rini <[email protected]>
2016-06-02arm: lib: Import __do_div64 from LinuxMarek Vasut
Import __do_div64 from Linux 4.4.6 , commit 0d1912303e54ed1b2a371be0bba51c384dd57326 on arm32. This function is for some toolchains, which generate _udivmoddi4() for 64 bit division. Since we do not support stack unwinding, instead of importing the whole asm/unwind.h and all the baggage, this patch defines empty UNWIND() macro. This patch also defines CONFIG_THUMB2_KERNEL and CONFIG_ARM_ASM_UNIFIED which is necessary for correct build of these files both in ARM and Thumb mode, just like Linux does. Signed-off-by: Marek Vasut <[email protected]> Cc: Albert Aribaud <[email protected]> Cc: Masahiro Yamada <[email protected]> Cc: Simon Glass <[email protected]> Cc: Tom Rini <[email protected]> Reviewed-by: Tom Rini <[email protected]>
2016-06-02arm: lib: Sync libgcc 32b division/modulo operationsMarek Vasut
Sync the libgcc 32bit division and modulo operations with Linux 4.4.6 , commit 0d1912303e54ed1b2a371be0bba51c384dd57326 . The functions in these four files are present in lib1funcs.S in Linux, so replace these files with lib1funcs.S from Linux. Since we do not support stack unwinding, instead of importing the whole asm/unwind.h and all the baggage, this patch defines empty UNWIND() macro in lib1funcs.S . Moreover, to make all of the functions available, define CONFIG_AEABI , which is safe, because U-Boot is always compiled with ARM EABI. This patch also defines CONFIG_THUMB2_KERNEL and CONFIG_ARM_ASM_UNIFIED which is necessary for correct build of these files both in ARM and Thumb mode, just like Linux does. Signed-off-by: Marek Vasut <[email protected]> Cc: Albert Aribaud <[email protected]> Cc: Masahiro Yamada <[email protected]> Cc: Simon Glass <[email protected]> Cc: Tom Rini <[email protected]> Reviewed-by: Tom Rini <[email protected]>
2016-06-02arm: lib: Drop underscore from private libgcc filenamesMarek Vasut
Drop the underscore from the filenames of files implementing libgcc routines. There is no functional change. This change is done to make sync with Linux kernel easier. Signed-off-by: Marek Vasut <[email protected]> Cc: Albert Aribaud <[email protected]> Cc: Masahiro Yamada <[email protected]> Cc: Simon Glass <[email protected]> Cc: Tom Rini <[email protected]> Reviewed-by: Tom Rini <[email protected]>
2016-06-02arm: include: Import unified.h from Linux kernelMarek Vasut
Import unified.h from Linux kernel 4.4.6 , commit 0d1912303e54ed1b2a371be0bba51c384dd57326 . This header file contains macros used in libgcc functions in Linux kernel on ARM and will be needed for the libgcc sync. Since unified.h defines the W(instr) macro, we must drop this from the macro from memcpy.S , otherwise this triggers a warning about symbol redefinition. In order to keep the changes to unified.h to the minimum, tweak arch/arm/lib/Makefile such that it defines the CONFIG_ARM_ASM_UNIFIED macro, which places .syntax unified into all of the assembler files. This is mandatory. Moreover, for Thumb2 build, define CONFIG_THUMB2_KERNEL macro if and only if Thumb2 build is enabled. This macro is checked by unified.h and toggles between ARM and Thumb2 variant of the instructions in the assembler source files. Finally, this patch defines __LINUX_ARM_ARCH__=N macro based on the new CONFIG_SYS_ARM_ARCH Kconfig option. This macro selects between more optimal and more dense codepaths which work on armv5 and newer and less optimal codepaths which work on armv4 and possible armv3m. Tegra2 needs the same special handling as it does in arch/arm/Makefile to cater for the arm720t boot core. Signed-off-by: Marek Vasut <[email protected]> Cc: Albert Aribaud <[email protected]> Cc: Masahiro Yamada <[email protected]> Cc: Simon Glass <[email protected]> Cc: Tom Rini <[email protected]> Reviewed-by: Tom Rini <[email protected]>
2016-05-26Rename reset to sysresetStephen Warren
The current reset API implements a method to reset the entire system. In the near future, I'd like to introduce code that implements the device tree reset bindings; i.e. the equivalent of the Linux kernel's reset API. This controls resets to individual HW blocks or external chips with reset signals. It doesn't make sense to merge the two APIs into one since they have different semantic purposes. Resolve the naming conflict by renaming the existing reset API to sysreset instead, so the new reset API can be called just reset. Signed-off-by: Stephen Warren <[email protected]> Acked-by: Simon Glass <[email protected]>
2016-03-17arm: Add a 64-bit division routine to the private librarySimon Glass
This is missing, with causes lldiv() to fail on boards with use the private libgcc. Add the missing routine. Code is available for using the CLZ instruction but it is not enabled at present. This comes from coreboot version 4.0. Signed-off-by: Simon Glass <[email protected]>
2015-11-10arm: support Thumb-1 with CONFIG_SYS_THUMB_BUILDAlbert ARIBAUD
When building a Thumb-1-only target with CONFIG_SYS_THUMB_BUILD, some files fail to build, most of the time because they include mcr instructions, which only exist for Thumb-2. This patch introduces a Kconfig option CONFIG_THUMB2 and uses it to select between Thumb-2 and ARM mode for the aforementioned files. Signed-off-by: Albert ARIBAUD <[email protected]>
2015-09-28arm: Drop old non-generic-board codeSimon Glass
This code is no-longer used. Drop it. Signed-off-by: Simon Glass <[email protected]> Acked-by: Andreas Bießmann <[email protected]>
2015-09-03Merge git://git.denx.de/u-boot-rockchipTom Rini
2015-09-02arm: reset: Avoid a build error when the reset uclass is enabledSimon Glass
There can be only one do_reset(). When CONFIG_RESET is enabled this is provided by the reset uclass, and ARM's version should be disabled. Signed-off-by: Simon Glass <[email protected]>
2015-09-01armv8: Add framework for CCN-504 interconnect configurationBhupesh Sharma
This patch adds a minimal framework for Dickens CCN-504 interconnect configuration - mainly related to adding Clusters/cores to snoop/DVM domain and setting QoS of the RN-I ports. LS2085A platform makes use of these configurations to support better network data performance and to boot a SMP Linux. Signed-off-by: Bhupesh Sharma <[email protected]> Reviewed-by: York Sun <[email protected]>
2015-05-28common/cmd_boot: keep ARM v7M in thumb mode during do_go_exec()Matt Porter
On ARM v7M, the processor will return to ARM mode when executing a blx instruction with bit 0 of the address == 0. Always set it to 1 to stay in thumb mode. Signed-off-by: Matt Porter <[email protected]>
2015-04-22ARM: Add ARMv7-M support[email protected]
Signed-off-by: Kamil Lulko <[email protected]>
2015-02-17common/board_f: factor out reserve_stacksAndreas Bießmann
Introduce arch_reserve_stacks() to tailor gd->start_addr_sp and gd->irq_sp to the architecture needs. Signed-off-by: Andreas Bießmann <[email protected]> Reviewed-by: Simon Glass <[email protected]>
2014-10-26arm: debug: add Kconfig entries for lowlevel debugMasahiro Yamada
We have not had a good method to debug the early boot stage such as lowlevel_init function. I guess developers generally use dedicated debuggers for that, but it is difficult in some cases. (For example, my debugger cannot connect to the ARM processor when it is in the secure state. It sometimes happens when I need to debug the early boot stage on ARM SoCs with secure extension.) The low level debug feature in Linux would be also helpful for U-boot when we are stucking in nasty problems where the console is not available yet. You have to enable CONFIG_DEBUG_LL to use this feature. For now, only 8250-compatible UART devices are supported. You can add a header file under arch/arm/include/debug/ directory to support your UART device if necessary. Signed-off-by: Masahiro Yamada <[email protected]>
2014-07-03arm: Add support for semihosting for armv8 fastmodel targets.Darwin Rambo
The armv8 ARM Trusted Firmware (ATF) can be used to load various ATF images and u-boot, and does this for virtual platforms by using semihosting. This commit extends this idea by allowing u-boot to also use semihosting to load the kernel/ramdisk/dtb. This eliminates the need for a bootwrapper and produces a more realistic boot sequence with virtual models. Though the semihosting code is quite generic, support for armv7 in fastmodel is less useful due to the wide range of available silicon and the lack of a free armv7 fastmodel, so this change contains an untested armv7 placeholder for the service trap opcode. Please refer to doc/README.semihosting for a more detailed description of semihosting and how it is used with the armv8 virtual platforms. Signed-off-by: Darwin Rambo <[email protected]> Cc: [email protected] Cc: [email protected] Cc: [email protected]
2014-05-15arm: move exception handling out of start.S filesAlbert ARIBAUD
Exception handling is basically identical for all ARM targets. Factorize it out of the various start.S files and into a single vectors.S file, and adjust linker scripts accordingly. Signed-off-by: Albert ARIBAUD <[email protected]>
2014-04-08arm64 patch: gicv3 supportDavid Feng
This patch add gicv3 support to uboot armv8 platform. Changes for v2: - rename arm/cpu/armv8/gic.S with arm/lib/gic_64.S - move smp_kick_all_cpus() from gic.S to start.S, it would be implementation dependent. - Each core initialize it's own ReDistributor instead of master initializeing all ReDistributors. This is advised by arnab.basu <[email protected]>. Signed-off-by: David Feng <[email protected]>
2014-03-07kbuild: add CONFIG_ prefix to USE_PRIVATE_LIBGCCMasahiro Yamada
Before this commit, USE_PRIVATE_LIBGCC was defined in arch-specific config.mk and referenced in arch/$(ARCH)/lib/Makefile. We are not happy about parsing config.mk again and again. We have to keep the same behavior with a different way. By adding "CONFIG_" prefix, this macro appears in include/autoconf.mk, include/spl-autoconf.mk. (And treating USE_PRIVATE_LIBGCC as CONFIG macro is reasonable enough.) Tegra SoC family defined USE_PRIVATE_LIBGCC as "yes" in arch/arm/cpu/arm720t/tegra*/config.mk, whereas did not define it in arch/arm/cpu/armv7/tegra*/config.mk. It means Tegra enables PRIVATE_LIBGCC only for SPL. We can describe the same behavior by adding #ifdef CONFIG_SPL_BUILD # define CONFIG_USE_PRIVATE_LIBGCC #endif to include/configs/tegra-common.h. Signed-off-by: Masahiro Yamada <[email protected]> Cc: Tom Warren <[email protected]> Cc: Simon Glass <[email protected]> Acked-by: Stephen Warren <[email protected]>
2014-02-26arm: make _end compiler-generatedAlbert ARIBAUD
This prevents references to _end from generating absolute relocation records. This change is binary invariant for ARM targets. Signed-off-by: Albert ARIBAUD <[email protected]>
2014-01-09arm64: core supportDavid Feng
Relocation code based on a patch by Scott Wood, which is: Signed-off-by: Scott Wood <[email protected]> Signed-off-by: David Feng <[email protected]>
2013-10-31ARM: convert makefiles to Kbuild styleMasahiro Yamada
Signed-off-by: Masahiro Yamada <[email protected]>
2013-07-24Add GPL-2.0+ SPDX-License-Identifier to source filesWolfgang Denk
Signed-off-by: Wolfgang Denk <[email protected]> [trini: Fixup common/cmd_io.c] Signed-off-by: Tom Rini <[email protected]>
2013-07-16Build arch/$ARCH/lib/bootm.o depending on CONFIG_CMD_BOOTMDirk Eibach
MAKEALL is fine for ppc4xx and mpc85xx. Run checks were done on our controlcenterd hardware. Signed-off-by: Dirk Eibach <[email protected]> Signed-off-by: Andy Fleming <[email protected]>