u-boot-brain/arch/arm
Marek Vasut c5f4b80575 ARM: socfpga: Remove socfpga_sdram_apply_static_cfg()
The usage of socfpga_sdram_apply_static_cfg() seems rather dubious and
is confirmed to lead to a rare system hang when enabling bridges. This
patch removes the socfpga_sdram_apply_static_cfg() altogether, because
it's use seems unjustified and problematic.

The socfpga_sdram_apply_static_cfg() triggers write to SDRAM staticcfg
register to set the applycfg bit, which according to old vendor U-Boot
sources can only be written when there is no traffic between the SDRAM
controller and the rest of the system. Empirical measurements confirm
this, setting the applycfg bit when there is traffic between the SDRAM
controller and CPU leads to the SDRAM controller accesses being blocked
shortly after.

Altera originally solved this by moving the entire code which sets the
staticcfg register to OCRAM [1]. The commit message claims that the
applycfg bit needs to be set after write to fpgaportrst register. This
is however inverted by Altera shortly after in [2], where the order
becomes the exact opposite of what commit message [1] claims to be the
required order. The explanation points to a possible problem in AMP
use-case, where the FPGA might be sending transactions through the F2S
bridge.

However, the AMP is only the tip of the iceberg here. Any of the other
L2, L3 or L4 masters can trigger transactions to the SDRAM. It becomes
rather non-trivial to guarantee there are no transactions to the SDRAM
controller.

The SoCFPGA SDRAM driver always writes the applycfg bit in SPL. Thus,
writing the applycfg again in bridge enable code seems redundant and
can presumably be dropped.

[1] 75905816ec
[2] 8ba6986b04

Signed-off-by: Marek Vasut <marex@denx.de>
Cc: Chin Liang See <chin.liang.see@intel.com>
Cc: Dinh Nguyen <dinguyen@kernel.org>
Cc: Simon Goldschmidt <simon.k.r.goldschmidt@gmail.com>
Cc: Tien Fong Chee <tien.fong.chee@intel.com>
2019-04-29 10:33:45 +02:00
..
cpu arm: lpc32xx: Fix timer initialization 2019-04-26 18:58:20 -04:00
dts arm: dts: add missing vexpress device trees 2019-04-26 18:58:22 -04:00
include - Add support for Amlogic p200 & p201 Reference Designs 2019-04-24 12:26:25 -04:00
lib arm: arm64 32bit address relocation 2019-04-22 18:13:24 -04:00
mach-aspeed regmap: change regmap_init_mem() to take ofnode instead udevice 2018-05-07 15:49:51 -04:00
mach-at91 watchdog: at91sam9_wdt: Remove now superfluous wdt start and reset 2019-04-26 09:16:32 +02:00
mach-bcm283x arm: Kconfig: spelling fixes 2019-01-18 09:16:15 -05:00
mach-bcmstb board: arm: Add support for Broadcom BCM7260 2018-09-10 21:19:31 -04:00
mach-davinci driver: net: consolidate ti's code in separate folder 2018-11-05 10:41:59 -06:00
mach-exynos exynos: replace CONFIG_ENV_SPI_BASE by CONFIG_SYS_SPI_BASE 2019-03-25 17:35:52 -04:00
mach-highbank SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
mach-imx imx: bootaux: add dependency on vf610 2019-04-13 20:30:09 +02:00
mach-integrator
mach-k3 arm: mach-k3: Add secure device build support 2019-04-26 17:51:51 -04:00
mach-keystone ARM: k2g: add a workaround to reset the phy 2019-04-12 08:05:46 -04:00
mach-kirkwood ARM: kirkwood: add db-88f6281-bp board 2019-04-26 07:35:38 +02:00
mach-mediatek ARM: MediaTek: Add support for MT8516 SoC 2019-04-23 17:57:26 -04:00
mach-meson ARM: meson: add G12a support 2019-04-23 11:19:09 +02:00
mach-mvebu mmc: mv_sdhci: add driver model support 2019-04-26 07:35:38 +02:00
mach-omap2 arm: am57xx: cl-som-am57x: remove board support 2019-04-17 09:20:26 -04:00
mach-orion5x arm: remove prototype for get_timer_masked 2018-10-10 13:35:09 -04:00
mach-owl board: Add uCRobotics Bubblegum-96 board support 2018-07-09 15:25:23 -04:00
mach-qemu Kconfig: Sort bool, default, select and imply options 2018-07-30 07:18:48 -04:00
mach-rmobile pinctrl: renesas: Add R8A77965 pin control tables 2019-04-09 18:19:10 +02:00
mach-rockchip Revert "rockchip: Drop call to rockchip_dnl_mode_check() for now" 2019-03-29 09:21:13 +01:00
mach-s5pc1xx exynos: Convert to use CONFIG_BLK 2019-02-09 12:50:21 -07:00
mach-snapdragon arm: mach-snapdragon: pinctrl: clarify gpio disable bit 2019-01-25 12:12:56 -05:00
mach-socfpga ARM: socfpga: Remove socfpga_sdram_apply_static_cfg() 2019-04-29 10:33:45 +02:00
mach-sti
mach-stm32 mach-stm32: Set MPU SDRAM size to 512MB for STM32F7/H7 2018-10-06 14:09:41 -04:00
mach-stm32mp stm32mp1: add command poweroff 2019-04-12 16:09:13 +02:00
mach-sunxi arm: sunxi: Enable DM_MMC and DM_SCSI 2019-04-17 14:34:45 +05:30
mach-tegra arm64: zynqmp: Move SoC sources to mach-zynqmp 2019-01-24 10:03:44 +01:00
mach-uniphier ARM: uniphier: do not modify bootcmd environment variable at run-time 2018-12-29 11:38:33 +09:00
mach-versal arm64: versal: Move IOU_SWITCH_DIVISOR0 to Kconfig 2019-02-14 14:31:10 +01:00
mach-versatile SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
mach-zynq ARM: zynq: Remove addresses for i2c controllers 2019-02-14 14:31:10 +01:00
mach-zynqmp arm64: zynqmp: fix preprocessor check for SPL_ZYNQMP_TWO_SDHCI 2019-04-16 11:52:02 +02:00
mach-zynqmp-r5 arm: zynqmp: Add ZynqMP minimal R5 support 2018-05-11 09:38:23 +02:00
thumb1/include/asm/proc-armv SPDX: Convert a few files that were missed before 2018-05-10 20:38:35 -04:00
config.mk efi_loader: Rename sections to allow for implicit data 2018-07-25 14:57:44 +02:00
Kconfig arm: mach-k3: Add secure device support 2019-04-26 17:51:51 -04:00
Kconfig.debug
Makefile arm: imx: build mach-imx for i.MX8 2019-01-28 20:35:47 +01:00