u-boot/arch/arm
Marc Zyngier 41e2787f5e arm64: Reduce add_map() complexity
In the add_map() function, for each level it populates, it iterates from
the root of the PT tree, making it ineficient if a mapping needs to occur
past level 1.

Instead, replace it with a recursive (and much simpler) algorithm
that keeps the complexity as low as possible. With this, mapping
512GB at level 2 goes from several seconds down to not measurable
on an A55 machine.

We keep the block mappings at level 1 for now though.

Signed-off-by: Marc Zyngier <maz@kernel.org>
Signed-off-by: Pierre-Clément Tosi <ptosi@google.com>
[ Paul: pick from the Android tree. Fixup Pierre's commit. Rebase to the
  upstream ]
Signed-off-by: Ying-Chun Liu (PaulLiu) <paul.liu@linaro.org>
Cc: Tom Rini <trini@konsulko.com>
Link: 96ad729cf4
Link: 6be9330601
2023-03-06 17:03:56 -05:00
..
cpu arm64: Reduce add_map() complexity 2023-03-06 17:03:56 -05:00
dts Prepare v2023.04-rc3 2023-02-27 17:28:21 -05:00
include ARM: tegra: crypto: extend crypto functional 2023-02-23 12:55:37 -07:00
lib arm64: Initialize TLB memory if CMO_BY_VA_ONLY 2023-03-06 17:03:55 -05:00
mach-apple Rename CONFIG_SYS_TEXT_BASE to CONFIG_TEXT_BASE 2022-10-31 11:01:31 -04:00
mach-aspeed global: Move remaining CONFIG_SYS_SDRAM_* to CFG_SYS_SDRAM_* 2022-12-05 16:06:07 -05:00
mach-at91 global: Remove unused CONFIG defines 2023-01-20 12:27:06 -05:00
mach-bcm283x
mach-bcmbca timer: bcmbca: use arm global timer for bcm63138 SoC 2022-10-31 08:56:00 -04:00
mach-bcmstb
mach-cortina
mach-davinci global: Migrate CONFIG_MAX_RAM_BANK_SIZE to CFG 2022-12-23 10:14:51 -05:00
mach-exynos Correct SPL use of EXYNOS7420 2023-02-09 16:32:26 -05:00
mach-highbank
mach-hpe ARM: hpe: gxp: add core support 2022-06-22 21:30:04 -04:00
mach-imx imx9: Remove ARCH_MISC_INIT 2023-03-02 15:32:25 -05:00
mach-integrator
mach-ipq40xx Rename CONFIG_SYS_TEXT_BASE to CONFIG_TEXT_BASE 2022-10-31 11:01:31 -04:00
mach-k3 arch: mach-k3: Update board specific API name to K3 generic API name 2023-01-27 12:51:27 -05:00
mach-keystone global: Move remaining CONFIG_SYS_* to CFG_SYS_* 2022-12-05 16:06:08 -05:00
mach-kirkwood arm: kirkwood: Use CONFIG_SYS_NS16550 with DM_SERIAL for Kirkwood boards 2023-02-13 10:14:50 +01:00
mach-lpc32xx arm: lpc32xx: Remove unused hsuart driver 2022-12-05 16:07:13 -05:00
mach-mediatek global: Move remaining CONFIG_SYS_SDRAM_* to CFG_SYS_SDRAM_* 2022-12-05 16:06:07 -05:00
mach-meson ARM: meson: switch AXG & GX dwc2 otg to DM 2023-01-20 16:21:31 +01:00
mach-mvebu mvebu: Drop empty arch_misc_init 2023-03-02 15:32:25 -05:00
mach-nexell arm: s5p4418: dm_serial: remove old code / add DEBUG_UART 2023-01-02 16:06:08 -05:00
mach-npcm global: Move remaining CONFIG_SYS_* to CFG_SYS_* 2022-12-05 16:06:08 -05:00
mach-octeontx Rename CONFIG_SYS_TEXT_BASE to CONFIG_TEXT_BASE 2022-10-31 11:01:31 -04:00
mach-octeontx2 Rename CONFIG_SYS_TEXT_BASE to CONFIG_TEXT_BASE 2022-10-31 11:01:31 -04:00
mach-omap2 global: Finish CONFIG -> CFG migration 2023-01-20 12:27:24 -05:00
mach-orion5x global: Migrate CONFIG_MAX_RAM_BANK_SIZE to CFG 2022-12-23 10:14:51 -05:00
mach-owl global: Move remaining CONFIG_SYS_SDRAM_* to CFG_SYS_SDRAM_* 2022-12-05 16:06:07 -05:00
mach-qemu
mach-rmobile rmobile: Drop unused ehci-rmobile driver 2023-02-07 14:33:50 -05:00
mach-rockchip arm: rk3368: Select ARCH_EARLY_INIT_R when used 2023-03-02 15:32:25 -05:00
mach-s5pc1xx exynos: Rework legacy PWM usage 2022-12-23 10:07:03 -05:00
mach-snapdragon clocks: qcs404: Add support for I2C clocks 2023-02-13 10:01:52 -05:00
mach-socfpga Use grep -E or plain grep instead of egrep 2023-01-11 15:02:24 -05:00
mach-sti stm32mp1: fix reference for STMicroelectronics 2022-06-17 14:12:27 +02:00
mach-stm32
mach-stm32mp Correct SPL use of STM32MP15X_STM32IMAGE 2023-02-10 07:41:40 -05:00
mach-sunxi sunxi: eMMC: support TOC0 on boot partitions 2023-01-23 01:18:23 +00:00
mach-tegra ARM: tegra20: implement BCT patching 2023-02-23 12:55:37 -07:00
mach-u8500 global: Move remaining CONFIG_SYS_* to CFG_SYS_* 2022-12-05 16:06:08 -05:00
mach-uniphier arm: uniphier: use DM_TIMER of arm a9 global timer 2023-01-02 16:01:39 -05:00
mach-versal arm64: versal: Define zynqmp_mmio_write() for versal 2022-09-13 11:32:48 +02:00
mach-versal-net xilinx: versal-net: Add support for timer and start it 2023-01-16 15:34:37 +01:00
mach-versatile global: Move remaining CONFIG_SYS_* to CFG_SYS_* 2022-12-05 16:06:08 -05:00
mach-zynq global: Move remaining CONFIG_SYS_SDRAM_* to CFG_SYS_SDRAM_* 2022-12-05 16:06:07 -05:00
mach-zynqmp arm64: zynqmp: Do not include psu_init to U-Boot by default 2022-12-05 08:55:55 +01:00
mach-zynqmp-r5
thumb1/include/asm/proc-armv
config.mk Convert CONFIG_STANDALONE_LOAD_ADDR to Kconfig 2022-12-22 10:31:48 -05:00
Kconfig arm: zynq: Move to select'ing ARCH_EARLY_INIT_R if we have FPGA 2023-03-02 15:32:25 -05:00
Kconfig.debug
Makefile arm64: versal-net: Add support for Versal NET platform 2022-09-26 14:23:29 +02:00