From e98af137c4a9ae6004eeb2f9efa8e369d2bcd724 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Panda=20=E6=BD=98=E8=BE=BE?= Date: Mon, 9 Sep 2024 05:58:49 +0000 Subject: [PATCH] feat: 6.1 DTB + fixes for SDcard on the Fydetab Duo Co-authored-by: Yang Tsao --- README.md | 1 + .../Platform/Rockchip/DeviceTree/README.md | 3 +++ .../DeviceTree/rk3588s-fydetab-duo.dtb | Bin 0 -> 251158 bytes .../FydetabDuo/FydetabDuo.Modules.fdf.inc | 6 +++--- .../FydeInnovations/FydetabDuo/FydetabDuo.dsc | 4 ++-- .../RockchipPlatformLib/RockchipPlatformLib.c | 2 ++ .../Rockchip/Drivers/RkSdmmcDxe/RkSdmmcDxe.c | 6 +++++- .../Rockchip/Drivers/RkSdmmcDxe/RkSdmmcDxe.inf | 1 + edk2-rockchip/Silicon/Rockchip/RockchipPkg.dec | 1 + 9 files changed, 18 insertions(+), 6 deletions(-) create mode 100755 edk2-rockchip-non-osi/Platform/Rockchip/DeviceTree/rk3588s-fydetab-duo.dtb diff --git a/README.md b/README.md index 7a555d46..31b9752b 100644 --- a/README.md +++ b/README.md @@ -148,6 +148,7 @@ The paths above are relative to the root of the file system. That is, the `dtb` | `rk3588s-orangepi-5` | Orange Pi 5 | | `rk3588-orangepi-5-plus` | Orange Pi 5 Plus | | `rk3588s-9tripod-linux` | Indiedroid Nova | +| `rk3588s-fydetab-duo` | Fydetab Duo | | `rk3588-firefly-aio-3588q` | Firefly AIO-3588Q | | `itx-3588j` | Firefly ITX-3588J | | `roc-rk3588s-pc` | ROC-RK3588S-PC / Station M3 | diff --git a/edk2-rockchip-non-osi/Platform/Rockchip/DeviceTree/README.md b/edk2-rockchip-non-osi/Platform/Rockchip/DeviceTree/README.md index cd1b1696..716d477b 100644 --- a/edk2-rockchip-non-osi/Platform/Rockchip/DeviceTree/README.md +++ b/edk2-rockchip-non-osi/Platform/Rockchip/DeviceTree/README.md @@ -13,5 +13,8 @@ * rk3588-rock-5b-plus: +* rk3588s-fydetab-duo: + (note: dtb taken from the `noble` branch which is based on the rockchip 6.1 rkr3 bsp kernel) + ## License SPDX-License-Identifier: GPL-2.0-only diff --git a/edk2-rockchip-non-osi/Platform/Rockchip/DeviceTree/rk3588s-fydetab-duo.dtb b/edk2-rockchip-non-osi/Platform/Rockchip/DeviceTree/rk3588s-fydetab-duo.dtb new file mode 100755 index 0000000000000000000000000000000000000000..213d3a0ad83a7cbb2766afed28deffdf7da81f16 GIT binary patch literal 251158 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 = (0xFFFFUL << 16) | (0x1111); //SDMMC_D0,SDMMC_D1,SDMMC_D2,SDMMC_D3 BUS_IOC->GPIO4D_IOMUX_SEL_H = (0x00FFUL << 16) | (0x0011); //SDMMC_CLK,SDMMC_CMD PMU1_IOC->GPIO0A_IOMUX_SEL_H = (0x000FUL << 16) | (0x0001); //SDMMC_DET + GpioPinSetDirection (4, GPIO_PIN_PB4, GPIO_PIN_OUTPUT); + GpioPinWrite (4, GPIO_PIN_PB4, TRUE); } VOID diff --git a/edk2-rockchip/Silicon/Rockchip/Drivers/RkSdmmcDxe/RkSdmmcDxe.c b/edk2-rockchip/Silicon/Rockchip/Drivers/RkSdmmcDxe/RkSdmmcDxe.c index a890fc32..cdef259b 100644 --- a/edk2-rockchip/Silicon/Rockchip/Drivers/RkSdmmcDxe/RkSdmmcDxe.c +++ b/edk2-rockchip/Silicon/Rockchip/Drivers/RkSdmmcDxe/RkSdmmcDxe.c @@ -128,7 +128,11 @@ RkSdmmcCardDetect ( return TRUE; // let the driver do software detection } - return PresenceState == RkSdmmcCardPresent; + if (FixedPcdGetBool (PcdRkSdmmcCardDetectInverted)) { + return PresenceState != RkSdmmcCardPresent; + } else { + return PresenceState == RkSdmmcCardPresent; + } } STATIC PLATFORM_DW_MMC_PROTOCOL mDwMmcDeviceProtocol = { diff --git a/edk2-rockchip/Silicon/Rockchip/Drivers/RkSdmmcDxe/RkSdmmcDxe.inf b/edk2-rockchip/Silicon/Rockchip/Drivers/RkSdmmcDxe/RkSdmmcDxe.inf index 61433031..f4b6c6c7 100644 --- a/edk2-rockchip/Silicon/Rockchip/Drivers/RkSdmmcDxe/RkSdmmcDxe.inf +++ b/edk2-rockchip/Silicon/Rockchip/Drivers/RkSdmmcDxe/RkSdmmcDxe.inf @@ -44,6 +44,7 @@ [Pcd] gRockchipTokenSpaceGuid.PcdRkSdmmcBaseAddress gRockchipTokenSpaceGuid.PcdRkSdmmcCardDetectBroken + gRockchipTokenSpaceGuid.PcdRkSdmmcCardDetectInverted [Depex] TRUE diff --git a/edk2-rockchip/Silicon/Rockchip/RockchipPkg.dec b/edk2-rockchip/Silicon/Rockchip/RockchipPkg.dec index 440d6ae1..c291298b 100644 --- a/edk2-rockchip/Silicon/Rockchip/RockchipPkg.dec +++ b/edk2-rockchip/Silicon/Rockchip/RockchipPkg.dec @@ -63,6 +63,7 @@ gRockchipTokenSpaceGuid.PcdRkSdmmcBaseAddress|0x0|UINT32|0x40000030 gRockchipTokenSpaceGuid.PcdRkSdmmcCardDetectBroken|FALSE|BOOLEAN|0x40000031 + gRockchipTokenSpaceGuid.PcdRkSdmmcCardDetectInverted|FALSE|BOOLEAN|0x40000032 gRockchipTokenSpaceGuid.PcdDwcSdhciBaseAddress|0x0|UINT32|0x40000035 gRockchipTokenSpaceGuid.PcdDwcSdhciForceHighSpeed|FALSE|BOOLEAN|0x40000036