u-boot-brain/arch/arm
Marek Vasut 97a72bc286 ARM: socfpga: Purge pending transactions upon enabling bridges on Gen5
On Gen5, when the FPGA is loaded and there was some prior interaction
between the HPS and the FPGA via bridges (e.g. Linux was running and
using some of the IPs in the FPGA) followed by warm reset, it has been
observed that there might be outstanding unfinished transactions. This
leads to an obscure misbehavior of the bridge.

When the bridge is enabled again in U-Boot and there are outstanding
transactions, a read from within the bridge address range would return
a result of the previous read instead. Example:
=> bridge enable ; md 0xff200000 1
ff200000: 1234abcd
=> bridge enable ; md 0xff200010 1
ff200010: 5678dcba <------- this is in fact a value which is stored in
                            a memory at 0xff200000
=> bridge enable ; md 0xff200000 1
ff200000: 90effe09 <------- this is in fact a value which is stored in
                            a memory at 0xff200010
and so it continues. Issuing a write does lock the system up completely.

This patch opens the FPGA bridges in 'bridge enable' command, the tears
them down again, and then opens them again. This allows these outstanding
transactions to complete and makes this misbehavior go away.

However, it is not entirely clear whether this is the correct solution.

Signed-off-by: Marek Vasut <marex@denx.de>
Cc: Chin Liang See <chin.liang.see@intel.com>
Cc: Dalon Westergreen <dwesterg@gmail.com>
Cc: Dinh Nguyen <dinguyen@kernel.org>
Cc: Ley Foon Tan <ley.foon.tan@intel.com>
Cc: Simon Goldschmidt <simon.k.r.goldschmidt@gmail.com>
Cc: Tien Fong Chee <tien.fong.chee@intel.com>
Reviewed-by: Ley Foon Tan <ley.foon.tan@intel.com>
2019-11-25 13:12:56 +01:00
..
cpu env: Finish migration of common ENV options 2019-11-20 18:32:09 -05:00
dts Merge tag 'u-boot-rockchip-20191124' of https://gitlab.denx.de/u-boot/custodians/u-boot-rockchip 2019-11-23 20:50:11 -05:00
include arm: rockchip: Add RK3308 SOC support 2019-11-17 17:22:53 +08:00
lib spl: separate SPL_FRAMEWORK config for spl and tpl 2019-11-17 17:22:53 +08:00
mach-aspeed
mach-at91 ARM: at91: Add SFR definitions 2019-10-08 09:16:11 +03:00
mach-bcm283x lib: time: Add microsecond timer 2019-10-31 07:22:53 -04:00
mach-bcmstb
mach-davinci ARM: omapl138_lcdk: Enable DM_GPIO and DM and GPIO Commands 2019-09-13 11:56:08 -04:00
mach-exynos
mach-highbank
mach-imx imx: imx8m: fix boot when CONFIG_$(SPL_)CLK not defined 2019-11-05 10:27:18 +01:00
mach-integrator
mach-k3 arm: mach-k3: j721e_init: Initialize avs class 0 2019-11-07 18:39:17 -05:00
mach-keystone ARM: keystone: increase PSC timeout 2019-10-24 11:28:17 +02:00
mach-kirkwood env: Move env_get() to env.h 2019-08-11 16:43:41 -04:00
mach-mediatek board: mediatek: Add pumpkin board support 2019-07-29 09:32:11 -04:00
mach-meson ARM: meson: add SM1 SoC id 2019-10-18 14:21:17 +02:00
mach-mvebu ARM: mvebu: don't dereference null bd pointer 2019-11-14 08:28:39 +01:00
mach-omap2 arm: dra7xx: Hang on any failure during IOdelay recalibration 2019-10-11 13:32:40 -04:00
mach-orion5x
mach-owl
mach-qemu
mach-rmobile ARM: rmobile: Temporarily disable PCI dma-ranges update 2019-11-16 16:52:45 +01:00
mach-rockchip rockchip: Setup dwc3_device (for non-dm gadgets) 2019-11-23 23:41:44 +08:00
mach-s5pc1xx
mach-snapdragon
mach-socfpga ARM: socfpga: Purge pending transactions upon enabling bridges on Gen5 2019-11-25 13:12:56 +01:00
mach-sti
mach-stm32
mach-stm32mp bsec: update after MISC u-class update 2019-08-27 11:19:23 +02:00
mach-sunxi sunxi: set PIO voltage to hardware-detected value on startup on H6 2019-10-25 14:40:34 +05:30
mach-tegra Revert "ARM: tegra: reserve unmapped RAM so EFI doesn't use it" 2019-10-06 16:02:37 +02:00
mach-uniphier dm: core: Add device_foreach_child() 2019-10-08 13:57:39 +08:00
mach-versal arm64: xilinx: Move firmware functions from platform to driver 2019-10-24 13:37:01 +02:00
mach-versatile
mach-zynq
mach-zynqmp arm64: zynqmp: Convert invoke_smc() to xilinx_pm_request() 2019-10-24 13:37:01 +02:00
mach-zynqmp-r5
thumb1/include/asm/proc-armv
config.mk
Kconfig rockchip: imply instead of selecting SPL_SYS_MALLOC_SIMPLE 2019-11-17 18:51:25 +08:00
Kconfig.debug
Makefile arm: fix -march for ARM11 2019-11-23 14:53:48 -05:00