u-boot/arch/arm/lib
Patrice Chotard c2a2123e33 cmd: cache: Fix non-cached memory cachability
If dcache is switched OFF to ON state and if non-cached memory is
used, this non-cached memory must be re-declared as uncached to mmu
each time dcache is set ON.

Introduce noncached_set_region() to set this non-cached region's mmu
settings. Let architecture override it by defining it as a weak
function.

For ARM architecture, noncached_set_region() defines all noncached
region as non-cacheable.

Issue found on STM32MP1 platform using dwc_eth_qos ethernet driver,
when going from dcache OFF to dcache ON state, ethernet driver issued
TX timeout errors when performing dhcp or ping.

It can be reproduced with the following sequence:

dhcp
while true ; do
  ping 192.168.1.300 ;
  dcache off ;
  ping 192.168.1.300 ;
  dcache on ;
done

Signed-off-by: Patrice Chotard <patrice.chotard@st.com>
Cc: Marek Vasut <marex@denx.de>
Cc: Joe Hershberger <joe.hershberger@ni.com>
Cc: Ramon Fried <rfried.dev@gmail.com>
Cc: Stephen Warren <swarren@nvidia.com>
Reviewed-by: Marek Vasut <marex@denx.de>
2020-05-07 09:01:42 -04:00
..
ashldi3.S SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
ashrdi3.S SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
asm-offsets.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
bootm-fdt.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
bootm.c ARM: bootm: take into account gd->ram_top 2020-04-17 12:29:43 -04:00
cache-cp15.c arm: caches: manage phys_addr_t overflow in mmu_set_region_dcache_behaviour 2020-05-01 11:34:01 -04:00
cache-pl310.c ARM: cache: Fix incorrect bitwise operation 2019-02-28 14:21:46 -05:00
cache.c cmd: cache: Fix non-cached memory cachability 2020-05-07 09:01:42 -04:00
ccn504.S SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
cmd_boot.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
crt0.S arm: set the relocated gd with gd->new_gd 2020-04-16 23:06:54 -04:00
crt0_64.S spl: separate SPL_FRAMEWORK config for spl and tpl 2019-11-17 17:22:53 +08:00
crt0_aarch64_efi.S efi_loader: use predefined constants in crt0_*_efi.S 2019-07-16 22:17:14 +00:00
crt0_arm_efi.S efi_loader: use predefined constants in crt0_*_efi.S 2019-07-16 22:17:14 +00:00
debug.S SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
div0.c common: Move hang() to the same header as panic() 2020-01-17 17:53:40 -05:00
div64.S SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
eabi_compat.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
elf_aarch64_efi.lds SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
elf_arm_efi.lds SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
gic-v3-its.c arch: arm: Fix SZ_64K undeclared compilation error 2020-02-25 11:39:54 -05:00
gic_64.S arm64: gic: Do gicv3 secure initialization based on EL level 2018-10-16 14:58:46 +02:00
image.c ARM: image: Add option for ignoring ep bit 3 2018-06-19 07:31:45 -04:00
interrupts.c common/board_r: arm: Merge initr_enable_interrupts into interrupts_init 2020-05-01 11:34:01 -04:00
interrupts_64.c common/board_r: arm: Merge initr_enable_interrupts into interrupts_init 2020-05-01 11:34:01 -04:00
interrupts_m.c common/board_r: arm: Merge initr_enable_interrupts into interrupts_init 2020-05-01 11:34:01 -04:00
lib1funcs.S SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
lshrdi3.S SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
Makefile ARM: reset: use do_reset in SPL/TPL if SYSRESET was not enabled for them 2020-05-01 13:46:22 +02:00
memcpy.S arm: Make arch specific memcpy thumb-safe. 2018-11-16 16:51:57 -05:00
memset.S SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
muldi3.S SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
psci-dt.c ARM: PSCI: Enable the PSCI node 2018-07-26 13:15:30 -07:00
reloc_aarch64_efi.c arm: Remove unused _relocate arguments 2018-07-19 16:31:36 -04:00
reloc_arm_efi.c arm: Remove unused _relocate arguments 2018-07-19 16:31:36 -04:00
relocate.S arm: armv7m: clean up armv7m unified code compilation 2018-09-10 21:19:33 -04:00
relocate_64.S common: Move relocate_code() to init.h 2020-01-17 13:26:49 -05:00
reset.c common: Move reset_cpu() to the CPU header 2020-01-17 14:02:31 -05:00
sections.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
semihosting.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
setjmp.S SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
setjmp_aarch64.S SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
spl.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
stack.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
uldivmod.S SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
vectors.S arm: remove ARCH_ROCKCHIP macro in common code 2019-05-08 17:34:12 +08:00
vectors_m.S arm: armv7m: clean up armv7m unified code compilation 2018-09-10 21:19:33 -04:00
zimage.c arm: zimage: add barebox image magic number 2019-05-09 20:21:59 -04:00