From mboxrd@z Thu Jan 1 00:00:00 1970 Authentication-Results: mx.groups.io; dkim=missing; spf=pass (domain: intel.com, ip: 192.55.52.151, mailfrom: mateusz.albecki@intel.com) Received: from mga17.intel.com (mga17.intel.com [192.55.52.151]) by groups.io with SMTP; Thu, 13 Jun 2019 06:56:41 -0700 X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga007.fm.intel.com ([10.253.24.52]) by fmsmga107.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 13 Jun 2019 06:56:40 -0700 X-ExtLoop1: 1 Received: from irsmsx104.ger.corp.intel.com ([163.33.3.159]) by fmsmga007.fm.intel.com with ESMTP; 13 Jun 2019 06:56:40 -0700 Received: from irsmsx102.ger.corp.intel.com ([169.254.2.238]) by IRSMSX104.ger.corp.intel.com ([169.254.5.227]) with mapi id 14.03.0415.000; Thu, 13 Jun 2019 14:56:39 +0100 From: "Albecki, Mateusz" To: "devel@edk2.groups.io" CC: "Wu, Hao A" Subject: Re: [PATCH 1/2] MdeModulePkg/SdMmcOverride: Add GetOperatingParam notify phase Thread-Topic: [PATCH 1/2] MdeModulePkg/SdMmcOverride: Add GetOperatingParam notify phase Thread-Index: AQHVGgBR5ij+GBPLDkqAlFaJn4wvqqaUMZ6AgAV53dA= Date: Thu, 13 Jun 2019 13:56:38 +0000 Message-ID: <92CF190FF2351747A47C1708F0E09C0875E512E1@IRSMSX102.ger.corp.intel.com> References: <20190603113346.1288-1-mateusz.albecki@intel.com> <20190603113346.1288-2-mateusz.albecki@intel.com> In-Reply-To: Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ctpclassification: CTP_NT x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiYzUyOTM1YzgtOWU4Ni00NTFiLThjNjEtNjQ1MzM2YTkyYjUwIiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX05UIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE3LjEwLjE4MDQuNDkiLCJUcnVzdGVkTGFiZWxIYXNoIjoiMEFhb2FLNnRyMHkrWkw5dFBiRUVwNnZFbG05THkxc1BLV3NRbWpVNmpVOHVXZVVSQk5CcElzSVVqUnA1aHpNOSJ9 dlp-product: dlpe-windows dlp-version: 11.0.600.7 dlp-reaction: no-action x-originating-ip: [163.33.239.180] MIME-Version: 1.0 Content-Language: en-US Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Resending to group. > -----Original Message----- > From: Wu, Hao A > Sent: Monday, June 10, 2019 5:19 AM > To: Albecki, Mateusz > Subject: RE: [PATCH 1/2] MdeModulePkg/SdMmcOverride: Add > GetOperatingParam notify phase > = > Thanks Mateusz, > = > Please refer to the comments in patch 2/2 for the reorder in definition > 'SD_MMC_BUS_MODE'. > = > Also, some inline comments below: > = > Best Regards, > Hao Wu > = > = > > -----Original Message----- > > From: Albecki, Mateusz > > Sent: Monday, June 03, 2019 7:34 PM > > Cc: Albecki, Mateusz; Wu, Hao A; Albecki > > Subject: [PATCH 1/2] MdeModulePkg/SdMmcOverride: Add > GetOperatingParam > > notify phase > > > > The new notify phase allows platform to configure additional bus > > parameters in addition to parameters that can already be configured > > with capability override. Specifically we allow to configure bus > > width, clock frequency and driver strength. If platform doesn't wish > > to configure some of the parameters it can left it on default values > > and driver will assume it's standard behavior with respect to those > parameters. > > The definition of the SD_MMC_BUS_MODE has been extended to > incorporate > > SD card default speed and high speed. > > > > Cc: hao.a.wu@intel.com > > Signed-off-by: Albecki, Mateusz > > Contributed-under: TianoCore Contribution Agreement 1.1 > > --- > > MdeModulePkg/Include/Protocol/SdMmcOverride.h | 58 > > ++++++++++++++++++++++++--- > > 1 file changed, 52 insertions(+), 6 deletions(-) > > > > diff --git a/MdeModulePkg/Include/Protocol/SdMmcOverride.h > > b/MdeModulePkg/Include/Protocol/SdMmcOverride.h > > index 9c8bf37efd..bb9545c80c 100644 > > --- a/MdeModulePkg/Include/Protocol/SdMmcOverride.h > > +++ b/MdeModulePkg/Include/Protocol/SdMmcOverride.h > > @@ -16,14 +16,61 @@ > > #define EDKII_SD_MMC_OVERRIDE_PROTOCOL_GUID \ > > { 0xeaf9e3c1, 0xc9cd, 0x46db, { 0xa5, 0xe5, 0x5a, 0x12, 0x4c, 0x83, > > 0x23, > > 0x23 } } > > > > -#define EDKII_SD_MMC_OVERRIDE_PROTOCOL_VERSION 0x2 > > +#define EDKII_SD_MMC_OVERRIDE_PROTOCOL_VERSION 0x3 > > > > typedef struct _EDKII_SD_MMC_OVERRIDE EDKII_SD_MMC_OVERRIDE; > > > > -// > > -// Bus timing modes > > -// > > +#define EDKII_SD_MMC_BUS_WIDTH_IGNORE MAX_UINT16 #define > > +EDKII_SD_MMC_CLOCK_FREQ_IGNORE MAX_UINT32 #define > > +EDKII_SD_MMC_DRIVER_STRENGTH_IGNORE MAX_UINT8 > > + > > +typedef enum { > > + SdDriverStrengthTypeB =3D 0, > > + SdDriverStrengthTypeA, > > + SdDriverStrengthTypeC, > > + SdDriverStrengthTypeD, > > + SdDriverStrengthIgnore =3D EDKII_SD_MMC_DRIVER_STRENGTH_IGNORE > > +} SD_DRIVER_STRENGTH_TYPE; > > + > > typedef enum { > > + EmmcDriverStrengthType0 =3D 0, > > + EmmcDriverStrengthType1, > > + EmmcDriverStrengthType2, > > + EmmcDriverStrengthType3, > > + EmmcDriverStrengthType4, > > + EmmcDriverStrengthIgnore =3D > > EDKII_SD_MMC_DRIVER_STRENGTH_IGNORE > > +} EMMC_DRIVER_STRENGTH_TYPE; > > + > > +typedef union { > > + SD_DRIVER_STRENGTH_TYPE Sd; > > + EMMC_DRIVER_STRENGTH_TYPE Emmc; > > +} EDKII_SD_MMC_DRIVER_STRENGTH; > > + > > +typedef struct { > > + // > > + // The target width of the bus. If user tells driver to ignore it > > + // or specifies unsuportted width driver will choose highest > > +supported > = > = > unsuportted -> unsupported > = > = > > + // bus width for a given mode. > > + // > > + UINT16 BusWidth; > = > = > After seeing some type changes (from UINT8 to UINT16) for some variables > in the 2nd patch, I realize that the 'BusWidth' type should be UINT8 here= and > the 'EDKII_SD_MMC_BUS_WIDTH_IGNORE' definition should be > MAX_UINT8. > = > I am really sorry for the typo I made in the foil sent to you. > = > = > > + // > > + // The target clock frequency of the bus in MHz. If user tells > > + driver to > > ignore > > + // it or specifies unsupported frequency driver will choose highest > > supported > > + // clock frequency for a given mode. > > + // > > + UINT32 ClockFreq; > > + // > > + // The target driver strength of the bus. If user tells driver to > > + // ignore it or specifies unsupported driver strength, driver will > > + // default to Type0 for eMMC cards and TypeB for SD cards. Driver > > strength > > + // setting is only considered if choosen bus timing supports them. > = > = > choosen -> chosen > = > Best Regards, > Hao Wu > = > = > > + // > > + EDKII_SD_MMC_DRIVER_STRENGTH DriverStrength; } > > +EDKII_SD_MMC_OPERATING_PARAMETERS; > > + > > +typedef enum { > > + SdMmcSdDs, > > + SdMmcSdHs, > > SdMmcUhsSdr12, > > SdMmcUhsSdr25, > > SdMmcUhsSdr50, > > @@ -43,10 +90,10 @@ typedef enum { > > EdkiiSdMmcInitHostPost, > > EdkiiSdMmcUhsSignaling, > > EdkiiSdMmcSwitchClockFreqPost, > > + EdkiiSdMmcGetOperatingParam > > } EDKII_SD_MMC_PHASE_TYPE; > > > > /** > > - > > Override function for SDHCI capability bits > > > > @param[in] ControllerHandle The EFI_HANDLE of the controll= er. > > @@ -70,7 +117,6 @@ EFI_STATUS > > ); > > > > /** > > - > > Override function for SDHCI controller operations > > > > @param[in] ControllerHandle The EFI_HANDLE of the controll= er. > > -- > > 2.14.1.windows.1 -------------------------------------------------------------------- Intel Technology Poland sp. z o.o. ul. Slowackiego 173 | 80-298 Gdansk | Sad Rejonowy Gdansk Polnoc | VII Wydz= ial Gospodarczy Krajowego Rejestru Sadowego - KRS 101882 | NIP 957-07-52-31= 6 | Kapital zakladowy 200.000 PLN. Ta wiadomosc wraz z zalacznikami jest przeznaczona dla okreslonego adresata= i moze zawierac informacje poufne. W razie przypadkowego otrzymania tej wi= adomosci, prosimy o powiadomienie nadawcy oraz trwale jej usuniecie; jakiek= olwiek przegladanie lub rozpowszechnianie jest zabronione. This e-mail and any attachments may contain confidential material for the s= ole use of the intended recipient(s). If you are not the intended recipient= , please contact the sender and delete all copies; any review or distributi= on by others is strictly prohibited.