From nobody Wed Jun 4 17:00:24 2025 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 4bCDNS4ZMRz5xJQ3; Wed, 04 Jun 2025 17:00:24 +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 4bCDNS2RNfz4BM7; Wed, 04 Jun 2025 17:00:24 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1749056424; 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=zRQLwDg3DILYd3rIfFHWV0cQINao7sjWJz3ByzC/dkE=; b=AMaDVHHQn3d8trWaDLHYmyh0pRxyLM1h7MjAGJMqWqMnhHIEGRtz/xJyKXKrBAYzNqv2dw t2sxevvmEbQcWIRfeXNECbTaLjh0/29KCNT5NfGfO+IpMgoTnlDtTCnYylI67s878d8TcZ 3BYH1jjCxMySn8XK4T/D98lZPg0Fg93hV2kjjD0QeCBZLMIXcVYCi0RRECjy7S/JzSWC/A XVlxuQrRcLvrfYOY6QwkLBA1iNEPN8JFSpPmIqiIY4OGhDoq++M+6zqWxC83gXH7pDa49C hwxA1JskCZ7c3TD6VHsI2EMsdIvSnajWTwEUPBqv9soyxrY6O/iG3YlvbFPFaw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1749056424; 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=zRQLwDg3DILYd3rIfFHWV0cQINao7sjWJz3ByzC/dkE=; b=ekqBItXwbXNzg3gWcsG0rym7CbOp+PsVJk4+JhXIEi1mXlmP69gPBWUUezxD+b5U/j/F7i xYxYeQC30xU5C3eS0e0ACd739LqfT/6uV+PqeNdf/EcwpkC95IaCIvE9pdZ5DJ9T4UgieJ SibVWXtBDz3URW1w+dC436ACH/iwG8dvhNefaLn+u7cjGbnmikLxCsZj9/hYMPBc0YNpQ1 C28fZn1PepDaY5VqjjG3N2D4CWKU5Q6XDt5jLOQ/2Utq64vN3Rp4PGz6ksnL9FKPGEfOY5 ZxTBea67a97BJQm8r+5aCbNfRP46/kC/4taIi6tqN/hplOQVukohiPFkWLC6LA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1749056424; a=rsa-sha256; cv=none; b=dUcx59yZXQ+bo0R5Pi/KtoRqRc7stKBYGlWdxEkf6S+FYJar8NT6w12+9YH1gentrOZt/u 0OWgostv0nU/uaKTuIIZMlMFgrdRvdwPm0rn6T4fTDuJsVFRITowD+X8suD4E3GROAR4E7 ixeY9p5dIqsmBu7DWQiMEQW/IpbQdlAJokeygWkOLpNy1n5+VTFD+No2CDPo8eP1Ewiqmk QLIepS5ZfKZ2PKF0xoTbidrs3ItaaaP27fPX9/D+lylK731JmlV2Y450tiVIiynFUTJeeT VX9mnbdVXPJo25Q1Kz6KuPWH4i28svdGK2ng/I6vV0fYQYAIF9CoWbdBxPQTRg== 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 4bCDNS20ZqzYnK; Wed, 04 Jun 2025 17:00:24 +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 554H0OcO027845; Wed, 4 Jun 2025 17:00:24 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 554H0OWl027842; Wed, 4 Jun 2025 17:00:24 GMT (envelope-from git) Date: Wed, 4 Jun 2025 17:00:24 GMT Message-Id: <202506041700.554H0OWl027842@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Kyle Evans Subject: git: 0344bfb60961 - stable/14 - Enable L1SS handling on RPI4 pcib 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: X-BeenThere: dev-commits-src-all@freebsd.org Sender: owner-dev-commits-src-all@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kevans X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 0344bfb6096103209f485503f8cc541d264e1f3e Auto-Submitted: auto-generated The branch stable/14 has been updated by kevans: URL: https://cgit.FreeBSD.org/src/commit/?id=0344bfb6096103209f485503f8cc541d264e1f3e commit 0344bfb6096103209f485503f8cc541d264e1f3e Author: HP van Braam AuthorDate: 2024-04-16 23:01:20 +0000 Commit: Kyle Evans CommitDate: 2025-06-04 16:57:19 +0000 Enable L1SS handling on RPI4 pcib Thanks to @kevans91 for pointing me in the right direction. FreeBSD had the same bug as Linux (see https://bugzilla.kernel.org/show_bug.cgi?id=217276) where the ultimate solution was to honor the brcm,enable-l1ss FDT property. In current versions of the dtb files this property has been added by default. Without this on many, many pcie addin cards the pcib will Serror when trying to assert the clreq# pin on the pcie bus. Many cards do not have these hooked up. PR: 260131, 277638, 277605 Reviewed-by: emaste Signed-off-by: HP van Braam Pull-request: https://github.com/freebsd/freebsd-src/pull/1179 (cherry picked from commit 10e0c34bf842885b4bd78adbbdbd7fb00f133cb5) --- sys/arm/broadcom/bcm2835/bcm2838_pci.c | 22 ++++++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/sys/arm/broadcom/bcm2835/bcm2838_pci.c b/sys/arm/broadcom/bcm2835/bcm2838_pci.c index 2dfd6744127a..fb3e8df783c2 100644 --- a/sys/arm/broadcom/bcm2835/bcm2838_pci.c +++ b/sys/arm/broadcom/bcm2835/bcm2838_pci.c @@ -61,7 +61,7 @@ #define REG_BRIDGE_CTRL 0x9210 #define BRIDGE_DISABLE_FLAG 0x1 #define BRIDGE_RESET_FLAG 0x2 -#define REG_BRIDGE_SERDES_MODE 0x4204 +#define REG_PCIE_HARD_DEBUG 0x4204 #define REG_DMA_CONFIG 0x4008 #define REG_DMA_WINDOW_LOW 0x4034 #define REG_DMA_WINDOW_HIGH 0x4038 @@ -87,6 +87,9 @@ #define REG_EP_CONFIG_CHOICE 0x9000 #define REG_EP_CONFIG_DATA 0x8000 +#define L1SS_ENABLE 0x00200000 +#define CLKREQ_ENABLE 0x2 + /* * The system memory controller can address up to 16 GiB of physical memory * (although at time of writing the largest memory size available for purchase @@ -191,7 +194,7 @@ bcm_pcib_reset_controller(struct bcm_pcib_softc *sc) DELAY(100); - bcm_pcib_set_reg(sc, REG_BRIDGE_SERDES_MODE, 0); + bcm_pcib_set_reg(sc, REG_PCIE_HARD_DEBUG, 0); DELAY(100); } @@ -614,7 +617,7 @@ bcm_pcib_attach(device_t dev) struct bcm_pcib_softc *sc; pci_addr_t phys_base, pci_base; bus_size_t size; - uint32_t hardware_rev, bridge_state, link_state; + uint32_t hardware_rev, bridge_state, link_state, tmp; int error, tries; sc = device_get_softc(dev); @@ -720,7 +723,18 @@ bcm_pcib_attach(device_t dev) bcm_pcib_set_reg(sc, PCI_ID_VAL3, PCIC_BRIDGE << CLASS_SHIFT | PCIS_BRIDGE_PCI << SUBCLASS_SHIFT); - bcm_pcib_set_reg(sc, REG_BRIDGE_SERDES_MODE, 0x2); + tmp = bcm_pcib_read_reg(sc, REG_PCIE_HARD_DEBUG); + tmp |= CLKREQ_ENABLE; + + if (ofw_bus_has_prop(dev, "brcm,enable-l1ss")) { + if (bootverbose) + device_printf(dev, "note: enabling L1SS due to OF " + "property brcm,enable-l1ss\n"); + + tmp |= L1SS_ENABLE; + } + + bcm_pcib_set_reg(sc, REG_PCIE_HARD_DEBUG, tmp); DELAY(100); bcm_pcib_relocate_bridge_window(dev);