Commit Graph

60 Commits

Author SHA1 Message Date
e167ed1a3d MdeModulePkg/GraphicsConsole: don't draw cursor at 0,0
Prevents cursor from flashing on screen when
changing modes or clearing the screen.

Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
2021-11-02 19:24:48 -06:00
112268c70d MdeModulePkg/GraphicsConsole: Don't re-set video output mode
Fixes display resolution issues with booting OS X

Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
2021-11-02 19:24:48 -06:00
e61088c858 MdeModulePkg/Graphics: Fix spelling mistakes
Fix various spelling mistakes in GraphicsConsoleDxe, ConsPlitter,
and SimpleTextOut header

Cc: Jian J Wang <jian.j.wang@intel.com>
Cc: Hao A Wu <hao.a.wu@intel.com>
Cc: Zhichao Gao <zhichao.gao@intel.com>
Cc: Ray Ni <ray.ni@intel.com>
Cc: Ard Biesheuvel <Ard.Biesheuvel@arm.com>
Cc: Pete Batard <pete@akeo.ie>
Signed-off-by: Samer El-Haj-Mahmoud <Samer.El-Haj-Mahmoud@arm.com>
Reviewed-by: Zhichao Gao <zhichao.gao@intel.com>
2021-01-06 05:27:29 +00:00
b585238d33 MdeModulePkg/GraphicsConsoleDxe: Change default CursorVisible to FALSE
REF: https://github.com/pftf/RPi4/issues/115

GraphicsConsoleDxe defaults the ConOut Mode.CursorVisible to TRUE.
However, the driver never draws the cursor during init. This results
in the first call to disable the cursor (using ConOut->EnableCursor(FALSE))
to actually draw the cursor on the screen, as the logic in FlushCursor
depends on the Mode.CursorVisible state to determine if it should draw or
erase the cursor.

Fix by changing the default CursorVisible in this driver to FALSE.

Cc: Jian J Wang <jian.j.wang@intel.com>
Cc: Hao A Wu <hao.a.wu@intel.com>
Cc: Zhichao Gao <zhichao.gao@intel.com>
Cc: Ray Ni <ray.ni@intel.com>
Cc: Ard Biesheuvel <Ard.Biesheuvel@arm.com>
Cc: Pete Batard <pete@akeo.ie>
Signed-off-by: Samer El-Haj-Mahmoud <Samer.El-Haj-Mahmoud@arm.com>
Reviewed-by: Zhichao Gao <zhichao.gao@intel.com>
Reviewed-by: Pete Batard <pete@akeo.ie>
Tested-by: Pete Batard <pete@akeo.ie>
(On an RPi4 platform where we had this annoyance of an unwanted cursor
displaying on top of the platform logo)
2021-01-06 05:27:29 +00:00
0a35997643 MdeModulePkg/GraphicsConsoleDxe: Initialize the output mode
REF: https://bugzilla.tianocore.org/show_bug.cgi?id=1412

Original logic:
Connect the graphics device -> connect it as graphics consoles
and initialize its parameters(Mode = -1, invalid) -> connect it
as console spliter and add the device to the list(use SetMode to
set mode to the user defined mode or the best mode the devices
supported if the mode is invalid. *clear the screen at this phase*)

Changed logic:
Connect the graphics device -> connect it as graphics consoles
and initialize its parameters(initialize the mode to the user
defined mode or the best mode. *directly set the mode value without
using SetMode, that would not clear the screen) -> connect it as
console spliter and add the device to the list(use SetMode to set
mode to the user defined mode or the best mode the devices supported
if the mode is invalid. *now the mode is already set, so it would
not clear the screen*).

Also remove the section of SetMode for debug version.

Impact: as the text mode may not be an invalid value, the SetMode
may have no chance to be called during reconnect the graphics device.
That means the screen may not be cleaned after finishing reconnect
operation. There is one common condition: shell command "recoonect -r".

Cc: Jian J Wang <jian.j.wang@intel.com>
Cc: Hao Wu <hao.a.wu@intel.com>
Cc: Ray Ni <ray.ni@intel.com>
Cc: Star Zeng <star.zeng@intel.com>
Cc: Liming Gao <liming.gao@intel.com>
Cc: Sean Brogan <sean.brogan@microsoft.com>
Cc: Michael Turner <Michael.Turner@microsoft.com>
Cc: Bret Barkelew <Bret.Barkelew@microsoft.com>
Cc: Laszlo Ersek <lersek@redhat.com>
Signed-off-by: Zhichao Gao <zhichao.gao@intel.com>
Acked-by: Laszlo Ersek <lersek@redhat.com>
Reviewed-by: Hao A Wu <hao.a.wu@intel.com>
2019-06-13 14:53:40 +08:00
9d510e61fc MdeModulePkg: Replace BSD License with BSD+Patent License
https://bugzilla.tianocore.org/show_bug.cgi?id=1373

Replace BSD 2-Clause License with BSD+Patent License.  This change is
based on the following emails:

  https://lists.01.org/pipermail/edk2-devel/2019-February/036260.html
  https://lists.01.org/pipermail/edk2-devel/2018-October/030385.html

RFCs with detailed process for the license change:

  V3: https://lists.01.org/pipermail/edk2-devel/2019-March/038116.html
  V2: https://lists.01.org/pipermail/edk2-devel/2019-March/037669.html
  V1: https://lists.01.org/pipermail/edk2-devel/2019-March/037500.html

Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Michael D Kinney <michael.d.kinney@intel.com>
Reviewed-by: Hao Wu <hao.a.wu@intel.com>
Reviewed-by: Jian J Wang <jian.j.wang@intel.com>
2019-04-09 10:58:08 -07:00
d1102dba72 MdeModulePkg: Clean up source files
1. Do not use tab characters
2. No trailing white space in one line
3. All files must end with CRLF

Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Liming Gao <liming.gao@intel.com>
Reviewed-by: Star Zeng <star.zeng@intel.com>
2018-06-28 11:19:45 +08:00
e8e1bdd66a MdeModulePkg: Fix GraphicsConsole driver resolution out of sync issue
When the GOP doesn't support the resolution specified by
PcdVideoHorizontalResolution and PcdVideoVerticalResolution,
the code tries to set the resolution to 800x600 but uses the resolution
equals to the PCD when calculating the text print position.
The patch fixes the bug by updating the resolution to 800x600 for
this case.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Ruiyu Ni <ruiyu.ni@intel.com>
Reviewed-by: Jeff Fan <jeff.fan@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@19630 6f19259b-4bc3-4df7-8a09-765794883524
2016-01-11 02:29:09 +00:00
d81c462d61 MdeModulePkg: Removed valid text mode check in SetAttribute interface in GraphicsConsole.
UEFI spec mentioned that the color mask can be set even when the device is in an invalid text mode. But the current code add text mode check. Removed the check now.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Elvin Li <elvin.li@intel.com>
Reviewed-by: Jaben Carsey <Jaben.Carsey@intel.com>


git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15721 6f19259b-4bc3-4df7-8a09-765794883524
2014-07-31 03:21:39 +00:00
6cb9566f26 MdeModulePkg: Fix parameter verification for SetAttribute
Check for 8th bit being reserved as per UEFI spec.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jaben Carsey <Jaben.carsey@intel.com>
Reviewed-by: Erik Bjorge <erik.c.bjorge@intel.com>
Reviewed-by: Michael Kinney <michael.d.kinney@intel.com>
Reviewed-by: Elvin Li <elvin.li@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15680 6f19259b-4bc3-4df7-8a09-765794883524
2014-07-25 15:57:20 +00:00
adfa1abc09 Don't assume HiiDatabase has been present at the entrypoint and don't assume HiiDatabase and HiiFont are on the same handle according to the UEFI spec.
Signed-off-by: Star Zeng <star.zeng@intel.com>
Reviewed-by: Elvin Li <elvin.li@intel.com>

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@14236 6f19259b-4bc3-4df7-8a09-765794883524
2013-04-02 03:23:54 +00:00
9fc9446897 Add debug message to output video resolution used by GraphicsConsole.
Signed-off-by: Li Elvin <elvin.li@intel.com>
Reviewed-by: Ni Ruiyu <ruiyu.ni@intel.com>


git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@14210 6f19259b-4bc3-4df7-8a09-765794883524
2013-03-15 07:43:16 +00:00
0666b5e858 Take the highest horizontal resolution as highest video resolution.
Signed-off-by: Li Elvin <elvin.li@intel.com>
Reviewed-by: Ni Ruiyu <ruiyu.ni@intel.com>
Reviewed-by: Tian Hot <hot.tian@intel.com>



git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@14074 6f19259b-4bc3-4df7-8a09-765794883524
2013-01-22 06:35:57 +00:00
c84f048224 Set graphic mode if graphic mode is not same with the one which GraphicsConsole driver find by itself.
Signed-off-by: Li Elvin <elvin.li@intel.com>
Reviewed-by: Ni Ruiyu <ruiyu.ni@intel.com>
Reviewed-by: Tian Hot <hot.tian@intel.com>


git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@14023 6f19259b-4bc3-4df7-8a09-765794883524
2012-12-25 08:21:01 +00:00
f58fcb0a1d Move GOP and UGA draw from Consplitter entrypoint to start(). When there is one real physical graphics device in system, Consplitter will expose GOP/UGA protocol on the virtual handle. In addition, fix a obvious logic issue in GraphicsConsole.
Signed-off-by: Li Elvin <elvin.li@intel.com>
Reviewed-by: Ni Ruiyu <ruiyu.ni@intel.com>


git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13787 6f19259b-4bc3-4df7-8a09-765794883524
2012-10-08 02:34:33 +00:00
d0d0c1b370 Removed SetMode in GraphicsConsole Start() in release BIOS to improve performance. Initialize current text mode number to 0xFF as invalid text mode per UEFI spec. Add current mode check in text out protocol interface to avoid invalid text mode.
Signed-off-by: Li Elvin <elvin.li@intel.com>
Reviewed-by: Ni Ruiyu <ruiyu.ni@intel.com>, Tian Hot (hot.tian@intel.com)


git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13599 6f19259b-4bc3-4df7-8a09-765794883524
2012-08-07 09:32:46 +00:00
7c9fbd79d1 Fix memory leak issues.
Signed-off-by: Eric Dong <eric.dong@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
Reviewed-by: Li Elvin <elvin.li@intel.com>
Reviewed-by: Ruiyu Ni <ruiyu.ni@intel.com>

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13288 6f19259b-4bc3-4df7-8a09-765794883524
2012-05-07 08:51:42 +00:00
9381365cf1 Remove PCD usage for console driver, PcdConOutRow and PcdConOutColumn are current text mode during boot, not console device capability.
Signed-off-by: li-elvin
Reviewed-by: hhtian

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12803 6f19259b-4bc3-4df7-8a09-765794883524
2011-11-30 06:01:22 +00:00
79d07c66d9 Updated GraphicsConsole and Terminal driver text mode initialization routine for easy mode extension in future.
Signed-off-by: li-elvin
Reviewed-by: hhtian


git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12787 6f19259b-4bc3-4df7-8a09-765794883524
2011-11-25 08:35:00 +00:00
b9b5e3078d Remove hard code video resolution in C code and use PCD PcdVideoHorizontalResolution/PcdVideoVerticalResolution for customization. And when PcdConOutRow/PcdConOutColumn and PcdVideoHorizontalResolution/PcdVideoVerticalResolution are all set to 0, the console will be max video resolution and max text mode.
Signed-off-by: li-elvin
Reviewed-by: niruiyu, hhtian


git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12595 6f19259b-4bc3-4df7-8a09-765794883524
2011-10-28 08:23:37 +00:00
f44e8c16f8 1. Setting cursor position to (0, 0) and flushing cursor directly instead of calling GraphicConSoleConOutSetPosition().
2. Rename the internal function name EraseCursor() to FlushCursor() to remove the confusion on this function name. And add detailed function description for it.

Signed-off-by: vanjeff
Reviewed-by: rsun3


git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11710 6f19259b-4bc3-4df7-8a09-765794883524
2011-05-27 05:30:30 +00:00
b1aab293ea MdeModulePkg GraphicsConsole: Add text mode for PcdConOutColumn/Row
Add a new text mode with a resolution of PcdConOutColumn x PcdConOutRow.

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11415 6f19259b-4bc3-4df7-8a09-765794883524
2011-03-23 02:11:14 +00:00
cd7bfc2c63 Refine code to make code run safely.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10880 6f19259b-4bc3-4df7-8a09-765794883524
2010-09-16 04:51:25 +00:00
78c0686bde remove duplicated code.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10643 6f19259b-4bc3-4df7-8a09-765794883524
2010-07-12 06:21:42 +00:00
46f0e2a9ee Remove some unnecessary clear screen from console drivers.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10590 6f19259b-4bc3-4df7-8a09-765794883524
2010-06-18 09:19:29 +00:00
e5eed7d364 Update the copyright notice format
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10418 6f19259b-4bc3-4df7-8a09-765794883524
2010-04-24 09:33:45 +00:00
aa75dfeccd Fix some coding style issues in MdeModulePkg.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9774 6f19259b-4bc3-4df7-8a09-765794883524
2010-01-15 08:03:23 +00:00
5e0b1e3f82 fix the issue of "Simple File System Protocol Test -> SetInfo_Conf failed on RAS_MB". When it print a string contained a control character of 0xc, it will hang on ConOut->OutputString() which will preprocessor some control character and call HiiStringToImage to render. There is gap between ConOut->OutputString() and HiiStringToImage.The former doesn't identify '0xc' as a line break character and assert only one line font printed. But the latter think it is so and print 2 line, which causes assertion.
I add EFI_HII_IGNORE_LINE_BREAK flag to force HiiStringToImage ignore the force line break character.

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@8736 6f19259b-4bc3-4df7-8a09-765794883524
2009-07-03 09:18:30 +00:00
f618b2fa0a rename array name to avoid naming collision.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@8340 6f19259b-4bc3-4df7-8a09-765794883524
2009-05-20 02:12:26 +00:00
cb7d01c0c9 HII Library Class interface refine.
The "HiiLib" prefix for all HII Library API function names changed to "Hii".

Remove: 
  HiiLibPreparePackageList(), replaced by HiiAddPackages()
  HiiLibNewString(), replaced by HiiSetString()
  HiiLibGetStringFromHandle(), replaced by HiiGetString()
  HiiLibGetStringFromToken(), replaced by HiiGetPackageString()
  HiiLibExtractGuidFromHiiHandle()
  HiiLibDevicePathToHiiHandle()
  HiiLibGetSupportedSecondaryLanguages()
  HiiLibGetSupportedLanguageNumber()
  HiiLibExportPackageLists()
  HiiLibListPackageLists()
  
Interface change:
  HiiAddPackages()
  HiiSetString()
  HiiGetString()
  HiiGetHiiHandles()

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@8083 6f19259b-4bc3-4df7-8a09-765794883524
2009-04-14 10:47:19 +00:00
28487361ff Move registration of Font into driver entry point.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@7948 6f19259b-4bc3-4df7-8a09-765794883524
2009-03-25 07:25:52 +00:00
60c65d37e2 remove klocwork issue.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@7346 6f19259b-4bc3-4df7-8a09-765794883524
2009-01-22 09:07:53 +00:00
649e72d617 Performance and size optimised.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@7280 6f19259b-4bc3-4df7-8a09-765794883524
2009-01-15 03:11:09 +00:00
677fdb90fa ECC clean up.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@7213 6f19259b-4bc3-4df7-8a09-765794883524
2009-01-08 08:46:31 +00:00
5c03ed0aa1 Code scrub for GraphicConsoleDxe Module.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@7179 6f19259b-4bc3-4df7-8a09-765794883524
2009-01-04 09:36:31 +00:00
7601dbe7c5 Check comments, format and fix some typo.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@7154 6f19259b-4bc3-4df7-8a09-765794883524
2008-12-30 07:34:44 +00:00
0322ed7af8 Check Library usage.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@7141 6f19259b-4bc3-4df7-8a09-765794883524
2008-12-26 09:22:38 +00:00
878670eaa6 Code scrub for Universal\Console\GraphicsConsoleDxe.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@7061 6f19259b-4bc3-4df7-8a09-765794883524
2008-12-17 06:23:23 +00:00
aa79b0b379 Global variables have been moved backward ahead of functions.
Only a few cases were left due to its module structure.

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@6816 6f19259b-4bc3-4df7-8a09-765794883524
2008-12-03 08:52:39 +00:00
555e76f83f Refine MdeModulePkg to pass GCC build.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@6575 6f19259b-4bc3-4df7-8a09-765794883524
2008-11-18 07:01:14 +00:00
676df92c2c Remove SafeFreePool from MemoryAllocationLib as this API's name is misleading. Its implementation only check if a pointer is NULL. If a garbage pointer is passed in, the gBS->FreePool will still ASSERT in debug build and return error code.
It is recommended that module writer should keep track how a pointer is allocated and free it after use.

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@6306 6f19259b-4bc3-4df7-8a09-765794883524
2008-10-30 07:32:46 +00:00
fe1e36e550 Patch to remove STATIC modifier. This is on longer recommended by EFI Framework coding style. All duplicated symbols has been renamed accordingly.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@6296 6f19259b-4bc3-4df7-8a09-765794883524
2008-10-30 06:05:06 +00:00
8595bdaf58 code scrub for check list.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@5549 6f19259b-4bc3-4df7-8a09-765794883524
2008-07-22 07:26:57 +00:00
24248368f7 1. added functions header for GraphicsConsoleDxe module.
2. correct some funtions header for ConPlatformDxe module.

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@5411 6f19259b-4bc3-4df7-8a09-765794883524
2008-07-07 05:23:31 +00:00
6dcf9abc6a Clean codes per ECC for GraphicsConsoleDxe module.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@5390 6f19259b-4bc3-4df7-8a09-765794883524
2008-07-01 06:43:10 +00:00
bd1d34eecf Change the ASSERT condition from “ASSERT (RowInfoArraySize == 1);” to “ASSERT (RowInfoArraySize <= 1);”.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@5374 6f19259b-4bc3-4df7-8a09-765794883524
2008-06-27 07:45:01 +00:00
0898c57ce7 Remove the non-standard definition: GLYPH_WIDTH and GLYPH_HEIGHT. All reference to these name should use the standard name defined in UEFI 2.1 specification which are EFI_GLYPH_WIDTH and EFI_GLYPH_HEIGHT
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@5137 6f19259b-4bc3-4df7-8a09-765794883524
2008-04-28 07:38:25 +00:00
695f7e9856 add some error check and return.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@4912 6f19259b-4bc3-4df7-8a09-765794883524
2008-03-19 05:49:56 +00:00
8541adab27 add PCD PcdUgaConsumeSupport to switch on/off EFI UGA Draw Protocol's consuming, it could save size by changing PCD's value to FALSE.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@4911 6f19259b-4bc3-4df7-8a09-765794883524
2008-03-19 05:22:06 +00:00
dca8c6d8d2 [Description]:
1) Remove HiiLibAddFontPackageToHiiDatabase as it is not properly defined API. It only cover Simplified Font. User is recomended to use Hii Font Protocol API to add various font into HII database.

[Impaction]:
All modules that may reference HiiLibAddFontPackageToHiiDatabase function.
[Reference Info]:
No.

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@4856 6f19259b-4bc3-4df7-8a09-765794883524
2008-03-15 05:04:45 +00:00