:p
atchew
Login
From: caiyuqing379 <202235273@mail.sdu.edu.cn> Description: Deploy EDK2 to run on 64-core CPU under RISC-V architecture, and successfully boot to OS. Implementation can be found on https://github.com/AII-SDU/edk2-platforms/tree/devel-Sophgo/SG2042Pkg/Platform/Sophgo. Current progress and status: 1.Adopted the scheme of separating OpenSBI and EDK2. It follows PEI less design. 2.The startup process is roughly: ZSBL + FSBL + OpenSBI + EDK2 + GRUB + Linux OS. The boot medium is SD card, where ZSBL is loaded and executed by an auxiliary MCU, performing initial initialization operations such as DIMM initialization. FSBL then continues with further initialization tasks. OpenSBI is used to initialize the hardware platform and kernel. Additionally, we have upgraded the OpenSBI from version V0.9 to V1.2 to align with community progress. EDK2, running in S-mode, handles configuration operations, primarily completing the SD card driver in the DXE stage, while PCIe driver testing and follow-up work are planned. GRUB2 is used to load the operating system, facilitating subsequent operations. Testing: 1.Test the project on Sophgo SG2042 EVB and be able to launch Linux OS 2.Test the project on Milk V Pioneer board and is able to boot into the UEFI shell. However, the SD card driver could not correctly recognize all partitions and start Linux OS. Current limitation: 1.PCIE driver is not currently supported. 2.MMU support SG2042 (Xuantie C920) MMU can be enabled in SV39 mode. Introduce the PCD variable PcdForceNoMMU to disable MMU configuration. Currently, enabling MMU results in a timeout for reading data blocks from the SD card, So MMU is disabled by default. 3.Clang toolchain support Build the port using the CLANGDWARF toolchain (clang version 18.0.0). It is able to build successfully but the compiled binary was not fully work. Signed-off-by: caiyuqing379 <202235273@mail.sdu.edu.cn> Co-authored-by: USER0FISH <libing1202@outlook.com> Cc: dahogn <dahogn@hotmail.com> Cc: meng-cz <mengcz1126@gmail.com> Cc: yli147 <yong.li@intel.com> Cc: ChaiEvan <evan.chai@intel.com> Cc: Sunil V L <sunilvl@ventanamicro.com> Cc: Leif Lindholm <quic_llindhol@quicinc.com> caiyuqing379 (8): Sophgo/SG2042Pkg: Add SmbiosPlatformDxe module. Sophgo/SG2042Pkg: Add PlatformUpdateMmuDxe module. Sophgo/SG2042Pkg: Add Sophgo SDHCI driver. Sophgo/SG2042Pkg: Add base MMC driver. Sophgo/SG2042Pkg: Add SEC module. Sophgo/SG2042_EVB_Board: Add Sophgo SG2042 platform. Sophgo/SG2042Pkg: Add SG2042Pkg. Sophgo/SG2042Pkg: Add platform readme and document. Platform/Sophgo/SG2042_EVB_Board/SG2042.dec | 19 + Silicon/Sophgo/SG2042Pkg/SG2042Pkg.dec | 35 + Platform/Sophgo/SG2042_EVB_Board/SG2042.dsc | 548 +++++++++++ Platform/Sophgo/SG2042_EVB_Board/SG2042.fdf | 248 +++++ .../SG2042Pkg/Drivers/MmcDxe/MmcDxe.inf | 46 + .../PlatformUpdateMmuDxe.inf | 34 + .../SG2042Pkg/Drivers/SdHostDxe/SdHostDxe.inf | 47 + .../SmbiosPlatformDxe/SmbiosPlatformDxe.inf | 39 + Silicon/Sophgo/SG2042Pkg/Sec/SecMain.inf | 68 ++ Silicon/Sophgo/SG2042Pkg/Drivers/MmcDxe/Mmc.h | 513 ++++++++++ .../SG2042Pkg/Drivers/SdHostDxe/SdHci.h | 309 ++++++ Silicon/Sophgo/SG2042Pkg/Include/MmcHost.h | 225 +++++ Silicon/Sophgo/SG2042Pkg/Sec/SecMain.h | 104 ++ .../SG2042Pkg/Drivers/MmcDxe/ComponentName.c | 156 +++ .../SG2042Pkg/Drivers/MmcDxe/Diagnostics.c | 323 ++++++ Silicon/Sophgo/SG2042Pkg/Drivers/MmcDxe/Mmc.c | 527 ++++++++++ .../SG2042Pkg/Drivers/MmcDxe/MmcBlockIo.c | 643 ++++++++++++ .../SG2042Pkg/Drivers/MmcDxe/MmcDebug.c | 194 ++++ .../Drivers/MmcDxe/MmcIdentification.c | 719 ++++++++++++++ .../PlatformUpdateMmuDxe.c | 593 +++++++++++ .../SG2042Pkg/Drivers/SdHostDxe/SdHci.c | 929 ++++++++++++++++++ .../SG2042Pkg/Drivers/SdHostDxe/SdHostDxe.c | 450 +++++++++ .../SmbiosPlatformDxe/SmbiosPlatformDxe.c | 805 +++++++++++++++ Silicon/Sophgo/SG2042Pkg/Sec/Cpu.c | 29 + Silicon/Sophgo/SG2042Pkg/Sec/Memory.c | 347 +++++++ Silicon/Sophgo/SG2042Pkg/Sec/Platform.c | 130 +++ Silicon/Sophgo/SG2042Pkg/Sec/SecMain.c | 115 +++ Platform/Sophgo/About_Sophgo_platform.md | 39 + .../Documents/Media/EDK2_SDU_Programme.png | Bin 0 -> 59830 bytes .../Sophgo/Documents/Media/SG2042_CPU.png | Bin 0 -> 806062 bytes .../Documents/Media/Sophgo_SG2042_EVB.png | Bin 0 -> 1445528 bytes Platform/Sophgo/Maintainers.md | 107 ++ Platform/Sophgo/SG2042_EVB_Board/Readme.md | 100 ++ .../Sophgo/SG2042_EVB_Board/SG2042.fdf.inc | 62 ++ .../Sophgo/SG2042_EVB_Board/VarStore.fdf.inc | 77 ++ Silicon/Sophgo/SG2042Pkg/SG2042Pkg.uni | 13 + Silicon/Sophgo/SG2042Pkg/SG2042PkgExtra.uni | 12 + Silicon/Sophgo/SG2042Pkg/Sec/SecEntry.S | 18 + 38 files changed, 8623 insertions(+) create mode 100644 Platform/Sophgo/SG2042_EVB_Board/SG2042.dec create mode 100644 Silicon/Sophgo/SG2042Pkg/SG2042Pkg.dec create mode 100644 Platform/Sophgo/SG2042_EVB_Board/SG2042.dsc create mode 100644 Platform/Sophgo/SG2042_EVB_Board/SG2042.fdf create mode 100644 Silicon/Sophgo/SG2042Pkg/Drivers/MmcDxe/MmcDxe.inf create mode 100644 Silicon/Sophgo/SG2042Pkg/Drivers/PlatformUpdateMmuDxe/PlatformUpdateMmuDxe.inf create mode 100644 Silicon/Sophgo/SG2042Pkg/Drivers/SdHostDxe/SdHostDxe.inf create mode 100644 Silicon/Sophgo/SG2042Pkg/Drivers/SmbiosPlatformDxe/SmbiosPlatformDxe.inf create mode 100644 Silicon/Sophgo/SG2042Pkg/Sec/SecMain.inf create mode 100644 Silicon/Sophgo/SG2042Pkg/Drivers/MmcDxe/Mmc.h create mode 100644 Silicon/Sophgo/SG2042Pkg/Drivers/SdHostDxe/SdHci.h create mode 100644 Silicon/Sophgo/SG2042Pkg/Include/MmcHost.h create mode 100644 Silicon/Sophgo/SG2042Pkg/Sec/SecMain.h create mode 100644 Silicon/Sophgo/SG2042Pkg/Drivers/MmcDxe/ComponentName.c create mode 100644 Silicon/Sophgo/SG2042Pkg/Drivers/MmcDxe/Diagnostics.c create mode 100644 Silicon/Sophgo/SG2042Pkg/Drivers/MmcDxe/Mmc.c create mode 100644 Silicon/Sophgo/SG2042Pkg/Drivers/MmcDxe/MmcBlockIo.c create mode 100644 Silicon/Sophgo/SG2042Pkg/Drivers/MmcDxe/MmcDebug.c create mode 100644 Silicon/Sophgo/SG2042Pkg/Drivers/MmcDxe/MmcIdentification.c create mode 100644 Silicon/Sophgo/SG2042Pkg/Drivers/PlatformUpdateMmuDxe/PlatformUpdateMmuDxe.c create mode 100755 Silicon/Sophgo/SG2042Pkg/Drivers/SdHostDxe/SdHci.c create mode 100644 Silicon/Sophgo/SG2042Pkg/Drivers/SdHostDxe/SdHostDxe.c create mode 100644 Silicon/Sophgo/SG2042Pkg/Drivers/SmbiosPlatformDxe/SmbiosPlatformDxe.c create mode 100644 Silicon/Sophgo/SG2042Pkg/Sec/Cpu.c create mode 100644 Silicon/Sophgo/SG2042Pkg/Sec/Memory.c create mode 100644 Silicon/Sophgo/SG2042Pkg/Sec/Platform.c create mode 100644 Silicon/Sophgo/SG2042Pkg/Sec/SecMain.c create mode 100644 Platform/Sophgo/About_Sophgo_platform.md create mode 100644 Platform/Sophgo/Documents/Media/EDK2_SDU_Programme.png create mode 100644 Platform/Sophgo/Documents/Media/SG2042_CPU.png create mode 100644 Platform/Sophgo/Documents/Media/Sophgo_SG2042_EVB.png create mode 100644 Platform/Sophgo/Maintainers.md create mode 100644 Platform/Sophgo/SG2042_EVB_Board/Readme.md create mode 100644 Platform/Sophgo/SG2042_EVB_Board/SG2042.fdf.inc create mode 100644 Platform/Sophgo/SG2042_EVB_Board/VarStore.fdf.inc create mode 100644 Silicon/Sophgo/SG2042Pkg/SG2042Pkg.uni create mode 100644 Silicon/Sophgo/SG2042Pkg/SG2042PkgExtra.uni create mode 100644 Silicon/Sophgo/SG2042Pkg/Sec/SecEntry.S -- 2.34.1 -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#108376): https://edk2.groups.io/g/devel/message/108376 Mute This Topic: https://groups.io/mt/101213489/1787277 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org] -=-=-=-=-=-=-=-=-=-=-=-
From: caiyuqing379 <202235273@mail.sdu.edu.cn> This driver installs SMBIOS information for SG2042. Install hardware information by creating an SMBIOS table which includes BIOS version, system manufacturer, product name, processor, memory, slots, storage, and other. Signed-off-by: caiyuqing379 <202235273@mail.sdu.edu.cn> Co-authored-by: USER0FISH <libing1202@outlook.com> Cc: dahogn <dahogn@hotmail.com> Cc: meng-cz <mengcz1126@gmail.com> Cc: yli147 <yong.li@intel.com> Cc: ChaiEvan <evan.chai@intel.com> Cc: Sunil V L <sunilvl@ventanamicro.com> Cc: Leif Lindholm <quic_llindhol@quicinc.com> --- .../SmbiosPlatformDxe/SmbiosPlatformDxe.inf | 39 + .../SmbiosPlatformDxe/SmbiosPlatformDxe.c | 805 ++++++++++++++++++ 2 files changed, 844 insertions(+) create mode 100644 Silicon/Sophgo/SG2042Pkg/Drivers/SmbiosPlatformDxe/SmbiosPlatformDxe.inf create mode 100644 Silicon/Sophgo/SG2042Pkg/Drivers/SmbiosPlatformDxe/SmbiosPlatformDxe.c diff --git a/Silicon/Sophgo/SG2042Pkg/Drivers/SmbiosPlatformDxe/SmbiosPlatformDxe.inf b/Silicon/Sophgo/SG2042Pkg/Drivers/SmbiosPlatformDxe/SmbiosPlatformDxe.inf new file mode 100644 index XXXXXXX..XXXXXXX --- /dev/null +++ b/Silicon/Sophgo/SG2042Pkg/Drivers/SmbiosPlatformDxe/SmbiosPlatformDxe.inf @@ -XXX,XX +XXX,XX @@ +#/** @file +# SMBIOS Table for RISC-V Sophgo SG2042 platform +# +# Copyright (c) 2013, Linaro Ltd. All rights reserved.<BR> +# Copyright (c) 2023, Academy of Intelligent Innovation, Shandong Universiy, China.P.R. All rights reserved.<BR> +# +# SPDX-License-Identifier: BSD-2-Clause-Patent +# +#**/ + +[Defines] + INF_VERSION = 0x0001001B + BASE_NAME = SmbiosPlatformDxe + FILE_GUID = 1CAFAAC3-C386-BF0B-7DD1-7EEE514A91B1 + MODULE_TYPE = DXE_DRIVER + VERSION_STRING = 1.0 + ENTRY_POINT = SmbiosPlatformDriverEntryPoint + +[Sources] + SmbiosPlatformDxe.c + +[Packages] + MdeModulePkg/MdeModulePkg.dec + MdePkg/MdePkg.dec + +[LibraryClasses] + BaseLib + BaseMemoryLib + DebugLib + HobLib + PcdLib + UefiBootServicesTableLib + UefiDriverEntryPoint + +[Protocols] + gEfiSmbiosProtocolGuid # PROTOCOL ALWAYS_CONSUMED + +[Depex] + gEfiSmbiosProtocolGuid diff --git a/Silicon/Sophgo/SG2042Pkg/Drivers/SmbiosPlatformDxe/SmbiosPlatformDxe.c b/Silicon/Sophgo/SG2042Pkg/Drivers/SmbiosPlatformDxe/SmbiosPlatformDxe.c new file mode 100644 index XXXXXXX..XXXXXXX --- /dev/null +++ b/Silicon/Sophgo/SG2042Pkg/Drivers/SmbiosPlatformDxe/SmbiosPlatformDxe.c @@ -XXX,XX +XXX,XX @@ +/** @file + This driver installs SMBIOS information for Sophgo SG2042EVB platforms + + Copyright (c) 2015-2020, Arm Limited. All rights reserved.<BR> + Copyright (c) 2023, Academy of Intelligent Innovation, Shandong Universiy, China.P.R. All rights reserved.<BR> + + SPDX-License-Identifier: BSD-2-Clause-Patent + +**/ +#include <Library/BaseLib.h> +#include <Library/BaseMemoryLib.h> +#include <Library/DebugLib.h> +#include <Library/HobLib.h> +#include <Library/MemoryAllocationLib.h> +#include <Library/PcdLib.h> +#include <Library/UefiBootServicesTableLib.h> + +#include <Protocol/Smbios.h> + +#include <IndustryStandard/SmBios.h> + +// +// SMBIOS tables often reference each other using +// fixed constants, define a list of these constants +// for our hardcoded tables +// +enum SMBIOS_REFRENCE_HANDLES { + SMBIOS_HANDLE_L1I = 0x1000, + SMBIOS_HANDLE_L1D, + SMBIOS_HANDLE_L2, + SMBIOS_HANDLE_L3, + SMBIOS_HANDLE_MOTHERBOARD, + SMBIOS_HANDLE_CHASSIS, + SMBIOS_HANDLE_CLUSTER, + SMBIOS_HANDLE_MEMORY, + SMBIOS_HANDLE_DIMM +}; + +// +// Type definition and contents of the default SMBIOS table. +// This table covers only the minimum structures required by +// the SMBIOS specification (section 6.2, version 3.0) +// + +// BIOS information (section 7.1) +STATIC SMBIOS_TABLE_TYPE0 mSG2042EVBType0 = { + { // SMBIOS_STRUCTURE Hdr + EFI_SMBIOS_TYPE_BIOS_INFORMATION, // UINT8 Type + sizeof (SMBIOS_TABLE_TYPE0), // UINT8 Length + SMBIOS_HANDLE_PI_RESERVED, + }, + 1, // SMBIOS_TABLE_STRING Vendor + 2, // SMBIOS_TABLE_STRING BiosVersion + 0xE800, // UINT16 BiosSegment + 3, // SMBIOS_TABLE_STRING BiosReleaseDate + 0, // UINT8 BiosSize + { // BiosCharacteristics + 0, // Reserved :2 + 0, // Unknown :1 + 0, // BiosCharacteristicsNotSupported :1 + 0, // IsaIsSupported :1 + 0, // McaIsSupported :1 + 0, // EisaIsSupported :1 + 1, // PciIsSupported :1 + 0, // PcmciaIsSupported :1 + 0, // PlugAndPlayIsSupported :1 + 0, // ApmIsSupported :1 + 1, // BiosIsUpgradable :1 + 0, // BiosShadowingAllowed :1 + 0, // VlVesaIsSupported :1 + 0, // EscdSupportIsAvailable :1 + 1, // BootFromCdIsSupported :1 + 1, // SelectableBootIsSupported :1 + 0, // RomBiosIsSocketed :1 + 0, // BootFromPcmciaIsSupported :1 + 0, // EDDSpecificationIsSupported :1 + 0, // JapaneseNecFloppyIsSupported :1 + 0, // JapaneseToshibaFloppyIsSupported :1 + 0, // Floppy525_360IsSupported :1 + 0, // Floppy525_12IsSupported :1 + 0, // Floppy35_720IsSupported :1 + 0, // Floppy35_288IsSupported :1 + 0, // PrintScreenIsSupported :1 + 0, // Keyboard8042IsSupported :1 + 0, // SerialIsSupported :1 + 0, // PrinterIsSupported :1 + 0, // CgaMonoIsSupported :1 + 0, // NecPc98 :1 + 0 // ReservedForVendor :3 + }, + { + 0x3, // BIOSCharacteristicsExtensionBytes[0] + 0xC, // BIOSCharacteristicsExtensionBytes[1] + }, + 0xFF, // UINT8 SystemBiosMajorRelease + 0xFF, // UINT8 SystemBiosMinorRelease + 0xFF, // UINT8 EmbeddedControllerFirmwareMajorRelease + 0xFF, // UINT8 EmbeddedControllerFirmwareMinorRelease +}; + +STATIC CHAR8 CONST *mSG2042EVBType0Strings[] = { + "EFI Development Kit II / Sophgo\0", /* Vendor */ + "V1.0\0", /* BiosVersion */ + __DATE__"\0", /* BiosReleaseDate */ + NULL +}; + + +// System information (section 7.2) +STATIC SMBIOS_TABLE_TYPE1 mSG2042EVBType1 = { + { // SMBIOS_STRUCTURE Hdr + EFI_SMBIOS_TYPE_SYSTEM_INFORMATION, + sizeof (SMBIOS_TABLE_TYPE1), + SMBIOS_HANDLE_PI_RESERVED, + }, + 1, // Manufacturer + 2, // Product Name + 3, // Version + 4, // Serial + { 0x9987FD42, 0x907E, 0x5446, { 0x1D,0x7D,0x7D,0xA0,0x10,0x9F,0x60,0xA1 }}, //UUID + 6, //Wakeup type + 0, //SKU + 0, //Family +}; + +STATIC CHAR8 CONST *mSG2042EVBType1Strings[] = { + "SOPHGO\0", /* Manufacturer */ + "Sophgo SG2042 EVB Board\0", /* Product Name */ + "None\0", /* Version */ + "Not Set\0", /* Serial */ + NULL +}; + + +// Baseboard (section 7.3) +STATIC SMBIOS_TABLE_TYPE2 mSG2042EVBType2 = { + { // SMBIOS_STRUCTURE Hdr + EFI_SMBIOS_TYPE_BASEBOARD_INFORMATION, // UINT8 Type + sizeof (SMBIOS_TABLE_TYPE2), // UINT8 Length + SMBIOS_HANDLE_MOTHERBOARD, + }, + 1, // Manufacturer + 2, // Product Name + 3, // Version + 4, // Serial + 0, // Asset tag + {1}, // motherboard, not replaceable + 5, // location of board + SMBIOS_HANDLE_CHASSIS, + BaseBoardTypeMotherBoard, + 1, + {SMBIOS_HANDLE_CLUSTER}, +}; + +STATIC CHAR8 CONST *mSG2042EVBType2Strings[] = { + "SOPHGO\0", /* Manufacturer */ + "Sophgo SG2042 EVB Board\0", /* Product Name */ + "None\0", /* Version */ + "Not Set\0", /* Serial */ + "Not Set\0", /* BaseBoardAssetTag */ + "Not Set\0", /* BaseBoardChassisLocation */ + NULL +}; + + +// Enclosure +STATIC SMBIOS_TABLE_TYPE3 mSG2042EVBType3 = { + { // SMBIOS_STRUCTURE Hdr + EFI_SMBIOS_TYPE_SYSTEM_ENCLOSURE, // UINT8 Type + sizeof (SMBIOS_TABLE_TYPE3), // UINT8 Length + SMBIOS_HANDLE_CHASSIS, + }, + 1, // Manufacturer + 2, // enclosure type + 2, // version + 3, // serial + 0, // asset tag + ChassisStateUnknown, // boot chassis state + ChassisStateSafe, // power supply state + ChassisStateSafe, // thermal state + ChassisSecurityStatusNone, // security state + {0,0,0,0,}, // OEM defined + 1, // 1U height + 1, // number of power cords + 0, // no contained elements +}; + +STATIC CHAR8 CONST *mSG2042EVBType3Strings[] = { + "SOPHGO\0", /* Manufacturer */ + "None\0", /* Version */ + "Not Set\0", /* Serial */ + "Not Set\0", /* AssetTag */ + NULL +}; + + +// Processor +STATIC SMBIOS_TABLE_TYPE4 mSG2042EVBType4 = { + { // SMBIOS_STRUCTURE Hdr + EFI_SMBIOS_TYPE_PROCESSOR_INFORMATION, // UINT8 Type + sizeof (SMBIOS_TABLE_TYPE4), // UINT8 Length + SMBIOS_HANDLE_CLUSTER, + }, + 1, // socket type + 3, // processor type CPU + ProcessorFamilyIndicatorFamily2, // processor family, acquire from field2 + 2, // manufactuer + {{0,},{0.}}, // processor id + 3, // version + {0,0,0,0,0,1}, // voltage + 0, // external clock + 2200, // max speed + 0, // current speed - requires update + 0x41, // status + ProcessorUpgradeOther, + SMBIOS_HANDLE_L1I, // l1 cache handle + SMBIOS_HANDLE_L2, // l2 cache handle + SMBIOS_HANDLE_L3, // l3 cache handle + 0, // serial not set + 0, // asset not set + 4, // part number + 64, // core count in socket + 64, // enabled core count in socket + 64, // threads per socket + 0xEC, // processor characteristics + ProcessorFamilyRiscVRV64, // RISC-V core + 0, // CoreCount2; + 0, // EnabledCoreCount2; + 0, // ThreadCount2; +}; + +STATIC CHAR8 CONST *mSG2042EVBType4Strings[] = { + "Socket type unknown\0", /* Socket type placeholder */ + "SOPHGO\0", /* manufactuer */ + "SG2042\0", /* processor description */ + "Not Set\0", /* SerialNumber */ + NULL +}; + +// Cache +STATIC SMBIOS_TABLE_TYPE7 mSG2042EVBType7_l1i = { + { // SMBIOS_STRUCTURE Hdr + EFI_SMBIOS_TYPE_CACHE_INFORMATION, // UINT8 Type + sizeof (SMBIOS_TABLE_TYPE7), // UINT8 Length + SMBIOS_HANDLE_L1I, + }, + 1, + 0x380, // L1 enabled, unknown WB + 48, // 48k I-cache max + 48, // 48k installed + {0,1}, // SRAM type + {0,1}, // SRAM type + 0, // speed unknown + CacheErrorParity, // parity checking + CacheTypeInstruction, // instruction cache + CacheAssociativityOther, // three way + // SMBIOS 3.1.0 fields + 48, //48k I-cache max + 48, //48k installed +}; + +STATIC SMBIOS_TABLE_TYPE7 mSG2042EVBType7_l1d = { + { // SMBIOS_STRUCTURE Hdr + EFI_SMBIOS_TYPE_CACHE_INFORMATION, // UINT8 Type + sizeof (SMBIOS_TABLE_TYPE7), // UINT8 Length + SMBIOS_HANDLE_L1D, + }, + 2, + 0x380, // L1 enabled, unknown WB + 32, // 32k D-cache max + 32, // 32k installed + {0,1}, // SRAM type + {0,1}, // SRAM type + 0, // speed unknown + CacheErrorSingleBit, // ECC checking + CacheTypeData, // data cache + CacheAssociativity2Way, // two way + // SMBIOS 3.1.0 fields + 32, // 32k D-cache max + 32, // 32k installed +}; + +STATIC SMBIOS_TABLE_TYPE7 mSG2042EVBType7_l2 = { + { // SMBIOS_STRUCTURE Hdr + EFI_SMBIOS_TYPE_CACHE_INFORMATION, // UINT8 Type + sizeof (SMBIOS_TABLE_TYPE7), // UINT8 Length + SMBIOS_HANDLE_L2, + }, + 3, + 0x181, // L2 enabled, WB + 512, // 512k D-cache max + 512, // 512k installed + {0,1}, // SRAM type + {0,1}, // SRAM type + 0, // speed unknown + CacheErrorSingleBit, // ECC checking + CacheTypeUnified, // instruction cache + CacheAssociativity16Way, // 16 way associative + // SMBIOS 3.1.0 fields + 512, // 512k D-cache max + 512, // 512k installed +}; + +STATIC SMBIOS_TABLE_TYPE7 mSG2042EVBType7_l3 = { + { // SMBIOS_STRUCTURE Hdr + EFI_SMBIOS_TYPE_CACHE_INFORMATION, // UINT8 Type + sizeof (SMBIOS_TABLE_TYPE7), // UINT8 Length + SMBIOS_HANDLE_L3, + }, + 4, + 0x182, // L3 enabled, WB + 1024, // 1M cache max + 1024, // 1M installed + {0,1}, // SRAM type + {0,1}, // SRAM type + 0, // speed unknown + CacheErrorSingleBit, // ECC checking + CacheTypeUnified, // instruction cache + CacheAssociativity8Way, // 8 way associative + // SMBIOS 3.1.0 fields + 1024, // 1M cache max + 1024, // 1M installed +}; + +STATIC CONST CHAR8 *mSG2042EVBType7Strings[] = { + "L1 Instruction\0", /* L1I */ + "L1 Data\0", /* L1D */ + "L2\0", /* L2 */ + "L3\0", /* L3 */ + NULL +}; + +// Slots +STATIC SMBIOS_TABLE_TYPE9 mSG2042EVBType9_0 = { + { // SMBIOS_STRUCTURE Hdr + EFI_SMBIOS_TYPE_INACTIVE, // UINT8 Type + sizeof (SMBIOS_TABLE_TYPE9), // UINT8 Length + SMBIOS_HANDLE_PI_RESERVED, + }, + 1, + SlotTypePciExpressX16, + SlotDataBusWidth16X, + SlotUsageUnknown, + SlotLengthLong, + 0, + {1}, // Unknown + {1,0,1}, // PME and SMBUS + 0, + 0, + 1, +}; + +STATIC SMBIOS_TABLE_TYPE9 mSG2042EVBType9_1 = { + { // SMBIOS_STRUCTURE Hdr + EFI_SMBIOS_TYPE_INACTIVE, // UINT8 Type + sizeof (SMBIOS_TABLE_TYPE9), // UINT8 Length + SMBIOS_HANDLE_PI_RESERVED, + }, + 2, + SlotTypePciExpressGen2X8, + SlotDataBusWidth8X, + SlotUsageUnknown, + SlotLengthLong, + 0, + {1}, + {1,0,1}, // PME and SMBUS + 0, + 0, + 2, +}; + +STATIC SMBIOS_TABLE_TYPE9 mSG2042EVBType9_2 = { + { // SMBIOS_STRUCTURE Hdr + EFI_SMBIOS_TYPE_INACTIVE, // UINT8 Type + sizeof (SMBIOS_TABLE_TYPE9), // UINT8 Length + SMBIOS_HANDLE_PI_RESERVED, + }, + 3, + SlotTypePciExpressGen2X8, + SlotDataBusWidth8X, + SlotUsageUnknown, + SlotLengthLong, + 0, + {1}, + {1,0,1}, // PME and SMBUS + 0, + 0, + 3, +}; + +STATIC CHAR8 CONST *mSG2042EVBType9Strings[] = { + "PCIE0 ExpressX16 \0",/* Slot0 */ + "PCIE1 ExpressGen2X8 \0",/* Slot1 */ + "PCIE1 ExpressGen2X8 \0",/* Slot2 */ + NULL +}; + +// Memory array +STATIC SMBIOS_TABLE_TYPE16 mSG2042EVBType16 = { + { // SMBIOS_STRUCTURE Hdr + EFI_SMBIOS_TYPE_PHYSICAL_MEMORY_ARRAY, // UINT8 Type + sizeof (SMBIOS_TABLE_TYPE16), // UINT8 Length + SMBIOS_HANDLE_MEMORY, + }, + MemoryArrayLocationSystemBoard, // on motherboard + MemoryArrayUseSystemMemory, // system RAM + MemoryErrorCorrectionNone, // ECC RAM + 0x1000000, // 16GB + 0xFFFE, // No error information structure + 0x1, // soldered memory +}; + +STATIC CHAR8 CONST *mSG2042EVBType16Strings[] = { + NULL +}; + +// Memory device +STATIC SMBIOS_TABLE_TYPE17 mSG2042EVBType17 = { + { // SMBIOS_STRUCTURE Hdr + EFI_SMBIOS_TYPE_MEMORY_DEVICE, // UINT8 Type + sizeof (SMBIOS_TABLE_TYPE17), // UINT8 Length + SMBIOS_HANDLE_DIMM, + }, + SMBIOS_HANDLE_MEMORY, // array to which this module belongs + 0xFFFE, // no errors + 64, // single DIMM, no ECC is 64bits (for ecc this would be 72) + 32, // data width of this device (32-bits) + 0, // Memory size obtained dynamically + MemoryFormFactorRowOfChips, // Memory factor + 0, // Not part of a set + 1, // Location + 2, // Bank 0 + MemoryTypeDdr4, // DDR4 + {0,0,0,0,0,0,0,0,0,0,0,0,0,0,1}, // unbuffered + 0, // DRAM speed - requires update + 0, // varies between diffrent production runs + 0, // serial + 0, // asset tag + 0, // part number + 0, // rank + 0, // ExtendedSize; (since Size < 32GB-1) + 0, // ConfiguredMemoryClockSpeed - initialized at runtime + 0, // MinimumVoltage; (unknown) + 0, // MaximumVoltage; (unknown) + 0, // ConfiguredVoltage; (unknown) + MemoryTechnologyDram, // MemoryTechnology + {{ // MemoryOperatingModeCapability + 0, // Reserved :1; + 0, // Other :1; + 0, // Unknown :1; + 1, // VolatileMemory :1; + 0, // ByteAccessiblePersistentMemory :1; + 0, // BlockAccessiblePersistentMemory :1; + 0 // Reserved :10; + }}, + 0, // FirwareVersion + 0, // ModuleManufacturerID (unknown) + 0, // ModuleProductID (unknown) + 0, // MemorySubsystemControllerManufacturerID (unknown) + 0, // MemorySubsystemControllerProductID (unknown) + 0, // NonVolatileSize + 0, // VolatileSize - initialized at runtime + 0, // CacheSize + 0, // LogicalSize + 0, // ExtendedSpeed, + 0 // ExtendedConfiguredMemorySpeed +}; + +STATIC CHAR8 CONST *mSG2042EVBType17Strings[] = { + "DIMM SLOT\0", /* location */ + "BANK 0\0", /* bank description */ + NULL +}; + +// +// Memory array mapped address, this structure +// is overridden by SmbiosInstallMemoryStructure. +// +STATIC SMBIOS_TABLE_TYPE19 mSG2042EVBType19 = { + { // SMBIOS_STRUCTURE Hdr + EFI_SMBIOS_TYPE_MEMORY_ARRAY_MAPPED_ADDRESS, // UINT8 Type + sizeof (SMBIOS_TABLE_TYPE19), // UINT8 Length + SMBIOS_HANDLE_PI_RESERVED, + }, + 0xFFFFFFFF, // invalid, look at extended addr field + 0xFFFFFFFF, + SMBIOS_HANDLE_DIMM, // handle + 1, + 0x080000000, // starting addr of first 2GB + 0x100000000, // ending addr of first 2GB +}; + +// System boot infomSG2042EVBType4. +STATIC SMBIOS_TABLE_TYPE32 mSG2042EVBType32 = { + { // SMBIOS_STRUCTURE Hdr + EFI_SMBIOS_TYPE_SYSTEM_BOOT_INFORMATION, // UINT8 Type + sizeof (SMBIOS_TABLE_TYPE32), // UINT8 Length + SMBIOS_HANDLE_PI_RESERVED, + }, + {0, 0, 0, 0, 0, 0}, // reserved + BootInformationStatusNoError, +}; + +STATIC CHAR8 CONST *mSG2042EVBType32Strings[] = { + NULL +}; + +STATIC CONST VOID *DefaultCommonTables[][2] = +{ + { &mSG2042EVBType0, mSG2042EVBType0Strings }, + { &mSG2042EVBType1, mSG2042EVBType1Strings }, + { &mSG2042EVBType2, mSG2042EVBType2Strings }, + { &mSG2042EVBType3, mSG2042EVBType3Strings }, + { &mSG2042EVBType4, mSG2042EVBType4Strings }, + { &mSG2042EVBType7_l1i, mSG2042EVBType7Strings }, + { &mSG2042EVBType7_l1d, mSG2042EVBType7Strings }, + { &mSG2042EVBType7_l2, mSG2042EVBType7Strings }, + { &mSG2042EVBType7_l3, mSG2042EVBType7Strings }, + { &mSG2042EVBType9_0, mSG2042EVBType9Strings }, + { &mSG2042EVBType9_1, mSG2042EVBType9Strings }, + { &mSG2042EVBType9_2, mSG2042EVBType9Strings }, + { &mSG2042EVBType16, mSG2042EVBType16Strings }, + { &mSG2042EVBType17, mSG2042EVBType17Strings }, + { &mSG2042EVBType32, mSG2042EVBType32Strings }, + { NULL, NULL }, +}; + +/** + + Create SMBIOS record. + + Converts a fixed SMBIOS structure and an array of pointers to strings into + an SMBIOS record where the strings are cat'ed on the end of the fixed record + and terminated via a double NULL and add to SMBIOS table. + + SMBIOS_TABLE_TYPE32 gSmbiosType12 = { + { EFI_SMBIOS_TYPE_SYSTEM_CONFIGURATION_OPTIONS, sizeof (SMBIOS_TABLE_TYPE12), 0 }, + 1 // StringCount + }; + + CHAR8 *gSmbiosType12Strings[] = { + "Not Found", + NULL + }; + + ... + + LogSmbiosData ( + (EFI_SMBIOS_TABLE_HEADER*)&gSmbiosType12, + gSmbiosType12Strings + ); + + @param Smbios SMBIOS protocol + @param Template Fixed SMBIOS structure, required. + @param StringArray Array of strings to convert to an SMBIOS string pack. + NULL is OK. +**/ +STATIC +EFI_STATUS +EFIAPI +LogSmbiosData ( + IN EFI_SMBIOS_PROTOCOL *Smbios, + IN EFI_SMBIOS_TABLE_HEADER *Template, + IN CONST CHAR8 * CONST *StringArray + ) +{ + EFI_STATUS Status; + EFI_SMBIOS_TABLE_HEADER *Record; + UINTN Index; + UINTN StringSize; + UINTN Size; + CHAR8 *Str; + + + // Calculate the size of the fixed record and optional string pack + Size = Template->Length; + if (StringArray == NULL) { + // At least a double null is required + Size += 1; + } else { + for (Index = 0; StringArray[Index] != NULL; Index++) { + StringSize = AsciiStrSize (StringArray[Index]); + Size += StringSize; + } + if (StringArray[0] == NULL) { + // At least a double null is required + Size += 1; + } + + // Don't forget the terminating double null + Size += 1; + } + + // Copy over Template + Record = (EFI_SMBIOS_TABLE_HEADER *)AllocateZeroPool (Size); + if (Record == NULL) { + return EFI_OUT_OF_RESOURCES; + } + CopyMem (Record, Template, Template->Length); + + // Append string pack + Str = (CHAR8*)((UINTN)Record + Record->Length); + for (Index = 0; StringArray[Index] != NULL; Index++) { + StringSize = AsciiStrSize (StringArray[Index]); + CopyMem (Str, StringArray[Index], StringSize); + Str += StringSize; + } + *Str = 0; + + Status = Smbios->Add (Smbios, + NULL, + &Record->Handle, + Record); + ASSERT_EFI_ERROR (Status); + + FreePool (Record); + + return Status; +} + +/** + Installs a memory descriptor (type19) for the given address range + + @param Smbios SMBIOS protocol. + @param StartingAddress Start address of the memory chunk. + @param RegionLength Memory chunk size. + +**/ +EFI_STATUS +SmbiosInstallMemoryStructure ( + IN EFI_SMBIOS_PROTOCOL *Smbios, + IN UINT64 StartingAddress, + IN UINT64 RegionLength + ) +{ + EFI_SMBIOS_HANDLE SmbiosHandle; + SMBIOS_TABLE_TYPE19 MemoryDescriptor; + EFI_STATUS Status; + + Status = EFI_SUCCESS; + + CopyMem (&MemoryDescriptor, + &mSG2042EVBType19, + sizeof (SMBIOS_TABLE_TYPE19)); + + MemoryDescriptor.ExtendedStartingAddress = StartingAddress; + MemoryDescriptor.ExtendedEndingAddress = StartingAddress + RegionLength; + SmbiosHandle = MemoryDescriptor.Hdr.Handle; + + Status = Smbios->Add (Smbios, + NULL, + &SmbiosHandle, + (EFI_SMBIOS_TABLE_HEADER*) &MemoryDescriptor); + + return Status; +} + +/** + Install a whole table worth of structructures + + @param Smbios SMBIOS protocol. + @param DefaultTables A pointer to the default SMBIOS table structure. + +**/ +EFI_STATUS +SmbiosInstallStructures ( + IN EFI_SMBIOS_PROTOCOL *Smbios, + IN CONST VOID *DefaultTables[][2] + ) +{ + EFI_STATUS Status; + INTN TableEntry; + + Status = EFI_SUCCESS; + + for (TableEntry = 0; DefaultTables[TableEntry][0] != NULL; TableEntry++) { + // Omit disabled tables + if (((EFI_SMBIOS_TABLE_HEADER *)DefaultTables[TableEntry][0])->Type == + EFI_SMBIOS_TYPE_INACTIVE) { + continue; + } + + Status = LogSmbiosData (Smbios, + ((EFI_SMBIOS_TABLE_HEADER *)DefaultTables[TableEntry][0]), + DefaultTables[TableEntry][1]); + if (EFI_ERROR (Status)) + break; + } + + return Status; +} + +/** + Update memory information basing on the HOB list. + + @param Smbios SMBIOS protocol + +**/ +STATIC +EFI_STATUS +SmbiosMemoryInstall ( + IN EFI_SMBIOS_PROTOCOL *Smbios + ) +{ + EFI_PEI_HOB_POINTERS Hob; + UINT64 MemorySize; + EFI_STATUS Status; + + MemorySize = 0; + + // + // Get the HOB list for processing + // + Hob.Raw = GetHobList (); + + // + // Collect memory ranges + // + while (!END_OF_HOB_LIST (Hob)) { + if (Hob.Header->HobType == EFI_HOB_TYPE_RESOURCE_DESCRIPTOR) { + if (Hob.ResourceDescriptor->ResourceType == EFI_RESOURCE_SYSTEM_MEMORY) { + MemorySize += (UINT64)(Hob.ResourceDescriptor->ResourceLength); + + Status = SmbiosInstallMemoryStructure (Smbios, + Hob.ResourceDescriptor->PhysicalStart, + Hob.ResourceDescriptor->ResourceLength); + if (EFI_ERROR(Status)) { + return Status; + } + } + } + Hob.Raw = GET_NEXT_HOB (Hob); + } + + // + // Update TYPE17 memory size fields + // + mSG2042EVBType17.Size = (UINT16)(MemorySize >> 20); + mSG2042EVBType17.VolatileSize = MemorySize; + + return EFI_SUCCESS; +} + +/** + Install all structures from the DefaultTables structure + + @param Smbios SMBIOS protocol + +**/ +EFI_STATUS +SmbiosInstallAllStructures ( + IN EFI_SMBIOS_PROTOCOL *Smbios + ) +{ + EFI_STATUS Status; + + // + // Generate memory descriptors. + // + Status = SmbiosMemoryInstall (Smbios); + ASSERT_EFI_ERROR (Status); + + // + // Install all tables. + // + Status = SmbiosInstallStructures (Smbios, DefaultCommonTables); + ASSERT_EFI_ERROR (Status); + + return EFI_SUCCESS; +} + +/** + Installs SMBIOS information for SG2042EVB platforms + + @param ImageHandle Module's image handle + @param SystemTable Pointer of EFI_SYSTEM_TABLE + + @retval EFI_SUCCESS Smbios data successfully installed + @retval Other Smbios data was not installed + +**/ +EFI_STATUS +EFIAPI +SmbiosPlatformDriverEntryPoint ( + IN EFI_HANDLE ImageHandle, + IN EFI_SYSTEM_TABLE *SystemTable + ) +{ + EFI_STATUS Status; + EFI_SMBIOS_PROTOCOL *Smbios; + + // + // Find the SMBIOS protocol + // + Status = gBS->LocateProtocol (&gEfiSmbiosProtocolGuid, + NULL, + (VOID **)&Smbios); + if (EFI_ERROR (Status)) { + return Status; + } + + Status = SmbiosInstallAllStructures (Smbios); + + return Status; +} -- 2.34.1 -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#108380): https://edk2.groups.io/g/devel/message/108380 Mute This Topic: https://groups.io/mt/101213493/1787277 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org] -=-=-=-=-=-=-=-=-=-=-=-
From: caiyuqing379 <202235273@mail.sdu.edu.cn> SG2042 (Xuantie C920) MMU can be enabled in SV39 mode. C920 has five customizable page properties that control whether the page is Strong order(SO), Cacheable(C), Bufferable(B), Shareable(SH), Trustable(Sec). This driver modifies the page table attributes to avoid exceptions based on the memory attributes of the C920. Introduces a PCD variable PcdForceNoMMU to disable MMU configuration. Currently, enabling MMU results in a timeout for reading data blocks from the SD card. Signed-off-by: caiyuqing379 <202235273@mail.sdu.edu.cn> Co-authored-by: USER0FISH <libing1202@outlook.com> Cc: dahogn <dahogn@hotmail.com> Cc: meng-cz <mengcz1126@gmail.com> Cc: yli147 <yong.li@intel.com> Cc: ChaiEvan <evan.chai@intel.com> Cc: Sunil V L <sunilvl@ventanamicro.com> Cc: Leif Lindholm <quic_llindhol@quicinc.com> --- .../PlatformUpdateMmuDxe.inf | 34 + .../PlatformUpdateMmuDxe.c | 593 ++++++++++++++++++ 2 files changed, 627 insertions(+) create mode 100644 Silicon/Sophgo/SG2042Pkg/Drivers/PlatformUpdateMmuDxe/PlatformUpdateMmuDxe.inf create mode 100644 Silicon/Sophgo/SG2042Pkg/Drivers/PlatformUpdateMmuDxe/PlatformUpdateMmuDxe.c diff --git a/Silicon/Sophgo/SG2042Pkg/Drivers/PlatformUpdateMmuDxe/PlatformUpdateMmuDxe.inf b/Silicon/Sophgo/SG2042Pkg/Drivers/PlatformUpdateMmuDxe/PlatformUpdateMmuDxe.inf new file mode 100644 index XXXXXXX..XXXXXXX --- /dev/null +++ b/Silicon/Sophgo/SG2042Pkg/Drivers/PlatformUpdateMmuDxe/PlatformUpdateMmuDxe.inf @@ -XXX,XX +XXX,XX @@ +## @file +# This driver modifies the page table attribute based on the memory attribute of the C920. +# +# Copyright (c) 2023, Academy of Intelligent Innovation, Shandong Universiy, China.P.R. All rights reserved.<BR> +# +# SPDX-License-Identifier: BSD-2-Clause-Patent +# +## + +[Defines] + INF_VERSION = 0x0001001b + BASE_NAME = PlatformUpdateMmuDxe + FILE_GUID = 9d1dd27f-6d7f-427b-aec4-b62f6279c2f1 + MODULE_TYPE = UEFI_DRIVER + VERSION_STRING = 1.0 + ENTRY_POINT = PlatformUpdateMmu + +[Sources] + PlatformUpdateMmuDxe.c + +[Packages] + MdePkg/MdePkg.dec + UefiCpuPkg/UefiCpuPkg.dec + Silicon/Sophgo/SG2042Pkg/SG2042Pkg.dec + +[LibraryClasses] + BaseLib + UefiLib + UefiDriverEntryPoint + RiscVMmuLib + DxeServicesTableLib + +[FixedPcd] + gSophgoSG2042PlatformPkgTokenSpaceGuid.PcdForceNoMMU ## CONSUMES diff --git a/Silicon/Sophgo/SG2042Pkg/Drivers/PlatformUpdateMmuDxe/PlatformUpdateMmuDxe.c b/Silicon/Sophgo/SG2042Pkg/Drivers/PlatformUpdateMmuDxe/PlatformUpdateMmuDxe.c new file mode 100644 index XXXXXXX..XXXXXXX --- /dev/null +++ b/Silicon/Sophgo/SG2042Pkg/Drivers/PlatformUpdateMmuDxe/PlatformUpdateMmuDxe.c @@ -XXX,XX +XXX,XX @@ +/** @file + This driver modifies the page table attribute based on the memory attribute of the C920. + C920 has five customizable page properties that control whether the page is Strong order, + Cacheable, Bufferable, Shareable,Trustable. + + Copyright (c) 2011-2020, ARM Limited. All rights reserved. + Copyright (c) 2016, Linaro Limited. All rights reserved. + Copyright (c) 2017, Intel Corporation. All rights reserved.<BR> + Copyright (c) 2023, Ventana Micro Systems Inc. All Rights Reserved.<BR> + Copyright (c) 2023, Academy of Intelligent Innovation, Shandong Universiy, China.P.R. All rights reserved.<BR> + + SPDX-License-Identifier: BSD-2-Clause-Patent + +**/ + +#include <PiDxe.h> +#include <Uefi.h> +#include <Library/BaseLib.h> +#include <Library/BaseMemoryLib.h> +#include <Library/BaseRiscVMmuLib.h> +#include <Library/CacheMaintenanceLib.h> +#include <Library/DebugLib.h> +#include <Library/DxeServicesTableLib.h> +#include <Library/UefiBootServicesTableLib.h> +#include <Library/MemoryAllocationLib.h> +#include <Library/PcdLib.h> +#include <Register/RiscV64/RiscVEncoding.h> + +#define RISCV_PG_V BIT0 +#define RISCV_PG_R BIT1 +#define RISCV_PG_W BIT2 +#define RISCV_PG_X BIT3 +#define RISCV_PG_G BIT5 +#define RISCV_PG_A BIT6 +#define RISCV_PG_D BIT7 +#define RISCV_PG_SH BIT60 +#define RISCV_PG_B BIT61 +#define RISCV_PG_C BIT62 +#define RISCV_PG_SO BIT63 +#define PTE_ATTRIBUTES_MASK 0xE + +#define PTE_PPN_MASK 0x3FFFFFFFFFFC00ULL +#define PTE_PPN_SHIFT 10 +#define RISCV_MMU_PAGE_SHIFT 12 + +STATIC UINTN mMaxRootTableLevel; +STATIC UINTN mBitPerLevel; +STATIC UINTN mTableEntryCount; + +/** + Determine if the MMU enabled or not. + + @retval TRUE The MMU already enabled. + @retval FALSE The MMU not enabled. + +**/ +STATIC +VOID +RiscVMmuDisabled ( + VOID + ) +{ + RiscVSetSupervisorAddressTranslationRegister (SATP_MODE_OFF << SATP64_MODE_SHIFT); +} + +/** + Determine if the MMU enabled or not. + + @retval TRUE The MMU already enabled. + @retval FALSE The MMU not enabled. + +**/ +STATIC +BOOLEAN +RiscVMmuEnabled ( + VOID + ) +{ + return ((RiscVGetSupervisorAddressTranslationRegister () & + SATP64_MODE) != (SATP_MODE_OFF << SATP64_MODE_SHIFT)); +} + +/** + Retrieve the root translate table. + + @return The root translate table. + +**/ +STATIC +UINTN +RiscVGetRootTranslateTable ( + VOID + ) +{ + return (RiscVGetSupervisorAddressTranslationRegister () & SATP64_PPN) << + RISCV_MMU_PAGE_SHIFT; +} + +/** + Determine if an entry is valid pte. + + @param Entry The entry value. + + @retval TRUE The entry is a valid pte. + @retval FALSE The entry is not a valid pte. + +**/ +STATIC +BOOLEAN +IsValidPte ( + IN UINTN Entry + ) +{ + if (((Entry & RISCV_PG_V) == 0) || + (((Entry & (RISCV_PG_R | RISCV_PG_W)) == RISCV_PG_W))) + { + return FALSE; + } + + return TRUE; +} + +/** + Set an entry to be a valid pte. + + @param Entry The entry value. + + @return The entry value. + +**/ +STATIC +UINTN +SetValidPte ( + IN UINTN Entry + ) +{ + /* Set Valid and Global mapping bits */ + return Entry | RISCV_PG_G | RISCV_PG_V; +} + +/** + Determine if an entry is a block pte. + + @param Entry The entry value. + + @retval TRUE The entry is a block pte. + @retval FALSE The entry is not a block pte. + +**/ +STATIC +BOOLEAN +IsBlockEntry ( + IN UINTN Entry + ) +{ + return IsValidPte (Entry) && + (Entry & (RISCV_PG_X | RISCV_PG_R)); +} + +/** + Determine if an entry is a table pte. + + @param Entry The entry value. + + @retval TRUE The entry is a table pte. + @retval FALSE The entry is not a table pte. + +**/ +STATIC +BOOLEAN +IsTableEntry ( + IN UINTN Entry + ) +{ + return IsValidPte (Entry) && + !IsBlockEntry (Entry); +} + +/** + Set an entry to be a table pte. + + @param Entry The entry value. + + @return The entry value. + +**/ +STATIC +UINTN +SetTableEntry ( + IN UINTN Entry + ) +{ + Entry = SetValidPte (Entry); + Entry &= ~(RISCV_PG_X | RISCV_PG_W | RISCV_PG_R); + + return Entry; +} + +/** + Replace an existing entry with new value. + + @param Entry The entry pointer. + @param Value The new entry value. + @param RegionStart The start of region that new value affects. + @param IsLiveBlockMapping TRUE if this is live update, FALSE otherwise. + +**/ +STATIC +VOID +ReplaceTableEntry ( + IN UINTN *Entry, + IN UINTN Value, + IN UINTN RegionStart, + IN BOOLEAN IsLiveBlockMapping + ) +{ + *Entry = Value; + + if (IsLiveBlockMapping && RiscVMmuEnabled ()) { + RiscVLocalTlbFlush (RegionStart); + } +} + +/** + Get an ppn value from an entry. + + @param Entry The entry value. + + @return The ppn value. + +**/ +STATIC +UINTN +GetPpnfromPte ( + IN UINTN Entry + ) +{ + return ((Entry & PTE_PPN_MASK) >> PTE_PPN_SHIFT); +} + +/** + Set an ppn value to a entry. + + @param Entry The entry value. + @param Address The address. + + @return The new entry value. + +**/ +STATIC +UINTN +SetPpnToPte ( + UINTN Entry, + UINTN Address + ) +{ + UINTN Ppn; + + Ppn = ((Address >> RISCV_MMU_PAGE_SHIFT) << PTE_PPN_SHIFT); + ASSERT (~(Ppn & ~PTE_PPN_MASK)); + Entry &= ~PTE_PPN_MASK; + return Entry | Ppn; +} + +/** + Free resources of translation table recursively. + + @param TranslationTable The pointer of table. + @param Level The current level. + +**/ +STATIC +VOID +FreePageTablesRecursive ( + IN UINTN *TranslationTable, + IN UINTN Level + ) +{ + UINTN Index; + + if (Level < mMaxRootTableLevel - 1) { + for (Index = 0; Index < mTableEntryCount; Index++) { + if (IsTableEntry (TranslationTable[Index])) { + FreePageTablesRecursive ( + (UINTN *)(GetPpnfromPte ((TranslationTable[Index])) << + RISCV_MMU_PAGE_SHIFT), + Level + 1 + ); + } + } + } + + FreePages (TranslationTable, 1); +} + +/** + Update region mapping recursively. + + @param RegionStart The start address of the region. + @param RegionEnd The end address of the region. + @param AttributeSetMask The attribute mask to be set. + @param AttributeClearMask The attribute mask to be clear. + @param PageTable The pointer of current page table. + @param Level The current level. + @param TableIsLive TRUE if this is live update, FALSE otherwise. + + @retval EFI_OUT_OF_RESOURCES Not enough resource. + @retval EFI_SUCCESS The operation succesfully. + +**/ +STATIC +EFI_STATUS +UpdateRegionMappingRecursive ( + IN UINTN RegionStart, + IN UINTN RegionEnd, + IN UINTN AttributeSetMask, + IN UINTN AttributeClearMask, + IN UINTN *PageTable, + IN UINTN Level, + IN BOOLEAN TableIsLive + ) +{ + EFI_STATUS Status; + UINTN BlockShift; + UINTN BlockMask; + UINTN BlockEnd; + UINTN *Entry; + UINTN EntryValue; + UINTN *TranslationTable; + BOOLEAN NextTableIsLive; + + ASSERT (Level < mMaxRootTableLevel); + ASSERT (((RegionStart | RegionEnd) & EFI_PAGE_MASK) == 0); + + BlockShift = (mMaxRootTableLevel - Level - 1) * mBitPerLevel + RISCV_MMU_PAGE_SHIFT; + BlockMask = MAX_ADDRESS >> (64 - BlockShift); + + DEBUG ( + ( + DEBUG_VERBOSE, + "%a(%d): %llx - %llx set %lx clr %lx\n", + __func__, + Level, + RegionStart, + RegionEnd, + AttributeSetMask, + AttributeClearMask + ) + ); + + for ( ; RegionStart < RegionEnd; RegionStart = BlockEnd) { + BlockEnd = MIN (RegionEnd, (RegionStart | BlockMask) + 1); + Entry = &PageTable[(RegionStart >> BlockShift) & (mTableEntryCount - 1)]; + + // + // If RegionStart or BlockEnd is not aligned to the block size at this + // level, we will have to create a table mapping in order to map less + // than a block, and recurse to create the block or page entries at + // the next level. No block mappings are allowed at all at level 0, + // so in that case, we have to recurse unconditionally. + // + if ((Level == 0) || + (((RegionStart | BlockEnd) & BlockMask) != 0) || IsTableEntry (*Entry)) + { + ASSERT (Level < mMaxRootTableLevel - 1); + if (!IsTableEntry (*Entry)) { + // + // No table entry exists yet, so we need to allocate a page table + // for the next level. + // + TranslationTable = AllocatePages (1); + if (TranslationTable == NULL) { + return EFI_OUT_OF_RESOURCES; + } + + ZeroMem (TranslationTable, EFI_PAGE_SIZE); + + if (IsBlockEntry (*Entry)) { + // + // We are splitting an existing block entry, so we have to populate + // the new table with the attributes of the block entry it replaces. + // + Status = UpdateRegionMappingRecursive ( + RegionStart & ~BlockMask, + (RegionStart | BlockMask) + 1, + *Entry & PTE_ATTRIBUTES_MASK, + PTE_ATTRIBUTES_MASK, + TranslationTable, + Level + 1, + FALSE + ); + if (EFI_ERROR (Status)) { + // + // The range we passed to UpdateRegionMappingRecursive () is block + // aligned, so it is guaranteed that no further pages were allocated + // by it, and so we only have to free the page we allocated here. + // + FreePages (TranslationTable, 1); + return Status; + } + } + + NextTableIsLive = FALSE; + } else { + TranslationTable = (UINTN *)(GetPpnfromPte (*Entry) << RISCV_MMU_PAGE_SHIFT); + NextTableIsLive = TableIsLive; + } + + // + // Recurse to the next level + // + Status = UpdateRegionMappingRecursive ( + RegionStart, + BlockEnd, + AttributeSetMask, + AttributeClearMask, + TranslationTable, + Level + 1, + NextTableIsLive + ); + if (EFI_ERROR (Status)) { + if (!IsTableEntry (*Entry)) { + // + // We are creating a new table entry, so on failure, we can free all + // allocations we made recursively, given that the whole subhierarchy + // has not been wired into the live page tables yet. (This is not + // possible for existing table entries, since we cannot revert the + // modifications we made to the subhierarchy it represents.) + // + FreePageTablesRecursive (TranslationTable, Level + 1); + } + + return Status; + } + + if (!IsTableEntry (*Entry)) { + EntryValue = SetPpnToPte (0, (UINTN)TranslationTable); + EntryValue = SetTableEntry (EntryValue); + ReplaceTableEntry ( + Entry, + EntryValue, + RegionStart, + TableIsLive + ); + } + } else { + EntryValue = (*Entry & ~AttributeClearMask) | AttributeSetMask; + // + // We don't have page fault exception handler when a virtual page is accessed and + // the A bit is clear, or is written and the D bit is clear. + // So just set A for read and D for write permission. + // + if ((AttributeSetMask & RISCV_PG_R) != 0) { + EntryValue |= RISCV_PG_A; + } + + if ((AttributeSetMask & RISCV_PG_W) != 0) { + EntryValue |= RISCV_PG_D; + } + + EntryValue = SetPpnToPte (EntryValue, RegionStart); + EntryValue = SetValidPte (EntryValue); + ReplaceTableEntry (Entry, EntryValue, RegionStart, TableIsLive); + } + } + + return EFI_SUCCESS; +} + +/** + Update region mapping at root table. + + @param RegionStart The start address of the region. + @param RegionLength The length of the region. + @param AttributeSetMask The attribute mask to be set. + @param AttributeClearMask The attribute mask to be clear. + @param RootTable The pointer of root table. + @param TableIsLive TRUE if this is live update, FALSE otherwise. + + @retval EFI_INVALID_PARAMETER The RegionStart or RegionLength was not valid. + @retval EFI_OUT_OF_RESOURCES Not enough resource. + @retval EFI_SUCCESS The operation succesfully. + +**/ +STATIC +EFI_STATUS +UpdateRegionMapping ( + IN UINTN RegionStart, + IN UINTN RegionLength, + IN UINTN AttributeSetMask, + IN UINTN AttributeClearMask, + IN UINTN *RootTable, + IN BOOLEAN TableIsLive + ) +{ + if (((RegionStart | RegionLength) & EFI_PAGE_MASK) != 0) { + return EFI_INVALID_PARAMETER; + } + + return UpdateRegionMappingRecursive ( + RegionStart, + RegionStart + RegionLength, + AttributeSetMask, + AttributeClearMask, + RootTable, + 0, + TableIsLive + ); +} + +/** + The API to configure and enable RISC-V MMU with the highest mode supported. + + @retval EFI_OUT_OF_RESOURCES Not enough resource. + @retval EFI_SUCCESS The operation succesfully. + +**/ +EFI_STATUS +EFIAPI +PlatformUpdateMmu ( + IN EFI_HANDLE ImageHandle, + IN EFI_SYSTEM_TABLE *SystemTable + ) +{ + EFI_GCD_MEMORY_SPACE_DESCRIPTOR *MemoryMap; + UINTN NumberOfDescriptors; + UINTN Index; + EFI_STATUS Status; + + Status = EFI_SUCCESS; + + if(RiscVMmuEnabled () && PcdGetBool (PcdForceNoMMU)){ + + FreePageTablesRecursive ((UINTN *)RiscVGetRootTranslateTable (), 0); + + RiscVMmuDisabled (); + DEBUG (( + DEBUG_INFO, + "%a: SG2042 MMU disabled\n", + __func__ + )); + + return Status; + } + + if (RiscVMmuEnabled ()) { + mMaxRootTableLevel = 3; + mBitPerLevel = 9; + mTableEntryCount = 512; + + NumberOfDescriptors = 0; + MemoryMap = NULL; + Status = gDS->GetMemorySpaceMap ( + &NumberOfDescriptors, + &MemoryMap + ); + ASSERT_EFI_ERROR (Status); + + for (Index = 0; Index < NumberOfDescriptors; Index++) { + if (MemoryMap[Index].GcdMemoryType == EfiGcdMemoryTypeMemoryMappedIo) { + // Update Read/Write/Strong Order attribute for memory mapped IO + UpdateRegionMapping ( + MemoryMap[Index].BaseAddress, + MemoryMap[Index].Length, + RISCV_PG_R | RISCV_PG_W | RISCV_PG_SO, + PTE_ATTRIBUTES_MASK, + (UINTN *)RiscVGetRootTranslateTable (), + TRUE + ); + } else if (MemoryMap[Index].GcdMemoryType == EfiGcdMemoryTypeSystemMemory) { + // Update Read/Write/Execute/Sharable/Cacheable attribute for system memory + UpdateRegionMapping ( + MemoryMap[Index].BaseAddress, + MemoryMap[Index].Length, + RISCV_PG_R | RISCV_PG_W | RISCV_PG_X | RISCV_PG_SH | RISCV_PG_C, + PTE_ATTRIBUTES_MASK, + (UINTN *)RiscVGetRootTranslateTable (), + TRUE + ); + } + } + + DEBUG (( + DEBUG_INFO, + "%a: SG2042 Update memory attribute\n", + __func__ + )); + + FreePool ((VOID *)MemoryMap); + } + + return Status; +} -- 2.34.1 -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#108377): https://edk2.groups.io/g/devel/message/108377 Mute This Topic: https://groups.io/mt/101213490/1787277 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org] -=-=-=-=-=-=-=-=-=-=-=-
From: caiyuqing379 <202235273@mail.sdu.edu.cn> This driver implements Sophgo SDHCI controller, which provides the necessary interfaces for handling communication and data transfer with SD cards. Signed-off-by: caiyuqing379 <202235273@mail.sdu.edu.cn> Co-authored-by: USER0FISH <libing1202@outlook.com> Cc: dahogn <dahogn@hotmail.com> Cc: meng-cz <mengcz1126@gmail.com> Cc: yli147 <yong.li@intel.com> Cc: ChaiEvan <evan.chai@intel.com> Cc: Sunil V L <sunilvl@ventanamicro.com> Cc: Leif Lindholm <quic_llindhol@quicinc.com> --- .../SG2042Pkg/Drivers/SdHostDxe/SdHostDxe.inf | 47 + .../SG2042Pkg/Drivers/SdHostDxe/SdHci.h | 309 ++++++ .../SG2042Pkg/Drivers/SdHostDxe/SdHci.c | 929 ++++++++++++++++++ .../SG2042Pkg/Drivers/SdHostDxe/SdHostDxe.c | 450 +++++++++ 4 files changed, 1735 insertions(+) create mode 100644 Silicon/Sophgo/SG2042Pkg/Drivers/SdHostDxe/SdHostDxe.inf create mode 100644 Silicon/Sophgo/SG2042Pkg/Drivers/SdHostDxe/SdHci.h create mode 100755 Silicon/Sophgo/SG2042Pkg/Drivers/SdHostDxe/SdHci.c create mode 100644 Silicon/Sophgo/SG2042Pkg/Drivers/SdHostDxe/SdHostDxe.c diff --git a/Silicon/Sophgo/SG2042Pkg/Drivers/SdHostDxe/SdHostDxe.inf b/Silicon/Sophgo/SG2042Pkg/Drivers/SdHostDxe/SdHostDxe.inf new file mode 100644 index XXXXXXX..XXXXXXX --- /dev/null +++ b/Silicon/Sophgo/SG2042Pkg/Drivers/SdHostDxe/SdHostDxe.inf @@ -XXX,XX +XXX,XX @@ +## @file +# Component description file for the SD Host Controller DXE driver module. +# +# Copyright (c) 2019, ARM Limited. All rights reserved. +# Copyright (c) 2017, Andrei Warkentin <andrey.warkentin@gmail.com> +# Copyright (c) Microsoft Corporation. All rights reserved. +# Copyright (c) 2023, Academy of Intelligent Innovation, Shandong Universiy, China.P.R. All rights reserved.<BR> +# SPDX-License-Identifier: BSD-2-Clause-Patent +# +# +## + +[Defines] + INF_VERSION = 0x0001001A + BASE_NAME = SdHostDxe + FILE_GUID = 11322596-DD4F-47FA-9E6C-CE787E11E4B1 + MODULE_TYPE = UEFI_DRIVER + VERSION_STRING = 1.0 + ENTRY_POINT = SdHostInitialize + +[Sources] + SdHci.c + SdHci.h + SdHostDxe.c + +[Packages] + EmbeddedPkg/EmbeddedPkg.dec + MdePkg/MdePkg.dec + MdeModulePkg/MdeModulePkg.dec + Silicon/Sophgo/SG2042Pkg/SG2042Pkg.dec + +[LibraryClasses] + BaseLib + DebugLib + IoLib + MemoryAllocationLib + UefiBootServicesTableLib + UefiDriverEntryPoint + UefiLib + UefiRuntimeServicesTableLib + +[Protocols] + gSophgoMmcHostProtocolGuid ## PRODUCES + +[FixedPcd] + gSophgoSG2042PlatformPkgTokenSpaceGuid.PcdSG2042SDIOBase ## CONSUMES + gSophgoSG2042PlatformPkgTokenSpaceGuid.PcdForceNoMMU ## CONSUMES diff --git a/Silicon/Sophgo/SG2042Pkg/Drivers/SdHostDxe/SdHci.h b/Silicon/Sophgo/SG2042Pkg/Drivers/SdHostDxe/SdHci.h new file mode 100644 index XXXXXXX..XXXXXXX --- /dev/null +++ b/Silicon/Sophgo/SG2042Pkg/Drivers/SdHostDxe/SdHci.h @@ -XXX,XX +XXX,XX @@ +/** @file + The header file that provides definitions and function declarations + related to the SD Host Controller Interface (SDHCI) for SD card host controllers. + + Copyright (c) 2016-2017, ARM Limited and Contributors. All rights reserved. + Copyright (c) 2023, Academy of Intelligent Innovation, Shandong Universiy, China.P.R. All rights reserved.<BR> + SPDX-License-Identifier: BSD-3-Clause + +**/ + +#ifndef _SD_HCI_H_ +#define _SD_HCI_H_ + +#define SDIO_BASE (FixedPcdGet64(PcdSG2042SDIOBase)) +#define SDHCI_DMA_ADDRESS 0x00 +#define SDHCI_BLOCK_SIZE 0x04 +#define SDHCI_MAKE_BLKSZ(dma, blksz) ((((dma) & 0x7) << 12) | ((blksz) & 0xFFF)) +#define SDHCI_BLOCK_COUNT 0x06 +#define SDHCI_ARGUMENT 0x08 +#define SDHCI_TRANSFER_MODE 0x0C +#define SDHCI_TRNS_DMA BIT0 +#define SDHCI_TRNS_BLK_CNT_EN BIT1 +#define SDHCI_TRNS_ACMD12 BIT2 +#define SDHCI_TRNS_READ BIT4 +#define SDHCI_TRNS_MULTI BIT5 +#define SDHCI_TRNS_RESP_INT BIT8 +#define SDHCI_COMMAND 0x0E +#define SDHCI_CMD_RESP_MASK 0x03 +#define SDHCI_CMD_CRC 0x08 +#define SDHCI_CMD_INDEX 0x10 +#define SDHCI_CMD_DATA 0x20 +#define SDHCI_CMD_ABORTCMD 0xC0 +#define SDHCI_CMD_RESP_NONE 0x00 +#define SDHCI_CMD_RESP_LONG 0x01 +#define SDHCI_CMD_RESP_SHORT 0x02 +#define SDHCI_CMD_RESP_SHORT_BUSY 0x03 +#define SDHCI_MAKE_CMD(c, f) ((((c) & 0xff) << 8) | ((f) & 0xff)) +#define SDHCI_RESPONSE_01 0x10 +#define SDHCI_RESPONSE_23 0x14 +#define SDHCI_RESPONSE_45 0x18 +#define SDHCI_RESPONSE_67 0x1C +#define SDHCI_PSTATE 0x24 +#define SDHCI_CMD_INHIBIT BIT0 +#define SDHCI_CMD_INHIBIT_DAT BIT1 +#define SDHCI_BUF_WR_ENABLE BIT10 +#define SDHCI_BUF_RD_ENABLE BIT11 +#define SDHCI_CARD_INSERTED BIT16 +#define SDHCI_HOST_CONTROL 0x28 +#define SDHCI_DAT_XFER_WIDTH BIT1 +#define SDHCI_EXT_DAT_XFER BIT5 +#define SDHCI_CTRL_DMA_MASK 0x18 +#define SDHCI_CTRL_SDMA 0x00 +#define SDHCI_PWR_CONTROL 0x29 +#define SDHCI_BUS_VOL_VDD1_1_8V 0xC +#define SDHCI_BUS_VOL_VDD1_3_0V 0xE +#define SDHCI_BUF_DATA_R 0x20 +#define SDHCI_BLOCK_GAP_CONTROL 0x2A +#define SDHCI_CLK_CTRL 0x2C +#define SDHCI_TOUT_CTRL 0x2E +#define SDHCI_SOFTWARE_RESET 0x2F +#define SDHCI_RESET_CMD 0x02 +#define SDHCI_RESET_DATA 0x04 +#define SDHCI_INT_STATUS 0x30 +#define SDHCI_ERR_INT_STATUS 0x32 +#define SDHCI_INT_CMD_COMPLETE BIT0 +#define SDHCI_INT_XFER_COMPLETE BIT1 +#define SDHCI_INT_DMA_END BIT3 +#define SDHCI_INT_BUF_WR_READY BIT4 +#define SDHCI_INT_BUF_RD_READY BIT5 +#define SDHCI_INT_ERROR BIT15 +#define SDHCI_INT_STATUS_EN 0x34 +#define SDHCI_ERR_INT_STATUS_EN 0x36 +#define SDHCI_INT_CMD_COMPLETE_EN BIT0 +#define SDHCI_INT_XFER_COMPLETE_EN BIT1 +#define SDHCI_INT_DMA_END_EN BIT3 +#define SDHCI_INT_CARD_INSERTION_EN BIT6 +#define SDHCI_INT_ERROR_EN BIT15 +#define SDHCI_SIGNAL_ENABLE 0x38 +#define SDHCI_HOST_CONTROL2 0x3E +#define SDHCI_HOST_VER4_ENABLE BIT12 +#define SDHCI_CAPABILITIES1 0x40 +#define SDHCI_CAPABILITIES2 0x44 +#define SDHCI_ADMA_SA_LOW 0x58 +#define SDHCI_ADMA_SA_HIGH 0x5C +#define SDHCI_HOST_CNTRL_VERS 0xFE +#define SDHCI_UHS_2_TIMER_CNTRL 0xC2 + +#define P_VENDOR_SPECIFIC_AREA 0xE8 +#define P_VENDOR2_SPECIFIC_AREA 0xEA +#define VENDOR_SD_CTRL 0x2C + +#define SDHCI_PHY_R_OFFSET 0x300 + +#define SDHCI_P_PHY_CNFG (SDHCI_PHY_R_OFFSET + 0x00) +#define SDHCI_P_CMDPAD_CNFG (SDHCI_PHY_R_OFFSET + 0x04) +#define SDHCI_P_DATPAD_CNFG (SDHCI_PHY_R_OFFSET + 0x06) +#define SDHCI_P_CLKPAD_CNFG (SDHCI_PHY_R_OFFSET + 0x08) +#define SDHCI_P_STBPAD_CNFG (SDHCI_PHY_R_OFFSET + 0x0A) +#define SDHCI_P_RSTNPAD_CNFG (SDHCI_PHY_R_OFFSET + 0x0C) +#define SDHCI_P_PADTEST_CNFG (SDHCI_PHY_R_OFFSET + 0x0E) +#define SDHCI_P_PADTEST_OUT (SDHCI_PHY_R_OFFSET + 0x10) +#define SDHCI_P_PADTEST_IN (SDHCI_PHY_R_OFFSET + 0x12) +#define SDHCI_P_COMMDL_CNFG (SDHCI_PHY_R_OFFSET + 0x1C) +#define SDHCI_P_SDCLKDL_CNFG (SDHCI_PHY_R_OFFSET + 0x1D) +#define SDHCI_P_SDCLKDL_DC (SDHCI_PHY_R_OFFSET + 0x1E) +#define SDHCI_P_SMPLDL_CNFG (SDHCI_PHY_R_OFFSET + 0x20) +#define SDHCI_P_ATDL_CNFG (SDHCI_PHY_R_OFFSET + 0x21) +#define SDHCI_P_DLL_CTRL (SDHCI_PHY_R_OFFSET + 0x24) +#define SDHCI_P_DLL_CNFG1 (SDHCI_PHY_R_OFFSET + 0x25) +#define SDHCI_P_DLL_CNFG2 (SDHCI_PHY_R_OFFSET + 0x26) +#define SDHCI_P_DLLDL_CNFG (SDHCI_PHY_R_OFFSET + 0x28) +#define SDHCI_P_DLL_OFFST (SDHCI_PHY_R_OFFSET + 0x29) +#define SDHCI_P_DLLMST_TSTDC (SDHCI_PHY_R_OFFSET + 0x2A) +#define SDHCI_P_DLLLBT_CNFG (SDHCI_PHY_R_OFFSET + 0x2C) +#define SDHCI_P_DLL_STATUS (SDHCI_PHY_R_OFFSET + 0x2E) +#define SDHCI_P_DLLDBG_MLKDC (SDHCI_PHY_R_OFFSET + 0x30) +#define SDHCI_P_DLLDBG_SLKDC (SDHCI_PHY_R_OFFSET + 0x32) + +#define PHY_CNFG_PHY_RSTN 0 +#define PHY_CNFG_PHY_PWRGOOD 1 +#define PHY_CNFG_PAD_SP 16 +#define PHY_CNFG_PAD_SP_MSK 0xf +#define PHY_CNFG_PAD_SN 20 +#define PHY_CNFG_PAD_SN_MSK 0xf + +#define PAD_CNFG_RXSEL 0 +#define PAD_CNFG_RXSEL_MSK 0x7 +#define PAD_CNFG_WEAKPULL_EN 3 +#define PAD_CNFG_WEAKPULL_EN_MSK 0x3 +#define PAD_CNFG_TXSLEW_CTRL_P 5 +#define PAD_CNFG_TXSLEW_CTRL_P_MSK 0xf +#define PAD_CNFG_TXSLEW_CTRL_N 9 +#define PAD_CNFG_TXSLEW_CTRL_N_MSK 0xf + +#define COMMDL_CNFG_DLSTEP_SEL 0 +#define COMMDL_CNFG_DLOUT_EN 1 + +#define SDCLKDL_CNFG_EXTDLY_EN 0 +#define SDCLKDL_CNFG_BYPASS_EN 1 +#define SDCLKDL_CNFG_INPSEL_CNFG 2 +#define SDCLKDL_CNFG_INPSEL_CNFG_MSK 0x3 +#define SDCLKDL_CNFG_UPDATE_DC 4 + +#define SMPLDL_CNFG_EXTDLY_EN 0 +#define SMPLDL_CNFG_BYPASS_EN 1 +#define SMPLDL_CNFG_INPSEL_CNFG 2 +#define SMPLDL_CNFG_INPSEL_CNFG_MSK 0x3 +#define SMPLDL_CNFG_INPSEL_OVERRIDE 4 + +#define ATDL_CNFG_EXTDLY_EN 0 +#define ATDL_CNFG_BYPASS_EN 1 +#define ATDL_CNFG_INPSEL_CNFG 2 +#define ATDL_CNFG_INPSEL_CNFG_MSK 0x3 + +#define SD_USE_PIO 0x1 + +/** + card detect status + -1: haven't check the card detect register + 0 : no card detected + 1 : card detected +**/ +#define SDCARD_STATUS_UNKNOWN (-1) +#define SDCARD_STATUS_INSERTED (1) +#define SDCARD_STATUS_NOT_INSERTED (0) + +typedef struct { + UINT32 CmdIdx; + UINT32 CmdArg; + UINT32 ResponseType; + UINT32 Response[4]; +} MMC_CMD; + +typedef struct { + UINTN RegBase; + UINTN VendorBase; + UINTN DescBase; + UINTN DescSize; + INT32 ClkRate; + INT32 BusWidth; + UINT32 Flags; + INT32 CardIn; +} BM_SD_PARAMS; + +extern BM_SD_PARAMS BmParams; + +/** + SD card sends command. + + @param[in] Idx Command ID. + @param[in] Arg Command argument. + @param[in] RespType Type of response data. + @param[out] Response Response data. + + @retval EFI_SUCCESS The command was sent successfully. + @retval EFI_DEVICE_ERROR There was an error during the command transmission or response handling. + @retval EFI_TIMEOUT The command transmission or response handling timed out. + +**/ +EFI_STATUS +EFIAPI +BmSdSendCmd ( + IN UINT32 Idx, + IN UINT32 Arg, + IN UINT32 RespType, + OUT UINT32 *Response + ); + +/** + Detect the status of the SD card. + + @return The status of the SD card: + - SDCARD_STATUS_INSERTED: The SD card is inserted. + - SDCARD_STATUS_NOT_INSERTED: The SD card is not inserted. + - SDCARD_STATUS_UNKNOWN: The status of the SD card is unknown. + +**/ +INT32 +BmSdCardDetect ( + VOID + ); + +/** + Set the input/output settings for the SD card. + + @param[in] Clk The clock frequency for the SD card. + @param[in] Width The bus width for data transfer. + + @retval EFI_SUCCESS The input/output settings were set successfully. + @retval EFI_UNSUPPORTED The specified bus width is not supported. + +**/ +EFI_STATUS +BmSdSetIos ( + IN UINT32 Clk, + IN UINT32 Width + ); + +/** + Prepare the SD card for data transfer. + Set the number and size of data blocks before sending IO commands to the SD card. + + @param[in] Lba Logical Block Address. + @param[in] Buf Buffer Address. + @param[in] Size Size of Data Blocks. + + @retval EFI_SUCCESS The SD card was prepared successfully. + @retval Other An error occurred during the preparation of the SD card. + +**/ +EFI_STATUS +BmSdPrepare ( + IN INT32 Lba, + IN UINTN Buf, + IN UINTN Size + ); + +/** + SD card sends command to read data blocks. + + @param[in] Lba Logical Block Address. + @param[in] Buf Buffer Address. + @param[in] Size Size of Data Blocks. + + @retval EFI_SUCCESS The command to read data blocks was sent successfully. + @retval EFI_TIMEOUT The command transmission or data transfer timed out. + +**/ +EFI_STATUS +BmSdRead ( + IN INT32 Lba, + IN UINT32* Buf, + IN UINTN Size + ); + +/** + SD card sends commands to write data blocks. + + @param[in] Lba Logical Block Address. + @param[in] Buf Buffer Address. + @param[in] Size Size of Data Blocks. + + @retval EFI_SUCCESS The command to write data blocks was sent successfully. + @retval EFI_TIMEOUT The command transmission or data transfer timed out. + +**/ +EFI_STATUS +BmSdWrite ( + IN INT32 Lba, + IN UINT32* Buf, + IN UINTN Size + ); + +/** + Initialize the SD card. + + This function performs the initialization of the SD card hardware and settings. + + @param[in] Flags Initialization flags. + + @retval EFI_SUCCESS The SD card was initialized successfully. + +**/ +EFI_STATUS +SdInit ( + IN UINT32 flags + ); + +#endif diff --git a/Silicon/Sophgo/SG2042Pkg/Drivers/SdHostDxe/SdHci.c b/Silicon/Sophgo/SG2042Pkg/Drivers/SdHostDxe/SdHci.c new file mode 100755 index XXXXXXX..XXXXXXX --- /dev/null +++ b/Silicon/Sophgo/SG2042Pkg/Drivers/SdHostDxe/SdHci.c @@ -XXX,XX +XXX,XX @@ +/** @file + The implementation for handling SD card operations using the SD Host Controller Interface (SDHCI). + + Copyright (c) 2016-2017, ARM Limited and Contributors. All rights reserved. + Copyright (c) 2023, Academy of Intelligent Innovation, Shandong Universiy, China.P.R. All rights reserved.<BR> + SPDX-License-Identifier: BSD-3-Clause + +**/ + +#include <Uefi.h> +#include <Base.h> +#include <Library/BaseLib.h> +#include <Library/MemoryAllocationLib.h> +#include <Library/DebugLib.h> +#include <Library/IoLib.h> +#include <Library/PcdLib.h> +#include <Library/UefiBootServicesTableLib.h> +#include <Library/BaseMemoryLib.h> +#include <Include/MmcHost.h> + +#include "SdHci.h" + +#define SDCARD_INIT_FREQ (200 * 1000) +#define SDCARD_TRAN_FREQ (6 * 1000 * 1000) + +/** + Return the clock rate of SD card. + + @retval the clock rate of SD card. + +**/ +INT32 +BmGetSdClk ( + VOID + ) +{ + return 100*1000*1000; +} + +/** + SD card sends command with response block data. + + @param Cmd Command sent by SD card. + + @retval EFI_SUCCESS The command with response block data was sent successfully. + @retval EFI_DEVICE_ERROR There was an error during the command transmission or response handling. + @retval EFI_TIMEOUT The command transmission or response handling timed out. + +**/ +STATIC +EFI_STATUS +SdSendCmdWithData ( + IN OUT MMC_CMD *Cmd + ) +{ + UINTN Base; + UINT32 Mode; + UINT32 State; + UINT32 DmaAddr; + UINT32 Flags; + UINT32 Timeout; + + Base = BmParams.RegBase; + Mode = 0; + Flags = 0; + + // Make sure Cmd line is clear + while (1) { + if (!(MmioRead32 (Base + SDHCI_PSTATE) & SDHCI_CMD_INHIBIT)) + break; + } + + switch (Cmd->CmdIdx) { + case MMC_CMD17: + case MMC_CMD18: + case MMC_ACMD51: + Mode = SDHCI_TRNS_BLK_CNT_EN | SDHCI_TRNS_MULTI | SDHCI_TRNS_READ; + if (!(BmParams.Flags & SD_USE_PIO)) + Mode |= SDHCI_TRNS_DMA; + break; + case MMC_CMD24: + case MMC_CMD25: + Mode = (SDHCI_TRNS_BLK_CNT_EN | SDHCI_TRNS_MULTI) & ~SDHCI_TRNS_READ; + if (!(BmParams.Flags & SD_USE_PIO)) + Mode |= SDHCI_TRNS_DMA; + break; + default: + ASSERT(0); + } + + MmioWrite16 (Base + SDHCI_TRANSFER_MODE, Mode); + MmioWrite32 (Base + SDHCI_ARGUMENT, Cmd->CmdArg); + + // set Cmd Flags + if (Cmd->CmdIdx == MMC_CMD0) + Flags |= SDHCI_CMD_RESP_NONE; + else { + if (Cmd->ResponseType & MMC_RSP_136) + Flags |= SDHCI_CMD_RESP_LONG; + else + Flags |= SDHCI_CMD_RESP_SHORT; + if (Cmd->ResponseType & MMC_RSP_CRC) + Flags |= SDHCI_CMD_CRC; + if (Cmd->ResponseType & MMC_RSP_CMD_IDX) + Flags |= SDHCI_CMD_INDEX; + } + + Flags |= SDHCI_CMD_DATA; + + // issue the Cmd + MmioWrite16 (Base + SDHCI_COMMAND, SDHCI_MAKE_CMD(Cmd->CmdIdx, Flags)); + + // check Cmd complete if necessary + if ((MmioRead16 (Base + SDHCI_TRANSFER_MODE) & SDHCI_TRNS_RESP_INT) == 0) { + Timeout = 100000; + while (1) { + State = MmioRead16 (Base + SDHCI_INT_STATUS); + if (State & SDHCI_INT_ERROR) { + DEBUG ((DEBUG_ERROR, "%a: interrupt error: 0x%x 0x%x\n", __func__, MmioRead16 (Base + SDHCI_INT_STATUS), + MmioRead16 (Base + SDHCI_ERR_INT_STATUS))); + return EFI_DEVICE_ERROR; + } + if (State & SDHCI_INT_CMD_COMPLETE) { + MmioWrite16 (Base + SDHCI_INT_STATUS, State | SDHCI_INT_CMD_COMPLETE); + break; + } + + gBS->Stall (1); + if (!Timeout--) { + DEBUG ((DEBUG_ERROR, "%a: Timeout!\n", __func__)); + return EFI_TIMEOUT; + } + } + + // get Cmd respond + if (Flags != SDHCI_CMD_RESP_NONE) + Cmd->Response[0] = MmioRead32 (Base + SDHCI_RESPONSE_01); + if (Flags & SDHCI_CMD_RESP_LONG) { + Cmd->Response[1] = MmioRead32 (Base + SDHCI_RESPONSE_23); + Cmd->Response[2] = MmioRead32 (Base + SDHCI_RESPONSE_45); + Cmd->Response[3] = MmioRead32 (Base + SDHCI_RESPONSE_67); + } + } + + // check dma/transfer complete + if (!(BmParams.Flags & SD_USE_PIO)) { + while (1) { + State = MmioRead16 (Base + SDHCI_INT_STATUS); + if (State & SDHCI_INT_ERROR) { + DEBUG ((DEBUG_ERROR, "%a: interrupt error: 0x%x 0x%x\n", __func__, MmioRead16 (Base + SDHCI_INT_STATUS), + MmioRead16 (Base + SDHCI_ERR_INT_STATUS))); + return EFI_DEVICE_ERROR; + } + + if (State & SDHCI_INT_XFER_COMPLETE) { + MmioWrite16 (Base + SDHCI_INT_STATUS, State); + break; + } + + if (State & SDHCI_INT_DMA_END) { + MmioWrite16 (Base + SDHCI_INT_STATUS, State); + if (MmioRead16 (Base + SDHCI_HOST_CONTROL2) & SDHCI_HOST_VER4_ENABLE) { + DmaAddr = MmioRead32 (Base + SDHCI_ADMA_SA_LOW); + MmioWrite32 (Base + SDHCI_ADMA_SA_LOW, DmaAddr); + MmioWrite32 (Base + SDHCI_ADMA_SA_HIGH, 0); + } else { + DmaAddr = MmioRead32 (Base + SDHCI_DMA_ADDRESS); + MmioWrite32 (Base + SDHCI_DMA_ADDRESS, DmaAddr); + } + } + + } + } + + return EFI_SUCCESS; +} + +/** + SD card sends command without response block data. + + @param Cmd Command sent by SD card. + + @retval EFI_SUCCESS The command without response block data was sent successfully. + @retval EFI_DEVICE_ERROR There was an error during the command transmission or response handling. + @retval EFI_TIMEOUT The command transmission or response handling timed out. + +**/ +STATIC +EFI_STATUS +SdSendCmdWithoutData ( + IN OUT MMC_CMD *Cmd + ) +{ + UINTN Base; + UINT32 State; + UINT32 Flags; + UINT32 Timeout; + + Base = BmParams.RegBase; + Flags = 0x0; + Timeout = 10000; + + // make sure Cmd line is clear + while (1) { + if (!(MmioRead32 (Base + SDHCI_PSTATE) & SDHCI_CMD_INHIBIT)) + break; + } + + // set Cmd Flags + if (Cmd->CmdIdx == MMC_CMD0) + Flags |= SDHCI_CMD_RESP_NONE; + else if (Cmd->CmdIdx == MMC_CMD1) + Flags |= SDHCI_CMD_RESP_SHORT; + else if (Cmd->CmdIdx == MMC_ACMD41) + Flags |= SDHCI_CMD_RESP_SHORT; + else { + if (Cmd->ResponseType & MMC_RSP_136) + Flags |= SDHCI_CMD_RESP_LONG; + else + Flags |= SDHCI_CMD_RESP_SHORT; + if (Cmd->ResponseType & MMC_RSP_CRC) + Flags |= SDHCI_CMD_CRC; + if (Cmd->ResponseType & MMC_RSP_CMD_IDX) + Flags |= SDHCI_CMD_INDEX; + } + + // make sure dat line is clear if necessary + if (Flags != SDHCI_CMD_RESP_NONE) { + while (1) { + if (!(MmioRead32 (Base + SDHCI_PSTATE) & SDHCI_CMD_INHIBIT_DAT)) + break; + } + } + + // issue the Cmd + MmioWrite32 (Base + SDHCI_ARGUMENT, Cmd->CmdArg); + MmioWrite16 (Base + SDHCI_COMMAND, SDHCI_MAKE_CMD(Cmd->CmdIdx, Flags)); + + // check Cmd complete + Timeout = 100000; + while (1) { + State = MmioRead16 (Base + SDHCI_INT_STATUS); + if (State & SDHCI_INT_ERROR) { + DEBUG ((DEBUG_ERROR, "%a: interrupt error: 0x%x 0x%x\n", __func__, MmioRead16 (Base + SDHCI_INT_STATUS), + MmioRead16 (Base + SDHCI_ERR_INT_STATUS))); + return EFI_DEVICE_ERROR; + } + if (State & SDHCI_INT_CMD_COMPLETE) { + MmioWrite16 (Base + SDHCI_INT_STATUS, State | SDHCI_INT_CMD_COMPLETE); + break; + } + + gBS->Stall (1); + if (!Timeout--) { + DEBUG ((DEBUG_ERROR, "%a: Timeout!\n", __func__)); + return EFI_TIMEOUT; + } + } + + // get Cmd respond + if (!(Flags & SDHCI_CMD_RESP_NONE)) + Cmd->Response[0] = MmioRead32 (Base + SDHCI_RESPONSE_01); + if (Flags & SDHCI_CMD_RESP_LONG) { + Cmd->Response[1] = MmioRead32 (Base + SDHCI_RESPONSE_23); + Cmd->Response[2] = MmioRead32 (Base + SDHCI_RESPONSE_45); + Cmd->Response[3] = MmioRead32 (Base + SDHCI_RESPONSE_67); + } + + return EFI_SUCCESS; +} + +/** + SD card sends command. + + @param[in] Idx Command ID. + @param[in] Arg Command argument. + @param[in] RespType Type of response data. + @param[out] Response Response data. + + @retval EFI_SUCCESS The command was sent successfully. + @retval EFI_DEVICE_ERROR There was an error during the command transmission or response handling. + @retval EFI_TIMEOUT The command transmission or response handling timed out. + +**/ +EFI_STATUS +EFIAPI +BmSdSendCmd ( + IN UINT32 Idx, + IN UINT32 Arg, + IN UINT32 RespType, + OUT UINT32 *Response + ) +{ + EFI_STATUS Status; + MMC_CMD Cmd; + + // DEBUG ((DEBUG_INFO, "%a: SDHCI Cmd, Idx=%d, Arg=0x%x, ResponseType=0x%x\n", __func__, Idx, Arg, RespType)); + + ZeroMem(&Cmd,sizeof(MMC_CMD)); + + Cmd.CmdIdx = Idx; + Cmd.CmdArg = Arg; + Cmd.ResponseType = RespType; + + switch (Cmd.CmdIdx) { + case MMC_CMD17: + case MMC_CMD18: + case MMC_CMD24: + case MMC_CMD25: + case MMC_ACMD51: + Status = SdSendCmdWithData(&Cmd); + break; + default: + Status = SdSendCmdWithoutData(&Cmd); + } + + if ((Status == EFI_SUCCESS) && (Response != NULL)) { + for (INT32 I = 0; I < 4; I++) { + *Response = Cmd.Response[I]; + Response++; + } + } + return Status; +} + +/** + Set clock frequency of SD card. + + @param[in] Clk The clock frequency of SD card. + +**/ +VOID +SdSetClk ( + IN INT32 Clk + ) +{ + INT32 I; + INT32 Div; + UINTN Base; + + ASSERT (Clk > 0); + + if (BmParams.ClkRate <= Clk) { + Div = 0; + } else { + for (Div = 0x1; Div < 0xFF; Div++) { + if (BmParams.ClkRate / (2 * Div) <= Clk) + break; + } + } + ASSERT (Div <= 0xFF); + + Base = BmParams.RegBase; + if (MmioRead16 (Base + SDHCI_HOST_CONTROL2) & (1 << 15)) { + //verbose("Use SDCLK Preset Value\n"); + } else { + //verbose("Set SDCLK by driver. Div=0x%x(%d)\n", Div, Div); + MmioWrite16 (Base + SDHCI_CLK_CTRL, + MmioRead16 (Base + SDHCI_CLK_CTRL) & ~0x9); // disable INTERNAL_CLK_EN and PLL_ENABLE + MmioWrite16 (Base + SDHCI_CLK_CTRL, + (MmioRead16 (Base + SDHCI_CLK_CTRL) & 0xDF) | Div << 8); // set Clk Div + MmioWrite16 (Base + SDHCI_CLK_CTRL, + MmioRead16 (Base + SDHCI_CLK_CTRL) | 0x1); // set INTERNAL_CLK_EN + + for (I = 0; I <= 150000; I += 100) { + if (MmioRead16 (Base + SDHCI_CLK_CTRL) & 0x2) + break; + gBS->Stall (100); + } + + if (I > 150000) { + DEBUG ((DEBUG_ERROR, "%a: SD INTERNAL_CLK_EN setting FAILED!\n", __func__)); + ASSERT(0); + } + + MmioWrite16 (Base + SDHCI_CLK_CTRL, MmioRead16 (Base + SDHCI_CLK_CTRL) | 0x8); // set PLL_ENABLE + + for (I = 0; I <= 150000; I += 100) { + if (MmioRead16 (Base + SDHCI_CLK_CTRL) & 0x2) + return; + gBS->Stall (100); + } + } + + DEBUG ((DEBUG_INFO, "%a: SD PLL setting FAILED!\n", __func__)); +} + +/** + Change clock frequency of SD card. + + @param[in] Clk The clock frequency of SD card. + +**/ +VOID +SdChangeClk ( + IN INT32 Clk + ) +{ + INT32 I; + INT32 Div; + UINTN Base; + + ASSERT (Clk > 0); + + if (BmParams.ClkRate <= Clk) { + Div = 0; + } else { + for (Div = 0x1; Div < 0xFF; Div++) { + if (BmParams.ClkRate / (2 * Div) <= Clk) + break; + } + } + ASSERT (Div <= 0xFF); + + Base = BmParams.RegBase; + + MmioWrite16 (Base + SDHCI_CLK_CTRL, + MmioRead16 (Base + SDHCI_CLK_CTRL) & ~(0x1 << 2)); // stop SD clock + + MmioWrite16 (Base + SDHCI_CLK_CTRL, + MmioRead16 (Base + SDHCI_CLK_CTRL) & ~0x8); // disable PLL_ENABLE + + if (MmioRead16 (Base + SDHCI_HOST_CONTROL2) & (1 << 15)) { + MmioWrite16 (Base + SDHCI_HOST_CONTROL2, + MmioRead16 (Base + SDHCI_HOST_CONTROL2) & ~0x7); // clr UHS_MODE_SEL + } else { + MmioWrite16 (Base + SDHCI_CLK_CTRL, + (MmioRead16 (Base + SDHCI_CLK_CTRL) & 0xDF) | Div << 8); // set Clk Div + MmioWrite16 (Base + SDHCI_CLK_CTRL, + MmioRead16 (Base + SDHCI_CLK_CTRL) & ~(0x1 << 5)); // CLK_GEN_SELECT + } + + MmioWrite16 (Base + SDHCI_CLK_CTRL, + MmioRead16 (Base + SDHCI_CLK_CTRL) | 0xc); // enable PLL_ENABLE + + for (I = 0; I <= 150000; I += 100) { + if (MmioRead16 (Base + SDHCI_CLK_CTRL) & 0x2) + return; + gBS->Stall (100); + } + + DEBUG ((DEBUG_INFO, "%a: SD PLL setting FAILED!\n", __func__)); +} + +/** + Detect the status of the SD card. + + @return The status of the SD card: + - SDCARD_STATUS_INSERTED: The SD card is inserted. + - SDCARD_STATUS_NOT_INSERTED: The SD card is not inserted. + - SDCARD_STATUS_UNKNOWN: The status of the SD card is unknown. + +**/ +INT32 +BmSdCardDetect ( + VOID + ) +{ + UINTN Base; + UINTN Reg; + + Base = BmParams.RegBase; + + if (BmParams.CardIn != SDCARD_STATUS_UNKNOWN) + return BmParams.CardIn; + + MmioWrite16 (Base + SDHCI_INT_STATUS_EN, + MmioRead16 (Base + SDHCI_INT_STATUS_EN) | SDHCI_INT_CARD_INSERTION_EN); + + Reg = MmioRead32 (Base + SDHCI_PSTATE); + + if (Reg & SDHCI_CARD_INSERTED) + BmParams.CardIn = SDCARD_STATUS_INSERTED; + else + BmParams.CardIn = SDCARD_STATUS_NOT_INSERTED; + + return BmParams.CardIn; +} + +/** + SD card hardware initialization. + +**/ +STATIC +VOID +SdHwInit ( + VOID + ) +{ + UINTN Base; + + Base = BmParams.RegBase; + BmParams.VendorBase = Base + (MmioRead16 (Base + P_VENDOR_SPECIFIC_AREA) & ((1 << 12) - 1)); + + // deasset reset of phy + MmioWrite32 (Base + SDHCI_P_PHY_CNFG, MmioRead32 (Base + SDHCI_P_PHY_CNFG) | (1 << PHY_CNFG_PHY_RSTN)); + + // reset data & Cmd + MmioWrite8 (Base + SDHCI_SOFTWARE_RESET, 0x6); + + // init common parameters + MmioWrite8 (Base + SDHCI_PWR_CONTROL, (0x7 << 1)); + MmioWrite8 (Base + SDHCI_TOUT_CTRL, 0xe); // for TMCLK 50Khz + MmioWrite16 (Base + SDHCI_HOST_CONTROL2, + MmioRead16 (Base + SDHCI_HOST_CONTROL2) | 1 << 11); // set cmd23 support + MmioWrite16 (Base + SDHCI_CLK_CTRL, MmioRead16 (Base + SDHCI_CLK_CTRL) & ~(0x1 << 5)); // divided clock Mode + + // set host version 4 parameters + MmioWrite16 (Base + SDHCI_HOST_CONTROL2, + MmioRead16 (Base + SDHCI_HOST_CONTROL2) | (1 << 12)); // set HOST_VER4_ENABLE + if (MmioRead32 (Base + SDHCI_CAPABILITIES1) & (0x1 << 27)) { + MmioWrite16 (Base + SDHCI_HOST_CONTROL2, + MmioRead16 (Base + SDHCI_HOST_CONTROL2) | 0x1 << 13); // set 64bit addressing + } + + // if support asynchronous int + if (MmioRead32 (Base + SDHCI_CAPABILITIES1) & (0x1 << 29)) + MmioWrite16 (Base + SDHCI_HOST_CONTROL2, + MmioRead16 (Base + SDHCI_HOST_CONTROL2) | (0x1 << 14)); // enable async int + // give some time to power down card + gBS->Stall (20000); + + MmioWrite16 (Base + SDHCI_HOST_CONTROL2, + MmioRead16 (Base + SDHCI_HOST_CONTROL2) & ~(0x1 << 8)); // clr UHS2_IF_ENABLE + MmioWrite8 (Base + SDHCI_PWR_CONTROL, + MmioRead8 (Base + SDHCI_PWR_CONTROL) | 0x1); // set SD_BUS_PWR_VDD1 + MmioWrite16 (Base + SDHCI_HOST_CONTROL2, + MmioRead16 (Base + SDHCI_HOST_CONTROL2) & ~0x7); // clr UHS_MODE_SEL + SdSetClk (SDCARD_INIT_FREQ); + gBS->Stall (50000); + + MmioWrite16 (Base + SDHCI_CLK_CTRL, + MmioRead16 (Base + SDHCI_CLK_CTRL) | (0x1 << 2)); // supply SD clock + gBS->Stall (400); // wait for voltage ramp up time at least 74 cycle, 400us is 80 cycles for 200Khz + + MmioWrite16 (Base + SDHCI_INT_STATUS, MmioRead16 (Base + SDHCI_INT_STATUS) | (0x1 << 6)); + + // we enable all interrupt Status here for testing + MmioWrite16 (Base + SDHCI_INT_STATUS_EN, MmioRead16 (Base + SDHCI_INT_STATUS_EN) | 0xFFFF); + MmioWrite16 (Base + SDHCI_ERR_INT_STATUS_EN, MmioRead16 (Base + SDHCI_ERR_INT_STATUS_EN) | 0xFFFF); + + //verbose("SD init done\n"); +} + +/** + Set the input/output settings for the SD card. + + @param[in] Clk The clock frequency for the SD card. + @param[in] Width The bus width for data transfer. + + @retval EFI_SUCCESS The input/output settings were set successfully. + @retval EFI_UNSUPPORTED The specified bus width is not supported. + +**/ +EFI_STATUS +BmSdSetIos ( + IN UINT32 Clk, + IN UINT32 Width + ) +{ + switch (Width) { + case MMC_BUS_WIDTH_1: + MmioWrite8 (BmParams.RegBase + SDHCI_HOST_CONTROL, + MmioRead8 (BmParams.RegBase + SDHCI_HOST_CONTROL) & + ~SDHCI_DAT_XFER_WIDTH); + break; + case MMC_BUS_WIDTH_4: + MmioWrite8 (BmParams.RegBase + SDHCI_HOST_CONTROL, + MmioRead8 (BmParams.RegBase + SDHCI_HOST_CONTROL) | + SDHCI_DAT_XFER_WIDTH); + break; + default: + ASSERT (0); + } + + SdChangeClk (Clk); + + return EFI_SUCCESS; +} + +/** + Prepare the SD card for data transfer. + Set the number and size of data blocks before sending IO commands to the SD card. + + @param[in] Lba Logical Block Address. + @param[in] Buf Buffer Address. + @param[in] Size Size of Data Blocks. + + @retval EFI_SUCCESS The SD card was prepared successfully. + @retval Other An error occurred during the preparation of the SD card. + +**/ +EFI_STATUS +BmSdPrepare ( + IN INT32 Lba, + IN UINTN Buf, + IN UINTN Size + ) +{ + UINTN LoadAddr; + UINTN Base; + UINT32 BlockCnt; + UINT32 BlockSize; + UINT8 Tmp; + + LoadAddr = Buf; + + if (Size >= MMC_BLOCK_SIZE) { + // CMD17, 18, 24, 25 + // ASSERT (((LoadAddr & MMC_BLOCK_MASK) == 0) && ((Size % MMC_BLOCK_SIZE) == 0)); + BlockSize = MMC_BLOCK_SIZE; + BlockCnt = Size / MMC_BLOCK_SIZE; + } else { + // ACMD51 + ASSERT (((LoadAddr & 8) == 0) && ((Size % 8) == 0)); + BlockSize = 8; + BlockCnt = Size / 8; + } + + Base = BmParams.RegBase; + + if (!(BmParams.Flags & SD_USE_PIO)) { + if (MmioRead16 (Base + SDHCI_HOST_CONTROL2) & SDHCI_HOST_VER4_ENABLE) { + MmioWrite32 (Base + SDHCI_ADMA_SA_LOW, LoadAddr); + MmioWrite32 (Base + SDHCI_ADMA_SA_HIGH, (LoadAddr >> 32)); + MmioWrite32 (Base + SDHCI_DMA_ADDRESS, BlockCnt); + MmioWrite16 (Base + SDHCI_BLOCK_COUNT, 0); + } else { + ASSERT((LoadAddr >> 32) == 0); + MmioWrite32 (Base + SDHCI_DMA_ADDRESS, LoadAddr); + MmioWrite16 (Base + SDHCI_BLOCK_COUNT, BlockCnt); + } + + // 512K bytes SDMA buffer boundary + MmioWrite16 (Base + SDHCI_BLOCK_SIZE, SDHCI_MAKE_BLKSZ(7, BlockSize)); + + // select SDMA + Tmp = MmioRead8 (Base + SDHCI_HOST_CONTROL); + Tmp &= ~SDHCI_CTRL_DMA_MASK; + Tmp |= SDHCI_CTRL_SDMA; + MmioWrite8 (Base + SDHCI_HOST_CONTROL, Tmp); + } else { + MmioWrite16 (Base + SDHCI_BLOCK_SIZE, BlockSize); + MmioWrite16 (Base + SDHCI_BLOCK_COUNT, BlockCnt); + } + + return EFI_SUCCESS; +} + +/** + SD card sends command to read data blocks. + + @param[in] Lba Logical Block Address. + @param[in] Buf Buffer Address. + @param[in] Size Size of Data Blocks. + + @retval EFI_SUCCESS The command to read data blocks was sent successfully. + @retval EFI_TIMEOUT The command transmission or data transfer timed out. + +**/ +EFI_STATUS +BmSdRead ( + IN INT32 Lba, + IN UINT32* Buf, + IN UINTN Size + ) +{ + UINT32 Timeout; + UINTN Base; + UINT32 *Data; + UINT32 BlockSize; + UINT32 BlockCnt; + UINT32 Status; + + Timeout = 0; + Base = BmParams.RegBase; + Data = Buf; + BlockSize = 0; + BlockCnt = 0; + Status = 0; + + if (BmParams.Flags & SD_USE_PIO) { + BlockSize = MmioRead16 (Base + SDHCI_BLOCK_SIZE); + BlockCnt = Size / BlockSize; + BlockSize /= 4; + + for (INT32 I = 0; I < BlockCnt; ) { + Status = MmioRead16 (Base + SDHCI_INT_STATUS); + if ((Status & SDHCI_INT_BUF_RD_READY) && + (MmioRead32 (Base + SDHCI_PSTATE) & SDHCI_BUF_RD_ENABLE)) { + MmioWrite16 (Base + SDHCI_INT_STATUS, SDHCI_INT_BUF_RD_READY); + for (INT32 j = 0; j < BlockSize; j++) { + *(Data++) = MmioRead32 (Base + SDHCI_BUF_DATA_R); + } + + Timeout = 0; + I++; + } else { + gBS->Stall (1); + Timeout++; + } + + if (Timeout >= 10000) { + DEBUG ((DEBUG_INFO, "%a: sdhci read data Timeout\n", __func__)); + goto Timeout; + } + } + + Timeout = 0; + while (1) { + Status = MmioRead16 (Base + SDHCI_INT_STATUS); + if (Status & SDHCI_INT_XFER_COMPLETE) { + MmioWrite16 (Base + SDHCI_INT_STATUS, + Status | SDHCI_INT_XFER_COMPLETE); + + return EFI_SUCCESS; + } else { + gBS->Stall (1); + Timeout++; + } + + if (Timeout >= 10000) { + DEBUG ((DEBUG_INFO, "%a:wait xfer complete Timeout\n", __func__)); + goto Timeout; + } + } + } else { + return EFI_SUCCESS; + } + +Timeout: + return EFI_TIMEOUT; + +} + +/** + SD card sends commands to write data blocks. + + @param[in] Lba Logical Block Address. + @param[in] Buf Buffer Address. + @param[in] Size Size of Data Blocks. + + @retval EFI_SUCCESS The command to write data blocks was sent successfully. + @retval EFI_TIMEOUT The command transmission or data transfer timed out. + +**/ +EFI_STATUS +BmSdWrite ( + IN INT32 Lba, + IN UINT32* Buf, + IN UINTN Size + ) +{ + UINT32 Timeout; + UINTN Base; + UINT32 *Data; + UINT32 BlockSize; + UINT32 BlockCnt; + UINT32 Status; + + Timeout = 0; + Base = BmParams.RegBase; + Data = Buf; + BlockSize = 0; + BlockCnt = 0; + Status = 0; + + if (BmParams.Flags & SD_USE_PIO) { + BlockSize = MmioRead16 (Base + SDHCI_BLOCK_SIZE); + BlockCnt = Size / BlockSize; + BlockSize /= 4; + + for (INT32 j = 0; j < BlockSize; j++) { + MmioWrite32 (Base + SDHCI_BUF_DATA_R, *(Data++)); + } + + for (INT32 I = 0; I < BlockCnt-1; ) { + Status = MmioRead16 (Base + SDHCI_INT_STATUS); + if ((Status & SDHCI_INT_BUF_WR_READY) && + (MmioRead32 (Base + SDHCI_PSTATE) & + SDHCI_BUF_WR_ENABLE)) { + MmioWrite16 (Base + SDHCI_INT_STATUS, SDHCI_INT_BUF_WR_READY); + for (INT32 j = 0; j < BlockSize; j++) { + MmioWrite32 (Base + SDHCI_BUF_DATA_R, *(Data++)); + } + + Timeout = 0; + I++; + } else { + gBS->Stall (1); + Timeout++; + } + + if (Timeout >= 10000000) { + DEBUG ((DEBUG_INFO, "%a:sdhci write data Timeout\n", __func__)); + goto Timeout; + } + } + + Timeout = 0; + while (1) { + Status = MmioRead16 (Base + SDHCI_INT_STATUS); + if (Status & SDHCI_INT_XFER_COMPLETE) { + MmioWrite16 (Base + SDHCI_INT_STATUS, + Status | SDHCI_INT_XFER_COMPLETE); + + return EFI_SUCCESS; + } else { + gBS->Stall (1); + Timeout++; + } + + if (Timeout >= 10000) { + DEBUG ((DEBUG_INFO, "%a:wait xfer complete Timeout\n", __func__)); + goto Timeout; + } + } + } else + return EFI_SUCCESS; + +Timeout: + return EFI_TIMEOUT; +} + +/** + Initialize the SD PHY. + + This function performs the initialization of the SD PHY hardware. + +**/ +VOID +SdPhyInit ( + VOID + ) +{ + UINTN Base; + INT32 RetryCount; + + Base = BmParams.RegBase; + RetryCount = 100; + + // reset hardware + MmioWrite8 (Base + SDHCI_SOFTWARE_RESET, 0x7); + while (MmioRead8 (Base + SDHCI_SOFTWARE_RESET)) { + if (RetryCount-- > 0) + gBS->Stall (10000); + else + break; + } + + // Wait for the PHY power on ready + RetryCount = 100; + while (!(MmioRead32 (Base + SDHCI_P_PHY_CNFG) & (1 << PHY_CNFG_PHY_PWRGOOD))) { + if (RetryCount-- > 0) + gBS->Stall (10000); + else + break; + } + + // Asset reset of phy + MmioAnd32 (Base + SDHCI_P_PHY_CNFG, ~(1 << PHY_CNFG_PHY_RSTN)); + + // Set PAD_SN PAD_SP + MmioWrite32 (Base + SDHCI_P_PHY_CNFG, + (1 << PHY_CNFG_PHY_PWRGOOD) | (0x9 << PHY_CNFG_PAD_SP) | (0x8 << PHY_CNFG_PAD_SN)); + + // Set CMDPAD + MmioWrite16 (Base + SDHCI_P_CMDPAD_CNFG, + (0x2 << PAD_CNFG_RXSEL) | (1 << PAD_CNFG_WEAKPULL_EN) | + (0x3 << PAD_CNFG_TXSLEW_CTRL_P) | (0x2 << PAD_CNFG_TXSLEW_CTRL_N)); + + // Set DATAPAD + MmioWrite16 (Base + SDHCI_P_DATPAD_CNFG, + (0x2 << PAD_CNFG_RXSEL) | (1 << PAD_CNFG_WEAKPULL_EN) | + (0x3 << PAD_CNFG_TXSLEW_CTRL_P) | (0x2 << PAD_CNFG_TXSLEW_CTRL_N)); + + // Set CLKPAD + MmioWrite16 (Base + SDHCI_P_CLKPAD_CNFG, + (0x2 << PAD_CNFG_RXSEL) | (0x3 << PAD_CNFG_TXSLEW_CTRL_P) | (0x2 << PAD_CNFG_TXSLEW_CTRL_N)); + + // Set STB_PAD + MmioWrite16 (Base + SDHCI_P_STBPAD_CNFG, + (0x2 << PAD_CNFG_RXSEL) | (0x2 << PAD_CNFG_WEAKPULL_EN) | + (0x3 << PAD_CNFG_TXSLEW_CTRL_P) | (0x2 << PAD_CNFG_TXSLEW_CTRL_N)); + + // Set RSTPAD + MmioWrite16 (Base + SDHCI_P_RSTNPAD_CNFG, + (0x2 << PAD_CNFG_RXSEL) | (1 << PAD_CNFG_WEAKPULL_EN) | + (0x3 << PAD_CNFG_TXSLEW_CTRL_P) | (0x2 << PAD_CNFG_TXSLEW_CTRL_N)); + + // Set SDCLKDL_CNFG, EXTDLY_EN = 1, fix delay + MmioWrite8 (Base + SDHCI_P_SDCLKDL_CNFG, (1 << SDCLKDL_CNFG_EXTDLY_EN)); + + // Set SMPLDL_CNFG, Bypass + MmioWrite8 (Base + SDHCI_P_SMPLDL_CNFG, (1 << SMPLDL_CNFG_BYPASS_EN)); + + // Set ATDL_CNFG, tuning Clk not use for init + MmioWrite8 (Base + SDHCI_P_ATDL_CNFG, (2 << ATDL_CNFG_INPSEL_CNFG)); + + return; +} + +/** + Initialize the SD card. + + This function performs the initialization of the SD card hardware and settings. + + @param[in] Flags Initialization flags. + + @retval EFI_SUCCESS The SD card was initialized successfully. + +**/ +EFI_STATUS +SdInit ( + IN UINT32 Flags +) +{ + BmParams.ClkRate = BmGetSdClk (); + + DEBUG ((DEBUG_INFO, "SD initializing %dHz\n", BmParams.ClkRate)); + + BmParams.Flags = Flags; + + SdPhyInit (); + + SdHwInit (); + + return EFI_SUCCESS; +} diff --git a/Silicon/Sophgo/SG2042Pkg/Drivers/SdHostDxe/SdHostDxe.c b/Silicon/Sophgo/SG2042Pkg/Drivers/SdHostDxe/SdHostDxe.c new file mode 100644 index XXXXXXX..XXXXXXX --- /dev/null +++ b/Silicon/Sophgo/SG2042Pkg/Drivers/SdHostDxe/SdHostDxe.c @@ -XXX,XX +XXX,XX @@ +/** @file + This file implements the SD host controller driver for UEFI systems. + The file contains the implementation of the EFI_MMC_HOST_PROTOCOL, which provides + the necessary interfaces for handling communication and data transfer with SD cards. + + Copyright (c) 2017, Andrei Warkentin <andrey.warkentin@gmail.com> + Copyright (c) Microsoft Corporation. All rights reserved. + Copyright (c) 2023, Academy of Intelligent Innovation, Shandong Universiy, China.P.R. All rights reserved.<BR> + SPDX-License-Identifier: BSD-2-Clause-Patent + +**/ + +#include <Uefi.h> +#include <Library/BaseLib.h> +#include <Library/MemoryAllocationLib.h> +#include <Library/DebugLib.h> +#include <Library/DevicePathLib.h> +#include <Library/IoLib.h> +#include <Library/PcdLib.h> +#include <Library/UefiBootServicesTableLib.h> +#include <Library/BaseMemoryLib.h> +#include <Library/DmaLib.h> +#include <Library/TimerLib.h> + +#include <Protocol/EmbeddedExternalDevice.h> +#include <Protocol/BlockIo.h> +#include <Protocol/DevicePath.h> +#include <Include/MmcHost.h> + +#include "SdHci.h" + +#define SDHOST_BLOCK_BYTE_LENGTH 512 + +#define DEBUG_MMCHOST_SD DEBUG_VERBOSE +#define DEBUG_MMCHOST_SD_INFO DEBUG_INFO +#define DEBUG_MMCHOST_SD_ERROR DEBUG_ERROR + +STATIC BOOLEAN mCardIsPresent = FALSE; +STATIC CARD_DETECT_STATE mCardDetectState = CardDetectRequired; +BM_SD_PARAMS BmParams; + +/** + Check if the SD card is read-only. + + @param[in] This Pointer to the EFI_MMC_HOST_PROTOCOL instance. + + @retval FALSE The SD card is not read-only. + +**/ +STATIC +BOOLEAN +SdIsReadOnly ( + IN EFI_MMC_HOST_PROTOCOL *This + ) +{ + return FALSE; +} + +/** + Build the device path for the SD card. + + @param[in] This Pointer to the EFI_MMC_HOST_PROTOCOL instance. + @param[out] DevicePath Pointer to the location to store the newly created device path. + + @retval EFI_SUCCESS The device path is built successfully. + +**/ +STATIC +EFI_STATUS +SdBuildDevicePath ( + IN EFI_MMC_HOST_PROTOCOL *This, + OUT EFI_DEVICE_PATH_PROTOCOL **DevicePath + ) +{ + EFI_DEVICE_PATH_PROTOCOL *NewDevicePathNode; + EFI_GUID DevicePathGuid = EFI_CALLER_ID_GUID; + + DEBUG ((DEBUG_MMCHOST_SD, "SdHost: SdBuildDevicePath ()\n")); + + NewDevicePathNode = CreateDeviceNode (HARDWARE_DEVICE_PATH, HW_VENDOR_DP, sizeof (VENDOR_DEVICE_PATH)); + CopyGuid (&((VENDOR_DEVICE_PATH*)NewDevicePathNode)->Guid, &DevicePathGuid); + *DevicePath = NewDevicePathNode; + + return EFI_SUCCESS; +} + +/** + Send a command to the SD card. + + @param[in] This Pointer to the EFI_MMC_HOST_PROTOCOL instance. + @param[in] MmcCmd The MMC command to send. + @param[in] Argument The argument for the command. + @param[in] Type The type of response expected. + @param[in] Buffer Pointer to the buffer to store the response. + + @retval EFI_SUCCESS The command was sent successfully and the response was retrieved. + @retval Other An error occurred while sending a command. +**/ +STATIC +EFI_STATUS +SdSendCommand ( + IN EFI_MMC_HOST_PROTOCOL *This, + IN MMC_IDX MmcCmd, + IN UINT32 Argument, + IN MMC_RESPONSE_TYPE Type, + IN UINT32* Buffer + ) +{ + EFI_STATUS Status; + + Status = BmSdSendCmd (MmcCmd, Argument, Type, Buffer); + + if (EFI_ERROR (Status)) { + DEBUG ((DEBUG_MMCHOST_SD_ERROR, "SdSendCommand Error, Status=%r.\n", Status)); + return Status; + } + + return EFI_SUCCESS; +} + +/** + Read block data from an SD card. + + @param[in] This Pointer to the EFI_MMC_HOST_PROTOCOL instance. + @param[in] Lba Logical Block Address of the starting block to read. + @param[in] Length Number of blocks to read. + @param[in] Buffer Pointer to the buffer to store the read data. + + @retval EFI_SUCCESS The operation completed successfully. + @retval Other The operation failed. + +**/ +STATIC +EFI_STATUS +SdReadBlockData ( + IN EFI_MMC_HOST_PROTOCOL *This, + IN EFI_LBA Lba, + IN UINTN Length, + OUT UINT32* Buffer + ) +{ + EFI_STATUS Status; + + ASSERT (Buffer != NULL); + ASSERT (Length % 4 == 0); + + Status = BmSdRead (Lba, Buffer, Length); + + if (EFI_ERROR (Status)) { + DEBUG ((DEBUG_MMCHOST_SD_ERROR, "SdReadBlockData Error, Status=%r.\n", Status)); + return Status; + } + + return EFI_SUCCESS; +} + +/** + Write block data to an SD card. + + @param[in] This Pointer to the EFI_MMC_HOST_PROTOCOL instance. + @param[in] Lba Logical Block Address of the starting block to write. + @param[in] Length Number of blocks to write. + @param[in] Buffer Pointer to the buffer containing the data to be written. + + @retval EFI_SUCCESS The operation completed successfully. + @retval Other The operation failed. + +**/ +STATIC +EFI_STATUS +SdWriteBlockData ( + IN EFI_MMC_HOST_PROTOCOL *This, + IN EFI_LBA Lba, + IN UINTN Length, + IN UINT32* Buffer + ) +{ + EFI_STATUS Status; + + DEBUG ((DEBUG_MMCHOST_SD, "SdHost: SdWriteBlockData(LBA: 0x%x, Length: 0x%x, Buffer: 0x%x)\n",(UINT32)Lba, Length, Buffer)); + + ASSERT (Buffer != NULL); + ASSERT (Length % SDHOST_BLOCK_BYTE_LENGTH == 0); + + Status = BmSdWrite (Lba, Buffer, Length); + + if (EFI_ERROR (Status)) { + DEBUG ((DEBUG_MMCHOST_SD_ERROR, "SdWriteBlockData Error, Status=%r.\n", Status)); + return Status; + } + + return EFI_SUCCESS; +} + +/** + Set the I/O settings for an SD card. + + @param[in] This Pointer to the EFI_MMC_HOST_PROTOCOL instance. + @param[in] BusClockFreq Bus clock frequency in Hz. + @param[in] BusWidth Bus width setting. + + @retval EFI_SUCCESS The operation completed successfully. + @retval Other The operation failed. + +**/ +STATIC +EFI_STATUS +SdSetIos ( + IN EFI_MMC_HOST_PROTOCOL *This, + IN UINT32 BusClockFreq, + IN UINT32 BusWidth + ) +{ + EFI_STATUS Status; + + DEBUG ((DEBUG_MMCHOST_SD_INFO, "%a: Setting Freq %u Hz\n", __func__, BusClockFreq)); + DEBUG ((DEBUG_MMCHOST_SD_INFO, "%a: Setting BusWidth %u\n", __func__, BusWidth)); + + Status = BmSdSetIos (BusClockFreq,BusWidth); + + if (EFI_ERROR (Status)) { + DEBUG ((DEBUG_MMCHOST_SD_ERROR, "SdSetIos Error, Status=%r.\n", Status)); + return Status; + } + + return EFI_SUCCESS; +} + +/** + Prepare the SD card for data transfer. + + @param[in] This Pointer to the EFI_MMC_HOST_PROTOCOL instance. + @param[in] Lba Logical Block Address of the starting block to prepare. + @param[in] Length Number of blocks to prepare. + @param[in] Buffer Buffer containing the data to be prepared. + + @retval EFI_SUCCESS The operation completed successfully. + @retval Other The operation failed. + +**/ +STATIC +EFI_STATUS +SdPrepare ( + IN EFI_MMC_HOST_PROTOCOL *This, + IN EFI_LBA Lba, + IN UINTN Length, + IN UINTN Buffer + ) +{ + EFI_STATUS Status; + + Status = BmSdPrepare (Lba, Buffer, Length); + + if (EFI_ERROR (Status)) { + DEBUG ((DEBUG_MMCHOST_SD_ERROR, "SdPrepare Error, Status=%r.\n", Status)); + return Status; + } + + return EFI_SUCCESS; +} + +/** + Notify the state of the SD card. + + @param[in] This Pointer to the EFI_MMC_HOST_PROTOCOL instance. + @param[in] State State of the SD card. + + @retval EFI_SUCCESS The operation completed successfully. + @retval EFI_NOT_READY The card detection has not completed yet. + @retval Other The operation failed. + +**/ +STATIC +EFI_STATUS +SdNotifyState ( + IN EFI_MMC_HOST_PROTOCOL *This, + IN MMC_STATE State + ) +{ + // Stall all operations except init until card detection has occurred. + if (State != MmcHwInitializationState && mCardDetectState != CardDetectCompleted) { + return EFI_NOT_READY; + } + + switch (State) { + case MmcHwInitializationState: + DEBUG ((DEBUG_MMCHOST_SD, "MmcHwInitializationState\n", State)); + + EFI_STATUS Status = SdInit (SD_USE_PIO); + if (EFI_ERROR (Status)) { + DEBUG ((DEBUG_MMCHOST_SD_ERROR,"SdHost: SdNotifyState(): Fail to initialize!\n")); + return Status; + } + break; + case MmcIdleState: + DEBUG ((DEBUG_MMCHOST_SD, "MmcIdleState\n", State)); + break; + case MmcReadyState: + DEBUG ((DEBUG_MMCHOST_SD, "MmcReadyState\n", State)); + break; + case MmcIdentificationState: + DEBUG ((DEBUG_MMCHOST_SD, "MmcIdentificationState\n", State)); + break; + case MmcStandByState: + DEBUG ((DEBUG_MMCHOST_SD, "MmcStandByState\n", State)); + break; + case MmcTransferState: + DEBUG ((DEBUG_MMCHOST_SD, "MmcTransferState\n", State)); + break; + case MmcSendingDataState: + DEBUG ((DEBUG_MMCHOST_SD, "MmcSendingDataState\n", State)); + break; + case MmcReceiveDataState: + DEBUG ((DEBUG_MMCHOST_SD, "MmcReceiveDataState\n", State)); + break; + case MmcProgrammingState: + DEBUG ((DEBUG_MMCHOST_SD, "MmcProgrammingState\n", State)); + break; + case MmcDisconnectState: + case MmcInvalidState: + default: + DEBUG ((DEBUG_MMCHOST_SD_ERROR, "SdHost: SdNotifyState(): Invalid State: %d\n", State)); + ASSERT (0); + } + + return EFI_SUCCESS; +} + +/** + Check if an SD card is present. + + @param[in] This Pointer to the EFI_MMC_HOST_PROTOCOL instance. + + @retval TRUE An SD card is present. + @retval FALSE No SD card is present. + +**/ +STATIC +BOOLEAN +SdIsCardPresent ( + IN EFI_MMC_HOST_PROTOCOL *This + ) +{ + // + // If we are already in progress (we may get concurrent calls) + // or completed the detection, just return the current value. + // + if (mCardDetectState != CardDetectRequired) { + return mCardIsPresent; + } + + mCardDetectState = CardDetectInProgress; + mCardIsPresent = FALSE; + + if (BmSdCardDetect () == 1) { + mCardIsPresent = TRUE; + goto out; + } + else { + DEBUG ((DEBUG_MMCHOST_SD_ERROR, "SdIsCardPresent: Error SdCardDetect.\n")); + mCardDetectState = CardDetectRequired; + return FALSE; + } + + DEBUG ((DEBUG_MMCHOST_SD_INFO, "SdIsCardPresent: Not detected.\n")); + +out: + mCardDetectState = CardDetectCompleted; + return mCardIsPresent; +} + +/** + Check if the SD card supports multi-block transfers. + + @param[in] This Pointer to the EFI_MMC_HOST_PROTOCOL instance. + + @retval TRUE The SD card supports multi-block transfers. + +**/ +BOOLEAN +SdIsMultiBlock ( + IN EFI_MMC_HOST_PROTOCOL *This + ) +{ + return TRUE; +} + +EFI_MMC_HOST_PROTOCOL gMmcHost = { + MMC_HOST_PROTOCOL_REVISION, + SdIsCardPresent, + SdIsReadOnly, + SdBuildDevicePath, + SdNotifyState, + SdSendCommand, + SdReadBlockData, + SdWriteBlockData, + SdSetIos, + SdPrepare, + SdIsMultiBlock +}; + +/** + Initialize the SD host. + + @param[in] ImageHandle The image handle. + @param[in] SystemTable The system table. + + @retval EFI_SUCCESS The operation completed successfully. + @retval Other The operation failed. +**/ +EFI_STATUS +SdHostInitialize ( + IN EFI_HANDLE ImageHandle, + IN EFI_SYSTEM_TABLE *SystemTable + ) +{ + EFI_STATUS Status; + EFI_HANDLE Handle; + UINTN Base; + + DEBUG ((DEBUG_MMCHOST_SD, "SdHost: Initialize\n")); + + Handle = NULL; + Base = SDIO_BASE; + + if(!PcdGetBool (PcdForceNoMMU)){ + for (INT32 I = 39; I < 64; I++) { + if (Base & (1ULL << 38)) { + Base |= (1ULL << I); + } else { + Base &= ~(1ULL << I); + } + } + } + + BmParams.RegBase = Base; + BmParams.ClkRate = 50 * 1000 * 1000; + BmParams.BusWidth = MMC_BUS_WIDTH_4; + BmParams.Flags = 0; + BmParams.CardIn = SDCARD_STATUS_UNKNOWN; + + Status = gBS->InstallMultipleProtocolInterfaces ( + &Handle, + &gSophgoMmcHostProtocolGuid, + &gMmcHost, + NULL + ); + ASSERT_EFI_ERROR (Status); + return Status; +} -- 2.34.1 -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#108378): https://edk2.groups.io/g/devel/message/108378 Mute This Topic: https://groups.io/mt/101213491/1787277 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org] -=-=-=-=-=-=-=-=-=-=-=-
From: caiyuqing379 <202235273@mail.sdu.edu.cn> This driver implements the MMC Host protocol, which is used by SD interface driver that the Sophgo SG2042 EVB supports. Add this driver in Sophgo/SG2042Pkg leveraging the one form Embedded Package. Signed-off-by: caiyuqing379 <202235273@mail.sdu.edu.cn> Co-authored-by: USER0FISH <libing1202@outlook.com> Cc: dahogn <dahogn@hotmail.com> Cc: meng-cz <mengcz1126@gmail.com> Cc: yli147 <yong.li@intel.com> Cc: ChaiEvan <evan.chai@intel.com> Cc: Sunil V L <sunilvl@ventanamicro.com> Cc: Leif Lindholm <quic_llindhol@quicinc.com> --- .../SG2042Pkg/Drivers/MmcDxe/MmcDxe.inf | 46 ++ Silicon/Sophgo/SG2042Pkg/Drivers/MmcDxe/Mmc.h | 513 +++++++++++++ Silicon/Sophgo/SG2042Pkg/Include/MmcHost.h | 225 ++++++ .../SG2042Pkg/Drivers/MmcDxe/ComponentName.c | 156 ++++ .../SG2042Pkg/Drivers/MmcDxe/Diagnostics.c | 323 ++++++++ Silicon/Sophgo/SG2042Pkg/Drivers/MmcDxe/Mmc.c | 527 +++++++++++++ .../SG2042Pkg/Drivers/MmcDxe/MmcBlockIo.c | 643 ++++++++++++++++ .../SG2042Pkg/Drivers/MmcDxe/MmcDebug.c | 194 +++++ .../Drivers/MmcDxe/MmcIdentification.c | 719 ++++++++++++++++++ 9 files changed, 3346 insertions(+) create mode 100644 Silicon/Sophgo/SG2042Pkg/Drivers/MmcDxe/MmcDxe.inf create mode 100644 Silicon/Sophgo/SG2042Pkg/Drivers/MmcDxe/Mmc.h create mode 100644 Silicon/Sophgo/SG2042Pkg/Include/MmcHost.h create mode 100644 Silicon/Sophgo/SG2042Pkg/Drivers/MmcDxe/ComponentName.c create mode 100644 Silicon/Sophgo/SG2042Pkg/Drivers/MmcDxe/Diagnostics.c create mode 100644 Silicon/Sophgo/SG2042Pkg/Drivers/MmcDxe/Mmc.c create mode 100644 Silicon/Sophgo/SG2042Pkg/Drivers/MmcDxe/MmcBlockIo.c create mode 100644 Silicon/Sophgo/SG2042Pkg/Drivers/MmcDxe/MmcDebug.c create mode 100644 Silicon/Sophgo/SG2042Pkg/Drivers/MmcDxe/MmcIdentification.c diff --git a/Silicon/Sophgo/SG2042Pkg/Drivers/MmcDxe/MmcDxe.inf b/Silicon/Sophgo/SG2042Pkg/Drivers/MmcDxe/MmcDxe.inf new file mode 100644 index XXXXXXX..XXXXXXX --- /dev/null +++ b/Silicon/Sophgo/SG2042Pkg/Drivers/MmcDxe/MmcDxe.inf @@ -XXX,XX +XXX,XX @@ +## @file +# Component description file for the MMC DXE driver module. +# +# Copyright (c) 2011-2015, ARM Limited. All rights reserved. +# Copyright (c) 2023, Academy of Intelligent Innovation, Shandong Universiy, China.P.R. All rights reserved.<BR> +# +# SPDX-License-Identifier: BSD-2-Clause-Patent +# +## + +[Defines] + INF_VERSION = 0x0001001A + BASE_NAME = MmcDxe + FILE_GUID = B5A53998-42AD-4C66-8D2D-1C5FBD175F25 + MODULE_TYPE = DXE_DRIVER + VERSION_STRING = 1.0 + ENTRY_POINT = MmcDxeInitialize + +[Sources.common] + ComponentName.c + Mmc.h + Mmc.c + MmcBlockIo.c + MmcIdentification.c + MmcDebug.c + Diagnostics.c + +[Packages] + MdePkg/MdePkg.dec + Silicon/Sophgo/SG2042Pkg/SG2042Pkg.dec + +[LibraryClasses] + BaseLib + UefiLib + UefiDriverEntryPoint + BaseMemoryLib + +[Protocols] + gEfiDiskIoProtocolGuid ## CONSUMES + gEfiBlockIoProtocolGuid ## PRODUCES + gEfiDevicePathProtocolGuid ## PRODUCES + gEfiDriverDiagnostics2ProtocolGuid ## SOMETIMES_PRODUCES + gSophgoMmcHostProtocolGuid ## CONSUMES + +[Depex] + TRUE diff --git a/Silicon/Sophgo/SG2042Pkg/Drivers/MmcDxe/Mmc.h b/Silicon/Sophgo/SG2042Pkg/Drivers/MmcDxe/Mmc.h new file mode 100644 index XXXXXXX..XXXXXXX --- /dev/null +++ b/Silicon/Sophgo/SG2042Pkg/Drivers/MmcDxe/Mmc.h @@ -XXX,XX +XXX,XX @@ +/** @file + Main Header file for the MMC DXE driver + + Copyright (c) 2011-2015, ARM Limited. All rights reserved. + Copyright (c) 2023, Academy of Intelligent Innovation, Shandong Universiy, China.P.R. All rights reserved.<BR> + + SPDX-License-Identifier: BSD-2-Clause-Patent + +**/ + +#ifndef __MMC_H +#define __MMC_H + +#include <Uefi.h> +#include <Include/MmcHost.h> +#include <Protocol/DiskIo.h> +#include <Protocol/BlockIo.h> +#include <Protocol/DevicePath.h> +#include <Library/IoLib.h> +#include <Library/UefiLib.h> +#include <Library/DebugLib.h> +#include <Library/UefiBootServicesTableLib.h> + +#define BIT_32(nr) (1U << (nr)) +#define BIT_64(nr) (1ULL << (nr)) +#define UINT64_C(c) (c ## UL) +#define GENMASK_64(h,l) (((~UINT64_C(0)) << (l)) & (~UINT64_C(0) >> (64 - 1 - (h)))) +#define GENMASK(h,l) GENMASK_64(h,l) + +#define MMC_TRACE(txt) DEBUG((DEBUG_BLKIO, "MMC: " txt "\n")) + +#define MMC_IOBLOCKS_READ 0 +#define MMC_IOBLOCKS_WRITE 1 + +/* Value randomly chosen for eMMC RCA, it should be > 1 */ +#define MMC_FIX_RCA 6 +#define RCA_SHIFT_OFFSET 16 + +#define MMC_OCR_POWERUP BIT31 +#define MMC_OCR_ACCESS_MASK 0x3 /* bit[30-29] */ +#define MMC_OCR_ACCESS_BYTE 0x1 /* bit[29] */ +#define MMC_OCR_ACCESS_SECTOR 0x2 /* bit[30] */ +#define OCR_HCS BIT30 +#define OCR_BYTE_MODE (0U << 29) +#define OCR_SECTOR_MODE (2U << 29) +#define OCR_ACCESS_MODE_MASK (3U << 29) +#define OCR_VDD_MIN_2V7 GENMASK(23, 15) +#define OCR_VDD_MIN_2V0 GENMASK(14, 8) +#define OCR_VDD_MIN_1V7 BIT7 + +/* Value randomly chosen for eMMC RCA, it should be > 1 */ +#define MMC_FIX_RCA 6 +#define RCA_SHIFT_OFFSET 16 + +#define CMD_EXTCSD_PARTITION_CONFIG 179 +#define CMD_EXTCSD_BUS_WIDTH 183 +#define CMD_EXTCSD_HS_TIMING 185 +#define CMD_EXTCSD_PART_SWITCH_TIME 199 +#define CMD_EXTCSD_SEC_CNT 212 + +#define EXTCSD_SET_CMD (0U << 24) +#define EXTCSD_SET_BITS (1U << 24) +#define EXTCSD_CLR_BITS (2U << 24) +#define EXTCSD_WRITE_BYTES (3U << 24) +#define EXTCSD_CMD(x) (((x) & 0xff) << 16) +#define EXTCSD_VALUE(x) (((x) & 0xff) << 8) +#define EXTCSD_CMD_SET_NORMAL 1U + +#define CSD_TRAN_SPEED_UNIT_MASK GENMASK(2, 0) +#define CSD_TRAN_SPEED_MULT_MASK GENMASK(6, 3) +#define CSD_TRAN_SPEED_MULT_SHIFT 3 + +#define MMC_CSD_GET_CCC(Response) (Response[2] >> 20) +#define MMC_CSD_GET_TRANSPEED(Response) (Response[3] & 0xFF) +#define MMC_CSD_GET_READBLLEN(Response) ((Response[2] >> 16) & 0xF) +#define MMC_CSD_GET_WRITEBLLEN(Response) ((Response[0] >> 22) & 0xF) +#define MMC_CSD_GET_FILEFORMAT(Response) ((Response[0] >> 10) & 0x3) +#define MMC_CSD_GET_FILEFORMATGRP(Response) ((Response[0] >> 15) & 0x1) +#define MMC_CSD_GET_DEVICESIZE(csd) (((Response[1] >> 30) & 0x3) | ((Response[2] & 0x3FF) << 2)) +#define HC_MMC_CSD_GET_DEVICESIZE(Response) ((Response[1] >> 16) | ((Response[2] & 0x3F) << 16)); +#define MMC_CSD_GET_DEVICESIZEMULT(csd) ((Response[1] >> 15) & 0x7) + +#define MMC_R0_READY_FOR_DATA (1U << 8) +#define MMC_R0_SWITCH_ERROR (1U << 7) +#define MMC_R0_CURRENTSTATE(Response) ((Response[0] >> 9) & 0xF) +#define MMC_R0_STATE_IDLE 0 +#define MMC_R0_STATE_READY 1 +#define MMC_R0_STATE_IDENT 2 +#define MMC_R0_STATE_STDBY 3 +#define MMC_R0_STATE_TRAN 4 +#define MMC_R0_STATE_DATA 5 +#define MMC_R0_STATE_RECV 6 +#define MMC_R0_STATE_PROG 7 +#define MMC_R0_STATE_DIS 8 + +#define EMMC_CMD6_ARG_ACCESS(x) (((x) & 0x3) << 24) +#define EMMC_CMD6_ARG_INDEX(x) (((x) & 0xFF) << 16) +#define EMMC_CMD6_ARG_VALUE(x) (((x) & 0xFF) << 8) +#define EMMC_CMD6_ARG_CMD_SET(x) (((x) & 0x7) << 0) + +#define SWITCH_CMD_DATA_LENGTH 64 +#define SD_HIGH_SPEED_SUPPORTED 0x200 +#define SD_DEFAULT_SPEED 25000000 +#define SD_HIGH_SPEED 50000000 +#define SWITCH_CMD_SUCCESS_MASK 0xf +#define CMD8_CHECK_PATTERN 0xAAU +#define VHS_2_7_3_6_V BIT8 + +#define SD_SCR_BUS_WIDTH_1 BIT8 +#define SD_SCR_BUS_WIDTH_4 BIT10 + +typedef enum { + UNKNOWN_CARD, + MMC_CARD, //MMC card + MMC_CARD_HIGH, //MMC Card with High capacity + EMMC_CARD, //eMMC 4.41 card + SD_CARD, //SD 1.1 card + SD_CARD_2, //SD 2.0 or above standard card + SD_CARD_2_HIGH //SD 2.0 or above high capacity card +} CARD_TYPE; + +typedef struct { + UINT32 Reserved0: 7; // 0 + UINT32 V170_V195: 1; // 1.70V - 1.95V + UINT32 V200_V260: 7; // 2.00V - 2.60V + UINT32 V270_V360: 9; // 2.70V - 3.60V + UINT32 RESERVED_1: 5; // Reserved + UINT32 AccessMode: 2; // 00b (byte mode), 10b (sector mode) + UINT32 PowerUp: 1; // This bit is set to LOW if the card has not finished the power up routine +} OCR; + +typedef struct { + UINT8 SD_SPEC: 4; // SD Memory Card - Spec. Version [59:56] + UINT8 SCR_STRUCTURE: 4; // SCR Structure [63:60] + UINT8 SD_BUS_WIDTHS: 4; // DAT Bus widths supported [51:48] + UINT8 DATA_STAT_AFTER_ERASE: 1; // Data Status after erases [55] + UINT8 SD_SECURITY: 3; // CPRM Security Support [54:52] + UINT8 EX_SECURITY_1: 1; // Extended Security Support [43] + UINT8 SD_SPEC4: 1; // Spec. Version 4.00 or higher [42] + UINT8 RESERVED_1: 2; // Reserved [41:40] + UINT8 SD_SPEC3: 1; // Spec. Version 3.00 or higher [47] + UINT8 EX_SECURITY_2: 3; // Extended Security Support [46:44] + UINT8 CMD_SUPPORT: 4; // Command Support bits [35:32] + UINT8 RESERVED_2: 4; // Reserved [39:36] + UINT32 RESERVED_3; // Manufacturer Usage [31:0] +} SCR; + +typedef struct { + UINT32 NOT_USED; // 1 [0:0] + UINT32 CRC; // CRC7 checksum [7:1] + + UINT32 MDT; // Manufacturing date [19:8] + UINT32 RESERVED_1; // Reserved [23:20] + UINT32 PSN; // Product serial number [55:24] + UINT8 PRV; // Product revision [63:56] + UINT8 PNM[5]; // Product name [64:103] + UINT16 OID; // OEM/Application ID [119:104] + UINT8 MID; // Manufacturer ID [127:120] +} CID; + +/* + * designware can't read out response bit 0-7, it only returns + * bit 8-135, so we shift 8 bits here. + */ +typedef struct { +#ifdef FULL_CSD + UINT8 NOT_USED: 1; // Not used, always 1 [0:0] + UINT8 CRC: 7; // CRC [7:1] +#endif + UINT8 RESERVED_1: 2; // Reserved [9:8] + UINT8 FILE_FORMAT: 2; // File format [11:10] + UINT8 TMP_WRITE_PROTECT: 1; // Temporary write protection [12:12] + UINT8 PERM_WRITE_PROTECT: 1; // Permanent write protection [13:13] + UINT8 COPY: 1; // Copy flag (OTP) [14:14] + UINT8 FILE_FORMAT_GRP: 1; // File format group [15:15] + + UINT16 RESERVED_2: 5; // Reserved [20:16] + UINT16 WRITE_BL_PARTIAL: 1; // Partial blocks for write allowed [21:21] + UINT16 WRITE_BL_LEN: 4; // Max. write data block length [25:22] + UINT16 R2W_FACTOR: 3; // Write speed factor [28:26] + UINT16 RESERVED_3: 2; // Reserved [30:29] + UINT16 WP_GRP_ENABLE: 1; // Write protect group enable [31:31] + + UINT32 WP_GRP_SIZE: 7; // Write protect group size [38:32] + UINT32 SECTOR_SIZE: 7; // Erase sector size [45:39] + UINT32 ERASE_BLK_EN: 1; // Erase single block enable [46:46] + UINT32 C_SIZE_MULT: 3; // Device size multiplier [49:47] + UINT32 VDD_W_CURR_MAX: 3; // Max. write current @ VDD max [52:50] + UINT32 VDD_W_CURR_MIN: 3; // Max. write current @ VDD min [55:53] + UINT32 VDD_R_CURR_MAX: 3; // Max. read current @ VDD max [58:56] + UINT32 VDD_R_CURR_MIN: 3; // Max. read current @ VDD min [61:59] + UINT32 C_SIZELow2: 2; // Device size [63:62] + + UINT32 C_SIZEHigh10: 10;// Device size [73:64] + UINT32 RESERVED_4: 2; // Reserved [75:74] + UINT32 DSR_IMP: 1; // DSR implemented [76:76] + UINT32 READ_BLK_MISALIGN: 1; // Read block misalignment [77:77] + UINT32 WRITE_BLK_MISALIGN: 1; // Write block misalignment [78:78] + UINT32 READ_BL_PARTIAL: 1; // Partial blocks for read allowed [79:79] + UINT32 READ_BL_LEN: 4; // Max. read data block length [83:80] + UINT32 CCC: 12;// Card command classes [95:84] + + UINT8 TRAN_SPEED ; // Max. bus clock frequency [103:96] + UINT8 NSAC ; // Data read access-time 2 in CLK cycles (NSAC*100) [111:104] + UINT8 TAAC ; // Data read access-time 1 [119:112] + + UINT8 RESERVED_5: 2; // Reserved [121:120] + UINT8 SPEC_VERS: 4; // System specification version [125:122] + UINT8 CSD_STRUCTURE: 2; // CSD structure [127:126] +} CSD; + +typedef struct { +#ifdef FULL_CSD + UINT8 NOT_USED: 1; // Not used, always 1 [0:0] + UINT8 CRC: 7; // CRC [7:1] +#endif + UINT8 RESERVED_1: 2; // Reserved [9:8] + UINT8 FILE_FORMAT: 2; // File format [11:10] + UINT8 TMP_WRITE_PROTECT: 1; // Temporary write protection [12:12] + UINT8 PERM_WRITE_PROTECT: 1; // Permanent write protection [13:13] + UINT8 COPY: 1; // Copy flag (OTP) [14:14] + UINT8 FILE_FORMAT_GRP: 1; // File format group [15:15] + + UINT16 RESERVED_2: 5; // Reserved [20:16] + UINT16 WRITE_BL_PARTIAL: 1; // Partial blocks for write allowed [21:21] + UINT16 WRITE_BL_LEN: 4; // Max. write data block length [25:22] + UINT16 R2W_FACTOR: 3; // Write speed factor [28:26] + UINT16 RESERVED_3: 2; // Reserved [30:29] + UINT16 WP_GRP_ENABLE: 1; // Write protect group enable [31:31] + + UINT32 WP_GRP_SIZE: 7; // Write protect group size [38:32] + UINT32 SECTOR_SIZE: 7; // Erase sector size [45:39] + UINT32 ERASE_BLK_EN: 1; // Erase single block enable [46:46] + UINT32 RESERVED_4: 1; // Reserved [47] + UINT32 C_SIZELow16: 16; // Device size [63:48] + + UINT32 C_SIZEHigh6: 6; // Device size [69:64] + UINT32 RESERVED_5: 6; // Reserved [75:70] + UINT32 DSR_IMP: 1; // DSR implemented [76:76] + UINT32 READ_BLK_MISALIGN: 1; // Read block misalignment [77:77] + UINT32 WRITE_BLK_MISALIGN: 1; // Write block misalignment [78:78] + UINT32 READ_BL_PARTIAL: 1; // Partial blocks for read allowed [79:79] + UINT32 READ_BL_LEN: 4; // Max. read data block length [83:80] + UINT32 CCC: 12;// Card command classes [95:84] + + UINT8 TRAN_SPEED: 8; // Max. bus clock frequency [103:96] + UINT8 NSAC: 8; // Data read access-time 2 in CLK cycles (NSAC*100) [111:104] + UINT8 TAAC: 8; // Data read access-time 1 [119:112] + + UINT8 RESERVED_6: 6; // Reserved [121:120] + UINT8 CSD_STRUCTURE: 2; // CSD structure [127:126] +} ECSD; + +typedef struct { + UINT16 RCA; + CARD_TYPE CardType; + OCR OCRData; + CID CIDData; + CSD CSDData; + ECSD *ECSDData; // MMC V2 extended card specific +} CARD_INFO; + +typedef struct _MMC_HOST_INSTANCE { + UINTN Signature; + LIST_ENTRY Link; + EFI_HANDLE MmcHandle; + EFI_DEVICE_PATH_PROTOCOL *DevicePath; + + MMC_STATE State; + EFI_BLOCK_IO_PROTOCOL BlockIo; + CARD_INFO CardInfo; + EFI_MMC_HOST_PROTOCOL *MmcHost; + + BOOLEAN Initialized; +} MMC_HOST_INSTANCE; + +#define MMC_HOST_INSTANCE_SIGNATURE SIGNATURE_32('m', 'm', 'c', 'h') +#define MMC_HOST_INSTANCE_FROM_BLOCK_IO_THIS(a) CR (a, MMC_HOST_INSTANCE, BlockIo, MMC_HOST_INSTANCE_SIGNATURE) +#define MMC_HOST_INSTANCE_FROM_LINK(a) CR (a, MMC_HOST_INSTANCE, Link, MMC_HOST_INSTANCE_SIGNATURE) + + +EFI_STATUS +EFIAPI +MmcGetDriverName ( + IN EFI_COMPONENT_NAME_PROTOCOL *This, + IN CHAR8 *Language, + OUT CHAR16 **DriverName + ); + +EFI_STATUS +EFIAPI +MmcGetControllerName ( + IN EFI_COMPONENT_NAME_PROTOCOL *This, + IN EFI_HANDLE ControllerHandle, + IN EFI_HANDLE ChildHandle OPTIONAL, + IN CHAR8 *Language, + OUT CHAR16 **ControllerName + ); + +extern EFI_COMPONENT_NAME_PROTOCOL gMmcComponentName; +extern EFI_COMPONENT_NAME2_PROTOCOL gMmcComponentName2; + +extern EFI_DRIVER_DIAGNOSTICS2_PROTOCOL gMmcDriverDiagnostics2; + +extern LIST_ENTRY mMmcHostPool; + +/** + Reset the block device. + + This function implements EFI_BLOCK_IO_PROTOCOL.Reset(). + It resets the block device hardware. + ExtendedVerification is ignored in this implementation. + + @param This Indicates a pointer to the calling context. + @param ExtendedVerification Indicates that the driver may perform a more exhaustive + verification operation of the device during reset. + + @retval EFI_SUCCESS The block device was reset. + @retval EFI_DEVICE_ERROR The block device is not functioning correctly and could not be reset. + +**/ +EFI_STATUS +EFIAPI +MmcReset ( + IN EFI_BLOCK_IO_PROTOCOL *This, + IN BOOLEAN ExtendedVerification + ); + +/** + Reads the requested number of blocks from the device. + + This function implements EFI_BLOCK_IO_PROTOCOL.ReadBlocks(). + It reads the requested number of blocks from the device. + All the blocks are read, or an error is returned. + + @param This Indicates a pointer to the calling context. + @param MediaId The media ID that the read request is for. + @param Lba The starting logical block address to read from on the device. + @param BufferSize The size of the Buffer in bytes. + This must be a multiple of the intrinsic block size of the device. + @param Buffer A pointer to the destination buffer for the data. The caller is + responsible for either having implicit or explicit ownership of the buffer. + + @retval EFI_SUCCESS The data was read correctly from the device. + @retval EFI_DEVICE_ERROR The device reported an error while attempting to perform the read operation. + @retval EFI_NO_MEDIA There is no media in the device. + @retval EFI_MEDIA_CHANGED The MediaId is not for the current media. + @retval EFI_BAD_BUFFER_SIZE The BufferSize parameter is not a multiple of the intrinsic block size of the device. + @retval EFI_INVALID_PARAMETER The read request contains LBAs that are not valid, + or the buffer is not on proper alignment. + +**/ +EFI_STATUS +EFIAPI +MmcReadBlocks ( + IN EFI_BLOCK_IO_PROTOCOL *This, + IN UINT32 MediaId, + IN EFI_LBA Lba, + IN UINTN BufferSize, + OUT VOID *Buffer + ); + +/** + Writes a specified number of blocks to the device. + + This function implements EFI_BLOCK_IO_PROTOCOL.WriteBlocks(). + It writes a specified number of blocks to the device. + All blocks are written, or an error is returned. + + @param This Indicates a pointer to the calling context. + @param MediaId The media ID that the write request is for. + @param Lba The starting logical block address to be written. + @param BufferSize The size of the Buffer in bytes. + This must be a multiple of the intrinsic block size of the device. + @param Buffer Pointer to the source buffer for the data. + + @retval EFI_SUCCESS The data were written correctly to the device. + @retval EFI_WRITE_PROTECTED The device cannot be written to. + @retval EFI_NO_MEDIA There is no media in the device. + @retval EFI_MEDIA_CHANGED The MediaId is not for the current media. + @retval EFI_DEVICE_ERROR The device reported an error while attempting to perform the write operation. + @retval EFI_BAD_BUFFER_SIZE The BufferSize parameter is not a multiple of the intrinsic + block size of the device. + @retval EFI_INVALID_PARAMETER The write request contains LBAs that are not valid, + or the buffer is not on proper alignment. + +**/ +EFI_STATUS +EFIAPI +MmcWriteBlocks ( + IN EFI_BLOCK_IO_PROTOCOL *This, + IN UINT32 MediaId, + IN EFI_LBA Lba, + IN UINTN BufferSize, + IN VOID *Buffer + ); + +/** + Flushes all modified data to a physical block device. + + @param This Indicates a pointer to the calling context. + + @retval EFI_SUCCESS All outstanding data were written correctly to the device. + @retval EFI_DEVICE_ERROR The device reported an error while attempting to write data. + @retval EFI_NO_MEDIA There is no media in the device. + +**/ +EFI_STATUS +EFIAPI +MmcFlushBlocks ( + IN EFI_BLOCK_IO_PROTOCOL *This + ); + +/** + Sets the state of the MMC host instance and invokes the + NotifyState function of the MMC host, passing the updated state. + + @param MmcHostInstance Pointer to the MMC host instance. + @param State The new state to be set for the MMC host instance. + + @retval EFI_STATUS + +**/ +EFI_STATUS +MmcNotifyState ( + IN MMC_HOST_INSTANCE *MmcHostInstance, + IN MMC_STATE State + ); + +/** + Initialize the MMC device. + + @param[in] MmcHostInstance MMC host instance + + @retval EFI_SUCCESS MMC device initialized successfully + @retval Other MMC device initialization failed + +**/ +EFI_STATUS +InitializeMmcDevice ( + IN MMC_HOST_INSTANCE *MmcHost + ); + +/** + Callback function to check MMC cards. + + @param[in] Event The event that is being triggered + @param[in] Context The context passed to the event + +**/ +VOID +EFIAPI +CheckCardsCallback ( + IN EFI_EVENT Event, + IN VOID *Context + ); + +/** + Print the Card Specific Data (CSD). + + @param[in] Csd Pointer to the CSD array + +**/ +VOID +PrintCSD ( + IN UINT32* Csd + ); + +/** + Print the Relative Card Address (RCA). + + @param[in] Rca The Relative Card Address (RCA) value + +**/ +VOID +PrintRCA ( + IN UINT32 Rca + ); + +/** + Print the Operation Condition Register (OCR). + + @param[in] Ocr The Operation Condition Register (OCR) value. + +**/ +VOID +PrintOCR ( + IN UINT32 Ocr + ); + +/** + Print the R1 response. + + @param[in] Response The R1 response value. + +**/ +VOID +PrintResponseR1 ( + IN UINT32 Response + ); + +/** + Print the Card Identification (CID) register. + + @param[in] Cid Pointer to the CID array. + +**/ +VOID +PrintCID ( + IN UINT32* Cid + ); + +#endif diff --git a/Silicon/Sophgo/SG2042Pkg/Include/MmcHost.h b/Silicon/Sophgo/SG2042Pkg/Include/MmcHost.h new file mode 100644 index XXXXXXX..XXXXXXX --- /dev/null +++ b/Silicon/Sophgo/SG2042Pkg/Include/MmcHost.h @@ -XXX,XX +XXX,XX @@ +/** @file + Definition of the MMC Host Protocol + + Copyright (c) 2011-2014, ARM Limited. All rights reserved. + Copyright (c) Academy of Intelligent Innovation. All rights reserved.<BR> + + SPDX-License-Identifier: BSD-2-Clause-Patent + + **/ + +#ifndef __MMC_HOST_PROTOCOL_H__ +#define __MMC_HOST_PROTOCOL_H__ + +/* + * Global ID for the MMC Host Protocol + */ +#define MMC_HOST_PROTOCOL_GUID \ + { 0x3e591c00, 0x9e4a, 0x11df, {0x92, 0x44, 0x00, 0x02, 0xA5, 0xF5, 0xF5, 0x1B } } + +#define MMC_BLOCK_SIZE 512U +#define MMC_BLOCK_MASK (MMC_BLOCK_SIZE - 1U) +#define MMC_BOOT_CLK_RATE (400 * 1000) + +/* Values in EXT CSD register */ +#define MMC_BUS_WIDTH_1 0U +#define MMC_BUS_WIDTH_4 1U +#define MMC_BUS_WIDTH_8 2U +#define MMC_BUS_WIDTH_DDR_4 5U +#define MMC_BUS_WIDTH_DDR_8 6U + +#define MMC_RSP_48 BIT0 +#define MMC_RSP_136 BIT1 /* 136 bit response */ +#define MMC_RSP_CRC BIT2 /* expect valid crc */ +#define MMC_RSP_CMD_IDX BIT3 /* response contains cmd idx */ +#define MMC_RSP_BUSY BIT4 /* device may be busy */ + +/* JEDEC 4.51 chapter 6.12 */ +#define MMC_RESPONSE_R1 (MMC_RSP_48 | MMC_RSP_CMD_IDX | MMC_RSP_CRC) +#define MMC_RESPONSE_R1B (MMC_RESPONSE_R1 | MMC_RSP_BUSY) +#define MMC_RESPONSE_R2 (MMC_RSP_48 | MMC_RSP_136 | MMC_RSP_CRC) +#define MMC_RESPONSE_R3 (MMC_RSP_48) +#define MMC_RESPONSE_R4 (MMC_RSP_48) +#define MMC_RESPONSE_R5 (MMC_RSP_48 | MMC_RSP_CRC | MMC_RSP_CMD_IDX) +#define MMC_RESPONSE_R6 (MMC_RSP_48 | MMC_RSP_CRC | MMC_RSP_CMD_IDX) +#define MMC_RESPONSE_R7 (MMC_RSP_48 | MMC_RSP_CRC | MMC_RSP_CMD_IDX) + +typedef UINT32 MMC_RESPONSE_TYPE; + +typedef UINT32 MMC_IDX; + +#define MMC_CMD_WAIT_RESPONSE (1 << 16) +#define MMC_CMD_LONG_RESPONSE (1 << 17) +#define MMC_CMD_NO_CRC_RESPONSE (1 << 18) + +#define MMC_INDX(Index) ((Index) & 0xFFFF) +#define MMC_GET_INDX(MmcCmd) ((MmcCmd) & 0xFFFF) + +#define MMC_CMD0 (MMC_INDX(0)) +#define MMC_CMD1 (MMC_INDX(1)) +#define MMC_CMD2 (MMC_INDX(2)) +#define MMC_CMD3 (MMC_INDX(3)) +#define MMC_CMD5 (MMC_INDX(5)) +#define MMC_CMD6 (MMC_INDX(6)) +#define MMC_CMD7 (MMC_INDX(7)) +#define MMC_CMD8 (MMC_INDX(8)) +#define MMC_CMD9 (MMC_INDX(9)) +#define MMC_CMD11 (MMC_INDX(11)) +#define MMC_CMD12 (MMC_INDX(12)) +#define MMC_CMD13 (MMC_INDX(13)) +#define MMC_CMD16 (MMC_INDX(16)) +#define MMC_CMD17 (MMC_INDX(17)) +#define MMC_CMD18 (MMC_INDX(18)) +#define MMC_CMD20 (MMC_INDX(20)) +#define MMC_CMD23 (MMC_INDX(23)) +#define MMC_CMD24 (MMC_INDX(24)) +#define MMC_CMD25 (MMC_INDX(25)) +#define MMC_CMD55 (MMC_INDX(55)) +#define MMC_ACMD22 (MMC_INDX(22)) +#define MMC_ACMD41 (MMC_INDX(41)) +#define MMC_ACMD51 (MMC_INDX(51)) + +// Valid responses for CMD1 in eMMC +#define EMMC_CMD1_CAPACITY_LESS_THAN_2GB 0x00FF8080 // Capacity <= 2GB, byte addressing used +#define EMMC_CMD1_CAPACITY_GREATER_THAN_2GB 0x40FF8080 // Capacity > 2GB, 512-byte sector addressing used + +#define MMC_STATUS_APP_CMD (1 << 5) + +typedef enum _MMC_STATE { + MmcInvalidState = 0, + MmcHwInitializationState, + MmcIdleState, + MmcReadyState, + MmcIdentificationState, + MmcStandByState, + MmcTransferState, + MmcSendingDataState, + MmcReceiveDataState, + MmcProgrammingState, + MmcDisconnectState, +} MMC_STATE; + +typedef enum _CARD_DETECT_STATE { + CardDetectRequired = 0, + CardDetectInProgress, + CardDetectCompleted +} CARD_DETECT_STATE; + +#define EMMCBACKWARD (0) +#define EMMCHS26 (1 << 0) // High-Speed @26MHz at rated device voltages +#define EMMCHS52 (1 << 1) // High-Speed @52MHz at rated device voltages +#define EMMCHS52DDR1V8 (1 << 2) // High-Speed Dual Data Rate @52MHz 1.8V or 3V I/O +#define EMMCHS52DDR1V2 (1 << 3) // High-Speed Dual Data Rate @52MHz 1.2V I/O +#define EMMCHS200SDR1V8 (1 << 4) // HS200 Single Data Rate @200MHz 1.8V I/O +#define EMMCHS200SDR1V2 (1 << 5) // HS200 Single Data Rate @200MHz 1.2V I/O +#define EMMCHS400DDR1V8 (1 << 6) // HS400 Dual Data Rate @400MHz 1.8V I/O +#define EMMCHS400DDR1V2 (1 << 7) // HS400 Dual Data Rate @400MHz 1.2V I/O + +/// +/// Forward declaration for EFI_MMC_HOST_PROTOCOL +/// +typedef struct _EFI_MMC_HOST_PROTOCOL EFI_MMC_HOST_PROTOCOL; + +typedef +BOOLEAN +(EFIAPI *MMC_ISCARDPRESENT) ( + IN EFI_MMC_HOST_PROTOCOL *This + ); + +typedef +BOOLEAN +(EFIAPI *MMC_ISREADONLY) ( + IN EFI_MMC_HOST_PROTOCOL *This + ); + +typedef +EFI_STATUS +(EFIAPI *MMC_BUILDDEVICEPATH) ( + IN EFI_MMC_HOST_PROTOCOL *This, + OUT EFI_DEVICE_PATH_PROTOCOL **DevicePath + ); + +typedef +EFI_STATUS +(EFIAPI *MMC_NOTIFYSTATE) ( + IN EFI_MMC_HOST_PROTOCOL *This, + IN MMC_STATE State + ); + +typedef +EFI_STATUS +(EFIAPI *MMC_SENDCOMMAND) ( + IN EFI_MMC_HOST_PROTOCOL *This, + IN MMC_IDX Cmd, + IN UINT32 Argument, + IN MMC_RESPONSE_TYPE Type, + IN UINT32 *Buffer + ); + +typedef +EFI_STATUS +(EFIAPI *MMC_READBLOCKDATA) ( + IN EFI_MMC_HOST_PROTOCOL *This, + IN EFI_LBA Lba, + IN UINTN Length, + OUT UINT32 *Buffer + ); + +typedef +EFI_STATUS +(EFIAPI *MMC_WRITEBLOCKDATA) ( + IN EFI_MMC_HOST_PROTOCOL *This, + IN EFI_LBA Lba, + IN UINTN Length, + IN UINT32 *Buffer + ); + +typedef +EFI_STATUS +(EFIAPI *MMC_SETIOS) ( + IN EFI_MMC_HOST_PROTOCOL *This, + IN UINT32 BusClockFreq, + IN UINT32 BusWidth + ); + +typedef +EFI_STATUS +(EFIAPI *MMC_PREPARE) ( + IN EFI_MMC_HOST_PROTOCOL *This, + IN EFI_LBA Lba, + IN UINTN Length, + IN UINTN Buffer + ); + +typedef +BOOLEAN +(EFIAPI *MMC_ISMULTIBLOCK) ( + IN EFI_MMC_HOST_PROTOCOL *This + ); + +struct _EFI_MMC_HOST_PROTOCOL { + UINT32 Revision; + MMC_ISCARDPRESENT IsCardPresent; + MMC_ISREADONLY IsReadOnly; + MMC_BUILDDEVICEPATH BuildDevicePath; + + MMC_NOTIFYSTATE NotifyState; + + MMC_SENDCOMMAND SendCommand; + + MMC_READBLOCKDATA ReadBlockData; + MMC_WRITEBLOCKDATA WriteBlockData; + + MMC_SETIOS SetIos; + MMC_PREPARE Prepare; + MMC_ISMULTIBLOCK IsMultiBlock; +}; + +#define MMC_HOST_PROTOCOL_REVISION 0x00010002 // 1.2 + +#define MMC_HOST_HAS_SETIOS(Host) (Host->Revision >= MMC_HOST_PROTOCOL_REVISION && \ + Host->SetIos != NULL) +#define MMC_HOST_HAS_ISMULTIBLOCK(Host) (Host->Revision >= MMC_HOST_PROTOCOL_REVISION && \ + Host->IsMultiBlock != NULL) + +#endif /* __MMC_HOST_PROTOCOL_H__ */ diff --git a/Silicon/Sophgo/SG2042Pkg/Drivers/MmcDxe/ComponentName.c b/Silicon/Sophgo/SG2042Pkg/Drivers/MmcDxe/ComponentName.c new file mode 100644 index XXXXXXX..XXXXXXX --- /dev/null +++ b/Silicon/Sophgo/SG2042Pkg/Drivers/MmcDxe/ComponentName.c @@ -XXX,XX +XXX,XX @@ +/** @file + Component Name Protocol implementation for the MMC DXE driver + + Copyright (c) 2011, ARM Limited. All rights reserved. + + SPDX-License-Identifier: BSD-2-Clause-Patent + +**/ + +#include "Mmc.h" + +// +// EFI Component Name Protocol +// +GLOBAL_REMOVE_IF_UNREFERENCED EFI_COMPONENT_NAME_PROTOCOL gMmcComponentName = { + MmcGetDriverName, + MmcGetControllerName, + "eng" +}; + +// +// EFI Component Name 2 Protocol +// +GLOBAL_REMOVE_IF_UNREFERENCED EFI_COMPONENT_NAME2_PROTOCOL gMmcComponentName2 = { + (EFI_COMPONENT_NAME2_GET_DRIVER_NAME)MmcGetDriverName, + (EFI_COMPONENT_NAME2_GET_CONTROLLER_NAME)MmcGetControllerName, + "en" +}; + +GLOBAL_REMOVE_IF_UNREFERENCED EFI_UNICODE_STRING_TABLE +mMmcDriverNameTable[] = { + {"eng;en", L"MMC/SD Card Interface Driver"}, + {NULL, NULL} +}; + +/** + Retrieves a Unicode string that is the user readable name of the driver. + + This function retrieves the user readable name of a driver in the form of a + Unicode string. If the driver specified by This has a user readable name in + the language specified by Language, then a pointer to the driver name is + returned in DriverName, and EFI_SUCCESS is returned. If the driver specified + by This does not support the language specified by Language, + then EFI_UNSUPPORTED is returned. + + @param This A pointer to the EFI_COMPONENT_NAME2_PROTOCOL or + EFI_COMPONENT_NAME_PROTOCOL instance. + @param Language A pointer to a Null-terminated ASCII string + array indicating the language. This is the + language of the driver name that the caller is + requesting, and it must match one of the + languages specified in SupportedLanguages. The + number of languages supported by a driver is up + to the driver writer. Language is specified + in RFC 4646 or ISO 639-2 language code format. + @param DriverName A pointer to the Unicode string to return. + This Unicode string is the name of the + driver specified by This in the language + specified by Language. + + @retval EFI_SUCCESS The Unicode string for the Driver specified by + This and the language specified by Language was + returned in DriverName. + @retval EFI_INVALID_PARAMETER Language is NULL. + @retval EFI_INVALID_PARAMETER DriverName is NULL. + @retval EFI_UNSUPPORTED The driver specified by This does not support + the language specified by Language. + +**/ +EFI_STATUS +EFIAPI +MmcGetDriverName ( + IN EFI_COMPONENT_NAME_PROTOCOL *This, + IN CHAR8 *Language, + OUT CHAR16 **DriverName + ) +{ + return LookupUnicodeString2 ( + Language, + This->SupportedLanguages, + mMmcDriverNameTable, + DriverName, + (BOOLEAN)(This == &gMmcComponentName) + ); +} + +/** + Retrieves a Unicode string that is the user readable name of the controller + that is being managed by a driver. + + This function retrieves the user readable name of the controller specified by + ControllerHandle and ChildHandle in the form of a Unicode string. If the + driver specified by This has a user readable name in the language specified by + Language, then a pointer to the controller name is returned in ControllerName, + and EFI_SUCCESS is returned. If the driver specified by This is not currently + managing the controller specified by ControllerHandle and ChildHandle, + then EFI_UNSUPPORTED is returned. If the driver specified by This does not + support the language specified by Language, then EFI_UNSUPPORTED is returned. + + @param This A pointer to the EFI_COMPONENT_NAME2_PROTOCOL or + EFI_COMPONENT_NAME_PROTOCOL instance. + @param ControllerHandle The handle of a controller that the driver + specified by This is managing. This handle + specifies the controller whose name is to be + returned. + @param ChildHandle The handle of the child controller to retrieve + the name of. This is an optional parameter that + may be NULL. It will be NULL for device + drivers. It will also be NULL for a bus drivers + that wish to retrieve the name of the bus + controller. It will not be NULL for a bus + driver that wishes to retrieve the name of a + child controller. + @param Language A pointer to a Null-terminated ASCII string + array indicating the language. This is the + language of the driver name that the caller is + requesting, and it must match one of the + languages specified in SupportedLanguages. The + number of languages supported by a driver is up + to the driver writer. Language is specified in + RFC 4646 or ISO 639-2 language code format. + @param ControllerName A pointer to the Unicode string to return. + This Unicode string is the name of the + controller specified by ControllerHandle and + ChildHandle in the language specified by + Language from the point of view of the driver + specified by This. + + @retval EFI_SUCCESS The Unicode string for the user readable name in + the language specified by Language for the + driver specified by This was returned in + DriverName. + @retval EFI_INVALID_PARAMETER ControllerHandle is not a valid EFI_HANDLE. + @retval EFI_INVALID_PARAMETER ChildHandle is not NULL and it is not a valid + EFI_HANDLE. + @retval EFI_INVALID_PARAMETER Language is NULL. + @retval EFI_INVALID_PARAMETER ControllerName is NULL. + @retval EFI_UNSUPPORTED The driver specified by This is not currently + managing the controller specified by + ControllerHandle and ChildHandle. + @retval EFI_UNSUPPORTED The driver specified by This does not support + the language specified by Language. + +**/ +EFI_STATUS +EFIAPI +MmcGetControllerName ( + IN EFI_COMPONENT_NAME_PROTOCOL *This, + IN EFI_HANDLE ControllerHandle, + IN EFI_HANDLE ChildHandle OPTIONAL, + IN CHAR8 *Language, + OUT CHAR16 **ControllerName + ) +{ + return EFI_UNSUPPORTED; +} diff --git a/Silicon/Sophgo/SG2042Pkg/Drivers/MmcDxe/Diagnostics.c b/Silicon/Sophgo/SG2042Pkg/Drivers/MmcDxe/Diagnostics.c new file mode 100644 index XXXXXXX..XXXXXXX --- /dev/null +++ b/Silicon/Sophgo/SG2042Pkg/Drivers/MmcDxe/Diagnostics.c @@ -XXX,XX +XXX,XX @@ +/** @file + Diagnostics Protocol implementation for the MMC DXE driver + + Copyright (c) 2011-2014, ARM Limited. All rights reserved. + + SPDX-License-Identifier: BSD-2-Clause-Patent + +**/ + +#include <Uefi.h> +#include <Library/DebugLib.h> +#include <Library/BaseMemoryLib.h> +#include <Library/MemoryAllocationLib.h> +#include <Library/BaseLib.h> + +#include "Mmc.h" + +#define DIAGNOSTIC_LOGBUFFER_MAXCHAR 1024 + +CHAR16* mLogBuffer = NULL; +UINTN mLogRemainChar = 0; + +/** + + Initialize the diagnostic log by allocating memory for the log + buffer and setting the maximum buffer size. + + @param MaxBufferChar The maximum number of CHAR16 characters the log buffer can hold. + + @retval A pointer to the allocated log buffer. + +**/ +CHAR16* +DiagnosticInitLog ( + UINTN MaxBufferChar + ) +{ + mLogRemainChar = MaxBufferChar; + mLogBuffer = AllocatePool ((UINTN)MaxBufferChar * sizeof (CHAR16)); + return mLogBuffer; +} + +/** + + Log a diagnostic string by copying it to the log buffer. + + @param Str A pointer to the constant CHAR16 string to be logged. + + @retval The length of the logged string. + +**/ +UINTN +DiagnosticLog ( + CONST CHAR16* Str + ) +{ + UINTN len = StrLen (Str); + if (len < mLogRemainChar) { + StrCpyS (mLogBuffer, mLogRemainChar, Str); + mLogRemainChar -= len; + mLogBuffer += len; + return len; + } else { + return 0; + } +} + +/** + + Generate a random buffer by filling it with pseudo-random data. + + @param Buffer A pointer to the buffer where the generated data will be stored. + @param BufferSize The size of the buffer in bytes. + +**/ +VOID +GenerateRandomBuffer ( + VOID* Buffer, + UINTN BufferSize + ) +{ + UINT64 i; + UINT64* Buffer64 = (UINT64*)Buffer; + + for (i = 0; i < (BufferSize >> 3); i++) { + *Buffer64 = i | (~i << 32); + Buffer64++; + } +} + +/** + + Compares two buffers by iterating through each 64-bit element in the buffers. + + @param BufferA A pointer to the first buffer to compare. + @param BufferB A pointer to the second buffer to compare. + @param BufferSize The size of the buffers in bytes. + + @retval TRUE if the buffers are equal, FALSE if a mismatch is found. + +**/ +BOOLEAN +CompareBuffer ( + VOID *BufferA, + VOID *BufferB, + UINTN BufferSize + ) +{ + UINTN i; + UINT64* BufferA64 = (UINT64*)BufferA; + UINT64* BufferB64 = (UINT64*)BufferB; + + for (i = 0; i < (BufferSize >> 3); i++) { + if (*BufferA64 != *BufferB64) { + DEBUG ((DEBUG_ERROR, "CompareBuffer: Error at %i", i)); + DEBUG ((DEBUG_ERROR, "(0x%lX) != (0x%lX)\n", *BufferA64, *BufferB64)); + return FALSE; + } + BufferA64++; + BufferB64++; + } + return TRUE; +} + +/** + Performs a read/write data test on an MMC device. + + @param MmcHostInstance A pointer to the MMC host instance. + @param Lba The logical block address to perform the test on. + @param BufferSize The size of the buffer in bytes. + + @retval EFI_SUCCESS The test completes successfully. + @retval EFI_NO_MEDIA No media (MMC device) is detected. + @retval EFI_NOT_READY The MMC device is not in the transfer state. + @retval EFI_INVALID_PARAMETER The written data does not match the read data. + +**/ +EFI_STATUS +MmcReadWriteDataTest ( + MMC_HOST_INSTANCE *MmcHostInstance, + EFI_LBA Lba, + UINTN BufferSize + ) +{ + VOID *BackBuffer; + VOID *WriteBuffer; + VOID *ReadBuffer; + EFI_STATUS Status; + + // Check if a Media is Present + if (!MmcHostInstance->BlockIo.Media->MediaPresent) { + DiagnosticLog (L"ERROR: No Media Present\n"); + return EFI_NO_MEDIA; + } + + if (MmcHostInstance->State != MmcTransferState) { + DiagnosticLog (L"ERROR: Not ready for Transfer state\n"); + return EFI_NOT_READY; + } + + BackBuffer = AllocatePool (BufferSize); + WriteBuffer = AllocatePool (BufferSize); + ReadBuffer = AllocatePool (BufferSize); + + // Read (and save) buffer at a specific location + Status = MmcReadBlocks (&(MmcHostInstance->BlockIo), + MmcHostInstance->BlockIo.Media->MediaId, Lba, BufferSize, BackBuffer); + if (Status != EFI_SUCCESS) { + DiagnosticLog (L"ERROR: Fail to Read Block (1)\n"); + return Status; + } + + // Write buffer at the same location + GenerateRandomBuffer (WriteBuffer, BufferSize); + Status = MmcWriteBlocks (&(MmcHostInstance->BlockIo), + MmcHostInstance->BlockIo.Media->MediaId, Lba, BufferSize, WriteBuffer); + if (Status != EFI_SUCCESS) { + DiagnosticLog (L"ERROR: Fail to Write Block (1)\n"); + return Status; + } + + // Read the buffer at the same location + Status = MmcReadBlocks (&(MmcHostInstance->BlockIo), + MmcHostInstance->BlockIo.Media->MediaId, Lba, BufferSize, ReadBuffer); + if (Status != EFI_SUCCESS) { + DiagnosticLog (L"ERROR: Fail to Read Block (2)\n"); + return Status; + } + + // Check that is conform + if (!CompareBuffer (ReadBuffer, WriteBuffer, BufferSize)) { + DiagnosticLog (L"ERROR: Fail to Read/Write Block (1)\n"); + return EFI_INVALID_PARAMETER; + } + + // Restore content at the original location + Status = MmcWriteBlocks (&(MmcHostInstance->BlockIo), + MmcHostInstance->BlockIo.Media->MediaId, Lba, BufferSize, BackBuffer); + if (Status != EFI_SUCCESS) { + DiagnosticLog (L"ERROR: Fail to Write Block (2)\n"); + return Status; + } + + // Read the restored content + Status = MmcReadBlocks (&(MmcHostInstance->BlockIo), + MmcHostInstance->BlockIo.Media->MediaId, Lba, BufferSize, ReadBuffer); + if (Status != EFI_SUCCESS) { + DiagnosticLog (L"ERROR: Fail to Read Block (3)\n"); + return Status; + } + + // Check the content is correct + if (!CompareBuffer (ReadBuffer, BackBuffer, BufferSize)) { + DiagnosticLog (L"ERROR: Fail to Read/Write Block (2)\n"); + return EFI_INVALID_PARAMETER; + } + + return EFI_SUCCESS; +} + +/** + Runs diagnostics tests on the MMC driver for the specified controller handle. + + @param This A pointer to the EFI_DRIVER_DIAGNOSTICS_PROTOCOL instance. + @param ControllerHandle The handle of the controller to run diagnostics on. + @param ChildHandle The handle of the child controller to run diagnostics on (optional). + @param DiagnosticType The type of diagnostics to run. + @param Language The language code (only English is supported). + @param ErrorType The type of error encountered during diagnostics (if any). + @param BufferSize The size of the diagnostic buffer. + @param Buffer The diagnostic buffer. + + @retval EFI_SUCCESS The diagnostics completed successfully. + @retval EFI_INVALID_PARAMETER One or more parameters are invalid. + @retval EFI_UNSUPPORTED The specified language or controller is not supported. +*/ +EFI_STATUS +EFIAPI +MmcDriverDiagnosticsRunDiagnostics ( + IN EFI_DRIVER_DIAGNOSTICS_PROTOCOL *This, + IN EFI_HANDLE ControllerHandle, + IN EFI_HANDLE ChildHandle OPTIONAL, + IN EFI_DRIVER_DIAGNOSTIC_TYPE DiagnosticType, + IN CHAR8 *Language, + OUT EFI_GUID **ErrorType, + OUT UINTN *BufferSize, + OUT CHAR16 **Buffer + ) +{ + LIST_ENTRY *CurrentLink; + MMC_HOST_INSTANCE *MmcHostInstance; + EFI_STATUS Status; + + if ((Language == NULL) || + (ErrorType == NULL) || + (Buffer == NULL) || + (ControllerHandle == NULL) || + (BufferSize == NULL)) { + return EFI_INVALID_PARAMETER; + } + + // Check Language is supported (i.e. is "en-*" - only English is supported) + if (AsciiStrnCmp (Language, "en", 2) != 0) { + return EFI_UNSUPPORTED; + } + + Status = EFI_SUCCESS; + *ErrorType = NULL; + *BufferSize = DIAGNOSTIC_LOGBUFFER_MAXCHAR; + *Buffer = DiagnosticInitLog (DIAGNOSTIC_LOGBUFFER_MAXCHAR); + + DiagnosticLog (L"MMC Driver Diagnostics\n"); + + // Find the MMC Host instance on which we have been asked to run diagnostics + MmcHostInstance = NULL; + CurrentLink = mMmcHostPool.ForwardLink; + while (CurrentLink != NULL && CurrentLink != &mMmcHostPool && (Status == EFI_SUCCESS)) { + MmcHostInstance = MMC_HOST_INSTANCE_FROM_LINK (CurrentLink); + ASSERT (MmcHostInstance != NULL); + if (MmcHostInstance->MmcHandle == ControllerHandle) { + break; + } + CurrentLink = CurrentLink->ForwardLink; + } + + // If we didn't find the controller, return EFI_UNSUPPORTED + if ((MmcHostInstance == NULL) + || (MmcHostInstance->MmcHandle != ControllerHandle)) { + return EFI_UNSUPPORTED; + } + + // LBA=1 Size=BlockSize + DiagnosticLog (L"MMC Driver Diagnostics - Test: First Block\n"); + Status = MmcReadWriteDataTest (MmcHostInstance, 1, MmcHostInstance->BlockIo.Media->BlockSize); + + // LBA=2 Size=BlockSize + DiagnosticLog (L"MMC Driver Diagnostics - Test: Second Block\n"); + Status = MmcReadWriteDataTest (MmcHostInstance, 2, MmcHostInstance->BlockIo.Media->BlockSize); + + // LBA=10 Size=BlockSize + DiagnosticLog (L"MMC Driver Diagnostics - Test: Any Block\n"); + Status = MmcReadWriteDataTest (MmcHostInstance, MmcHostInstance->BlockIo.Media->LastBlock >> 1, + MmcHostInstance->BlockIo.Media->BlockSize); + + // LBA=LastBlock Size=BlockSize + DiagnosticLog (L"MMC Driver Diagnostics - Test: Last Block\n"); + Status = MmcReadWriteDataTest (MmcHostInstance, MmcHostInstance->BlockIo.Media->LastBlock, + MmcHostInstance->BlockIo.Media->BlockSize); + + // LBA=1 Size=2*BlockSize + DiagnosticLog (L"MMC Driver Diagnostics - Test: First Block / 2 BlockSSize\n"); + Status = MmcReadWriteDataTest (MmcHostInstance, 1, 2 * MmcHostInstance->BlockIo.Media->BlockSize); + + return Status; +} + +// +// EFI Driver Diagnostics 2 Protocol +// +GLOBAL_REMOVE_IF_UNREFERENCED EFI_DRIVER_DIAGNOSTICS2_PROTOCOL gMmcDriverDiagnostics2 = { + (EFI_DRIVER_DIAGNOSTICS2_RUN_DIAGNOSTICS)MmcDriverDiagnosticsRunDiagnostics, + "en" +}; diff --git a/Silicon/Sophgo/SG2042Pkg/Drivers/MmcDxe/Mmc.c b/Silicon/Sophgo/SG2042Pkg/Drivers/MmcDxe/Mmc.c new file mode 100644 index XXXXXXX..XXXXXXX --- /dev/null +++ b/Silicon/Sophgo/SG2042Pkg/Drivers/MmcDxe/Mmc.c @@ -XXX,XX +XXX,XX @@ +/** @file + Main file of the MMC Dxe driver. The driver entrypoint is defined into this file. + + Copyright (c) 2011-2013, ARM Limited. All rights reserved. + Copyright (c) 2023, Academy of Intelligent Innovation, Shandong Universiy, China.P.R. All rights reserved.<BR> + + SPDX-License-Identifier: BSD-2-Clause-Patent + +**/ + +#include <Protocol/DevicePath.h> + +#include <Library/BaseLib.h> +#include <Library/BaseMemoryLib.h> +#include <Library/MemoryAllocationLib.h> +#include <Library/UefiBootServicesTableLib.h> +#include <Library/DevicePathLib.h> + +#include "Mmc.h" + +EFI_BLOCK_IO_MEDIA mMmcMediaTemplate = { + SIGNATURE_32 ('m','m','c','o'), // MediaId + TRUE, // RemovableMedia + FALSE, // MediaPresent + FALSE, // LogicalPartition + FALSE, // ReadOnly + FALSE, // WriteCaching + 512, // BlockSize + 4, // IoAlign + 0, // Pad + 0 // LastBlock +}; + +// +// This device structure is serviced as a header. +// Its next field points to the first root bridge device node. +// +LIST_ENTRY mMmcHostPool; + +/** + Event triggered by the timer to check if any cards have been removed + or if new ones have been plugged in +**/ + +EFI_EVENT gCheckCardsEvent; + +/** + Initialize the MMC Host Pool to support multiple MMC devices +**/ +VOID +InitializeMmcHostPool ( + VOID + ) +{ + InitializeListHead (&mMmcHostPool); +} + +/** + Insert a new Mmc Host controller to the pool. + + @param MmcHostInstance The MMC_HOST_INSTANCE to be inserted into the pool. + +**/ +VOID +InsertMmcHost ( + IN MMC_HOST_INSTANCE *MmcHostInstance + ) +{ + InsertTailList (&mMmcHostPool, &(MmcHostInstance->Link)); +} + +/** + Remove a new Mmc Host controller to the pool. + + @param MmcHostInstance The MMC_HOST_INSTANCE to be removed from the pool. + +**/ +VOID +RemoveMmcHost ( + IN MMC_HOST_INSTANCE *MmcHostInstance + ) +{ + RemoveEntryList (&(MmcHostInstance->Link)); +} + +/** + This function creates a new MMC host controller instance and initializes its members. + It allocates memory for the instance, sets the necessary fields, + and installs the BlockIO and DevicePath protocols. + + @param MmcHost The EFI_MMC_HOST_PROTOCOL instance representing the MMC host. + + @return A pointer to the created MMC_HOST_INSTANCE on success, or NULL on failure. +**/ +MMC_HOST_INSTANCE* +CreateMmcHostInstance ( + IN EFI_MMC_HOST_PROTOCOL* MmcHost + ) +{ + EFI_STATUS Status; + MMC_HOST_INSTANCE* MmcHostInstance; + EFI_DEVICE_PATH_PROTOCOL *NewDevicePathNode; + EFI_DEVICE_PATH_PROTOCOL *DevicePath; + + MmcHostInstance = AllocateZeroPool (sizeof (MMC_HOST_INSTANCE)); + if (MmcHostInstance == NULL) { + return NULL; + } + + MmcHostInstance->Signature = MMC_HOST_INSTANCE_SIGNATURE; + + MmcHostInstance->State = MmcHwInitializationState; + + MmcHostInstance->BlockIo.Media = AllocateCopyPool (sizeof (EFI_BLOCK_IO_MEDIA), &mMmcMediaTemplate); + if (MmcHostInstance->BlockIo.Media == NULL) { + goto FREE_INSTANCE; + } + + MmcHostInstance->BlockIo.Revision = EFI_BLOCK_IO_INTERFACE_REVISION; + MmcHostInstance->BlockIo.Reset = MmcReset; + MmcHostInstance->BlockIo.ReadBlocks = MmcReadBlocks; + MmcHostInstance->BlockIo.WriteBlocks = MmcWriteBlocks; + MmcHostInstance->BlockIo.FlushBlocks = MmcFlushBlocks; + + MmcHostInstance->MmcHost = MmcHost; + + // Create DevicePath for the new MMC Host + Status = MmcHost->BuildDevicePath (MmcHost, &NewDevicePathNode); + if (EFI_ERROR (Status)) { + goto FREE_MEDIA; + } + + DevicePath = (EFI_DEVICE_PATH_PROTOCOL*)AllocatePool (END_DEVICE_PATH_LENGTH); + if (DevicePath == NULL) { + goto FREE_MEDIA; + } + + SetDevicePathEndNode (DevicePath); + MmcHostInstance->DevicePath = AppendDevicePathNode (DevicePath, NewDevicePathNode); + + // Publish BlockIO protocol interface + Status = gBS->InstallMultipleProtocolInterfaces ( + &MmcHostInstance->MmcHandle, + &gEfiBlockIoProtocolGuid, &MmcHostInstance->BlockIo, + &gEfiDevicePathProtocolGuid, MmcHostInstance->DevicePath, + NULL + ); + if (EFI_ERROR (Status)) { + goto FREE_DEVICE_PATH; + } + + return MmcHostInstance; + +FREE_DEVICE_PATH: + FreePool (DevicePath); + +FREE_MEDIA: + FreePool (MmcHostInstance->BlockIo.Media); + +FREE_INSTANCE: + FreePool (MmcHostInstance); + + return NULL; +} + +/** + This function uninstalls the BlockIO and DevicePath protocols from the MMC host controller instance, + and frees the memory allocated for the instance and its associated resources. + + @param MmcHostInstance The MMC_HOST_INSTANCE to be destroyed. + + @retval EFI_SUCCESS The instance is successfully destroyed. + @retval Other The instance cannot be destroyed. + +**/ +EFI_STATUS +DestroyMmcHostInstance ( + IN MMC_HOST_INSTANCE* MmcHostInstance + ) +{ + EFI_STATUS Status; + + // Uninstall Protocol Interfaces + Status = gBS->UninstallMultipleProtocolInterfaces ( + MmcHostInstance->MmcHandle, + &gEfiBlockIoProtocolGuid, &(MmcHostInstance->BlockIo), + &gEfiDevicePathProtocolGuid, MmcHostInstance->DevicePath, + NULL + ); + ASSERT_EFI_ERROR (Status); + + // Free Memory allocated for the instance + if (MmcHostInstance->BlockIo.Media) { + FreePool (MmcHostInstance->BlockIo.Media); + } + if (MmcHostInstance->CardInfo.ECSDData) { + FreePages (MmcHostInstance->CardInfo.ECSDData, EFI_SIZE_TO_PAGES (sizeof (ECSD))); + } + FreePool (MmcHostInstance); + + return Status; +} + +/** + This function checks if the controller implement the Mmc Host and the Device Path Protocols. + + @param This A pointer to the EFI_DRIVER_BINDING_PROTOCOL instance. + @param Controller The handle of the controller to check for support. + @param RemainingDevicePath A pointer to the remaining portion of the device path. + + @retval EFI_SUCCESS The controller is supported. + @retval EFI_UNSUPPORTED The controller is unsupported. +**/ +EFI_STATUS +EFIAPI +MmcDriverBindingSupported ( + IN EFI_DRIVER_BINDING_PROTOCOL *This, + IN EFI_HANDLE Controller, + IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath + ) +{ + EFI_STATUS Status; + //EFI_DEVICE_PATH_PROTOCOL *ParentDevicePath; + EFI_MMC_HOST_PROTOCOL *MmcHost; + EFI_DEV_PATH_PTR Node; + + // + // Check RemainingDevicePath validation + // + if (RemainingDevicePath != NULL) { + // + // Check if RemainingDevicePath is the End of Device Path Node, + // if yes, go on checking other conditions + // + if (!IsDevicePathEnd (RemainingDevicePath)) { + // + // If RemainingDevicePath isn't the End of Device Path Node, + // check its validation + // + Node.DevPath = RemainingDevicePath; + if (Node.DevPath->Type != HARDWARE_DEVICE_PATH || + Node.DevPath->SubType != HW_VENDOR_DP || + DevicePathNodeLength (Node.DevPath) != sizeof (VENDOR_DEVICE_PATH)) { + return EFI_UNSUPPORTED; + } + } + } + + // + // Check if Mmc Host protocol is installed by platform + // + Status = gBS->OpenProtocol ( + Controller, + &gSophgoMmcHostProtocolGuid, + (VOID**)&MmcHost, + This->DriverBindingHandle, + Controller, + EFI_OPEN_PROTOCOL_BY_DRIVER + ); + if (Status == EFI_ALREADY_STARTED) { + return EFI_SUCCESS; + } + if (EFI_ERROR (Status)) { + return Status; + } + + // + // Close the Mmc Host used to perform the supported test + // + gBS->CloseProtocol ( + Controller, + &gSophgoMmcHostProtocolGuid, + This->DriverBindingHandle, + Controller + ); + + return EFI_SUCCESS; +} + +/** + This function opens the Mmc Host Protocol, creates an MMC_HOST_INSTANCE, and adds it to the MMC host pool. + + @param This A pointer to the EFI_DRIVER_BINDING_PROTOCOL instance. + @param Controller The handle of the controller to start the driver on. + @param RemainingDevicePath A pointer to the remaining portion of the device path. + + @retval EFI_SUCCESS The driver is successfully started. + @retval Other The driver failed to start. + +**/ +EFI_STATUS +EFIAPI +MmcDriverBindingStart ( + IN EFI_DRIVER_BINDING_PROTOCOL *This, + IN EFI_HANDLE Controller, + IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath + ) +{ + EFI_STATUS Status; + MMC_HOST_INSTANCE *MmcHostInstance; + EFI_MMC_HOST_PROTOCOL *MmcHost; + + // + // Check RemainingDevicePath validation + // + if (RemainingDevicePath != NULL) { + // + // Check if RemainingDevicePath is the End of Device Path Node, + // if yes, return EFI_SUCCESS + // + if (IsDevicePathEnd (RemainingDevicePath)) { + return EFI_SUCCESS; + } + } + + // + // Get the Mmc Host protocol + // + Status = gBS->OpenProtocol ( + Controller, + &gSophgoMmcHostProtocolGuid, + (VOID**)&MmcHost, + This->DriverBindingHandle, + Controller, + EFI_OPEN_PROTOCOL_BY_DRIVER + ); + if (EFI_ERROR (Status)) { + if (Status == EFI_ALREADY_STARTED) { + return EFI_SUCCESS; + } + return Status; + } + + MmcHostInstance = CreateMmcHostInstance (MmcHost); + + if (MmcHostInstance != NULL) { + // Add the handle to the pool + InsertMmcHost (MmcHostInstance); + + MmcHostInstance->Initialized = FALSE; + + // Detect card presence now + CheckCardsCallback (NULL, NULL); + } + + return EFI_SUCCESS; +} + +/** + This function closes the Mmc Host Protocol, removes the MMC_HOST_INSTANCE from the pool, and destroys the instance. + + @param This A pointer to the EFI_DRIVER_BINDING_PROTOCOL instance. + @param Controller The handle of the controller to stop the driver on. + @param NumberOfChildren The number of children handles. + @param ChildHandleBuffer An array of child handles. + + @retval EFI_SUCCESS The driver is successfully stopped. + @retval Other The driver failed to stop. + +**/ +EFI_STATUS +EFIAPI +MmcDriverBindingStop ( + IN EFI_DRIVER_BINDING_PROTOCOL *This, + IN EFI_HANDLE Controller, + IN UINTN NumberOfChildren, + IN EFI_HANDLE *ChildHandleBuffer + ) +{ + EFI_STATUS Status = EFI_SUCCESS; + LIST_ENTRY *CurrentLink; + MMC_HOST_INSTANCE *MmcHostInstance; + + MMC_TRACE ("MmcDriverBindingStop()"); + + // For each MMC instance + CurrentLink = mMmcHostPool.ForwardLink; + while (CurrentLink != NULL && CurrentLink != &mMmcHostPool && (Status == EFI_SUCCESS)) { + MmcHostInstance = MMC_HOST_INSTANCE_FROM_LINK (CurrentLink); + ASSERT (MmcHostInstance != NULL); + + // Close gSophgoMmcHostProtocolGuid + Status = gBS->CloseProtocol ( + Controller, + &gSophgoMmcHostProtocolGuid, + (VOID**)&MmcHostInstance->MmcHost, + This->DriverBindingHandle + ); + + // Remove MMC Host Instance from the pool + RemoveMmcHost (MmcHostInstance); + + // Destroy MmcHostInstance + DestroyMmcHostInstance (MmcHostInstance); + } + + return Status; +} + +/** + Callback function to check MMC cards. + + @param[in] Event The event that is being triggered + @param[in] Context The context passed to the event + +**/ +VOID +EFIAPI +CheckCardsCallback ( + IN EFI_EVENT Event, + IN VOID *Context + ) +{ + LIST_ENTRY *CurrentLink; + MMC_HOST_INSTANCE *MmcHostInstance; + EFI_STATUS Status; + + CurrentLink = mMmcHostPool.ForwardLink; + while (CurrentLink != NULL && CurrentLink != &mMmcHostPool) { + MmcHostInstance = MMC_HOST_INSTANCE_FROM_LINK (CurrentLink); + ASSERT (MmcHostInstance != NULL); + + if (MmcHostInstance->MmcHost->IsCardPresent (MmcHostInstance->MmcHost) == !MmcHostInstance->Initialized) { + MmcHostInstance->State = MmcHwInitializationState; + MmcHostInstance->BlockIo.Media->MediaPresent = !MmcHostInstance->Initialized; + MmcHostInstance->Initialized = !MmcHostInstance->Initialized; + + if (MmcHostInstance->BlockIo.Media->MediaPresent) { + Status = InitializeMmcDevice (MmcHostInstance); + if (EFI_ERROR (Status)) { + DEBUG ((DEBUG_ERROR, "CheckCardsCallback: Error InitializeMmcDevice, Status=%r.\n", Status)); + MmcHostInstance->Initialized = !MmcHostInstance->Initialized; + continue; + } + } + + Status = gBS->ReinstallProtocolInterface ( + (MmcHostInstance->MmcHandle), + &gEfiBlockIoProtocolGuid, + &(MmcHostInstance->BlockIo), + &(MmcHostInstance->BlockIo) + ); + + if (EFI_ERROR (Status)) { + Print (L"MMC Card: Error reinstalling BlockIo interface\n"); + } + } + + CurrentLink = CurrentLink->ForwardLink; + } +} + + +EFI_DRIVER_BINDING_PROTOCOL gMmcDriverBinding = { + MmcDriverBindingSupported, + MmcDriverBindingStart, + MmcDriverBindingStop, + 0xa, + NULL, + NULL +}; + +/** + This function is the entry point of the MMC DXE driver. + It initializes the MMC host pool, installs driver model protocols, + driver diagnostics, and sets up a timer for card detection. + + @param ImageHandle The image handle of the driver. + @param SystemTable A pointer to the EFI system table. + + @retval EFI_SUCCESS The driver is successfully initialized. + @retval Other The driver failed to initialize. + +**/ +EFI_STATUS +EFIAPI +MmcDxeInitialize ( + IN EFI_HANDLE ImageHandle, + IN EFI_SYSTEM_TABLE *SystemTable + ) +{ + EFI_STATUS Status; + + // + // Initializes MMC Host pool + // + InitializeMmcHostPool (); + + // + // Install driver model protocol(s). + // + Status = EfiLibInstallDriverBindingComponentName2 ( + ImageHandle, + SystemTable, + &gMmcDriverBinding, + ImageHandle, + &gMmcComponentName, + &gMmcComponentName2 + ); + ASSERT_EFI_ERROR (Status); + + // Install driver diagnostics + Status = gBS->InstallMultipleProtocolInterfaces ( + &ImageHandle, + &gEfiDriverDiagnostics2ProtocolGuid, + &gMmcDriverDiagnostics2, + NULL + ); + ASSERT_EFI_ERROR (Status); + + // Use a timer to detect if a card has been plugged in or removed + Status = gBS->CreateEvent ( + EVT_NOTIFY_SIGNAL | EVT_TIMER, + TPL_CALLBACK, + CheckCardsCallback, + NULL, + &gCheckCardsEvent + ); + ASSERT_EFI_ERROR (Status); + + Status = gBS->SetTimer (gCheckCardsEvent, + TimerPeriodic, + (UINT64)(10 * 1000 * 200)); // 200 ms + ASSERT_EFI_ERROR (Status); + + return Status; +} diff --git a/Silicon/Sophgo/SG2042Pkg/Drivers/MmcDxe/MmcBlockIo.c b/Silicon/Sophgo/SG2042Pkg/Drivers/MmcDxe/MmcBlockIo.c new file mode 100644 index XXXXXXX..XXXXXXX --- /dev/null +++ b/Silicon/Sophgo/SG2042Pkg/Drivers/MmcDxe/MmcBlockIo.c @@ -XXX,XX +XXX,XX @@ +/** @file + Block I/O Protocol implementation for MMC/SD cards. + + Copyright (c) 2011-2015, ARM Limited. All rights reserved. + + SPDX-License-Identifier: BSD-2-Clause-Patent + +**/ + +#include <Library/BaseMemoryLib.h> + +#include "Mmc.h" + +#define MMCI0_BLOCKLEN 512 +#define MMCI0_TIMEOUT 1000 +#define MAX_BUF_LEN 0x1D00000 +#define MAX_BLK_CNT 0xE800 + +/** + Check if the R1 response indicates that the card is in the "Tran" state and ready for data. + + @param[in] Response Pointer to the R1 response. + + @retval EFI_SUCCESS The card is in the "Tran" state and ready for data. + @retval EFI_NOT_READY The card is not in the expected state. +**/ +STATIC +EFI_STATUS +R1TranAndReady ( + UINT32 *Response + ) +{ + if ((*Response & MMC_R0_READY_FOR_DATA) != 0 && MMC_R0_CURRENTSTATE (Response) == MMC_R0_STATE_TRAN) { + return EFI_SUCCESS; + } + + return EFI_NOT_READY; +} + +/** + Validate the number of blocks written during a write operation. + + @param[in] MmcHostInstance Pointer to the MMC host instance. + @param[in] Count Expected number of blocks written. + @param[out] TransferredBlocks Actual number of blocks written. + + @retval EFI_SUCCESS The number of blocks written is valid. + @retval EFI_NOT_READY The card is not in the expected state. + @retval EFI_DEVICE_ERROR The number of blocks written is incorrect. + @retval Other An error occurred during the validation process. + +**/ +STATIC +EFI_STATUS +ValidateWrittenBlockCount ( + IN MMC_HOST_INSTANCE *MmcHostInstance, + IN UINTN Count, + OUT UINTN *TransferredBlocks + ) +{ + UINT32 R1; + UINT8 Data[4]; + EFI_STATUS Status; + UINT32 BlocksWritten; + EFI_MMC_HOST_PROTOCOL *MmcHost; + + if (MmcHostInstance->CardInfo.CardType == MMC_CARD || + MmcHostInstance->CardInfo.CardType == MMC_CARD_HIGH || + MmcHostInstance->CardInfo.CardType == EMMC_CARD) { + /* + * Not on MMC. + */ + *TransferredBlocks = Count; + return EFI_SUCCESS; + } + + MmcHost = MmcHostInstance->MmcHost; + + Status = MmcHost->SendCommand (MmcHost, MMC_CMD55, + MmcHostInstance->CardInfo.RCA << 16, MMC_RESPONSE_R1, &R1); + if (EFI_ERROR (Status)) { + DEBUG ((DEBUG_ERROR, "%a(%u): error: %r\n", __func__, __LINE__, Status)); + return Status; + } + + Status = MmcHost->SendCommand (MmcHost, MMC_ACMD22, 0, MMC_RESPONSE_R1, &R1); + if (EFI_ERROR (Status)) { + DEBUG ((DEBUG_ERROR, "%a(%u): error: %r\n", + __func__, __LINE__, Status)); + return Status; + } + + Status = R1TranAndReady (&R1); + if (EFI_ERROR (Status)) { + return Status; + } + + // Read Data + Status = MmcHost->ReadBlockData (MmcHost, 0, sizeof (Data), + (VOID*)Data); + if (EFI_ERROR (Status)) { + DEBUG ((DEBUG_ERROR, "%a(%u): error: %r\n", __func__, __LINE__, Status)); + return Status; + } + + /* + * Big Endian. + */ + BlocksWritten = ((UINT32)Data[0] << 24) | + ((UINT32)Data[1] << 16) | + ((UINT32)Data[2] << 8) | + ((UINT32)Data[3] << 0); + if (BlocksWritten != Count) { + DEBUG ((DEBUG_ERROR, "%a(%u): expected %u != gotten %u\n", + __func__, __LINE__, Count, BlocksWritten)); + if (BlocksWritten == 0) { + return EFI_DEVICE_ERROR; + } + } + + *TransferredBlocks = BlocksWritten; + return EFI_SUCCESS; +} + +/** + Wait until the card is in the "Tran" state. + + @param[in] MmcHostInstance Pointer to the MMC host instance. + + @retval EFI_SUCCESS The card is in the "Tran" state. + @retval EFI_NOT_READY The card is not in the expected state or timed out. + @retval Other An error occurred during the waiting process. + +**/ +STATIC +EFI_STATUS +WaitUntilTran ( + IN MMC_HOST_INSTANCE *MmcHostInstance + ) +{ + INTN Timeout; + UINT32 Response[1]; + EFI_STATUS Status; + EFI_MMC_HOST_PROTOCOL *MmcHost; + + Timeout = MMCI0_TIMEOUT; + Status = EFI_SUCCESS; + MmcHost = MmcHostInstance->MmcHost; + + while (Timeout--) { + /* + * We expect CMD13 to timeout while card is programming, + * because the card holds DAT0 low (busy). + */ + Status = MmcHost->SendCommand (MmcHost, MMC_CMD13, + MmcHostInstance->CardInfo.RCA << 16, MMC_RESPONSE_R1, Response); + if (EFI_ERROR (Status) && Status != EFI_TIMEOUT) { + DEBUG ((DEBUG_ERROR, "%a(%u) CMD13 failed: %r\n", __func__, __LINE__, Status)); + return Status; + } + + if (Status == EFI_SUCCESS) { + Status = R1TranAndReady (Response); + if (!EFI_ERROR (Status)) { + break; + } + } + gBS->Stall(1000); + } + + if (0 == Timeout) { + DEBUG ((DEBUG_ERROR, "%a(%u) card is busy\n", __func__, __LINE__)); + return EFI_NOT_READY; + } + + return Status; +} + +/** + Sets the state of the MMC host instance and invokes the + NotifyState function of the MMC host, passing the updated state. + + @param MmcHostInstance Pointer to the MMC host instance. + @param State The new state to be set for the MMC host instance. + + @retval EFI_STATUS + +**/ +EFI_STATUS +MmcNotifyState ( + IN MMC_HOST_INSTANCE *MmcHostInstance, + IN MMC_STATE State + ) +{ + MmcHostInstance->State = State; + return MmcHostInstance->MmcHost->NotifyState (MmcHostInstance->MmcHost, State); +} + +/** + Reset the block device. + + This function implements EFI_BLOCK_IO_PROTOCOL.Reset(). + It resets the block device hardware. + ExtendedVerification is ignored in this implementation. + + @param This Indicates a pointer to the calling context. + @param ExtendedVerification Indicates that the driver may perform a more exhaustive + verification operation of the device during reset. + + @retval EFI_SUCCESS The block device was reset. + @retval EFI_DEVICE_ERROR The block device is not functioning correctly and could not be reset. + +**/ +EFI_STATUS +EFIAPI +MmcReset ( + IN EFI_BLOCK_IO_PROTOCOL *This, + IN BOOLEAN ExtendedVerification + ) +{ + MMC_HOST_INSTANCE *MmcHostInstance; + + MmcHostInstance = MMC_HOST_INSTANCE_FROM_BLOCK_IO_THIS (This); + + if (MmcHostInstance->MmcHost == NULL) { + // Nothing to do + return EFI_SUCCESS; + } + + // If a card is not present then clear all media settings + if (!MmcHostInstance->MmcHost->IsCardPresent (MmcHostInstance->MmcHost)) { + MmcHostInstance->BlockIo.Media->MediaPresent = FALSE; + MmcHostInstance->BlockIo.Media->LastBlock = 0; + MmcHostInstance->BlockIo.Media->BlockSize = 512; // Should be zero but there is a bug in DiskIo + MmcHostInstance->BlockIo.Media->ReadOnly = FALSE; + + // Indicate that the driver requires initialization + MmcHostInstance->State = MmcHwInitializationState; + + return EFI_SUCCESS; + } + + // Implement me. Either send a CMD0 (could not work for some MMC host) + // or just turn off/turn on power and restart Identification mode. + return EFI_SUCCESS; +} + +/** + Detect if an MMC card is present. + + @param[in] MmcHost Pointer to the EFI_MMC_HOST_PROTOCOL instance. + + @retval EFI_NO_MEDIA No MMC card is present. + @retval EFI_SUCCESS An MMC card is present. + +**/ +EFI_STATUS +MmcDetectCard ( + EFI_MMC_HOST_PROTOCOL *MmcHost + ) +{ + if (!MmcHost->IsCardPresent (MmcHost)) { + return EFI_NO_MEDIA; + } else { + return EFI_SUCCESS; + } +} + +/** + Stop the current transmission on the MMC bus. + + @param[in] MmcHost Pointer to the EFI_MMC_HOST_PROTOCOL instance. + + @retval EFI_SUCCESS The transmission was successfully stopped. + @retval Other An error occurred while stopping the transmission. + +**/ +EFI_STATUS +MmcStopTransmission ( + EFI_MMC_HOST_PROTOCOL *MmcHost + ) +{ + EFI_STATUS Status; + UINT32 Response[4]; + // Command 12 - Stop transmission (ends read or write) + // Normally only needed for streaming transfers or after error. + Status = MmcHost->SendCommand (MmcHost, MMC_CMD12, 0, MMC_RESPONSE_R1B, Response); + return Status; +} + +/** + Transfer a block of data to or from the MMC device. + + @param[in] This Pointer to the EFI_BLOCK_IO_PROTOCOL instance. + @param[in] Cmd Command to be sent to the MMC device. + @param[in] Transfer Transfer type (MMC_IOBLOCKS_READ or MMC_IOBLOCKS_WRITE). + @param[in] MediaId Media ID of the MMC device. + @param[in] Lba Logical Block Address. + @param[in] BufferSize Size of the data buffer. + @param[out] Buffer Pointer to the data buffer. + @param[out] TransferredSize Number of bytes transferred. + + @retval EFI_SUCCESS The data transfer was successful. + @retval EFI_NOT_READY The MMC device is not ready for the transfer. + @retval EFI_DEVICE_ERROR An error occurred during the data transfer. + @retval Other An error occurred during the data transfer. + +**/ +STATIC +EFI_STATUS +MmcTransferBlock ( + IN EFI_BLOCK_IO_PROTOCOL *This, + IN UINTN Cmd, + IN UINTN Transfer, + IN UINT32 MediaId, + IN EFI_LBA Lba, + IN UINTN BufferSize, + OUT VOID *Buffer, + OUT UINTN *TransferredSize + ) +{ + EFI_STATUS Status; + MMC_HOST_INSTANCE *MmcHostInstance; + EFI_MMC_HOST_PROTOCOL *MmcHost; + UINTN CmdArg; + + MmcHostInstance = MMC_HOST_INSTANCE_FROM_BLOCK_IO_THIS (This); + MmcHost = MmcHostInstance->MmcHost; + + //Set command argument based on the card access mode (Byte mode or Block mode) + if ((MmcHostInstance->CardInfo.OCRData.AccessMode & MMC_OCR_ACCESS_MASK) == MMC_OCR_ACCESS_SECTOR) { + CmdArg = Lba; + } else { + CmdArg = Lba * This->Media->BlockSize; + } + + Status = MmcHost->SendCommand (MmcHost, Cmd, CmdArg, MMC_RESPONSE_R1, NULL); + if (EFI_ERROR (Status)) { + DEBUG ((DEBUG_ERROR, "%a(MMC_CMD%d): Error %r\n", __func__, MMC_INDX (Cmd), Status)); + return Status; + } + + if (Transfer == MMC_IOBLOCKS_READ) { + Status = MmcHost->ReadBlockData (MmcHost, Lba, BufferSize, Buffer); + } else { + Status = MmcHost->WriteBlockData (MmcHost, Lba, BufferSize, Buffer); + if (!EFI_ERROR (Status)) { + Status = MmcNotifyState (MmcHostInstance, MmcProgrammingState); + if (EFI_ERROR (Status)) { + DEBUG ((DEBUG_ERROR, "%a(): Error MmcProgrammingState\n", __func__)); + return Status; + } + } + } + + if (EFI_ERROR (Status) || + BufferSize > This->Media->BlockSize) { + /* + * CMD12 needs to be set for multiblock (to transition from + * RECV to PROG) or for errors. + */ + EFI_STATUS Status2 = MmcStopTransmission (MmcHost); + if (EFI_ERROR (Status2)) { + DEBUG ((DEBUG_ERROR, "MmcIoBlocks(): CMD12 error on Status %r: %r\n", + Status, Status2)); + return Status2; + } + + if (EFI_ERROR (Status)) { + DEBUG ((DEBUG_BLKIO, "%a(): Error %a Block Data and Status = %r\n", + __func__, Transfer == MMC_IOBLOCKS_READ ? "Read" : "Write", Status)); + return Status; + } + + ASSERT (Cmd == MMC_CMD25 || Cmd == MMC_CMD18); + } + + // + // For reads, should be already in TRAN. For writes, wait + // until programming finishes. + // + Status = WaitUntilTran (MmcHostInstance); + if (EFI_ERROR (Status)) { + DEBUG ((DEBUG_ERROR, "WaitUntilTran after write failed\n")); + return Status; + } + + Status = MmcNotifyState (MmcHostInstance, MmcTransferState); + if (EFI_ERROR (Status)) { + DEBUG ((DEBUG_ERROR, "MmcIoBlocks() : Error MmcTransferState\n")); + return Status; + } + + if (Transfer != MMC_IOBLOCKS_READ) { + UINTN BlocksWritten = 0; + + Status = ValidateWrittenBlockCount (MmcHostInstance, + BufferSize / + This->Media->BlockSize, + &BlocksWritten); + *TransferredSize = BlocksWritten * This->Media->BlockSize; + } else { + *TransferredSize = BufferSize; + } + + return Status; +} + +/** + Perform read or write operations on the MMC device. + + @param[in] This Pointer to the EFI_BLOCK_IO_PROTOCOL instance. + @param[in] Transfer Transfer type (MMC_IOBLOCKS_READ or MMC_IOBLOCKS_WRITE). + @param[in] MediaId Media ID of the MMC device. + @param[in] Lba Logical Block Address. + @param[in] BufferSize Size of the data buffer. + @param[out] Buffer Pointer to the data buffer. + + @retval EFI_SUCCESS The operation completed successfully. + @retval EFI_MEDIA_CHANGED The MediaId is not the current media. + @retval EFI_INVALID_PARAMETER Invalid parameter passed to the function. + @retval EFI_NO_MEDIA There is no media present in the MMC device. + @retval EFI_WRITE_PROTECTED The MMC device is write-protected. + @retval EFI_BAD_BUFFER_SIZE The buffer size is not an exact multiple of the block size. + @retval Other An error occurred during the data transfer. + +**/ +EFI_STATUS +MmcIoBlocks ( + IN EFI_BLOCK_IO_PROTOCOL *This, + IN UINTN Transfer, + IN UINT32 MediaId, + IN EFI_LBA Lba, + IN UINTN BufferSize, + OUT VOID *Buffer + ) +{ + EFI_STATUS Status; + UINTN Cmd; + MMC_HOST_INSTANCE *MmcHostInstance; + EFI_MMC_HOST_PROTOCOL *MmcHost; + UINTN BytesRemainingToBeTransfered; + UINTN BlockCount; + UINTN ConsumeSize; + + BlockCount = 1; + MmcHostInstance = MMC_HOST_INSTANCE_FROM_BLOCK_IO_THIS (This); + ASSERT (MmcHostInstance != NULL); + + MmcHost = MmcHostInstance->MmcHost; + ASSERT (MmcHost); + + if (This->Media->MediaId != MediaId) { + return EFI_MEDIA_CHANGED; + } + + if ((MmcHost == NULL) || (Buffer == NULL)) { + return EFI_INVALID_PARAMETER; + } + + // Check if a Card is Present + if (!MmcHostInstance->BlockIo.Media->MediaPresent) { + return EFI_NO_MEDIA; + } + + if (MMC_HOST_HAS_ISMULTIBLOCK (MmcHost) && + MmcHost->IsMultiBlock (MmcHost)) { + BlockCount = (BufferSize + This->Media->BlockSize - 1) / This->Media->BlockSize; + } + + // All blocks must be within the device + if ((Lba + (BufferSize / This->Media->BlockSize)) > (This->Media->LastBlock + 1)) { + return EFI_INVALID_PARAMETER; + } + + if ((Transfer == MMC_IOBLOCKS_WRITE) && (This->Media->ReadOnly == TRUE)) { + return EFI_WRITE_PROTECTED; + } + + // Reading 0 Byte is valid + if (BufferSize == 0) { + return EFI_SUCCESS; + } + + // The buffer size must be an exact multiple of the block size + if ((BufferSize % This->Media->BlockSize) != 0) { + return EFI_BAD_BUFFER_SIZE; + } + + // Check the alignment + if ((This->Media->IoAlign > 2) && (((UINTN)Buffer & (This->Media->IoAlign - 1)) != 0)) { + return EFI_INVALID_PARAMETER; + } + + BytesRemainingToBeTransfered = BufferSize; + while (BytesRemainingToBeTransfered > 0) { + Status = WaitUntilTran (MmcHostInstance); + if (EFI_ERROR (Status)) { + DEBUG ((DEBUG_ERROR, "WaitUntilTran before IO failed")); + return Status; + } + + if (Transfer == MMC_IOBLOCKS_READ) { + if (BlockCount == 1) { + // Read a single block + Cmd = MMC_CMD17; + } else { + // Read multiple blocks + Cmd = MMC_CMD18; + } + } else { + if (BlockCount == 1) { + // Write a single block + Cmd = MMC_CMD24; + } else { + // Write multiple blocks + Cmd = MMC_CMD25; + } + } + + ConsumeSize = BlockCount * This->Media->BlockSize; + if (BytesRemainingToBeTransfered < ConsumeSize) { + ConsumeSize = BytesRemainingToBeTransfered; + } + + if (ConsumeSize > MAX_BUF_LEN) { + ConsumeSize = MAX_BUF_LEN; + BlockCount = MAX_BLK_CNT; + } else { + BlockCount = ConsumeSize / This->Media->BlockSize; + } + + MmcHost->Prepare (MmcHost, Lba, ConsumeSize, (UINTN)Buffer); + + Status = MmcTransferBlock (This, Cmd, Transfer, MediaId, Lba, ConsumeSize, Buffer, &ConsumeSize); + if (EFI_ERROR (Status)) { + DEBUG ((DEBUG_ERROR, "%a(): Failed to transfer block and Status:%r\n", __func__, Status)); + return Status; + } + + BytesRemainingToBeTransfered -= ConsumeSize; + if (BytesRemainingToBeTransfered > 0) { + Lba += BlockCount; + Buffer = (UINT8*)Buffer + ConsumeSize; + } + } + + return EFI_SUCCESS; +} + +/** + Reads the requested number of blocks from the device. + + This function implements EFI_BLOCK_IO_PROTOCOL.ReadBlocks(). + It reads the requested number of blocks from the device. + All the blocks are read, or an error is returned. + + @param This Indicates a pointer to the calling context. + @param MediaId The media ID that the read request is for. + @param Lba The starting logical block address to read from on the device. + @param BufferSize The size of the Buffer in bytes. + This must be a multiple of the intrinsic block size of the device. + @param Buffer A pointer to the destination buffer for the data. The caller is + responsible for either having implicit or explicit ownership of the buffer. + + @retval EFI_SUCCESS The data was read correctly from the device. + @retval EFI_DEVICE_ERROR The device reported an error while attempting to perform the read operation. + @retval EFI_NO_MEDIA There is no media in the device. + @retval EFI_MEDIA_CHANGED The MediaId is not for the current media. + @retval EFI_BAD_BUFFER_SIZE The BufferSize parameter is not a multiple of the intrinsic block size of the device. + @retval EFI_INVALID_PARAMETER The read request contains LBAs that are not valid, + or the buffer is not on proper alignment. + +**/ +EFI_STATUS +EFIAPI +MmcReadBlocks ( + IN EFI_BLOCK_IO_PROTOCOL *This, + IN UINT32 MediaId, + IN EFI_LBA Lba, + IN UINTN BufferSize, + OUT VOID *Buffer + ) +{ + return MmcIoBlocks (This, MMC_IOBLOCKS_READ, MediaId, Lba, BufferSize, Buffer); +} + +/** + Writes a specified number of blocks to the device. + + This function implements EFI_BLOCK_IO_PROTOCOL.WriteBlocks(). + It writes a specified number of blocks to the device. + All blocks are written, or an error is returned. + + @param This Indicates a pointer to the calling context. + @param MediaId The media ID that the write request is for. + @param Lba The starting logical block address to be written. + @param BufferSize The size of the Buffer in bytes. + This must be a multiple of the intrinsic block size of the device. + @param Buffer Pointer to the source buffer for the data. + + @retval EFI_SUCCESS The data were written correctly to the device. + @retval EFI_WRITE_PROTECTED The device cannot be written to. + @retval EFI_NO_MEDIA There is no media in the device. + @retval EFI_MEDIA_CHANGED The MediaId is not for the current media. + @retval EFI_DEVICE_ERROR The device reported an error while attempting to perform the write operation. + @retval EFI_BAD_BUFFER_SIZE The BufferSize parameter is not a multiple of the intrinsic + block size of the device. + @retval EFI_INVALID_PARAMETER The write request contains LBAs that are not valid, + or the buffer is not on proper alignment. + +**/ +EFI_STATUS +EFIAPI +MmcWriteBlocks ( + IN EFI_BLOCK_IO_PROTOCOL *This, + IN UINT32 MediaId, + IN EFI_LBA Lba, + IN UINTN BufferSize, + IN VOID *Buffer + ) +{ + return MmcIoBlocks (This, MMC_IOBLOCKS_WRITE, MediaId, Lba, BufferSize, Buffer); +} + +/** + Flushes all modified data to a physical block device. + + @param This Indicates a pointer to the calling context. + + @retval EFI_SUCCESS All outstanding data were written correctly to the device. + @retval EFI_DEVICE_ERROR The device reported an error while attempting to write data. + @retval EFI_NO_MEDIA There is no media in the device. + +**/ +EFI_STATUS +EFIAPI +MmcFlushBlocks ( + IN EFI_BLOCK_IO_PROTOCOL *This + ) +{ + return EFI_SUCCESS; +} diff --git a/Silicon/Sophgo/SG2042Pkg/Drivers/MmcDxe/MmcDebug.c b/Silicon/Sophgo/SG2042Pkg/Drivers/MmcDxe/MmcDebug.c new file mode 100644 index XXXXXXX..XXXXXXX --- /dev/null +++ b/Silicon/Sophgo/SG2042Pkg/Drivers/MmcDxe/MmcDebug.c @@ -XXX,XX +XXX,XX @@ +/** @file + Provides debug functions for MMC/SD card operations. + + Copyright (c) 2011-2013, ARM Limited. All rights reserved. + + SPDX-License-Identifier: BSD-2-Clause-Patent + +**/ + +#include "Mmc.h" + +#if !defined(MDEPKG_NDEBUG) +CONST CHAR8* mStrUnit[] = { "100kbit/s", "1Mbit/s", "10Mbit/s", "100MBit/s", + "Unknown", "Unknown", "Unknown", "Unknown" }; +CONST CHAR8* mStrValue[] = { "1.0", "1.2", "1.3", "1.5", "2.0", "2.5", + "3.0", "3.5", "4.0", "4.5", "5.0", "5.5", + "6.0", "7.0", "8.0" }; +#endif + +/** + Print the Card Identification (CID) register. + + @param[in] Cid Pointer to the CID array. + +**/ +VOID +PrintCID ( + IN UINT32* Cid + ) +{ + DEBUG ((DEBUG_ERROR, "- PrintCID\n")); + DEBUG ((DEBUG_ERROR, "\t- Manufacturing date: %d/%d\n", (Cid[0] >> 8) & 0xF, (Cid[0] >> 12) & 0xFF)); + DEBUG ((DEBUG_ERROR, "\t- Product serial number: 0x%X%X\n", Cid[1] & 0xFFFFFF, (Cid[0] >> 24) & 0xFF)); + DEBUG ((DEBUG_ERROR, "\t- Product revision: %d\n", Cid[1] >> 24)); + //DEBUG ((DEBUG_ERROR, "\t- Product name: %s\n", (char*)(Cid + 2))); + DEBUG ((DEBUG_ERROR, "\t- OEM ID: %c%c\n", (Cid[3] >> 8) & 0xFF, (Cid[3] >> 16) & 0xFF)); +} + +/** + Print the Card Specific Data (CSD). + + @param[in] Csd Pointer to the CSD array + +**/ +VOID +PrintCSD ( + IN UINT32* Csd + ) +{ + UINTN Value; + + if (((Csd[2] >> 30) & 0x3) == 0) { + DEBUG ((DEBUG_ERROR, "- PrintCSD Version 1.01-1.10/Version 2.00/Standard Capacity\n")); + } else if (((Csd[2] >> 30) & 0x3) == 1) { + DEBUG ((DEBUG_ERROR, "- PrintCSD Version 2.00/High Capacity\n")); + } else { + DEBUG ((DEBUG_ERROR, "- PrintCSD Version Higher than v3.3\n")); + } + + DEBUG ((DEBUG_ERROR, "\t- Supported card command class: 0x%X\n", MMC_CSD_GET_CCC (Csd))); + DEBUG ((DEBUG_ERROR, "\t- Max Speed: %a * %a\n", mStrValue[(MMC_CSD_GET_TRANSPEED (Csd) >> 3) & 0xF], + mStrUnit[MMC_CSD_GET_TRANSPEED (Csd) & 7])); + DEBUG ((DEBUG_ERROR, "\t- Maximum Read Data Block: %d\n", 2 << (MMC_CSD_GET_READBLLEN (Csd) - 1))); + DEBUG ((DEBUG_ERROR, "\t- Maximum Write Data Block: %d\n", 2 << (MMC_CSD_GET_WRITEBLLEN (Csd) - 1))); + + if (!MMC_CSD_GET_FILEFORMATGRP (Csd)) { + Value = MMC_CSD_GET_FILEFORMAT (Csd); + if (Value == 0) { + DEBUG ((DEBUG_ERROR, "\t- Format (0): Hard disk-like file system with partition table\n")); + } else if (Value == 1) { + DEBUG ((DEBUG_ERROR, "\t- Format (1): DOS FAT (floppy-like) with boot sector only (no partition table)\n")); + } else if (Value == 2) { + DEBUG ((DEBUG_ERROR, "\t- Format (2): Universal File Format\n")); + } else { + DEBUG ((DEBUG_ERROR, "\t- Format (3): Others/Unknown\n")); + } + } else { + DEBUG ((DEBUG_ERROR, "\t- Format: Reserved\n")); + } +} + +/** + Print the Relative Card Address (RCA). + + @param[in] Rca The Relative Card Address (RCA) value + +**/ +VOID +PrintRCA ( + IN UINT32 Rca + ) +{ + DEBUG ((DEBUG_ERROR, "- PrintRCA: 0x%X\n", Rca)); + DEBUG ((DEBUG_ERROR, "\t- Status: 0x%X\n", Rca & 0xFFFF)); + DEBUG ((DEBUG_ERROR, "\t- RCA: 0x%X\n", (Rca >> 16) & 0xFFFF)); +} + +/** + Print the Operation Condition Register (OCR). + + @param[in] Ocr The Operation Condition Register (OCR) value + +**/ +VOID +PrintOCR ( + IN UINT32 Ocr + ) +{ + UINTN MinV; + UINTN MaxV; + UINTN Volts; + UINTN Loop; + + MinV = 36; // 3.6 + MaxV = 20; // 2.0 + Volts = 20; // 2.0 + + // The MMC register bits [23:8] indicate the working range of the card + for (Loop = 8; Loop < 24; Loop++) { + if (Ocr & (1 << Loop)) { + if (MinV > Volts) { + MinV = Volts; + } + if (MaxV < Volts) { + MaxV = Volts + 1; + } + } + Volts++; + } + + DEBUG ((DEBUG_ERROR, "- PrintOCR Ocr (0x%X)\n", Ocr)); + DEBUG ((DEBUG_ERROR, "\t- Card operating voltage: %d.%d to %d.%d\n", MinV / 10, MinV % 10, MaxV / 10, MaxV % 10)); + if (((Ocr >> 29) & 3) == 0) { + DEBUG ((DEBUG_ERROR, "\t- AccessMode: Byte Mode\n")); + } else { + DEBUG ((DEBUG_ERROR, "\t- AccessMode: Block Mode (0x%X)\n", ((Ocr >> 29) & 3))); + } + + if (Ocr & MMC_OCR_POWERUP) { + DEBUG ((DEBUG_ERROR, "\t- PowerUp\n")); + } else { + DEBUG ((DEBUG_ERROR, "\t- Voltage Not Supported\n")); + } +} + +/** + Print the R1 response. + + @param[in] Response The R1 response value. + +**/ +VOID +PrintResponseR1 ( + IN UINT32 Response + ) +{ + DEBUG ((DEBUG_INFO, "Response: 0x%X\n", Response)); + if (Response & MMC_R0_READY_FOR_DATA) { + DEBUG ((DEBUG_INFO, "\t- READY_FOR_DATA\n")); + } + + switch ((Response >> 9) & 0xF) { + case 0: + DEBUG ((DEBUG_INFO, "\t- State: Idle\n")); + break; + case 1: + DEBUG ((DEBUG_INFO, "\t- State: Ready\n")); + break; + case 2: + DEBUG ((DEBUG_INFO, "\t- State: Ident\n")); + break; + case 3: + DEBUG ((DEBUG_INFO, "\t- State: StandBy\n")); + break; + case 4: + DEBUG ((DEBUG_INFO, "\t- State: Tran\n")); + break; + case 5: + DEBUG ((DEBUG_INFO, "\t- State: Data\n")); + break; + case 6: + DEBUG ((DEBUG_INFO, "\t- State: Rcv\n")); + break; + case 7: + DEBUG ((DEBUG_INFO, "\t- State: Prg\n")); + break; + case 8: + DEBUG ((DEBUG_INFO, "\t- State: Dis\n")); + break; + default: + DEBUG ((DEBUG_INFO, "\t- State: Reserved\n")); + break; + } +} diff --git a/Silicon/Sophgo/SG2042Pkg/Drivers/MmcDxe/MmcIdentification.c b/Silicon/Sophgo/SG2042Pkg/Drivers/MmcDxe/MmcIdentification.c new file mode 100644 index XXXXXXX..XXXXXXX --- /dev/null +++ b/Silicon/Sophgo/SG2042Pkg/Drivers/MmcDxe/MmcIdentification.c @@ -XXX,XX +XXX,XX @@ +/** @file + Define a simple and generic interface to access SD-card devices. + + Copyright (c) 2018-2021, ARM Limited and Contributors. All rights reserved. + Copyright (c) 2023, Academy of Intelligent Innovation, Shandong Universiy, China.P.R. All rights reserved.<BR> + + SPDX-License-Identifier: BSD-3-Clause + +**/ + +#include <Uefi.h> +#include <Include/MmcHost.h> +#include <Library/UefiLib.h> +#include <Library/DebugLib.h> +#include <Library/UefiBootServicesTableLib.h> +#include <Library/IoLib.h> +#include <Library/BaseMemoryLib.h> + +#include "Mmc.h" + +#define MMC_DEFAULT_MAX_RETRIES 5 +#define SEND_OP_COND_MAX_RETRIES 100 + +#define MULT_BY_512K_SHIFT 19 + +STATIC UINT32 MmcOCR; +STATIC CSD MmcCsd; +STATIC UINT8 MmcExtCsd[512] __attribute__ ((aligned(16))); +STATIC UINT32 MmcRCA; +STATIC UINT32 MmcSCR[2] __attribute__ ((aligned(16))) = { 0 }; + +typedef enum _MMC_DEVICE_TYPE { + MMC_IS_EMMC, + MMC_IS_SD, + MMC_IS_SD_HC, +} MMC_DEVICE_TYPE; + +typedef struct { + UINT64 DeviceSize; /* Size of device in bytes */ + UINT32 BlockSize; /* Block size in bytes */ + UINT32 MaxBusFreq; /* Max bus freq in Hz */ + UINT32 OCRVoltage; /* OCR voltage */ + MMC_DEVICE_TYPE MmcDevType; /* Type of MMC */ +} MMC_DEVICE_INFO; + +STATIC MMC_DEVICE_INFO MmcDevInfo = { + .MmcDevType = MMC_IS_SD_HC, + .OCRVoltage = 0x00300000, // OCR 3.2~3.3 3.3~3.4 +}; + +STATIC CONST UINT8 TranSpeedBase[16] = { + 0, 10, 12, 13, 15, 20, 26, 30, 35, 40, 45, 52, 55, 60, 70, 80 +}; + +STATIC CONST UINT8 SdTranSpeedBase[16] = { + 0, 10, 12, 13, 15, 20, 25, 30, 35, 40, 45, 50, 55, 60, 70, 80 +}; + +/** + Get the current state of the MMC device. + + @param[in] MmcHostInstance Pointer to the MMC_HOST_INSTANCE structure. + @param[out] State Pointer to the variable to store the device state. + + @retval EFI_SUCCESS The device state was retrieved successfully. + @retval EFI_DEVICE_ERROR Failed to retrieve the device state. + +**/ +STATIC +EFI_STATUS +MmcDeviceState ( + IN MMC_HOST_INSTANCE *MmcHostInstance, + IN UINT32 *State + ) +{ + EFI_STATUS Status; + INT32 RetryCount; + UINT32 Response[4]; + + RetryCount = MMC_DEFAULT_MAX_RETRIES; + + do { + if (RetryCount == 0) { + DEBUG ((DEBUG_ERROR, "%a: CMD13 failed after %d retries\n", __func__, MMC_DEFAULT_MAX_RETRIES)); + return EFI_DEVICE_ERROR; + } + + Status = MmcHostInstance->MmcHost->SendCommand (MmcHostInstance->MmcHost, MMC_CMD13, MmcRCA << RCA_SHIFT_OFFSET, + MMC_RESPONSE_R1, Response); + if (EFI_ERROR (Status)) { + RetryCount--; + continue; + } + + if ((Response[0] & MMC_R0_SWITCH_ERROR) != 0U) { + return EFI_DEVICE_ERROR; + } + + RetryCount--; + } while ((Response[0] & MMC_R0_READY_FOR_DATA) == 0U); + + // DEBUG ((DEBUG_INFO, "%a: sd state %x\n", __func__, MMC_R0_CURRENTSTATE(Response))); + *State = MMC_R0_CURRENTSTATE (Response); + + return EFI_SUCCESS; +} + +/** + Set the value of the specified MMC extended CSD register. + + @param[in] MmcHostInstance Pointer to the MMC_HOST_INSTANCE structure. + @param[in] ExtCmd The extended CSD command. + @param[in] Value The value to set. + + @retval EFI_SUCCESS The value was successfully set. + @retval Other An error occurred while setting the value. + +**/ +STATIC +EFI_STATUS +MmcSetExtCsd ( + IN MMC_HOST_INSTANCE *MmcHostInstance, + IN UINT32 ExtCmd, + IN UINT32 Value + ) +{ + EFI_STATUS Status; + UINT32 State; + + Status = MmcHostInstance->MmcHost->SendCommand (MmcHostInstance->MmcHost, MMC_CMD6, + EXTCSD_WRITE_BYTES | EXTCSD_CMD(ExtCmd) | + EXTCSD_VALUE(Value) | EXTCSD_CMD_SET_NORMAL, + MMC_RESPONSE_R1B, NULL); + if (EFI_ERROR (Status)) { + return Status; + } + + do { + Status = MmcDeviceState (MmcHostInstance, &State); + if (EFI_ERROR (Status)) { + return Status; + } + } while (State == MMC_R0_STATE_PROG); + + return EFI_SUCCESS; +} + +/** + Perform an SD switch to set the bus width for the MMC/SD device. + + @param[in] MmcHostInstance Pointer to the MMC_HOST_INSTANCE structure. + @param[in] BusWidth The desired bus width. + + @retval EFI_SUCCESS The bus width was successfully set. + @retval Other An error occurred while setting the bus width. + +**/ +STATIC +EFI_STATUS +MmcSdSwitch ( + IN MMC_HOST_INSTANCE *MmcHostInstance, + IN UINT32 BusWidth + ) +{ + EFI_STATUS Status; + UINT32 State; + INT32 RetryCount; + UINT32 BusWidthArg; + + RetryCount = MMC_DEFAULT_MAX_RETRIES; + BusWidthArg = 0; + + Status = MmcHostInstance->MmcHost->Prepare (MmcHostInstance->MmcHost, 0, sizeof(MmcSCR), (UINTN)&MmcSCR); + if (EFI_ERROR (Status)) { + return Status; + } + + // CMD55: Application Specific Command + Status = MmcHostInstance->MmcHost->SendCommand (MmcHostInstance->MmcHost, MMC_CMD55, MmcRCA << RCA_SHIFT_OFFSET, + MMC_RESPONSE_R5, NULL); + if (EFI_ERROR (Status)) { + return Status; + } + + // ACMD51: SEND_SCR + do { + Status = MmcHostInstance->MmcHost->SendCommand (MmcHostInstance->MmcHost, MMC_ACMD51, 0, MMC_RESPONSE_R1, NULL); + if ((EFI_ERROR (Status)) && (RetryCount == 0)) { + DEBUG ((DEBUG_ERROR, "%a: ACMD51 failed after %d retries (Status=%r)\n", __func__, MMC_DEFAULT_MAX_RETRIES, Status)); + return Status; + } + + RetryCount--; + } while (EFI_ERROR (Status)); + + Status = MmcHostInstance->MmcHost->ReadBlockData (MmcHostInstance->MmcHost, 0, sizeof(MmcSCR), MmcSCR); + if (EFI_ERROR (Status)) { + return Status; + } + + if (((MmcSCR[0] & SD_SCR_BUS_WIDTH_4) != 0U) && (BusWidth == MMC_BUS_WIDTH_4)) { + BusWidthArg = 2; + } + + // CMD55: Application Specific Command + Status = MmcHostInstance->MmcHost->SendCommand (MmcHostInstance->MmcHost, MMC_CMD55, MmcRCA << RCA_SHIFT_OFFSET, + MMC_RESPONSE_R5, NULL); + if (EFI_ERROR (Status)) { + return Status; + } + + // ACMD6: SET_BUS_WIDTH + Status = MmcHostInstance->MmcHost->SendCommand (MmcHostInstance->MmcHost, MMC_CMD6, BusWidthArg, MMC_RESPONSE_R1, NULL); + if (EFI_ERROR (Status)) { + return Status; + } + + do { + Status = MmcDeviceState (MmcHostInstance, &State); + if (EFI_ERROR (Status)) { + return Status; + } + } while (State == MMC_R0_STATE_PROG); + + return EFI_SUCCESS; +} + +/** + Set the I/O settings for the MMC/SD device. + + @param[in] MmcHostInstance Pointer to the MMC_HOST_INSTANCE structure. + @param[in] Clk The desired clock frequency. + @param[in] BusWidth The desired bus width. + + @retval EFI_SUCCESS The I/O settings were successfully set. + @retval Other An error occurred while setting the I/O settings. + +**/ +STATIC +EFI_STATUS +MmcSetIos ( + IN MMC_HOST_INSTANCE *MmcHostInstance, + IN UINT32 Clk, + IN UINT32 BusWidth + ) +{ + EFI_STATUS Status; + UINT32 Width; + + Width = BusWidth; + + if (MmcDevInfo.MmcDevType != MMC_IS_EMMC) { + if (Width == MMC_BUS_WIDTH_8) { + DEBUG ((DEBUG_INFO, "%a: Wrong bus config for SD-card, force to 4\n", __func__)); + Width = MMC_BUS_WIDTH_4; + } + + Status = MmcSdSwitch (MmcHostInstance, Width); + if (EFI_ERROR (Status)) { + return Status; + } + } else if (MmcCsd.SPEC_VERS == 4U) { + Status = MmcSetExtCsd (MmcHostInstance, CMD_EXTCSD_BUS_WIDTH, (UINT32)Width); + if (EFI_ERROR (Status)) { + return Status; + } + } else { + DEBUG ((DEBUG_INFO, "%a: Wrong MMC type or spec version\n", __func__)); + } + + return MmcHostInstance->MmcHost->SetIos (MmcHostInstance->MmcHost, Clk, Width); +} + +/** + Fill the MMC device information. + + @param[in] MmcHostInstance Pointer to the MMC_HOST_INSTANCE structure. + + @retval EFI_SUCCESS The MMC device information was successfully filled. + @retval EFI_DEVICE_ERROR Failed to fill the MMC device information. + @retval Other An error occurred while filling the MMC device information. + +**/ +STATIC +EFI_STATUS +MmcFillDeviceInfo ( + IN MMC_HOST_INSTANCE *MmcHostInstance + ) +{ + EFI_STATUS Status; + UINTN CardSize; + UINT32 SpeedIdx; + UINT32 NumBlocks; + UINT32 FreqUnit; + UINT32 State; + ECSD *CsdSdV2; + + Status = EFI_SUCCESS; + + switch (MmcDevInfo.MmcDevType) { + case MMC_IS_EMMC: + MmcDevInfo.BlockSize = MMC_BLOCK_SIZE; + + Status = MmcHostInstance->MmcHost->Prepare (MmcHostInstance->MmcHost, 0, sizeof(MmcExtCsd), (UINTN)&MmcExtCsd); + + if (EFI_ERROR (Status)) { + return Status; + } + + /* MMC CMD8: SEND_EXT_CSD */ + Status = MmcHostInstance->MmcHost->SendCommand (MmcHostInstance->MmcHost, MMC_CMD8, 0, MMC_RESPONSE_R1, NULL); + if (EFI_ERROR (Status)) { + return Status; + } + + Status = MmcHostInstance->MmcHost->ReadBlockData (MmcHostInstance->MmcHost, 0, sizeof(MmcExtCsd), (UINT32*)MmcExtCsd); + if (EFI_ERROR (Status)) { + return Status; + } + + do { + Status = MmcDeviceState (MmcHostInstance, &State); + if (EFI_ERROR (Status)) { + return Status; + } + } while (State != MMC_R0_STATE_TRAN); + + NumBlocks = (MmcExtCsd[CMD_EXTCSD_SEC_CNT] << 0) | + (MmcExtCsd[CMD_EXTCSD_SEC_CNT + 1] << 8) | + (MmcExtCsd[CMD_EXTCSD_SEC_CNT + 2] << 16) | + (MmcExtCsd[CMD_EXTCSD_SEC_CNT + 3] << 24); + + MmcDevInfo.DeviceSize = (UINT64)NumBlocks * MmcDevInfo.BlockSize; + + break; + + case MMC_IS_SD: + /* + * Use the same MmcCsd struct, as required fields here + * (READ_BL_LEN, C_SIZE, CSIZE_MULT) are common with eMMC. + */ + MmcDevInfo.BlockSize = BIT_32(MmcCsd.READ_BL_LEN); + + CardSize = ((UINT64)MmcCsd.C_SIZEHigh10 << 2U) | + (UINT64)MmcCsd.C_SIZELow2; + ASSERT(CardSize != 0xFFFU); + + MmcDevInfo.DeviceSize = (CardSize + 1U) * + BIT_64(MmcCsd.C_SIZE_MULT + 2U) * + MmcDevInfo.BlockSize; + + break; + + case MMC_IS_SD_HC: + MmcHostInstance->CardInfo.CardType = SD_CARD_2_HIGH; + + ASSERT (MmcCsd.CSD_STRUCTURE == 1U); + + MmcDevInfo.BlockSize = MMC_BLOCK_SIZE; + + /* Need to use ECSD struct */ + CsdSdV2 = (ECSD *)&MmcCsd; + CardSize = ((UINT64)CsdSdV2->C_SIZEHigh6 << 16) | + (UINT64)CsdSdV2->C_SIZELow16; + + MmcDevInfo.DeviceSize = (CardSize + 1U) << MULT_BY_512K_SHIFT; + break; + + default: + Status = EFI_DEVICE_ERROR; + break; + } + + if (EFI_ERROR (Status)) { + return Status; + } + + SpeedIdx = (MmcCsd.TRAN_SPEED & CSD_TRAN_SPEED_MULT_MASK) >> + CSD_TRAN_SPEED_MULT_SHIFT; + + ASSERT (SpeedIdx > 0U); + + if (MmcDevInfo.MmcDevType == MMC_IS_EMMC) { + MmcDevInfo.MaxBusFreq = TranSpeedBase[SpeedIdx]; + } else { + MmcDevInfo.MaxBusFreq = SdTranSpeedBase[SpeedIdx]; + } + + FreqUnit = MmcCsd.TRAN_SPEED & CSD_TRAN_SPEED_UNIT_MASK; + while (FreqUnit != 0U) { + MmcDevInfo.MaxBusFreq *= 10U; + --FreqUnit; + } + + MmcDevInfo.MaxBusFreq *= 10000U; + + return EFI_SUCCESS; +} + +/** + Send the SD_SEND_OP_COND command to initialize the SD card. + + @param[in] MmcHostInstance Pointer to the MMC_HOST_INSTANCE structure. + + @retval EFI_SUCCESS The SD_SEND_OP_COND command was successfully sent. + @retval EFI_DEVICE_ERROR Failed to send the SD_SEND_OP_COND command. + @retval Other An error occurred while sending the SD_SEND_OP_COND command. + +**/ +STATIC +EFI_STATUS +SdSendOpCond ( + IN MMC_HOST_INSTANCE *MmcHostInstance + ) +{ + EFI_STATUS Status; + INT32 I; + UINT32 Response[4]; + + for (I = 0; I < SEND_OP_COND_MAX_RETRIES; I++) { + // CMD55: Application Specific Command + Status = MmcHostInstance->MmcHost->SendCommand (MmcHostInstance->MmcHost, MMC_CMD55, 0, MMC_RESPONSE_R1, NULL); + if (EFI_ERROR (Status)) { + return Status; + } + + // ACMD41: SD_SEND_OP_COND + Status = MmcHostInstance->MmcHost->SendCommand (MmcHostInstance->MmcHost, MMC_ACMD41, OCR_HCS | + MmcDevInfo.OCRVoltage, MMC_RESPONSE_R3, Response); + if (EFI_ERROR (Status)) { + return Status; + } + + if ((Response[0] & MMC_OCR_POWERUP) != 0U) { + MmcOCR = Response[0]; + + if ((MmcOCR & OCR_HCS) != 0U) { + MmcDevInfo.MmcDevType = MMC_IS_SD_HC; + MmcHostInstance->CardInfo.OCRData.AccessMode = 0x2; + } else { + MmcDevInfo.MmcDevType = MMC_IS_SD; + MmcHostInstance->CardInfo.OCRData.AccessMode = 0x0; + } + + return EFI_SUCCESS; + } + + gBS->Stall (10000); + } + + DEBUG ((DEBUG_ERROR, "%a: ACMD41 failed after %d retries\n", __func__, SEND_OP_COND_MAX_RETRIES)); + + return EFI_DEVICE_ERROR; +} + +/** + Reset the MMC/SD card to the idle state. + + @param[in] MmcHostInstance Pointer to the MMC_HOST_INSTANCE structure. + + @retval EFI_SUCCESS The MMC/SD card was successfully reset to the idle state. + @retval Other An error occurred while resetting the MMC/SD card to the idle state. + +**/ +STATIC +EFI_STATUS +MmcResetToIdle( + IN MMC_HOST_INSTANCE *MmcHostInstance + ) +{ + EFI_STATUS Status; + + /* CMD0: reset to IDLE */ + Status = MmcHostInstance->MmcHost->SendCommand (MmcHostInstance->MmcHost, MMC_CMD0, 0, 0, NULL); + if (EFI_ERROR (Status)) { + return Status; + } + + gBS->Stall (2000); + + return EFI_SUCCESS; +} + +/** + Send the Operation Condition (CMD1) to the MMC/SD card. + + @param[in] MmcHostInstance Pointer to the MMC_HOST_INSTANCE structure. + + @retval EFI_SUCCESS The Operation Condition was successfully sent to the MMC/SD card. + @retval EFI_DEVICE_ERROR Failed to send the Operation Condition to the MMC/SD card. + @retval Other An error occurred while sending the Operation Condition to the MMC/SD card. + +**/ +STATIC +EFI_STATUS +MmcSendOpCond ( + IN MMC_HOST_INSTANCE *MmcHostInstance + ) +{ + INT32 I; + EFI_STATUS Status; + UINT32 Response[4]; + + Status = MmcResetToIdle (MmcHostInstance); + if (EFI_ERROR (Status)) { + return Status; + } + + for (I = 0; I < SEND_OP_COND_MAX_RETRIES; I++) { + Status = MmcHostInstance->MmcHost->SendCommand (MmcHostInstance->MmcHost, MMC_CMD1, OCR_SECTOR_MODE | + OCR_VDD_MIN_2V7 | OCR_VDD_MIN_1V7, + MMC_RESPONSE_R3, Response); + if (EFI_ERROR (Status)) { + return Status; + } + + if ((Response[0] & MMC_OCR_POWERUP) != 0U) { + MmcOCR = Response[0]; + return EFI_SUCCESS; + } + + gBS->Stall (10000); + } + + DEBUG ((DEBUG_ERROR, "%a: CMD1 failed after %d retries\n", __func__, SEND_OP_COND_MAX_RETRIES)); + + return EFI_DEVICE_ERROR; +} + +/** + Enumerate and initialize the MMC/SD card. + + @param[in] MmcHostInstance Pointer to the MMC_HOST_INSTANCE structure. + @param[in] Clk Clock frequency for the MMC/SD card. + @param[in] BusWidth Bus width for the MMC/SD card. + + @retval EFI_SUCCESS The MMC/SD card was successfully enumerated and initialized. + @retval Other An error occurred while enumerating and initializing the MMC/SD card. + +**/ +STATIC +EFI_STATUS +MmcEnumerte ( + IN MMC_HOST_INSTANCE *MmcHostInstance, + IN UINT32 Clk, + IN UINT32 BusWidth + ) +{ + EFI_STATUS Status; + UINT32 State; + UINT32 Response[4]; + + Status = MmcResetToIdle (MmcHostInstance); + if (EFI_ERROR (Status)) { + return Status; + } + + if (MmcDevInfo.MmcDevType == MMC_IS_EMMC) { + Status = MmcSendOpCond (MmcHostInstance); + } else { + // CMD8: Send Interface Condition Command + Status = MmcHostInstance->MmcHost->SendCommand (MmcHostInstance->MmcHost, MMC_CMD8, VHS_2_7_3_6_V | CMD8_CHECK_PATTERN, + MMC_RESPONSE_R5, Response); + + if ((Status == EFI_SUCCESS) && ((Response[0] & 0xffU) == CMD8_CHECK_PATTERN)) { + Status = SdSendOpCond (MmcHostInstance); + } + } + if (EFI_ERROR (Status)) { + return Status; + } + + // CMD2: Card Identification + Status = MmcHostInstance->MmcHost->SendCommand (MmcHostInstance->MmcHost, MMC_CMD2, 0, MMC_RESPONSE_R2, NULL); + if (EFI_ERROR (Status)) { + return Status; + } + + // CMD3: Set Relative Address + if (MmcDevInfo.MmcDevType == MMC_IS_EMMC) { + MmcRCA = MMC_FIX_RCA; + Status = MmcHostInstance->MmcHost->SendCommand (MmcHostInstance->MmcHost, MMC_CMD3, MmcRCA << RCA_SHIFT_OFFSET, + MMC_RESPONSE_R1, NULL); + if (EFI_ERROR (Status)) { + return Status; + } + } else { + Status = MmcHostInstance->MmcHost->SendCommand (MmcHostInstance->MmcHost, MMC_CMD3, 0, + MMC_RESPONSE_R6, Response); + if (EFI_ERROR (Status)) { + return Status; + } + + MmcRCA = (Response[0] & 0xFFFF0000U) >> 16; + } + + // CMD9: CSD Register + Status = MmcHostInstance->MmcHost->SendCommand (MmcHostInstance->MmcHost, MMC_CMD9, MmcRCA << RCA_SHIFT_OFFSET, + MMC_RESPONSE_R2, Response); + if (EFI_ERROR (Status)) { + return Status; + } + + CopyMem(&MmcCsd, &Response, sizeof(Response)); + + // CMD7: Select Card + Status = MmcHostInstance->MmcHost->SendCommand (MmcHostInstance->MmcHost, MMC_CMD7, MmcRCA << RCA_SHIFT_OFFSET, + MMC_RESPONSE_R1, NULL); + if (EFI_ERROR (Status)) { + return Status; + } + + do { + Status = MmcDeviceState (MmcHostInstance, &State); + if (EFI_ERROR (Status)) { + return Status; + } + } while (State != MMC_R0_STATE_TRAN); + + Status = MmcSetIos (MmcHostInstance, Clk, BusWidth); + if (EFI_ERROR (Status)) { + return Status; + } + + return MmcFillDeviceInfo (MmcHostInstance); +} + +/** + Perform the MMC Identification Mode. + + @param[in] MmcHostInstance Pointer to the MMC_HOST_INSTANCE structure. + + @retval EFI_SUCCESS The MMC Identification Mode was performed successfully. + @retval EFI_INVALID_PARAMETER MmcHost is NULL. + @retval Other An error occurred while performing the MMC Identification Mode. + +**/ +STATIC +EFI_STATUS +EFIAPI +MmcIdentificationMode ( + IN MMC_HOST_INSTANCE *MmcHostInstance + ) +{ + EFI_STATUS Status; + UINTN CmdArg; + BOOLEAN IsHCS; + EFI_MMC_HOST_PROTOCOL *MmcHost; + + MmcHost = MmcHostInstance->MmcHost; + CmdArg = 0; + IsHCS = FALSE; + + if (MmcHost == NULL) { + return EFI_INVALID_PARAMETER; + } + + // We can get into this function if we restart the identification mode + if (MmcHostInstance->State == MmcHwInitializationState) { + // Initialize the MMC Host HW + Status = MmcNotifyState (MmcHostInstance, MmcHwInitializationState); + if (EFI_ERROR (Status)) { + DEBUG ((DEBUG_ERROR, "MmcIdentificationMode() : Error MmcHwInitializationState, Status=%r.\n", Status)); + return Status; + } + } + + Status = MmcEnumerte (MmcHostInstance, 50 * 1000 * 1000, MMC_BUS_WIDTH_4); + + if (EFI_ERROR (Status)) { + DEBUG ((DEBUG_ERROR, "MmcIdentificationMode() : Error MmcEnumerte, Status=%r.\n", Status)); + return Status; + } + + MmcHostInstance->CardInfo.RCA = MmcRCA; + MmcHostInstance->BlockIo.Media->LastBlock = ((MmcDevInfo.DeviceSize >> 9) - 1); + MmcHostInstance->BlockIo.Media->BlockSize = MmcDevInfo.BlockSize; + MmcHostInstance->BlockIo.Media->ReadOnly = MmcHost->IsReadOnly (MmcHost); + MmcHostInstance->BlockIo.Media->MediaPresent = TRUE; + MmcHostInstance->BlockIo.Media->MediaId++; + + return EFI_SUCCESS; +} + +/** + Initialize the MMC device. + + @param[in] MmcHostInstance MMC host instance + + @retval EFI_SUCCESS MMC device initialized successfully + @retval Other MMC device initialization failed + +**/ +EFI_STATUS +InitializeMmcDevice ( + IN MMC_HOST_INSTANCE *MmcHostInstance + ) +{ + EFI_STATUS Status; + EFI_MMC_HOST_PROTOCOL *MmcHost; + UINTN BlockCount; + + BlockCount = 1; + MmcHost = MmcHostInstance->MmcHost; + + Status = MmcIdentificationMode (MmcHostInstance); + if (EFI_ERROR (Status)) { + DEBUG ((DEBUG_ERROR, "InitializeMmcDevice(): Error in Identification Mode, Status=%r\n", Status)); + return Status; + } + + Status = MmcNotifyState (MmcHostInstance, MmcTransferState); + if (EFI_ERROR (Status)) { + DEBUG ((DEBUG_ERROR, "InitializeMmcDevice(): Error MmcTransferState, Status=%r\n", Status)); + return Status; + } + + return EFI_SUCCESS; +} -- 2.34.1 -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#108382): https://edk2.groups.io/g/devel/message/108382 Mute This Topic: https://groups.io/mt/101213495/1787277 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org] -=-=-=-=-=-=-=-=-=-=-=-
From: caiyuqing379 <202235273@mail.sdu.edu.cn> This module supports Sophgo SG2042 EVB platform. It uses the PEI less design. Add this module in SG2042Pkg leveraging the one from OvmfPkg/RiscVVirt. Signed-off-by: caiyuqing379 <202235273@mail.sdu.edu.cn> Co-authored-by: USER0FISH <libing1202@outlook.com> Cc: dahogn <dahogn@hotmail.com> Cc: meng-cz <mengcz1126@gmail.com> Cc: yli147 <yong.li@intel.com> Cc: ChaiEvan <evan.chai@intel.com> Cc: Sunil V L <sunilvl@ventanamicro.com> Cc: Leif Lindholm <quic_llindhol@quicinc.com> --- Silicon/Sophgo/SG2042Pkg/Sec/SecMain.inf | 68 +++++ Silicon/Sophgo/SG2042Pkg/Sec/SecMain.h | 104 +++++++ Silicon/Sophgo/SG2042Pkg/Sec/Cpu.c | 29 ++ Silicon/Sophgo/SG2042Pkg/Sec/Memory.c | 347 +++++++++++++++++++++++ Silicon/Sophgo/SG2042Pkg/Sec/Platform.c | 130 +++++++++ Silicon/Sophgo/SG2042Pkg/Sec/SecMain.c | 115 ++++++++ Silicon/Sophgo/SG2042Pkg/Sec/SecEntry.S | 18 ++ 7 files changed, 811 insertions(+) create mode 100644 Silicon/Sophgo/SG2042Pkg/Sec/SecMain.inf create mode 100644 Silicon/Sophgo/SG2042Pkg/Sec/SecMain.h create mode 100644 Silicon/Sophgo/SG2042Pkg/Sec/Cpu.c create mode 100644 Silicon/Sophgo/SG2042Pkg/Sec/Memory.c create mode 100644 Silicon/Sophgo/SG2042Pkg/Sec/Platform.c create mode 100644 Silicon/Sophgo/SG2042Pkg/Sec/SecMain.c create mode 100644 Silicon/Sophgo/SG2042Pkg/Sec/SecEntry.S diff --git a/Silicon/Sophgo/SG2042Pkg/Sec/SecMain.inf b/Silicon/Sophgo/SG2042Pkg/Sec/SecMain.inf new file mode 100644 index XXXXXXX..XXXXXXX --- /dev/null +++ b/Silicon/Sophgo/SG2042Pkg/Sec/SecMain.inf @@ -XXX,XX +XXX,XX @@ +## @file +# SEC Driver for RISC-V +# +# Copyright (c) 2022, Ventana Micro Systems Inc. All rights reserved.<BR> +# Copyright (c) 2023, Academy of Intelligent Innovation, Shandong Universiy, China.P.R. All rights reserved.<BR> +# +# SPDX-License-Identifier: BSD-2-Clause-Patent +# +## + +[Defines] + INF_VERSION = 0x0001001B + BASE_NAME = SecMainRiscV64 + FILE_GUID = 125E1236-9D4F-457B-BF7E-6311C88A1621 + MODULE_TYPE = SEC + VERSION_STRING = 1.0 + ENTRY_POINT = SecMain + +# +# The following information is for reference only and not required by the build tools. +# +# VALID_ARCHITECTURES = RISCV64 +# + +[Sources] + SecEntry.S + SecMain.c + SecMain.h + Cpu.c + Memory.c + Platform.c + +[Packages] + EmbeddedPkg/EmbeddedPkg.dec + MdeModulePkg/MdeModulePkg.dec + MdePkg/MdePkg.dec + UefiCpuPkg/UefiCpuPkg.dec + Silicon/Sophgo/SG2042Pkg/SG2042Pkg.dec + Platform/RISC-V/PlatformPkg/RiscVPlatformPkg.dec + +[LibraryClasses] + BaseLib + DebugLib + PcdLib + IoLib + PeCoffLib + LzmaDecompressLib + RiscVSbiLib + PrePiLib + FdtLib + MemoryAllocationLib + HobLib + SerialPortLib + +[FixedPcd] + gUefiRiscVPlatformPkgTokenSpaceGuid.PcdRiscVDxeFvBase ## CONSUMES + gUefiRiscVPlatformPkgTokenSpaceGuid.PcdRiscVDxeFvSize ## CONSUMES + gUefiRiscVPlatformPkgTokenSpaceGuid.PcdVariableFirmwareRegionBaseAddress ## CONSUMES + gUefiRiscVPlatformPkgTokenSpaceGuid.PcdVariableFirmwareRegionSize ## CONSUMES + gUefiRiscVPlatformPkgTokenSpaceGuid.PcdTemporaryRamBase ## CONSUMES + gUefiRiscVPlatformPkgTokenSpaceGuid.PcdTemporaryRamSize ## CONSUMES + +[Guids] + gFdtHobGuid ## PRODUCES + +[BuildOptions] + GCC:*_*_*_PP_FLAGS = -D__ASSEMBLY__ + diff --git a/Silicon/Sophgo/SG2042Pkg/Sec/SecMain.h b/Silicon/Sophgo/SG2042Pkg/Sec/SecMain.h new file mode 100644 index XXXXXXX..XXXXXXX --- /dev/null +++ b/Silicon/Sophgo/SG2042Pkg/Sec/SecMain.h @@ -XXX,XX +XXX,XX @@ +/** @file + Master header file for SecCore. + + Copyright (c) 2022, Ventana Micro Systems Inc. All rights reserved.<BR> + Copyright (c) 2023, Academy of Intelligent Innovation, Shandong Universiy, China.P.R. All rights reserved.<BR> + SPDX-License-Identifier: BSD-2-Clause-Patent + +**/ + +#ifndef SEC_MAIN_H_ +#define SEC_MAIN_H_ + +#include <PiPei.h> +#include <Library/BaseLib.h> +#include <Library/BaseMemoryLib.h> +#include <Library/DebugAgentLib.h> +#include <Library/DebugLib.h> +#include <Library/ExtractGuidedSectionLib.h> +#include <Library/IoLib.h> +#include <Library/HobLib.h> +#include <Library/PcdLib.h> +#include <Library/PeCoffExtraActionLib.h> +#include <Library/PeCoffGetEntryPointLib.h> +#include <Library/PeCoffLib.h> +#include <Library/PeiServicesLib.h> +#include <Library/PeiServicesTablePointerLib.h> +#include <Library/DebugPrintErrorLevelLib.h> +#include <Library/PrintLib.h> +#include <Library/BaseRiscVSbiLib.h> +#include <Library/PrePiLib.h> +#include <Library/PrePiHobListPointerLib.h> +#include <Library/SerialPortLib.h> +#include <Register/RiscV64/RiscVImpl.h> + +/** + Entry point to the C language phase of SEC. After the SEC assembly + code has initialized some temporary memory and set up the stack, + the control is transferred to this function. + + @param SizeOfRam Size of the temporary memory available for use. + @param TempRamBase Base address of temporary ram + @param BootFirmwareVolume Base address of the Boot Firmware Volume. +**/ +VOID +NORETURN +EFIAPI +SecStartup ( + IN UINTN BootHartId, + IN VOID *DeviceTreeAddress + ); + +/** + Auto-generated function that calls the library constructors for all of the module's + dependent libraries. This function must be called by the SEC Core once a stack has + been established. + +**/ +VOID +EFIAPI +ProcessLibraryConstructorList ( + VOID + ); + +/** + Perform Platform PEIM initialization. + + @return EFI_SUCCESS The platform initialized successfully. + @retval Others - As the error code indicates + +**/ +EFI_STATUS +EFIAPI +PlatformPeimInitialization ( + IN VOID *DeviceTreeAddress + ); + +/** + Perform Memory PEIM initialization. + + @param DeviceTreeAddress Pointer to FDT. + @return EFI_SUCCESS The platform initialized successfully. + @retval Others - As the error code indicates + +**/ +EFI_STATUS +EFIAPI +MemoryPeimInitialization ( + IN VOID *DeviceTreeAddress + ); + +/** + Perform CPU PEIM initialization. + + @return EFI_SUCCESS The platform initialized successfully. + @retval Others - As the error code indicates + +**/ +EFI_STATUS +EFIAPI +CpuPeimInitialization ( + VOID + ); + +#endif diff --git a/Silicon/Sophgo/SG2042Pkg/Sec/Cpu.c b/Silicon/Sophgo/SG2042Pkg/Sec/Cpu.c new file mode 100644 index XXXXXXX..XXXXXXX --- /dev/null +++ b/Silicon/Sophgo/SG2042Pkg/Sec/Cpu.c @@ -XXX,XX +XXX,XX @@ +/** @file +The library call to pass the device tree to DXE via HOB. + +Copyright (c) 2021, Hewlett Packard Enterprise Development LP. All rights reserved.<BR> + +SPDX-License-Identifier: BSD-2-Clause-Patent + +**/ + +#include <PiPei.h> +#include <Library/DebugLib.h> +#include <Library/HobLib.h> + +/** + Cpu Peim initialization. + +**/ +EFI_STATUS +CpuPeimInitialization ( + VOID + ) +{ + // + // for MMU type >= sv39 + // + BuildCpuHob (40, 39); + + return EFI_SUCCESS; +} diff --git a/Silicon/Sophgo/SG2042Pkg/Sec/Memory.c b/Silicon/Sophgo/SG2042Pkg/Sec/Memory.c new file mode 100644 index XXXXXXX..XXXXXXX --- /dev/null +++ b/Silicon/Sophgo/SG2042Pkg/Sec/Memory.c @@ -XXX,XX +XXX,XX @@ +/** @file + Memory Detection for SG2042 EVB. + + Copyright (c) 2021, Hewlett Packard Enterprise Development LP. All rights reserved.<BR> + Copyright (c) 2006 - 2014, Intel Corporation. All rights reserved.<BR> + Copyright (c) 2023, Academy of Intelligent Innovation, Shandong Universiy, China.P.R. All rights reserved.<BR> + + SPDX-License-Identifier: BSD-2-Clause-Patent + +Module Name: + + MemDetect.c + +**/ + +#include <PiPei.h> +#include <Library/BaseMemoryLib.h> +#include <Library/DebugLib.h> +#include <Library/HobLib.h> +#include <Library/IoLib.h> +#include <Library/PcdLib.h> +#include <Library/PeimEntryPoint.h> +#include <Library/ResourcePublicationLib.h> +#include <Register/RiscV64/RiscVEncoding.h> +#include <Library/PrePiLib.h> +#include <libfdt.h> +#include <Guid/FdtHob.h> + +VOID +BuildMemoryTypeInformationHob ( + VOID + ); + +/** + Create memory range resource HOB using the memory base + address and size. + + @param MemoryBase Memory range base address. + @param MemorySize Memory range size. + +**/ +STATIC +VOID +AddMemoryBaseSizeHob ( + IN EFI_PHYSICAL_ADDRESS MemoryBase, + IN UINT64 MemorySize + ) +{ + BuildResourceDescriptorHob ( + EFI_RESOURCE_SYSTEM_MEMORY, + EFI_RESOURCE_ATTRIBUTE_PRESENT | + EFI_RESOURCE_ATTRIBUTE_INITIALIZED | + EFI_RESOURCE_ATTRIBUTE_UNCACHEABLE | + EFI_RESOURCE_ATTRIBUTE_WRITE_COMBINEABLE | + EFI_RESOURCE_ATTRIBUTE_WRITE_THROUGH_CACHEABLE | + EFI_RESOURCE_ATTRIBUTE_WRITE_BACK_CACHEABLE | + EFI_RESOURCE_ATTRIBUTE_TESTED, + MemoryBase, + MemorySize + ); +} + +/** + Create memory range resource HOB using memory base + address and top address of the memory range. + + @param MemoryBase Memory range base address. + @param MemoryLimit Memory range size. + +**/ +STATIC +VOID +AddMemoryRangeHob ( + IN EFI_PHYSICAL_ADDRESS MemoryBase, + IN EFI_PHYSICAL_ADDRESS MemoryLimit + ) +{ + AddMemoryBaseSizeHob (MemoryBase, (UINT64)(MemoryLimit - MemoryBase)); +} + +/** + Publish system RAM and reserve memory regions. + +**/ +STATIC +VOID +InitializeRamRegions ( + IN EFI_PHYSICAL_ADDRESS SystemMemoryBase, + IN UINT64 SystemMemorySize + ) +{ + AddMemoryRangeHob ( + SystemMemoryBase, + SystemMemoryBase + SystemMemorySize + ); +} + +/** Get the number of cells for a given property + + @param[in] Fdt Pointer to Device Tree (DTB) + @param[in] Node Node + @param[in] Name Name of the property + + @return Number of cells. +**/ +STATIC +INT32 +GetNumCells ( + IN VOID *Fdt, + IN INT32 Node, + IN CONST CHAR8 *Name + ) +{ + CONST INT32 *Prop; + INT32 Len; + UINT32 Val; + + Prop = fdt_getprop (Fdt, Node, Name, &Len); + if (Prop == NULL) { + return Len; + } + + if (Len != sizeof (*Prop)) { + return -FDT_ERR_BADNCELLS; + } + + Val = fdt32_to_cpu (*Prop); + if (Val > FDT_MAX_NCELLS) { + return -FDT_ERR_BADNCELLS; + } + + return (INT32)Val; +} + +/** Mark reserved memory ranges in the EFI memory map + + * As per DT spec v0.4 Section 3.5.4, + * "Reserved regions with the no-map property must be listed in the + * memory map with type EfiReservedMemoryType. All other reserved + * regions must be listed with type EfiBootServicesData." + + @param FdtPointer Pointer to FDT + +**/ +STATIC +VOID +AddReservedMemoryMap ( + IN VOID *FdtPointer + ) +{ + CONST INT32 *RegProp; + INT32 Node; + INT32 SubNode; + INT32 Len; + EFI_PHYSICAL_ADDRESS Addr; + UINT64 Size; + INTN NumRsv, i; + INT32 NumAddrCells, NumSizeCells; + + NumRsv = fdt_num_mem_rsv (FdtPointer); + + /* Look for an existing entry and add it to the efi mem map. */ + for (i = 0; i < NumRsv; i++) { + if (fdt_get_mem_rsv (FdtPointer, i, &Addr, &Size) != 0) { + continue; + } + + BuildMemoryAllocationHob ( + Addr, + Size, + EfiReservedMemoryType + ); + } + + /* process reserved-memory */ + Node = fdt_subnode_offset (FdtPointer, 0, "reserved-memory"); + if (Node >= 0) { + NumAddrCells = GetNumCells (FdtPointer, Node, "#address-cells"); + if (NumAddrCells <= 0) { + return; + } + + NumSizeCells = GetNumCells (FdtPointer, Node, "#size-cells"); + if (NumSizeCells <= 0) { + return; + } + + fdt_for_each_subnode (SubNode, FdtPointer, Node) { + RegProp = fdt_getprop (FdtPointer, SubNode, "reg", &Len); + + if ((RegProp != 0) && (Len == ((NumAddrCells + NumSizeCells) * sizeof (INT32)))) { + Addr = fdt32_to_cpu (RegProp[0]); + + if (NumAddrCells > 1) { + Addr = (Addr << 32) | fdt32_to_cpu (RegProp[1]); + } + + RegProp += NumAddrCells; + Size = fdt32_to_cpu (RegProp[0]); + + if (NumSizeCells > 1) { + Size = (Size << 32) | fdt32_to_cpu (RegProp[1]); + } + + DEBUG (( + DEBUG_INFO, + "%a: Adding Reserved Memory Addr = 0x%llx, Size = 0x%llx\n", + __func__, + Addr, + Size + )); + + if (fdt_getprop (FdtPointer, SubNode, "no-map", &Len)) { + BuildMemoryAllocationHob ( + Addr, + Size, + EfiReservedMemoryType + ); + } else { + BuildMemoryAllocationHob ( + Addr, + Size, + EfiBootServicesData + ); + } + } + } + } +} + +/** + Initialize memory hob based on the DTB information. + + NOTE: The memory space size of SG2042 EVB is determined by the number + and size of DDRs inserted on the board. There is an error with initializing + the system ram space of each memory node separately using InitializeRamRegions, + so InitializeRamRegions is only called once for total system ram initialization. + + @param DeviceTreeAddress Pointer to FDT. + @return EFI_SUCCESS The memory hob added successfully. + +**/ +EFI_STATUS +MemoryPeimInitialization ( + IN VOID *DeviceTreeAddress + ) +{ + CONST UINT64 *RegProp; + CONST CHAR8 *Type; + UINT64 UefiMemoryBase; + UINT64 CurBase; + UINT64 CurSize; + UINT64 LongestStart; + UINT64 LongestLength; + UINT64 PrevEnd; + UINT64 CurStart; + UINT64 CurLength; + UINT64 MaxLength; + INT32 Node; + INT32 Prev; + INT32 Len; + + UefiMemoryBase = (UINT64)FixedPcdGet32 (PcdTemporaryRamBase) + FixedPcdGet32 (PcdTemporaryRamSize) - SIZE_32MB; + LongestStart = 0; + LongestLength = 0; + PrevEnd = 0; + CurStart = 0; + CurLength = 0; + MaxLength = 0; + + // Look for the lowest memory node + for (Prev = 0; ; Prev = Node) { + Node = fdt_next_node (DeviceTreeAddress, Prev, NULL); + if (Node < 0) { + break; + } + + // Check for memory node + Type = fdt_getprop (DeviceTreeAddress, Node, "device_type", &Len); + if (Type && (AsciiStrnCmp (Type, "memory", Len) == 0)) { + // Get the 'reg' property of this node. For now, we will assume + // two 8 byte quantities for base and size, respectively. + RegProp = fdt_getprop (DeviceTreeAddress, Node, "reg", &Len); + if ((RegProp != 0) && (Len == (2 * sizeof (UINT64)))) { + CurBase = fdt64_to_cpu (ReadUnaligned64 (RegProp)); + CurSize = fdt64_to_cpu (ReadUnaligned64 (RegProp + 1)); + + DEBUG (( + DEBUG_INFO, + "%a: System RAM @ 0x%lx - 0x%lx\n", + __func__, + CurBase, + CurBase + CurSize - 1 + )); + + if (PrevEnd == 0 || CurBase == PrevEnd) { + if (CurLength == 0) { + CurStart = CurBase; + } + CurLength += CurSize; + + if (CurLength > MaxLength) { + MaxLength = CurLength; + LongestStart = CurStart; + LongestLength = MaxLength; + } + } else { + CurStart = CurBase; + CurLength = CurSize; + } + + PrevEnd = CurBase + CurSize; + + } else { + DEBUG (( + DEBUG_ERROR, + "%a: Failed to parse FDT memory node\n", + __func__ + )); + } + } + } + + if (UefiMemoryBase > LongestStart) { + LongestStart = UefiMemoryBase; + LongestLength -= UefiMemoryBase; + } + + DEBUG (( + DEBUG_INFO, + "%a: Total System RAM @ 0x%lx - 0x%lx\n", + __func__, + LongestStart, + LongestStart + LongestLength - 1 + )); + + InitializeRamRegions (LongestStart, LongestLength); + + AddReservedMemoryMap (DeviceTreeAddress); + + /* Make sure SEC is booting with bare mode */ + ASSERT ((RiscVGetSupervisorAddressTranslationRegister () & SATP64_MODE) == (SATP_MODE_OFF << SATP64_MODE_SHIFT)); + + BuildMemoryTypeInformationHob (); + + return EFI_SUCCESS; +} diff --git a/Silicon/Sophgo/SG2042Pkg/Sec/Platform.c b/Silicon/Sophgo/SG2042Pkg/Sec/Platform.c new file mode 100644 index XXXXXXX..XXXXXXX --- /dev/null +++ b/Silicon/Sophgo/SG2042Pkg/Sec/Platform.c @@ -XXX,XX +XXX,XX @@ +/** @file +The library call to pass the device tree to DXE via HOB. + +Copyright (c) 2021, Hewlett Packard Enterprise Development LP. All rights reserved.<BR> + +SPDX-License-Identifier: BSD-2-Clause-Patent + +**/ + +#include <PiPei.h> +#include <Library/DebugLib.h> +#include <Library/HobLib.h> +#include <Library/MemoryAllocationLib.h> +#include <Library/PcdLib.h> +#include <Include/Library/PrePiLib.h> +#include <libfdt.h> +#include <Guid/FdtHob.h> + +/** + Build memory map I/O range resource HOB using the + base address and size. + + @param MemoryBase Memory map I/O base. + @param MemorySize Memory map I/O size. + +**/ +STATIC +VOID +AddIoMemoryBaseSizeHob ( + EFI_PHYSICAL_ADDRESS MemoryBase, + UINT64 MemorySize + ) +{ + /* Align to EFI_PAGE_SIZE */ + MemorySize = ALIGN_VALUE (MemorySize, EFI_PAGE_SIZE); + BuildResourceDescriptorHob ( + EFI_RESOURCE_MEMORY_MAPPED_IO, + EFI_RESOURCE_ATTRIBUTE_PRESENT | + EFI_RESOURCE_ATTRIBUTE_INITIALIZED | + EFI_RESOURCE_ATTRIBUTE_UNCACHEABLE | + EFI_RESOURCE_ATTRIBUTE_TESTED, + MemoryBase, + MemorySize + ); +} + +/** + Populate IO resources from FDT that not added to GCD by its + driver in the DXE phase. + + @param FdtBase Fdt base address + @param Compatible Compatible string + +**/ +STATIC +VOID +PopulateIoResources ( + VOID *FdtBase, + CONST CHAR8 *Compatible + ) +{ + UINT64 *Reg; + INT32 Node, LenP; + + Node = fdt_node_offset_by_compatible (FdtBase, -1, Compatible); + while (Node != -FDT_ERR_NOTFOUND) { + Reg = (UINT64 *)fdt_getprop (FdtBase, Node, "reg", &LenP); + if (Reg) { + ASSERT (LenP == (2 * sizeof (UINT64))); + AddIoMemoryBaseSizeHob (SwapBytes64 (Reg[0]), SwapBytes64 (Reg[1])); + } + + Node = fdt_node_offset_by_compatible (FdtBase, Node, Compatible); + } +} + +/** + @param DeviceTreeAddress Pointer to FDT. + @retval EFI_SUCCESS The address of FDT is passed in HOB. + EFI_UNSUPPORTED Can't locate FDT. +**/ +EFI_STATUS +EFIAPI +PlatformPeimInitialization ( + IN VOID *DeviceTreeAddress + ) +{ + VOID *Base; + VOID *NewBase; + UINTN FdtSize; + UINTN FdtPages; + UINT64 *FdtHobData; + + if (DeviceTreeAddress == NULL) { + DEBUG ((DEBUG_ERROR, "%a: Invalid FDT pointer\n", __func__)); + return EFI_UNSUPPORTED; + } + + DEBUG ((DEBUG_INFO, "%a: Build FDT HOB - FDT at address: 0x%x \n", __func__, DeviceTreeAddress)); + Base = DeviceTreeAddress; + if (fdt_check_header (Base) != 0) { + DEBUG ((DEBUG_ERROR, "%a: Corrupted DTB\n", __func__)); + return EFI_UNSUPPORTED; + } + + FdtSize = fdt_totalsize (Base); + FdtPages = EFI_SIZE_TO_PAGES (FdtSize); + NewBase = AllocatePages (FdtPages); + if (NewBase == NULL) { + DEBUG ((DEBUG_ERROR, "%a: Could not allocate memory for DTB\n", __func__)); + return EFI_UNSUPPORTED; + } + + fdt_open_into (Base, NewBase, EFI_PAGES_TO_SIZE (FdtPages)); + + FdtHobData = BuildGuidHob (&gFdtHobGuid, sizeof *FdtHobData); + if (FdtHobData == NULL) { + DEBUG ((DEBUG_ERROR, "%a: Could not build FDT Hob\n", __func__)); + return EFI_UNSUPPORTED; + } + + *FdtHobData = (UINTN)NewBase; + + BuildFvHob (PcdGet32 (PcdRiscVDxeFvBase), PcdGet32 (PcdRiscVDxeFvSize)); + + PopulateIoResources (Base, "bitmain,bm-sd"); + PopulateIoResources (Base, "snps,dw-apb-uart"); + + return EFI_SUCCESS; +} diff --git a/Silicon/Sophgo/SG2042Pkg/Sec/SecMain.c b/Silicon/Sophgo/SG2042Pkg/Sec/SecMain.c new file mode 100644 index XXXXXXX..XXXXXXX --- /dev/null +++ b/Silicon/Sophgo/SG2042Pkg/Sec/SecMain.c @@ -XXX,XX +XXX,XX @@ +/** @file + RISC-V SEC phase module for SG2042 EVB. + + Copyright (c) 2008 - 2023, Intel Corporation. All rights reserved.<BR> + Copyright (c) 2022, Ventana Micro Systems Inc. All rights reserved.<BR> + Copyright (c) 2023, Academy of Intelligent Innovation, Shandong Universiy, China.P.R. All rights reserved.<BR> + SPDX-License-Identifier: BSD-2-Clause-Patent + +**/ + +#include "SecMain.h" + +/** + Initialize the memory and CPU, setting the boot mode, and platform + initialization. It also builds the core information HOB. + + @return EFI_SUCCESS Status. +**/ +STATIC +EFI_STATUS +EFIAPI +SecInitializePlatform ( + IN VOID *DeviceTreeAddress + ) +{ + EFI_STATUS Status; + + MemoryPeimInitialization (DeviceTreeAddress); + + CpuPeimInitialization (); + + // Set the Boot Mode + SetBootMode (BOOT_WITH_FULL_CONFIGURATION); + + Status = PlatformPeimInitialization (DeviceTreeAddress); + ASSERT_EFI_ERROR (Status); + + return EFI_SUCCESS; +} + +/** + + Entry point to the C language phase of SEC. After the SEC assembly + code has initialized some temporary memory and set up the stack, + the control is transferred to this function. + + + @param[in] BootHartId Hardware thread ID of boot hart. + @param[in] DeviceTreeAddress Pointer to Device Tree (DTB) +**/ +VOID +NORETURN +EFIAPI +SecStartup ( + IN UINTN BootHartId, + IN VOID *DeviceTreeAddress + ) +{ + EFI_HOB_HANDOFF_INFO_TABLE *HobList; + EFI_RISCV_FIRMWARE_CONTEXT FirmwareContext; + EFI_STATUS Status; + UINT64 UefiMemoryBase; + UINT64 StackBase; + UINT32 StackSize; + + SerialPortInitialize (); + + // + // Report Status Code to indicate entering SEC core + // + DEBUG (( + DEBUG_INFO, + "%a() BootHartId: 0x%x, DeviceTreeAddress=0x%x\n", + __func__, + BootHartId, + DeviceTreeAddress + )); + + FirmwareContext.BootHartId = BootHartId; + SetFirmwareContextPointer (&FirmwareContext); + + StackBase = (UINT64)FixedPcdGet32 (PcdTemporaryRamBase); + StackSize = FixedPcdGet32 (PcdTemporaryRamSize); + UefiMemoryBase = StackBase + StackSize - SIZE_32MB; + + // Declare the PI/UEFI memory region + HobList = HobConstructor ( + (VOID *)UefiMemoryBase, + SIZE_32MB, + (VOID *)UefiMemoryBase, + (VOID *)StackBase // The top of the UEFI Memory is reserved for the stacks + ); + PrePeiSetHobList (HobList); + + SecInitializePlatform (DeviceTreeAddress); + + BuildStackHob (StackBase, StackSize); + + // + // Process all libraries constructor function linked to SecMain. + // + ProcessLibraryConstructorList (); + + // Assume the FV that contains the SEC (our code) also contains a compressed FV. + Status = DecompressFirstFv (); + ASSERT_EFI_ERROR (Status); + + // Load the DXE Core and transfer control to it + Status = LoadDxeCoreFromFv (NULL, 0); + ASSERT_EFI_ERROR (Status); + // + // Should not come here. + // + UNREACHABLE (); +} diff --git a/Silicon/Sophgo/SG2042Pkg/Sec/SecEntry.S b/Silicon/Sophgo/SG2042Pkg/Sec/SecEntry.S new file mode 100644 index XXXXXXX..XXXXXXX --- /dev/null +++ b/Silicon/Sophgo/SG2042Pkg/Sec/SecEntry.S @@ -XXX,XX +XXX,XX @@ +/* + Copyright (c) 2022 Ventana Micro Systems Inc. + + SPDX-License-Identifier: BSD-2-Clause-Patent + + */ + +#include "SecMain.h" + +ASM_FUNC (_ModuleEntryPoint) + /* Use Temp memory as the stack for calling to C code */ + li a4, FixedPcdGet32 (PcdTemporaryRamBase) + li a5, FixedPcdGet32 (PcdTemporaryRamSize) + + /* Use Temp memory as the stack for calling to C code */ + add sp, a4, a5 + + call SecStartup -- 2.34.1 -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#108381): https://edk2.groups.io/g/devel/message/108381 Mute This Topic: https://groups.io/mt/101213494/1787277 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org] -=-=-=-=-=-=-=-=-=-=-=-
From: caiyuqing379 <202235273@mail.sdu.edu.cn> Add infrastructure files to build edk2-platforms for Sophgo SG2042 platform. It follows PEI less design. Signed-off-by: caiyuqing379 <202235273@mail.sdu.edu.cn> Co-authored-by: USER0FISH <libing1202@outlook.com> Cc: dahogn <dahogn@hotmail.com> Cc: meng-cz <mengcz1126@gmail.com> Cc: yli147 <yong.li@intel.com> Cc: ChaiEvan <evan.chai@intel.com> Cc: Sunil V L <sunilvl@ventanamicro.com> Cc: Leif Lindholm <quic_llindhol@quicinc.com> --- Platform/Sophgo/SG2042_EVB_Board/SG2042.dec | 19 + Platform/Sophgo/SG2042_EVB_Board/SG2042.dsc | 548 ++++++++++++++++++ Platform/Sophgo/SG2042_EVB_Board/SG2042.fdf | 248 ++++++++ .../Sophgo/SG2042_EVB_Board/SG2042.fdf.inc | 62 ++ .../Sophgo/SG2042_EVB_Board/VarStore.fdf.inc | 77 +++ 5 files changed, 954 insertions(+) create mode 100644 Platform/Sophgo/SG2042_EVB_Board/SG2042.dec create mode 100644 Platform/Sophgo/SG2042_EVB_Board/SG2042.dsc create mode 100644 Platform/Sophgo/SG2042_EVB_Board/SG2042.fdf create mode 100644 Platform/Sophgo/SG2042_EVB_Board/SG2042.fdf.inc create mode 100644 Platform/Sophgo/SG2042_EVB_Board/VarStore.fdf.inc diff --git a/Platform/Sophgo/SG2042_EVB_Board/SG2042.dec b/Platform/Sophgo/SG2042_EVB_Board/SG2042.dec new file mode 100644 index XXXXXXX..XXXXXXX --- /dev/null +++ b/Platform/Sophgo/SG2042_EVB_Board/SG2042.dec @@ -XXX,XX +XXX,XX @@ +## @file SG2042.dec +# This Package provides Sophgo SG2042 modules and libraries. +# +# Copyright (c) 2023, Academy of Intelligent Innovation, Shandong Universiy, China.P.R. All rights reserved.<BR> +# +# SPDX-License-Identifier: BSD-2-Clause-Patent +# +## + +[Defines] + DEC_SPECIFICATION = 0x0001001b + PACKAGE_NAME = SG2042 + PACKAGE_GUID = BBF86176-C58B-4EC5-8D76-B8D458A2548E + PACKAGE_VERSION = 1.0 + +[LibraryClasses] + +[Guids] + gUefiRiscVPlatformSG2042PkgTokenSpaceGuid = {0xD0D80952, 0x8371, 0x4D8D, { 0x8E, 0x65, 0x27, 0x52, 0x63, 0xF3, 0xD9, 0x27 }} diff --git a/Platform/Sophgo/SG2042_EVB_Board/SG2042.dsc b/Platform/Sophgo/SG2042_EVB_Board/SG2042.dsc new file mode 100644 index XXXXXXX..XXXXXXX --- /dev/null +++ b/Platform/Sophgo/SG2042_EVB_Board/SG2042.dsc @@ -XXX,XX +XXX,XX @@ +## @file +# RISC-V EFI on Sophgo SG2042 EVB RISC-V platform +# +# Copyright (c) 2023, Academy of Intelligent Innovation, Shandong Universiy, China.P.R. All rights reserved.<BR> +# +# SPDX-License-Identifier: BSD-2-Clause-Patent +# +## + +################################################################################ +# +# Defines Section - statements that will be processed to create a Makefile. +# +################################################################################ +[Defines] + PLATFORM_NAME = SG2042_EVB + PLATFORM_GUID = 8014637B-6999-4110-9762-464BE11E935F + PLATFORM_VERSION = 0.1 + DSC_SPECIFICATION = 0x0001001c + OUTPUT_DIRECTORY = Build/$(PLATFORM_NAME) + SUPPORTED_ARCHITECTURES = RISCV64 + BUILD_TARGETS = DEBUG|RELEASE|NOOPT + SKUID_IDENTIFIER = DEFAULT + FLASH_DEFINITION = Platform/Sophgo/SG2042_EVB_Board/SG2042.fdf + + # + # Enable below options may cause build error or may not work on + # the initial version of RISC-V package + # Defines for default states. These can be changed on the command line. + # -D FLAG=VALUE + # + DEFINE SECURE_BOOT_ENABLE = FALSE + DEFINE DEBUG_ON_SERIAL_PORT = TRUE + + # + # Network definition + # + DEFINE NETWORK_SNP_ENABLE = FALSE + DEFINE NETWORK_IP6_ENABLE = FALSE + DEFINE NETWORK_TLS_ENABLE = FALSE + DEFINE NETWORK_HTTP_BOOT_ENABLE = FALSE + DEFINE NETWORK_ISCSI_ENABLE = FALSE + +[BuildOptions] + GCC:RELEASE_*_*_CC_FLAGS = -DMDEPKG_NDEBUG +!ifdef $(SOURCE_DEBUG_ENABLE) + GCC:*_*_RISCV64_GENFW_FLAGS = --keepexceptiontable +!endif + +################################################################################ +# +# SKU Identification section - list of all SKU IDs supported by this Platform. +# +################################################################################ +[SkuIds] + 0|DEFAULT + +################################################################################ +# +# Library Class section - list of all Library Classes needed by this Platform. +# +################################################################################ + +!include MdePkg/MdeLibs.dsc.inc + +[LibraryClasses] + PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf + PrintLib|MdePkg/Library/BasePrintLib/BasePrintLib.inf + BaseMemoryLib|MdePkg/Library/BaseMemoryLib/BaseMemoryLib.inf + BaseLib|MdePkg/Library/BaseLib/BaseLib.inf + SafeIntLib|MdePkg/Library/BaseSafeIntLib/BaseSafeIntLib.inf + SynchronizationLib|MdePkg/Library/BaseSynchronizationLib/BaseSynchronizationLib.inf + CpuLib|MdePkg/Library/BaseCpuLib/BaseCpuLib.inf + PerformanceLib|MdePkg/Library/BasePerformanceLibNull/BasePerformanceLibNull.inf + PeCoffLib|MdePkg/Library/BasePeCoffLib/BasePeCoffLib.inf + CacheMaintenanceLib|MdePkg/Library/BaseCacheMaintenanceLib/BaseCacheMaintenanceLib.inf + UefiDecompressLib|MdePkg/Library/BaseUefiDecompressLib/BaseUefiDecompressLib.inf + UefiHiiServicesLib|MdeModulePkg/Library/UefiHiiServicesLib/UefiHiiServicesLib.inf + HiiLib|MdeModulePkg/Library/UefiHiiLib/UefiHiiLib.inf + CapsuleLib|MdeModulePkg/Library/DxeCapsuleLibNull/DxeCapsuleLibNull.inf + DxeServicesLib|MdePkg/Library/DxeServicesLib/DxeServicesLib.inf + DxeServicesTableLib|MdePkg/Library/DxeServicesTableLib/DxeServicesTableLib.inf + PeCoffGetEntryPointLib|MdePkg/Library/BasePeCoffGetEntryPointLib/BasePeCoffGetEntryPointLib.inf + PciCf8Lib|MdePkg/Library/BasePciCf8Lib/BasePciCf8Lib.inf + PciLib|MdePkg/Library/BasePciLibCf8/BasePciLibCf8.inf + IoLib|MdePkg/Library/BaseIoLibIntrinsic/BaseIoLibIntrinsic.inf + OemHookStatusCodeLib|MdeModulePkg/Library/OemHookStatusCodeLibNull/OemHookStatusCodeLibNull.inf + SerialPortLib|MdePkg/Library/BaseSerialPortLibRiscVSbiLib/BaseSerialPortLibRiscVSbiLibRam.inf + UefiLib|MdePkg/Library/UefiLib/UefiLib.inf + UefiBootServicesTableLib|MdePkg/Library/UefiBootServicesTableLib/UefiBootServicesTableLib.inf + UefiRuntimeServicesTableLib|MdePkg/Library/UefiRuntimeServicesTableLib/UefiRuntimeServicesTableLib.inf + UefiDriverEntryPoint|MdePkg/Library/UefiDriverEntryPoint/UefiDriverEntryPoint.inf + UefiApplicationEntryPoint|MdePkg/Library/UefiApplicationEntryPoint/UefiApplicationEntryPoint.inf + DevicePathLib|MdePkg/Library/UefiDevicePathLibDevicePathProtocol/UefiDevicePathLibDevicePathProtocol.inf + FileHandleLib|MdePkg/Library/UefiFileHandleLib/UefiFileHandleLib.inf + SecurityManagementLib|MdeModulePkg/Library/DxeSecurityManagementLib/DxeSecurityManagementLib.inf + UefiUsbLib|MdePkg/Library/UefiUsbLib/UefiUsbLib.inf + CustomizedDisplayLib|MdeModulePkg/Library/CustomizedDisplayLib/CustomizedDisplayLib.inf + SortLib|MdeModulePkg/Library/BaseSortLib/BaseSortLib.inf + ShellLib|ShellPkg/Library/UefiShellLib/UefiShellLib.inf + UefiBootManagerLib|MdeModulePkg/Library/UefiBootManagerLib/UefiBootManagerLib.inf + FdtLib|EmbeddedPkg/Library/FdtLib/FdtLib.inf + VariableFlashInfoLib|MdeModulePkg/Library/BaseVariableFlashInfoLib/BaseVariableFlashInfoLib.inf + VariablePolicyHelperLib|MdeModulePkg/Library/VariablePolicyHelperLib/VariablePolicyHelperLib.inf + +!ifdef $(SOURCE_DEBUG_ENABLE) + PeCoffExtraActionLib|SourceLevelDebugPkg/Library/PeCoffExtraActionLibDebug/PeCoffExtraActionLibDebug.inf + DebugCommunicationLib|SourceLevelDebugPkg/Library/DebugCommunicationLibSerialPort/DebugCommunicationLibSerialPort.inf +!else + PeCoffExtraActionLib|MdePkg/Library/BasePeCoffExtraActionLibNull/BasePeCoffExtraActionLibNull.inf + DebugAgentLib|MdeModulePkg/Library/DebugAgentLibNull/DebugAgentLibNull.inf +!endif + + DebugPrintErrorLevelLib|MdePkg/Library/BaseDebugPrintErrorLevelLib/BaseDebugPrintErrorLevelLib.inf + +!if $(SECURE_BOOT_ENABLE) == TRUE + IntrinsicLib|CryptoPkg/Library/IntrinsicLib/IntrinsicLib.inf + OpensslLib|CryptoPkg/Library/OpensslLib/OpensslLib.inf + TpmMeasurementLib|SecurityPkg/Library/DxeTpmMeasurementLib/DxeTpmMeasurementLib.inf + AuthVariableLib|SecurityPkg/Library/AuthVariableLib/AuthVariableLib.inf + SecureBootVariableLib|SecurityPkg/Library/SecureBootVariableLib/SecureBootVariableLib.inf + SecureBootVariableProvisionLib|SecurityPkg/Library/SecureBootVariableProvisionLib/SecureBootVariableProvisionLib.inf + PlatformPKProtectionLib|SecurityPkg/Library/PlatformPKProtectionLibVarPolicy/PlatformPKProtectionLibVarPolicy.inf +!else + TpmMeasurementLib|MdeModulePkg/Library/TpmMeasurementLibNull/TpmMeasurementLibNull.inf + AuthVariableLib|MdeModulePkg/Library/AuthVariableLibNull/AuthVariableLibNull.inf +!endif + VarCheckLib|MdeModulePkg/Library/VarCheckLib/VarCheckLib.inf + +!if $(HTTP_BOOT_ENABLE) == TRUE + HttpLib|MdeModulePkg/Library/DxeHttpLib/DxeHttpLib.inf +!endif + + # ACPI not supported yet. + # S3BootScriptLib|MdeModulePkg/Library/PiDxeS3BootScriptLib/DxeS3BootScriptLib.inf + SmbusLib|MdePkg/Library/BaseSmbusLibNull/BaseSmbusLibNull.inf + OrderedCollectionLib|MdePkg/Library/BaseOrderedCollectionRedBlackTreeLib/BaseOrderedCollectionRedBlackTreeLib.inf + +[LibraryClasses.common] +!if $(SECURE_BOOT_ENABLE) == TRUE + BaseCryptLib|CryptoPkg/Library/BaseCryptLib/BaseCryptLib.inf +!endif + + # RISC-V Architectural Libraries + RiscVSbiLib|MdePkg/Library/BaseRiscVSbiLib/BaseRiscVSbiLib.inf + RiscVMmuLib|UefiCpuPkg/Library/BaseRiscVMmuLib/BaseRiscVMmuLib.inf + CpuExceptionHandlerLib|UefiCpuPkg/Library/BaseRiscV64CpuExceptionHandlerLib/BaseRiscV64CpuExceptionHandlerLib.inf + + TimerLib|UefiCpuPkg/Library/BaseRiscV64CpuTimerLib/BaseRiscV64CpuTimerLib.inf + TimeBaseLib|EmbeddedPkg/Library/TimeBaseLib/TimeBaseLib.inf + RealTimeClockLib|EmbeddedPkg//Library/VirtualRealTimeClockLib/VirtualRealTimeClockLib.inf + + # Flattened Device Tree (FDT) access library + FdtLib|EmbeddedPkg/Library/FdtLib/FdtLib.inf + +[LibraryClasses.common.SEC] +!ifdef $(DEBUG_ON_SERIAL_PORT) + DebugLib|MdePkg/Library/BaseDebugLibSerialPort/BaseDebugLibSerialPort.inf +!else + DebugLib|MdePkg/Library/BaseDebugLibNull/BaseDebugLibNull.inf +!endif + + ReportStatusCodeLib|MdeModulePkg/Library/PeiReportStatusCodeLib/PeiReportStatusCodeLib.inf + ExtractGuidedSectionLib|MdePkg/Library/BaseExtractGuidedSectionLib/BaseExtractGuidedSectionLib.inf + PlatformSecLib|UefiCpuPkg/Library/PlatformSecLibNull/PlatformSecLibNull.inf + HobLib|EmbeddedPkg/Library/PrePiHobLib/PrePiHobLib.inf + PrePiHobListPointerLib|OvmfPkg/RiscVVirt/Library/PrePiHobListPointerLib/PrePiHobListPointerLib.inf + MemoryAllocationLib|EmbeddedPkg/Library/PrePiMemoryAllocationLib/PrePiMemoryAllocationLib.inf + +!ifdef $(SOURCE_DEBUG_ENABLE) + DebugAgentLib|SourceLevelDebugPkg/Library/DebugAgent/SecPeiDebugAgentLib.inf +!endif + +[LibraryClasses.common.DXE_CORE] + HobLib|MdePkg/Library/DxeCoreHobLib/DxeCoreHobLib.inf + DxeCoreEntryPoint|MdePkg/Library/DxeCoreEntryPoint/DxeCoreEntryPoint.inf + MemoryAllocationLib|MdeModulePkg/Library/DxeCoreMemoryAllocationLib/DxeCoreMemoryAllocationLib.inf + ReportStatusCodeLib|MdeModulePkg/Library/DxeReportStatusCodeLib/DxeReportStatusCodeLib.inf +!ifdef $(DEBUG_ON_SERIAL_PORT) + DebugLib|MdePkg/Library/BaseDebugLibSerialPort/BaseDebugLibSerialPort.inf +!else + DebugLib|MdePkg/Library/BaseDebugLibNull/BaseDebugLibNull.inf +!endif + ExtractGuidedSectionLib|MdePkg/Library/DxeExtractGuidedSectionLib/DxeExtractGuidedSectionLib.inf +!ifdef $(SOURCE_DEBUG_ENABLE) + DebugAgentLib|SourceLevelDebugPkg/Library/DebugAgent/DxeDebugAgentLib.inf +!endif + +[LibraryClasses.common.DXE_RUNTIME_DRIVER] + PcdLib|MdePkg/Library/DxePcdLib/DxePcdLib.inf + HobLib|MdePkg/Library/DxeHobLib/DxeHobLib.inf + DxeCoreEntryPoint|MdePkg/Library/DxeCoreEntryPoint/DxeCoreEntryPoint.inf + MemoryAllocationLib|MdePkg/Library/UefiMemoryAllocationLib/UefiMemoryAllocationLib.inf + ReportStatusCodeLib|MdeModulePkg/Library/RuntimeDxeReportStatusCodeLib/RuntimeDxeReportStatusCodeLib.inf + ResetSystemLib|OvmfPkg/RiscVVirt/Library/ResetSystemLib/BaseResetSystemLib.inf + UefiRuntimeLib|MdePkg/Library/UefiRuntimeLib/UefiRuntimeLib.inf +!ifdef $(DEBUG_ON_SERIAL_PORT) + DebugLib|MdePkg/Library/BaseDebugLibSerialPort/BaseDebugLibSerialPort.inf +!else + DebugLib|MdePkg/Library/BaseDebugLibNull/BaseDebugLibNull.inf +!endif +!if $(SECURE_BOOT_ENABLE) == TRUE + BaseCryptLib|CryptoPkg/Library/BaseCryptLib/RuntimeCryptLib.inf +!endif + UefiBootManagerLib|MdeModulePkg/Library/UefiBootManagerLib/UefiBootManagerLib.inf + VariablePolicyLib|MdeModulePkg/Library/VariablePolicyLib/VariablePolicyLibRuntimeDxe.inf + +[LibraryClasses.common.UEFI_DRIVER] + PcdLib|MdePkg/Library/DxePcdLib/DxePcdLib.inf + HobLib|MdePkg/Library/DxeHobLib/DxeHobLib.inf + DxeCoreEntryPoint|MdePkg/Library/DxeCoreEntryPoint/DxeCoreEntryPoint.inf + MemoryAllocationLib|MdePkg/Library/UefiMemoryAllocationLib/UefiMemoryAllocationLib.inf + ReportStatusCodeLib|MdeModulePkg/Library/DxeReportStatusCodeLib/DxeReportStatusCodeLib.inf +!ifdef $(DEBUG_ON_SERIAL_PORT) + DebugLib|MdePkg/Library/BaseDebugLibSerialPort/BaseDebugLibSerialPort.inf +!else + DebugLib|MdePkg/Library/BaseDebugLibNull/BaseDebugLibNull.inf +!endif + UefiScsiLib|MdePkg/Library/UefiScsiLib/UefiScsiLib.inf + VariablePolicyLib|MdeModulePkg/Library/VariablePolicyLib/VariablePolicyLib.inf + +[LibraryClasses.common.DXE_DRIVER] + PcdLib|MdePkg/Library/DxePcdLib/DxePcdLib.inf + HobLib|MdePkg/Library/DxeHobLib/DxeHobLib.inf + MemoryAllocationLib|MdePkg/Library/UefiMemoryAllocationLib/UefiMemoryAllocationLib.inf + ReportStatusCodeLib|MdeModulePkg/Library/DxeReportStatusCodeLib/DxeReportStatusCodeLib.inf + UefiScsiLib|MdePkg/Library/UefiScsiLib/UefiScsiLib.inf +!ifdef $(DEBUG_ON_SERIAL_PORT) + DebugLib|MdePkg/Library/BaseDebugLibSerialPort/BaseDebugLibSerialPort.inf +!else + DebugLib|MdePkg/Library/BaseDebugLibNull/BaseDebugLibNull.inf +!endif +!ifdef $(SOURCE_DEBUG_ENABLE) + DebugAgentLib|SourceLevelDebugPkg/Library/DebugAgent/DxeDebugAgentLib.inf +!endif + UefiBootManagerLib|MdeModulePkg/Library/UefiBootManagerLib/UefiBootManagerLib.inf + PlatformBootManagerLib|Platform/RISC-V/PlatformPkg/Library/PlatformBootManagerLib/PlatformBootManagerLib.inf + PlatformMemoryTestLib|Platform/RISC-V/PlatformPkg/Library/PlatformMemoryTestLibNull/PlatformMemoryTestLibNull.inf + PlatformUpdateProgressLib|Platform/RISC-V/PlatformPkg/Library/PlatformUpdateProgressLibNull/PlatformUpdateProgressLibNull.inf + +[LibraryClasses.common.UEFI_APPLICATION] + PcdLib|MdePkg/Library/DxePcdLib/DxePcdLib.inf + HobLib|MdePkg/Library/DxeHobLib/DxeHobLib.inf + MemoryAllocationLib|MdePkg/Library/UefiMemoryAllocationLib/UefiMemoryAllocationLib.inf +!ifdef $(DEBUG_ON_SERIAL_PORT) + DebugLib|MdePkg/Library/BaseDebugLibSerialPort/BaseDebugLibSerialPort.inf +!else + DebugLib|MdePkg/Library/BaseDebugLibNull/BaseDebugLibNull.inf +!endif + ReportStatusCodeLib|MdeModulePkg/Library/DxeReportStatusCodeLib/DxeReportStatusCodeLib.inf + +################################################################################ +# +# Pcd Section - list of all EDK II PCD Entries defined by this Platform. +# +################################################################################ +[PcdsFeatureFlag] + gEfiMdeModulePkgTokenSpaceGuid.PcdDxeIplSupportUefiDecompress|FALSE + gEfiMdeModulePkgTokenSpaceGuid.PcdConOutGopSupport|TRUE + gEfiMdeModulePkgTokenSpaceGuid.PcdConOutUgaSupport|FALSE + +[PcdsFixedAtBuild] + gEfiMdeModulePkgTokenSpaceGuid.PcdStatusCodeUseMemory|FALSE + gEfiMdeModulePkgTokenSpaceGuid.PcdStatusCodeUseSerial|TRUE + gEfiMdeModulePkgTokenSpaceGuid.PcdStatusCodeMemorySize|1 + gEfiMdeModulePkgTokenSpaceGuid.PcdResetOnMemoryTypeInformationChange|FALSE + gEfiMdePkgTokenSpaceGuid.PcdMaximumGuidedExtractHandler|0x10 + gEfiMdeModulePkgTokenSpaceGuid.PcdMaxVariableSize|0x2000 + gEfiMdeModulePkgTokenSpaceGuid.PcdMaxHardwareErrorVariableSize|0x8000 + gEfiMdeModulePkgTokenSpaceGuid.PcdVariableStoreSize|0xe000 + + gEfiMdeModulePkgTokenSpaceGuid.PcdVpdBaseAddress|0x0 + + gEfiMdePkgTokenSpaceGuid.PcdReportStatusCodePropertyMask|0x07 + gEfiMdePkgTokenSpaceGuid.PcdDebugPrintErrorLevel|0x8000004F +!ifdef $(SOURCE_DEBUG_ENABLE) + gEfiMdePkgTokenSpaceGuid.PcdDebugPropertyMask|0x17 +!else + gEfiMdePkgTokenSpaceGuid.PcdDebugPropertyMask|0x2F +!endif + +!ifdef $(SOURCE_DEBUG_ENABLE) + gEfiSourceLevelDebugPkgTokenSpaceGuid.PcdDebugLoadImageMethod|0x2 +!endif + +!if $(SECURE_BOOT_ENABLE) == TRUE + # override the default values from SecurityPkg to ensure images from all sources are verified in secure boot + gEfiSecurityPkgTokenSpaceGuid.PcdOptionRomImageVerificationPolicy|0x04 + gEfiSecurityPkgTokenSpaceGuid.PcdFixedMediaImageVerificationPolicy|0x04 + gEfiSecurityPkgTokenSpaceGuid.PcdRemovableMediaImageVerificationPolicy|0x04 +!endif + + # + # F2 for UI APP + # + gEfiMdeModulePkgTokenSpaceGuid.PcdBootManagerMenuFile|{ 0x21, 0xaa, 0x2c, 0x46, 0x14, 0x76, 0x03, 0x45, 0x83, 0x6e, 0x8a, 0xb6, 0xf4, 0x66, 0x23, 0x31 } + + # + # Optional feature to help prevent EFI memory map fragments + # Turned on and off via: PcdPrePiProduceMemoryTypeInformationHob + # Values are in EFI Pages (4K). DXE Core will make sure that + # at least this much of each type of memory can be allocated + # from a single memory range. This way you only end up with + # maximum of two fragments for each type in the memory map + # (the memory used, and the free memory that was prereserved + # but not used). + # + gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiACPIReclaimMemory|0 + gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiACPIMemoryNVS|0 + gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiReservedMemoryType|0 +!if $(SECURE_BOOT_ENABLE) == TRUE + gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiRuntimeServicesData|600 + gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiRuntimeServicesCode|400 + gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiBootServicesCode|1500 +!else + gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiRuntimeServicesData|300 + gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiRuntimeServicesCode|150 + gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiBootServicesCode|1000 +!endif + gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiBootServicesData|6000 + gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiLoaderCode|20 + gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiLoaderData|0 + + # + # Enable strict image permissions for all images. (This applies + # only to images that were built with >= 4 KB section alignment.) + # + gEfiMdeModulePkgTokenSpaceGuid.PcdImageProtectionPolicy|0x3 + + # + # Enable NX memory protection for all non-code regions, including OEM and OS + # reserved ones, with the exception of LoaderData regions, of which OS loaders + # (i.e., GRUB) may assume that its contents are executable. + # + gEfiMdeModulePkgTokenSpaceGuid.PcdDxeNxMemoryProtectionPolicy|0xC000000000007FD5 + +################################################################################ +# +# Pcd Dynamic Section - list of all EDK II PCD Entries defined by this Platform +# +################################################################################ + +[PcdsDynamicDefault] + gEfiMdeModulePkgTokenSpaceGuid.PcdEmuVariableNvStoreReserved|0 + gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableBase64|0 + gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwWorkingBase|0 + gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwSpareBase|0 + gEfiMdeModulePkgTokenSpaceGuid.PcdPciDisableBusEnumeration|FALSE + gEfiMdeModulePkgTokenSpaceGuid.PcdVideoHorizontalResolution|800 + gEfiMdeModulePkgTokenSpaceGuid.PcdVideoVerticalResolution|600 + + gEfiMdePkgTokenSpaceGuid.PcdPlatformBootTimeOut|0x0001 + + # Set video resolution for text setup. + gEfiMdeModulePkgTokenSpaceGuid.PcdSetupVideoHorizontalResolution|640 + gEfiMdeModulePkgTokenSpaceGuid.PcdSetupVideoVerticalResolution|480 + + gEfiMdeModulePkgTokenSpaceGuid.PcdSmbiosVersion|0x0208 + gEfiMdeModulePkgTokenSpaceGuid.PcdSmbiosDocRev|0x0 + +[PcdsDynamicHii] + gUefiOvmfPkgTokenSpaceGuid.PcdForceNoAcpi|L"ForceNoAcpi"|gOvmfVariableGuid|0x0|TRUE|NV,BS + +################################################################################ +# +# Components Section - list of all EDK II Modules needed by this Platform. +# +################################################################################ +[Components] + + # + # SEC Phase modules + # + Silicon/Sophgo/SG2042Pkg/Sec/SecMain.inf { + <LibraryClasses> + ExtractGuidedSectionLib|EmbeddedPkg/Library/PrePiExtractGuidedSectionLib/PrePiExtractGuidedSectionLib.inf + LzmaDecompressLib|MdeModulePkg/Library/LzmaCustomDecompressLib/LzmaCustomDecompressLib.inf + PrePiLib|EmbeddedPkg/Library/PrePiLib/PrePiLib.inf + HobLib|EmbeddedPkg/Library/PrePiHobLib/PrePiHobLib.inf + PrePiHobListPointerLib|OvmfPkg/RiscVVirt/Library/PrePiHobListPointerLib/PrePiHobListPointerLib.inf + MemoryAllocationLib|EmbeddedPkg/Library/PrePiMemoryAllocationLib/PrePiMemoryAllocationLib.inf + } + + # + # DXE Phase modules + # + MdeModulePkg/Core/Dxe/DxeMain.inf { + <LibraryClasses> + NULL|MdeModulePkg/Library/DxeCrc32GuidedSectionExtractLib/DxeCrc32GuidedSectionExtractLib.inf + DevicePathLib|MdePkg/Library/UefiDevicePathLib/UefiDevicePathLib.inf + } + + MdeModulePkg/Universal/ReportStatusCodeRouter/RuntimeDxe/ReportStatusCodeRouterRuntimeDxe.inf + MdeModulePkg/Universal/StatusCodeHandler/RuntimeDxe/StatusCodeHandlerRuntimeDxe.inf + MdeModulePkg/Universal/PCD/Dxe/Pcd.inf { + <LibraryClasses> + PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf + } + + ArmVirtPkg/CloudHvPlatformHasAcpiDtDxe/CloudHvHasAcpiDtDxe.inf + EmbeddedPkg/Drivers/FdtClientDxe/FdtClientDxe.inf { + <LibraryClasses> + DevicePathLib|MdePkg/Library/UefiDevicePathLib/UefiDevicePathLib.inf + } + + MdeModulePkg/Core/RuntimeDxe/RuntimeDxe.inf + +!if $(SECURE_BOOT_ENABLE) == TRUE + MdeModulePkg/Universal/SecurityStubDxe/SecurityStubDxe.inf { + <LibraryClasses> + NULL|SecurityPkg/Library/DxeImageVerificationLib/DxeImageVerificationLib.inf + } +!else + MdeModulePkg/Universal/SecurityStubDxe/SecurityStubDxe.inf +!endif + + UefiCpuPkg/CpuIo2Dxe/CpuIo2Dxe.inf + MdeModulePkg/Bus/Pci/PciBusDxe/PciBusDxe.inf { + <LibraryClasses> + PcdLib|MdePkg/Library/DxePcdLib/DxePcdLib.inf + } + MdeModulePkg/Universal/Metronome/Metronome.inf + MdeModulePkg/Universal/BdsDxe/BdsDxe.inf + MdeModulePkg/Universal/ResetSystemRuntimeDxe/ResetSystemRuntimeDxe.inf { + <LibraryClasses> + ResetSystemLib|MdeModulePkg/Library/BaseResetSystemLibNull/BaseResetSystemLibNull.inf + } + EmbeddedPkg/RealTimeClockRuntimeDxe/RealTimeClockRuntimeDxe.inf + + # + # RISC-V Platform module + # + Platform/SiFive/U5SeriesPkg/Universal/Dxe/RamFvbServicesRuntimeDxe/FvbServicesRuntimeDxe.inf { + <LibraryClasses> + SerialPortLib|Silicon/Hisilicon/Library/Dw8250SerialPortLib/Dw8250SerialPortLib.inf + } + Silicon/Sophgo/SG2042Pkg/Drivers/PlatformUpdateMmuDxe/PlatformUpdateMmuDxe.inf + Silicon/Sophgo/SG2042Pkg/Drivers/MmcDxe/MmcDxe.inf + Silicon/Sophgo/SG2042Pkg/Drivers/SdHostDxe/SdHostDxe.inf + + # + # RISC-V Core module + # + UefiCpuPkg/CpuTimerDxeRiscV64/CpuTimerDxeRiscV64.inf + UefiCpuPkg/CpuDxeRiscV64/CpuDxeRiscV64.inf + MdeModulePkg/Universal/ResetSystemRuntimeDxe/ResetSystemRuntimeDxe.inf + + MdeModulePkg/Universal/FaultTolerantWriteDxe/FaultTolerantWriteDxe.inf + MdeModulePkg/Universal/Variable/RuntimeDxe/VariableRuntimeDxe.inf { + <LibraryClasses> + NULL|MdeModulePkg/Library/VarCheckUefiLib/VarCheckUefiLib.inf + VariablePolicyHelperLib|MdeModulePkg/Library/VariablePolicyHelperLib/VariablePolicyHelperLib.inf + } + MdeModulePkg/Universal/WatchdogTimerDxe/WatchdogTimer.inf + MdeModulePkg/Universal/MonotonicCounterRuntimeDxe/MonotonicCounterRuntimeDxe.inf + MdeModulePkg/Universal/CapsuleRuntimeDxe/CapsuleRuntimeDxe.inf + MdeModulePkg/Universal/Console/ConPlatformDxe/ConPlatformDxe.inf + MdeModulePkg/Universal/Console/ConSplitterDxe/ConSplitterDxe.inf + + # No graphic console supported yet. + # MdeModulePkg/Universal/Console/GraphicsConsoleDxe/GraphicsConsoleDxe.inf { + # <LibraryClasses> + # PcdLib|MdePkg/Library/DxePcdLib/DxePcdLib.inf + # } + MdeModulePkg/Universal/Console/TerminalDxe/TerminalDxe.inf + MdeModulePkg/Universal/DevicePathDxe/DevicePathDxe.inf { + <LibraryClasses> + DevicePathLib|MdePkg/Library/UefiDevicePathLib/UefiDevicePathLib.inf + PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf + } + MdeModulePkg/Universal/PrintDxe/PrintDxe.inf + MdeModulePkg/Universal/Disk/DiskIoDxe/DiskIoDxe.inf + MdeModulePkg/Universal/Disk/PartitionDxe/PartitionDxe.inf + MdeModulePkg/Universal/Disk/UnicodeCollation/EnglishDxe/EnglishDxe.inf + MdeModulePkg/Bus/Scsi/ScsiBusDxe/ScsiBusDxe.inf + MdeModulePkg/Bus/Scsi/ScsiDiskDxe/ScsiDiskDxe.inf + MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabaseDxe.inf + MdeModulePkg/Universal/SetupBrowserDxe/SetupBrowserDxe.inf + MdeModulePkg/Universal/DisplayEngineDxe/DisplayEngineDxe.inf + MdeModulePkg/Universal/MemoryTest/NullMemoryTestDxe/NullMemoryTestDxe.inf + MdeModulePkg/Universal/SerialDxe/SerialDxe.inf + + # + # SMBIOS Support + # + MdeModulePkg/Universal/SmbiosDxe/SmbiosDxe.inf + Silicon/Sophgo/SG2042Pkg/Drivers/SmbiosPlatformDxe/SmbiosPlatformDxe.inf + + # + # Network Support + # + !include NetworkPkg/Network.dsc.inc + + # + # Usb Support + # + MdeModulePkg/Bus/Pci/UhciDxe/UhciDxe.inf + MdeModulePkg/Bus/Pci/EhciDxe/EhciDxe.inf + MdeModulePkg/Bus/Pci/XhciDxe/XhciDxe.inf + MdeModulePkg/Bus/Usb/UsbBusDxe/UsbBusDxe.inf + MdeModulePkg/Bus/Usb/UsbKbDxe/UsbKbDxe.inf + MdeModulePkg/Bus/Usb/UsbMassStorageDxe/UsbMassStorageDxe.inf + + # + # FAT filesystem + GPT/MBR partitioning + UDF filesystem + # + FatPkg/EnhancedFatDxe/Fat.inf + MdeModulePkg/Universal/Disk/UdfDxe/UdfDxe.inf + + OvmfPkg/LinuxInitrdDynamicShellCommand/LinuxInitrdDynamicShellCommand.inf { + <PcdsFixedAtBuild> + gEfiShellPkgTokenSpaceGuid.PcdShellLibAutoInitialize|FALSE + <LibraryClasses> + ShellLib|ShellPkg/Library/UefiShellLib/UefiShellLib.inf + SortLib|MdeModulePkg/Library/UefiSortLib/UefiSortLib.inf + } + + ShellPkg/Application/Shell/Shell.inf { + <LibraryClasses> + ShellCommandLib|ShellPkg/Library/UefiShellCommandLib/UefiShellCommandLib.inf + NULL|ShellPkg/Library/UefiShellLevel2CommandsLib/UefiShellLevel2CommandsLib.inf + NULL|ShellPkg/Library/UefiShellLevel1CommandsLib/UefiShellLevel1CommandsLib.inf + NULL|ShellPkg/Library/UefiShellLevel3CommandsLib/UefiShellLevel3CommandsLib.inf + NULL|ShellPkg/Library/UefiShellDriver1CommandsLib/UefiShellDriver1CommandsLib.inf + NULL|ShellPkg/Library/UefiShellDebug1CommandsLib/UefiShellDebug1CommandsLib.inf + NULL|ShellPkg/Library/UefiShellInstall1CommandsLib/UefiShellInstall1CommandsLib.inf + NULL|ShellPkg/Library/UefiShellNetwork1CommandsLib/UefiShellNetwork1CommandsLib.inf + HandleParsingLib|ShellPkg/Library/UefiHandleParsingLib/UefiHandleParsingLib.inf + FileHandleLib|MdePkg/Library/UefiFileHandleLib/UefiFileHandleLib.inf + SortLib|MdeModulePkg/Library/UefiSortLib/UefiSortLib.inf + PrintLib|MdePkg/Library/BasePrintLib/BasePrintLib.inf + BcfgCommandLib|ShellPkg/Library/UefiShellBcfgCommandLib/UefiShellBcfgCommandLib.inf + + <PcdsFixedAtBuild> + gEfiMdePkgTokenSpaceGuid.PcdDebugPropertyMask|0xFF + gEfiShellPkgTokenSpaceGuid.PcdShellLibAutoInitialize|FALSE + gEfiMdePkgTokenSpaceGuid.PcdUefiLibMaxPrintBufferSize|8000 + } + +!if $(SECURE_BOOT_ENABLE) == TRUE + SecurityPkg/VariableAuthenticated/SecureBootConfigDxe/SecureBootConfigDxe.inf +!endif + + MdeModulePkg/Application/UiApp/UiApp.inf { + <LibraryClasses> + NULL|MdeModulePkg/Library/DeviceManagerUiLib/DeviceManagerUiLib.inf + NULL|MdeModulePkg/Library/BootManagerUiLib/BootManagerUiLib.inf + } diff --git a/Platform/Sophgo/SG2042_EVB_Board/SG2042.fdf b/Platform/Sophgo/SG2042_EVB_Board/SG2042.fdf new file mode 100644 index XXXXXXX..XXXXXXX --- /dev/null +++ b/Platform/Sophgo/SG2042_EVB_Board/SG2042.fdf @@ -XXX,XX +XXX,XX @@ +# @file +# Flash definition file on Sophgo SG2042 EVB RISC-V platform +# +# Copyright (c) 2023, Academy of Intelligent Innovation, Shandong Universiy, China.P.R. All rights reserved.<BR> +# +# SPDX-License-Identifier: BSD-2-Clause-Patent +# +# Platform definitions +# +!include SG2042.fdf.inc + +# +# Build the variable store and the firmware code as one unified flash device +# image. +# +[FD.SG2042] +BaseAddress = $(FW_BASE_ADDRESS) +Size = $(FW_SIZE) +ErasePolarity = 1 +BlockSize = $(BLOCK_SIZE) +NumBlocks = $(FW_BLOCKS) + + +$(FVMAIN_OFFSET)|$(FVMAIN_SIZE) +gUefiRiscVPlatformPkgTokenSpaceGuid.PcdRiscVDxeFvBase|gUefiRiscVPlatformPkgTokenSpaceGuid.PcdRiscVDxeFvSize +FV = FVMAIN_COMPACT + +!include VarStore.fdf.inc +################################################################################ + +[FV.DXEFV] +BlockSize = 0x10000 +FvAlignment = 16 +ERASE_POLARITY = 1 +MEMORY_MAPPED = TRUE +STICKY_WRITE = TRUE +LOCK_CAP = TRUE +LOCK_STATUS = TRUE +WRITE_DISABLED_CAP = TRUE +WRITE_ENABLED_CAP = TRUE +WRITE_STATUS = TRUE +WRITE_LOCK_CAP = TRUE +WRITE_LOCK_STATUS = TRUE +READ_DISABLED_CAP = TRUE +READ_ENABLED_CAP = TRUE +READ_STATUS = TRUE +READ_LOCK_CAP = TRUE +READ_LOCK_STATUS = TRUE + +APRIORI DXE { + INF MdeModulePkg/Universal/DevicePathDxe/DevicePathDxe.inf + INF MdeModulePkg/Universal/PCD/Dxe/Pcd.inf + INF Platform/SiFive/U5SeriesPkg/Universal/Dxe/RamFvbServicesRuntimeDxe/FvbServicesRuntimeDxe.inf + INF UefiCpuPkg/CpuDxeRiscV64/CpuDxeRiscV64.inf + INF Silicon/Sophgo/SG2042Pkg/Drivers/PlatformUpdateMmuDxe/PlatformUpdateMmuDxe.inf +} + +# +# DXE Phase modules +# +INF MdeModulePkg/Core/Dxe/DxeMain.inf +INF MdeModulePkg/Universal/ReportStatusCodeRouter/RuntimeDxe/ReportStatusCodeRouterRuntimeDxe.inf +INF MdeModulePkg/Universal/StatusCodeHandler/RuntimeDxe/StatusCodeHandlerRuntimeDxe.inf +INF MdeModulePkg/Universal/PCD/Dxe/Pcd.inf +INF ArmVirtPkg/CloudHvPlatformHasAcpiDtDxe/CloudHvHasAcpiDtDxe.inf +INF EmbeddedPkg/Drivers/FdtClientDxe/FdtClientDxe.inf + +INF MdeModulePkg/Core/RuntimeDxe/RuntimeDxe.inf +INF MdeModulePkg/Universal/SecurityStubDxe/SecurityStubDxe.inf +INF UefiCpuPkg/CpuIo2Dxe/CpuIo2Dxe.inf +INF MdeModulePkg/Bus/Pci/PciBusDxe/PciBusDxe.inf +INF MdeModulePkg/Universal/Metronome/Metronome.inf +INF EmbeddedPkg/RealTimeClockRuntimeDxe/RealTimeClockRuntimeDxe.inf + +# RISC-V Platform Drivers +INF Platform/SiFive/U5SeriesPkg/Universal/Dxe/RamFvbServicesRuntimeDxe/FvbServicesRuntimeDxe.inf +INF Silicon/Sophgo/SG2042Pkg/Drivers/PlatformUpdateMmuDxe/PlatformUpdateMmuDxe.inf +INF Silicon/Sophgo/SG2042Pkg/Drivers/MmcDxe/MmcDxe.inf +INF Silicon/Sophgo/SG2042Pkg/Drivers/SdHostDxe/SdHostDxe.inf + +# RISC-V Core Drivers +INF UefiCpuPkg/CpuTimerDxeRiscV64/CpuTimerDxeRiscV64.inf +INF UefiCpuPkg/CpuDxeRiscV64/CpuDxeRiscV64.inf + +INF MdeModulePkg/Universal/FaultTolerantWriteDxe/FaultTolerantWriteDxe.inf +INF MdeModulePkg/Universal/Variable/RuntimeDxe/VariableRuntimeDxe.inf +!if $(SECURE_BOOT_ENABLE) == TRUE + INF SecurityPkg/VariableAuthenticated/SecureBootConfigDxe/SecureBootConfigDxe.inf +!endif + +INF MdeModulePkg/Universal/ResetSystemRuntimeDxe/ResetSystemRuntimeDxe.inf +INF MdeModulePkg/Universal/WatchdogTimerDxe/WatchdogTimer.inf +INF MdeModulePkg/Universal/MonotonicCounterRuntimeDxe/MonotonicCounterRuntimeDxe.inf +INF MdeModulePkg/Universal/CapsuleRuntimeDxe/CapsuleRuntimeDxe.inf +INF MdeModulePkg/Universal/Console/ConPlatformDxe/ConPlatformDxe.inf +INF MdeModulePkg/Universal/Console/ConSplitterDxe/ConSplitterDxe.inf +INF MdeModulePkg/Universal/Console/TerminalDxe/TerminalDxe.inf +INF MdeModulePkg/Universal/BdsDxe/BdsDxe.inf +INF MdeModulePkg/Universal/DevicePathDxe/DevicePathDxe.inf +INF MdeModulePkg/Universal/PrintDxe/PrintDxe.inf +INF MdeModulePkg/Universal/Disk/DiskIoDxe/DiskIoDxe.inf +INF MdeModulePkg/Universal/Disk/PartitionDxe/PartitionDxe.inf +INF MdeModulePkg/Universal/Disk/UnicodeCollation/EnglishDxe/EnglishDxe.inf +INF MdeModulePkg/Bus/Scsi/ScsiBusDxe/ScsiBusDxe.inf +INF MdeModulePkg/Bus/Scsi/ScsiDiskDxe/ScsiDiskDxe.inf +INF MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabaseDxe.inf +INF MdeModulePkg/Universal/SetupBrowserDxe/SetupBrowserDxe.inf +INF MdeModulePkg/Universal/DisplayEngineDxe/DisplayEngineDxe.inf +INF MdeModulePkg/Universal/MemoryTest/NullMemoryTestDxe/NullMemoryTestDxe.inf +INF FatPkg/EnhancedFatDxe/Fat.inf +INF MdeModulePkg/Universal/Disk/UdfDxe/UdfDxe.inf + +!ifndef $(SOURCE_DEBUG_ENABLE) +INF MdeModulePkg/Universal/SerialDxe/SerialDxe.inf +!endif + +# +# SMBIOS Support +# +INF MdeModulePkg/Universal/SmbiosDxe/SmbiosDxe.inf +INF Silicon/Sophgo/SG2042Pkg/Drivers/SmbiosPlatformDxe/SmbiosPlatformDxe.inf + +INF OvmfPkg/LinuxInitrdDynamicShellCommand/LinuxInitrdDynamicShellCommand.inf +INF ShellPkg/Application/Shell/Shell.inf + +# +# Network modules +# +!if $(E1000_ENABLE) + FILE DRIVER = 5D695E11-9B3F-4b83-B25F-4A8D5D69BE07 { + SECTION PE32 = Intel3.5/EFIX64/E3507X2.EFI + } +!endif + +!include NetworkPkg/Network.fdf.inc + +# +# Usb Support +# +INF MdeModulePkg/Bus/Pci/UhciDxe/UhciDxe.inf +INF MdeModulePkg/Bus/Pci/EhciDxe/EhciDxe.inf +INF MdeModulePkg/Bus/Pci/XhciDxe/XhciDxe.inf +INF MdeModulePkg/Bus/Usb/UsbBusDxe/UsbBusDxe.inf +INF MdeModulePkg/Bus/Usb/UsbKbDxe/UsbKbDxe.inf +INF MdeModulePkg/Bus/Usb/UsbMassStorageDxe/UsbMassStorageDxe.inf + +INF MdeModulePkg/Application/UiApp/UiApp.inf + +################################################################################ + +[FV.FVMAIN_COMPACT] +FvAlignment = 16 +ERASE_POLARITY = 1 +MEMORY_MAPPED = TRUE +STICKY_WRITE = TRUE +LOCK_CAP = TRUE +LOCK_STATUS = TRUE +WRITE_DISABLED_CAP = TRUE +WRITE_ENABLED_CAP = TRUE +WRITE_STATUS = TRUE +WRITE_LOCK_CAP = TRUE +WRITE_LOCK_STATUS = TRUE +READ_DISABLED_CAP = TRUE +READ_ENABLED_CAP = TRUE +READ_STATUS = TRUE +READ_LOCK_CAP = TRUE +READ_LOCK_STATUS = TRUE +FvNameGuid = 27A72E80-3118-4c0c-8673-AA5B4EFA9613 + +INF Silicon/Sophgo/SG2042Pkg/Sec/SecMain.inf + +FILE FV_IMAGE = 9E21FD93-9C72-4c15-8C4B-E77F1DB2D792 { + SECTION GUIDED EE4E5898-3914-4259-9D6E-DC7BD79403CF PROCESSING_REQUIRED = TRUE { + # + # These firmware volumes will have files placed in them uncompressed, + # and then both firmware volumes will be compressed in a single + # compression operation in order to achieve better overall compression. + # + SECTION FV_IMAGE = DXEFV + } + } + +[Rule.Common.SEC] + FILE SEC = $(NAMED_GUID) RELOCS_STRIPPED FIXED { + PE32 PE32 Align = Auto $(INF_OUTPUT)/$(MODULE_NAME).efi + UI STRING ="$(MODULE_NAME)" Optional + VERSION STRING ="$(INF_VERSION)" Optional BUILD_NUM=$(BUILD_NUMBER) + } + +[Rule.Common.DXE_CORE] + FILE DXE_CORE = $(NAMED_GUID) { + PE32 PE32 $(INF_OUTPUT)/$(MODULE_NAME).efi + UI STRING="$(MODULE_NAME)" Optional + VERSION STRING="$(INF_VERSION)" Optional BUILD_NUM=$(BUILD_NUMBER) + } + +[Rule.Common.DXE_DRIVER] + FILE DRIVER = $(NAMED_GUID) { + DXE_DEPEX DXE_DEPEX Optional $(INF_OUTPUT)/$(MODULE_NAME).depex + PE32 PE32 $(INF_OUTPUT)/$(MODULE_NAME).efi + UI STRING="$(MODULE_NAME)" Optional + VERSION STRING="$(INF_VERSION)" Optional BUILD_NUM=$(BUILD_NUMBER) + } + +[Rule.Common.DXE_RUNTIME_DRIVER] + FILE DRIVER = $(NAMED_GUID) { + DXE_DEPEX DXE_DEPEX Optional $(INF_OUTPUT)/$(MODULE_NAME).depex + PE32 PE32 $(INF_OUTPUT)/$(MODULE_NAME).efi + UI STRING="$(MODULE_NAME)" Optional + VERSION STRING="$(INF_VERSION)" Optional BUILD_NUM=$(BUILD_NUMBER) + } + +[Rule.Common.UEFI_DRIVER] + FILE DRIVER = $(NAMED_GUID) { + DXE_DEPEX DXE_DEPEX Optional $(INF_OUTPUT)/$(MODULE_NAME).depex + PE32 PE32 $(INF_OUTPUT)/$(MODULE_NAME).efi + UI STRING="$(MODULE_NAME)" Optional + VERSION STRING="$(INF_VERSION)" Optional BUILD_NUM=$(BUILD_NUMBER) + } + +[Rule.Common.UEFI_DRIVER.BINARY] + FILE DRIVER = $(NAMED_GUID) { + DXE_DEPEX DXE_DEPEX Optional |.depex + PE32 PE32 |.efi + UI STRING="$(MODULE_NAME)" Optional + VERSION STRING="$(INF_VERSION)" Optional BUILD_NUM=$(BUILD_NUMBER) + } + +[Rule.Common.UEFI_APPLICATION] + FILE APPLICATION = $(NAMED_GUID) { + PE32 PE32 $(INF_OUTPUT)/$(MODULE_NAME).efi + UI STRING="$(MODULE_NAME)" Optional + VERSION STRING="$(INF_VERSION)" Optional BUILD_NUM=$(BUILD_NUMBER) + } + +[Rule.Common.UEFI_APPLICATION.BINARY] + FILE APPLICATION = $(NAMED_GUID) { + PE32 PE32 |.efi + UI STRING="$(MODULE_NAME)" Optional + VERSION STRING="$(INF_VERSION)" Optional BUILD_NUM=$(BUILD_NUMBER) + } + +[Rule.Common.USER_DEFINED.ACPITABLE] + FILE FREEFORM = $(NAMED_GUID) { + RAW ACPI |.acpi + RAW ASL |.aml + UI STRING="$(MODULE_NAME)" Optional + } diff --git a/Platform/Sophgo/SG2042_EVB_Board/SG2042.fdf.inc b/Platform/Sophgo/SG2042_EVB_Board/SG2042.fdf.inc new file mode 100644 index XXXXXXX..XXXXXXX --- /dev/null +++ b/Platform/Sophgo/SG2042_EVB_Board/SG2042.fdf.inc @@ -XXX,XX +XXX,XX @@ +## @file +# Definitions of Flash definition file on Sophgo SG2042 EVB RISC-V platform +# +# Copyright (c) 2023, Academy of Intelligent Innovation, Shandong Universiy, China.P.R. All rights reserved.<BR> +# +# SPDX-License-Identifier: BSD-2-Clause-Patent +# +## +[Defines] +DEFINE BLOCK_SIZE = 0x1000 + +DEFINE FW_BASE_ADDRESS = 0x02000000 +DEFINE FW_SIZE = 0x00800000 +DEFINE FW_BLOCKS = 0x800 + +# +# 0x000000-0x7DFFFF code +# 0x7E0000-0x800000 variables +# +DEFINE CODE_BASE_ADDRESS = $(FW_BASE_ADDRESS) +DEFINE CODE_SIZE = 0x00780000 +DEFINE CODE_BLOCKS = 0x780 +DEFINE VARS_BLOCKS = 0x20 + +# +# Other FV regions are in the second FW domain. +# The size of memory region must be power of 2. +# The base address must be aligned with the size. +# +# FW memory region +# +DEFINE FVMAIN_OFFSET = 0x00000000 +DEFINE FVMAIN_SIZE = 0x00780000 + +# +# EFI Variable memory region. +# The total size of EFI Variable FD must include +# all of sub regions of EFI Variable +# +DEFINE VARS_OFFSET = 0x00780000 +DEFINE VARS_SIZE = 0x00007000 +DEFINE VARS_FTW_WORKING_OFFSET = $(VARS_OFFSET) + $(VARS_SIZE) +DEFINE VARS_FTW_WORKING_SIZE = 0x00001000 +DEFINE VARS_FTW_SPARE_OFFSET = $(VARS_FTW_WORKING_OFFSET) + $(VARS_FTW_WORKING_SIZE) +DEFINE VARS_FTW_SPARE_SIZE = 0x00018000 + +DEFINE VARIABLE_FW_SIZE = $(VARS_FTW_SPARE_OFFSET) + $(VARS_FTW_SPARE_SIZE) - $(VARS_OFFSET) + +SET gUefiRiscVPlatformPkgTokenSpaceGuid.PcdVariableFdBaseAddress = $(FW_BASE_ADDRESS) + $(VARS_OFFSET) +SET gUefiRiscVPlatformPkgTokenSpaceGuid.PcdVariableFdSize = $(VARS_SIZE) + $(VARS_FTW_WORKING_SIZE) + $(VARS_FTW_SPARE_SIZE) +SET gUefiRiscVPlatformPkgTokenSpaceGuid.PcdVariableFdBlockSize = $(BLOCK_SIZE) +SET gUefiRiscVPlatformPkgTokenSpaceGuid.PcdVariableFirmwareRegionBaseAddress = $(CODE_BASE_ADDRESS) + $(VARS_OFFSET) +SET gUefiRiscVPlatformPkgTokenSpaceGuid.PcdVariableFirmwareRegionSize = $(VARIABLE_FW_SIZE) +SET gUefiRiscVPlatformPkgTokenSpaceGuid.PcdTemporaryRamBase = $(CODE_BASE_ADDRESS) + $(FW_SIZE) + 0x1FF0000 +SET gUefiRiscVPlatformPkgTokenSpaceGuid.PcdTemporaryRamSize = 0x10000 + +SET gSophgoSG2042PlatformPkgTokenSpaceGuid.PcdSG2042SDIOBase = 0x704002B000 +SET gSophgoSG2042PlatformPkgTokenSpaceGuid.PcdForceNoMMU = TRUE +SET gEfiMdeModulePkgTokenSpaceGuid.PcdSerialRegisterBase = 0x7040000000 +SET gEfiMdePkgTokenSpaceGuid.PcdUartDefaultBaudRate = 115200 +SET gHisiTokenSpaceGuid.PcdSerialPortSendDelay = 10000000 +SET gHisiTokenSpaceGuid.PcdUartClkInHz = 500000000 diff --git a/Platform/Sophgo/SG2042_EVB_Board/VarStore.fdf.inc b/Platform/Sophgo/SG2042_EVB_Board/VarStore.fdf.inc new file mode 100644 index XXXXXXX..XXXXXXX --- /dev/null +++ b/Platform/Sophgo/SG2042_EVB_Board/VarStore.fdf.inc @@ -XXX,XX +XXX,XX @@ +## @file +# FDF include file with Layout Regions that define an empty variable store. +# +# Copyright (C) 2014, Red Hat, Inc. +# Copyright (c) 2006 - 2013, Intel Corporation. All rights reserved.<BR> +# +# SPDX-License-Identifier: BSD-2-Clause-Patent +# +## + +$(VARS_OFFSET)|$(VARS_SIZE) +gUefiRiscVPlatformPkgTokenSpaceGuid.PcdPlatformFlashNvStorageVariableBase|gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableSize +# +# NV_VARIABLE_STORE +# +DATA = { + ## This is the EFI_FIRMWARE_VOLUME_HEADER + # ZeroVector [] + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + # FileSystemGuid: gEfiSystemNvDataFvGuid = + # { 0xFFF12B8D, 0x7696, 0x4C8B, + # { 0xA9, 0x85, 0x27, 0x47, 0x07, 0x5B, 0x4F, 0x50 }} + 0x8D, 0x2B, 0xF1, 0xFF, 0x96, 0x76, 0x8B, 0x4C, + 0xA9, 0x85, 0x27, 0x47, 0x07, 0x5B, 0x4F, 0x50, + # FvLength: 0x20000 + 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, + # Signature "_FVH" # Attributes + 0x5f, 0x46, 0x56, 0x48, 0xff, 0xfe, 0x04, 0x00, + # HeaderLength # CheckSum # ExtHeaderOffset #Reserved #Revision + 0x48, 0x00, 0x39, 0xF1, 0x00, 0x00, 0x00, 0x02, + # Blockmap[0]: 0x20 Blocks * 0x1000 Bytes / Block + 0x00, 0x08, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, + # Blockmap[1]: End + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ## This is the VARIABLE_STORE_HEADER +!if $(SECURE_BOOT_ENABLE) == TRUE + # Signature: gEfiAuthenticatedVariableGuid = + # { 0xaaf32c78, 0x947b, 0x439a, + # { 0xa1, 0x80, 0x2e, 0x14, 0x4e, 0xc3, 0x77, 0x92 }} + 0x78, 0x2c, 0xf3, 0xaa, 0x7b, 0x94, 0x9a, 0x43, + 0xa1, 0x80, 0x2e, 0x14, 0x4e, 0xc3, 0x77, 0x92, +!else + # Signature: gEfiVariableGuid = + # { 0xddcf3616, 0x3275, 0x4164, + # { 0x98, 0xb6, 0xfe, 0x85, 0x70, 0x7f, 0xfe, 0x7d }} + 0x16, 0x36, 0xcf, 0xdd, 0x75, 0x32, 0x64, 0x41, + 0x98, 0xb6, 0xfe, 0x85, 0x70, 0x7f, 0xfe, 0x7d, +!endif + # Size: 0x7000 (gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableSize) - + # 0x48 (size of EFI_FIRMWARE_VOLUME_HEADER) = 0x6fb8 + # This can speed up the Variable Dispatch a bit. + 0xB8, 0x6F, 0x00, 0x00, + # FORMATTED: 0x5A #HEALTHY: 0xFE #Reserved: UINT16 #Reserved1: UINT32 + 0x5A, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 +} + +$(VARS_FTW_WORKING_OFFSET)|$(VARS_FTW_WORKING_SIZE) +gUefiRiscVPlatformPkgTokenSpaceGuid.PcdPlatformFlashNvStorageFtwWorkingBase|gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwWorkingSize +# +#NV_FTW_WROK +# +DATA = { + # EFI_FAULT_TOLERANT_WORKING_BLOCK_HEADER->Signature = gEdkiiWorkingBlockSignatureGuid = + # { 0x9e58292b, 0x7c68, 0x497d, { 0xa0, 0xce, 0x65, 0x0, 0xfd, 0x9f, 0x1b, 0x95 }} + 0x2b, 0x29, 0x58, 0x9e, 0x68, 0x7c, 0x7d, 0x49, + 0xa0, 0xce, 0x65, 0x0, 0xfd, 0x9f, 0x1b, 0x95, + # Crc:UINT32 #WorkingBlockValid:1, WorkingBlockInvalid:1, Reserved + 0x2c, 0xaf, 0x2c, 0x64, 0xFE, 0xFF, 0xFF, 0xFF, + # WriteQueueSize: UINT64 + 0xE0, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 +} + +$(VARS_FTW_SPARE_OFFSET)|$(VARS_FTW_SPARE_SIZE) +gUefiRiscVPlatformPkgTokenSpaceGuid.PcdPlatformFlashNvStorageFtwSpareBase|gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwSpareSize +# +#NV_FTW_SPARE -- 2.34.1 -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#108379): https://edk2.groups.io/g/devel/message/108379 Mute This Topic: https://groups.io/mt/101213492/1787277 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org] -=-=-=-=-=-=-=-=-=-=-=-
From: caiyuqing379 <202235273@mail.sdu.edu.cn> Add SG2042Pkg for Sophgo SG2042 platform. Provides PCD tokens. Signed-off-by: caiyuqing379 <202235273@mail.sdu.edu.cn> Co-authored-by: USER0FISH <libing1202@outlook.com> Cc: dahogn <dahogn@hotmail.com> Cc: meng-cz <mengcz1126@gmail.com> Cc: yli147 <yong.li@intel.com> Cc: ChaiEvan <evan.chai@intel.com> Cc: Sunil V L <sunilvl@ventanamicro.com> Cc: Leif Lindholm <quic_llindhol@quicinc.com> --- Silicon/Sophgo/SG2042Pkg/SG2042Pkg.dec | 35 +++++++++++++++++++++ Silicon/Sophgo/SG2042Pkg/SG2042Pkg.uni | 13 ++++++++ Silicon/Sophgo/SG2042Pkg/SG2042PkgExtra.uni | 12 +++++++ 3 files changed, 60 insertions(+) create mode 100644 Silicon/Sophgo/SG2042Pkg/SG2042Pkg.dec create mode 100644 Silicon/Sophgo/SG2042Pkg/SG2042Pkg.uni create mode 100644 Silicon/Sophgo/SG2042Pkg/SG2042PkgExtra.uni diff --git a/Silicon/Sophgo/SG2042Pkg/SG2042Pkg.dec b/Silicon/Sophgo/SG2042Pkg/SG2042Pkg.dec new file mode 100644 index XXXXXXX..XXXXXXX --- /dev/null +++ b/Silicon/Sophgo/SG2042Pkg/SG2042Pkg.dec @@ -XXX,XX +XXX,XX @@ +## @file SG2042Pkg.dec +# This Package provides modules and libraries.for Sophgo SG2042 platform. +# +# Copyright (c) 2023, Academy of Intelligent Innovation, Shandong Universiy, China.P.R. All rights reserved.<BR> +# +# SPDX-License-Identifier: BSD-2-Clause-Patent +# +## + +[Defines] + DEC_SPECIFICATION = 0x0001001b + PACKAGE_NAME = SG2042Pkg + PACKAGE_UNI_FILE = SG2042Pkg.uni + PACKAGE_GUID = A10E7DF0-B8AB-4DD0-B383-46358139D313 + PACKAGE_VERSION = 1.0 + +[Includes] + Include + +[Protocols] + gSophgoMmcHostProtocolGuid = { 0x3E591C00, 0x9E4A, 0x11DF, {0x92, 0x44, 0x00, 0x02, 0xA5, 0xF5, 0xF5, 0x1B } } + +[Guids] + gSophgoSG2042PlatformPkgTokenSpaceGuid = {0x779E9346, 0x3C24, 0x478C, { 0xB1, 0x60, 0xB6, 0x09, 0xFC, 0xED, 0xA0, 0x72 }} + +[PcdsFixedAtBuild] + gSophgoSG2042PlatformPkgTokenSpaceGuid.PcdSG2042SDIOBase|0x0|UINT64|0x00001001 + gSophgoSG2042PlatformPkgTokenSpaceGuid.PcdForceNoMMU|0x0|BOOLEAN|0x1002 + gEfiMdeModulePkgTokenSpaceGuid.PcdSerialRegisterBase|0x0|UINT64|0x00001004 + gEfiMdePkgTokenSpaceGuid.PcdUartDefaultBaudRate|0x0|UINT64|0x00001005 + gHisiTokenSpaceGuid.PcdSerialPortSendDelay|0x0|UINT32|0x00001006 + gHisiTokenSpaceGuid.PcdUartClkInHz|0x0|UINT32|0x00001007 + +[UserExtensions.TianoCore."ExtraFiles"] + SG2042PkgExtra.uni diff --git a/Silicon/Sophgo/SG2042Pkg/SG2042Pkg.uni b/Silicon/Sophgo/SG2042Pkg/SG2042Pkg.uni new file mode 100644 index XXXXXXX..XXXXXXX --- /dev/null +++ b/Silicon/Sophgo/SG2042Pkg/SG2042Pkg.uni @@ -XXX,XX +XXX,XX @@ +// /** @file +// Sophgo SG2042 Package Localized Strings and Content. +// +// Copyright (c) 2023, Academy of Intelligent Innovation, Shandong Universiy, China.P.R. All rights reserved.<BR> +// +// SPDX-License-Identifier: BSD-2-Clause-Patent +// +// **/ + + +#string STR_PACKAGE_ABSTRACT #language en-US "Provides Sophgo RISC-V SG2042 platform modules and libraries" + +#string STR_PACKAGE_DESCRIPTION #language en-US "This Package Sophgo RISC-V SG2042 platform modules and libraries." diff --git a/Silicon/Sophgo/SG2042Pkg/SG2042PkgExtra.uni b/Silicon/Sophgo/SG2042Pkg/SG2042PkgExtra.uni new file mode 100644 index XXXXXXX..XXXXXXX --- /dev/null +++ b/Silicon/Sophgo/SG2042Pkg/SG2042PkgExtra.uni @@ -XXX,XX +XXX,XX @@ +// /** @file +// SiFive U5 Series Package Localized Strings and Content. +// +// Copyright (c) 2019, Hewlett Packard Enterprise Development LP. All rights reserved.<BR> +// +// SPDX-License-Identifier: BSD-2-Clause-Patent +// +// **/ + +#string STR_PROPERTIES_PACKAGE_NAME +#language en-US +"SG2042 platform package" -- 2.34.1 -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#108383): https://edk2.groups.io/g/devel/message/108383 Mute This Topic: https://groups.io/mt/101213496/1787277 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org] -=-=-=-=-=-=-=-=-=-=-=-
From: caiyuqing379 <202235273@mail.sdu.edu.cn> Add a readme file which provides information regarding how to build and test EDK2 on Sophgo SG2042 platform. And add a about file which provides the details of Sophgo SG2042 EVB Board and SG2042 EDK2 design and the boot process. Signed-off-by: caiyuqing379 <202235273@mail.sdu.edu.cn> Co-authored-by: USER0FISH <libing1202@outlook.com> Cc: dahogn <dahogn@hotmail.com> Cc: meng-cz <mengcz1126@gmail.com> Cc: yli147 <yong.li@intel.com> Cc: ChaiEvan <evan.chai@intel.com> Cc: Sunil V L <sunilvl@ventanamicro.com> Cc: Leif Lindholm <quic_llindhol@quicinc.com> --- Platform/Sophgo/About_Sophgo_platform.md | 39 +++++++ .../Documents/Media/EDK2_SDU_Programme.png | Bin 0 -> 59830 bytes .../Sophgo/Documents/Media/SG2042_CPU.png | Bin 0 -> 806062 bytes .../Documents/Media/Sophgo_SG2042_EVB.png | Bin 0 -> 1445528 bytes Platform/Sophgo/Maintainers.md | 107 ++++++++++++++++++ Platform/Sophgo/SG2042_EVB_Board/Readme.md | 100 ++++++++++++++++ 6 files changed, 246 insertions(+) create mode 100644 Platform/Sophgo/About_Sophgo_platform.md create mode 100644 Platform/Sophgo/Documents/Media/EDK2_SDU_Programme.png create mode 100644 Platform/Sophgo/Documents/Media/SG2042_CPU.png create mode 100644 Platform/Sophgo/Documents/Media/Sophgo_SG2042_EVB.png create mode 100644 Platform/Sophgo/Maintainers.md create mode 100644 Platform/Sophgo/SG2042_EVB_Board/Readme.md diff --git a/Platform/Sophgo/About_Sophgo_platform.md b/Platform/Sophgo/About_Sophgo_platform.md new file mode 100644 index XXXXXXX..XXXXXXX --- /dev/null +++ b/Platform/Sophgo/About_Sophgo_platform.md @@ -XXX,XX +XXX,XX @@ +# Sophogo SG2042 EDK2 RISC-V Platform Project +## Sophgo SG2042 Platform +The development work for this project was carried out around the Sophgo SG2042 EVB development board. +The deployment of EDK2 was completed on the EVB test version. Below is the external appearance display of the EVB version. +![image](Documents/Media/Sophgo_SG2042_EVB.png) + +SG2042 is a server processor based on the RISC-V architecture.It has 64 RISC-V cores and supports up to 2-way SG2042 interconnectivity. +Each SG2042 CPU can be configured with a maximum of 4 DIMM memory slots (RDIMM & UDIMM), supporting a maximum memory capacity of 256GB. It also supports a maximum of 32 PCIe 4.0 channels. +![image](Documents/Media/SG2042_CPU.png) + +## SG2042 EDK2 RISC-V Design and the Boot Processes +The SG2042 RISC-V EDK2 project is developed based on the original Sophgo SG2042 project.SG2042 RISC-V edk2 is designed and optimized based on the edk2 startup phase. The startup process can be roughly divided into the following stages:**ZSBL+FSBL+OpenSBI+EDK2+GRUB2+OS**.The design diagram and start-up process are shown in the figure below. + +**SG2042 RISC-V EDK2 startup flowchart** +![image](Documents/Media/EDK2_SDU_Programme.png) + +**ZSBL Phase** +ZSBL is the first stage of chip initialization, Code provided by Sophgo.the main work is to initialize DDR. +**FSBL Phase** +**Note:** The FSBL here corresponds to the ZSBL stage code provided by Sophgo. +The ZSBL stage works for the following: +1. Initialize the serial port of the ZSBL stage for DEBUG. +2. Establish a memory mapping table for initializing and configuring the memory management of the operating system or firmware. +3. Initialization of some CPU functions. + +**OpenSBI Phase** +OpenSBI provides the conditions for platform initialization of SG2042, which runs as an independent firmware and an environment of an initialization link before edk2, which exists in the form of FW_PAYLOAD, which initializes the system in M-mode and initializes some functions of SG2042 , and put the subsequent edk2 operating environment in S-mode. +**PrePI Phase** +The PrePI phase builds some HOBs on Memory, CPU, FV, Stack and processor smbios information, eventually loading the DXE Core and transferring control. +**DXE Phase** +edk2 DXE OpenSBI protocol provides the unified interface for all DXE drivers to invoke SBI services,the DXE stage mainly adds the SG2042 SD card reading driver to read the contents of the SD card. +**BDS Phase** +The BDS stage runs under S-mode,The implementation of the RISC-V edk2 port in the BDS stage is executed with the PcdDxeCorePrivilegeMode PCD configuration permission, because OpenSBI converts the mode to S-mode, when BDS hands over the power to the operating system, it must be S-mode, avoiding another mode switch. +**TSL Phase** +The work at this stage is mainly to use edk2 Shell to boot and start the GRUB2 program code in the SD card, and use GRUB to load different OS operating systems in the partition. +**RT Phase** +No work done. +**AL Phase** +No work done. diff --git a/Platform/Sophgo/Documents/Media/EDK2_SDU_Programme.png b/Platform/Sophgo/Documents/Media/EDK2_SDU_Programme.png new file mode 100644 index XXXXXXX..XXXXXXX GIT binary patch literal 59830 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 V%ysm73WB=|a<^r3Z`^zO{{evwdszSg literal 0 HcmV?d00001 diff --git a/Platform/Sophgo/Documents/Media/SG2042_CPU.png b/Platform/Sophgo/Documents/Media/SG2042_CPU.png new file mode 100644 index XXXXXXX..XXXXXXX GIT binary patch literal 806062 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�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%0A+RmHFR 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¥V%4<F;=NXKPq# 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