123b5877cSLinus Walleijif ARM64 223b5877cSLinus Walleij 323b5877cSLinus Walleijconfig ARMV8_MULTIENTRY 4ab65006bSMasahiro Yamada bool "Enable multiple CPUs to enter into U-Boot" 523b5877cSLinus Walleij 6*3aec452eSMingkai Huconfig ARMV8_SET_SMPEN 7*3aec452eSMingkai Hu bool "Enable data coherency with other cores in cluster" 8*3aec452eSMingkai Hu help 9*3aec452eSMingkai Hu Say Y here if there is not any trust firmware to set 10*3aec452eSMingkai Hu CPUECTLR_EL1.SMPEN bit before U-Boot. 11*3aec452eSMingkai Hu 12*3aec452eSMingkai Hu For A53, it enables data coherency with other cores in the 13*3aec452eSMingkai Hu cluster, and for A57/A72, it enables receiving of instruction 14*3aec452eSMingkai Hu cache and TLB maintenance operations. 15*3aec452eSMingkai Hu Cortex A53/57/72 cores require CPUECTLR_EL1.SMPEN set even 16*3aec452eSMingkai Hu for single core systems. Unfortunately write access to this 17*3aec452eSMingkai Hu register may be controlled by EL3/EL2 firmware. To be more 18*3aec452eSMingkai Hu precise, by default (if there is EL2/EL3 firmware running) 19*3aec452eSMingkai Hu this register is RO for NS EL1. 20*3aec452eSMingkai Hu This switch can be used to avoid writing to CPUECTLR_EL1, 21*3aec452eSMingkai Hu it can be safely enabled when EL2/EL3 initialized SMPEN bit 22*3aec452eSMingkai Hu or when CPU implementation doesn't include that register. 23*3aec452eSMingkai Hu 246b6024eaSMasahiro Yamadaconfig ARMV8_SPIN_TABLE 256b6024eaSMasahiro Yamada bool "Support spin-table enable method" 266b6024eaSMasahiro Yamada depends on ARMV8_MULTIENTRY && OF_LIBFDT 276b6024eaSMasahiro Yamada help 286b6024eaSMasahiro Yamada Say Y here to support "spin-table" enable method for booting Linux. 296b6024eaSMasahiro Yamada 306b6024eaSMasahiro Yamada To use this feature, you must do: 316b6024eaSMasahiro Yamada - Specify enable-method = "spin-table" in each CPU node in the 326b6024eaSMasahiro Yamada Device Tree you are using to boot the kernel 336b6024eaSMasahiro Yamada - Let secondary CPUs in U-Boot (in a board specific manner) 346b6024eaSMasahiro Yamada before the master CPU jumps to the kernel 356b6024eaSMasahiro Yamada 366b6024eaSMasahiro Yamada U-Boot automatically does: 376b6024eaSMasahiro Yamada - Set "cpu-release-addr" property of each CPU node 386b6024eaSMasahiro Yamada (overwrites it if already exists). 396b6024eaSMasahiro Yamada - Reserve the code for the spin-table and the release address 406b6024eaSMasahiro Yamada via a /memreserve/ region in the Device Tree. 416b6024eaSMasahiro Yamada 428069821fSAlexander Grafconfig PSCI_RESET 438069821fSAlexander Graf bool "Use PSCI for reset and shutdown" 448069821fSAlexander Graf default y 458069821fSAlexander Graf depends on !ARCH_EXYNOS7 && !ARCH_BCM283X && !TARGET_LS2080A_EMU && \ 468069821fSAlexander Graf !TARGET_LS2080A_SIMU && !TARGET_LS2080AQDS && \ 478069821fSAlexander Graf !TARGET_LS2080ARDB && !TARGET_LS1012AQDS && \ 488069821fSAlexander Graf !TARGET_LS1012ARDB && !TARGET_LS1012AFRDM && \ 49441a2306SAlexander Graf !TARGET_LS1043ARDB && !TARGET_LS1043AQDS && \ 50441a2306SAlexander Graf !TARGET_LS1046ARDB && !TARGET_LS1046AQDS && \ 51441a2306SAlexander Graf !ARCH_UNIPHIER && !ARCH_SNAPDRAGON && !TARGET_S32V234EVB 528069821fSAlexander Graf help 538069821fSAlexander Graf Most armv8 systems have PSCI support enabled in EL3, either through 548069821fSAlexander Graf ARM Trusted Firmware or other firmware. 558069821fSAlexander Graf 568069821fSAlexander Graf On these systems, we do not need to implement system reset manually, 578069821fSAlexander Graf but can instead rely on higher level firmware to deal with it. 588069821fSAlexander Graf 598069821fSAlexander Graf Select Y here to make use of PSCI calls for system reset 608069821fSAlexander Graf 61df88cb3bSmacro.wave.z@gmail.comconfig ARMV8_PSCI 62df88cb3bSmacro.wave.z@gmail.com bool "Enable PSCI support" if EXPERT 63df88cb3bSmacro.wave.z@gmail.com default n 64df88cb3bSmacro.wave.z@gmail.com help 65df88cb3bSmacro.wave.z@gmail.com PSCI is Power State Coordination Interface defined by ARM. 66df88cb3bSmacro.wave.z@gmail.com The PSCI in U-boot provides a general framework and each platform 67df88cb3bSmacro.wave.z@gmail.com can implement their own specific PSCI functions. 68df88cb3bSmacro.wave.z@gmail.com Say Y here to enable PSCI support on ARMv8 platform. 69df88cb3bSmacro.wave.z@gmail.com 70df88cb3bSmacro.wave.z@gmail.comconfig ARMV8_PSCI_NR_CPUS 71df88cb3bSmacro.wave.z@gmail.com int "Maximum supported CPUs for PSCI" 72df88cb3bSmacro.wave.z@gmail.com depends on ARMV8_PSCI 73df88cb3bSmacro.wave.z@gmail.com default 4 74df88cb3bSmacro.wave.z@gmail.com help 75df88cb3bSmacro.wave.z@gmail.com The maximum number of CPUs supported in the PSCI firmware. 76df88cb3bSmacro.wave.z@gmail.com It is no problem to set a larger value than the number of CPUs in 77df88cb3bSmacro.wave.z@gmail.com the actual hardware implementation. 78df88cb3bSmacro.wave.z@gmail.com 7914bf25d5Smacro.wave.z@gmail.comconfig ARMV8_PSCI_CPUS_PER_CLUSTER 8014bf25d5Smacro.wave.z@gmail.com int "Number of CPUs per cluster" 8114bf25d5Smacro.wave.z@gmail.com depends on ARMV8_PSCI 8214bf25d5Smacro.wave.z@gmail.com default 0 8314bf25d5Smacro.wave.z@gmail.com help 8414bf25d5Smacro.wave.z@gmail.com The number of CPUs per cluster, suppose each cluster has same number 8514bf25d5Smacro.wave.z@gmail.com of CPU cores, platforms with asymmetric clusters don't apply here. 8614bf25d5Smacro.wave.z@gmail.com A value 0 or no definition of it works for single cluster system. 8714bf25d5Smacro.wave.z@gmail.com System with multi-cluster should difine their own exact value. 8814bf25d5Smacro.wave.z@gmail.com 89df88cb3bSmacro.wave.z@gmail.comif SYS_HAS_ARMV8_SECURE_BASE 90df88cb3bSmacro.wave.z@gmail.com 91df88cb3bSmacro.wave.z@gmail.comconfig ARMV8_SECURE_BASE 92df88cb3bSmacro.wave.z@gmail.com hex "Secure address for PSCI image" 93df88cb3bSmacro.wave.z@gmail.com depends on ARMV8_PSCI 94df88cb3bSmacro.wave.z@gmail.com help 95df88cb3bSmacro.wave.z@gmail.com Address for placing the PSCI text, data and stack sections. 96df88cb3bSmacro.wave.z@gmail.com If not defined, the PSCI sections are placed together with the u-boot 97df88cb3bSmacro.wave.z@gmail.com but platform can choose to place PSCI code image separately in other 98df88cb3bSmacro.wave.z@gmail.com places such as some secure RAM built-in SOC etc. 99df88cb3bSmacro.wave.z@gmail.com 100df88cb3bSmacro.wave.z@gmail.comendif 101df88cb3bSmacro.wave.z@gmail.com 10223b5877cSLinus Walleijendif 103