From nobody Tue Feb 10 00:59:53 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) client-ip=66.175.222.108; envelope-from=bounce+27952+70023+1787277+3901457@groups.io; helo=mail02.groups.io; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce+27952+70023+1787277+3901457@groups.io; dmarc=fail(p=none dis=none) header.from=arm.com ARC-Seal: i=1; a=rsa-sha256; t=1610086602; cv=none; d=zohomail.com; s=zohoarc; b=Kioypw0TAWYqG0kz3lWAfjqo5luCuOcUklBSduslDO+bsGbIsjf2R7f2UNUjg9T7PNGoQe8FSQuyn+kgMZCjfB9Y+CsHMcRJnQ0hYOa6BXtvx3FaOKJmmqpvcU3E7RNkECw7GhP84r9GU6ENSJSs8QHzy1CnZk309A6RMyq6bLs= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1610086602; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Id:List-Unsubscribe:MIME-Version:Message-ID:Reply-To:References:Sender:Subject:To; bh=IZ+7T1seTPwLkU04/aoCUM+CCYdu8BnLaRXIe5VKi8U=; b=RLs0mn24Z0qRmR386y7bx+EU5uBewaLOpFpUAPwZw+9JVEcB8/ViYPge9mHmbIoo4pQWLhyZIxQjy+pdNXaew6JuK0RUuxfa+7C0nMu/PEqGuwxJCeqPRfNCC5si2+lGhpbHfR561TpE7k6/+w0KkrrICe7vF7q/jUK5Uz/S2hs= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce+27952+70023+1787277+3901457@groups.io; dmarc=fail header.from= (p=none dis=none) header.from= Received: from mail02.groups.io (mail02.groups.io [66.175.222.108]) by mx.zohomail.com with SMTPS id 1610086602315602.744775003444; Thu, 7 Jan 2021 22:16:42 -0800 (PST) Return-Path: X-Received: by 127.0.0.2 with SMTP id luWgYY1788612xQThT4fqQyt; Thu, 07 Jan 2021 22:16:42 -0800 X-Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by mx.groups.io with SMTP id smtpd.web10.404.1610086596493421280 for ; Thu, 07 Jan 2021 22:16:36 -0800 X-Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 270DC113E; Thu, 7 Jan 2021 22:16:34 -0800 (PST) X-Received: from mammon-tx2.austin.arm.com (mammon-tx2.austin.arm.com [10.118.28.62]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPA id D68E53F66E; Thu, 7 Jan 2021 22:16:34 -0800 (PST) From: "Jeremy Linton" To: devel@edk2.groups.io Cc: ard.biesheuvel@arm.com, leif@nuviainc.com, pete@akeo.ie, samer.el-haj-mahmoud@arm.com, awarkentin@vmware.com, philmd@redhat.com, Jeremy Linton Subject: [edk2-devel] [PATCH 2/3] Platform/RaspberryPi/Acpitables: Add eMMC2 device and tweak Arasan Date: Fri, 8 Jan 2021 00:16:22 -0600 Message-Id: <20210108061623.1721817-3-jeremy.linton@arm.com> In-Reply-To: <20210108061623.1721817-1-jeremy.linton@arm.com> References: <20210108061623.1721817-1-jeremy.linton@arm.com> MIME-Version: 1.0 Precedence: Bulk List-Unsubscribe: Sender: devel@edk2.groups.io List-Id: Mailing-List: list devel@edk2.groups.io; contact devel+owner@edk2.groups.io Reply-To: devel@edk2.groups.io,jeremy.linton@arm.com X-Gm-Message-State: kqg4TkukOOBIjEBpefMOlaz5x1787277AA= Content-Transfer-Encoding: quoted-printable DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=groups.io; q=dns/txt; s=20140610; t=1610086602; bh=ec4bwivCGYI/ChJ3TL1IKgNKBo3ENKWtWv7CVD3H28o=; h=Cc:Date:From:Reply-To:Subject:To; b=XteUS7YSqms7qUNVbSTpWAD4VdVYTmEAoxu8bOvkJBjLyiAyP5AIPf1HCEg0/gbXb/0 NbosJluCJ+rmj0NSxiQQkYm9Qn0KLTuYlDDKsJEIqrB1KkwaiMy5O9S1rBwDb66I46XmD f1CXrrKHl3OAmJvFySUaHX98RTGy8I8WnNY= X-ZohoMail-DKIM: pass (identity @groups.io) Content-Type: text/plain; charset="utf-8" The primarly problem with the rpi Arasan controller working with a default SDHCI driver is the lack of a meaningful capabilities register. As such if we add a _DSD entry to provide that information, we can then bind it to the linux sdhci_iproc driver which already hardcodes the remaining controller bugs. Further we have gotten BRCME88C approved as the HID for the newer eMMC2 controller. So lets define an ACPI object to describe it. Of course both devices are sharing an interrupt so we should also indicate that in the table as well. Signed-off-by: Jeremy Linton --- Platform/RaspberryPi/AcpiTables/Dsdt.asl | 2 + Platform/RaspberryPi/AcpiTables/Sdhc.asl | 86 ++++++++++++++++++++++++++++= +++- 2 files changed, 86 insertions(+), 2 deletions(-) diff --git a/Platform/RaspberryPi/AcpiTables/Dsdt.asl b/Platform/RaspberryP= i/AcpiTables/Dsdt.asl index d116f965e1..cca08c0539 100644 --- a/Platform/RaspberryPi/AcpiTables/Dsdt.asl +++ b/Platform/RaspberryPi/AcpiTables/Dsdt.asl @@ -150,6 +150,7 @@ DefinitionBlock ("Dsdt.aml", "DSDT", 5, "RPIFDN", "RPI"= , 2) QWORDMEMORYBUF(23) QWORDMEMORYBUF(24) QWORDMEMORYBUF(25) + QWORDMEMORYBUF(26) }) =20 // USB @@ -196,6 +197,7 @@ DefinitionBlock ("Dsdt.aml", "DSDT", 5, "RPIFDN", "RPI"= , 2) // SDC QWORDMEMORYSET(24, MMCHS1_OFFSET, MMCHS1_LENGTH) QWORDMEMORYSET(25, SDHOST_OFFSET, SDHOST_LENGTH) + QWORDMEMORYSET(26, MMCHS2_OFFSET, MMCHS2_LENGTH) =20 Return (RBUF) } diff --git a/Platform/RaspberryPi/AcpiTables/Sdhc.asl b/Platform/RaspberryP= i/AcpiTables/Sdhc.asl index 0ab1ba27f2..a7ac831066 100644 --- a/Platform/RaspberryPi/AcpiTables/Sdhc.asl +++ b/Platform/RaspberryPi/AcpiTables/Sdhc.asl @@ -19,7 +19,7 @@ // Note: UEFI can use either SDHost or Arasan. We expose both to the OS. // =20 -// ArasanSD 3.0 SD Host Controller. +// ArasanSD 3.0 SD Host Controller. (brcm,bcm2835-sdhci) Device (SDC1) { Name (_HID, "BCM2847") @@ -37,7 +37,7 @@ Device (SDC1) Name (RBUF, ResourceTemplate () { MEMORY32FIXED (ReadWrite, 0, MMCHS1_LENGTH, RMEM) - Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive) { BCM2836_M= MCHS1_INTERRUPT } + Interrupt (ResourceConsumer, Level, ActiveHigh, Shared) { BCM2836_MMCH= S1_INTERRUPT } }) Method (_CRS, 0x0, Serialized) { @@ -45,6 +45,86 @@ Device (SDC1) Return (^RBUF) } =20 + // The standard CAPs registers on this controller + // appear to be 0, lets set some minimal defaults + // Since this cap doesn't indicate DMA capability + // we don't need a _DMA() + Name (_DSD, Package () { + ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"), + Package () { + Package () { "sdhci-caps", 0x0100fa81 }, + } + }) + + + // + // A child device that represents the + // sd card, which is marked as non-removable. + // + Device (SDMM) + { + Method (_ADR) + { + Return (0) + } + Method (_RMV) // Is removable + { + Return (0) // 0 - fixed + } + } +} + +#if (RPI_MODEL =3D=3D 4) +// emmc2 Host Controller. (brcm,bcm2711-emmc2) +Device (SDC3) +{ + Name (_HID, "BRCME88C") + Name (_UID, 0x1) + Name (_CCA, 0x0) + Name (_S1D, 0x1) + Name (_S2D, 0x1) + Name (_S3D, 0x1) + Name (_S4D, 0x1) + Method (_STA) + { + Return(0xf) + } + Name (RBUF, ResourceTemplate () + { + MEMORY32FIXED (ReadWrite, 0, MMCHS2_LENGTH, RMEM) + Interrupt (ResourceConsumer, Level, ActiveHigh, Shared) { BCM2836_MMCH= S1_INTERRUPT } + }) + Method (_CRS, 0x0, Serialized) + { + MEMORY32SETBASE (RBUF, RMEM, RBAS, MMCHS2_OFFSET) + Return (^RBUF) + } + + // forceably limit to 1G + Name (_DMA, ResourceTemplate() { + QWordMemory (ResourceConsumer, + , + MinFixed, + MaxFixed, + NonCacheable, + ReadWrite, + 0x0, + 0x0, // MIN + 0x3fffffff, // MAX + 0x0, // TRA + 0x40000000, // LEN + , + , + ) + }) + + Name (_DSD, Package () { + ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"), + Package () { + Package () { "sdhci-caps-mask", 0x0000000000080000 }, + } + }) + // // A child device that represents the // sd card, which is marked as non-removable. @@ -62,6 +142,7 @@ Device (SDC1) } } =20 +#else // !RPI4 =20 // Broadcom SDHost 2.0 SD Host Controller Device (SDC2) @@ -105,3 +186,4 @@ Device (SDC2) } } } +#endif // !RPI4 --=20 2.13.7 -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#70023): https://edk2.groups.io/g/devel/message/70023 Mute This Topic: https://groups.io/mt/79518731/1787277 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org] -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-