From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by mx.groups.io with SMTP id smtpd.web09.384.1610086457282069796 for ; Thu, 07 Jan 2021 22:14:17 -0800 Authentication-Results: mx.groups.io; dkim=missing; spf=pass (domain: arm.com, ip: 217.140.110.172, mailfrom: jeremy.linton@arm.com) 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 4F14ED6E; Thu, 7 Jan 2021 22:14:16 -0800 (PST) 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 4733D3F66E; Thu, 7 Jan 2021 22:14:16 -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, Jeremy Linton Subject: [PATCH v5 0/7] rpi4: Enable eMMC2 controller Date: Fri, 8 Jan 2021 00:14:04 -0600 Message-Id: <20210108061411.1721734-1-jeremy.linton@arm.com> X-Mailer: git-send-email 2.26.2 MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable The rpi4 has a secondary SD controller at offset 0xfe340000. This controller appears to be a mostly compliant SDHCI controller (a newer more bugfree Arasan?). So the existing Arasan driver should be bound to it. This allows the rpi4 to boot with its normal eMMC2->SD card, Arasan->wifi configuration that is described in the Linux DT. To achieve this, it appears we should be tweaking some of the expansion gpios, and probably telling the firmware to power everything up. To do that the vpu mailbox headers are synced with a more recent list of the mailbox commands, then the rpi firmware dxe is extended to support some futher gpio/power commands. Once that is complete we tweak the arasan driver to use an alternate register base, add a workaround for a known clock crossing bug, and set the card voltage. Of note, this set does _NOT_ change the HID/CID's and add the additional eMMC2 controller to the DSDT table. v4->v5: variable rename v3->v4: Commit message tweaks, variable rename. v1->v3: Use some mailbox defines rather than opencoded constants Jeremy Linton (7): Platform/RaspberryPi: Update VPU mailbox constants Platform/RaspberryPi: Add further mailbox helpers Platform/RaspberryPi: Split MMC register definitions Platform/RaspberryPi/Arasan: Add write delay and voltage/clock config Platform/RaspberryPi/Arasan: Select the correct base frequency Platform/RaspberryPi: Power up SD, and tweak GPIOs Platform/RaspberryPi: Correct device path removal. .../Drivers/ArasanMmcHostDxe/ArasanMmcHostDxe.c | 131 ++++++++--- .../Drivers/ArasanMmcHostDxe/ArasanMmcHostDxe.h | 1 + Platform/RaspberryPi/Drivers/ConfigDxe/ConfigDxe.c | 7 + .../Drivers/RpiFirmwareDxe/RpiFirmwareDxe.c | 240 +++++++++++++++= +++++- .../RaspberryPi/Include/IndustryStandard/RpiMbox.h | 94 +++++++- .../RaspberryPi/Include/Protocol/RpiFirmware.h | 25 +++ .../Library/PlatformBootManagerLib/PlatformBm.c | 2 +- .../Bcm283x/Include/IndustryStandard/Bcm2836Sdio.h | 42 ++-- 8 files changed, 484 insertions(+), 58 deletions(-) --=20 2.13.7