From mboxrd@z Thu Jan 1 00:00:00 1970 Authentication-Results: mx.groups.io; dkim=pass header.i=@akeo-ie.20150623.gappssmtp.com header.s=20150623 header.b=WuhT5EPq; spf=none, err=permanent DNS error (domain: akeo.ie, ip: 209.85.221.68, mailfrom: pete@akeo.ie) Received: from mail-wr1-f68.google.com (mail-wr1-f68.google.com [209.85.221.68]) by groups.io with SMTP; Fri, 27 Sep 2019 10:51:47 -0700 Received: by mail-wr1-f68.google.com with SMTP id o18so4138861wrv.13 for ; Fri, 27 Sep 2019 10:51:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=akeo-ie.20150623.gappssmtp.com; s=20150623; h=subject:to:cc:references:from:message-id:date:user-agent :mime-version:in-reply-to:content-language:content-transfer-encoding; bh=7LsMsJuNkMslsUsrXckY5qZ2cOrvPjxJAZBkRcAFbOs=; b=WuhT5EPq2g1yf5HIhuSUo1VuHHTwCuAnPHTM/iwbvmcs6E11XaKR+WRiQC9dHUPvMa Y8MC9XdqMYW7lFCgNlK2u96Ekq0C47o+wzYonZfw0Up3a3+JWi9GEmIk5VpNvy20v6eN GdblS7YsYBOscAmzN6zDkulu5d/yaoEDPZ9jUXVGtVlUr5yIiQtfs6xurrOT11hyZ9JU mH5c74ANNiQQ2i7YwN4egVOtNp5T3zcfgcLonrj3swZcVmC6rywELTwwrtNTlgwTHl1V s9FaH4fc0nz6HQ8/ZtxA9Do5rDdeNgbre4BmpR+xaJCQbSIkqD9g1lJxKNvUE2CxPwEp 63Pw== 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:message-id:date :user-agent:mime-version:in-reply-to:content-language :content-transfer-encoding; bh=7LsMsJuNkMslsUsrXckY5qZ2cOrvPjxJAZBkRcAFbOs=; b=VWdHrW/vQrQFMmSXyVB2YaTgeJyHP9UukjQrGMWVAtez1idU9Wt3qoTvQgTU+aZY0d yJK8qb3CQUToU6eYBKLtyZiHe+JWJgSW3FPFF3zTFMU0xXk8h0y/xoqN14V7N4S9cHnQ TJ318gChzqDM1sjK7ScrYc6juK7RKpqz+OHSK1FVCV+jG4OmBg/NuIxNd+EeSHxat49h Royc2g6Twy+QUGf+abi9EfvM8KE8AyXCrUCFdTTjpYx9ERdpMZ2dBaw6PHgb4O9JAUa4 P/m/GvwXZXQ5nbeEadIeyDjQ3rMFOBYdtaN4LD3wF8vIKXk60VQZbAB6dd/nrIr2GUvZ ILNg== X-Gm-Message-State: APjAAAXZPfYnHpMziNFGe9e8pYhrmmWgJRf7AoMA4cncg00JCLOQvxN0 ze74MFZImF9MZ3iDjx9S1ZS7zw== X-Google-Smtp-Source: APXvYqxejJ36zXAgRhRW6VAQe4JIRJhAL/w/FanfKDP27qltgjCIVPQ0V3NaW3yF3EY0irO0suRcRg== X-Received: by 2002:adf:f401:: with SMTP id g1mr3822230wro.275.1569606705292; Fri, 27 Sep 2019 10:51:45 -0700 (PDT) Return-Path: Received: from [10.0.0.122] ([84.203.73.37]) by smtp.googlemail.com with ESMTPSA id c6sm4534601wrm.71.2019.09.27.10.51.43 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 27 Sep 2019 10:51:44 -0700 (PDT) Subject: Re: [edk2-devel] [edk2-platforms PATCH 1/1] Platforms/RPi3: DisplayDxe virtual resolution improvements To: devel@edk2.groups.io, philmd@redhat.com Cc: ard.biesheuvel@linaro.org, leif.lindholm@linaro.org References: <20190927092016.5604-1-pete@akeo.ie> From: "Pete Batard" Message-ID: <82e73d37-1ce1-8939-d5c7-f844f9648645@akeo.ie> Date: Fri, 27 Sep 2019 18:51:42 +0100 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:60.0) Gecko/20100101 Thunderbird/60.9.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-GB Content-Transfer-Encoding: 8bit Hi Philippe, On 2019.09.27 17:38, 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? I just re-built against very latest edk2/edk2-platforms/edk2-non-osi (pulled a couple minutes ago) and I'm not seeing any issue. It should build against latest. What error are you getting? >> >> Signed-off-by: Pete Batard > > Hmm shouldn't this patch have a S-o-b from Andrei Warkentin too? We discussed this before with Leif (who has since replied), and agreed that it makes no sense to use a S-o-b unless it's the actual person sending the e-mail. Regards, /Pete > > 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 >> >> # >> > > > >