u-boot/arch/arm/include/asm
Andre Przywara 5ff4857d35 armv8: Fix and simplify branch_if_master/branch_if_slave
The branch_if_master macro jumps to a label if the CPU is the "master"
core, which we define as having all affinity levels set to 0. To check
for this condition, we need to mask off some bits from the MPIDR
register, then compare the remaining register value against zero.

The implementation of this was slighly broken (it preserved the upper
RES0 bits), overly complicated and hard to understand, especially since
it lacked comments. The same was true for the very similar
branch_if_slave macro.

Use a much shorter assembly sequence for those checks, use the same
masking for both macros (just negate the final branch), and put some
comments on them, to make it clear what the code does.
This allows to drop the second temporary register for branch_if_master,
so we adjust all call sites as well.

Also use the opportunity to remove a misleading comment: the macro
works fine on SoCs with multiple clusters. Judging by the commit
message, the original problem with the Juno SoC stems from the fact that
the master CPU *can* be configured to be from cluster 1, so the
assumption that the master CPU has all affinity values set to 0 does not
hold there. But this is already mentioned above in a comment, so remove
the extra comment.

Signed-off-by: Andre Przywara <andre.przywara@arm.com>
2022-03-02 13:59:29 -05:00
..
arch-am33xx clk: ti: add am33xx/am43xx spread spectrum clock support 2021-10-11 14:27:32 -04:00
arch-apple arm: apple: Add RTKit support 2022-02-10 16:44:23 -05:00
arch-armada8k
arch-armv7
arch-aspeed doc: replace @return by Return: 2022-01-19 18:11:34 +01:00
arch-bcm235xx
arch-bcm281xx
arch-bcmcygnus Remove CONFIG_SERIAL_MULTI 2021-11-12 14:18:17 -05:00
arch-bcmns3 board: ns3: add api to save boot parameters passed from BL31 2020-07-29 10:13:41 -04:00
arch-bcmnsp
arch-ep93xx
arch-fsl-layerscape Convert CONFIG_SYS_IMMR to Kconfig 2021-12-27 08:41:38 -05:00
arch-hi3660 common: Drop linux/bitops.h from common header 2020-05-18 21:19:23 -04:00
arch-hi3798cv200 poplar: clean up board level mmc initialization code 2019-01-25 12:12:57 -05:00
arch-hi6220 doc: replace @return by Return: 2022-01-19 18:11:34 +01:00
arch-imx arm: imx: add i.MX8ULP cpu type and helper 2021-08-09 14:46:50 +02:00
arch-imx8 arm: imx8: Move container image header file to mach-imx 2021-08-09 14:46:50 +02:00
arch-imx8m imx8m: lock id_swap_bypass bit in tzc380 enable 2022-02-05 15:49:01 +01:00
arch-imx8ulp imx8ulp: clock: Handle the DDRLOCKED when setting DDR clock 2022-02-05 13:38:39 +01:00
arch-imxrt WS cleanup: remove trailing empty lines 2021-09-30 08:08:56 -04:00
arch-lpc32xx Convert CONFIG_SYS_NAND_BAD_BLOCK_POS to Kconfig 2021-10-06 09:16:23 -04:00
arch-ls102xa Convert CONFIG_SCSI_AHCI_PLAT et al to Kconfig 2022-02-09 09:16:48 -05:00
arch-mediatek mediatek: Drop dm.h header file 2020-08-03 22:19:54 -04:00
arch-meson arm: meson: remove static ethernet link setup 2021-04-06 11:10:29 +02:00
arch-mvebu km/spi: remove deprecated SPI flash driver code for KM Kirkwood boards 2019-07-11 10:58:03 +02:00
arch-mx5 WS cleanup: remove SPACE(s) followed by TAB 2021-09-30 09:08:16 -04:00
arch-mx6 mx6: crm_regs: drop BM_ANADIG_ANA_MISC0_REFTOP_VBGADJ 2022-02-05 15:49:02 +01:00
arch-mx7 WS cleanup: remove SPACE(s) followed by TAB 2021-09-30 09:08:16 -04:00
arch-mx7ulp WS cleanup: remove SPACE(s) followed by TAB 2021-09-30 09:08:16 -04:00
arch-mx27 treewide: convert bd_t to struct bd_info by coccinelle 2020-07-17 09:30:13 -04:00
arch-mx31 spi: imx: Define register bits in the driver 2021-01-23 13:40:29 +01:00
arch-mxs treewide: convert bd_t to struct bd_info by coccinelle 2020-07-17 09:30:13 -04:00
arch-octeontx arm: octeontx: Add headers for OcteonTX 2020-08-25 08:01:16 +02:00
arch-octeontx2 arm: octeontx2: Add headers for OcteonTX2 2020-08-25 08:01:16 +02:00
arch-omap3 arm: omap3: Make some memory functions static and clean headers 2022-02-21 08:35:40 -05:00
arch-omap4 arm: Don't include common.h in header files 2020-05-18 14:54:24 -04:00
arch-omap5 arm: mach-omap2: load/start remoteproc IPU1/IPU2 2022-02-08 09:41:27 -05:00
arch-orion5x
arch-owl net: designware: s700: Add glue code for S700 mac 2020-07-07 17:11:58 -04:00
arch-px30 rockchip: add px30 architecture core 2019-11-17 17:23:24 +08:00
arch-pxa
arch-rk322x rockchip: add common header boot0.h and gpio.h for soc 2019-05-08 17:34:12 +08:00
arch-rk3036 rockchip: add common header boot0.h and gpio.h for soc 2019-05-08 17:34:12 +08:00
arch-rk3128 rockchip: add common header boot0.h and gpio.h for soc 2019-05-08 17:34:12 +08:00
arch-rk3188 rockchip: add common header boot0.h and gpio.h for soc 2019-05-08 17:34:12 +08:00
arch-rk3288 rockchip: add common header boot0.h and gpio.h for soc 2019-05-08 17:34:12 +08:00
arch-rk3308 arm: Don't include common.h in header files 2020-05-18 14:54:24 -04:00
arch-rk3328 rockchip: add common header boot0.h and gpio.h for soc 2019-05-08 17:34:12 +08:00
arch-rk3368 rockchip: add common header boot0.h and gpio.h for soc 2019-05-08 17:34:12 +08:00
arch-rk3399 rockchip: add common header boot0.h and gpio.h for soc 2019-05-08 17:34:12 +08:00
arch-rk3568 rockchip: Add rk3568 architecture core 2021-06-18 14:36:24 +08:00
arch-rockchip doc: replace @return by Return: 2022-01-19 18:11:34 +01:00
arch-rv1108 rockchip: add common header boot0.h and gpio.h for soc 2019-05-08 17:34:12 +08:00
arch-sa1100
arch-stih410 treewide: Update email address Patrick Delaunay and Patrice Chotard 2020-12-09 10:57:50 +01:00
arch-stm32 gpio: stm32: create include file for driver private data 2021-11-10 17:03:36 +01:00
arch-stm32f4 gpio: stm32: create include file for driver private data 2021-11-10 17:03:36 +01:00
arch-stm32f7 gpio: stm32: create include file for driver private data 2021-11-10 17:03:36 +01:00
arch-stm32h7 gpio: stm32: create include file for driver private data 2021-11-10 17:03:36 +01:00
arch-stv0991 Convert CONFIG_SYS_HZ to Kconfig 2021-11-05 11:23:29 -04:00
arch-sunxi sunxi: Add F1C100s DRAM initial support 2022-02-04 00:09:57 +00:00
arch-tegra doc: replace @return by Return: 2022-01-19 18:11:34 +01:00
arch-tegra20 doc: replace @return by Return: 2022-01-19 18:11:34 +01:00
arch-tegra30 ARM: tegra: Use common header for PMU declarations 2019-06-05 09:16:33 -07:00
arch-tegra114 ARM: tegra: Use common header for PMU declarations 2019-06-05 09:16:33 -07:00
arch-tegra124 doc: replace @return by Return: 2022-01-19 18:11:34 +01:00
arch-tegra186
arch-tegra210 ARM: tegra: Use common header for PMU declarations 2019-06-05 09:16:33 -07:00
arch-vf610 WS cleanup: remove SPACE(s) followed by TAB 2021-09-30 09:08:16 -04:00
armv8 Revert most of the series for adding vexpress_aemv8r support 2021-09-03 10:42:15 -04:00
iproc-common configs: migrate CONFIG_SYS_ARM_CACHE_* in Kconfig 2020-05-01 11:34:01 -04:00
kona-common
mach-imx imx: spl: Fix typo BMODE_EMI -> BMODE_EIM 2022-02-18 18:12:23 +01:00
proc-armv ARM: correct detection of thumb mode 2019-07-18 11:31:24 -04:00
ti-common nand.h: Cleanup linux/mtd/rawnand.h usage 2021-10-06 09:16:23 -04:00
xen Revert "arch: arm/xen: add putc() for debugging" 2020-10-23 09:16:07 -04:00
acpi_table.h acpi: Add missing ARM acpi_table header 2021-01-18 15:14:15 -05:00
armv7.h
armv7_mpu.h common: Drop linux/bitops.h from common header 2020-05-18 21:19:23 -04:00
armv7m.h arm: armv7m: clean up armv7m unified code compilation 2018-09-10 21:19:33 -04:00
assembler.h
atomic.h ARM: use asm-generic/atomic.h 2018-09-25 21:49:18 -04:00
barriers.h
bitops.h common: Drop linux/bitops.h from common header 2020-05-18 21:19:23 -04:00
boot0-linux-kernel-header.h
bootm.h arm: use CONFIG_SUPPORT_PASSING_ATAGS 2021-09-24 14:30:46 -04:00
byteorder.h
cache.h arm: cp15: remove weak function arm_init_domains 2021-03-02 15:53:37 -05:00
config.h lmb: move CONFIG_LMB in Kconfig 2021-04-22 14:09:45 -04:00
davinci_rtc.h
dma-mapping.h arm: Don't include common.h in header files 2020-05-18 14:54:24 -04:00
ehci-omap.h usb: ehci-omap: Drop dead code 2022-02-23 05:25:17 +01:00
emif.h arm: Don't include common.h in header files 2020-05-18 14:54:24 -04:00
fsl_secure_boot.h
gic-v3.h Revert "arch: arm: use dt and UCLASS_SYSCON to get gic lpi details" 2021-10-31 08:46:29 -04:00
gic.h
global_data.h driver: misc: Add MU and S400 API to communicate with Sentinel 2021-08-09 14:46:50 +02:00
gpio.h gpio: Introduce CONFIG_GPIO_EXTRA_HEADER to cleanup #ifdefs 2021-07-06 14:07:36 -04:00
handoff.h arm: Add arm handoff header file 2020-01-24 11:19:52 -05:00
hardware.h
io.h arm: Clean up asm/io.h 2022-03-02 13:59:29 -05:00
linkage.h
mach-types.h ARM: at91: remove references to RM9200DK 2021-09-21 10:08:24 +03:00
macro.h armv8: Fix and simplify branch_if_master/branch_if_slave 2022-03-02 13:59:29 -05:00
memory.h
omap_common.h arm: mach-omap2: load/start remoteproc IPU1/IPU2 2022-02-08 09:41:27 -05:00
omap_gpio.h doc: replace @return by Return: 2022-01-19 18:11:34 +01:00
omap_i2c.h dm: i2c: use CONFIG_IS_ENABLED macro for DM_I2C/DM_I2C_GPIO 2021-02-21 06:08:00 +01:00
omap_mmc.h common: Drop linux/bitops.h from common header 2020-05-18 21:19:23 -04:00
omap_musb.h dm: treewide: Rename ..._platdata variables to just ..._plat 2020-12-13 16:51:09 -07:00
omap_sec_common.h arm: Don't include common.h in header files 2020-05-18 14:54:24 -04:00
opcodes-sec.h
opcodes-virt.h
opcodes.h
pl310.h ARM: pl310: Add macro's for handling tag and data latency mask 2019-05-05 08:48:50 -04:00
posix_types.h
processor.h
psci.h common: Drop linux/bitops.h from common header 2020-05-18 21:19:23 -04:00
ptrace.h
sections.h
secure.h treewide: Convert macro and uses of __section(foo) to __section("foo") 2021-05-24 14:21:30 -04:00
setjmp.h
setup.h treewide: Convert macro and uses of __section(foo) to __section("foo") 2021-05-24 14:21:30 -04:00
spin_table.h
spl.h arm: K3: am654: Add support for boot device detection 2018-09-11 08:32:55 -04:00
string.h arm64: Kconfig: Enable usage of optimized memset/memcpy/memmove 2021-09-24 07:49:16 -04:00
system.h armv8: Always unmask SErrors 2022-03-02 13:59:29 -05:00
types.h arch: types.h: factor out fixed width typedefs to int-ll64.h 2018-09-10 20:48:16 -04:00
u-boot-arm.h common: Move reset_misc() function to arch header 2020-01-17 13:27:30 -05:00
u-boot.h
unaligned.h
unified.h
utils.h
xen.h WS cleanup: remove trailing empty lines 2021-09-30 08:08:56 -04:00