From mboxrd@z Thu Jan 1 00:00:00 1970 Authentication-Results: mx.groups.io; dkim=pass header.i=@linaro.org header.s=google header.b=z6SHZS0s; spf=pass (domain: linaro.org, ip: 209.85.221.67, mailfrom: leif.lindholm@linaro.org) Received: from mail-wr1-f67.google.com (mail-wr1-f67.google.com [209.85.221.67]) by groups.io with SMTP; Fri, 27 Sep 2019 10:49:27 -0700 Received: by mail-wr1-f67.google.com with SMTP id i18so4140869wru.11 for ; Fri, 27 Sep 2019 10:49:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=date:from:to:cc:subject:message-id:references:mime-version :content-disposition:content-transfer-encoding:in-reply-to :user-agent; bh=qaludNSMhI/w/mTQOoP/9ejY8pRWjmu1INt8Jt2CF4c=; b=z6SHZS0sqyj/BSJs/f9fXxKpoIpmXvNBbrnSTWOSctPkw/a1TNp8HbHhLEG1Q8nXQE Dwf8UICwGoxpIET4E4HCqJQ3cMvWrED8gtqPf2SXlzmmSgNYuAHMgjQph6RO2gKxNQGy 754fHMHf+he4XdEehpYo4BfQhftE3ABlYQlSk6mxwq5rjlPvKPUaMJcp2HB7nEM1GVcZ oDPdwqjbDI2nMqK25qa881TLYr8KCMhPMOG4RTTImtT5tSbv8mXXHlnnYLOPg6IVpGMr aguAez1tBekR4T3TBLEp3gvQM9boMaGmBB7/w1vepQ82zW81bUwJn3+D6SrrAYUCN1Sg ZB/w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-disposition:content-transfer-encoding :in-reply-to:user-agent; bh=qaludNSMhI/w/mTQOoP/9ejY8pRWjmu1INt8Jt2CF4c=; b=e5QX1/J1y0p6dqm7LauC4S/BMeUwWTjiHSm5siZbGlmExyGOJDa19FmGmF0yFdHxrP /UOseHuDBGY5PHMteKtFtsHU1KUD6JpcqE9MMF/NpDhgOrCw0lbqrwhfuagKqwxvyqt5 YhAcljLGpbAEJCsw0VKR5dzcyLcqX2x62HWH70YznAWRWB/yuZ+ItF1hl3X5/WV5BfbE 3QCKTaYCGIjwi3D7gXkc7nGSN70xP83PsoTqQg6aDqTMeCL1z0XAzxVAjvt22BuSR2Wh nLfgE1sfWLIjPRCo2Ku/l/fwDwcMm1Zhuek9tz9Emp7bAPwLlmmSFXpr9uK+qV8uHdI1 59Qg== X-Gm-Message-State: APjAAAV6HiTfiYpk+mhbbel8c66SLd1h+4NS/F6IkBgs+0nXqcS+qSON GKux9Oq+iya9kGxZA1DS/Qz/Ew== X-Google-Smtp-Source: APXvYqxFCseyeCs88HCbzFB7+jeGChIKrdTZ/+O8evBrZHw7z8Ou4tPIn9ciyn1QZQqmf1c6oxXM3g== X-Received: by 2002:a5d:4b4e:: with SMTP id w14mr3782600wrs.191.1569606565889; Fri, 27 Sep 2019 10:49:25 -0700 (PDT) Return-Path: Received: from bivouac.eciton.net (bivouac.eciton.net. [2a00:1098:0:86:1000:23:0:2]) by smtp.gmail.com with ESMTPSA id g13sm8960939wrm.42.2019.09.27.10.49.24 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 27 Sep 2019 10:49:24 -0700 (PDT) Date: Fri, 27 Sep 2019 18:49:23 +0100 From: "Leif Lindholm" To: Philippe =?iso-8859-1?Q?Mathieu-Daud=E9?= Cc: devel@edk2.groups.io, pete@akeo.ie, ard.biesheuvel@linaro.org Subject: Re: [edk2-devel] [edk2-platforms PATCH 1/1] Platforms/RPi3: DisplayDxe virtual resolution improvements Message-ID: <20190927174923.GP25504@bivouac.eciton.net> References: <20190927092016.5604-1-pete@akeo.ie> MIME-Version: 1.0 In-Reply-To: User-Agent: Mutt/1.10.1 (2018-07-13) Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit On Fri, Sep 27, 2019 at 06:38:07PM +0200, Philippe Mathieu-Daudé wrote: > Hi Pete, > > On 9/27/19 11:20 AM, Pete Batard wrote: > > From: Andrei Warkentin > > > > The Pi GPU decouples requested resolution from actual physical resolution > > and can perform scaling of virtual resolutions. This enables platform users > > 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). > > > > 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. > > > > 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? edk2-platforms master should always build against edk2 - if it does not, that's a bug. But I can't see any issues when building rpi3 with the current master branches. Any platform that is not willing to commit to this state of things can live on stable- or devel- branches in the edk-platforms repository. This process is described in https://github.com/tianocore/edk2-platforms/blob/about/Readme.md But please provide some more information than "I get errors". It is a much better use of maintainer time than sending me off verifying that something I expected to work still works (for me). > > Signed-off-by: Pete Batard > > Hmm shouldn't this patch have a S-o-b from Andrei Warkentin too? No. Andrei is the author, he is not the person upstreaming. And the From: tag retains his authorship. Adding a S-o-b in that situation equates to putting in the commit message that "Oh, and Andrei says he's cool with https://developercertificate.org/". Regards, Leif > 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(-) > > > > diff --git a/Platform/RaspberryPi/RPi3/Drivers/ConfigDxe/ConfigDxe.c b/Platform/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; > > > > @@ -180,12 +181,12 @@ SetupVariables ( > > PcdSet32 (PcdDebugShowUEFIExit, PcdGet32 (PcdDebugShowUEFIExit)); > > } > > > > - Size = sizeof (UINT32); > > - Status = gRT->GetVariable (L"DisplayEnableVModes", > > + Size = sizeof (UINT8); > > + Status = gRT->GetVariable (L"DisplayEnableScaledVModes", > > &gConfigDxeFormSetGuid, > > - NULL, &Size, &Var32); > > + NULL, &Size, &Var8); > > if (EFI_ERROR (Status)) { > > - PcdSet32 (PcdDisplayEnableVModes, PcdGet32 (PcdDisplayEnableVModes)); > > + PcdSet8 (PcdDisplayEnableScaledVModes, PcdGet8 (PcdDisplayEnableScaledVModes)); > > } > > > > Size = 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 > > > > [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 settings" > > > > -#string STR_DISPLAY_VMODES_PROMPT #language en-US "Resolutions" > > -#string STR_DISPLAY_VMODES_HELP #language en-US "Support for non-native modes" > > -#string STR_DISPLAY_VMODES_ENABLE #language en-US "Also support 640x480, 800x600, 1024x768, 720p and 1080p" > > -#string STR_DISPLAY_VMODES_DISABLE #language en-US "Only native resolution" > > +#string STR_DISPLAY_VMODES_640_PROMPT #language en-US "Virtual 640x480" > > +#string STR_DISPLAY_VMODES_640_HELP #language en-US "Enable scaled 640x480 mode" > > +#string STR_DISPLAY_VMODES_800_PROMPT #language en-US "Virtual 800x600" > > +#string STR_DISPLAY_VMODES_800_HELP #language en-US "Enable scaled 800x600 mode" > > +#string STR_DISPLAY_VMODES_1024_PROMPT #language en-US "Virtual 1024x768" > > +#string STR_DISPLAY_VMODES_1024_HELP #language en-US "Enable scaled 1024x768 mode" > > +#string STR_DISPLAY_VMODES_720_PROMPT #language en-US "Virtual 720p" > > +#string STR_DISPLAY_VMODES_720_HELP #language en-US "Enable scaled 720p mode" > > +#string STR_DISPLAY_VMODES_1080_PROMPT #language en-US "Virtual 1080p" > > +#string STR_DISPLAY_VMODES_1080_HELP #language en-US "Enable scaled 1080p mode" > > + > > +#string STR_DISPLAY_VMODES_REAL_PROMPT #language en-US "Native resolution" > > +#string STR_DISPLAY_VMODES_REAL_HELP #language en-US "Native resolution" > > > > #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" > > > > +#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() > > > > typedef struct { > > /* > > @@ -166,9 +175,9 @@ formset > > name = DebugShowUEFIExit, > > guid = CONFIGDXE_FORM_SET_GUID; > > > > - efivarstore DISPLAY_ENABLE_VMODES_VARSTORE_DATA, > > + efivarstore DISPLAY_ENABLE_SCALED_VMODES_VARSTORE_DATA, > > attribute = EFI_VARIABLE_BOOTSERVICE_ACCESS | EFI_VARIABLE_RUNTIME_ACCESS | EFI_VARIABLE_NON_VOLATILE, > > - name = DisplayEnableVModes, > > + name = DisplayEnableScaledVModes, > > guid = CONFIGDXE_FORM_SET_GUID; > > > > efivarstore DISPLAY_ENABLE_SSHOT_VARSTORE_DATA, > > @@ -282,13 +291,47 @@ formset > > title = STRING_TOKEN(STR_DISPLAY_FORM_TITLE); > > subtitle text = STRING_TOKEN(STR_DISPLAY_FORM_SUBTITLE); > > > > - oneof varid = DisplayEnableVModes.Enable, > > - prompt = STRING_TOKEN(STR_DISPLAY_VMODES_PROMPT), > > - help = STRING_TOKEN(STR_DISPLAY_VMODES_HELP), > > - flags = NUMERIC_SIZE_4 | INTERACTIVE | RESET_REQUIRED, > > - option text = STRING_TOKEN(STR_DISPLAY_VMODES_ENABLE), value = 1, flags = DEFAULT; > > - option text = STRING_TOKEN(STR_DISPLAY_VMODES_DISABLE), value = 0, flags = 0; > > - endoneof; > > + checkbox varid = DisplayEnableScaledVModes.v640, > > + prompt = STRING_TOKEN(STR_DISPLAY_VMODES_640_PROMPT), > > + help = STRING_TOKEN(STR_DISPLAY_VMODES_640_HELP), > > + flags = CHECKBOX_DEFAULT | CHECKBOX_DEFAULT_MFG | RESET_REQUIRED, > > + default = TRUE, > > + endcheckbox; > > + > > + checkbox varid = DisplayEnableScaledVModes.v800, > > + prompt = STRING_TOKEN(STR_DISPLAY_VMODES_800_PROMPT), > > + help = STRING_TOKEN(STR_DISPLAY_VMODES_800_HELP), > > + flags = CHECKBOX_DEFAULT | CHECKBOX_DEFAULT_MFG | RESET_REQUIRED, > > + default = TRUE, > > + endcheckbox; > > + > > + checkbox varid = DisplayEnableScaledVModes.v1024, > > + prompt = STRING_TOKEN(STR_DISPLAY_VMODES_1024_PROMPT), > > + help = STRING_TOKEN(STR_DISPLAY_VMODES_1024_HELP), > > + flags = CHECKBOX_DEFAULT | CHECKBOX_DEFAULT_MFG | RESET_REQUIRED, > > + default = TRUE, > > + endcheckbox; > > + > > + checkbox varid = DisplayEnableScaledVModes.v720p, > > + prompt = STRING_TOKEN(STR_DISPLAY_VMODES_720_PROMPT), > > + help = STRING_TOKEN(STR_DISPLAY_VMODES_720_HELP), > > + flags = CHECKBOX_DEFAULT | CHECKBOX_DEFAULT_MFG | RESET_REQUIRED, > > + default = TRUE, > > + endcheckbox; > > + > > + checkbox varid = DisplayEnableScaledVModes.v1080p, > > + prompt = STRING_TOKEN(STR_DISPLAY_VMODES_1080_PROMPT), > > + help = STRING_TOKEN(STR_DISPLAY_VMODES_1080_HELP), > > + flags = CHECKBOX_DEFAULT | CHECKBOX_DEFAULT_MFG | RESET_REQUIRED, > > + default = TRUE, > > + endcheckbox; > > + > > + checkbox varid = DisplayEnableScaledVModes.Physical, > > + prompt = STRING_TOKEN(STR_DISPLAY_VMODES_REAL_PROMPT), > > + help = STRING_TOKEN(STR_DISPLAY_VMODES_REAL_HELP), > > + flags = CHECKBOX_DEFAULT | CHECKBOX_DEFAULT_MFG | RESET_REQUIRED, > > + default = TRUE, > > + endcheckbox; > > > > oneof varid = DisplayEnableSShot.Enable, > > prompt = 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" > > > > +#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->PixelsPerScanLine * \ > > @@ -104,7 +112,7 @@ STATIC RASPBERRY_PI_FIRMWARE_PROTOCOL *mFwProtocol; > > STATIC EFI_CPU_ARCH_PROTOCOL *mCpu; > > > > STATIC UINTN mLastMode; > > -STATIC GOP_MODE_DATA mGopModeData[] = { > > +STATIC GOP_MODE_DATA mGopModeTemplate[] = { > > { 800, 600 }, /* Legacy */ > > { 640, 480 }, /* Legacy */ > > { 1024, 768 }, /* Legacy */ > > @@ -113,6 +121,9 @@ STATIC GOP_MODE_DATA mGopModeData[] = { > > { 0, 0 }, /* Physical */ > > }; > > > > +STATIC UINTN mLastMode; > > +STATIC GOP_MODE_DATA mGopModeData[ARRAY_SIZE (mGopModeTemplate)]; > > + > > STATIC DISPLAY_DEVICE_PATH mDisplayProtoDevicePath = > > { > > { > > @@ -446,6 +457,7 @@ DriverStart ( > > ) > > { > > UINTN Index; > > + UINTN TempIndex; > > EFI_STATUS Status; > > VOID *Dummy; > > > > @@ -473,11 +485,29 @@ DriverStart ( > > goto Done; > > } > > > > + PcdSet8 (PcdDisplayEnableScaledVModes, > > + PcdGet8 (PcdDisplayEnableScaledVModes) & ALL_MODES); > > > > - if (PcdGet32 (PcdDisplayEnableVModes)) { > > - mLastMode = ARRAY_SIZE (mGopModeData) - 1; > > - } else { > > - mLastMode = 0; > > + if (PcdGet8 (PcdDisplayEnableScaledVModes) == 0) { > > + PcdSet8 (PcdDisplayEnableScaledVModes, JUST_NATIVE_ENABLED); > > + } > > + > > + mLastMode = 0; > > + for (TempIndex = 0, Index = 0; > > + TempIndex < ARRAY_SIZE (mGopModeTemplate); TempIndex++) { > > + if ((PcdGet8 (PcdDisplayEnableScaledVModes) & (1 << TempIndex)) != 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 = Index; > > + Index++; > > + } > > + } > > + > > + if (PcdGet8 (PcdDisplayEnableScaledVModes) == 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 = 640; > > mBootHeight = 480; > > + } else if (mBootWidth == 800 && mBootHeight == 480) { > > + /* The Pi 7" screen is close to 800x600, just pretend it is. */ > > + mBootHeight = 600; > > } > > } > > > > - mGopModeData[mLastMode].Width = mBootWidth; > > - mGopModeData[mLastMode].Height = mBootHeight; > > + if ((PcdGet8(PcdDisplayEnableScaledVModes) & MODE_NATIVE_ENABLED) != 0) { > > + /* > > + * Adjust actual native res only if native res is enabled > > + * (so last mode is native res). > > + */ > > + mGopModeData[mLastMode].Width = mBootWidth; > > + mGopModeData[mLastMode].Height = mBootHeight; > > + } > > > > for (Index = 0; Index <= 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 > > > > [Pcd] > > - gRaspberryPiTokenSpaceGuid.PcdDisplayEnableVModes > > + gRaspberryPiTokenSpaceGuid.PcdDisplayEnableScaledVModes > > gRaspberryPiTokenSpaceGuid.PcdDisplayEnableSShot > > > > [Guids] > > diff --git a/Platform/RaspberryPi/RPi3/RPi3.dec b/Platform/RaspberryPi/RPi3/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|0x00000017 > > gRaspberryPiTokenSpaceGuid.PcdDisplayEnableSShot|0|UINT32|0x00000018 > > diff --git a/Platform/RaspberryPi/RPi3/RPi3.dsc b/Platform/RaspberryPi/RPi3/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"DisplayEnableVModes"|gConfigDxeFormSetGuid|0x0|0 > > + gRaspberryPiTokenSpaceGuid.PcdDisplayEnableScaledVModes|L"DisplayEnableScaledVModes"|gConfigDxeFormSetGuid|0x0|0xff > > gRaspberryPiTokenSpaceGuid.PcdDisplayEnableSShot|L"DisplayEnableSShot"|gConfigDxeFormSetGuid|0x0|1 > > > > # > > >