u-boot/arch/arm
Andre Przywara 2b641211c5 armv8: Fix TCR 64-bit writes
The AArch64 TCR_ELx register is a 64-bit register, and many newer
architecture features use bits in the upper half. So far U-Boot was
igorant of those bits, trying to leave them alone.
However, in an effort to set bit 31 to 1, it failed doing so, because
the compiler sign-extended "1 << 31", so that all bits[63:31] got set.

Older ARMv8.0 cores don't define anything dangerous up there, but newer
architecture revisions do, and setting all those bits will end badly:
=================
$ qemu-system-aarch64 -cpu max ....
U-Boot 2022.07-rc1 (May 09 2022 - 15:21:00 +0100)

DRAM:  1.5 GiB
=================  (hangs here)

Defining TCR_ELx_RSVD to "1U << 31" avoids the sign-extension, so all
upper bits stay at a safe 0 value. This means no more surprises when
U-Boot runs on a more capable CPU core.

Reported-by: Balaji Anandapadmanaban <Balaji.Anandapadmanaban@arm.com>
Signed-off-by: Andre Przywara <andre.przywara@arm.com>
Reviewed-by: Peng Fan <peng.fan@nxp.com>
Tested-by: Peter Collingbourne <pcc@google.com>
Reviewed-by: Peter Collingbourne <pcc@google.com>
2022-06-03 11:15:24 -04:00
..
cpu caam: Fix crash in case caam_jr_probe failed 2022-05-20 12:36:47 +02:00
dts arm: dts: k3-am642-*: Mark the memory node with u-boot, dm-spl 2022-05-26 10:32:26 -04:00
include armv8: Fix TCR 64-bit writes 2022-06-03 11:15:24 -04:00
lib arm: gic_v2: Skip gic_init_secure when cpu is not in el3 2022-05-23 09:33:10 -04:00
mach-apple arm: apple: Point stdout-path to framebuffer when keyboard present 2022-04-22 15:56:39 -04:00
mach-aspeed
mach-at91 ARM: mach-at91: armv7: Remove default reset driver 2022-04-26 09:53:18 +03:00
mach-bcm283x doc: replace @return by Return: 2022-01-19 18:11:34 +01:00
mach-bcmstb
mach-cortina
mach-davinci Finish conversion of CONFIG_SYS_CLK_FREQ to Kconfig 2021-12-27 16:20:18 -05:00
mach-exynos exynos: Drop CONFIG_CLK_* 2022-04-01 10:28:47 -04:00
mach-highbank
mach-imx ARM: dts: imx: Add support for DH electronics i.MX8M Plus DHCOM and PDK2 2022-05-23 11:37:58 +02: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 Merge branch '2022-04-04-platform-updates' 2022-04-05 13:45:22 -04:00
mach-keystone arch/arm/mach-keystone/ddr3.c: Fix spelling of "resetting". 2022-01-13 07:57:50 -05:00
mach-kirkwood keymile: Move sourcing of common Kconfig 2022-04-01 10:28:46 -04:00
mach-lpc32xx
mach-mediatek
mach-meson
mach-mvebu arm: mvebu: Move internal registers in arch_very_early_init() function 2022-05-16 11:31:34 +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 Convert CONFIG_SYS_PCI_64BIT to Kconfig 2021-12-27 16:20:17 -05:00
mach-octeontx2 Convert CONFIG_SYS_PCI_64BIT to Kconfig 2021-12-27 16:20:17 -05:00
mach-omap2 arm: Introduce new CONFIG_SPL_SYS_NO_VECTOR_TABLE option 2022-04-21 12:31:36 +02:00
mach-orion5x Convert CONFIG_88F5182 et al to Kconfig 2021-12-27 16:20:19 -05:00
mach-owl
mach-qemu
mach-rmobile armv8: Fix and simplify branch_if_master/branch_if_slave 2022-03-02 13:59:29 -05:00
mach-rockchip arm: set cntfrq_el0 if CONFIG_COUNTER_FREQUENCY is valid 2022-04-21 15:27:18 -04:00
mach-s5pc1xx doc: replace @return by Return: 2022-01-19 18:11:34 +01:00
mach-snapdragon
mach-socfpga arm: socfpga: Add the terasic de10-standard board 2022-05-23 21:28:07 +02:00
mach-sti
mach-stm32 configs: stm32f746-disco: Migrate SPL flags to defconfig 2022-05-10 13:56:12 +02:00
mach-stm32mp stm32mp: psci: Retain MCUDIVR, PLL3CR, PLL4CR, MSSCKSELR across suspend 2022-05-10 13:54:47 +02:00
mach-sunxi sunxi: Remove obsolete Kconfig selections 2022-05-24 01:46:06 +01:00
mach-tegra tegra: Migrate CI_UDC_HAS_HOSTPC to Kconfig 2022-04-08 09:05:19 -04:00
mach-u8500
mach-uniphier spl: mmc: extend spl_mmc_boot_mode() to take mmc argument 2022-04-04 23:24:17 +01:00
mach-versal arch: arm: move COUNTER_FREQUENCY from versal to arm 2022-04-21 14:32:40 -04:00
mach-versatile
mach-zynq ARM: zynq: Fix debug uart initialization 2022-02-21 13:20:24 +01:00
mach-zynqmp xilinx: zynqmp: Wire tee for Multi DTB use cases 2022-05-24 08:44:24 +02:00
mach-zynqmp-r5 Convert CONFIG_CPU_FREQ_HZ to Kconfig 2021-12-27 16:20:19 -05:00
thumb1/include/asm/proc-armv
config.mk
Kconfig arm: Add new config option ARCH_VERY_EARLY_INIT 2022-05-16 11:31:33 +02:00
Kconfig.debug
Makefile arm: nuvoton: Add support for Nuvoton NPCM750 BMC 2022-05-05 09:28:47 -04:00