On 06/17/21 01:22, Andrew Fish via groups.io wrote: > > >> On Jun 16, 2021, at 2:45 PM, David F. <df7...@gmail.com> wrote: >> >> Also, I found if there are 2 GOP handles and you change the mode of >> one, the other one doesn't reflect the change (but still doesn't solve >> anything with the original question), are you supposed to set the mode >> on every handle to keep that part in sync? >> > > A common implementation is to have the Conspliter [1] driver that produces > virtual handles that aggregate how many actual devices you have and manages > policy. > > You should grab the protocols on the gST->ConsoleOutHandle as these are the > Spec defined active console devices. > > > In terms on Simple Text Output Protocol on Graphics this is the default > driver in edk2 [2]. These are the config knobs you can set from your DSC file > to control defaults. > > [Pcd] > gEfiMdeModulePkgTokenSpaceGuid.PcdVideoHorizontalResolution ## > SOMETIMES_CONSUMES > gEfiMdeModulePkgTokenSpaceGuid.PcdVideoVerticalResolution ## > SOMETIMES_CONSUMES > gEfiMdeModulePkgTokenSpaceGuid.PcdConOutRow ## > SOMETIMES_CONSUMES > gEfiMdeModulePkgTokenSpaceGuid.PcdConOutColumn ## > SOMETIMES_CONSUMES > Note: If you have serial active that may mess with the Conspliter and force > it to pick a lower resolution since it has to find the best match between the > serial and graphics Simple Text In. So try the Graphics without the serial > terminal connect to see if it does different stuff.
Regarding the serial terminal aspect, we discussed the following patch (maybe: workaround?) for that, many years ago, off-list: diff --git a/MdeModulePkg/Universal/Console/TerminalDxe/Terminal.c b/MdeModulePkg/Universal/Console/TerminalDxe/Terminal.c index a98b690c8b95..ded5513c74a7 100644 --- a/MdeModulePkg/Universal/Console/TerminalDxe/Terminal.c +++ b/MdeModulePkg/Universal/Console/TerminalDxe/Terminal.c @@ -115,9 +115,44 @@ TERMINAL_DEV mTerminalDevTemplate = { }; TERMINAL_CONSOLE_MODE_DATA mTerminalConsoleModeData[] = { - {80, 25}, - {80, 50}, - {100, 31}, + { 80, 25 }, // from graphics resolution 640 x 480 + { 80, 50 }, // from graphics resolution 640 x 960 + { 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. // but the discussion didn't go anywhere over several months, so we've been carrying this patch downstream-only ever since. Thanks Laszlo > > > [1] > https://github.com/tianocore/edk2/tree/master/MdeModulePkg/Universal/Console/ConSplitterDxe > > <https://github.com/tianocore/edk2/tree/master/MdeModulePkg/Universal/Console/ConSplitterDxe> > > [2] > https://github.com/tianocore/edk2/tree/master/MdeModulePkg/Universal/Console/GraphicsConsoleDxe > > <https://github.com/tianocore/edk2/tree/master/MdeModulePkg/Universal/Console/GraphicsConsoleDxe> > > > Thanks, > > Andrew Fish > >> On Tue, Jun 15, 2021 at 11:33 PM David F. via groups.io >> <df7729=gmail....@groups.io> wrote: >>> >>> Hello, >>> >>> I've found that most implementation of UEFI don't automatically change >>> the resolution when setting the mode with STOP (Simple Text Output >>> Protocol) . You can use GOP to change it after the mode but that >>> causes other problems. For example, using surface pro 7 in this case, >>> with 4K screen. The default text mode is 342x96 which puts it in >>> 2736x1824 mode which you'd expect and the text is tiny. But now you >>> set the mode to 0 which is 80x25 and it actually sets the mode to >>> 2736x1824 if not already in that resolution and uses a 80x25 area in >>> the center of the screen, still tiny text you can hardly read. If you >>> then say you want GOP in 640x480 mode (which is available as GOP mode >>> 1 on this system, it will make the font larger but you can't see >>> anything because it's still offset to the middle of the 2736x1824 area >>> and you're only seeing the 640x480 upper left of that area on the >>> screen. Likewise if you have it in 342x96 so it's fully in the upper >>> left corner of the screen and change the mode to say 800x600 >>> (available as GOP mode 2 on this system) it will make the text >>> readable but the text can go off the screen in both directions because >>> it's still 342x96 when the 100x31 STOP mode would be the correct one >>> (which happens to be mode 2 on this system). >>> >>> Shouldn't setting the STOP mode handle adjusting the resolution since >>> that's the main reason you want to change the mode so the size shown >>> on the screen changes to something you can read. >>> >>> Any tricks? I've tried a bunch of things, resetting the controller, >>> using the Reset() protocol function, and other things but nothing >>> works. As soon as you use STOP to set the mode, it is back to high >>> resolution and using an area centered in the screen and changing the >>> resolution after that leaves it in the area centered in the high res >>> screen and not in the upper left area. >>> >>> Thanks. >>> >> >> >> >> >> > > > > > > > -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#76926): https://edk2.groups.io/g/devel/message/76926 Mute This Topic: https://groups.io/mt/83575008/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-