From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received-SPF: Pass (sender SPF authorized) identity=mailfrom; client-ip=209.132.183.28; helo=mx1.redhat.com; envelope-from=lersek@redhat.com; receiver=edk2-devel@lists.01.org Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id 49F35211935A4 for ; Fri, 23 Nov 2018 01:19:33 -0800 (PST) Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id D7F4C859FF; Fri, 23 Nov 2018 09:19:32 +0000 (UTC) Received: from lacos-laptop-7.usersys.redhat.com (ovpn-120-112.rdu2.redhat.com [10.10.120.112]) by smtp.corp.redhat.com (Postfix) with ESMTP id AA93B9CC2; Fri, 23 Nov 2018 09:19:31 +0000 (UTC) To: prabin ca , edk2-devel@lists.01.org, dandan.bi@intel.com, afish@apple.com References: <28112B7C-8710-4394-9990-B69C5FDD15E5@gmail.com> From: Laszlo Ersek Message-ID: <163aeada-5a63-9a69-e220-1bb2a175644c@redhat.com> Date: Fri, 23 Nov 2018 10:19:30 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.9.1 MIME-Version: 1.0 In-Reply-To: <28112B7C-8710-4394-9990-B69C5FDD15E5@gmail.com> X-Scanned-By: MIMEDefang 2.79 on 10.5.11.11 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.26]); Fri, 23 Nov 2018 09:19:33 +0000 (UTC) Subject: Re: Display Architecture and Bring Up in UEFI X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 23 Nov 2018 09:19:34 -0000 Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 8bit On 11/23/18 07:27, prabin ca wrote: > Hi Team, > > I’m new to UEFI and display interface in UEFI. I would like to have deep dive into how display is working in UEFI (display architecture) and how display is have been bring up (porting of display panel in a any platform in general ). > > Please help me with sample codes and necessary documents. I would like to get knowledge about display bring up and display architecture in UEFI The driver writers' guide and the UEFI spec have relevant chapters on this. I think it's best to start reading the former, at "23 Graphics Driver Design Guidelines"; that part will give you the pointers to the rest as well. https://github.com/tianocore/tianocore.github.io/wiki/UEFI-Driver-Writer%27s-Guide For a (hopefully educational) example, I refer you to OvmfPkg/VirtioGpuDxe. In the series that first added this driver to edk2, I managed to construct the driver in stages such that each stage would build and even function, at the level expected from that stage. In particular, commit a2a4fa66701d ("OvmfPkg/VirtioGpuDxe: introduce with Component Name 2 and Driver Binding", 2016-09-01) could prove helpful, as it adds the skeleton of the driver, mostly without VirtIo GPU specifics. In addition, you might want to look into the generic MdeModulePkg/Universal/Console/GraphicsOutputDxe driver. A platform may be able to incorporate that driver without any changes, and control it by first producing the two HOBs in the PEI phase that the driver consumes: MdePkg/Include/Guid/GraphicsInfoHob.h (... Interestingly, due to the fact that this header file is under MdePkg and not MdeModulePkg, I've just learned, from the related commit messages, that the PEI phase has standardized graphics support, described in the PI spec. From the following two commit messages: - 697c6cf32693 ("MdePkg: Add PI 1.4 Graphics HOB and PPI header files", 2015-04-28) - 2af538fbf667 ("MdeModulePkg: Add GraphicsOutputDxe driver.", 2016-10-12) it appears that enabling graphics support in the PEI phase could be a *requirement* for using GraphicsOutputDxe in the DXE phase. That might or might not match your use case, so perhaps it will prevent you from using GraphicsOutputDxe. I'm not sure.) Thanks Laszlo