u-boot/arch/arm
Pali Rohár 4f2333ba88 arm: mvebu: Enable L2 cache also on Armada 38x
For some unknown reason when L2 cache is disabled on Armada 385 then loadb,
loadx and loady commands do not work with higher baudrates than 115200
(they just abort transfer) and lzmadec command with lzma image of size
0x7000000 (maybe even smaller, we tested this one) is doing decompression
for more than 2 minutes. After enabling L2 cache decompression takes only
30s and loadb, loadx and loady are stable and working fine.

git bisect identified problematic commit 3308933d2f ("arm: mvebu: Avoid
reading MVEBU_REG_PCIE_DEVID register too many times"). Before this commit
above issues were not present.

But investigation showed that above issue was possible to reproduce also by
reverting that commit and forcing compiler to do inline optimization of
mvebu_soc_family() function. Which seems that the root of this issue is in
caches and position of instruction of segments. So currently it is unknown
what is or was broken, but code movement, code inlining or other compiler
optimization triggered it.

Commit 3e5ce7ceeb ("arm: mvebu: Enable L2 cache on Armada XP") mentioned
that enabling L2 cache on Armada XP improved performance and that Armada
38x has L2 disabled (which is default state) and if needed it has to be
enabled in separate patch. As enabling L2 cache also improve performance
on Armada 38x, enable it.

Note that Aurora cache in no outer mode is available only on Armada XP,
hence it is not touched for Armada 38x code.

Fixes: 3308933d2f ("arm: mvebu: Avoid reading MVEBU_REG_PCIE_DEVID register too many times")
Reported-by: Marek Behún <kabel@kernel.org>
Signed-off-by: Pali Rohár <pali@kernel.org>
Signed-off-by: Marek Behún <kabel@kernel.org>
Reviewed-by: Stefan Roese <sr@denx.de>
2022-09-13 09:04:22 +02:00
..
cpu ARMv8/sec_firmware: Convert to use fit_get_data_conf_prop 2022-09-07 13:40:45 +08:00
dts ARM: dts: stm32mp15: remove hwlocks from pinctrl 2022-09-06 15:40:14 +02:00
include net: lpc32xx_eth.c ethernet driver 2022-08-20 21:18:15 -04:00
lib arm: smh: Fix uninitialized parameters with newer GCCs 2022-08-31 12:21:47 -04:00
mach-apple arm: apple: Add initial Apple M2 support 2022-07-25 09:38:47 -04:00
mach-aspeed aspeed/spl: Remove OVERLAY from linker script 2022-07-06 14:32:00 -04:00
mach-at91 arm: Remove snapper9260 board 2022-08-12 16:10:50 -04:00
mach-bcm283x doc: replace @return by Return: 2022-01-19 18:11:34 +01:00
mach-bcmbca arm: bcmbca: introduce the bcmbca architecture and 47622 SOC 2022-06-10 13:37:32 -04:00
mach-bcmstb
mach-cortina
mach-davinci arm: Remove unused references to CONFIG_SOC_DM* 2022-07-25 14:57:27 -04:00
mach-exynos arm: samsung: Migrate a number of symbols to Kconfig 2022-06-28 17:04:37 -04:00
mach-highbank
mach-hpe ARM: hpe: gxp: add core support 2022-06-22 21:30:04 -04:00
mach-imx arm: Remove warp board 2022-08-20 22:45:00 -04:00
mach-integrator arm: integrator: Migrate platform-specific options and cleanup armcoremodule.h 2022-04-08 09:05:19 -04:00
mach-ipq40xx
mach-k3 arm: mach-k3: security: Remove certificate if detected on GP device 2022-08-04 15:32:20 -04:00
mach-keystone i2c: Remove non-DM_I2C support from davinci_i2c.c 2022-07-08 17:57:34 -04:00
mach-kirkwood arm: mvebu: Mark constant data with const keyword 2022-09-13 06:38:08 +02:00
mach-lpc32xx net: lpc32xx_eth.c ethernet driver 2022-08-20 21:18:15 -04:00
mach-mediatek
mach-meson ARM: meson: fixup error on efuse commands return 2022-08-08 09:56:38 +02:00
mach-mvebu arm: mvebu: Enable L2 cache also on Armada 38x 2022-09-13 09:04:22 +02:00
mach-nexell video: Drop references to CONFIG_VIDEO et al 2022-03-28 20:17:07 +02:00
mach-npcm arm: nuvoton: Add support for Nuvoton NPCM750 BMC 2022-05-05 09:28:47 -04:00
mach-octeontx
mach-octeontx2
mach-omap2 arm: Remove cm_t335 board 2022-08-20 21:18:15 -04:00
mach-orion5x arm: Remove edminiv2 board 2022-08-20 21:18:15 -04:00
mach-owl
mach-qemu
mach-rmobile arm: Remove kzm9g board 2022-08-20 21:18:15 -04:00
mach-rockchip rockchip: allow to build SPI images even without HAS_ROM option 2022-09-04 20:00:39 +08:00
mach-s5pc1xx doc: replace @return by Return: 2022-01-19 18:11:34 +01:00
mach-snapdragon board: qualcomm: Add support for QCS404 EVB 2022-07-25 13:02:04 -04:00
mach-socfpga socfpga: arria10: Allow dcache_enable before relocation 2022-07-01 14:57:15 +08:00
mach-sti stm32mp1: fix reference for STMicroelectronics 2022-06-17 14:12:27 +02:00
mach-stm32 configs: stm32f746-disco: Migrate SPL flags to defconfig 2022-05-10 13:56:12 +02:00
mach-stm32mp stm32mp: simplify the STM32MP15x package parsing code 2022-09-06 13:54:50 +02:00
mach-sunxi sunxi: Move INITIAL_USB_SCAN_DELAY to driver Kconfig 2022-07-18 23:48:09 +01:00
mach-tegra Convert CONFIG_TEGRA_GPU to Kconfig 2022-06-28 17:03:31 -04:00
mach-u8500
mach-uniphier serial: Replace CONFIG_DEBUG_UART_BASE by CONFIG_VAL(DEBUG_UART_BASE) 2022-06-06 18:01:21 -04:00
mach-versal spi: cadence_qspi: Enable apb linear mode for apb read & write operations 2022-06-29 16:00:31 +02:00
mach-versatile
mach-zynq fpga: xilinx: add bitstream flags to driver desc 2022-07-26 09:34:21 +02:00
mach-zynqmp mailbox: zynqmp: Move struct zynqmp_ipi_msg from sys_proto.h 2022-07-26 08:36:20 +02:00
mach-zynqmp-r5
thumb1/include/asm/proc-armv
config.mk linker_lists: Rename sections to remove . prefix 2022-06-23 12:58:18 -04:00
Kconfig rockchip: generate u-boot-rockchip.bin with binman for ARM64 boards 2022-09-04 20:00:39 +08:00
Kconfig.debug
Makefile arm: makefile: cleanup mach-imx usage 2022-07-26 11:29:00 +02:00