Hi Anshuman, kernel test robot noticed the following build errors: [auto build test ERROR on arm64/for-next/core] [also build test ERROR on kvmarm/next soc/for-next arm/for-next arm/fixes linus/master v6.12-rc1 next-20241002] [If your patch is applied to the wrong git tree, kindly drop us a note. And when submitting patch, we suggest to use '--base' as documented in https://git-scm.com/docs/git-format-patch#_base_tree_information] url: https://github.com/intel-lab-lkp/linux/commits/Anshuman-Khandual/arm64-cpufeature-Add-field-details-for-ID_AA64DFR1_EL1-register/20241001-123752 base: https://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux.git for-next/core patch link: https://lore.kernel.org/r/20241001043602.1116991-3-anshuman.khandual%40arm.com patch subject: [PATCH 2/3] arm64/boot: Enable EL2 requirements for FEAT_Debugv8p9 config: arm64-allnoconfig (https://download.01.org/0day-ci/archive/20241003/202410030737.Mxx9Cvge-lkp@xxxxxxxxx/config) compiler: aarch64-linux-gcc (GCC) 14.1.0 reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20241003/202410030737.Mxx9Cvge-lkp@xxxxxxxxx/reproduce) If you fix the issue in a separate patch/commit (i.e. not just a new version of the same patch/commit), kindly add following tags | Reported-by: kernel test robot <lkp@xxxxxxxxx> | Closes: https://lore.kernel.org/oe-kbuild-all/202410030737.Mxx9Cvge-lkp@xxxxxxxxx/ All errors (new ones prefixed by >>): arch/arm64/kernel/head.S: Assembler messages: >> arch/arm64/kernel/head.S:550: Error: non-constant expression in ".if" statement arch/arm64/kernel/head.S:237: Info: macro invoked from here arch/arm64/kernel/head.S:269: Info: macro invoked from here arch/arm64/kernel/head.S:317: Info: macro invoked from here arch/arm64/kernel/head.S:553: Error: non-constant expression in ".if" statement arch/arm64/kernel/head.S:237: Info: macro invoked from here arch/arm64/kernel/head.S:269: Info: macro invoked from here arch/arm64/kernel/head.S:317: Info: macro invoked from here >> arch/arm64/kernel/head.S:1094: Error: constant expression required arch/arm64/kernel/head.S:238: Info: macro invoked from here arch/arm64/kernel/head.S:269: Info: macro invoked from here arch/arm64/kernel/head.S:317: Info: macro invoked from here >> arch/arm64/kernel/head.S:1094: Error: constant expression required arch/arm64/kernel/head.S:239: Info: macro invoked from here arch/arm64/kernel/head.S:269: Info: macro invoked from here arch/arm64/kernel/head.S:317: Info: macro invoked from here >> arch/arm64/kernel/head.S:317: Error: undefined symbol ID_AA64MMFR0_EL1_FGT_FGT2 used as an immediate value vim +317 arch/arm64/kernel/head.S 034edabe6cf1d0d Laura Abbott 2014-11-21 246 034edabe6cf1d0d Laura Abbott 2014-11-21 247 /* 034edabe6cf1d0d Laura Abbott 2014-11-21 248 * end early head section, begin head code that is also used for 034edabe6cf1d0d Laura Abbott 2014-11-21 249 * hotplug and needs to have the same protections as the text region 034edabe6cf1d0d Laura Abbott 2014-11-21 250 */ d54170812ef1c80 Mark Rutland 2023-02-20 251 .section ".idmap.text","a" f80fb3a3d50843a Ard Biesheuvel 2016-01-26 252 9703d9d7f77ce12 Catalin Marinas 2012-03-05 253 /* ecbb11ab3ebc027 Mark Rutland 2020-11-13 254 * Starting from EL2 or EL1, configure the CPU to execute at the highest ecbb11ab3ebc027 Mark Rutland 2020-11-13 255 * reachable EL supported by the kernel in a chosen default state. If dropping ecbb11ab3ebc027 Mark Rutland 2020-11-13 256 * from EL2 to EL1, configure EL2 before configuring EL1. 828e9834e9a5b7e Matthew Leach 2013-10-11 257 * d87a8e65b510112 Mark Rutland 2020-11-13 258 * Since we cannot always rely on ERET synchronizing writes to sysregs (e.g. if d87a8e65b510112 Mark Rutland 2020-11-13 259 * SCTLR_ELx.EOS is clear), we place an ISB prior to ERET. 828e9834e9a5b7e Matthew Leach 2013-10-11 260 * b65e411d6cc2f12 Marc Zyngier 2022-06-30 261 * Returns either BOOT_CPU_MODE_EL1 or BOOT_CPU_MODE_EL2 in x0 if b65e411d6cc2f12 Marc Zyngier 2022-06-30 262 * booted in EL1 or EL2 respectively, with the top 32 bits containing b65e411d6cc2f12 Marc Zyngier 2022-06-30 263 * potential context flags. These flags are *not* stored in __boot_cpu_mode. 3dcf60bbfd284e5 Ard Biesheuvel 2023-01-11 264 * 3dcf60bbfd284e5 Ard Biesheuvel 2023-01-11 265 * x0: whether we are being called from the primary boot path with the MMU on 9703d9d7f77ce12 Catalin Marinas 2012-03-05 266 */ ecbb11ab3ebc027 Mark Rutland 2020-11-13 267 SYM_FUNC_START(init_kernel_el) 3dcf60bbfd284e5 Ard Biesheuvel 2023-01-11 268 mrs x1, CurrentEL 3dcf60bbfd284e5 Ard Biesheuvel 2023-01-11 269 cmp x1, #CurrentEL_EL2 d87a8e65b510112 Mark Rutland 2020-11-13 270 b.eq init_el2 d87a8e65b510112 Mark Rutland 2020-11-13 271 d87a8e65b510112 Mark Rutland 2020-11-13 272 SYM_INNER_LABEL(init_el1, SYM_L_LOCAL) 31a32b49b80f79c Marc Zyngier 2021-04-08 273 mov_q x0, INIT_SCTLR_EL1_MMU_OFF 9d7c13e5dde3127 Ard Biesheuvel 2023-01-11 274 pre_disable_mmu_workaround 31a32b49b80f79c Marc Zyngier 2021-04-08 275 msr sctlr_el1, x0 9cf71728931a407 Matthew Leach 2013-10-11 276 isb d87a8e65b510112 Mark Rutland 2020-11-13 277 mov_q x0, INIT_PSTATE_EL1 d87a8e65b510112 Mark Rutland 2020-11-13 278 msr spsr_el1, x0 d87a8e65b510112 Mark Rutland 2020-11-13 279 msr elr_el1, lr d87a8e65b510112 Mark Rutland 2020-11-13 280 mov w0, #BOOT_CPU_MODE_EL1 d87a8e65b510112 Mark Rutland 2020-11-13 281 eret 9703d9d7f77ce12 Catalin Marinas 2012-03-05 282 d87a8e65b510112 Mark Rutland 2020-11-13 283 SYM_INNER_LABEL(init_el2, SYM_L_LOCAL) 3dcf60bbfd284e5 Ard Biesheuvel 2023-01-11 284 msr elr_el2, lr 3dcf60bbfd284e5 Ard Biesheuvel 2023-01-11 285 3dcf60bbfd284e5 Ard Biesheuvel 2023-01-11 286 // clean all HYP code to the PoC if we booted at EL2 with the MMU on 3dcf60bbfd284e5 Ard Biesheuvel 2023-01-11 287 cbz x0, 0f 3dcf60bbfd284e5 Ard Biesheuvel 2023-01-11 288 adrp x0, __hyp_idmap_text_start 3dcf60bbfd284e5 Ard Biesheuvel 2023-01-11 289 adr_l x1, __hyp_text_end d54170812ef1c80 Mark Rutland 2023-02-20 290 adr_l x2, dcache_clean_poc d54170812ef1c80 Mark Rutland 2023-02-20 291 blr x2 34e526cb7d46726 Ard Biesheuvel 2024-04-15 292 34e526cb7d46726 Ard Biesheuvel 2024-04-15 293 mov_q x0, INIT_SCTLR_EL2_MMU_OFF 34e526cb7d46726 Ard Biesheuvel 2024-04-15 294 pre_disable_mmu_workaround 34e526cb7d46726 Ard Biesheuvel 2024-04-15 295 msr sctlr_el2, x0 34e526cb7d46726 Ard Biesheuvel 2024-04-15 296 isb 3dcf60bbfd284e5 Ard Biesheuvel 2023-01-11 297 0: 78869f0f0552d03 David Brazdil 2020-12-02 298 mov_q x0, HCR_HOST_NVHE_FLAGS b3320142f3db9b3 Marc Zyngier 2024-03-21 299 b3320142f3db9b3 Marc Zyngier 2024-03-21 300 /* b3320142f3db9b3 Marc Zyngier 2024-03-21 301 * Compliant CPUs advertise their VHE-onlyness with b3320142f3db9b3 Marc Zyngier 2024-03-21 302 * ID_AA64MMFR4_EL1.E2H0 < 0. HCR_EL2.E2H can be b3320142f3db9b3 Marc Zyngier 2024-03-21 303 * RES1 in that case. Publish the E2H bit early so that b3320142f3db9b3 Marc Zyngier 2024-03-21 304 * it can be picked up by the init_el2_state macro. b3320142f3db9b3 Marc Zyngier 2024-03-21 305 * b3320142f3db9b3 Marc Zyngier 2024-03-21 306 * Fruity CPUs seem to have HCR_EL2.E2H set to RAO/WI, but b3320142f3db9b3 Marc Zyngier 2024-03-21 307 * don't advertise it (they predate this relaxation). b3320142f3db9b3 Marc Zyngier 2024-03-21 308 */ b3320142f3db9b3 Marc Zyngier 2024-03-21 309 mrs_s x1, SYS_ID_AA64MMFR4_EL1 b3320142f3db9b3 Marc Zyngier 2024-03-21 310 tbz x1, #(ID_AA64MMFR4_EL1_E2H0_SHIFT + ID_AA64MMFR4_EL1_E2H0_WIDTH - 1), 1f b3320142f3db9b3 Marc Zyngier 2024-03-21 311 b3320142f3db9b3 Marc Zyngier 2024-03-21 312 orr x0, x0, #HCR_E2H b3320142f3db9b3 Marc Zyngier 2024-03-21 313 1: 78869f0f0552d03 David Brazdil 2020-12-02 314 msr hcr_el2, x0 22043a3c082a584 Dave Martin 2017-10-31 315 isb 78869f0f0552d03 David Brazdil 2020-12-02 316 e2df464173f0b58 Marc Zyngier 2021-02-08 @317 init_el2_state 22043a3c082a584 Dave Martin 2017-10-31 318 712c6ff4dba4917 Marc Zyngier 2012-10-19 319 /* Hypervisor stub */ 78869f0f0552d03 David Brazdil 2020-12-02 320 adr_l x0, __hyp_stub_vectors 712c6ff4dba4917 Marc Zyngier 2012-10-19 321 msr vbar_el2, x0 d87a8e65b510112 Mark Rutland 2020-11-13 322 isb 78869f0f0552d03 David Brazdil 2020-12-02 323 ae4b7e38e9a9479 Marc Zyngier 2022-06-30 324 mov_q x1, INIT_SCTLR_EL1_MMU_OFF ae4b7e38e9a9479 Marc Zyngier 2022-06-30 325 31a32b49b80f79c Marc Zyngier 2021-04-08 326 mrs x0, hcr_el2 31a32b49b80f79c Marc Zyngier 2021-04-08 327 and x0, x0, #HCR_E2H 3944382fa6f22b5 Marc Zyngier 2024-01-22 328 cbz x0, 2f b3320142f3db9b3 Marc Zyngier 2024-03-21 329 ae4b7e38e9a9479 Marc Zyngier 2022-06-30 330 /* Set a sane SCTLR_EL1, the VHE way */ ae4b7e38e9a9479 Marc Zyngier 2022-06-30 331 msr_s SYS_SCTLR_EL12, x1 ae4b7e38e9a9479 Marc Zyngier 2022-06-30 332 mov x2, #BOOT_CPU_FLAG_E2H 3944382fa6f22b5 Marc Zyngier 2024-01-22 333 b 3f 31a32b49b80f79c Marc Zyngier 2021-04-08 334 3944382fa6f22b5 Marc Zyngier 2024-01-22 335 2: ae4b7e38e9a9479 Marc Zyngier 2022-06-30 336 msr sctlr_el1, x1 ae4b7e38e9a9479 Marc Zyngier 2022-06-30 337 mov x2, xzr 3944382fa6f22b5 Marc Zyngier 2024-01-22 338 3: 1700f89cb99aae1 Marc Zyngier 2023-06-14 339 __init_el2_nvhe_prepare_eret 1700f89cb99aae1 Marc Zyngier 2023-06-14 340 d87a8e65b510112 Mark Rutland 2020-11-13 341 mov w0, #BOOT_CPU_MODE_EL2 ae4b7e38e9a9479 Marc Zyngier 2022-06-30 342 orr x0, x0, x2 9703d9d7f77ce12 Catalin Marinas 2012-03-05 343 eret ecbb11ab3ebc027 Mark Rutland 2020-11-13 344 SYM_FUNC_END(init_kernel_el) 9703d9d7f77ce12 Catalin Marinas 2012-03-05 345 9703d9d7f77ce12 Catalin Marinas 2012-03-05 346 /* 9703d9d7f77ce12 Catalin Marinas 2012-03-05 347 * This provides a "holding pen" for platforms to hold all secondary 9703d9d7f77ce12 Catalin Marinas 2012-03-05 348 * cores are held until we're ready for them to initialise. 9703d9d7f77ce12 Catalin Marinas 2012-03-05 349 */ c63d9f82db94399 Mark Brown 2020-02-18 350 SYM_FUNC_START(secondary_holding_pen) 3dcf60bbfd284e5 Ard Biesheuvel 2023-01-11 351 mov x0, xzr ecbb11ab3ebc027 Mark Rutland 2020-11-13 352 bl init_kernel_el // w0=cpu_boot_mode 005e12676af09a3 Ard Biesheuvel 2022-06-24 353 mrs x2, mpidr_el1 b03cc885328e3c0 Ard Biesheuvel 2016-04-18 354 mov_q x1, MPIDR_HWID_BITMASK 005e12676af09a3 Ard Biesheuvel 2022-06-24 355 and x2, x2, x1 b1c98297fe0c6e2 Ard Biesheuvel 2015-03-10 356 adr_l x3, secondary_holding_pen_release 9703d9d7f77ce12 Catalin Marinas 2012-03-05 357 pen: ldr x4, [x3] 005e12676af09a3 Ard Biesheuvel 2022-06-24 358 cmp x4, x2 9703d9d7f77ce12 Catalin Marinas 2012-03-05 359 b.eq secondary_startup 9703d9d7f77ce12 Catalin Marinas 2012-03-05 360 wfe 9703d9d7f77ce12 Catalin Marinas 2012-03-05 361 b pen c63d9f82db94399 Mark Brown 2020-02-18 362 SYM_FUNC_END(secondary_holding_pen) 652af8997993540 Mark Rutland 2013-10-24 363 652af8997993540 Mark Rutland 2013-10-24 364 /* 652af8997993540 Mark Rutland 2013-10-24 365 * Secondary entry point that jumps straight into the kernel. Only to 652af8997993540 Mark Rutland 2013-10-24 366 * be used where CPUs are brought online dynamically by the kernel. 652af8997993540 Mark Rutland 2013-10-24 367 */ c63d9f82db94399 Mark Brown 2020-02-18 368 SYM_FUNC_START(secondary_entry) 3dcf60bbfd284e5 Ard Biesheuvel 2023-01-11 369 mov x0, xzr ecbb11ab3ebc027 Mark Rutland 2020-11-13 370 bl init_kernel_el // w0=cpu_boot_mode 652af8997993540 Mark Rutland 2013-10-24 371 b secondary_startup c63d9f82db94399 Mark Brown 2020-02-18 372 SYM_FUNC_END(secondary_entry) 9703d9d7f77ce12 Catalin Marinas 2012-03-05 373 -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki