From nobody Mon Apr 24 11:34:14 2023 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Q4jhR6jBtz46jGf; Mon, 24 Apr 2023 11:34:15 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Q4jhQ5ShXz4TWG; Mon, 24 Apr 2023 11:34:14 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1682336054; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=MyLcWjIk9u4F5Sb8Hq317APhy9z1PYqOyfRGe5JUTDQ=; b=Zb59kLIatR4nBROjje39wsN0pPmvaAr2GeviEnknSwxh5dtuXh5ZvfVt/qcx0zubGATtO1 Ub//EPZVUXFkxPKkARzdTAVXRAr/+LyRKPDtzt+WzlMRnDq7kGZgz2z1p9gtTzPifSrExV ibClLUQrueCIHkqExBGbZ24GAfdU3R4YoX9UPY9fBieNVGR0UyJkASIXuHE2mPiL67Rp2e gM9cpzSK3eEmbUD4Zdvjh3ophMcuGm8Rupw/lqn5XbsDVRTMnb0p4LsuWGIHGmbSxzSjTG rG/hKG48c0iIvEGkyC3Sd2ts22eODjh3dO8re25RBfaEw71dseBeRsiNH0f0fQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1682336054; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=MyLcWjIk9u4F5Sb8Hq317APhy9z1PYqOyfRGe5JUTDQ=; b=gBzrf2e6xR5Fko0h/BbVuKjjv09KSgGe9T1qjhljcX7zJkyecsiHJ1slXPe7B8D3XT8TUq Ca41Iz9O+b1GWsoJXIsSbSNJUEYL4IheFMreJH93W3KodEC2rJA9tGDDZweCXd3dxJigY0 EePp4wNI8dvXcjL4VKBqN80mUKCLlIQtOD4gSDBBPL3BYukJ0SJ/oGELuMm4xVe+t2TWE3 O6tQ5yfoI9yhYoJo5oZK2EW0SE43tCk53CMucyUCX9VQAC6/EQiof0LEJ3MT5p+cDS0703 RUBYYc7HTwAAHh0QpKHMvxrka6d3mZgoTU/o/yQfLIUkL68JLJUL0Qs1hTsCcw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1682336054; a=rsa-sha256; cv=none; b=SvZET4OUoXU4XHLZSV1iPTFFrI9dHnHSlBsIxapnaqMkb4FYPv+zbbZzxVdmWoj4BPGWM9 p2AoQ8bm6NlF9W21BDYC2xTQGlUTh3f2QYSmMoHYdTrnqRJBcZ70oeY3e1KiNmn4UJ4X+z QHxguONb8NxAOu/AQhlHYA/Molq8XVD25vTyjk7xkHJk7Q44HtoJ53/i4lSir6dYlu3xnQ J7oKGrdhhzLi0pwboAyI2zpGIrsZs3bRde+tdKS8yuaBx1smRa4Ve1c6/bxgV5RPyin/SH EjNo8xl6DAzscLlOVfDHXcdghHPHbIdyqXumHDkucPePiK43YqQp4NGwSJFBhQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Q4jhQ2g0bzPGj; Mon, 24 Apr 2023 11:34:14 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 33OBYENq071168; Mon, 24 Apr 2023 11:34:14 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 33OBYE1s071167; Mon, 24 Apr 2023 11:34:14 GMT (envelope-from git) Date: Mon, 24 Apr 2023 11:34:14 GMT Message-Id: <202304241134.33OBYE1s071167@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Andrew Turner Subject: git: 078a69abcbb8 - main - Use a uint64_t to store the arm64 mpidr List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: andrew X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 078a69abcbb8795f0e91d06ebcaef09236a11ceb Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch main has been updated by andrew: URL: https://cgit.FreeBSD.org/src/commit/?id=078a69abcbb8795f0e91d06ebcaef09236a11ceb commit 078a69abcbb8795f0e91d06ebcaef09236a11ceb Author: Andrew Turner AuthorDate: 2023-04-24 10:24:13 +0000 Commit: Andrew Turner CommitDate: 2023-04-24 11:33:50 +0000 Use a uint64_t to store the arm64 mpidr Use a single uint64_t to hole the mpidr register as we can break the KBI on 14. Keep the macro so code can still be MFCd to 13. Sponsored by: Arm Ltd --- sys/arm64/arm64/machdep.c | 3 +-- sys/arm64/arm64/mp_machdep.c | 6 ++---- sys/arm64/include/pcpu.h | 8 +++----- 3 files changed, 6 insertions(+), 11 deletions(-) diff --git a/sys/arm64/arm64/machdep.c b/sys/arm64/arm64/machdep.c index 4aac339b1a1b..8d2e2f81d1d8 100644 --- a/sys/arm64/arm64/machdep.c +++ b/sys/arm64/arm64/machdep.c @@ -315,8 +315,7 @@ cpu_pcpu_init(struct pcpu *pcpu, int cpuid, size_t size) { pcpu->pc_acpi_id = 0xffffffff; - pcpu->pc_mpidr_low = 0xffffffff; - pcpu->pc_mpidr_high = 0xffffffff; + pcpu->pc_mpidr = UINT64_MAX; } void diff --git a/sys/arm64/arm64/mp_machdep.c b/sys/arm64/arm64/mp_machdep.c index 4276b6dcffd2..24dca3b21d54 100644 --- a/sys/arm64/arm64/mp_machdep.c +++ b/sys/arm64/arm64/mp_machdep.c @@ -558,8 +558,7 @@ start_cpu(u_int cpuid, uint64_t target_cpu, int domain, vm_paddr_t release_addr) M_WAITOK | M_ZERO); pmap_disable_promotion((vm_offset_t)pcpup, size); pcpu_init(pcpup, cpuid, sizeof(struct pcpu)); - pcpup->pc_mpidr_low = target_cpu & CPU_AFF_MASK; - pcpup->pc_mpidr_high = (target_cpu & CPU_AFF_MASK) >> 32; + pcpup->pc_mpidr = target_cpu & CPU_AFF_MASK; dpcpu[cpuid - 1] = (void *)(pcpup + 1); dpcpu_init(dpcpu[cpuid - 1], cpuid); @@ -780,8 +779,7 @@ cpu_mp_start(void) /* CPU 0 is always boot CPU. */ CPU_SET(0, &all_cpus); mpidr = READ_SPECIALREG(mpidr_el1) & CPU_AFF_MASK; - cpuid_to_pcpu[0]->pc_mpidr_low = mpidr; - cpuid_to_pcpu[0]->pc_mpidr_high = mpidr >> 32; + cpuid_to_pcpu[0]->pc_mpidr = mpidr; switch(arm64_bus_method) { #ifdef DEV_ACPI diff --git a/sys/arm64/include/pcpu.h b/sys/arm64/include/pcpu.h index 8d60b4ef6356..38a8cd3c3e56 100644 --- a/sys/arm64/include/pcpu.h +++ b/sys/arm64/include/pcpu.h @@ -47,10 +47,9 @@ struct debug_monitor_state; pcpu_ssbd pc_ssbd; \ struct pmap *pc_curpmap; \ struct pmap *pc_curvmpmap; \ - u_int pc_bcast_tlbi_workaround; \ /* Store as two u_int values to preserve KBI */ \ - u_int pc_mpidr_low; /* lower MPIDR 32 bits */ \ - u_int pc_mpidr_high; /* upper MPIDR 32 bits */ \ + uint64_t pc_mpidr; \ + u_int pc_bcast_tlbi_workaround; \ char __pad[197] #ifdef _KERNEL @@ -85,8 +84,7 @@ get_curthread(void) #define PCPU_PTR(member) (&pcpup->pc_ ## member) #define PCPU_SET(member,value) (pcpup->pc_ ## member = (value)) -#define PCPU_GET_MPIDR(pc) \ - ((((uint64_t)((pc)->pc_mpidr_high)) << 32) | ((pc)->pc_mpidr_low)) +#define PCPU_GET_MPIDR(pc) ((pc)->pc_mpidr) #endif /* _KERNEL */