summaryrefslogtreecommitdiff
path: root/arch/arm/cpu/arm11
AgeCommit message (Collapse)Author
2024-10-11arch: Use CONFIG_XPL_BUILD instead of CONFIG_SPL_BUILDSimon Glass
Use the new symbol to refer to any 'SPL' build, including TPL and VPL Signed-off-by: Simon Glass <[email protected]>
2024-06-19arm: implement invalidate_icache_all on ARM11Heinrich Schuchardt
In EFI sub-system we rely on invalidate_icache_all() to invalidate the instruction cache after loading binaries. Add the missing implementation on ARM1136, ARM1176. Signed-off-by: Heinrich Schuchardt <[email protected]>
2024-05-20Restore patch series "arm: dts: am62-beagleplay: Fix Beagleplay Ethernet"Tom Rini
As part of bringing the master branch back in to next, we need to allow for all of these changes to exist here. Reported-by: Jonas Karlman <[email protected]> Signed-off-by: Tom Rini <[email protected]>
2024-05-19Revert "Merge patch series "arm: dts: am62-beagleplay: Fix Beagleplay Ethernet""Tom Rini
When bringing in the series 'arm: dts: am62-beagleplay: Fix Beagleplay Ethernet"' I failed to notice that b4 noticed it was based on next and so took that as the base commit and merged that part of next to master. This reverts commit c8ffd1356d42223cbb8c86280a083cc3c93e6426, reversing changes made to 2ee6f3a5f7550de3599faef9704e166e5dcace35. Reported-by: Jonas Karlman <[email protected]> Signed-off-by: Tom Rini <[email protected]>
2024-05-06arm: Remove <common.h> and add needed includesTom Rini
Remove <common.h> from the remainder of the files under arch/arm and when needed add missing include files directly. Signed-off-by: Tom Rini <[email protected]>
2023-07-01ARM: arm11: Add C wrapper for allow_unaligned()Marek Vasut
Rename current assembler implementation of allow_unaligned() to arm11_arch_cp15_allow_unaligned() and add it into arm11.h header, then add C wrapper of allow_unaligned(). This fixes misbehavior when linking U-Boot, where the CPU specific allow_unaligned() implementation was ignored and instead the __weak allow_unaligned() implementation from lib/efi_loader/efi_setup.c was used, which led to "data abort" just before booting Linux via tftp, in efi_dp_from_file() -> path_to_uefi() -> utf16_put() . The problem is triggerd by c7c0ca37673 ("efi_loader: fix efi_dp_from_file()") . Adding the wrapper fixes the problem. Fixes: d47a774680d ("arm: arm11: allow unaligned memory access") Signed-off-by: Marek Vasut <[email protected]>
2020-05-18common: Drop net.h from common headerSimon Glass
Move this header out of the common header. Network support is used in quite a few places but it still does not warrant blanket inclusion. Note that this net.h header itself has quite a lot in it. It could be split into the driver-mode support, functions, structures, checksumming, etc. Signed-off-by: Simon Glass <[email protected]>
2019-12-02common: Move enable/disable_interrupts out of common.hSimon Glass
Move these two functions into the irq_funcs.h header file. Also move interrupt_handler_t as this is used by the irq_install_handler() function. Signed-off-by: Simon Glass <[email protected]> Reviewed-by: Tom Rini <[email protected]>
2019-12-02arm: powerpc: Tidy up code style for interrupt functionsSimon Glass
Remove the unwanted space before the bracket. Signed-off-by: Simon Glass <[email protected]> Reviewed-by: Tom Rini <[email protected]>
2019-12-02common: Move some cache and MMU functions out of common.hSimon Glass
These functions belong in cpu_func.h. Another option would be cache.h but that code uses driver model and we have not moved these cache functions to use driver model. Since they are CPU-related it seems reasonable to put them here. Move them over. Signed-off-by: Simon Glass <[email protected]> Reviewed-by: Tom Rini <[email protected]>
2019-11-19arm: arm11: allow unaligned memory accessHeinrich Schuchardt
The UEFI spec mandates that unaligned memory access should be enabled if supported by the CPU architecture. This patch implements the function unaligned_access() to set the enable unaligned data support flag and to clear the aligned flag in the system control register (SCTLR). It is called when UEFI related commands like bootefi are invoked. Reported-by: Cristian Ciocaltea <[email protected]> Tested-by: Cristian Ciocaltea <[email protected]> Tested-by: Guillaume Gardet <[email protected]> Signed-off-by: Heinrich Schuchardt <[email protected]>
2019-05-18CONFIG_SPL_SYS_[DI]CACHE_OFF: addTrevor Woerner
While converting CONFIG_SYS_[DI]CACHE_OFF to Kconfig, there are instances where these configuration items are conditional on SPL. This commit adds SPL variants of these configuration items, uses CONFIG_IS_ENABLED(), and updates the configurations as required. Acked-by: Alexey Brodkin <[email protected]> Signed-off-by: Trevor Woerner <[email protected]> [trini: Make the default depend on the setting for full U-Boot, update more zynq hardware] Signed-off-by: Tom Rini <[email protected]>
2019-05-18CONFIG_SYS_[ID]CACHE_OFF: unify the 'any' caseTrevor Woerner
According to De Morgan's Law[1]: !(A && B) = !A || !B !(A || B) = !A && !B There are 5 places in the code where we find: #if !(defined(CONFIG_SYS_ICACHE_OFF) && defined(CONFIG_SYS_DCACHE_OFF)) and 4 places in the code where we find: #if (!defined(CONFIG_SYS_ICACHE_OFF) || !defined(CONFIG_SYS_DCACHE_OFF)) In words, the construct: !defined(CONFIG_SYS_[DI]CACHE_OFF) means: "is the [DI]CACHE on?" and the construct: defined(CONFIG_SYS_[DI]CACHE_OFF) means: "is the [DI]CACHE off?" Therefore !(defined(CONFIG_SYS_ICACHE_OFF) && defined(CONFIG_SYS_DCACHE_OFF)) means: "the opposite of 'are they both off?'" in other words: "are either or both on?" and: (!defined(CONFIG_SYS_ICACHE_OFF) || !defined(CONFIG_SYS_DCACHE_OFF) means: "are either or both on?" As a result, I've converted the 4 instances of '(!A || !B)' to '!(A && B)' for consistency. [1] https://en.wikipedia.org/wiki/De_Morgan%27s_laws Signed-off-by: Trevor Woerner <[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]>
2016-08-26ARM: Move SYS_CACHELINE_SIZE over to KconfigTom Rini
This series moves the CONFIG_SYS_CACHELINE_SIZE. First, in nearly all cases we are mirroring the values used by the Linux Kernel here. Also, so long as (and in this case, it is true) we implement flushes in hunks that are no larger than the smallest implementation (and given that we mirror the Linux Kernel, again we are fine) it is OK to align higher. The biggest changes here are that we always use 64 bytes for CPU_V7 even if for example the underlying core is only 32 bytes (this mirrors Linux). Second, we say ARM64 uses 64 bytes not 128 (as found in the Linux Kernel) as we do not need multi-platform support (to this degree) and only the Cavium ThunderX 88xx series has a use for such large alignment. Cc: Albert Aribaud <[email protected]> Cc: Marek Vasut <[email protected]> Cc: Stefano Babic <[email protected]> Cc: Prafulla Wadaskar <[email protected]> Cc: Luka Perkov <[email protected]> Cc: Stefan Roese <[email protected]> Cc: Nagendra T S <[email protected]> Cc: Vaibhav Hiremath <[email protected]> Acked-by: Lokesh Vutla <[email protected]> Cc: Steve Rae <[email protected]> Cc: Igor Grinberg <[email protected]> Cc: Nikita Kiryanov <[email protected]> Cc: Stefan Agner <[email protected]> Acked-by: Heiko Schocher <[email protected]> Cc: Mateusz Kulikowski <[email protected]> Cc: Peter Griffin <[email protected]> Acked-by: Paul Kocialkowski <[email protected]> Cc: Anatolij Gustschin <[email protected]> Acked-by: "Pali Rohár" <[email protected]> Cc: Adam Ford <[email protected]> Cc: Steve Sakoman <[email protected]> Cc: Grazvydas Ignotas <[email protected]> Cc: Nishanth Menon <[email protected]> Cc: Stephen Warren <[email protected]> Cc: Robert Baldyga <[email protected]> Cc: Minkyu Kang <[email protected]> Cc: Thomas Weber <[email protected]> Cc: Masahiro Yamada <[email protected]> Cc: David Feng <[email protected]> Cc: Alison Wang <[email protected]> Cc: Michal Simek <[email protected]> Cc: Simon Glass <[email protected]> Cc: York Sun <[email protected]> Cc: Shengzhou Liu <[email protected]> Cc: Mingkai Hu <[email protected]> Cc: Prabhakar Kushwaha <[email protected]> Cc: Aneesh Bansal <[email protected]> Cc: Saksham Jain <[email protected]> Cc: Qianyu Gong <[email protected]> Cc: Wang Dongsheng <[email protected]> Cc: Alex Porosanu <[email protected]> Cc: Hongbo Zhang <[email protected]> Cc: tang yuantian <[email protected]> Cc: Rajesh Bhagat <[email protected]> Cc: Josh Wu <[email protected]> Cc: Bo Shen <[email protected]> Cc: Viresh Kumar <[email protected]> Cc: Hannes Schmelzer <[email protected]> Cc: Thomas Chou <[email protected]> Cc: Joe Hershberger <[email protected]> Cc: Sam Protsenko <[email protected]> Cc: Bin Meng <[email protected]> Cc: Christophe Ricard <[email protected]> Cc: Anand Moon <[email protected]> Cc: Beniamino Galvani <[email protected]> Cc: Carlo Caione <[email protected]> Cc: huang lin <[email protected]> Cc: Sjoerd Simons <[email protected]> Cc: Xu Ziyuan <[email protected]> Cc: "[email protected]" <[email protected]> Cc: "Ariel D'Alessandro" <[email protected]> Cc: Kever Yang <[email protected]> Cc: Samuel Egli <[email protected]> Cc: Chin Liang See <[email protected]> Cc: Dinh Nguyen <[email protected]> Cc: Hans de Goede <[email protected]> Cc: Ian Campbell <[email protected]> Cc: Siarhei Siamashka <[email protected]> Cc: Boris Brezillon <[email protected]> Cc: Andre Przywara <[email protected]> Cc: Bernhard Nortmann <[email protected]> Cc: Wolfgang Denk <[email protected]> Cc: Ben Whitten <[email protected]> Cc: Tom Warren <[email protected]> Cc: Alexander Graf <[email protected]> Cc: Sekhar Nori <[email protected]> Cc: Vitaly Andrianov <[email protected]> Cc: "Andrew F. Davis" <[email protected]> Cc: Murali Karicheri <[email protected]> Cc: Carlos Hernandez <[email protected]> Cc: Ladislav Michl <[email protected]> Cc: Ash Charles <[email protected]> Cc: Mugunthan V N <[email protected]> Cc: Daniel Allred <[email protected]> Cc: Gong Qianyu <[email protected]> Signed-off-by: Tom Rini <[email protected]> Acked-by: Masahiro Yamada <[email protected]> Acked-by: Chin Liang See <[email protected]> Tested-by: Stephen Warren <[email protected]> Acked-by: Paul Kocialkowski <[email protected]>
2016-07-14arm: Move check_cache_range() into a common placeSimon Glass
This code is common, so move it into a common file. Signed-off-by: Simon Glass <[email protected]> Reviewed-by: Marek Vasut <[email protected]>
2015-08-12ARM: cache: implement a default weak flush_cache() functionWu, Josh
Current many cpu use the same flush_cache() function, which just call the flush_dcache_range(). So implement a weak flush_cache() for all the cpus to use. In original weak flush_cache() in arch/arm/lib/cache.c, there has some code for ARM1136 & ARM926ejs. But in the arch/arm/cpu/arm1136/cpu.c and arch/arm/cpu/arm926ejs/cache.c, there implements a real flush_cache() function as well. That means the original code for ARM1136 & ARM926ejs in weak flush_cache() of arch/arm/lib/cache.c is totally useless. So in this patch remove such code in flush_cache() and only call flush_dcache_range(). Signed-off-by: Josh Wu <[email protected]>
2015-08-12ARM: cache: add an empty stub function for invalidate/flush dcacheWu, Josh
Since some driver like ohci, lcd used dcache functions. But some ARM cpu don't implement the invalidate_dcache_range()/flush_dcache_range() functions. To avoid compiling errors this patch adds an weak empty stub function for all ARM cpu in arch/arm/lib/cache.c. And ARM cpu still can implemnt its own cache functions on the cpu folder. Signed-off-by: Josh Wu <[email protected]> Reviewed-by: York Sun <[email protected]>
2015-08-12arm1136/arm1176: Merge cache handling codeAlexander Stein
As both cores are similar merge the cache handling code for both CPUs to arm11 directory. Signed-off-by: Alexander Stein <[email protected]> Acked-by: Stephen Warren <[email protected]> Tested-by: Stephen Warren <[email protected]> [trini: Add hunk to arch/arm/cpu/arm1136/Makefile] Signed-off-by: Tom Rini <[email protected]>