From mboxrd@z Thu Jan 1 00:00:00 1970 Authentication-Results: mx.groups.io; dkim=pass header.i=@redhat.com header.s=mimecast20190719 header.b=I0QsWh64; spf=pass (domain: redhat.com, ip: 205.139.110.61, mailfrom: philmd@redhat.com) Received: from us-smtp-delivery-1.mimecast.com (us-smtp-delivery-1.mimecast.com [205.139.110.61]) by groups.io with SMTP; Fri, 27 Sep 2019 09:38:15 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1569602294; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:openpgp:openpgp; bh=mOCtsnVm2fjJo2+/iE+t38IhhNq9vJVpIS6xmR1aQmU=; b=I0QsWh64hIXAuK74W30IQF17nmLEWYn9bHwo42dqsa5GEEYe1Y4shjmf96pwFTji1sc2jX GrPvf3n4kGFkRFnc7lJLYfSPfYLLydSqn3nHSG5LyO7XwoteZWYFRGPgaZp47BIVjLePaR p8hRxsDXG/izB1e0Efx5t5Yd2py0VGY= Received: from mail-wr1-f70.google.com (mail-wr1-f70.google.com [209.85.221.70]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-322-5C-1XRugMUeAVDyvRmRT2w-1; Fri, 27 Sep 2019 12:38:12 -0400 Received: by mail-wr1-f70.google.com with SMTP id 32so1362957wrk.15 for ; Fri, 27 Sep 2019 09:38:11 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:cc:references:from:openpgp:message-id :date:user-agent:mime-version:in-reply-to:content-language :content-transfer-encoding; bh=3iNIoYcpzPITb84FnEo5jUnP5m/ZSvGMkweBbWxMCCk=; b=Tl5a94JKGW+JTYMCiC/qi9ExjdhXFho0hUAt9DVKTx7Vqc9f7ZXpAk9I45LTY1r0kL Qo1dfQlOg17w7QnZ0U2sXn1B1k2IWyW8VcGL9xuUqqVpMj5yChcld7IxCJcHmKLrBl6a W0f1shHUrFQ1o6ADU9/ZrJFs2I7a+pSeic3Ld3kO+wH5pzYvnQjigX37pn6A/gn7rAPa BFTans2Ti/lUa+icazDO6N9g2VzCpzkl0/CcYo63iSVkPvSJYEzj3Vqi+7wSQ+c8I4pv VOVeFO0yZNlPi98k4rWcD5Un9NsV7h1PtkzTF9vIff+28giVkpiVTC2uMqv27EuIgwX7 qarA== X-Gm-Message-State: APjAAAVCAqWiIf6FF/X8zqra9X+ORFs90bQ8sPaI/IYCD8jeW9F74dd8 eHTjjDYX2rkAw2LQGS04R4HPV0fm7kiHr0fWlXoNtc3EHrk7aPH6OpLRYy/VtGj3kbUQ9ZgLTzo F/zdJU8+yCmFUFQ== X-Received: by 2002:a1c:9988:: with SMTP id b130mr8305214wme.164.1569602290642; Fri, 27 Sep 2019 09:38:10 -0700 (PDT) X-Google-Smtp-Source: APXvYqxstfsRTiuG9FoeFlOJVssbykdxORxPLVYkqixQbidOy+ph/spiq3vCGlb3k3o+CX53YewAiw== X-Received: by 2002:a1c:9988:: with SMTP id b130mr8305199wme.164.1569602290284; Fri, 27 Sep 2019 09:38:10 -0700 (PDT) Return-Path: Received: from [192.168.1.35] (240.red-88-21-68.staticip.rima-tde.net. [88.21.68.240]) by smtp.gmail.com with ESMTPSA id b184sm7061167wmg.47.2019.09.27.09.38.08 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Fri, 27 Sep 2019 09:38:09 -0700 (PDT) Subject: Re: [edk2-devel] [edk2-platforms PATCH 1/1] Platforms/RPi3: DisplayDxe virtual resolution improvements To: devel@edk2.groups.io, pete@akeo.ie Cc: ard.biesheuvel@linaro.org, leif.lindholm@linaro.org References: <20190927092016.5604-1-pete@akeo.ie> From: =?UTF-8?B?UGhpbGlwcGUgTWF0aGlldS1EYXVkw6k=?= Openpgp: id=89C1E78F601EE86C867495CBA2A3FD6EDEADC0DE; url=http://pgp.mit.edu/pks/lookup?op=get&search=0xA2A3FD6EDEADC0DE Message-ID: Date: Fri, 27 Sep 2019 18:38:07 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.7.0 MIME-Version: 1.0 In-Reply-To: <20190927092016.5604-1-pete@akeo.ie> X-MC-Unique: 5C-1XRugMUeAVDyvRmRT2w-1 X-Mimecast-Spam-Score: 0 Content-Language: en-US Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Hi Pete, On 9/27/19 11:20 AM, Pete Batard wrote: > From: Andrei Warkentin >=20 > The Pi GPU decouples requested resolution from actual physical resolution > and can perform scaling of virtual resolutions. This enables platform use= rs > to do something like ask for 1024x768 and get a framebuffer of that size, > regardless of the actual output (which could be a very blurry SDTV). >=20 > Specifically, this patch allows selecting which specific virtual > resolutions to enable, thus replacing the old all-or-nothing behaviour > with either all virtual resolutions supported, or just the native one. >=20 > This patch also adds enables the common 7" Pi (800x480) screen to be used > at 800x600 resolution, instead of forcing 640x480 as the only usable > resolution. I tried to build the RPi3 platform but I get errors because it seems to use an older edk2 repository. What tag should I use? >=20 > Signed-off-by: Pete Batard Hmm shouldn't this patch have a S-o-b from Andrei Warkentin too? Thanks, Phil. > --- > Platform/RaspberryPi/RPi3/Drivers/ConfigDxe/ConfigDxe.c | 9 +-- > Platform/RaspberryPi/RPi3/Drivers/ConfigDxe/ConfigDxe.inf | 2 +- > Platform/RaspberryPi/RPi3/Drivers/ConfigDxe/ConfigDxeHii.uni | 17 +++-- > Platform/RaspberryPi/RPi3/Drivers/ConfigDxe/ConfigDxeHii.vfr | 71 ++++++= ++++++++++---- > Platform/RaspberryPi/RPi3/Drivers/DisplayDxe/DisplayDxe.c | 53 ++++++= +++++++-- > Platform/RaspberryPi/RPi3/Drivers/DisplayDxe/DisplayDxe.inf | 2 +- > Platform/RaspberryPi/RPi3/RPi3.dec | 2 +- > Platform/RaspberryPi/RPi3/RPi3.dsc | 2 +- > 8 files changed, 125 insertions(+), 33 deletions(-) >=20 > diff --git a/Platform/RaspberryPi/RPi3/Drivers/ConfigDxe/ConfigDxe.c b/Pl= atform/RaspberryPi/RPi3/Drivers/ConfigDxe/ConfigDxe.c > index fcb4ce6935b6..98e58a560ed4 100644 > --- a/Platform/RaspberryPi/RPi3/Drivers/ConfigDxe/ConfigDxe.c > +++ b/Platform/RaspberryPi/RPi3/Drivers/ConfigDxe/ConfigDxe.c > @@ -92,6 +92,7 @@ SetupVariables ( > ) > { > UINTN Size; > + UINT8 Var8; > UINT32 Var32; > EFI_STATUS Status; > =20 > @@ -180,12 +181,12 @@ SetupVariables ( > PcdSet32 (PcdDebugShowUEFIExit, PcdGet32 (PcdDebugShowUEFIExit)); > } > =20 > - Size =3D sizeof (UINT32); > - Status =3D gRT->GetVariable (L"DisplayEnableVModes", > + Size =3D sizeof (UINT8); > + Status =3D gRT->GetVariable (L"DisplayEnableScaledVModes", > &gConfigDxeFormSetGuid, > - NULL, &Size, &Var32); > + NULL, &Size, &Var8); > if (EFI_ERROR (Status)) { > - PcdSet32 (PcdDisplayEnableVModes, PcdGet32 (PcdDisplayEnableVModes))= ; > + PcdSet8 (PcdDisplayEnableScaledVModes, PcdGet8 (PcdDisplayEnableScal= edVModes)); > } > =20 > Size =3D sizeof (UINT32); > diff --git a/Platform/RaspberryPi/RPi3/Drivers/ConfigDxe/ConfigDxe.inf b/= Platform/RaspberryPi/RPi3/Drivers/ConfigDxe/ConfigDxe.inf > index 2fc4302526a1..24112d517467 100644 > --- a/Platform/RaspberryPi/RPi3/Drivers/ConfigDxe/ConfigDxe.inf > +++ b/Platform/RaspberryPi/RPi3/Drivers/ConfigDxe/ConfigDxe.inf > @@ -64,7 +64,7 @@ [Pcd] > gRaspberryPiTokenSpaceGuid.PcdMmcDisableMulti > gRaspberryPiTokenSpaceGuid.PcdDebugEnableJTAG > gRaspberryPiTokenSpaceGuid.PcdDebugShowUEFIExit > - gRaspberryPiTokenSpaceGuid.PcdDisplayEnableVModes > + gRaspberryPiTokenSpaceGuid.PcdDisplayEnableScaledVModes > gRaspberryPiTokenSpaceGuid.PcdDisplayEnableSShot > =20 > [FeaturePcd] > diff --git a/Platform/RaspberryPi/RPi3/Drivers/ConfigDxe/ConfigDxeHii.uni= b/Platform/RaspberryPi/RPi3/Drivers/ConfigDxe/ConfigDxeHii.uni > index 65b45f3e6496..9b4076635f05 100644 > --- a/Platform/RaspberryPi/RPi3/Drivers/ConfigDxe/ConfigDxeHii.uni > +++ b/Platform/RaspberryPi/RPi3/Drivers/ConfigDxe/ConfigDxeHii.uni > @@ -71,10 +71,19 @@ > #string STR_DISPLAY_FORM_TITLE #language en-US "Display" > #string STR_DISPLAY_FORM_SUBTITLE #language en-US "UEFI video driver s= ettings" > =20 > -#string STR_DISPLAY_VMODES_PROMPT #language en-US "Resolutions" > -#string STR_DISPLAY_VMODES_HELP #language en-US "Support for non-nat= ive modes" > -#string STR_DISPLAY_VMODES_ENABLE #language en-US "Also support 640x48= 0, 800x600, 1024x768, 720p and 1080p" > -#string STR_DISPLAY_VMODES_DISABLE #language en-US "Only native resolut= ion" > +#string STR_DISPLAY_VMODES_640_PROMPT #language en-US "Virtual 640x480" > +#string STR_DISPLAY_VMODES_640_HELP #language en-US "Enable scaled 64= 0x480 mode" > +#string STR_DISPLAY_VMODES_800_PROMPT #language en-US "Virtual 800x600" > +#string STR_DISPLAY_VMODES_800_HELP #language en-US "Enable scaled 80= 0x600 mode" > +#string STR_DISPLAY_VMODES_1024_PROMPT #language en-US "Virtual 1024x768= " > +#string STR_DISPLAY_VMODES_1024_HELP #language en-US "Enable scaled 10= 24x768 mode" > +#string STR_DISPLAY_VMODES_720_PROMPT #language en-US "Virtual 720p" > +#string STR_DISPLAY_VMODES_720_HELP #language en-US "Enable scaled 72= 0p mode" > +#string STR_DISPLAY_VMODES_1080_PROMPT #language en-US "Virtual 1080p" > +#string STR_DISPLAY_VMODES_1080_HELP #language en-US "Enable scaled 10= 80p mode" > + > +#string STR_DISPLAY_VMODES_REAL_PROMPT #language en-US "Native resolutio= n" > +#string STR_DISPLAY_VMODES_REAL_HELP #language en-US "Native resolutio= n" > =20 > #string STR_DISPLAY_SSHOT_PROMPT #language en-US "Screenshot Support" > #string STR_DISPLAY_SSHOT_HELP #language en-US "Save screen capture= as a BMP on the first writable file system found" > diff --git a/Platform/RaspberryPi/RPi3/Drivers/ConfigDxe/ConfigDxeHii.vfr= b/Platform/RaspberryPi/RPi3/Drivers/ConfigDxe/ConfigDxeHii.vfr > index 217a285b5a1f..60bfdbd4d17e 100644 > --- a/Platform/RaspberryPi/RPi3/Drivers/ConfigDxe/ConfigDxeHii.vfr > +++ b/Platform/RaspberryPi/RPi3/Drivers/ConfigDxe/ConfigDxeHii.vfr > @@ -9,14 +9,23 @@ > #include > #include "ConfigDxeFormSetGuid.h" > =20 > +#pragma pack(1) > typedef struct { > /* > - * 0 - One mode for the boot resolution. > - * 1 - Adds additional "typical" resolutions like > - * 640x480, 800x600, 1024 x 768, 720p and 1080p. > + * One bit for each scaled resolution supported, > + * these are ordered exactly like mGopModeData > + * in DisplayDxe. > + * > + * 800x600, 640x480, 1024x768, 720p, 1080p, native. > */ > - UINT32 Enable; > -} DISPLAY_ENABLE_VMODES_VARSTORE_DATA; > + UINT8 v640 : 1; > + UINT8 v800 : 1; > + UINT8 v1024 : 1; > + UINT8 v720p : 1; > + UINT8 v1080p : 1; > + UINT8 Physical : 1; > +} DISPLAY_ENABLE_SCALED_VMODES_VARSTORE_DATA; > +#pragma pack() > =20 > typedef struct { > /* > @@ -166,9 +175,9 @@ formset > name =3D DebugShowUEFIExit, > guid =3D CONFIGDXE_FORM_SET_GUID; > =20 > - efivarstore DISPLAY_ENABLE_VMODES_VARSTORE_DATA, > + efivarstore DISPLAY_ENABLE_SCALED_VMODES_VARSTORE_DATA, > attribute =3D EFI_VARIABLE_BOOTSERVICE_ACCESS | EFI_VARIABLE_RUNTI= ME_ACCESS | EFI_VARIABLE_NON_VOLATILE, > - name =3D DisplayEnableVModes, > + name =3D DisplayEnableScaledVModes, > guid =3D CONFIGDXE_FORM_SET_GUID; > =20 > efivarstore DISPLAY_ENABLE_SSHOT_VARSTORE_DATA, > @@ -282,13 +291,47 @@ formset > title =3D STRING_TOKEN(STR_DISPLAY_FORM_TITLE); > subtitle text =3D STRING_TOKEN(STR_DISPLAY_FORM_SUBTITLE); > =20 > - oneof varid =3D DisplayEnableVModes.Enable, > - prompt =3D STRING_TOKEN(STR_DISPLAY_VMODES_PROMPT), > - help =3D STRING_TOKEN(STR_DISPLAY_VMODES_HELP), > - flags =3D NUMERIC_SIZE_4 | INTERACTIVE | RESET_REQUIRE= D, > - option text =3D STRING_TOKEN(STR_DISPLAY_VMODES_ENABLE), val= ue =3D 1, flags =3D DEFAULT; > - option text =3D STRING_TOKEN(STR_DISPLAY_VMODES_DISABLE), va= lue =3D 0, flags =3D 0; > - endoneof; > + checkbox varid =3D DisplayEnableScaledVModes.v640, > + prompt =3D STRING_TOKEN(STR_DISPLAY_VMODES_640_PROMPT), > + help =3D STRING_TOKEN(STR_DISPLAY_VMODES_640_HELP), > + flags =3D CHECKBOX_DEFAULT | CHECKBOX_DEFAULT_MFG | RE= SET_REQUIRED, > + default =3D TRUE, > + endcheckbox; > + > + checkbox varid =3D DisplayEnableScaledVModes.v800, > + prompt =3D STRING_TOKEN(STR_DISPLAY_VMODES_800_PROMPT), > + help =3D STRING_TOKEN(STR_DISPLAY_VMODES_800_HELP), > + flags =3D CHECKBOX_DEFAULT | CHECKBOX_DEFAULT_MFG | RE= SET_REQUIRED, > + default =3D TRUE, > + endcheckbox; > + > + checkbox varid =3D DisplayEnableScaledVModes.v1024, > + prompt =3D STRING_TOKEN(STR_DISPLAY_VMODES_1024_PROMPT)= , > + help =3D STRING_TOKEN(STR_DISPLAY_VMODES_1024_HELP), > + flags =3D CHECKBOX_DEFAULT | CHECKBOX_DEFAULT_MFG | RE= SET_REQUIRED, > + default =3D TRUE, > + endcheckbox; > + > + checkbox varid =3D DisplayEnableScaledVModes.v720p, > + prompt =3D STRING_TOKEN(STR_DISPLAY_VMODES_720_PROMPT), > + help =3D STRING_TOKEN(STR_DISPLAY_VMODES_720_HELP), > + flags =3D CHECKBOX_DEFAULT | CHECKBOX_DEFAULT_MFG | RE= SET_REQUIRED, > + default =3D TRUE, > + endcheckbox; > + > + checkbox varid =3D DisplayEnableScaledVModes.v1080p, > + prompt =3D STRING_TOKEN(STR_DISPLAY_VMODES_1080_PROMPT)= , > + help =3D STRING_TOKEN(STR_DISPLAY_VMODES_1080_HELP), > + flags =3D CHECKBOX_DEFAULT | CHECKBOX_DEFAULT_MFG | RE= SET_REQUIRED, > + default =3D TRUE, > + endcheckbox; > + > + checkbox varid =3D DisplayEnableScaledVModes.Physical, > + prompt =3D STRING_TOKEN(STR_DISPLAY_VMODES_REAL_PROMPT)= , > + help =3D STRING_TOKEN(STR_DISPLAY_VMODES_REAL_HELP), > + flags =3D CHECKBOX_DEFAULT | CHECKBOX_DEFAULT_MFG | RE= SET_REQUIRED, > + default =3D TRUE, > + endcheckbox; > =20 > oneof varid =3D DisplayEnableSShot.Enable, > prompt =3D STRING_TOKEN(STR_DISPLAY_SSHOT_PROMPT), > diff --git a/Platform/RaspberryPi/RPi3/Drivers/DisplayDxe/DisplayDxe.c b/= Platform/RaspberryPi/RPi3/Drivers/DisplayDxe/DisplayDxe.c > index 9475a5ad670c..b880ca827bd6 100644 > --- a/Platform/RaspberryPi/RPi3/Drivers/DisplayDxe/DisplayDxe.c > +++ b/Platform/RaspberryPi/RPi3/Drivers/DisplayDxe/DisplayDxe.c > @@ -10,6 +10,14 @@ > #include > #include "DisplayDxe.h" > =20 > +#define MODE_800_ENABLED BIT0 > +#define MODE_640_ENABLED BIT1 > +#define MODE_1024_ENABLED BIT2 > +#define MODE_720P_ENABLED BIT3 > +#define MODE_1080P_ENABLED BIT4 > +#define MODE_NATIVE_ENABLED BIT5 > +#define JUST_NATIVE_ENABLED MODE_NATIVE_ENABLED > +#define ALL_MODES (BIT6 - 1) > #define POS_TO_FB(posX, posY) ((UINT8*) = \ > ((UINTN)This->Mode->FrameBufferBase + = \ > (posY) * This->Mode->Info->PixelsPerScan= Line * \ > @@ -104,7 +112,7 @@ STATIC RASPBERRY_PI_FIRMWARE_PROTOCOL *mFwProtocol; > STATIC EFI_CPU_ARCH_PROTOCOL *mCpu; > =20 > STATIC UINTN mLastMode; > -STATIC GOP_MODE_DATA mGopModeData[] =3D { > +STATIC GOP_MODE_DATA mGopModeTemplate[] =3D { > { 800, 600 }, /* Legacy */ > { 640, 480 }, /* Legacy */ > { 1024, 768 }, /* Legacy */ > @@ -113,6 +121,9 @@ STATIC GOP_MODE_DATA mGopModeData[] =3D { > { 0, 0 }, /* Physical */ > }; > =20 > +STATIC UINTN mLastMode; > +STATIC GOP_MODE_DATA mGopModeData[ARRAY_SIZE (mGopModeTemplate)]; > + > STATIC DISPLAY_DEVICE_PATH mDisplayProtoDevicePath =3D > { > { > @@ -446,6 +457,7 @@ DriverStart ( > ) > { > UINTN Index; > + UINTN TempIndex; > EFI_STATUS Status; > VOID *Dummy; > =20 > @@ -473,11 +485,29 @@ DriverStart ( > goto Done; > } > =20 > + PcdSet8 (PcdDisplayEnableScaledVModes, > + PcdGet8 (PcdDisplayEnableScaledVModes) & ALL_MODES); > =20 > - if (PcdGet32 (PcdDisplayEnableVModes)) { > - mLastMode =3D ARRAY_SIZE (mGopModeData) - 1; > - } else { > - mLastMode =3D 0; > + if (PcdGet8 (PcdDisplayEnableScaledVModes) =3D=3D 0) { > + PcdSet8 (PcdDisplayEnableScaledVModes, JUST_NATIVE_ENABLED); > + } > + > + mLastMode =3D 0; > + for (TempIndex =3D 0, Index =3D 0; > + TempIndex < ARRAY_SIZE (mGopModeTemplate); TempIndex++) { > + if ((PcdGet8 (PcdDisplayEnableScaledVModes) & (1 << TempIndex)) !=3D= 0) { > + DEBUG ((DEBUG_ERROR, "Mode %u: %u x %u present\n", > + TempIndex, mGopModeTemplate[TempIndex].Width, > + mGopModeTemplate[TempIndex].Height)); > + > + CopyMem (&mGopModeData[Index], &mGopModeTemplate[TempIndex], > + sizeof (GOP_MODE_DATA)); > + mLastMode =3D Index; > + Index++; > + } > + } > + > + if (PcdGet8 (PcdDisplayEnableScaledVModes) =3D=3D JUST_NATIVE_ENABLED)= { > /* > * mBootWidth x mBootHeight may not be sensible, > * so clean it up, since we won't be adding > @@ -486,11 +516,20 @@ DriverStart ( > if (mBootWidth < 640 || mBootHeight < 480) { > mBootWidth =3D 640; > mBootHeight =3D 480; > + } else if (mBootWidth =3D=3D 800 && mBootHeight =3D=3D 480) { > + /* The Pi 7" screen is close to 800x600, just pretend it is. */ > + mBootHeight =3D 600; > } > } > =20 > - mGopModeData[mLastMode].Width =3D mBootWidth; > - mGopModeData[mLastMode].Height =3D mBootHeight; > + if ((PcdGet8(PcdDisplayEnableScaledVModes) & MODE_NATIVE_ENABLED) !=3D= 0) { > + /* > + * Adjust actual native res only if native res is enabled > + * (so last mode is native res). > + */ > + mGopModeData[mLastMode].Width =3D mBootWidth; > + mGopModeData[mLastMode].Height =3D mBootHeight; > + } > =20 > for (Index =3D 0; Index <=3D mLastMode; Index++) { > UINTN FbSize; > diff --git a/Platform/RaspberryPi/RPi3/Drivers/DisplayDxe/DisplayDxe.inf = b/Platform/RaspberryPi/RPi3/Drivers/DisplayDxe/DisplayDxe.inf > index 11271045bdd9..31da2090b402 100644 > --- a/Platform/RaspberryPi/RPi3/Drivers/DisplayDxe/DisplayDxe.inf > +++ b/Platform/RaspberryPi/RPi3/Drivers/DisplayDxe/DisplayDxe.inf > @@ -57,7 +57,7 @@ [Protocols] > gRaspberryPiFirmwareProtocolGuid > =20 > [Pcd] > - gRaspberryPiTokenSpaceGuid.PcdDisplayEnableVModes > + gRaspberryPiTokenSpaceGuid.PcdDisplayEnableScaledVModes > gRaspberryPiTokenSpaceGuid.PcdDisplayEnableSShot > =20 > [Guids] > diff --git a/Platform/RaspberryPi/RPi3/RPi3.dec b/Platform/RaspberryPi/RP= i3/RPi3.dec > index d2a813417648..0554ee20bac5 100644 > --- a/Platform/RaspberryPi/RPi3/RPi3.dec > +++ b/Platform/RaspberryPi/RPi3/RPi3.dec > @@ -54,5 +54,5 @@ [PcdsFixedAtBuild, PcdsPatchableInModule, PcdsDynamic, = PcdsDynamicEx] > gRaspberryPiTokenSpaceGuid.PcdDebugEnableJTAG|0|UINT32|0x00000014 > gRaspberryPiTokenSpaceGuid.PcdDebugShowUEFIExit|0|UINT32|0x00000015 > gRaspberryPiTokenSpaceGuid.PcdCustomCpuClock|0|UINT32|0x00000016 > - gRaspberryPiTokenSpaceGuid.PcdDisplayEnableVModes|0|UINT32|0x00000017 > + gRaspberryPiTokenSpaceGuid.PcdDisplayEnableScaledVModes|0|UINT8|0x0000= 0017 > gRaspberryPiTokenSpaceGuid.PcdDisplayEnableSShot|0|UINT32|0x00000018 > diff --git a/Platform/RaspberryPi/RPi3/RPi3.dsc b/Platform/RaspberryPi/RP= i3/RPi3.dsc > index 2b9e619ad55c..b37a02e97da7 100644 > --- a/Platform/RaspberryPi/RPi3/RPi3.dsc > +++ b/Platform/RaspberryPi/RPi3/RPi3.dsc > @@ -416,7 +416,7 @@ [PcdsDynamicHii.common.DEFAULT] > # > # Display-related. > # > - gRaspberryPiTokenSpaceGuid.PcdDisplayEnableVModes|L"DisplayEnableVMode= s"|gConfigDxeFormSetGuid|0x0|0 > + gRaspberryPiTokenSpaceGuid.PcdDisplayEnableScaledVModes|L"DisplayEnabl= eScaledVModes"|gConfigDxeFormSetGuid|0x0|0xff > gRaspberryPiTokenSpaceGuid.PcdDisplayEnableSShot|L"DisplayEnableSShot"= |gConfigDxeFormSetGuid|0x0|1 > =20 > # >=20