Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 11 Aug 2021 15:17:54 GMT
From:      Andrew Turner <andrew@FreeBSD.org>
To:        src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org
Subject:   git: 6b22840ed0e8 - main - Read the arm64 midr register earlier
Message-ID:  <202108111517.17BFHsGw051590@gitrepo.freebsd.org>

index | next in thread | raw e-mail

The branch main has been updated by andrew:

URL: https://cgit.FreeBSD.org/src/commit/?id=6b22840ed0e8f9ceb34465987b8469a43ebb4582

commit 6b22840ed0e8f9ceb34465987b8469a43ebb4582
Author:     Andrew Turner <andrew@FreeBSD.org>
AuthorDate: 2021-08-11 15:01:25 +0000
Commit:     Andrew Turner <andrew@FreeBSD.org>
CommitDate: 2021-08-11 15:15:55 +0000

    Read the arm64 midr register earlier
    
    We use the midr_el1 register to decode which CPU type we are booting
    from. Read it on the secondary CPUs before waiting for the boot CPU
    to release us as it will need to use it before the release.
    
    Sponsored by:   The FreeBSD Foundation
---
 sys/arm64/arm64/mp_machdep.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/sys/arm64/arm64/mp_machdep.c b/sys/arm64/arm64/mp_machdep.c
index 63715c64641c..c5dd3312fdba 100644
--- a/sys/arm64/arm64/mp_machdep.c
+++ b/sys/arm64/arm64/mp_machdep.c
@@ -238,6 +238,7 @@ init_secondary(uint64_t cpu)
 	 * We need this before signalling the CPU is ready to
 	 * let the boot CPU use the results.
 	 */
+	pcpup->pc_midr = get_midr();
 	identify_cpu(cpu);
 
 	/* Ensure the stores in identify_cpu have completed */
@@ -248,8 +249,6 @@ init_secondary(uint64_t cpu)
 	while (!atomic_load_int(&aps_ready))
 		__asm __volatile("wfe");
 
-	pcpup->pc_midr = get_midr();
-
 	/* Initialize curthread */
 	KASSERT(PCPU_GET(idlethread) != NULL, ("no idle thread"));
 	pcpup->pc_curthread = pcpup->pc_idlethread;


help

Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202108111517.17BFHsGw051590>