From nobody Tue May 13 22:46:28 2025 X-Original-To: dev-commits-src-main@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 4Zxs5x1NWnz5w6Ph; Tue, 13 May 2025 22:46:29 +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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Zxs5x0gQ0z3cL5; Tue, 13 May 2025 22:46:29 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1747176389; 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=Lfhp97mDg1xYcUuMK5LAn9A4H1AB1jg2/8Z5t/V2hBY=; b=l6TY3oGWrBKQ5AJXw0c1VG2LQeaO/H9vP4aelLyv/K8DDfr0s35BZsiiDQfR6nKTmHpPxm TGqXNFfMnq2biYIDE/T8XV5tfgY2O+GwL3BgGsQv3lxknBkcb8rq0HynGF+99eI22eG6cl t4Q0Bt46f6/v/lyvuFh9m3NFxT3pfbkcvk1z/IqLljEXaOlQeT2EHRDHieRvveXA8o/2bJ Twd0KQQeN1EieyaL9Pb2/2z5uzY3OK9OycvUpa5Cdz2XIBQbaUfce8egoHmKHXA4TLqOwh jv+ffWFfwKgHWLNKmJ7Gei5Bx+vgr0+05R3TSgKB4T9MBi1Sis43NLq7DGtywA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1747176389; 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=Lfhp97mDg1xYcUuMK5LAn9A4H1AB1jg2/8Z5t/V2hBY=; b=HNhMdWaSHuu9TjVp0x52ZJIvir7Dep6Oz4uqdoG3QGkmWp9qvAqlFUWOaD0ogEVYH3L7NA +RW0gvlEwU5dfIwr/DYRsceRlb4yurUiqc0Y65Yvx5T/HTw+foK9djRRY/RF0TZCBv2VPj BSx3NxwEbAsYsEDJcgUrMD5PJNJ5puC+pQRaD4nuIeNjdmmEXyu90QJT8cM7+p8uH2kwHO aqTxMel1NtHXDdoMuJXae7y0qJgwTXtNJMAEHYrwBdXgUhwHUA5vOCubSQhqW+iUGElkbB odQASKsj3YTvdlrjfmRb2EdEvvqJzDzuPJJ6Ic7ZA3Xr8S9qRn9RdGH9GtSf8g== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1747176389; a=rsa-sha256; cv=none; b=xWu6OSC4J6g8vmhahpbchnyA70mE6XsnKoH0AV6egvYfzi7CihtlHm4q3UsbdsHUVvfLFG IkerV2ANIcn7dAWpxsej42tnTV1TfkgyCxMnUdWzVNnfJB2Aj8k7+3kI58uPqMQOoVKQU4 mcGjNZwLsSe9jLPhwDXUctRPU2tqxBQRLIkw9PunbKnJNVMt1jXqDwpocemGHM3ph76NoA 1URvkrashWMNpjidFXCbPgKFxVcxn9xrz/qRObh6pOyX3EozcMF7fw6T9T4Z7pXREqTzJ3 DsMhRDomg5i4YREagfiSnApA3UMm4WeCyCF6zW8tJPqpxig0uJWm53eNmWUbPQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none 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 4Zxs5w6yN3z15K9; Tue, 13 May 2025 22:46:28 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 54DMkSDn001605; Tue, 13 May 2025 22:46:28 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 54DMkSkM001602; Tue, 13 May 2025 22:46:28 GMT (envelope-from git) Date: Tue, 13 May 2025 22:46:28 GMT Message-Id: <202505132246.54DMkSkM001602@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Justin Hibbits Subject: git: 86d20eaadfd1 - main - powernv: Add RF_BIGENDIAN resource flag List-Id: Commit messages for the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-main@freebsd.org Sender: owner-dev-commits-src-main@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: jhibbits X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 86d20eaadfd1a03e19d8bc8333c689b820299d52 Auto-Submitted: auto-generated The branch main has been updated by jhibbits: URL: https://cgit.FreeBSD.org/src/commit/?id=86d20eaadfd1a03e19d8bc8333c689b820299d52 commit 86d20eaadfd1a03e19d8bc8333c689b820299d52 Author: Justin Hibbits AuthorDate: 2025-05-13 22:39:37 +0000 Commit: Justin Hibbits CommitDate: 2025-05-13 22:44:09 +0000 powernv: Add RF_BIGENDIAN resource flag The big-endian analogue to the RF_LITTLEENDIAN flag, if this flag is set on a memory resource it's always mapped big endian. This is needed by the PowerNV OPAL resources (XIVE and PCI), as these top-level peripherals are always big-endian. Tested by: pkubaj Fixes: c4921a0f("powerpc: Always use BE tag in nexus_map_resource") MFC after: 1 day X-MFC-with: c4921a0f --- sys/powerpc/include/resource.h | 1 + sys/powerpc/powernv/opal_pci.c | 2 +- sys/powerpc/powernv/xive.c | 2 +- sys/powerpc/powerpc/nexus.c | 4 +++- 4 files changed, 6 insertions(+), 3 deletions(-) diff --git a/sys/powerpc/include/resource.h b/sys/powerpc/include/resource.h index e7e9493569cc..6726104403d0 100644 --- a/sys/powerpc/include/resource.h +++ b/sys/powerpc/include/resource.h @@ -47,5 +47,6 @@ */ #define RF_LITTLEENDIAN RF_SPARE1 +#define RF_BIGENDIAN RF_SPARE2 #endif /* !_MACHINE_RESOURCE_H_ */ diff --git a/sys/powerpc/powernv/opal_pci.c b/sys/powerpc/powernv/opal_pci.c index 8dee2c45c089..622c8c2cc09b 100644 --- a/sys/powerpc/powernv/opal_pci.c +++ b/sys/powerpc/powernv/opal_pci.c @@ -270,7 +270,7 @@ opalpci_attach(device_t dev) rid = 0; sc->r_reg = bus_alloc_resource_any(dev, SYS_RES_MEMORY, - &rid, RF_ACTIVE | RF_SHAREABLE); + &rid, RF_ACTIVE | RF_SHAREABLE | RF_BIGENDIAN); if (sc->r_reg == NULL) { device_printf(dev, "Failed to allocate PHB[%jd] registers\n", (uintmax_t)sc->phb_id); diff --git a/sys/powerpc/powernv/xive.c b/sys/powerpc/powernv/xive.c index 384ff4ef20d2..aaf4953ba8a5 100644 --- a/sys/powerpc/powernv/xive.c +++ b/sys/powerpc/powernv/xive.c @@ -327,7 +327,7 @@ xive_attach(device_t dev) rid = 1; /* Get the Hypervisor-level register set. */ sc->sc_mem = bus_alloc_resource_any(dev, SYS_RES_MEMORY, - &rid, RF_ACTIVE); + &rid, RF_ACTIVE | RF_BIGENDIAN); sc->sc_offset = XIVE_TM_QW3_HV; mtx_init(&sc->sc_mtx, "XIVE", NULL, MTX_DEF); diff --git a/sys/powerpc/powerpc/nexus.c b/sys/powerpc/powerpc/nexus.c index 029b6ef8a479..1dac56a84cf9 100644 --- a/sys/powerpc/powerpc/nexus.c +++ b/sys/powerpc/powerpc/nexus.c @@ -287,8 +287,10 @@ nexus_map_resource(device_t bus, device_t child, struct resource *r, map->r_vaddr = pmap_mapdev_attr(start, length, args.memattr); if ((rman_get_flags(r) & RF_LITTLEENDIAN) != 0) map->r_bustag = &bs_le_tag; - else + else if ((rman_get_flags(r) & RF_BIGENDIAN) != 0) map->r_bustag = &bs_be_tag; + else + map->r_bustag = nexus_get_bus_tag(NULL, NULL); map->r_size = length; map->r_bushandle = (bus_space_handle_t)map->r_vaddr; break;