From nobody Fri May 3 12:31:44 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of groups.io designates 66.175.222.12 as permitted sender) client-ip=66.175.222.12; envelope-from=bounce+27952+57351+1787277+3901457@groups.io; helo=web01.groups.io; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.12 as permitted sender) smtp.mailfrom=bounce+27952+57351+1787277+3901457@groups.io ARC-Seal: i=1; a=rsa-sha256; t=1586879043; cv=none; d=zohomail.com; s=zohoarc; b=MuHpFq0/P6Jknu+l/B/utcxg64mOewnvbQ5gGfRFJYDsty20Qn4IhKwCuiv1eeVKPMHD7D3cofO8IwGwpVinlzUKEWT3pgmWrq214U0m+68iuZ9OJSkUEdZ7MXoKyy7WXMhCR9D9tNzvPDpPNZZCcpTsBip9kR0YDYIjA/6eT6g= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1586879043; h=Cc:Date:From:In-Reply-To:List-Id:List-Unsubscribe:Message-ID:Reply-To:References:Sender:Subject:To; bh=DOdREsHV6CbpkDi/xpBqt+uuk16n2EJ4DapGq/gxtn8=; b=LTACcPXkVhxQrRnCixV8Ukkmz4E3VrTsf+wyWbAGN6UmEOvYmK05jYQR9/gJScB5HqyPravkCmYuIWPo/iZiNTlJpBKgKmYsUslO8pzBz2cwB+yH7jXoPiDOhrZ4LplrRxnHJkTR/8l57qn2FsgRDOjF/v8tOUkuXyF9b6Svy1U= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.12 as permitted sender) smtp.mailfrom=bounce+27952+57351+1787277+3901457@groups.io Received: from web01.groups.io (web01.groups.io [66.175.222.12]) by mx.zohomail.com with SMTPS id 1586879043648595.4260093717209; Tue, 14 Apr 2020 08:44:03 -0700 (PDT) Return-Path: X-Received: by 127.0.0.2 with SMTP id Ful9YY1788612x7gikyx1AYJ; Tue, 14 Apr 2020 08:44:03 -0700 X-Received: from mail-qk1-f193.google.com (mail-qk1-f193.google.com [209.85.222.193]) by mx.groups.io with SMTP id smtpd.web12.14038.1586879042536936195 for ; Tue, 14 Apr 2020 08:44:02 -0700 X-Received: by mail-qk1-f193.google.com with SMTP id l25so13721881qkk.3 for ; Tue, 14 Apr 2020 08:44:02 -0700 (PDT) X-Gm-Message-State: mnhmvnNI15I7J5qdTGYVBPjVx1787277AA= X-Google-Smtp-Source: APiQypLyXeq6bg94U1nMK3HUWAEKu7vaw/n2mATyCNTTQimVtrIUK1Ozf0PjhGTZXvgEox2Q8Kq5hw== X-Received: by 2002:a37:a0d6:: with SMTP id j205mr22099391qke.455.1586879041381; Tue, 14 Apr 2020 08:44:01 -0700 (PDT) X-Received: from localhost.localdomain (99-132-126-10.lightspeed.chrlnc.sbcglobal.net. [99.132.126.10]) by smtp.gmail.com with ESMTPSA id y126sm10667585qke.28.2020.04.14.08.44.00 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 14 Apr 2020 08:44:00 -0700 (PDT) From: "Samer El-Haj-Mahmoud" To: devel@edk2.groups.io Cc: Leif Lindholm , Ard Biesheuvel , Pete Batard , Andrei Warkentin Subject: [edk2-devel] [edk2-platform][PATCH v2 1/3] Platform/RaspberryPi/RPi4: Switch to common GraphicsConsoleDxe Date: Tue, 14 Apr 2020 11:43:56 -0400 Message-Id: <20200414154358.5161-2-samer@elhajmahmoud.com> In-Reply-To: <20200414154358.5161-1-samer@elhajmahmoud.com> References: <20200414154358.5161-1-samer@elhajmahmoud.com> Precedence: Bulk List-Unsubscribe: Sender: devel@edk2.groups.io List-Id: Mailing-List: list devel@edk2.groups.io; contact devel+owner@edk2.groups.io Reply-To: devel@edk2.groups.io,samer@elhajmahmoud.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=groups.io; q=dns/txt; s=20140610; t=1586879043; bh=sE5807wuPwjoxBkVFtCWW9xg4HbdEmHDkX7F/8WyMv8=; h=Cc:Date:From:Reply-To:Subject:To; b=t85Bj5wLptInGszwqXlvFgg3wF+UhNOzKio/2lkD8MckcxeKyAHX700KksuJdfYHy9P jCXMSAwkNYmGEskMKjo8zUzuMETpVEV1qyGKvQsT7OvJ6lE9FdWUyA/HKuQofsfJ5J0Gr aKO3lP9JHG1bBwXM3CKKM5K4uhyCD8/9ZGU= X-ZohoMail-DKIM: pass (identity @groups.io) Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Switch from the PI specific GraphicsConsoleDxe driver to the common driver in MdeModulePkg. There is no need to carry RPi specific version. This resolves https://github.com/pftf/RPi4/issues/32 Cc: Leif Lindholm Cc: Ard Biesheuvel Cc: Pete Batard Cc: Andrei Warkentin Signed-off-by: Samer El-Haj-Mahmoud Reviewed-by: Andrei Warkentin --- Notes: v2: - Set PcdUgaConsumeSupport to FALSE [Ard] Platform/RaspberryPi/RPi4/RPi4.dsc | 3 ++- Platform/RaspberryPi/RPi4/RPi4.fdf | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/Platform/RaspberryPi/RPi4/RPi4.dsc b/Platform/RaspberryPi/RPi4= /RPi4.dsc index 4fe4d810a0bc..835b558423a5 100644 --- a/Platform/RaspberryPi/RPi4/RPi4.dsc +++ b/Platform/RaspberryPi/RPi4/RPi4.dsc @@ -264,6 +264,7 @@ [PcdsFeatureFlag.common] # It could be set FALSE to save size. gEfiMdeModulePkgTokenSpaceGuid.PcdConOutGopSupport|TRUE gEfiMdeModulePkgTokenSpaceGuid.PcdConOutUgaSupport|FALSE + gEfiMdePkgTokenSpaceGuid.PcdUgaConsumeSupport|FALSE =20 [PcdsFixedAtBuild.common] gEfiMdePkgTokenSpaceGuid.PcdMaximumUnicodeStringLength|1000000 @@ -582,7 +583,7 @@ [Components.common] =20 MdeModulePkg/Universal/Console/ConPlatformDxe/ConPlatformDxe.inf MdeModulePkg/Universal/Console/ConSplitterDxe/ConSplitterDxe.inf - Platform/RaspberryPi/Drivers/GraphicsConsoleDxe/GraphicsConsoleDxe.inf + MdeModulePkg/Universal/Console/GraphicsConsoleDxe/GraphicsConsoleDxe.inf MdeModulePkg/Universal/Console/TerminalDxe/TerminalDxe.inf MdeModulePkg/Universal/SerialDxe/SerialDxe.inf Platform/RaspberryPi/Drivers/DisplayDxe/DisplayDxe.inf diff --git a/Platform/RaspberryPi/RPi4/RPi4.fdf b/Platform/RaspberryPi/RPi4= /RPi4.fdf index a59d3b601a86..b21643639131 100644 --- a/Platform/RaspberryPi/RPi4/RPi4.fdf +++ b/Platform/RaspberryPi/RPi4/RPi4.fdf @@ -194,7 +194,7 @@ [FV.FvMain] # INF MdeModulePkg/Universal/Console/ConPlatformDxe/ConPlatformDxe.inf INF MdeModulePkg/Universal/Console/ConSplitterDxe/ConSplitterDxe.inf - INF Platform/RaspberryPi/Drivers/GraphicsConsoleDxe/GraphicsConsoleDxe.i= nf + INF MdeModulePkg/Universal/Console/GraphicsConsoleDxe/GraphicsConsoleDxe= .inf INF MdeModulePkg/Universal/Console/TerminalDxe/TerminalDxe.inf INF MdeModulePkg/Universal/SerialDxe/SerialDxe.inf INF Platform/RaspberryPi/Drivers/DisplayDxe/DisplayDxe.inf --=20 2.17.1 -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#57351): https://edk2.groups.io/g/devel/message/57351 Mute This Topic: https://groups.io/mt/73012848/1787277 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org] -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- From nobody Fri May 3 12:31:44 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of groups.io designates 66.175.222.12 as permitted sender) client-ip=66.175.222.12; envelope-from=bounce+27952+57352+1787277+3901457@groups.io; helo=web01.groups.io; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.12 as permitted sender) smtp.mailfrom=bounce+27952+57352+1787277+3901457@groups.io ARC-Seal: i=1; a=rsa-sha256; t=1586879044; cv=none; d=zohomail.com; s=zohoarc; b=KLTgZNoRu396Qt+fdxMCFAmsj7i3izjeqiBppOt2uM0oSqyL6UW+1OUEi5ajk1NmgkmoLxdekD2zxsZqFs3xdoKaEN2ThNwGThpBJzLjRbzu8JcKCQMJ2YrIRm29SspLZ2t9H4q3VjkmjRYKZcNiV5+P2dAM15hI1hERwYsqKrE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1586879044; h=Cc:Date:From:In-Reply-To:List-Id:List-Unsubscribe:Message-ID:Reply-To:References:Sender:Subject:To; bh=qFhtRx9P9KtRQx4WqDJiPdgIZMWszhyUfjfg7CpEMBE=; b=EGvdiw3yAJvtKGlMI0foH2zPIVYejTeJFgHDP1mQFZR0qG8Gye1lF3v1g1oKeYhaKBgb/iZVAARHhVsEat+GBjVJ5gmUGuJmSk956+H4G3pM/hvO5VXIaZRWvsaHVg4lglRblPPAcIRL6T/+ooDvA8/ErycN6iwleYevoIB0w7E= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.12 as permitted sender) smtp.mailfrom=bounce+27952+57352+1787277+3901457@groups.io Received: from web01.groups.io (web01.groups.io [66.175.222.12]) by mx.zohomail.com with SMTPS id 1586879044346900.9351461665294; Tue, 14 Apr 2020 08:44:04 -0700 (PDT) Return-Path: X-Received: by 127.0.0.2 with SMTP id xBl6YY1788612xaD51yG8KqW; Tue, 14 Apr 2020 08:44:04 -0700 X-Received: from mail-qv1-f65.google.com (mail-qv1-f65.google.com [209.85.219.65]) by mx.groups.io with SMTP id smtpd.web12.14039.1586879043505485007 for ; Tue, 14 Apr 2020 08:44:03 -0700 X-Received: by mail-qv1-f65.google.com with SMTP id 37so10737qvc.8 for ; Tue, 14 Apr 2020 08:44:03 -0700 (PDT) X-Gm-Message-State: EbX9bF2F5Ls4cHDYEArpadhKx1787277AA= X-Google-Smtp-Source: APiQypLIOFO8cBYKrfu3prTRbOqidjw/YfMbEqz1Zh9kENEWu4NkgyNos6vx64d1ED6+uexDEZlRmA== X-Received: by 2002:a0c:eb0e:: with SMTP id j14mr573382qvp.230.1586879042435; Tue, 14 Apr 2020 08:44:02 -0700 (PDT) X-Received: from localhost.localdomain (99-132-126-10.lightspeed.chrlnc.sbcglobal.net. [99.132.126.10]) by smtp.gmail.com with ESMTPSA id y126sm10667585qke.28.2020.04.14.08.44.01 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 14 Apr 2020 08:44:01 -0700 (PDT) From: "Samer El-Haj-Mahmoud" To: devel@edk2.groups.io Cc: Leif Lindholm , Ard Biesheuvel , Pete Batard , Andrei Warkentin Subject: [edk2-devel] [edk2-platform][PATCH v2 2/3] Platform/RaspberryPi/RPi3: Switch to common GraphicsConsoleDxe Date: Tue, 14 Apr 2020 11:43:57 -0400 Message-Id: <20200414154358.5161-3-samer@elhajmahmoud.com> In-Reply-To: <20200414154358.5161-1-samer@elhajmahmoud.com> References: <20200414154358.5161-1-samer@elhajmahmoud.com> Precedence: Bulk List-Unsubscribe: Sender: devel@edk2.groups.io List-Id: Mailing-List: list devel@edk2.groups.io; contact devel+owner@edk2.groups.io Reply-To: devel@edk2.groups.io,samer@elhajmahmoud.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=groups.io; q=dns/txt; s=20140610; t=1586879044; bh=Zrp++sHfwRqQCw1T/BpVyGEWRVoi3zROK5uaSqPxayg=; h=Cc:Date:From:Reply-To:Subject:To; b=JkJLXT2SMcnoipZbtn7fyTO92YtXuh6rGhhHjBA9QZeq7A5DjxiZdAb3+kUSfV6ieja qgrEx8SqF8j6yUDLC82HqEERSfYTNe8Y8T2N1c9Yjv7p61xOy7AMopC/KeoGhS9pqf3Ij FAwQpMWvwuVwa+yDCezEfmhsl6ndzlCmTJ4= X-ZohoMail-DKIM: pass (identity @groups.io) Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Switch from the PI specific GraphicsConsoleDxe driver to the common driver in MdeModulePkg. There is no need to carry RPi specific version. This resolves https://github.com/pftf/RPi4/issues/32 Cc: Leif Lindholm Cc: Ard Biesheuvel Cc: Pete Batard Cc: Andrei Warkentin Signed-off-by: Samer El-Haj-Mahmoud Reviewed-by: Andrei Warkentin --- Notes: v2: - Set PcdUgaConsumeSupport to FALSE [Ard] Platform/RaspberryPi/RPi3/RPi3.dsc | 3 ++- Platform/RaspberryPi/RPi3/RPi3.fdf | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/Platform/RaspberryPi/RPi3/RPi3.dsc b/Platform/RaspberryPi/RPi3= /RPi3.dsc index 9ceb0f11c7fe..a451e2a82b59 100644 --- a/Platform/RaspberryPi/RPi3/RPi3.dsc +++ b/Platform/RaspberryPi/RPi3/RPi3.dsc @@ -240,6 +240,7 @@ [PcdsFeatureFlag.common] # It could be set FALSE to save size. gEfiMdeModulePkgTokenSpaceGuid.PcdConOutGopSupport|TRUE gEfiMdeModulePkgTokenSpaceGuid.PcdConOutUgaSupport|FALSE + gEfiMdePkgTokenSpaceGuid.PcdUgaConsumeSupport|FALSE =20 [PcdsFixedAtBuild.common] gEfiMdePkgTokenSpaceGuid.PcdMaximumUnicodeStringLength|1000000 @@ -545,7 +546,7 @@ [Components.common] =20 MdeModulePkg/Universal/Console/ConPlatformDxe/ConPlatformDxe.inf MdeModulePkg/Universal/Console/ConSplitterDxe/ConSplitterDxe.inf - Platform/RaspberryPi/Drivers/GraphicsConsoleDxe/GraphicsConsoleDxe.inf + MdeModulePkg/Universal/Console/GraphicsConsoleDxe/GraphicsConsoleDxe.inf MdeModulePkg/Universal/Console/TerminalDxe/TerminalDxe.inf MdeModulePkg/Universal/SerialDxe/SerialDxe.inf Platform/RaspberryPi/Drivers/DisplayDxe/DisplayDxe.inf diff --git a/Platform/RaspberryPi/RPi3/RPi3.fdf b/Platform/RaspberryPi/RPi3= /RPi3.fdf index 66c2cbada59b..e467b5cd31df 100644 --- a/Platform/RaspberryPi/RPi3/RPi3.fdf +++ b/Platform/RaspberryPi/RPi3/RPi3.fdf @@ -206,7 +206,7 @@ [FV.FvMain] # INF MdeModulePkg/Universal/Console/ConPlatformDxe/ConPlatformDxe.inf INF MdeModulePkg/Universal/Console/ConSplitterDxe/ConSplitterDxe.inf - INF Platform/RaspberryPi/Drivers/GraphicsConsoleDxe/GraphicsConsoleDxe.i= nf + INF MdeModulePkg/Universal/Console/GraphicsConsoleDxe/GraphicsConsoleDxe= .inf INF MdeModulePkg/Universal/Console/TerminalDxe/TerminalDxe.inf INF MdeModulePkg/Universal/SerialDxe/SerialDxe.inf INF Platform/RaspberryPi/Drivers/DisplayDxe/DisplayDxe.inf --=20 2.17.1 -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#57352): https://edk2.groups.io/g/devel/message/57352 Mute This Topic: https://groups.io/mt/73012849/1787277 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org] -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- From nobody Fri May 3 12:31:44 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of groups.io designates 66.175.222.12 as permitted sender) client-ip=66.175.222.12; envelope-from=bounce+27952+57353+1787277+3901457@groups.io; helo=web01.groups.io; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.12 as permitted sender) smtp.mailfrom=bounce+27952+57353+1787277+3901457@groups.io ARC-Seal: i=1; a=rsa-sha256; t=1586879050; cv=none; d=zohomail.com; s=zohoarc; b=fl53u9zkVaq5Oa53cPiE6w8WN3iirjOxrNufzJav95puQnVDdi9cDjOvr/Mn7VYgBtNEshFm2/meTiZAasrsjoPxhnIwArJpbBN2yko0JFPKpc7NcyoeaS/oGO6TlA+JgYbci1oLNaV0vwkaQ3fbrujuo1k6HLPIhJa7x3st8K4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1586879050; h=Cc:Date:From:In-Reply-To:List-Id:List-Unsubscribe:Message-ID:Reply-To:References:Sender:Subject:To; bh=jwp/KNGGErhgVQU8l1F30i18ZdZUrWNZufYbTbPtXsQ=; b=Yu1GLPyB/0qT0r5S4QKsTzHJ4j2vmqdgF8SzyxUFFHWEgYVa+rsc/PfXE2NHmjf0LY7PrEv7r4yyHuoQcQImCPfrL6QQL0qspG73XUy01Y+UZSLSLj3bP7L8y2AARRG8sF4MO1OL9rjv1Hom42vQO5/PgBbw/atGUJFi43S+sBc= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.12 as permitted sender) smtp.mailfrom=bounce+27952+57353+1787277+3901457@groups.io Received: from web01.groups.io (web01.groups.io [66.175.222.12]) by mx.zohomail.com with SMTPS id 1586879050852361.42765500358746; Tue, 14 Apr 2020 08:44:10 -0700 (PDT) Return-Path: X-Received: by 127.0.0.2 with SMTP id p58mYY1788612xqwPQ09F1hU; Tue, 14 Apr 2020 08:44:10 -0700 X-Received: from mail-qv1-f65.google.com (mail-qv1-f65.google.com [209.85.219.65]) by mx.groups.io with SMTP id smtpd.web12.14042.1586879049583945385 for ; Tue, 14 Apr 2020 08:44:09 -0700 X-Received: by mail-qv1-f65.google.com with SMTP id s3so4370724qvk.12 for ; Tue, 14 Apr 2020 08:44:09 -0700 (PDT) X-Gm-Message-State: tanqyHfjdldq54tdAlD7UjxUx1787277AA= X-Google-Smtp-Source: APiQypK2O8eGSY51lWQmip+LyNtgcBcqbGyatd+kii9/ka6EJjpYifhdPY2/Ob3n9RsycaFJUEBTKQ== X-Received: by 2002:ad4:4182:: with SMTP id e2mr593643qvp.61.1586879045598; Tue, 14 Apr 2020 08:44:05 -0700 (PDT) X-Received: from localhost.localdomain (99-132-126-10.lightspeed.chrlnc.sbcglobal.net. [99.132.126.10]) by smtp.gmail.com with ESMTPSA id y126sm10667585qke.28.2020.04.14.08.44.02 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 14 Apr 2020 08:44:03 -0700 (PDT) From: "Samer El-Haj-Mahmoud" To: devel@edk2.groups.io Cc: Leif Lindholm , Ard Biesheuvel , Pete Batard , Andrei Warkentin Subject: [edk2-devel] [edk2-platform][PATCH v2 3/3] Platform/RaspberryPi:Remove RPi GraphicsConsoleDxe Date: Tue, 14 Apr 2020 11:43:58 -0400 Message-Id: <20200414154358.5161-4-samer@elhajmahmoud.com> In-Reply-To: <20200414154358.5161-1-samer@elhajmahmoud.com> References: <20200414154358.5161-1-samer@elhajmahmoud.com> Precedence: Bulk List-Unsubscribe: Sender: devel@edk2.groups.io List-Id: Mailing-List: list devel@edk2.groups.io; contact devel+owner@edk2.groups.io Reply-To: devel@edk2.groups.io,samer@elhajmahmoud.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=groups.io; q=dns/txt; s=20140610; t=1586879050; bh=ER7miem9PWQCpPT95Z038E0UyolstrvlcupOvgoVbOU=; h=Cc:Date:From:Reply-To:Subject:To; b=WaxgQKGFEWRdqOf1RsqasAo1+Inmr8e86doYKlTeN8i1+Ozs3aJHsFF/Kw4wNu6TGV2 sh19OZakuminwJSlMJl5fwqyr963PtVESIQgnJSYSFFnbfzDyvqWtk1/ccWog6iEWBhfZ 4I+6jPuuTuLLdj1MdJmye9WCzU2p+rVh25c= X-ZohoMail-DKIM: pass (identity @groups.io) Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Remove the PI specific GraphicsConsoleDxe driver, since RPi3/RPi4 switched to using the common driver in MdeModulePkg. This resolves https://github.com/pftf/RPi4/issues/32 Cc: Leif Lindholm Cc: Ard Biesheuvel Cc: Pete Batard Cc: Andrei Warkentin Signed-off-by: Samer El-Haj-Mahmoud Reviewed-by: Andrei Warkentin --- Platform/RaspberryPi/Drivers/GraphicsConsoleDxe/GraphicsConsoleDxe.inf = | 68 - Platform/RaspberryPi/Drivers/GraphicsConsoleDxe/GraphicsConsole.h = | 585 ------- Platform/RaspberryPi/Drivers/GraphicsConsoleDxe/ComponentName.c = | 177 -- Platform/RaspberryPi/Drivers/GraphicsConsoleDxe/GraphicsConsole.c = | 1831 -------------------- Platform/RaspberryPi/Drivers/GraphicsConsoleDxe/NewFont.c = | 281 --- Platform/RaspberryPi/Drivers/GraphicsConsoleDxe/GraphicsConsoleDxe.uni = | 12 - Platform/RaspberryPi/Drivers/GraphicsConsoleDxe/GraphicsConsoleDxeExtra.un= i | 12 - 7 files changed, 2966 deletions(-) diff --git a/Platform/RaspberryPi/Drivers/GraphicsConsoleDxe/GraphicsConsol= eDxe.inf b/Platform/RaspberryPi/Drivers/GraphicsConsoleDxe/GraphicsConsoleD= xe.inf deleted file mode 100644 index 8a8c5a44b6a0..000000000000 --- a/Platform/RaspberryPi/Drivers/GraphicsConsoleDxe/GraphicsConsoleDxe.inf +++ /dev/null @@ -1,68 +0,0 @@ -#/** @file -# -# Copyright (c) 2006-2014, Intel Corporation. All rights reserved. -# Copyright (c) 2018, Andrei Warkentin -# -# SPDX-License-Identifier: BSD-2-Clause-Patent -# -#**/ - -[Defines] - INF_VERSION =3D 0x0001001A - BASE_NAME =3D GraphicsConsoleDxe - MODULE_UNI_FILE =3D GraphicsConsoleDxe.uni - FILE_GUID =3D CCCB0C28-4B24-11d5-9A5A-0090273FC14D - MODULE_TYPE =3D UEFI_DRIVER - VERSION_STRING =3D 1.1 - ENTRY_POINT =3D InitializeGraphicsConsole - -# -# The following information is for reference only and not required by the = build tools. -# -# VALID_ARCHITECTURES =3D IA32 X64 IPF EBC AARCH64 -# -# DRIVER_BINDING =3D gGraphicsConsoleDriverBinding -# COMPONENT_NAME =3D gGraphicsConsoleComponentName -# COMPONENT_NAME2 =3D gGraphicsConsoleComponentName2 -# - -[Sources] - ComponentName.c - NewFont.c - GraphicsConsole.c - GraphicsConsole.h - -[Packages] - MdePkg/MdePkg.dec - MdeModulePkg/MdeModulePkg.dec - Silicon/Broadcom/Bcm283x/Bcm283x.dec - Platform/RaspberryPi/RaspberryPi.dec - -[LibraryClasses] - UefiBootServicesTableLib - UefiRuntimeServicesTableLib - MemoryAllocationLib - BmpSupportLib - BaseMemoryLib - UefiLib - UefiDriverEntryPoint - DebugLib - HiiLib - PcdLib - -[Protocols] - gEfiDevicePathProtocolGuid - gEfiSimpleTextOutProtocolGuid - gEfiGraphicsOutputProtocolGuid - gEfiHiiFontProtocolGuid - gEfiHiiDatabaseProtocolGuid - gExtendedTextOutputProtocolGuid - -[FeaturePcd] - -[Pcd] - gEfiMdeModulePkgTokenSpaceGuid.PcdVideoHorizontalResolution ## SOMETIMES= _CONSUMES - gEfiMdeModulePkgTokenSpaceGuid.PcdVideoVerticalResolution ## SOMETIMES= _CONSUMES - -[UserExtensions.TianoCore."ExtraFiles"] - GraphicsConsoleDxeExtra.uni diff --git a/Platform/RaspberryPi/Drivers/GraphicsConsoleDxe/GraphicsConsol= e.h b/Platform/RaspberryPi/Drivers/GraphicsConsoleDxe/GraphicsConsole.h deleted file mode 100644 index 62980fd03dd7..000000000000 --- a/Platform/RaspberryPi/Drivers/GraphicsConsoleDxe/GraphicsConsole.h +++ /dev/null @@ -1,585 +0,0 @@ -/** @file - * - * Copyright (c) 2018, Andrei Warkentin - * Copyright (c) 2006-2016, Intel Corporation. All rights reserved. - * - * SPDX-License-Identifier: BSD-2-Clause-Patent - * - **/ - -#ifndef _GRAPHICS_CONSOLE_H_ -#define _GRAPHICS_CONSOLE_H_ - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -extern EFI_COMPONENT_NAME_PROTOCOL gGraphicsConsoleComponentName; -extern EFI_COMPONENT_NAME2_PROTOCOL gGraphicsConsoleComponentName2; -extern EFI_DRIVER_BINDING_PROTOCOL gGraphicsConsoleDriverBinding; -extern EFI_NARROW_GLYPH gUsStdNarrowGlyphData[]; - -extern UINT32 mNarrowFontSize; - -typedef union { - EFI_NARROW_GLYPH NarrowGlyph; - EFI_WIDE_GLYPH WideGlyph; -} GLYPH_UNION; - -// -// Device Structure -// -#define GRAPHICS_CONSOLE_DEV_SIGNATURE SIGNATURE_32 ('g', 's', 't', 'o') - -typedef struct { - UINTN Columns; - UINTN Rows; - INTN DeltaX; - INTN DeltaY; - UINT32 GopWidth; - UINT32 GopHeight; - UINT32 GopModeNumber; -} GRAPHICS_CONSOLE_MODE_DATA; - -typedef struct { - UINTN Signature; - EFI_GRAPHICS_OUTPUT_PROTOCOL *GraphicsOutput; - EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL SimpleTextOutput; - EFI_SIMPLE_TEXT_OUTPUT_MODE SimpleTextOutputMode; - GRAPHICS_CONSOLE_MODE_DATA *ModeData; - EFI_GRAPHICS_OUTPUT_BLT_PIXEL *LineBuffer; - EXTENDED_TEXT_OUTPUT_PROTOCOL ExtendedTextOutput; -} GRAPHICS_CONSOLE_DEV; - -#define GRAPHICS_CONSOLE_CON_OUT_DEV_FROM_THIS(a) \ - CR (a, GRAPHICS_CONSOLE_DEV, SimpleTextOutput, GRAPHICS_CONSOLE_DEV_SIGN= ATURE) - - -// -// EFI Component Name Functions -// -/** - Retrieves a Unicode string that is the user readable name of the driver. - - This function retrieves the user readable name of a driver in the form o= f a - Unicode string. If the driver specified by This has a user readable name= in - the language specified by Language, then a pointer to the driver name is - returned in DriverName, and EFI_SUCCESS is returned. If the driver speci= fied - by This does not support the language specified by Language, - then EFI_UNSUPPORTED is returned. - - @param This[in] A pointer to the EFI_COMPONENT_NAME2_PROTO= COL or - EFI_COMPONENT_NAME_PROTOCOL instance. - - @param Language[in] A pointer to a Null-terminated ASCII string - array indicating the language. This is the - language of the driver name that the calle= r is - requesting, and it must match one of the - languages specified in SupportedLanguages.= The - number of languages supported by a driver = is up - to the driver writer. Language is specified - in RFC 4646 or ISO 639-2 language code for= mat. - - @param DriverName[out] A pointer to the Unicode string to return. - This Unicode string is the name of the - driver specified by This in the language - specified by Language. - - @retval EFI_SUCCESS The Unicode string for the Driver specifie= d by - This and the language specified by Languag= e was - returned in DriverName. - - @retval EFI_INVALID_PARAMETER Language is NULL. - - @retval EFI_INVALID_PARAMETER DriverName is NULL. - - @retval EFI_UNSUPPORTED The driver specified by This does not supp= ort - the language specified by Language. - -**/ -EFI_STATUS -EFIAPI -GraphicsConsoleComponentNameGetDriverName ( - IN EFI_COMPONENT_NAME_PROTOCOL *This, - IN CHAR8 *Language, - OUT CHAR16 **DriverName - ); - - -/** - Retrieves a Unicode string that is the user readable name of the control= ler - that is being managed by a driver. - - This function retrieves the user readable name of the controller specifi= ed by - ControllerHandle and ChildHandle in the form of a Unicode string. If the - driver specified by This has a user readable name in the language specif= ied by - Language, then a pointer to the controller name is returned in Controlle= rName, - and EFI_SUCCESS is returned. If the driver specified by This is not cur= rently - managing the controller specified by ControllerHandle and ChildHandle, - then EFI_UNSUPPORTED is returned. If the driver specified by This does = not - support the language specified by Language, then EFI_UNSUPPORTED is retu= rned. - - @param This[in] A pointer to the EFI_COMPONENT_NAME2_PROTO= COL or - EFI_COMPONENT_NAME_PROTOCOL instance. - - @param ControllerHandle[in] The handle of a controller that the driver - specified by This is managing. This handle - specifies the controller whose name is to = be - returned. - - @param ChildHandle[in] The handle of the child controller to retr= ieve - the name of. This is an optional paramete= r that - may be NULL. It will be NULL for device - drivers. It will also be NULL for a bus d= rivers - that wish to retrieve the name of the bus - controller. It will not be NULL for a bus - driver that wishes to retrieve the name of= a - child controller. - - @param Language[in] A pointer to a Null-terminated ASCII string - array indicating the language. This is the - language of the driver name that the calle= r is - requesting, and it must match one of the - languages specified in SupportedLanguages.= The - number of languages supported by a driver = is up - to the driver writer. Language is specifie= d in - RFC 4646 or ISO 639-2 language code format. - - @param ControllerName[out] A pointer to the Unicode string to return. - This Unicode string is the name of the - controller specified by ControllerHandle a= nd - ChildHandle in the language specified by - Language from the point of view of the dri= ver - specified by This. - - @retval EFI_SUCCESS The Unicode string for the user readable n= ame in - the language specified by Language for the - driver specified by This was returned in - DriverName. - - @retval EFI_INVALID_PARAMETER ControllerHandle is NULL. - - @retval EFI_INVALID_PARAMETER ChildHandle is not NULL and it is not a va= lid - EFI_HANDLE. - - @retval EFI_INVALID_PARAMETER Language is NULL. - - @retval EFI_INVALID_PARAMETER ControllerName is NULL. - - @retval EFI_UNSUPPORTED The driver specified by This is not curren= tly - managing the controller specified by - ControllerHandle and ChildHandle. - - @retval EFI_UNSUPPORTED The driver specified by This does not supp= ort - the language specified by Language. - -**/ -EFI_STATUS -EFIAPI -GraphicsConsoleComponentNameGetControllerName ( - IN EFI_COMPONENT_NAME_PROTOCOL *This, - IN EFI_HANDLE ControllerHandle, - IN EFI_HANDLE ChildHandle O= PTIONAL, - IN CHAR8 *Language, - OUT CHAR16 **ControllerName - ); - - -/** - Reset the text output device hardware and optionally run diagnostics. - - Implements SIMPLE_TEXT_OUTPUT.Reset(). - If ExtendeVerification is TRUE, then perform dependent Graphics Console - device reset, and set display mode to mode 0. - If ExtendedVerification is FALSE, only set display mode to mode 0. - - @param This Protocol instance pointer. - @param ExtendedVerification Indicates that the driver may perform a mo= re - exhaustive verification operation of the d= evice - during reset. - - @retval EFI_SUCCESS The text output device was reset. - @retval EFI_DEVICE_ERROR The text output device is not functioning c= orrectly and - could not be reset. - -**/ -EFI_STATUS -EFIAPI -GraphicsConsoleConOutReset ( - IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This, - IN BOOLEAN ExtendedVerification - ); - -/** - Write a Unicode string to the output device. - - Implements SIMPLE_TEXT_OUTPUT.OutputString(). - The Unicode string will be converted to Glyphs and will be - sent to the Graphics Console. - - @param This Protocol instance pointer. - @param WString The NULL-terminated Unicode string to be= displayed - on the output device(s). All output devi= ces must - also support the Unicode drawing defined= in this file. - - @retval EFI_SUCCESS The string was output to the device. - @retval EFI_DEVICE_ERROR The device reported an error while attem= pting to output - the text. - @retval EFI_UNSUPPORTED The output device's mode is not currentl= y in a - defined text mode. - @retval EFI_WARN_UNKNOWN_GLYPH This warning code indicates that some of= the - characters in the Unicode string could n= ot be - rendered and were skipped. - -**/ -EFI_STATUS -EFIAPI -GraphicsConsoleConOutOutputString ( - IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This, - IN CHAR16 *WString - ); - -/** - Verifies that all characters in a Unicode string can be output to the - target device. - - Implements SIMPLE_TEXT_OUTPUT.TestString(). - If one of the characters in the *Wstring is neither valid valid Unicode - drawing characters, not ASCII code, then this function will return - EFI_UNSUPPORTED - - @param This Protocol instance pointer. - @param WString The NULL-terminated Unicode string to be examined for th= e output - device(s). - - @retval EFI_SUCCESS The device(s) are capable of rendering the outp= ut string. - @retval EFI_UNSUPPORTED Some of the characters in the Unicode string ca= nnot be - rendered by one or more of the output devices m= apped - by the EFI handle. - -**/ -EFI_STATUS -EFIAPI -GraphicsConsoleConOutTestString ( - IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This, - IN CHAR16 *WString - ); - -/** - Returns information for an available text mode that the output device(s) - supports - - Implements SIMPLE_TEXT_OUTPUT.QueryMode(). - It returnes information for an available text mode that the Graphics Con= sole supports. - In this driver,we only support text mode 80x25, which is defined as mode= 0. - - @param This Protocol instance pointer. - @param ModeNumber The mode number to return information on. - @param Columns The returned columns of the requested mode. - @param Rows The returned rows of the requested mode. - - @retval EFI_SUCCESS The requested mode information is returned. - @retval EFI_UNSUPPORTED The mode number is not valid. - -**/ -EFI_STATUS -EFIAPI -GraphicsConsoleConOutQueryMode ( - IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This, - IN UINTN ModeNumber, - OUT UINTN *Columns, - OUT UINTN *Rows - ); - - -/** - Sets the output device(s) to a specified mode. - - Implements SIMPLE_TEXT_OUTPUT.SetMode(). - Set the Graphics Console to a specified mode. In this driver, we only su= pport mode 0. - - @param This Protocol instance pointer. - @param ModeNumber The text mode to set. - - @retval EFI_SUCCESS The requested text mode is set. - @retval EFI_DEVICE_ERROR The requested text mode cannot be set beca= use of - Graphics Console device error. - @retval EFI_UNSUPPORTED The text mode number is not valid. - -**/ -EFI_STATUS -EFIAPI -GraphicsConsoleConOutSetMode ( - IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This, - IN UINTN ModeNumber - ); - -/** - Sets the background and foreground colors for the OutputString () and - ClearScreen () functions. - - Implements SIMPLE_TEXT_OUTPUT.SetAttribute(). - - @param This Protocol instance pointer. - @param Attribute The attribute to set. Bits 0..3 are the fo= reground - color, and bits 4..6 are the background co= lor. - All other bits are undefined and must be z= ero. - - @retval EFI_SUCCESS The requested attribute is set. - @retval EFI_DEVICE_ERROR The requested attribute cannot be set due = to Graphics Console port error. - @retval EFI_UNSUPPORTED The attribute requested is not defined. - -**/ -EFI_STATUS -EFIAPI -GraphicsConsoleConOutSetAttribute ( - IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This, - IN UINTN Attribute - ); - -/** - Clears the output device(s) display to the currently selected background - color. - - Implements SIMPLE_TEXT_OUTPUT.ClearScreen(). - - @param This Protocol instance pointer. - - @retval EFI_SUCCESS The operation completed successfully. - @retval EFI_DEVICE_ERROR The device had an error and could not complete= the request. - @retval EFI_UNSUPPORTED The output device is not in a valid text mode. - -**/ -EFI_STATUS -EFIAPI -GraphicsConsoleConOutClearScreen ( - IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This - ); - -/** - Sets the current coordinates of the cursor position. - - Implements SIMPLE_TEXT_OUTPUT.SetCursorPosition(). - - @param This Protocol instance pointer. - @param Column The position to set the cursor to. Must be greater t= han or - equal to zero and less than the number of columns an= d rows - by QueryMode (). - @param Row The position to set the cursor to. Must be greater t= han or - equal to zero and less than the number of columns an= d rows - by QueryMode (). - - @retval EFI_SUCCESS The operation completed successfully. - @retval EFI_DEVICE_ERROR The device had an error and could not complete = the request. - @retval EFI_UNSUPPORTED The output device is not in a valid text mode, = or the - cursor position is invalid for the current mode. - -**/ -EFI_STATUS -EFIAPI -GraphicsConsoleConOutSetCursorPosition ( - IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This, - IN UINTN Column, - IN UINTN Row - ); - - -/** - Makes the cursor visible or invisible. - - Implements SIMPLE_TEXT_OUTPUT.EnableCursor(). - - @param This Protocol instance pointer. - @param Visible If TRUE, the cursor is set to be visible, = If FALSE, - the cursor is set to be invisible. - - @retval EFI_SUCCESS The operation completed successfully. - -**/ -EFI_STATUS -EFIAPI -GraphicsConsoleConOutEnableCursor ( - IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This, - IN BOOLEAN Visible - ); - -/** - Test to see if Graphics Console could be supported on the Controller. - - Graphics Console could be supported if Graphics Output Protocol exists - on the Controller. - - @param This Protocol instance pointer. - @param Controller Handle of device to test. - @param RemainingDevicePath Optional parameter use to pick a specific ch= ild - device to start. - - @retval EFI_SUCCESS This driver supports this device. - @retval other This driver does not support this device. - -**/ -EFI_STATUS -EFIAPI -GraphicsConsoleControllerDriverSupported ( - IN EFI_DRIVER_BINDING_PROTOCOL *This, - IN EFI_HANDLE Controller, - IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath - ); - - -/** - Start this driver on Controller by opening the Graphics Output Protocol, - and installing Simple Text Out protocol on Controller. - - @param This Protocol instance pointer. - @param Controller Handle of device to bind driver to - @param RemainingDevicePath Optional parameter use to pick a specific c= hild - device to start. - - @retval EFI_SUCCESS This driver is added to Controller. - @retval other This driver does not support this device. - -**/ -EFI_STATUS -EFIAPI -GraphicsConsoleControllerDriverStart ( - IN EFI_DRIVER_BINDING_PROTOCOL *This, - IN EFI_HANDLE Controller, - IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath - ); - -/** - Stop this driver on Controller by removing Simple Text Out protocol - and closing the Graphics Output Protocol on Controller. - - @param This Protocol instance pointer. - @param Controller Handle of device to stop driver on - @param NumberOfChildren Number of Handles in ChildHandleBuffer. If num= ber of - children is zero stop the entire bus driver. - @param ChildHandleBuffer List of Child Handles to Stop. - - @retval EFI_SUCCESS This driver is removed Controller. - @retval EFI_NOT_STARTED Simple Text Out protocol could not be found the - Controller. - @retval other This driver was not removed from this device. - -**/ -EFI_STATUS -EFIAPI -GraphicsConsoleControllerDriverStop ( - IN EFI_DRIVER_BINDING_PROTOCOL *This, - IN EFI_HANDLE Controller, - IN UINTN NumberOfChildren, - IN EFI_HANDLE *ChildHandleBuffer - ); - - -/** - Locate HII Database protocol and HII Font protocol. - - @retval EFI_SUCCESS HII Database protocol and HII Font protocol - are located successfully. - @return other Failed to locate HII Database protocol or - HII Font protocol. - -**/ -EFI_STATUS -EfiLocateHiiProtocol ( - VOID - ); - - -/** - Gets Graphics Console devcie's foreground color and background color. - - @param This Protocol instance pointer. - @param Foreground Returned text foreground color. - @param Background Returned text background color. - - @retval EFI_SUCCESS It returned always. - -**/ -EFI_STATUS -GetTextColors ( - IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This, - OUT EFI_GRAPHICS_OUTPUT_BLT_PIXEL *Foreground, - OUT EFI_GRAPHICS_OUTPUT_BLT_PIXEL *Background - ); - -/** - Draw Unicode string on the Graphics Console device's screen. - - @param This Protocol instance pointer. - @param UnicodeWeight One Unicode string to be displayed. - @param Count The count of Unicode string. - - @retval EFI_OUT_OF_RESOURCES If no memory resource to use. - @retval EFI_UNSUPPORTED If no Graphics Output Protocol exists. - @retval EFI_SUCCESS Drawing Unicode string implemented success= fully. - -**/ -EFI_STATUS -DrawUnicodeWeightAtCursorN ( - IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This, - IN CHAR16 *UnicodeWeight, - IN UINTN Count - ); - -/** - Flush the cursor on the screen. - - If CursorVisible is FALSE, nothing to do and return directly. - If CursorVisible is TRUE, - i) If the cursor shows on screen, it will be erased. - ii) If the cursor does not show on screen, it will be shown. - - @param This Protocol instance pointer. - - @retval EFI_SUCCESS The cursor is erased successfully. - -**/ -EFI_STATUS -FlushCursor ( - IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This - ); - -/** - Check if the current specific mode supported the user defined resolution - for the Graphics Console device based on Graphics Output Protocol. - - If yes, set the graphic device's current mode to this specific mode. - - @param GraphicsOutput Graphics Output Protocol instance pointer. - @param HorizontalResolution User defined horizontal resolution - @param VerticalResolution User defined vertical resolution. - @param CurrentModeNumber Current specific mode to be check. - - @retval EFI_SUCCESS The mode is supported. - @retval EFI_UNSUPPORTED The specific mode is out of range of graphics - device supported. - @retval other The specific mode does not support user defined - resolution or failed to set the current mode t= o the - specific mode on graphics device. - -**/ -EFI_STATUS -CheckModeSupported ( - EFI_GRAPHICS_OUTPUT_PROTOCOL *GraphicsOutput, - IN UINT32 HorizontalResolution, - IN UINT32 VerticalResolution, - OUT UINT32 *CurrentModeNumber - ); - -#endif diff --git a/Platform/RaspberryPi/Drivers/GraphicsConsoleDxe/ComponentName.= c b/Platform/RaspberryPi/Drivers/GraphicsConsoleDxe/ComponentName.c deleted file mode 100644 index 6a094bfedaaf..000000000000 --- a/Platform/RaspberryPi/Drivers/GraphicsConsoleDxe/ComponentName.c +++ /dev/null @@ -1,177 +0,0 @@ -/** @file - * - * Copyright (c) 2018, Andrei Warkentin - * Copyright (c) 2006-2016, Intel Corporation. All rights reserved. - * - * SPDX-License-Identifier: BSD-2-Clause-Patent - * - **/ - -#include "GraphicsConsole.h" - -// -// EFI Component Name Protocol -// -GLOBAL_REMOVE_IF_UNREFERENCED EFI_COMPONENT_NAME_PROTOCOL gGraphicsConsol= eComponentName =3D { - GraphicsConsoleComponentNameGetDriverName, - GraphicsConsoleComponentNameGetControllerName, - "eng" -}; - -// -// EFI Component Name 2 Protocol -// -GLOBAL_REMOVE_IF_UNREFERENCED EFI_COMPONENT_NAME2_PROTOCOL gGraphicsConsol= eComponentName2 =3D { - (EFI_COMPONENT_NAME2_GET_DRIVER_NAME)GraphicsConsoleComponentNameGetDriv= erName, - (EFI_COMPONENT_NAME2_GET_CONTROLLER_NAME)GraphicsConsoleComponentNameGet= ControllerName, - "en" -}; - - -GLOBAL_REMOVE_IF_UNREFERENCED EFI_UNICODE_STRING_TABLE mGraphicsConsoleDri= verNameTable[] =3D { - { - "eng;en", - (CHAR16*)L"Graphics Console Driver" - }, - { - NULL, - NULL - } -}; - -/** - Retrieves a Unicode string that is the user readable name of the driver. - - This function retrieves the user readable name of a driver in the form o= f a - Unicode string. If the driver specified by This has a user readable name= in - the language specified by Language, then a pointer to the driver name is - returned in DriverName, and EFI_SUCCESS is returned. If the driver speci= fied - by This does not support the language specified by Language, - then EFI_UNSUPPORTED is returned. - - @param This[in] A pointer to the EFI_COMPONENT_NAME2_PROTO= COL or - EFI_COMPONENT_NAME_PROTOCOL instance. - - @param Language[in] A pointer to a Null-terminated ASCII string - array indicating the language. This is the - language of the driver name that the calle= r is - requesting, and it must match one of the - languages specified in SupportedLanguages.= The - number of languages supported by a driver = is up - to the driver writer. Language is specified - in RFC 4646 or ISO 639-2 language code for= mat. - - @param DriverName[out] A pointer to the Unicode string to return. - This Unicode string is the name of the - driver specified by This in the language - specified by Language. - - @retval EFI_SUCCESS The Unicode string for the Driver specifie= d by - This and the language specified by Languag= e was - returned in DriverName. - - @retval EFI_INVALID_PARAMETER Language is NULL. - - @retval EFI_INVALID_PARAMETER DriverName is NULL. - - @retval EFI_UNSUPPORTED The driver specified by This does not supp= ort - the language specified by Language. - -**/ -EFI_STATUS -EFIAPI -GraphicsConsoleComponentNameGetDriverName ( - IN EFI_COMPONENT_NAME_PROTOCOL *This, - IN CHAR8 *Language, - OUT CHAR16 **DriverName - ) -{ - return LookupUnicodeString2 ( - Language, - This->SupportedLanguages, - mGraphicsConsoleDriverNameTable, - DriverName, - (BOOLEAN)(This =3D=3D &gGraphicsConsoleComponentName) - ); -} - -/** - Retrieves a Unicode string that is the user readable name of the control= ler - that is being managed by a driver. - - This function retrieves the user readable name of the controller specifi= ed by - ControllerHandle and ChildHandle in the form of a Unicode string. If the - driver specified by This has a user readable name in the language specif= ied by - Language, then a pointer to the controller name is returned in Controlle= rName, - and EFI_SUCCESS is returned. If the driver specified by This is not cur= rently - managing the controller specified by ControllerHandle and ChildHandle, - then EFI_UNSUPPORTED is returned. If the driver specified by This does = not - support the language specified by Language, then EFI_UNSUPPORTED is retu= rned. - - @param This[in] A pointer to the EFI_COMPONENT_NAME2_PROTO= COL or - EFI_COMPONENT_NAME_PROTOCOL instance. - - @param ControllerHandle[in] The handle of a controller that the driver - specified by This is managing. This handle - specifies the controller whose name is to = be - returned. - - @param ChildHandle[in] The handle of the child controller to retr= ieve - the name of. This is an optional paramete= r that - may be NULL. It will be NULL for device - drivers. It will also be NULL for a bus d= rivers - that wish to retrieve the name of the bus - controller. It will not be NULL for a bus - driver that wishes to retrieve the name of= a - child controller. - - @param Language[in] A pointer to a Null-terminated ASCII string - array indicating the language. This is the - language of the driver name that the calle= r is - requesting, and it must match one of the - languages specified in SupportedLanguages.= The - number of languages supported by a driver = is up - to the driver writer. Language is specifie= d in - RFC 4646 or ISO 639-2 language code format. - - @param ControllerName[out] A pointer to the Unicode string to return. - This Unicode string is the name of the - controller specified by ControllerHandle a= nd - ChildHandle in the language specified by - Language from the point of view of the dri= ver - specified by This. - - @retval EFI_SUCCESS The Unicode string for the user readable n= ame in - the language specified by Language for the - driver specified by This was returned in - DriverName. - - @retval EFI_INVALID_PARAMETER ControllerHandle is NULL. - - @retval EFI_INVALID_PARAMETER ChildHandle is not NULL and it is not a va= lid - EFI_HANDLE. - - @retval EFI_INVALID_PARAMETER Language is NULL. - - @retval EFI_INVALID_PARAMETER ControllerName is NULL. - - @retval EFI_UNSUPPORTED The driver specified by This is not curren= tly - managing the controller specified by - ControllerHandle and ChildHandle. - - @retval EFI_UNSUPPORTED The driver specified by This does not supp= ort - the language specified by Language. - -**/ -EFI_STATUS -EFIAPI -GraphicsConsoleComponentNameGetControllerName ( - IN EFI_COMPONENT_NAME_PROTOCOL *This, - IN EFI_HANDLE ControllerHandle, - IN EFI_HANDLE ChildHandle OPTIONAL, - IN CHAR8 *Language, - OUT CHAR16 **ControllerName - ) -{ - return EFI_UNSUPPORTED; -} diff --git a/Platform/RaspberryPi/Drivers/GraphicsConsoleDxe/GraphicsConsol= e.c b/Platform/RaspberryPi/Drivers/GraphicsConsoleDxe/GraphicsConsole.c deleted file mode 100644 index 5e15b59e7c4f..000000000000 --- a/Platform/RaspberryPi/Drivers/GraphicsConsoleDxe/GraphicsConsole.c +++ /dev/null @@ -1,1831 +0,0 @@ -/** @file - * - * Copyright (c) 2018, Andrei Warkentin - * Copyright (c) 2006-2016, Intel Corporation. All rights reserved. - * - * SPDX-License-Identifier: BSD-2-Clause-Patent - * - **/ - -#include "GraphicsConsole.h" - -// -// Graphics Console Device Private Data template -// -GRAPHICS_CONSOLE_DEV mGraphicsConsoleDevTemplate =3D { - GRAPHICS_CONSOLE_DEV_SIGNATURE, - (EFI_GRAPHICS_OUTPUT_PROTOCOL*)NULL, - { - GraphicsConsoleConOutReset, - GraphicsConsoleConOutOutputString, - GraphicsConsoleConOutTestString, - GraphicsConsoleConOutQueryMode, - GraphicsConsoleConOutSetMode, - GraphicsConsoleConOutSetAttribute, - GraphicsConsoleConOutClearScreen, - GraphicsConsoleConOutSetCursorPosition, - GraphicsConsoleConOutEnableCursor, - (EFI_SIMPLE_TEXT_OUTPUT_MODE*)NULL - }, - { - 0, - -1, - EFI_TEXT_ATTR (EFI_LIGHTGRAY, EFI_BLACK), - 0, - 0, - TRUE - }, - (GRAPHICS_CONSOLE_MODE_DATA*)NULL, - (EFI_GRAPHICS_OUTPUT_BLT_PIXEL*)NULL, - { - (EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL*)NULL, - (EFI_GRAPHICS_OUTPUT_PROTOCOL*)NULL, - TRUE, - } -}; - -GRAPHICS_CONSOLE_MODE_DATA mGraphicsConsoleModeData[] =3D { - {100, 31}, - // - // New modes can be added here. - // The last entry is specific for full screen mode. - // - {0, 0} -}; - -EFI_HII_DATABASE_PROTOCOL *mHiiDatabase; -EFI_HII_FONT_PROTOCOL *mHiiFont; -EFI_HII_HANDLE mHiiHandle; -VOID *mHiiRegistration; - -EFI_GUID mFontPackageListGuid =3D { 0xf5f219d3, 0x7006, 0x4648= , {0xac, 0x8d, 0xd6, 0x1d, 0xfb, 0x7b, 0xc6, 0xad} }; - -CHAR16 mCrLfString[3] =3D { CHAR_CARRIAGE_RETURN, CHAR_LINEF= EED, CHAR_NULL }; - -EFI_GRAPHICS_OUTPUT_BLT_PIXEL mGraphicsEfiColors[16] =3D { - // - // B G R reserved - // - {0x00, 0x00, 0x00, 0x00}, // BLACK - {0x98, 0x00, 0x00, 0x00}, // LIGHTBLUE - {0x00, 0x98, 0x00, 0x00}, // LIGHGREEN - {0x98, 0x98, 0x00, 0x00}, // LIGHCYAN - {0x00, 0x00, 0x98, 0x00}, // LIGHRED - {0x98, 0x00, 0x98, 0x00}, // MAGENTA - {0x00, 0x98, 0x98, 0x00}, // BROWN - {0x98, 0x98, 0x98, 0x00}, // LIGHTGRAY - {0x30, 0x30, 0x30, 0x00}, // DARKGRAY - BRIGHT BLACK - {0xff, 0x00, 0x00, 0x00}, // BLUE - {0x00, 0xff, 0x00, 0x00}, // LIME - {0xff, 0xff, 0x00, 0x00}, // CYAN - {0x00, 0x00, 0xff, 0x00}, // RED - {0xff, 0x00, 0xff, 0x00}, // FUCHSIA - {0x00, 0xff, 0xff, 0x00}, // YELLOW - {0xff, 0xff, 0xff, 0x00} // WHITE -}; - -EFI_NARROW_GLYPH mCursorGlyph =3D { - 0x0000, - 0x00, - { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00= , 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF } -}; - -CHAR16 SpaceStr[] =3D { NARROW_CHAR, ' ', 0 }; - -EFI_DRIVER_BINDING_PROTOCOL gGraphicsConsoleDriverBinding =3D { - GraphicsConsoleControllerDriverSupported, - GraphicsConsoleControllerDriverStart, - GraphicsConsoleControllerDriverStop, - 0xa, - NULL, - NULL -}; - -/** - Test to see if Graphics Console could be supported on the Controller. - - Graphics Console could be supported if Graphics Output Protocol - exists on the Controller. - - @param This Protocol instance pointer. - @param Controller Handle of device to test. - @param RemainingDevicePath Optional parameter use to pick a specific ch= ild - device to start. - - @retval EFI_SUCCESS This driver supports this device. - @retval other This driver does not support this device. - -**/ -EFI_STATUS -EFIAPI -GraphicsConsoleControllerDriverSupported ( - IN EFI_DRIVER_BINDING_PROTOCOL *This, - IN EFI_HANDLE Controller, - IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath - ) -{ - EFI_STATUS Status; - EFI_GRAPHICS_OUTPUT_PROTOCOL *GraphicsOutput; - EFI_DEVICE_PATH_PROTOCOL *DevicePath; - - GraphicsOutput =3D NULL; - // - // Open the IO Abstraction(s) needed to perform the supported test - // - Status =3D gBS->OpenProtocol ( - Controller, - &gEfiGraphicsOutputProtocolGuid, - (VOID**)&GraphicsOutput, - This->DriverBindingHandle, - Controller, - EFI_OPEN_PROTOCOL_BY_DRIVER - ); - if (EFI_ERROR (Status)) { - return Status; - } - - ASSERT (GraphicsOutput !=3D NULL); - - // - // We need to ensure that we do not layer on top of a virtual handle. - // We need to ensure that the handles produced by the conspliter do not - // get used. - // - Status =3D gBS->OpenProtocol ( - Controller, - &gEfiDevicePathProtocolGuid, - (VOID**)&DevicePath, - This->DriverBindingHandle, - Controller, - EFI_OPEN_PROTOCOL_BY_DRIVER - ); - if (!EFI_ERROR (Status)) { - gBS->CloseProtocol ( - Controller, - &gEfiDevicePathProtocolGuid, - This->DriverBindingHandle, - Controller - ); - } else { - goto Error; - } - - // - // Does Hii Exist? If not, we aren't ready to run - // - Status =3D EfiLocateHiiProtocol (); - - // - // Close the I/O Abstraction(s) used to perform the supported test - // -Error: - gBS->CloseProtocol ( - Controller, - &gEfiGraphicsOutputProtocolGuid, - This->DriverBindingHandle, - Controller - ); - return Status; -} - -/** - Initialize all the text modes which the graphics console supports. - - It returns information for available text modes that the graphics can su= pport. - - @param[in] HorizontalResolution The size of video screen in pixels = in the X dimension. - @param[in] VerticalResolution The size of video screen in pixels = in the Y dimension. - @param[in] GopModeNumber The graphics mode number which grap= his console is based on. - @param[out] TextModeCount The total number of text modes that= graphics console supports. - @param[out] TextModeData The buffer to the text modes column= and row information. - Caller is responsible to free it wh= en it's non-NULL. - - @retval EFI_SUCCESS The supporting mode information is = returned. - @retval EFI_INVALID_PARAMETER The parameters are invalid. - -**/ -EFI_STATUS -InitializeGraphicsConsoleTextMode ( - IN UINT32 HorizontalResolution, - IN UINT32 VerticalResolution, - IN UINT32 GopModeNumber, - OUT UINTN *TextModeCount, - OUT GRAPHICS_CONSOLE_MODE_DATA **TextModeData - ) -{ - UINTN Index; - UINTN Count; - GRAPHICS_CONSOLE_MODE_DATA *ModeBuffer; - GRAPHICS_CONSOLE_MODE_DATA *NewModeBuffer; - UINTN ValidCount; - UINTN ValidIndex; - UINTN MaxColumns; - UINTN MaxRows; - - if ((TextModeCount =3D=3D NULL) || (TextModeData =3D=3D NULL)) { - return EFI_INVALID_PARAMETER; - } - - Count =3D sizeof (mGraphicsConsoleModeData) / sizeof (GRAPHICS_CONSOLE_M= ODE_DATA); - - // - // Compute the maximum number of text Rows and Columns that this current= graphics mode can support. - // To make graphics console work well, MaxColumns and MaxRows should not= be zero. - // - MaxColumns =3D HorizontalResolution / EFI_GLYPH_WIDTH; - MaxRows =3D VerticalResolution / EFI_GLYPH_HEIGHT; - - // - // According to UEFI spec, all output devices support at least 80x25 tex= t mode. - // - ASSERT ((MaxColumns >=3D 80) && (MaxRows >=3D 25)); - - // - // Add full screen mode to the last entry. - // - mGraphicsConsoleModeData[Count - 1].Columns =3D MaxColumns; - mGraphicsConsoleModeData[Count - 1].Rows =3D MaxRows; - - // - // Get defined mode buffer pointer. - // - ModeBuffer =3D mGraphicsConsoleModeData; - - // - // Here we make sure that the final mode exposed does not include the du= plicated modes, - // and does not include the invalid modes which exceed the max column an= d row. - // Reserve 2 modes for 80x25, 80x50 of graphics console. - // - NewModeBuffer =3D AllocateZeroPool (sizeof (GRAPHICS_CONSOLE_MODE_DATA) = * (Count + 2)); - ASSERT (NewModeBuffer !=3D NULL); - - // - // Mode 0 and mode 1 is for 80x25, 80x50 according to UEFI spec. - // - ValidCount =3D 0; - - NewModeBuffer[ValidCount].Columns =3D 80; - NewModeBuffer[ValidCount].Rows =3D 25; - NewModeBuffer[ValidCount].GopWidth =3D HorizontalResolution; - NewModeBuffer[ValidCount].GopHeight =3D VerticalResolution; - NewModeBuffer[ValidCount].GopModeNumber =3D GopModeNumber; - NewModeBuffer[ValidCount].DeltaX =3D (HorizontalResolution - (New= ModeBuffer[ValidCount].Columns * EFI_GLYPH_WIDTH)) >> 1; - NewModeBuffer[ValidCount].DeltaY =3D (VerticalResolution - (NewMo= deBuffer[ValidCount].Rows * EFI_GLYPH_HEIGHT)) >> 1; - ValidCount++; - - if ((MaxColumns >=3D 80) && (MaxRows >=3D 50)) { - NewModeBuffer[ValidCount].Columns =3D 80; - NewModeBuffer[ValidCount].Rows =3D 50; - NewModeBuffer[ValidCount].DeltaX =3D (HorizontalResolution - (80 * EF= I_GLYPH_WIDTH)) >> 1; - NewModeBuffer[ValidCount].DeltaY =3D (VerticalResolution - (50 * EFI_= GLYPH_HEIGHT)) >> 1; - } - NewModeBuffer[ValidCount].GopWidth =3D HorizontalResolution; - NewModeBuffer[ValidCount].GopHeight =3D VerticalResolution; - NewModeBuffer[ValidCount].GopModeNumber =3D GopModeNumber; - ValidCount++; - - // - // Start from mode 2 to put the valid mode other than 80x25 and 80x50 in= the output mode buffer. - // - for (Index =3D 0; Index < Count; Index++) { - if ((ModeBuffer[Index].Columns =3D=3D 0) || (ModeBuffer[Index].Rows = =3D=3D 0) || - (ModeBuffer[Index].Columns > MaxColumns) || (ModeBuffer[Index].Row= s > MaxRows)) { - // - // Skip the pre-defined mode which is invalid or exceeds the max col= umn and row. - // - continue; - } - for (ValidIndex =3D 0; ValidIndex < ValidCount; ValidIndex++) { - if ((ModeBuffer[Index].Columns =3D=3D NewModeBuffer[ValidIndex].Colu= mns) && - (ModeBuffer[Index].Rows =3D=3D NewModeBuffer[ValidIndex].Rows)) { - // - // Skip the duplicated mode. - // - break; - } - } - if (ValidIndex =3D=3D ValidCount) { - NewModeBuffer[ValidCount].Columns =3D ModeBuffer[Index].Column= s; - NewModeBuffer[ValidCount].Rows =3D ModeBuffer[Index].Rows; - NewModeBuffer[ValidCount].GopWidth =3D HorizontalResolution; - NewModeBuffer[ValidCount].GopHeight =3D VerticalResolution; - NewModeBuffer[ValidCount].GopModeNumber =3D GopModeNumber; - NewModeBuffer[ValidCount].DeltaX =3D (HorizontalResolution - = (NewModeBuffer[ValidCount].Columns * EFI_GLYPH_WIDTH)) >> 1; - NewModeBuffer[ValidCount].DeltaY =3D (VerticalResolution - (N= ewModeBuffer[ValidCount].Rows * EFI_GLYPH_HEIGHT)) >> 1; - ValidCount++; - } - } - - DEBUG_CODE ( - for (Index =3D 0; Index < ValidCount; Index++) { - DEBUG ((DEBUG_INFO, "Graphics - Mode %d, Column =3D %d, Row =3D %d\n= ", - Index, NewModeBuffer[Index].Columns, NewModeBuffer[Index].Rows)); - } - ); - - // - // Return valid mode count and mode information buffer. - // - *TextModeCount =3D ValidCount; - *TextModeData =3D NewModeBuffer; - return EFI_SUCCESS; -} - -/** - Start this driver on Controller by opening Graphics Output Protocol, - and installing Simple Text Out protocol on Controller. - - @param This Protocol instance pointer. - @param Controller Handle of device to bind driver to - @param RemainingDevicePath Optional parameter use to pick a specific c= hild - device to start. - - @retval EFI_SUCCESS This driver is added to Controller. - @retval other This driver does not support this device. - -**/ -EFI_STATUS -EFIAPI -GraphicsConsoleControllerDriverStart ( - IN EFI_DRIVER_BINDING_PROTOCOL *This, - IN EFI_HANDLE Controller, - IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath - ) -{ - EFI_STATUS Status; - GRAPHICS_CONSOLE_DEV *Private; - UINT32 HorizontalResolution; - UINT32 VerticalResolution; - UINT32 ModeIndex; - UINTN MaxMode; - UINT32 ModeNumber; - EFI_GRAPHICS_OUTPUT_PROTOCOL_MODE *Mode; - UINTN SizeOfInfo; - EFI_GRAPHICS_OUTPUT_MODE_INFORMATION *Info; - - ModeNumber =3D 0; - - // - // Initialize the Graphics Console device instance - // - Private =3D AllocateCopyPool ( - sizeof (GRAPHICS_CONSOLE_DEV), - &mGraphicsConsoleDevTemplate - ); - if (Private =3D=3D NULL) { - return EFI_OUT_OF_RESOURCES; - } - - Private->SimpleTextOutput.Mode =3D &(Private->SimpleTextOutputMode); - - Status =3D gBS->OpenProtocol ( - Controller, - &gEfiGraphicsOutputProtocolGuid, - (VOID**)&Private->GraphicsOutput, - This->DriverBindingHandle, - Controller, - EFI_OPEN_PROTOCOL_BY_DRIVER - ); - if (EFI_ERROR (Status)) { - goto Error; - } - - Private->ExtendedTextOutput.TextOut =3D &(Private->SimpleTextOutput); - Private->ExtendedTextOutput.GraphicsOutput =3D Private->GraphicsOutput; - - HorizontalResolution =3D PcdGet32 (PcdVideoHorizontalResolution); - VerticalResolution =3D PcdGet32 (PcdVideoVerticalResolution); - - ASSERT (Private->GraphicsOutput !=3D NULL); - // - // The console is build on top of Graphics Output Protocol, find the mod= e number - // for the user-defined mode; if there are multiple video devices, - // graphic console driver will set all the video devices to the same mod= e. - // - if ((HorizontalResolution =3D=3D 0x0) || (VerticalResolution =3D=3D 0x0)= ) { - // - // Find the highest resolution which GOP supports. - // - MaxMode =3D Private->GraphicsOutput->Mode->MaxMode; - - for (ModeIndex =3D 0; ModeIndex < MaxMode; ModeIndex++) { - Status =3D Private->GraphicsOutput->QueryMode ( - Private->GraphicsOutput, - ModeIndex, - &SizeOfInfo, - &Info - ); - if (!EFI_ERROR (Status)) { - if ((Info->HorizontalResolution > HorizontalResolution) || - ((Info->HorizontalResolution =3D=3D HorizontalResolution) && (= Info->VerticalResolution > VerticalResolution))) { - HorizontalResolution =3D Info->HorizontalResolution; - VerticalResolution =3D Info->VerticalResolution; - ModeNumber =3D ModeIndex; - } - FreePool (Info); - } - } - if ((HorizontalResolution =3D=3D 0x0) || (VerticalResolution =3D=3D 0x= 0)) { - Status =3D EFI_UNSUPPORTED; - goto Error; - } - } else { - // - // Use user-defined resolution - // - Status =3D CheckModeSupported ( - Private->GraphicsOutput, - HorizontalResolution, - VerticalResolution, - &ModeNumber - ); - if (EFI_ERROR (Status)) { - // - // if not supporting current mode, try 800x600 which is required by = UEFI/EFI spec. - // - HorizontalResolution =3D 800; - VerticalResolution =3D 600; - Status =3D CheckModeSupported ( - Private->GraphicsOutput, - HorizontalResolution, - VerticalResolution, - &ModeNumber - ); - Mode =3D Private->GraphicsOutput->Mode; - if (EFI_ERROR (Status) && Mode->MaxMode !=3D 0) { - // - // Set default mode failed or device don't support default mode, t= hen get the current mode information. - // - HorizontalResolution =3D Mode->Info->HorizontalResolution; - VerticalResolution =3D Mode->Info->VerticalResolution; - ModeNumber =3D Mode->Mode; - } - } - } - if (ModeNumber !=3D Private->GraphicsOutput->Mode->Mode) { - // - // Current graphics mode is not set or is not set to the mode which we= has found, - // set the new graphic mode. - // - Status =3D Private->GraphicsOutput->SetMode (Private->GraphicsOutput, = ModeNumber); - if (EFI_ERROR (Status)) { - // - // The mode set operation failed - // - goto Error; - } - } - - DEBUG ((DEBUG_INFO, "GraphicsConsole video resolution %d x %d\n", Horizo= ntalResolution, VerticalResolution)); - - // - // Initialize the mode which GraphicsConsole supports. - // - Status =3D InitializeGraphicsConsoleTextMode ( - HorizontalResolution, - VerticalResolution, - ModeNumber, - &MaxMode, - &Private->ModeData - ); - - if (EFI_ERROR (Status)) { - goto Error; - } - - // - // Update the maximum number of modes - // - Private->SimpleTextOutputMode.MaxMode =3D (INT32)MaxMode; - - DEBUG_CODE_BEGIN (); - Status =3D GraphicsConsoleConOutSetMode (&Private->SimpleTextOutput, 0); - if (EFI_ERROR (Status)) { - goto Error; - } - Status =3D GraphicsConsoleConOutOutputString (&Private->SimpleTextOutput, - (CHAR16*)L"Graphics Console Started\n\r"); - if (EFI_ERROR (Status)) { - goto Error; - } - DEBUG_CODE_END (); - - // - // Install protocol interfaces for the Graphics Console device. - // - Status =3D gBS->InstallMultipleProtocolInterfaces ( - &Controller, - &gEfiSimpleTextOutProtocolGuid, - &Private->SimpleTextOutput, - &gExtendedTextOutputProtocolGuid, - &Private->ExtendedTextOutput, - NULL - ); - -Error: - if (EFI_ERROR (Status)) { - // - // Close GOP. - // - gBS->CloseProtocol ( - Controller, - &gEfiGraphicsOutputProtocolGuid, - This->DriverBindingHandle, - Controller - ); - - if (Private->LineBuffer !=3D NULL) { - FreePool (Private->LineBuffer); - } - - if (Private->ModeData !=3D NULL) { - FreePool (Private->ModeData); - } - - // - // Free private data - // - FreePool (Private); - } - - return Status; -} - -/** - Stop this driver on Controller by removing Simple Text Out protocol - and closing the Graphics Output Protocol on Controller. - - - @param This Protocol instance pointer. - @param Controller Handle of device to stop driver on - @param NumberOfChildren Number of Handles in ChildHandleBuffer. If num= ber of - children is zero stop the entire bus driver. - @param ChildHandleBuffer List of Child Handles to Stop. - - @retval EFI_SUCCESS This driver is removed Controller. - @retval EFI_NOT_STARTED Simple Text Out protocol could not be found the - Controller. - @retval other This driver was not removed from this device. - -**/ -EFI_STATUS -EFIAPI -GraphicsConsoleControllerDriverStop ( - IN EFI_DRIVER_BINDING_PROTOCOL *This, - IN EFI_HANDLE Controller, - IN UINTN NumberOfChildren, - IN EFI_HANDLE *ChildHandleBuffer - ) -{ - EFI_STATUS Status; - EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *SimpleTextOutput; - GRAPHICS_CONSOLE_DEV *Private; - - Status =3D gBS->OpenProtocol ( - Controller, - &gEfiSimpleTextOutProtocolGuid, - (VOID**)&SimpleTextOutput, - This->DriverBindingHandle, - Controller, - EFI_OPEN_PROTOCOL_GET_PROTOCOL - ); - if (EFI_ERROR (Status)) { - return EFI_NOT_STARTED; - } - - Private =3D GRAPHICS_CONSOLE_CON_OUT_DEV_FROM_THIS (SimpleTextOutput); - - Status =3D gBS->UninstallMultipleProtocolInterfaces ( - Controller, - &gEfiSimpleTextOutProtocolGuid, - &Private->SimpleTextOutput, - &gExtendedTextOutputProtocolGuid, - &Private->ExtendedTextOutput, - NULL - ); - - if (!EFI_ERROR (Status)) { - // - // Close GOP. - // - gBS->CloseProtocol ( - Controller, - &gEfiGraphicsOutputProtocolGuid, - This->DriverBindingHandle, - Controller - ); - - if (Private->LineBuffer !=3D NULL) { - FreePool (Private->LineBuffer); - } - - if (Private->ModeData !=3D NULL) { - FreePool (Private->ModeData); - } - - // - // Free our instance data - // - FreePool (Private); - } - - return Status; -} - -/** - Check if the current specific mode supported the user defined resolution - for the Graphics Console device based on Graphics Output Protocol. - - If yes, set the graphic devcice's current mode to this specific mode. - - @param GraphicsOutput Graphics Output Protocol instance pointer. - @param HorizontalResolution User defined horizontal resolution - @param VerticalResolution User defined vertical resolution. - @param CurrentModeNumber Current specific mode to be check. - - @retval EFI_SUCCESS The mode is supported. - @retval EFI_UNSUPPORTED The specific mode is out of range of graphics - device supported. - @retval other The specific mode does not support user defined - resolution or failed to set the current mode t= o the - specific mode on graphics device. - -**/ -EFI_STATUS -CheckModeSupported ( - EFI_GRAPHICS_OUTPUT_PROTOCOL *GraphicsOutput, - IN UINT32 HorizontalResolution, - IN UINT32 VerticalResolution, - OUT UINT32 *CurrentModeNumber - ) -{ - UINT32 ModeNumber; - EFI_STATUS Status; - UINTN SizeOfInfo; - EFI_GRAPHICS_OUTPUT_MODE_INFORMATION *Info; - UINT32 MaxMode; - - Status =3D EFI_SUCCESS; - MaxMode =3D GraphicsOutput->Mode->MaxMode; - - for (ModeNumber =3D 0; ModeNumber < MaxMode; ModeNumber++) { - Status =3D GraphicsOutput->QueryMode ( - GraphicsOutput, - ModeNumber, - &SizeOfInfo, - &Info - ); - if (!EFI_ERROR (Status)) { - if ((Info->HorizontalResolution =3D=3D HorizontalResolution) && - (Info->VerticalResolution =3D=3D VerticalResolution)) { - if ((GraphicsOutput->Mode->Info->HorizontalResolution =3D=3D Horiz= ontalResolution) && - (GraphicsOutput->Mode->Info->VerticalResolution =3D=3D Vertica= lResolution)) { - // - // If video device has been set to this mode, we do not need to = SetMode again - // - FreePool (Info); - break; - } else { - Status =3D GraphicsOutput->SetMode (GraphicsOutput, ModeNumber); - if (!EFI_ERROR (Status)) { - FreePool (Info); - break; - } - } - } - FreePool (Info); - } - } - - if (ModeNumber =3D=3D GraphicsOutput->Mode->MaxMode) { - Status =3D EFI_UNSUPPORTED; - } - - *CurrentModeNumber =3D ModeNumber; - return Status; -} - - -/** - Locate HII Database protocol and HII Font protocol. - - @retval EFI_SUCCESS HII Database protocol and HII Font protocol - are located successfully. - @return other Failed to locate HII Database protocol or - HII Font protocol. - -**/ -EFI_STATUS -EfiLocateHiiProtocol ( - VOID - ) -{ - EFI_STATUS Status; - - Status =3D gBS->LocateProtocol (&gEfiHiiDatabaseProtocolGuid, NULL, (VOI= D**)&mHiiDatabase); - if (EFI_ERROR (Status)) { - return Status; - } - - Status =3D gBS->LocateProtocol (&gEfiHiiFontProtocolGuid, NULL, (VOID**)= &mHiiFont); - return Status; -} - -// -// Body of the STO functions -// - -/** - Reset the text output device hardware and optionally run diagnostics. - - Implements SIMPLE_TEXT_OUTPUT.Reset(). - If ExtendeVerification is TRUE, then perform dependent Graphics Console - device reset, and set display mode to mode 0. - If ExtendedVerification is FALSE, only set display mode to mode 0. - - @param This Protocol instance pointer. - @param ExtendedVerification Indicates that the driver may perform a mo= re - exhaustive verification operation of the d= evice - during reset. - - @retval EFI_SUCCESS The text output device was reset. - @retval EFI_DEVICE_ERROR The text output device is not functioning c= orrectly and - could not be reset. - -**/ -EFI_STATUS -EFIAPI -GraphicsConsoleConOutReset ( - IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This, - IN BOOLEAN ExtendedVerification - ) -{ - EFI_STATUS Status; - Status =3D This->SetMode (This, 0); - if (EFI_ERROR (Status)) { - return Status; - } - Status =3D This->SetAttribute (This, EFI_TEXT_ATTR (This->Mode->Attribut= e & 0x0F, EFI_BACKGROUND_BLACK)); - return Status; -} - - -/** - Write a Unicode string to the output device. - - Implements SIMPLE_TEXT_OUTPUT.OutputString(). - The Unicode string will be converted to Glyphs and will be - sent to the Graphics Console. - - @param This Protocol instance pointer. - @param WString The NULL-terminated Unicode string to be= displayed - on the output device(s). All output devi= ces must - also support the Unicode drawing defined= in this file. - - @retval EFI_SUCCESS The string was output to the device. - @retval EFI_DEVICE_ERROR The device reported an error while attem= pting to output - the text. - @retval EFI_UNSUPPORTED The output device's mode is not currentl= y in a - defined text mode. - @retval EFI_WARN_UNKNOWN_GLYPH This warning code indicates that some of= the - characters in the Unicode string could n= ot be - rendered and were skipped. - -**/ -EFI_STATUS -EFIAPI -GraphicsConsoleConOutOutputString ( - IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This, - IN CHAR16 *WString - ) -{ - GRAPHICS_CONSOLE_DEV *Private; - EFI_GRAPHICS_OUTPUT_PROTOCOL *GraphicsOutput; - INTN Mode; - UINTN MaxColumn; - UINTN MaxRow; - UINTN Width; - UINTN Height; - UINTN Delta; - EFI_STATUS Status; - BOOLEAN Warning; - EFI_GRAPHICS_OUTPUT_BLT_PIXEL Foreground; - EFI_GRAPHICS_OUTPUT_BLT_PIXEL Background; - UINTN DeltaX; - UINTN DeltaY; - UINTN Count; - UINTN Index; - INT32 OriginAttribute; - EFI_TPL OldTpl; - - if (This->Mode->Mode =3D=3D -1) { - // - // If current mode is not valid, return error. - // - return EFI_UNSUPPORTED; - } - - Status =3D EFI_SUCCESS; - - OldTpl =3D gBS->RaiseTPL (TPL_NOTIFY); - // - // Current mode - // - Mode =3D This->Mode->Mode; - Private =3D GRAPHICS_CONSOLE_CON_OUT_DEV_FROM_THIS (This); - GraphicsOutput =3D Private->GraphicsOutput; - - MaxColumn =3D Private->ModeData[Mode].Columns; - MaxRow =3D Private->ModeData[Mode].Rows; - DeltaX =3D (UINTN) Private->ModeData[Mode].DeltaX; - DeltaY =3D (UINTN) Private->ModeData[Mode].DeltaY; - Width =3D MaxColumn * EFI_GLYPH_WIDTH; - Height =3D (MaxRow - 1) * EFI_GLYPH_HEIGHT; - Delta =3D Width * sizeof (EFI_GRAPHICS_OUTPUT_BLT_PIXEL); - - // - // The Attributes won't change when during the time OutputString is call= ed - // - GetTextColors (This, &Foreground, &Background); - - FlushCursor (This); - - Warning =3D FALSE; - - // - // Backup attribute - // - OriginAttribute =3D This->Mode->Attribute; - - while (*WString !=3D L'\0') { - - if (*WString =3D=3D CHAR_BACKSPACE) { - // - // If the cursor is at the left edge of the display, then move the c= ursor - // one row up. - // - if (This->Mode->CursorColumn =3D=3D 0 && This->Mode->CursorRow > 0) { - This->Mode->CursorRow--; - This->Mode->CursorColumn =3D (INT32)(MaxColumn - 1); - This->OutputString (This, SpaceStr); - FlushCursor (This); - This->Mode->CursorRow--; - This->Mode->CursorColumn =3D (INT32)(MaxColumn - 1); - } else if (This->Mode->CursorColumn > 0) { - // - // If the cursor is not at the left edge of the display, then move= the cursor - // left one column. - // - This->Mode->CursorColumn--; - This->OutputString (This, SpaceStr); - FlushCursor (This); - This->Mode->CursorColumn--; - } - - WString++; - - } else if (*WString =3D=3D CHAR_LINEFEED) { - // - // If the cursor is at the bottom of the display, then scroll the di= splay one - // row, and do not update the cursor position. Otherwise, move the c= ursor - // down one row. - // - if (This->Mode->CursorRow =3D=3D (INT32)(MaxRow - 1)) { - // - // Scroll Screen Up One Row - // - GraphicsOutput->Blt ( - GraphicsOutput, - NULL, - EfiBltVideoToVideo, - DeltaX, - DeltaY + EFI_GLYPH_HEIGHT, - DeltaX, - DeltaY, - Width, - Height, - Delta - ); - - // - // Print Blank Line at last line - // - GraphicsOutput->Blt ( - GraphicsOutput, - &Background, - EfiBltVideoFill, - 0, - 0, - DeltaX, - DeltaY + Height, - Width, - EFI_GLYPH_HEIGHT, - Delta - ); - } else { - This->Mode->CursorRow++; - } - - WString++; - - } else if (*WString =3D=3D CHAR_CARRIAGE_RETURN) { - // - // Move the cursor to the beginning of the current row. - // - This->Mode->CursorColumn =3D 0; - WString++; - - } else if (*WString =3D=3D WIDE_CHAR) { - - This->Mode->Attribute |=3D EFI_WIDE_ATTRIBUTE; - WString++; - - } else if (*WString =3D=3D NARROW_CHAR) { - - This->Mode->Attribute &=3D (~(UINT32)EFI_WIDE_ATTRIBUTE); - WString++; - - } else { - // - // Print the character at the current cursor position and move the c= ursor - // right one column. If this moves the cursor past the right edge of= the - // display, then the line should wrap to the beginning of the next l= ine. This - // is equivalent to inserting a CR and an LF. Note that if the curso= r is at the - // bottom of the display, and the line wraps, then the display will = be scrolled - // one line. - // If wide char is going to be displayed, need to display one charac= ter at a time - // Or, need to know the display length of a certain string. - // - // Index is used to determine how many character width units (wide = =3D 2, narrow =3D 1) - // Count is used to determine how many characters are used regardles= s of their attributes - // - for (Count =3D 0, Index =3D 0; (This->Mode->CursorColumn + Index) < = MaxColumn; Count++, Index++) { - if (WString[Count] =3D=3D CHAR_NULL || - WString[Count] =3D=3D CHAR_BACKSPACE || - WString[Count] =3D=3D CHAR_LINEFEED || - WString[Count] =3D=3D CHAR_CARRIAGE_RETURN || - WString[Count] =3D=3D WIDE_CHAR || - WString[Count] =3D=3D NARROW_CHAR) { - break; - } - // - // Is the wide attribute on? - // - if ((This->Mode->Attribute & EFI_WIDE_ATTRIBUTE) !=3D 0) { - // - // If wide, add one more width unit than normal since we are goi= ng to increment at the end of the for loop - // - Index++; - // - // This is the end-case where if we are at column 79 and about t= o print a wide character - // We should prevent this from happening because we will wrap in= appropriately. We should - // not print this character until the next line. - // - if ((This->Mode->CursorColumn + Index + 1) > MaxColumn) { - Index++; - break; - } - } - } - - Status =3D DrawUnicodeWeightAtCursorN (This, WString, Count); - if (EFI_ERROR (Status)) { - Warning =3D TRUE; - } - // - // At the end of line, output carriage return and line feed - // - WString +=3D Count; - This->Mode->CursorColumn +=3D (INT32)Index; - if (This->Mode->CursorColumn > (INT32)MaxColumn) { - This->Mode->CursorColumn -=3D 2; - This->OutputString (This, SpaceStr); - } - - if (This->Mode->CursorColumn >=3D (INT32)MaxColumn) { - FlushCursor (This); - if (!Private->ExtendedTextOutput.AutoWrap) { - This->Mode->CursorColumn =3D MaxColumn - 1; - } else { - This->OutputString (This, mCrLfString); - } - FlushCursor (This); - } - } - } - - This->Mode->Attribute =3D OriginAttribute; - - FlushCursor (This); - - if (Warning) { - Status =3D EFI_WARN_UNKNOWN_GLYPH; - } - - gBS->RestoreTPL (OldTpl); - return Status; - -} - -/** - Verifies that all characters in a Unicode string can be output to the - target device. - - Implements SIMPLE_TEXT_OUTPUT.TestString(). - If one of the characters in the *Wstring is neither valid valid Unicode - drawing characters, not ASCII code, then this function will return - EFI_UNSUPPORTED - - @param This Protocol instance pointer. - @param WString The NULL-terminated Unicode string to be examined for th= e output - device(s). - - @retval EFI_SUCCESS The device(s) are capable of rendering the outp= ut string. - @retval EFI_UNSUPPORTED Some of the characters in the Unicode string ca= nnot be - rendered by one or more of the output devices m= apped - by the EFI handle. - -**/ -EFI_STATUS -EFIAPI -GraphicsConsoleConOutTestString ( - IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This, - IN CHAR16 *WString - ) -{ - EFI_STATUS Status; - UINT16 Count; - - EFI_IMAGE_OUTPUT *Blt; - - Blt =3D NULL; - Count =3D 0; - - while (WString[Count] !=3D 0) { - Status =3D mHiiFont->GetGlyph ( - mHiiFont, - WString[Count], - NULL, - &Blt, - NULL - ); - if (Blt !=3D NULL) { - FreePool (Blt); - Blt =3D NULL; - } - Count++; - - if (EFI_ERROR (Status)) { - return EFI_UNSUPPORTED; - } - } - - return EFI_SUCCESS; -} - - -/** - Returns information for an available text mode that the output device(s) - supports - - Implements SIMPLE_TEXT_OUTPUT.QueryMode(). - It returnes information for an available text mode that the Graphics Con= sole supports. - In this driver,we only support text mode 80x25, which is defined as mode= 0. - - @param This Protocol instance pointer. - @param ModeNumber The mode number to return information on. - @param Columns The returned columns of the requested mode. - @param Rows The returned rows of the requested mode. - - @retval EFI_SUCCESS The requested mode information is returned. - @retval EFI_UNSUPPORTED The mode number is not valid. - -**/ -EFI_STATUS -EFIAPI -GraphicsConsoleConOutQueryMode ( - IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This, - IN UINTN ModeNumber, - OUT UINTN *Columns, - OUT UINTN *Rows - ) -{ - GRAPHICS_CONSOLE_DEV *Private; - EFI_STATUS Status; - EFI_TPL OldTpl; - - if (ModeNumber >=3D (UINTN)This->Mode->MaxMode) { - return EFI_UNSUPPORTED; - } - - OldTpl =3D gBS->RaiseTPL (TPL_NOTIFY); - Status =3D EFI_SUCCESS; - - Private =3D GRAPHICS_CONSOLE_CON_OUT_DEV_FROM_THIS (This); - - *Columns =3D Private->ModeData[ModeNumber].Columns; - *Rows =3D Private->ModeData[ModeNumber].Rows; - - if (*Columns <=3D 0 || *Rows <=3D 0) { - Status =3D EFI_UNSUPPORTED; - goto Done; - - } - -Done: - gBS->RestoreTPL (OldTpl); - return Status; -} - - -/** - Sets the output device(s) to a specified mode. - - Implements SIMPLE_TEXT_OUTPUT.SetMode(). - Set the Graphics Console to a specified mode. In this driver, we only su= pport mode 0. - - @param This Protocol instance pointer. - @param ModeNumber The text mode to set. - - @retval EFI_SUCCESS The requested text mode is set. - @retval EFI_DEVICE_ERROR The requested text mode cannot be set beca= use of - Graphics Console device error. - @retval EFI_UNSUPPORTED The text mode number is not valid. - -**/ -EFI_STATUS -EFIAPI -GraphicsConsoleConOutSetMode ( - IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This, - IN UINTN ModeNumber - ) -{ - EFI_STATUS Status; - GRAPHICS_CONSOLE_DEV *Private; - GRAPHICS_CONSOLE_MODE_DATA *ModeData; - EFI_GRAPHICS_OUTPUT_BLT_PIXEL *NewLineBuffer; - EFI_GRAPHICS_OUTPUT_PROTOCOL *GraphicsOutput; - EFI_TPL OldTpl; - - OldTpl =3D gBS->RaiseTPL (TPL_NOTIFY); - - Private =3D GRAPHICS_CONSOLE_CON_OUT_DEV_FROM_THIS (This); - GraphicsOutput =3D Private->GraphicsOutput; - - // - // Make sure the requested mode number is supported - // - if (ModeNumber >=3D (UINTN)This->Mode->MaxMode) { - Status =3D EFI_UNSUPPORTED; - goto Done; - } - - ModeData =3D &(Private->ModeData[ModeNumber]); - - if (ModeData->Columns <=3D 0 && ModeData->Rows <=3D 0) { - Status =3D EFI_UNSUPPORTED; - goto Done; - } - - // - // If the mode has been set at least one other time, then LineBuffer wil= l not be NULL - // - if (Private->LineBuffer !=3D NULL) { - // - // If the new mode is the same as the old mode, then just return EFI_S= UCCESS - // - if ((INT32)ModeNumber =3D=3D This->Mode->Mode) { - // - // Clear the current text window on the current graphics console - // - This->ClearScreen (This); - Status =3D EFI_SUCCESS; - goto Done; - } - // - // Otherwise, the size of the text console and/or the GOP mode will - // be changed, so erase the cursor, and free the LineBuffer for the - // current mode - // - FlushCursor (This); - - FreePool (Private->LineBuffer); - } - - // - // Attempt to allocate a line buffer for the requested mode number - // - NewLineBuffer =3D AllocatePool (sizeof (EFI_GRAPHICS_OUTPUT_BLT_PIXEL) *= ModeData->Columns * EFI_GLYPH_WIDTH * EFI_GLYPH_HEIGHT); - - if (NewLineBuffer =3D=3D NULL) { - // - // The new line buffer could not be allocated, so return an error. - // No changes to the state of the current console have been made, so t= he current console is still valid - // - Status =3D EFI_OUT_OF_RESOURCES; - goto Done; - } - - // - // Assign the current line buffer to the newly allocated line buffer - // - Private->LineBuffer =3D NewLineBuffer; - - if (ModeData->GopModeNumber !=3D GraphicsOutput->Mode->Mode) { - // - // Either no graphics mode is currently set, or it is set - // to the wrong resolution, so set the new graphics mode - // - Status =3D GraphicsOutput->SetMode (GraphicsOutput, ModeData->GopModeN= umber); - if (EFI_ERROR (Status)) { - // - // The mode set operation failed - // - goto Done; - } - } else { - // - // The current graphics mode is correct, so simply clear the entire di= splay - // - Status =3D GraphicsOutput->Blt ( - GraphicsOutput, - &mGraphicsEfiColors[0], - EfiBltVideoFill, - 0, - 0, - 0, - 0, - ModeData->GopWidth, - ModeData->GopHeight, - 0 - ); - } - - // - // The new mode is valid, so commit the mode change - // - This->Mode->Mode =3D (INT32)ModeNumber; - - // - // Move the text cursor to the upper left hand corner of the display and= flush it - // - This->Mode->CursorColumn =3D 0; - This->Mode->CursorRow =3D 0; - - FlushCursor (This); - - Status =3D EFI_SUCCESS; - -Done: - gBS->RestoreTPL (OldTpl); - return Status; -} - - -/** - Sets the background and foreground colors for the OutputString () and - ClearScreen () functions. - - Implements SIMPLE_TEXT_OUTPUT.SetAttribute(). - - @param This Protocol instance pointer. - @param Attribute The attribute to set. Bits 0..3 are the fo= reground - color, and bits 4..6 are the background co= lor. - All other bits are undefined and must be z= ero. - - @retval EFI_SUCCESS The requested attribute is set. - @retval EFI_DEVICE_ERROR The requested attribute cannot be set due = to Graphics Console port error. - @retval EFI_UNSUPPORTED The attribute requested is not defined. - -**/ -EFI_STATUS -EFIAPI -GraphicsConsoleConOutSetAttribute ( - IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This, - IN UINTN Attribute - ) -{ - EFI_TPL OldTpl; - - if ((Attribute | 0x7F) !=3D 0x7F) { - return EFI_UNSUPPORTED; - } - - if ((INT32)Attribute =3D=3D This->Mode->Attribute) { - return EFI_SUCCESS; - } - - OldTpl =3D gBS->RaiseTPL (TPL_NOTIFY); - - FlushCursor (This); - - This->Mode->Attribute =3D (INT32)Attribute; - - FlushCursor (This); - - gBS->RestoreTPL (OldTpl); - - return EFI_SUCCESS; -} - - -/** - Clears the output device(s) display to the currently selected background - color. - - Implements SIMPLE_TEXT_OUTPUT.ClearScreen(). - - @param This Protocol instance pointer. - - @retval EFI_SUCCESS The operation completed successfully. - @retval EFI_DEVICE_ERROR The device had an error and could not complete= the request. - @retval EFI_UNSUPPORTED The output device is not in a valid text mode. - -**/ -EFI_STATUS -EFIAPI -GraphicsConsoleConOutClearScreen ( - IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This - ) -{ - EFI_STATUS Status; - GRAPHICS_CONSOLE_DEV *Private; - GRAPHICS_CONSOLE_MODE_DATA *ModeData; - EFI_GRAPHICS_OUTPUT_PROTOCOL *GraphicsOutput; - EFI_GRAPHICS_OUTPUT_BLT_PIXEL Foreground; - EFI_GRAPHICS_OUTPUT_BLT_PIXEL Background; - EFI_TPL OldTpl; - - if (This->Mode->Mode =3D=3D -1) { - // - // If current mode is not valid, return error. - // - return EFI_UNSUPPORTED; - } - - OldTpl =3D gBS->RaiseTPL (TPL_NOTIFY); - - Private =3D GRAPHICS_CONSOLE_CON_OUT_DEV_FROM_THIS (This); - GraphicsOutput =3D Private->GraphicsOutput; - ModeData =3D &(Private->ModeData[This->Mode->Mode]); - - GetTextColors (This, &Foreground, &Background); - Status =3D GraphicsOutput->Blt ( - GraphicsOutput, - &Background, - EfiBltVideoFill, - 0, - 0, - 0, - 0, - ModeData->GopWidth, - ModeData->GopHeight, - 0 - ); - - This->Mode->CursorColumn =3D 0; - This->Mode->CursorRow =3D 0; - - FlushCursor (This); - - gBS->RestoreTPL (OldTpl); - - return Status; -} - - -/** - Sets the current coordinates of the cursor position. - - Implements SIMPLE_TEXT_OUTPUT.SetCursorPosition(). - - @param This Protocol instance pointer. - @param Column The position to set the cursor to. Must be greater t= han or - equal to zero and less than the number of columns an= d rows - by QueryMode (). - @param Row The position to set the cursor to. Must be greater t= han or - equal to zero and less than the number of columns an= d rows - by QueryMode (). - - @retval EFI_SUCCESS The operation completed successfully. - @retval EFI_DEVICE_ERROR The device had an error and could not complete = the request. - @retval EFI_UNSUPPORTED The output device is not in a valid text mode, = or the - cursor position is invalid for the current mode. - -**/ -EFI_STATUS -EFIAPI -GraphicsConsoleConOutSetCursorPosition ( - IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This, - IN UINTN Column, - IN UINTN Row - ) -{ - GRAPHICS_CONSOLE_DEV *Private; - GRAPHICS_CONSOLE_MODE_DATA *ModeData; - EFI_STATUS Status; - EFI_TPL OldTpl; - - if (This->Mode->Mode =3D=3D -1) { - // - // If current mode is not valid, return error. - // - return EFI_UNSUPPORTED; - } - - Status =3D EFI_SUCCESS; - - OldTpl =3D gBS->RaiseTPL (TPL_NOTIFY); - - Private =3D GRAPHICS_CONSOLE_CON_OUT_DEV_FROM_THIS (This); - ModeData =3D &(Private->ModeData[This->Mode->Mode]); - - if ((Column >=3D ModeData->Columns) || (Row >=3D ModeData->Rows)) { - Status =3D EFI_UNSUPPORTED; - goto Done; - } - - if ((This->Mode->CursorColumn =3D=3D (INT32)Column) && (This->Mode->Curs= orRow =3D=3D (INT32)Row)) { - Status =3D EFI_SUCCESS; - goto Done; - } - - FlushCursor (This); - - This->Mode->CursorColumn =3D (INT32)Column; - This->Mode->CursorRow =3D (INT32)Row; - - FlushCursor (This); - -Done: - gBS->RestoreTPL (OldTpl); - - return Status; -} - - -/** - Makes the cursor visible or invisible. - - Implements SIMPLE_TEXT_OUTPUT.EnableCursor(). - - @param This Protocol instance pointer. - @param Visible If TRUE, the cursor is set to be visible, = If FALSE, - the cursor is set to be invisible. - - @retval EFI_SUCCESS The operation completed successfully. - @retval EFI_UNSUPPORTED The output device's mode is not currently = in a - defined text mode. - -**/ -EFI_STATUS -EFIAPI -GraphicsConsoleConOutEnableCursor ( - IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This, - IN BOOLEAN Visible - ) -{ - EFI_TPL OldTpl; - - if (This->Mode->Mode =3D=3D -1) { - // - // If current mode is not valid, return error. - // - return EFI_UNSUPPORTED; - } - - OldTpl =3D gBS->RaiseTPL (TPL_NOTIFY); - - FlushCursor (This); - - This->Mode->CursorVisible =3D Visible; - - FlushCursor (This); - - gBS->RestoreTPL (OldTpl); - return EFI_SUCCESS; -} - -/** - Gets Graphics Console devcie's foreground color and background color. - - @param This Protocol instance pointer. - @param Foreground Returned text foreground color. - @param Background Returned text background color. - - @retval EFI_SUCCESS It returned always. - -**/ -EFI_STATUS -GetTextColors ( - IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This, - OUT EFI_GRAPHICS_OUTPUT_BLT_PIXEL *Foreground, - OUT EFI_GRAPHICS_OUTPUT_BLT_PIXEL *Background - ) -{ - INTN Attribute; - - Attribute =3D This->Mode->Attribute & 0x7F; - - *Foreground =3D mGraphicsEfiColors[Attribute & 0x0f]; - *Background =3D mGraphicsEfiColors[Attribute >> 4]; - - return EFI_SUCCESS; -} - -/** - Draw Unicode string on the Graphics Console device's screen. - - @param This Protocol instance pointer. - @param UnicodeWeight One Unicode string to be displayed. - @param Count The count of Unicode string. - - @retval EFI_OUT_OF_RESOURCES If no memory resource to use. - @retval EFI_UNSUPPORTED If no Graphics Output Protocol exists. - @retval EFI_SUCCESS Drawing Unicode string implemented success= fully. - -**/ -EFI_STATUS -DrawUnicodeWeightAtCursorN ( - IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This, - IN CHAR16 *UnicodeWeight, - IN UINTN Count - ) -{ - EFI_STATUS Status; - GRAPHICS_CONSOLE_DEV *Private; - EFI_IMAGE_OUTPUT *Blt; - EFI_STRING String; - EFI_FONT_DISPLAY_INFO *FontInfo; - - Private =3D GRAPHICS_CONSOLE_CON_OUT_DEV_FROM_THIS (This); - Blt =3D (EFI_IMAGE_OUTPUT*)AllocateZeroPool (sizeof (EFI_IMAGE_OUTPUT)); - if (Blt =3D=3D NULL) { - return EFI_OUT_OF_RESOURCES; - } - - Blt->Width =3D (UINT16)(Private->ModeData[This->Mode->Mode].GopWidth); - Blt->Height =3D (UINT16)(Private->ModeData[This->Mode->Mode].GopHeight); - - String =3D AllocateCopyPool ((Count + 1) * sizeof (CHAR16), UnicodeWeigh= t); - if (String =3D=3D NULL) { - FreePool (Blt); - return EFI_OUT_OF_RESOURCES; - } - // - // Set the end character - // - *(String + Count) =3D L'\0'; - - FontInfo =3D (EFI_FONT_DISPLAY_INFO*)AllocateZeroPool (sizeof (EFI_FONT_= DISPLAY_INFO)); - if (FontInfo =3D=3D NULL) { - FreePool (Blt); - FreePool (String); - return EFI_OUT_OF_RESOURCES; - } - // - // Get current foreground and background colors. - // - GetTextColors (This, &FontInfo->ForegroundColor, &FontInfo->BackgroundCo= lor); - - // - // If Graphics Output protocol exists, using HII Font protocol to draw. - // - Blt->Image.Screen =3D Private->GraphicsOutput; - - Status =3D mHiiFont->StringToImage ( - mHiiFont, - EFI_HII_IGNORE_IF_NO_GLYPH | EFI_HII_DIRECT_TO_SCRE= EN | EFI_HII_IGNORE_LINE_BREAK, - String, - FontInfo, - &Blt, - This->Mode->CursorColumn * EFI_GLYPH_WIDTH + Privat= e->ModeData[This->Mode->Mode].DeltaX, - This->Mode->CursorRow * EFI_GLYPH_HEIGHT + Private-= >ModeData[This->Mode->Mode].DeltaY, - NULL, - NULL, - NULL - ); - - if (Blt !=3D NULL) { - FreePool (Blt); - } - if (String !=3D NULL) { - FreePool (String); - } - if (FontInfo !=3D NULL) { - FreePool (FontInfo); - } - return Status; -} - -/** - Flush the cursor on the screen. - - If CursorVisible is FALSE, nothing to do and return directly. - If CursorVisible is TRUE, - i) If the cursor shows on screen, it will be erased. - ii) If the cursor does not show on screen, it will be shown. - - @param This Protocol instance pointer. - - @retval EFI_SUCCESS The cursor is erased successfully. - -**/ -EFI_STATUS -FlushCursor ( - IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This - ) -{ - GRAPHICS_CONSOLE_DEV *Private; - EFI_SIMPLE_TEXT_OUTPUT_MODE *CurrentMode; - INTN GlyphX; - INTN GlyphY; - EFI_GRAPHICS_OUTPUT_PROTOCOL *GraphicsOutput; - EFI_GRAPHICS_OUTPUT_BLT_PIXEL_UNION Foreground; - EFI_GRAPHICS_OUTPUT_BLT_PIXEL_UNION Background; - EFI_GRAPHICS_OUTPUT_BLT_PIXEL_UNION BltChar[EFI_GLYPH_HEIGHT][EFI_GLYPH_= WIDTH]; - UINTN PosX; - UINTN PosY; - - CurrentMode =3D This->Mode; - - if (!CurrentMode->CursorVisible) { - return EFI_SUCCESS; - } - - Private =3D GRAPHICS_CONSOLE_CON_OUT_DEV_FROM_THIS (This); - GraphicsOutput =3D Private->GraphicsOutput; - - // - // In this driver, only narrow character was supported. - // - // - // Blt a character to the screen - // - GlyphX =3D (CurrentMode->CursorColumn * EFI_GLYPH_WIDTH) + Private->Mode= Data[CurrentMode->Mode].DeltaX; - GlyphY =3D (CurrentMode->CursorRow * EFI_GLYPH_HEIGHT) + Private->ModeDa= ta[CurrentMode->Mode].DeltaY; - - GraphicsOutput->Blt ( - GraphicsOutput, - (EFI_GRAPHICS_OUTPUT_BLT_PIXEL*)BltChar, - EfiBltVideoToBltBuffer, - GlyphX, - GlyphY, - 0, - 0, - EFI_GLYPH_WIDTH, - EFI_GLYPH_HEIGHT, - EFI_GLYPH_WIDTH * sizeof (EFI_GRAPHICS_OUTPUT_BLT_PIXE= L) - ); - - GetTextColors (This, &Foreground.Pixel, &Background.Pixel); - - // - // Convert Monochrome bitmap of the Glyph to BltBuffer structure - // - for (PosY =3D 0; PosY < EFI_GLYPH_HEIGHT; PosY++) { - for (PosX =3D 0; PosX < EFI_GLYPH_WIDTH; PosX++) { - if ((mCursorGlyph.GlyphCol1[PosY] & (BIT0 << PosX)) !=3D 0) { - BltChar[PosY][EFI_GLYPH_WIDTH - PosX - 1].Raw ^=3D Foreground.Raw; - } - } - } - - GraphicsOutput->Blt ( - GraphicsOutput, - (EFI_GRAPHICS_OUTPUT_BLT_PIXEL*)BltChar, - EfiBltBufferToVideo, - 0, - 0, - GlyphX, - GlyphY, - EFI_GLYPH_WIDTH, - EFI_GLYPH_HEIGHT, - EFI_GLYPH_WIDTH * sizeof (EFI_GRAPHICS_OUTPUT_BLT_PIXE= L) - ); - - return EFI_SUCCESS; -} - -/** - HII Database Protocol notification event handler. - - Register font package when HII Database Protocol has been installed. - - @param[in] Event Event whose notification function is being invoked. - @param[in] Context Pointer to the notification function's context. -**/ -VOID -EFIAPI -RegisterFontPackage ( - IN EFI_EVENT Event, - IN VOID *Context - ) -{ - EFI_STATUS Status; - EFI_HII_SIMPLE_FONT_PACKAGE_HDR *SimplifiedFont; - UINT32 PackageLength; - UINT8 *Package; - UINT8 *Location; - EFI_HII_DATABASE_PROTOCOL *HiiDatabase; - - // - // Locate HII Database Protocol - // - Status =3D gBS->LocateProtocol ( - &gEfiHiiDatabaseProtocolGuid, - NULL, - (VOID**)&HiiDatabase - ); - if (EFI_ERROR (Status)) { - return; - } - - // - // Add 4 bytes to the header for entire length for HiiAddPackages use on= ly. - // - // +--------------------------------+ <-- Package - // | | - // | PackageLength(4 bytes) | - // | | - // |--------------------------------| <-- SimplifiedFont - // | | - // |EFI_HII_SIMPLE_FONT_PACKAGE_HDR | - // | | - // |--------------------------------| <-- Location - // | | - // | gUsStdNarrowGlyphData | - // | | - // +--------------------------------+ - - PackageLength =3D sizeof (EFI_HII_SIMPLE_FONT_PACKAGE_HDR) + mNarrowFont= Size + 4; - Package =3D AllocateZeroPool (PackageLength); - ASSERT (Package !=3D NULL); - - WriteUnaligned32 ((UINT32*)Package, PackageLength); - SimplifiedFont =3D (EFI_HII_SIMPLE_FONT_PACKAGE_HDR*)(Package + 4); - SimplifiedFont->Header.Length =3D (UINT32)(PackageLength - 4); - SimplifiedFont->Header.Type =3D EFI_HII_PACKAGE_SIMPLE_FONTS; - SimplifiedFont->NumberOfNarrowGlyphs =3D (UINT16)(mNarrowFontSize / size= of (EFI_NARROW_GLYPH)); - - Location =3D (UINT8*)(&SimplifiedFont->NumberOfWideGlyphs + 1); - CopyMem (Location, gUsStdNarrowGlyphData, mNarrowFontSize); - - // - // Add this simplified font package to a package list then install it. - // - mHiiHandle =3D HiiAddPackages ( - &mFontPackageListGuid, - NULL, - Package, - NULL - ); - ASSERT (mHiiHandle !=3D NULL); - FreePool (Package); -} - -/** - The user Entry Point for module GraphicsConsole. The user code starts wi= th this function. - - @param[in] ImageHandle The firmware allocated handle for the EFI imag= e. - @param[in] SystemTable A pointer to the EFI System Table. - - @retval EFI_SUCCESS The entry point is executed successfully. - @return other Some error occurs when executing this entry p= oint. - -**/ -EFI_STATUS -EFIAPI -InitializeGraphicsConsole ( - IN EFI_HANDLE ImageHandle, - IN EFI_SYSTEM_TABLE *SystemTable - ) -{ - EFI_STATUS Status; - - // - // Register notify function on HII Database Protocol to add font package. - // - EfiCreateProtocolNotifyEvent ( - &gEfiHiiDatabaseProtocolGuid, - TPL_CALLBACK, - RegisterFontPackage, - NULL, - &mHiiRegistration - ); - - // - // Install driver model protocol(s). - // - Status =3D EfiLibInstallDriverBindingComponentName2 ( - ImageHandle, - SystemTable, - &gGraphicsConsoleDriverBinding, - ImageHandle, - &gGraphicsConsoleComponentName, - &gGraphicsConsoleComponentName2 - ); - ASSERT_EFI_ERROR (Status); - - return Status; -} diff --git a/Platform/RaspberryPi/Drivers/GraphicsConsoleDxe/NewFont.c b/Pl= atform/RaspberryPi/Drivers/GraphicsConsoleDxe/NewFont.c deleted file mode 100644 index 87a949b25c9c..000000000000 --- a/Platform/RaspberryPi/Drivers/GraphicsConsoleDxe/NewFont.c +++ /dev/null @@ -1,281 +0,0 @@ -/** @file - * - * Copyright (c) 2018, Andrei Warkentin - * - * SPDX-License-Identifier: BSD-2-Clause-Patent - * - **/ - -/* - * Based on ftp://www.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/PC/CP437.= TXT and - * https://en.wikipedia.org/wiki/Code_page_437 for the cp437 Unicode equiv= alents - * and the cp437 8x19 font from that_editor. - * - * https://github.com/bisqwit/that_editor/blob/master/8x19.inc - * https://github.com/bisqwit/that_editor/blob/master/sourcematerial/vga8x= 19.bdf - * https://github.com/stsp/dosemu2/blob/master/COPYING.DOSEMU - */ - -#include "GraphicsConsole.h" - -EFI_NARROW_GLYPH gUsStdNarrowGlyphData[] =3D { - { 0x263a, 0x00, {0x00, 0x00, 0x7E, 0x81, 0xA5, 0xA5, 0x81, 0x81, 0xA5, 0= xA5, 0x99, 0x81, 0x81, 0x7E, 0x00, 0x00, 0x00, 0x00, 0x00}}, - { 0x263b, 0x00, {0x00, 0x00, 0x7E, 0xFF, 0xDB, 0xFF, 0xFF, 0xFF, 0xDB, 0= xE7, 0xFF, 0xFF, 0xFF, 0x7E, 0x00, 0x00, 0x00, 0x00, 0x00}}, - { 0x2665, 0x00, {0x00, 0x00, 0x00, 0x00, 0x00, 0x6C, 0xFE, 0xFE, 0xFE, 0= xFE, 0x7C, 0x38, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, - { 0x2666, 0x00, {0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x38, 0x7C, 0xFE, 0= xFE, 0x7C, 0x38, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, - { 0x2663, 0x00, {0x00, 0x00, 0x00, 0x18, 0x3C, 0x3C, 0xFF, 0xE7, 0xE7, 0= xE7, 0xFF, 0x18, 0x18, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00}}, - { 0x2660, 0x00, {0x00, 0x00, 0x00, 0x18, 0x3C, 0x7E, 0xFF, 0xFF, 0xFF, 0= x7E, 0x7E, 0x18, 0x18, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00}}, - { 0x2022, 0x00, {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x3C, 0= x3C, 0x3C, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, - { 0x25d8, 0x00, {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xE7, 0= xC3, 0xC3, 0xE7, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF}}, - { 0x25cb, 0x00, {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, 0x66, 0x66, 0= x42, 0x66, 0x66, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, - { 0x25d9, 0x00, {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xDB, 0x99, 0= xBD, 0xBD, 0x99, 0xDB, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF}}, - { 0x2642, 0x00, {0x00, 0x00, 0x1E, 0x06, 0x0E, 0x0A, 0x1A, 0x78, 0xCC, 0= xCC, 0xCC, 0xCC, 0xCC, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00}}, - { 0x2640, 0x00, {0x00, 0x00, 0x3C, 0x66, 0x66, 0x66, 0x66, 0x66, 0x3C, 0= x18, 0x18, 0x7E, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00}}, - { 0x266a, 0x00, {0x00, 0x00, 0x3F, 0x33, 0x33, 0x3F, 0x30, 0x30, 0x30, 0= x30, 0x30, 0x70, 0xF0, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00}}, - { 0x266b, 0x00, {0x00, 0x00, 0x7F, 0x63, 0x63, 0x7F, 0x63, 0x63, 0x63, 0= x63, 0x63, 0x67, 0xE7, 0xE6, 0xC0, 0x00, 0x00, 0x00, 0x00}}, - { 0x263c, 0x00, {0x00, 0x00, 0x00, 0x18, 0x18, 0xDB, 0xFF, 0x3C, 0xE7, 0= x3C, 0xFF, 0xDB, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00}}, - { 0x25ba, 0x00, {0x00, 0x80, 0xC0, 0xE0, 0xF0, 0xF8, 0xFC, 0xFE, 0xFC, 0= xF8, 0xF0, 0xE0, 0xC0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00}}, - { 0x25c4, 0x00, {0x00, 0x02, 0x06, 0x0E, 0x1E, 0x3E, 0x7E, 0xFE, 0x7E, 0= x3E, 0x1E, 0x0E, 0x06, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00}}, - { 0x2195, 0x00, {0x00, 0x00, 0x18, 0x3C, 0x7E, 0x18, 0x18, 0x18, 0x18, 0= x18, 0x7E, 0x3C, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, - { 0x203c, 0x00, {0x00, 0x00, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0= x66, 0x66, 0x00, 0x66, 0x66, 0x00, 0x00, 0x00, 0x00, 0x00}}, - { 0x00b6, 0x00, {0x00, 0x00, 0x7F, 0xDB, 0xDB, 0xDB, 0xDB, 0x7B, 0x1B, 0= x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x00}}, - { 0x00a7, 0x00, {0x00, 0x00, 0x7C, 0xC6, 0x62, 0x30, 0x78, 0x4C, 0x64, 0= x3C, 0x18, 0x8C, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00, 0x00}}, - { 0x25ac, 0x00, {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0= xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00}}, - { 0x21a8, 0x00, {0x00, 0x00, 0x18, 0x3C, 0x7E, 0x18, 0x18, 0x18, 0x18, 0= x18, 0x7E, 0x3C, 0x18, 0x7E, 0x00, 0x00, 0x00, 0x00, 0x00}}, - { 0x2191, 0x00, {0x00, 0x00, 0x18, 0x3C, 0x7E, 0x18, 0x18, 0x18, 0x18, 0= x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00}}, - { 0x2193, 0x00, {0x00, 0x00, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0= x18, 0x18, 0x7E, 0x3C, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00}}, - { 0x2192, 0x00, {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x0C, 0= xFE, 0x0C, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, - { 0x2190, 0x00, {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x60, 0= xFE, 0x60, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, - { 0x221f, 0x00, {0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xC0, 0xC0, 0xC0, 0= xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, - { 0x2194, 0x00, {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x28, 0x6C, 0= xFE, 0x6C, 0x28, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, - { 0x25b2, 0x00, {0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x38, 0x38, 0x7C, 0= x7C, 0xFE, 0xFE, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, - { 0x25bc, 0x00, {0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0xFE, 0xFE, 0x7C, 0= x7C, 0x38, 0x38, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, - { 0x0020, 0x00, {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0= x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, - { 0x0021, 0x00, {0x00, 0x00, 0x18, 0x3C, 0x3C, 0x3C, 0x3C, 0x18, 0x18, 0= x18, 0x18, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00}}, - { 0x0022, 0x00, {0x66, 0x66, 0x66, 0x66, 0x24, 0x00, 0x00, 0x00, 0x00, 0= x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, - { 0x0023, 0x00, {0x00, 0x00, 0x00, 0x6C, 0x6C, 0x6C, 0xFE, 0x6C, 0x6C, 0= x6C, 0xFE, 0x6C, 0x6C, 0x6C, 0x00, 0x00, 0x00, 0x00, 0x00}}, - { 0x0024, 0x00, {0x10, 0x10, 0x7C, 0xD6, 0xD6, 0xD2, 0x70, 0x38, 0x1C, 0= x16, 0x96, 0xD6, 0xD6, 0x7C, 0x10, 0x10, 0x00, 0x00, 0x00}}, - { 0x0025, 0x00, {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC2, 0xC6, 0x0C, 0= x18, 0x30, 0x60, 0xC6, 0x86, 0x00, 0x00, 0x00, 0x00, 0x00}}, - { 0x0026, 0x00, {0x00, 0x00, 0x38, 0x6C, 0x6C, 0x6C, 0x38, 0x76, 0xDC, 0= xCC, 0xCC, 0xCC, 0xCC, 0x76, 0x00, 0x00, 0x00, 0x00, 0x00}}, - { 0x0027, 0x00, {0x30, 0x30, 0x30, 0x30, 0x60, 0x00, 0x00, 0x00, 0x00, 0= x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, - { 0x0028, 0x00, {0x00, 0x00, 0x0C, 0x18, 0x30, 0x30, 0x30, 0x30, 0x30, 0= x30, 0x30, 0x30, 0x18, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00}}, - { 0x0029, 0x00, {0x00, 0x00, 0x30, 0x18, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0= x0C, 0x0C, 0x0C, 0x18, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00}}, - { 0x002a, 0x00, {0x00, 0x00, 0x00, 0x00, 0x00, 0x66, 0x24, 0x3C, 0xFF, 0= x3C, 0x24, 0x66, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, - { 0x002b, 0x00, {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x7E, 0= x18, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, - { 0x002c, 0x00, {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0= x00, 0x18, 0x18, 0x18, 0x18, 0x30, 0x00, 0x00, 0x00, 0x00}}, - { 0x002d, 0x00, {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0= x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, - { 0x002e, 0x00, {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0= x00, 0x00, 0x18, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00}}, - { 0x002f, 0x00, {0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x06, 0x0C, 0x18, 0= x30, 0x60, 0xC0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, - { 0x0030, 0x00, {0x00, 0x00, 0x38, 0x6C, 0xC6, 0xC6, 0xC6, 0xD6, 0xD6, 0= xC6, 0xC6, 0xC6, 0x6C, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00}}, - { 0x0031, 0x00, {0x00, 0x00, 0x18, 0x38, 0x78, 0x18, 0x18, 0x18, 0x18, 0= x18, 0x18, 0x18, 0x18, 0x7E, 0x00, 0x00, 0x00, 0x00, 0x00}}, - { 0x0032, 0x00, {0x00, 0x00, 0x7C, 0xC6, 0x06, 0x06, 0x0C, 0x18, 0x30, 0= x60, 0xC0, 0xC0, 0xC6, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00}}, - { 0x0033, 0x00, {0x00, 0x00, 0x7C, 0xC6, 0x06, 0x06, 0x06, 0x3C, 0x06, 0= x06, 0x06, 0x06, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00, 0x00}}, - { 0x0034, 0x00, {0x00, 0x00, 0x0C, 0x1C, 0x3C, 0x6C, 0xCC, 0xFE, 0x0C, 0= x0C, 0x0C, 0x0C, 0x0C, 0x1E, 0x00, 0x00, 0x00, 0x00, 0x00}}, - { 0x0035, 0x00, {0x00, 0x00, 0xFE, 0xC0, 0xC0, 0xC0, 0xC0, 0xFC, 0x06, 0= x06, 0x06, 0x06, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00, 0x00}}, - { 0x0036, 0x00, {0x00, 0x00, 0x38, 0x60, 0xC0, 0xC0, 0xC0, 0xFC, 0xC6, 0= xC6, 0xC6, 0xC6, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00, 0x00}}, - { 0x0037, 0x00, {0x00, 0x00, 0xFE, 0xC6, 0x06, 0x06, 0x06, 0x0C, 0x18, 0= x30, 0x30, 0x30, 0x30, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00}}, - { 0x0038, 0x00, {0x00, 0x00, 0x7C, 0xC6, 0xC6, 0xC6, 0xC6, 0x7C, 0xC6, 0= xC6, 0xC6, 0xC6, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00, 0x00}}, - { 0x0039, 0x00, {0x00, 0x00, 0x7C, 0xC6, 0xC6, 0xC6, 0xC6, 0x7E, 0x06, 0= x06, 0x06, 0x06, 0x0C, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00}}, - { 0x003a, 0x00, {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0= x00, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, - { 0x003b, 0x00, {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0= x00, 0x00, 0x18, 0x18, 0x18, 0x30, 0x00, 0x00, 0x00, 0x00}}, - { 0x003c, 0x00, {0x00, 0x00, 0x00, 0x06, 0x0C, 0x18, 0x30, 0x60, 0xC0, 0= x60, 0x30, 0x18, 0x0C, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00}}, - { 0x003d, 0x00, {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7E, 0x00, 0= x7E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, - { 0x003e, 0x00, {0x00, 0x00, 0x00, 0xC0, 0x60, 0x30, 0x18, 0x0C, 0x06, 0= x0C, 0x18, 0x30, 0x60, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00}}, - { 0x003f, 0x00, {0x00, 0x00, 0x7C, 0xC6, 0x86, 0x06, 0x0C, 0x18, 0x18, 0= x18, 0x18, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00}}, - { 0x0040, 0x00, {0x00, 0x00, 0x00, 0x7C, 0xC6, 0xC6, 0xCE, 0xDE, 0xDE, 0= xDE, 0xDE, 0xCC, 0xC0, 0x7C, 0x00, 0x00, 0x00, 0x00, 0x00}}, - { 0x0041, 0x00, {0x00, 0x00, 0x10, 0x38, 0x6C, 0xC6, 0xC6, 0xC6, 0xFE, 0= xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0x00, 0x00, 0x00, 0x00, 0x00}}, - { 0x0042, 0x00, {0x00, 0x00, 0xFC, 0x66, 0x66, 0x66, 0x66, 0x7C, 0x66, 0= x66, 0x66, 0x66, 0x66, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x00}}, - { 0x0043, 0x00, {0x00, 0x00, 0x3C, 0x66, 0xC2, 0xC0, 0xC0, 0xC0, 0xC0, 0= xC0, 0xC0, 0xC2, 0x66, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00}}, - { 0x0044, 0x00, {0x00, 0x00, 0xF8, 0x6C, 0x66, 0x66, 0x66, 0x66, 0x66, 0= x66, 0x66, 0x66, 0x6C, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00}}, - { 0x0045, 0x00, {0x00, 0x00, 0xFE, 0x66, 0x62, 0x62, 0x68, 0x78, 0x68, 0= x60, 0x62, 0x62, 0x66, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00}}, - { 0x0046, 0x00, {0x00, 0x00, 0xFE, 0x66, 0x62, 0x62, 0x68, 0x78, 0x68, 0= x60, 0x60, 0x60, 0x60, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00}}, - { 0x0047, 0x00, {0x00, 0x00, 0x3C, 0x66, 0xC2, 0xC0, 0xC0, 0xC0, 0xC0, 0= xDE, 0xC6, 0xC6, 0x66, 0x3A, 0x00, 0x00, 0x00, 0x00, 0x00}}, - { 0x0048, 0x00, {0x00, 0x00, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0xFE, 0xC6, 0= xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0x00, 0x00, 0x00, 0x00, 0x00}}, - { 0x0049, 0x00, {0x00, 0x00, 0x3C, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0= x18, 0x18, 0x18, 0x18, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00}}, - { 0x004a, 0x00, {0x00, 0x00, 0x1E, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0= xCC, 0xCC, 0xCC, 0xCC, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00}}, - { 0x004b, 0x00, {0x00, 0x00, 0xE6, 0x66, 0x66, 0x66, 0x6C, 0x78, 0x78, 0= x6C, 0x66, 0x66, 0x66, 0xE6, 0x00, 0x00, 0x00, 0x00, 0x00}}, - { 0x004c, 0x00, {0x00, 0x00, 0xF0, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0= x60, 0x62, 0x62, 0x66, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00}}, - { 0x004d, 0x00, {0x00, 0x00, 0xC6, 0xEE, 0xFE, 0xD6, 0xD6, 0xD6, 0xC6, 0= xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0x00, 0x00, 0x00, 0x00, 0x00}}, - { 0x004e, 0x00, {0x00, 0x00, 0xC6, 0xE6, 0xF6, 0xDE, 0xCE, 0xC6, 0xC6, 0= xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0x00, 0x00, 0x00, 0x00, 0x00}}, - { 0x004f, 0x00, {0x00, 0x00, 0x7C, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0= xC6, 0xC6, 0xC6, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00, 0x00}}, - { 0x0050, 0x00, {0x00, 0x00, 0xFC, 0x66, 0x66, 0x66, 0x66, 0x7C, 0x60, 0= x60, 0x60, 0x60, 0x60, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00}}, - { 0x0051, 0x00, {0x00, 0x00, 0x7C, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0= xC6, 0xC6, 0xD6, 0xDE, 0x7C, 0x0C, 0x0E, 0x00, 0x00, 0x00}}, - { 0x0052, 0x00, {0x00, 0x00, 0xFC, 0x66, 0x66, 0x66, 0x66, 0x7C, 0x6C, 0= x66, 0x66, 0x66, 0x66, 0xE6, 0x00, 0x00, 0x00, 0x00, 0x00}}, - { 0x0053, 0x00, {0x00, 0x00, 0x7C, 0xC6, 0xC6, 0xC2, 0x60, 0x38, 0x0C, 0= x06, 0x86, 0xC6, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00, 0x00}}, - { 0x0054, 0x00, {0x00, 0x00, 0x7E, 0x7E, 0x5A, 0x18, 0x18, 0x18, 0x18, 0= x18, 0x18, 0x18, 0x18, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00}}, - { 0x0055, 0x00, {0x00, 0x00, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0= xC6, 0xC6, 0xC6, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00, 0x00}}, - { 0x0056, 0x00, {0x00, 0x00, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0= xC6, 0xC6, 0x6C, 0x38, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00}}, - { 0x0057, 0x00, {0x00, 0x00, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0xD6, 0= xD6, 0xD6, 0xFE, 0xEE, 0x6C, 0x00, 0x00, 0x00, 0x00, 0x00}}, - { 0x0058, 0x00, {0x00, 0x00, 0xC6, 0xC6, 0x6C, 0x6C, 0x38, 0x38, 0x38, 0= x38, 0x6C, 0x6C, 0xC6, 0xC6, 0x00, 0x00, 0x00, 0x00, 0x00}}, - { 0x0059, 0x00, {0x00, 0x00, 0x66, 0x66, 0x66, 0x66, 0x66, 0x3C, 0x18, 0= x18, 0x18, 0x18, 0x18, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00}}, - { 0x005a, 0x00, {0x00, 0x00, 0xFE, 0xC6, 0x86, 0x86, 0x0C, 0x18, 0x30, 0= x60, 0xC2, 0xC2, 0xC6, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00}}, - { 0x005b, 0x00, {0x00, 0x00, 0x3C, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0= x30, 0x30, 0x30, 0x30, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00}}, - { 0x005c, 0x00, {0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xC0, 0x60, 0x30, 0= x18, 0x0C, 0x06, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, - { 0x005d, 0x00, {0x00, 0x00, 0x3C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0= x0C, 0x0C, 0x0C, 0x0C, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00}}, - { 0x005e, 0x00, {0x00, 0x10, 0x38, 0x6C, 0xC6, 0x82, 0x00, 0x00, 0x00, 0= x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, - { 0x005f, 0x00, {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0= x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00}}, - { 0x0060, 0x00, {0x30, 0x30, 0x30, 0x30, 0x18, 0x00, 0x00, 0x00, 0x00, 0= x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, - { 0x0061, 0x00, {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x0C, 0x0C, 0= x7C, 0xCC, 0xCC, 0xCC, 0x76, 0x00, 0x00, 0x00, 0x00, 0x00}}, - { 0x0062, 0x00, {0x00, 0x00, 0xE0, 0x60, 0x60, 0x60, 0x78, 0x6C, 0x66, 0= x66, 0x66, 0x66, 0x66, 0x7C, 0x00, 0x00, 0x00, 0x00, 0x00}}, - { 0x0063, 0x00, {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7C, 0xC6, 0xC0, 0= xC0, 0xC0, 0xC0, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00, 0x00}}, - { 0x0064, 0x00, {0x00, 0x00, 0x1C, 0x0C, 0x0C, 0x0C, 0x3C, 0x6C, 0xCC, 0= xCC, 0xCC, 0xCC, 0xCC, 0x76, 0x00, 0x00, 0x00, 0x00, 0x00}}, - { 0x0065, 0x00, {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7C, 0xC6, 0xC6, 0= xFE, 0xC0, 0xC0, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00, 0x00}}, - { 0x0066, 0x00, {0x00, 0x00, 0x1C, 0x36, 0x32, 0x30, 0x78, 0x30, 0x30, 0= x30, 0x30, 0x30, 0x30, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00}}, - { 0x0067, 0x00, {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x76, 0xCC, 0xCC, 0= xCC, 0xCC, 0xCC, 0xCC, 0x7C, 0x0C, 0x0C, 0xCC, 0x78, 0x00}}, - { 0x0068, 0x00, {0x00, 0x00, 0xE0, 0x60, 0x60, 0x60, 0x6C, 0x76, 0x66, 0= x66, 0x66, 0x66, 0x66, 0xE6, 0x00, 0x00, 0x00, 0x00, 0x00}}, - { 0x0069, 0x00, {0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x38, 0x18, 0x18, 0= x18, 0x18, 0x18, 0x18, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00}}, - { 0x006a, 0x00, {0x00, 0x00, 0x00, 0x0C, 0x0C, 0x00, 0x1C, 0x0C, 0x0C, 0= x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0xCC, 0xCC, 0xCC, 0x78, 0x00}}, - { 0x006b, 0x00, {0x00, 0x00, 0xE0, 0x60, 0x60, 0x60, 0x66, 0x6C, 0x78, 0= x78, 0x6C, 0x66, 0x66, 0xE6, 0x00, 0x00, 0x00, 0x00, 0x00}}, - { 0x006c, 0x00, {0x00, 0x00, 0x38, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0= x18, 0x18, 0x18, 0x18, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00}}, - { 0x006d, 0x00, {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6C, 0xFE, 0xD6, 0= xD6, 0xD6, 0xD6, 0xC6, 0xC6, 0x00, 0x00, 0x00, 0x00, 0x00}}, - { 0x006e, 0x00, {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xDC, 0x66, 0x66, 0= x66, 0x66, 0x66, 0x66, 0x66, 0x00, 0x00, 0x00, 0x00, 0x00}}, - { 0x006f, 0x00, {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7C, 0xC6, 0xC6, 0= xC6, 0xC6, 0xC6, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00, 0x00}}, - { 0x0070, 0x00, {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xDC, 0x66, 0x66, 0= x66, 0x66, 0x66, 0x66, 0x7C, 0x60, 0x60, 0x60, 0xF0, 0x00}}, - { 0x0071, 0x00, {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x76, 0xCC, 0xCC, 0= xCC, 0xCC, 0xCC, 0xCC, 0x7C, 0x0C, 0x0C, 0x0C, 0x1E, 0x00}}, - { 0x0072, 0x00, {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xDC, 0x76, 0x66, 0= x60, 0x60, 0x60, 0x60, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00}}, - { 0x0073, 0x00, {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7C, 0xC6, 0xC2, 0= x78, 0x0C, 0x86, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00, 0x00}}, - { 0x0074, 0x00, {0x00, 0x00, 0x10, 0x30, 0x30, 0x30, 0xFC, 0x30, 0x30, 0= x30, 0x30, 0x30, 0x36, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00}}, - { 0x0075, 0x00, {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xCC, 0xCC, 0xCC, 0= xCC, 0xCC, 0xCC, 0xCC, 0x76, 0x00, 0x00, 0x00, 0x00, 0x00}}, - { 0x0076, 0x00, {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x66, 0x66, 0x66, 0= x66, 0x66, 0x66, 0x3C, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00}}, - { 0x0077, 0x00, {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC6, 0xC6, 0xC6, 0= xD6, 0xD6, 0xD6, 0xFE, 0x6C, 0x00, 0x00, 0x00, 0x00, 0x00}}, - { 0x0078, 0x00, {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC6, 0x6C, 0x38, 0= x10, 0x38, 0x6C, 0xC6, 0x82, 0x00, 0x00, 0x00, 0x00, 0x00}}, - { 0x0079, 0x00, {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC6, 0xC6, 0xC6, 0= xC6, 0xC6, 0xC6, 0xC6, 0x7E, 0x06, 0x06, 0x0C, 0xF8, 0x00}}, - { 0x007a, 0x00, {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0xCC, 0x18, 0= x30, 0x60, 0xC0, 0xC6, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00}}, - { 0x007b, 0x00, {0x00, 0x00, 0x0E, 0x18, 0x18, 0x18, 0x18, 0x70, 0x18, 0= x18, 0x18, 0x18, 0x18, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00}}, - { 0x007c, 0x00, {0x00, 0x00, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x18, 0= x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00}}, - { 0x007d, 0x00, {0x00, 0x00, 0x70, 0x18, 0x18, 0x18, 0x18, 0x0E, 0x18, 0= x18, 0x18, 0x18, 0x18, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00}}, - { 0x007e, 0x00, {0x00, 0x76, 0xD4, 0x9C, 0x00, 0x00, 0x00, 0x00, 0x00, 0= x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, - { 0x2302, 0x00, {0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x38, 0x6C, 0xC6, 0= xC6, 0xC6, 0xC6, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, - { 0x00c7, 0x00, {0x00, 0x00, 0x3C, 0x66, 0xC2, 0xC0, 0xC0, 0xC0, 0xC0, 0= xC0, 0xC2, 0x66, 0x3C, 0x0C, 0x06, 0x7C, 0x00, 0x00, 0x00}}, - { 0x00fc, 0x00, {0x00, 0x00, 0x00, 0xCC, 0xCC, 0x00, 0xCC, 0xCC, 0xCC, 0= xCC, 0xCC, 0xCC, 0xCC, 0x76, 0x00, 0x00, 0x00, 0x00, 0x00}}, - { 0x00e9, 0x00, {0x00, 0x0C, 0x18, 0x30, 0x00, 0x00, 0x7C, 0xC6, 0xC6, 0= xFE, 0xC0, 0xC0, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00, 0x00}}, - { 0x00e2, 0x00, {0x00, 0x10, 0x38, 0x6C, 0x00, 0x00, 0x78, 0x0C, 0x0C, 0= x7C, 0xCC, 0xCC, 0xCC, 0x76, 0x00, 0x00, 0x00, 0x00, 0x00}}, - { 0x00e4, 0x00, {0x00, 0x00, 0x00, 0xCC, 0xCC, 0x00, 0x78, 0x0C, 0x0C, 0= x7C, 0xCC, 0xCC, 0xCC, 0x76, 0x00, 0x00, 0x00, 0x00, 0x00}}, - { 0x00e0, 0x00, {0x00, 0x60, 0x30, 0x18, 0x0C, 0x00, 0x78, 0x0C, 0x0C, 0= x7C, 0xCC, 0xCC, 0xCC, 0x76, 0x00, 0x00, 0x00, 0x00, 0x00}}, - { 0x00e5, 0x00, {0x00, 0x38, 0x6C, 0x6C, 0x38, 0x00, 0x78, 0x0C, 0x0C, 0= x7C, 0xCC, 0xCC, 0xCC, 0x76, 0x00, 0x00, 0x00, 0x00, 0x00}}, - { 0x00e7, 0x00, {0x00, 0x00, 0x00, 0x00, 0x3C, 0x66, 0x62, 0x60, 0x60, 0= x66, 0x64, 0x3C, 0x0C, 0x06, 0x3C, 0x00, 0x00, 0x00, 0x00}}, - { 0x00ea, 0x00, {0x00, 0x10, 0x38, 0x6C, 0x44, 0x00, 0x7C, 0xC6, 0xC6, 0= xFE, 0xC0, 0xC0, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00, 0x00}}, - { 0x00eb, 0x00, {0x00, 0x00, 0x00, 0xC6, 0xC6, 0x00, 0x7C, 0xC6, 0xC6, 0= xFE, 0xC0, 0xC0, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00, 0x00}}, - { 0x00e8, 0x00, {0x00, 0x60, 0x30, 0x18, 0x0C, 0x00, 0x7C, 0xC6, 0xC6, 0= xFE, 0xC0, 0xC0, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00, 0x00}}, - { 0x00ef, 0x00, {0x00, 0x00, 0x00, 0x66, 0x66, 0x00, 0x38, 0x18, 0x18, 0= x18, 0x18, 0x18, 0x18, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00}}, - { 0x00ee, 0x00, {0x00, 0x18, 0x3C, 0x66, 0x42, 0x00, 0x38, 0x18, 0x18, 0= x18, 0x18, 0x18, 0x18, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00}}, - { 0x00ec, 0x00, {0x00, 0x60, 0x30, 0x18, 0x08, 0x00, 0x38, 0x18, 0x18, 0= x18, 0x18, 0x18, 0x18, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00}}, - { 0x00c4, 0x00, {0xC6, 0xC6, 0x10, 0x38, 0x6C, 0xC6, 0xC6, 0xC6, 0xFE, 0= xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0x00, 0x00, 0x00, 0x00, 0x00}}, - { 0x00c5, 0x00, {0x38, 0x28, 0x38, 0x10, 0x38, 0x6C, 0xC6, 0xC6, 0xFE, 0= xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0x00, 0x00, 0x00, 0x00, 0x00}}, - { 0x00c9, 0x00, {0x18, 0x30, 0x60, 0x00, 0xFE, 0x66, 0x62, 0x68, 0x78, 0= x68, 0x60, 0x62, 0x66, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00}}, - { 0x00e6, 0x00, {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xCC, 0x76, 0x36, 0= x36, 0x7E, 0xD8, 0xD8, 0x6E, 0x00, 0x00, 0x00, 0x00, 0x00}}, - { 0x00c6, 0x00, {0x00, 0x00, 0x3E, 0x6C, 0xCC, 0xCC, 0xFE, 0xCC, 0xCC, 0= xCC, 0xCC, 0xCC, 0xCC, 0xCE, 0x00, 0x00, 0x00, 0x00, 0x00}}, - { 0x00f4, 0x00, {0x00, 0x10, 0x38, 0x6C, 0x44, 0x00, 0x7C, 0xC6, 0xC6, 0= xC6, 0xC6, 0xC6, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00, 0x00}}, - { 0x00f6, 0x00, {0x00, 0x00, 0x00, 0xC6, 0xC6, 0x00, 0x7C, 0xC6, 0xC6, 0= xC6, 0xC6, 0xC6, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00, 0x00}}, - { 0x00f2, 0x00, {0x00, 0x60, 0x30, 0x18, 0x0C, 0x00, 0x7C, 0xC6, 0xC6, 0= xC6, 0xC6, 0xC6, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00, 0x00}}, - { 0x00fb, 0x00, {0x00, 0x30, 0x78, 0xCC, 0x84, 0x00, 0xCC, 0xCC, 0xCC, 0= xCC, 0xCC, 0xCC, 0xCC, 0x76, 0x00, 0x00, 0x00, 0x00, 0x00}}, - { 0x00f9, 0x00, {0x00, 0x60, 0x30, 0x18, 0x0C, 0x00, 0xCC, 0xCC, 0xCC, 0= xCC, 0xCC, 0xCC, 0xCC, 0x76, 0x00, 0x00, 0x00, 0x00, 0x00}}, - { 0x00ff, 0x00, {0x00, 0x00, 0x00, 0xC6, 0xC6, 0x00, 0xC6, 0xC6, 0xC6, 0= xC6, 0xC6, 0xC6, 0xC6, 0x7E, 0x06, 0x06, 0x0C, 0x78, 0x00}}, - { 0x00d6, 0x00, {0xC6, 0xC6, 0x00, 0x7C, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0= xC6, 0xC6, 0xC6, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00, 0x00}}, - { 0x00dc, 0x00, {0xC6, 0xC6, 0x00, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0= xC6, 0xC6, 0xC6, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00, 0x00}}, - { 0x00a2, 0x00, {0x08, 0x08, 0x3C, 0x6E, 0xCA, 0xC8, 0xC8, 0xC8, 0xC8, 0= xC8, 0xC8, 0xCA, 0x6E, 0x3C, 0x08, 0x08, 0x00, 0x00, 0x00}}, - { 0x00a3, 0x00, {0x00, 0x38, 0x6C, 0x64, 0x64, 0x60, 0xF0, 0x60, 0x60, 0= x60, 0x60, 0x62, 0xE6, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x00}}, - { 0x00a5, 0x00, {0x00, 0x00, 0x66, 0x66, 0x66, 0x66, 0x3C, 0x18, 0x7E, 0= x18, 0x7E, 0x18, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00}}, - { 0x20a7, 0x00, {0x00, 0xF8, 0xCC, 0xCC, 0xFC, 0xF8, 0xC4, 0xCC, 0xDE, 0= xCC, 0xCC, 0xCC, 0xCC, 0xC6, 0x00, 0x00, 0x00, 0x00, 0x00}}, - { 0x0192, 0x00, {0x00, 0x0E, 0x1B, 0x19, 0x18, 0x18, 0x18, 0x7E, 0x18, 0= x18, 0x18, 0x18, 0x18, 0x98, 0xD8, 0x70, 0x00, 0x00, 0x00}}, - { 0x00e1, 0x00, {0x00, 0x18, 0x30, 0x60, 0xC0, 0x00, 0x78, 0x0C, 0x0C, 0= x7C, 0xCC, 0xCC, 0xCC, 0x76, 0x00, 0x00, 0x00, 0x00, 0x00}}, - { 0x00ed, 0x00, {0x00, 0x0C, 0x18, 0x30, 0x20, 0x00, 0x38, 0x18, 0x18, 0= x18, 0x18, 0x18, 0x18, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00}}, - { 0x00f3, 0x00, {0x00, 0x18, 0x30, 0x60, 0x40, 0x00, 0x7C, 0xC6, 0xC6, 0= xC6, 0xC6, 0xC6, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00, 0x00}}, - { 0x00fa, 0x00, {0x00, 0x18, 0x30, 0x60, 0x40, 0x00, 0xCC, 0xCC, 0xCC, 0= xCC, 0xCC, 0xCC, 0xCC, 0x76, 0x00, 0x00, 0x00, 0x00, 0x00}}, - { 0x00f1, 0x00, {0x00, 0x00, 0x36, 0xD4, 0x88, 0x00, 0xDC, 0x66, 0x66, 0= x66, 0x66, 0x66, 0x66, 0x66, 0x00, 0x00, 0x00, 0x00, 0x00}}, - { 0x00d1, 0x00, {0x36, 0xCC, 0x00, 0xC6, 0xE6, 0xF6, 0xDE, 0xCE, 0xC6, 0= xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0x00, 0x00, 0x00, 0x00, 0x00}}, - { 0x00aa, 0x00, {0x00, 0x3C, 0x6C, 0x6C, 0x6C, 0x3E, 0x00, 0x7E, 0x00, 0= x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, - { 0x00ba, 0x00, {0x00, 0x38, 0x6C, 0x6C, 0x6C, 0x38, 0x00, 0x7C, 0x00, 0= x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, - { 0x00bf, 0x00, {0x00, 0x00, 0x30, 0x30, 0x00, 0x30, 0x30, 0x30, 0x60, 0= xC0, 0xC6, 0xC6, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00, 0x00}}, - { 0x2310, 0x00, {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0xC0, 0= xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00}}, - { 0x00ac, 0x00, {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0x06, 0= x06, 0x06, 0x06, 0x06, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00}}, - { 0x00bd, 0x00, {0x00, 0xC0, 0xC0, 0xC0, 0xC2, 0xC6, 0x0C, 0x18, 0x30, 0= x60, 0xC0, 0x9C, 0x06, 0x0C, 0x18, 0x3E, 0x00, 0x00, 0x00}}, - { 0x00bc, 0x00, {0x00, 0xC0, 0xC0, 0xC0, 0xC2, 0xC6, 0x0C, 0x18, 0x30, 0= x66, 0xCE, 0x9A, 0x32, 0x3E, 0x06, 0x06, 0x00, 0x00, 0x00}}, - { 0x00a1, 0x00, {0x00, 0x00, 0x18, 0x18, 0x00, 0x18, 0x18, 0x18, 0x18, 0= x3C, 0x3C, 0x3C, 0x3C, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00}}, - { 0x00ab, 0x00, {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x36, 0x6C, 0xD8, 0= xD8, 0x6C, 0x36, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, - { 0x00bb, 0x00, {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xD8, 0x6C, 0x36, 0= x36, 0x6C, 0xD8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, - { 0x2591, 0x00, {0x11, 0x44, 0x11, 0x44, 0x11, 0x44, 0x11, 0x44, 0x11, 0= x44, 0x11, 0x44, 0x11, 0x44, 0x11, 0x44, 0x11, 0x44, 0x11}}, - { 0x2592, 0x00, {0x55, 0xAA, 0x55, 0xAA, 0x55, 0xAA, 0x55, 0xAA, 0x55, 0= xAA, 0x55, 0xAA, 0x55, 0xAA, 0x55, 0xAA, 0x55, 0xAA, 0x55}}, - { 0x2593, 0x00, {0xDD, 0x77, 0xDD, 0x77, 0xDD, 0x77, 0xDD, 0x77, 0xDD, 0= x77, 0xDD, 0x77, 0xDD, 0x77, 0xDD, 0x77, 0xDD, 0x77, 0xDD}}, - { 0x2502, 0x00, {0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0= x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18}}, - { 0x2524, 0x00, {0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0= xF8, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18}}, - { 0x2561, 0x00, {0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0xF8, 0= x18, 0xF8, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18}}, - { 0x2562, 0x00, {0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0= xF6, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36}}, - { 0x2556, 0x00, {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0= xFE, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36}}, - { 0x2555, 0x00, {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0= x18, 0xF8, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18}}, - { 0x2563, 0x00, {0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0xF6, 0= x06, 0xF6, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36}}, - { 0x2551, 0x00, {0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0= x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36}}, - { 0x2557, 0x00, {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0= x06, 0xF6, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36}}, - { 0x255d, 0x00, {0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0xF6, 0= x06, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, - { 0x255c, 0x00, {0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0= xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, - { 0x255b, 0x00, {0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0xF8, 0= x18, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, - { 0x2510, 0x00, {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0= xF8, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18}}, - { 0x2514, 0x00, {0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0= x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, - { 0x2534, 0x00, {0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0= xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, - { 0x252c, 0x00, {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0= xFF, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18}}, - { 0x251c, 0x00, {0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0= x1F, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18}}, - { 0x2500, 0x00, {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0= xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, - { 0x253c, 0x00, {0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0= xFF, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18}}, - { 0x255e, 0x00, {0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x1F, 0= x18, 0x1F, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18}}, - { 0x255f, 0x00, {0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0= x37, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36}}, - { 0x255a, 0x00, {0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x37, 0= x30, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, - { 0x2554, 0x00, {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F, 0= x30, 0x37, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36}}, - { 0x2569, 0x00, {0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0xF7, 0= x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, - { 0x2566, 0x00, {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0= x00, 0xF7, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36}}, - { 0x2560, 0x00, {0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x37, 0= x30, 0x37, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36}}, - { 0x2550, 0x00, {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0= x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, - { 0x256c, 0x00, {0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0xF7, 0= x00, 0xF7, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36}}, - { 0x2567, 0x00, {0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0xFF, 0= x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, - { 0x2568, 0x00, {0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0= xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, - { 0x2564, 0x00, {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0= x00, 0xFF, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18}}, - { 0x2565, 0x00, {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0= xFF, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36}}, - { 0x2559, 0x00, {0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0= x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, - { 0x2558, 0x00, {0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x1F, 0= x18, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, - { 0x2552, 0x00, {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F, 0= x18, 0x1F, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18}}, - { 0x2553, 0x00, {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0= x3F, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36}}, - { 0x256b, 0x00, {0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0= xFF, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36}}, - { 0x256a, 0x00, {0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0xFF, 0= x18, 0xFF, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18}}, - { 0x2518, 0x00, {0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0= xF8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, - { 0x250c, 0x00, {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0= x1F, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18}}, - { 0x2588, 0x00, {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0= xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF}}, - { 0x2584, 0x00, {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0= xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF}}, - { 0x258c, 0x00, {0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0= xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0}}, - { 0x2590, 0x00, {0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0= x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F}}, - { 0x2580, 0x00, {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0= x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, - { 0x03b1, 0x00, {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x76, 0xDC, 0xD8, 0= xD8, 0xD8, 0xD8, 0xDC, 0x76, 0x00, 0x00, 0x00, 0x00, 0x00}}, - { 0x00df, 0x00, {0x00, 0x00, 0x78, 0xCC, 0xCC, 0xCC, 0xCC, 0xD8, 0xCC, 0= xC6, 0xC6, 0xC6, 0xC6, 0xCC, 0x00, 0x00, 0x00, 0x00, 0x00}}, - { 0x0393, 0x00, {0x00, 0x00, 0xFE, 0xC6, 0xC6, 0xC6, 0xC0, 0xC0, 0xC0, 0= xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00}}, - { 0x03c0, 0x00, {0x00, 0x00, 0x00, 0x00, 0xFE, 0x6C, 0x6C, 0x6C, 0x6C, 0= x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0x00, 0x00, 0x00, 0x00, 0x00}}, - { 0x03a3, 0x00, {0x00, 0x00, 0x00, 0xFE, 0xC6, 0xC2, 0x60, 0x30, 0x18, 0= x30, 0x60, 0xC2, 0xC6, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00}}, - { 0x03c3, 0x00, {0x00, 0x00, 0x00, 0x00, 0x00, 0x7E, 0xD8, 0xD8, 0xD8, 0= xD8, 0xD8, 0xD8, 0xD8, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00}}, - { 0x00b5, 0x00, {0x00, 0x00, 0x00, 0x00, 0x66, 0x66, 0x66, 0x66, 0x66, 0= x66, 0x66, 0x7C, 0x60, 0x60, 0xC0, 0x00, 0x00, 0x00, 0x00}}, - { 0x03c4, 0x00, {0x00, 0x00, 0x00, 0x00, 0x76, 0xDC, 0x98, 0x18, 0x18, 0= x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00}}, - { 0x03a6, 0x00, {0x00, 0x00, 0x00, 0x7E, 0x18, 0x3C, 0x66, 0x66, 0x66, 0= x66, 0x66, 0x3C, 0x18, 0x7E, 0x00, 0x00, 0x00, 0x00, 0x00}}, - { 0x0398, 0x00, {0x00, 0x00, 0x00, 0x38, 0x6C, 0xC6, 0xC6, 0xC6, 0xFE, 0= xC6, 0xC6, 0xC6, 0x6C, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00}}, - { 0x03a9, 0x00, {0x00, 0x00, 0x38, 0x6C, 0xC6, 0xC6, 0xC6, 0xC6, 0x6C, 0= x6C, 0x6C, 0x6C, 0x6C, 0xEE, 0x00, 0x00, 0x00, 0x00, 0x00}}, - { 0x03b4, 0x00, {0x00, 0x00, 0x1E, 0x20, 0x30, 0x18, 0x0C, 0x3E, 0x66, 0= x66, 0x66, 0x66, 0x66, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00}}, - { 0x221e, 0x00, {0x00, 0x00, 0x00, 0x00, 0x00, 0x7E, 0xDB, 0xDB, 0xDB, 0= xDB, 0xDB, 0x7E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, - { 0x03c6, 0x00, {0x00, 0x00, 0x00, 0x03, 0x06, 0x7E, 0xDB, 0xDB, 0xDB, 0= xDB, 0xD3, 0x7E, 0x60, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00}}, - { 0x03b5, 0x00, {0x00, 0x00, 0x1C, 0x30, 0x60, 0x60, 0x60, 0x7C, 0x60, 0= x60, 0x60, 0x60, 0x30, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00}}, - { 0x2229, 0x00, {0x00, 0x00, 0x00, 0x7C, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0= xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0x00, 0x00, 0x00, 0x00, 0x00}}, - { 0x2261, 0x00, {0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0x00, 0x00, 0xFE, 0= x00, 0x00, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, - { 0x00b1, 0x00, {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x7E, 0= x18, 0x18, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00}}, - { 0x2265, 0x00, {0x00, 0x00, 0x00, 0x60, 0x30, 0x18, 0x0C, 0x06, 0x0C, 0= x18, 0x30, 0x60, 0x00, 0x7E, 0x00, 0x00, 0x00, 0x00, 0x00}}, - { 0x2264, 0x00, {0x00, 0x00, 0x00, 0x06, 0x0C, 0x18, 0x30, 0x60, 0x30, 0= x18, 0x0C, 0x06, 0x00, 0x7E, 0x00, 0x00, 0x00, 0x00, 0x00}}, - { 0x2320, 0x00, {0x00, 0x00, 0x0E, 0x1B, 0x1B, 0x1B, 0x18, 0x18, 0x18, 0= x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18}}, - { 0x2321, 0x00, {0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0= x18, 0x18, 0x18, 0x18, 0xD8, 0xD8, 0xD8, 0x70, 0x00, 0x00}}, - { 0x00f7, 0x00, {0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x7E, 0= x00, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, - { 0x2248, 0x00, {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x76, 0xDC, 0x00, 0= x76, 0xDC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, - { 0x00b0, 0x00, {0x00, 0x38, 0x6C, 0x6C, 0x6C, 0x38, 0x00, 0x00, 0x00, 0= x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, - { 0x2219, 0x00, {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0= x18, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, - { 0x00b7, 0x00, {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0= x18, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, - { 0x221a, 0x00, {0x00, 0x0F, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0xEC, 0= x6C, 0x6C, 0x6C, 0x3C, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00}}, - { 0x207f, 0x00, {0x00, 0xD8, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0x00, 0= x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, - { 0x00b2, 0x00, {0x00, 0x70, 0xD8, 0x10, 0x30, 0x60, 0xC8, 0xF8, 0x00, 0= x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, - { 0x25a0, 0x00, {0x00, 0x00, 0x00, 0x00, 0x00, 0x7C, 0x7C, 0x7C, 0x7C, 0= x7C, 0x7C, 0x7C, 0x7C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, - { 0x00a0, 0x00, {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0= x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, - { 0x0000, 0x00, {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0= x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}} //EOL -}; - -// Get available Unicode glyphs narrow fonts(8*19 pixels) size. -UINT32 mNarrowFontSize =3D sizeof (gUsStdNarrowGlyphData); diff --git a/Platform/RaspberryPi/Drivers/GraphicsConsoleDxe/GraphicsConsol= eDxe.uni b/Platform/RaspberryPi/Drivers/GraphicsConsoleDxe/GraphicsConsoleD= xe.uni deleted file mode 100644 index a7d8b8431abc..000000000000 --- a/Platform/RaspberryPi/Drivers/GraphicsConsoleDxe/GraphicsConsoleDxe.uni +++ /dev/null @@ -1,12 +0,0 @@ -/** @file - * - * Copyright (c) 2006-2014, Intel Corporation. All rights reserved. - * Copyright (c) 2018, Andrei Warkentin - * - * SPDX-License-Identifier: BSD-2-Clause-Patent - * - **/ - -#string STR_MODULE_ABSTRACT #language en-US "Console support o= n graphic devices" - -#string STR_MODULE_DESCRIPTION #language en-US "Install SimpleTex= tOutputProtocol on GraphicsOutputProtocol devices\n" diff --git a/Platform/RaspberryPi/Drivers/GraphicsConsoleDxe/GraphicsConsol= eDxeExtra.uni b/Platform/RaspberryPi/Drivers/GraphicsConsoleDxe/GraphicsCon= soleDxeExtra.uni deleted file mode 100644 index b849a6b99daf..000000000000 --- a/Platform/RaspberryPi/Drivers/GraphicsConsoleDxe/GraphicsConsoleDxeExt= ra.uni +++ /dev/null @@ -1,12 +0,0 @@ -/** @file - * - * Copyright (c) 2006-2014, Intel Corporation. All rights reserved. - * Copyright (c) 2018, Andrei Warkentin - * - * SPDX-License-Identifier: BSD-2-Clause-Patent - * - **/ - -#string STR_PROPERTIES_MODULE_NAME -#language en-US -"Graphics Console DXE Driver" --=20 2.17.1 -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#57353): https://edk2.groups.io/g/devel/message/57353 Mute This Topic: https://groups.io/mt/73012851/1787277 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org] -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-