From patchwork Sun Sep 10 13:22:21 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Rob Clark X-Patchwork-Id: 812137 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=lists.denx.de (client-ip=81.169.180.215; helo=lists.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="nibSi2Tv"; dkim-atps=neutral Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 3xqsDw1TMjz9s83 for ; Sun, 10 Sep 2017 23:22:54 +1000 (AEST) Received: by lists.denx.de (Postfix, from userid 105) id 130A5C21E57; Sun, 10 Sep 2017 13:22:45 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on lists.denx.de X-Spam-Level: X-Spam-Status: No, score=-0.0 required=5.0 tests=FREEMAIL_FROM, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H3, RCVD_IN_MSPIKE_WL, T_DKIM_INVALID autolearn=unavailable autolearn_force=no version=3.4.0 Received: from lists.denx.de (localhost [IPv6:::1]) by lists.denx.de (Postfix) with ESMTP id 55779C21DDF; Sun, 10 Sep 2017 13:22:43 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id 5CE24C21DDF; Sun, 10 Sep 2017 13:22:42 +0000 (UTC) Received: from mail-qt0-f180.google.com (mail-qt0-f180.google.com [209.85.216.180]) by lists.denx.de (Postfix) with ESMTPS id D4E0EC21DA0 for ; Sun, 10 Sep 2017 13:22:41 +0000 (UTC) Received: by mail-qt0-f180.google.com with SMTP id q8so14649299qtb.5 for ; Sun, 10 Sep 2017 06:22:41 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=ALXSZjc7J+jpoB5VA3FIwJk/S0blvqvytZWWIRHPYrk=; b=nibSi2TvFOIWRWD2+J/grwTEIwV0thTQPsHOIJNFtHuR8vkoLarYyvthQ0IQbgtx+/ QuFlDLLj+EQoZuRAAqNFyYT+v3u0FSiGisIl6DkwWu+AjXTtfYdcthOQLkmBhKvwh9Sv MMaE5nUO71kGm5R5DBiPmVyv9PE/7aDH1zifu2aUtxPDMTadoBHwm9SLF39Iq+ekrf/r 1K2XWkM/NOCL+/JPmrEPmZp6SqygiMQp015FQ40lLl+P4LJqM+VuTh4e4fZUE3JweHZs kr2f/oKmI5kQCraeRSSCd7N0EM2u2neZtTSRlOGDLtNz/Xa//K9fd/CAppDmsQ+cHljZ TJEg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=ALXSZjc7J+jpoB5VA3FIwJk/S0blvqvytZWWIRHPYrk=; b=ZlBjvE0HjiWCJpJc/s0FdRz+ke5xJFY/RFQTGm+5ukmo1nBM+9SYLOpqFOMGkcqdgj hADtWXDlhUi4EuKNJtRoQvq3TjamCI4rEyGqIhiYjDQrgZdLl5dyXapZRYX0VLsPq5ms dPBhd2ewHjaobigVyvxjLepdvUfqFNJwU42x1X2MAnAlwT+xplfiOvFZ0oM0iLEAXggs 3dO5b6jBPzbX4zo83vgPKh7qzINgsLP7e70tryyllrZBeBUHW9WbBmy8xAiYDZxPqoXa 5kT0zEHAqJgUwwfN67E7y3OxMCeESDdWKtDoJc7JxoaVa/Pz1OgCw74EnQJX4rQEmpM7 uKcg== X-Gm-Message-State: AHPjjUijTcP9yKLV/Cx1RXZ62D9mjueAAl1ro5SitlUjoLewjVoWpTNZ 3V7KPPfG8LavhWh9ETY= X-Google-Smtp-Source: AOwi7QCUL04EMuYU/E6jaAqfP3uGs0MZE1jc9nk84YZE465QMq+5mLZzXP6kCTH+XWk2Mlyqbr4eaQ== X-Received: by 10.200.35.186 with SMTP id q55mr11616014qtq.193.1505049760281; Sun, 10 Sep 2017 06:22:40 -0700 (PDT) Received: from localhost ([2601:184:4780:aac0:25f8:dd96:a084:785a]) by smtp.gmail.com with ESMTPSA id z1sm4478220qtz.87.2017.09.10.06.22.38 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Sun, 10 Sep 2017 06:22:39 -0700 (PDT) From: Rob Clark To: U-Boot Mailing List Date: Sun, 10 Sep 2017 09:22:21 -0400 Message-Id: <20170910132236.14318-1-robdclark@gmail.com> X-Mailer: git-send-email 2.13.5 MIME-Version: 1.0 Cc: Heinrich Schuchardt , Leif Lindholm Subject: [U-Boot] [PATCH v1 00/12] efi_loader+video: support for Shell.efi X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.18 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" This patchset gets Shell.efi working to the point where we can start running SCT.efi (the UEFI test suite). There is more fat/fs work needed so that SCT can actually write results to a file so we can even see what is passing and what is not. This applies on top of the "efi_loader: enough UEFI for standard distro boot" patchset plus two patches from Heinrich which are also required: efi_loader: support 16 protocols per efi_object efi_loader: allow creating new handles Leif added stubbed implementations for the additional protocols that Shell.efi required, on top of what was added in the standard distro boot patchset, and I fleshed out the implementation enough for what Shell/ SCT required. There are still parts unimplemented, but IMHO the better thing to do is concentrate on what is needed to get SCT running properly so that we can implement the remaining bits having tests to test the implementation. There are 3 dm/video patches at the end, which aren't strictly required but fix issues with Shell running on vidconsole. (It is very convenient for debugging to have Shell on screen with u-boot debug prints going to serial.) The last HACK patch is not intended to be merged, just to show the remaining TODOs to have things working properly. Leif Lindholm (3): efi_loader: add stub EFI_DEVICE_PATH_UTILITIES_PROTOCOL efi_loader: add stub HII protocols efi_loader: add EFI_UNICODE_COLLATION_PROTOCOL stub Rob Clark (9): efi_loader: start fleshing out HII efi_loader: flesh out unicode protocol efi_loader: start fleshing out efi_device_path_utilities efi_loader: SIMPLE_TEXT_INPUT_EX plus wire up objects properly efi_loader: console support for color attributes dm: video: Fix cache flushes dm: video: Add basic ANSI escape sequence support dm: video: Add color ANSI escape sequence support HACK: efi_loader: hacks for SCT drivers/video/vidconsole-uclass.c | 209 ++++++++++++ drivers/video/video-uclass.c | 4 +- include/config_distro_bootcmd.h | 2 +- include/efi_api.h | 429 +++++++++++++++++++++++- include/efi_loader.h | 21 +- include/video.h | 7 + include/video_console.h | 11 + lib/efi_loader/Makefile | 1 + lib/efi_loader/efi_boottime.c | 26 +- lib/efi_loader/efi_console.c | 160 ++++++++- lib/efi_loader/efi_device_path_utilities.c | 87 +++++ lib/efi_loader/efi_file.c | 11 +- lib/efi_loader/efi_hii.c | 505 +++++++++++++++++++++++++++++ lib/efi_loader/efi_unicode.c | 170 ++++++++++ 14 files changed, 1610 insertions(+), 33 deletions(-) create mode 100644 lib/efi_loader/efi_device_path_utilities.c create mode 100644 lib/efi_loader/efi_hii.c create mode 100644 lib/efi_loader/efi_unicode.c