On Feb 25, 2014, at 5:23 PM, Li, Elvin <elvin...@intel.com> wrote:
> Laszlo,
> Where do you get the video resolution list? I prefer to be more popular
> to cover most common resolutions we see.
>
I wonder if you could add a mode that used the PCD defaults and EFI_GYPH_HIGHT
and EFI_GLYPH_WIDTH to calculate the mode and not need as large a list?
f
## This PCD defines the video horizontal resolution.
# This PCD could be set to 0 then video resolution could be at highest
resolution.
gEfiMdeModulePkgTokenSpaceGuid.PcdVideoHorizontalResolution|800|UINT32|0x40000009
## This PCD defines the video vertical resolution.
# This PCD could be set to 0 then video resolution could be at highest
resolution.
gEfiMdeModulePkgTokenSpaceGuid.PcdVideoVerticalResolution|600|UINT32|0x4000000a
Thanks,
Andrew Fish
> Thanks
> Elvin
>
> -----Original Message-----
> From: Laszlo Ersek [mailto:ler...@redhat.com]
> Sent: Wednesday, February 26, 2014 3:00 AM
> To: edk2-devel@lists.sourceforge.net
> Subject: [edk2] [PATCH 1/1] MdeModulePkg: TerminalDxe: add other text
> resolutions
>
> When the console output is multiplexed to several devices by ConSplitterDxe,
> then ConSplitterDxe builds an intersection of text modes supported by all
> console output devices.
>
> Two notable output devices are provided by:
> (1) MdeModulePkg/Universal/Console/GraphicsConsoleDxe,
> (2) MdeModulePkg/Universal/Console/TerminalDxe.
>
> GraphicsConsoleDxe supports four modes at most -- see
> InitializeGraphicsConsoleTextMode():
>
> (1a) 80x25 (required by the UEFI spec as mode 0),
> (1b) 80x50 (not necessarily supported, but if it is, then the UEFI spec
> requires the driver to provide it as mode 1),
> (1c) 100x31 (corresponding to graphics resolution 800x600, which the UEFI
> spec requires from all plug-in graphics devices),
> (1d) "full screen" resolution, derived form the underlying GOP's
> horizontal and vertical resolutions with division by EFI_GLYPH_WIDTH
> (8) and EFI_GLYPH_HEIGHT (19), respectively.
>
> The automatic "full screen resolution" makes GraphicsConsoleDxe's character
> console very flexible. However, TerminalDxe (which runs on serial ports) only
> provides the following fixed resolutions -- see
> InitializeTerminalConsoleTextMode():
>
> (2a) 80x25 (required by the UEFI spec as mode 0),
> (2b) 80x50 (since the character resolution of a serial device cannot be
> interrogated easily, this is added unconditionally as mode 1)
> (2c) modes 2 and above come from "mTerminalConsoleModeData". This table
> currently only contains one mode, 100x31.
>
> When ConSplitterDxe combines (1) and (2), multiplexing console output to both
> video output and serial terminal, the list of commonly supported text modes
> (ie. the "intersection") comprises:
>
> (3a) 80x25, unconditionally, from (1a) and (2a),
> (3b) 80x50, if the graphics console provides at least 640x950 pixel
> resolution, from (1b) and (2b)
> (3c) 100x31, if the graphics device is a plug-in one (because in that case
> 800x600 is a mandated pixel resolution), from (1c) and (2c).
>
> Unfortunately, the "full screen resolution" (1d) of the GOP-based text
> console is not available in general.
>
> Mitigate this problem by extending "mTerminalConsoleModeData" with a handful
> of text resolutions that are derived from widespread maximal pixel
> resolutions. This way TerminalDxe won't cause ConSplitterDxe to filter out
> the most frequent (1d) values from the intersection, and eg. the MODE command
> in the UEFI shell will offer the "best" (ie. full screen) resolution too.
>
> Contributed-under: TianoCore Contribution Agreement 1.0
> Signed-off-by: Laszlo Ersek <ler...@redhat.com>
> ---
> .../Universal/Console/TerminalDxe/Terminal.c | 37 +++++++++++++++++++++-
> 1 file changed, 36 insertions(+), 1 deletion(-)
>
> diff --git a/MdeModulePkg/Universal/Console/TerminalDxe/Terminal.c
> b/MdeModulePkg/Universal/Console/TerminalDxe/Terminal.c
> index 14f49ee..67dc369 100644
> --- a/MdeModulePkg/Universal/Console/TerminalDxe/Terminal.c
> +++ b/MdeModulePkg/Universal/Console/TerminalDxe/Terminal.c
> @@ -96,7 +96,42 @@ TERMINAL_DEV mTerminalDevTemplate = { };
>
> TERMINAL_CONSOLE_MODE_DATA mTerminalConsoleModeData[] = {
> - {100, 31},
> + { 100, 25 }, // from graphics resolution 800 x 480 { 100, 31
> + }, // from graphics resolution 800 x 600 { 104, 32 }, // from
> + graphics resolution 832 x 624 { 120, 33 }, // from graphics
> + resolution 960 x 640 { 128, 31 }, // from graphics resolution
> + 1024 x 600 { 128, 40 }, // from graphics resolution 1024 x 768 {
> + 144, 45 }, // from graphics resolution 1152 x 864 { 144, 45 }, //
> + from graphics resolution 1152 x 870 { 160, 37 }, // from graphics
> + resolution 1280 x 720 { 160, 40 }, // from graphics resolution
> + 1280 x 760 { 160, 40 }, // from graphics resolution 1280 x 768 {
> + 160, 42 }, // from graphics resolution 1280 x 800 { 160, 50 }, //
> + from graphics resolution 1280 x 960 { 160, 53 }, // from graphics
> + resolution 1280 x 1024 { 170, 40 }, // from graphics resolution
> + 1360 x 768 { 170, 40 }, // from graphics resolution 1366 x 768 {
> + 175, 55 }, // from graphics resolution 1400 x 1050 { 180, 47 }, //
> + from graphics resolution 1440 x 900 { 200, 47 }, // from graphics
> + resolution 1600 x 900 { 200, 63 }, // from graphics resolution
> + 1600 x 1200 { 210, 55 }, // from graphics resolution 1680 x 1050 {
> + 240, 56 }, // from graphics resolution 1920 x 1080 { 240, 63 }, //
> + from graphics resolution 1920 x 1200 { 240, 75 }, // from graphics
> + resolution 1920 x 1440 { 250, 105 }, // from graphics resolution
> + 2000 x 2000 { 256, 80 }, // from graphics resolution 2048 x 1536 {
> + 256, 107 }, // from graphics resolution 2048 x 2048 { 320, 75 }, //
> + from graphics resolution 2560 x 1440 { 320, 84 }, // from graphics
> + resolution 2560 x 1600 { 320, 107 }, // from graphics resolution
> + 2560 x 2048 { 350, 110 }, // from graphics resolution 2800 x 2100 {
> + 400, 126 }, // from graphics resolution 3200 x 2400 { 480, 113 }, //
> + from graphics resolution 3840 x 2160 { 512, 113 }, // from graphics
> + resolution 4096 x 2160 { 960, 227 }, // from graphics resolution
> + 7680 x 4320 { 1024, 227 }, // from graphics resolution 8192 x 4320
> //
> // New modes can be added here.
> //
> --
> 1.8.3.1
>
>
> ------------------------------------------------------------------------------
> Flow-based real-time traffic analytics software. Cisco certified tool.
> Monitor traffic, SLAs, QoS, Medianet, WAAS etc. with NetFlow Analyzer
> Customize your own dashboards, set traffic alerts and generate reports.
> Network behavioral analysis & security monitoring. All-in-one tool.
> http://pubads.g.doubleclick.net/gampad/clk?id=126839071&iu=/4140/ostg.clktrk
> _______________________________________________
> edk2-devel mailing list
> edk2-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/edk2-devel
>
> ------------------------------------------------------------------------------
> Flow-based real-time traffic analytics software. Cisco certified tool.
> Monitor traffic, SLAs, QoS, Medianet, WAAS etc. with NetFlow Analyzer
> Customize your own dashboards, set traffic alerts and generate reports.
> Network behavioral analysis & security monitoring. All-in-one tool.
> http://pubads.g.doubleclick.net/gampad/clk?id=126839071&iu=/4140/ostg.clktrk
> _______________________________________________
> edk2-devel mailing list
> edk2-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/edk2-devel
------------------------------------------------------------------------------
Flow-based real-time traffic analytics software. Cisco certified tool.
Monitor traffic, SLAs, QoS, Medianet, WAAS etc. with NetFlow Analyzer
Customize your own dashboards, set traffic alerts and generate reports.
Network behavioral analysis & security monitoring. All-in-one tool.
http://pubads.g.doubleclick.net/gampad/clk?id=126839071&iu=/4140/ostg.clktrk
_______________________________________________
edk2-devel mailing list
edk2-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/edk2-devel