# Default is set to UEFI console font format PixelBlueGreenRedReserved8BitPerColor\r
gArmPlatformTokenSpaceGuid.PcdGopPixelFormat|0x00000001|UINT32|0x00000040\r
\r
+ ## If set, this will swap settings for HDLCD RED_SELECT and BLUE_SELECT registers\r
+ gArmPlatformTokenSpaceGuid.PcdArmHdLcdSwapBlueRedSelect|FALSE|BOOLEAN|0x00000045\r
+\r
[PcdsFixedAtBuild.common,PcdsDynamic.common]\r
## PL031 RealTimeClock\r
gArmPlatformTokenSpaceGuid.PcdPL031RtcBase|0x0|UINT32|0x00000024\r
SCAN_TIMINGS *Horizontal;\r
SCAN_TIMINGS *Vertical;\r
\r
+ EFI_GRAPHICS_PIXEL_FORMAT PixelFormat;\r
+\r
EFI_GRAPHICS_OUTPUT_MODE_INFORMATION ModeInfo;\r
\r
// Set the video mode timings and other relevant information\r
return Status;\r
}\r
\r
- if (ModeInfo.PixelFormat == PixelBlueGreenRedReserved8BitPerColor) {\r
+ // By default PcdArmHdLcdSwapBlueRedSelect is set to false\r
+ // However on the Juno platform HW lines for BLUE and RED are swapped\r
+ // Therefore PcdArmHdLcdSwapBlueRedSelect is set to TRUE for the Juno platform\r
+ PixelFormat = FixedPcdGetBool (PcdArmHdLcdSwapBlueRedSelect)\r
+ ? PixelRedGreenBlueReserved8BitPerColor\r
+ : PixelBlueGreenRedReserved8BitPerColor;\r
+\r
+ if (ModeInfo.PixelFormat == PixelFormat) {\r
MmioWrite32 (HDLCD_REG_RED_SELECT, (8 << 8) | 16);\r
MmioWrite32 (HDLCD_REG_BLUE_SELECT, (8 << 8) | 0);\r
} else {\r
#\r
# Component description file for HDLCD module\r
#\r
-# Copyright (c) 2011-2012, ARM Ltd. All rights reserved.<BR>\r
+# Copyright (c) 2011-2018, ARM Ltd. All rights reserved.<BR>\r
#\r
# This program and the accompanying materials\r
# are licensed and made available under the terms and conditions of the BSD License\r
\r
[FixedPcd]\r
gArmPlatformTokenSpaceGuid.PcdArmHdLcdBase\r
+ gArmPlatformTokenSpaceGuid.PcdArmHdLcdSwapBlueRedSelect\r
+\r