From patchwork Mon Apr 27 09:48:24 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: AKASHI Takahiro X-Patchwork-Id: 1277490 X-Patchwork-Delegate: xypron.glpk@gmx.de Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de (client-ip=85.214.62.61; helo=phobos.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=linaro.org header.i=@linaro.org header.a=rsa-sha256 header.s=google header.b=o/aNV6Ng; dkim-atps=neutral Received: from phobos.denx.de (phobos.denx.de [85.214.62.61]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 499g4B4GBTz9sP7 for ; Mon, 27 Apr 2020 19:50:02 +1000 (AEST) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 3827381E27; Mon, 27 Apr 2020 11:49:23 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Authentication-Results: phobos.denx.de; dkim=pass (2048-bit key; unprotected) header.d=linaro.org header.i=@linaro.org header.b="o/aNV6Ng"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 3DEF481E22; Mon, 27 Apr 2020 11:49:14 +0200 (CEST) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de X-Spam-Level: X-Spam-Status: No, score=-2.0 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,SPF_HELO_NONE,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.2 Received: from mail-pl1-x643.google.com (mail-pl1-x643.google.com [IPv6:2607:f8b0:4864:20::643]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id EA0FA81E1C for ; Mon, 27 Apr 2020 11:49:09 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=takahiro.akashi@linaro.org Received: by mail-pl1-x643.google.com with SMTP id t4so6791797plq.12 for ; Mon, 27 Apr 2020 02:49:09 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=yRujNu6z0LD+qFSePBGIrlWplJiFMux9SsbyEZCSDZ4=; b=o/aNV6Ngzu/likCsMqJY24eDRJWmWUse+sDRVjrMobsBL9EgxCA1PSPQNvEFAZ41BD QjLmun0dILz9JqHhvDSn4pgZwFIXs7eZ/tcvlk4NLra6vhTDGw7LNwcfDH5NfVUFfqlI 0zpjSW2tpNGxP1Y3LvZEAwH0dhh5tcqzxzoVOWs/ifxOL87LM9B56h/g82ngbvRshPYA hu3iy/WPeAfrynGQpeHj1+IRQRyYm5ZUvK94qKo3PjuK9CO+glWpkoqP4RKa9q4Liaw9 Yc8t1NHiDXWoLiAS4nHG4+/G/IYqAlXzzO1iVTovt+d4B/k1sJMAR+d3l8wsQV1kfWuA 01zw== 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:in-reply-to :references:mime-version:content-transfer-encoding; bh=yRujNu6z0LD+qFSePBGIrlWplJiFMux9SsbyEZCSDZ4=; b=o622Ge+0ydX0OfeHgoaKFyYRx6dPq/TfSLOk+j7uHL1SrTosyKvHy7Y38eFzHJu1Q0 6NVgtPnTcS3bVjdDNdK/X2PEWZWnTRUkXNHvahUXfuw2zezLiUbbloaZSzlm8U8WZb3N nUY/uu9foQQyVf66AWnsH3Xtjenija8xIQgSZgG1y4zSSb2PJK6q1nK5nY0zLkHgOv7L q5BOpEMRPa/UeiHQi5Z7xf1NipGx9v7j7JFKczQRCzV2Fv0KxbUrvBXKev/lO0WEVVJs DTU1N5otJ3fFPlRGcmXqe0NXz4iTawL6ZKREV5RJuUYJ3zE7tQVUNQ0n0iQW8KzrflPK li1w== X-Gm-Message-State: AGi0PuaCmXYtqF/fA0eziyqTjRFO+0OYIuBlLwHkfNPkxF5k8BqrFKq3 8r5RZhqhQyRoh7Wm7laZFKnvFQ== X-Google-Smtp-Source: APiQypLvcN16SHveydphsfFfSZxI4kHH/6SxOZ4ozvSzU07huRhYBmj4ABFMwtvaQetMLztmjrdw9A== X-Received: by 2002:a17:90a:a608:: with SMTP id c8mr6597519pjq.90.1587980948294; Mon, 27 Apr 2020 02:49:08 -0700 (PDT) Received: from localhost.localdomain (p73a21dd7.tkyea130.ap.so-net.ne.jp. [115.162.29.215]) by smtp.gmail.com with ESMTPSA id 3sm12491031pfo.27.2020.04.27.02.49.06 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 27 Apr 2020 02:49:07 -0700 (PDT) From: AKASHI Takahiro To: xypron.glpk@gmx.de, agraf@csgraf.de Cc: sughosh.ganu@linaro.org, u-boot@lists.denx.de, AKASHI Takahiro Subject: [PATCH 05/10] efi_loader: capsule: add memory range capsule definitions Date: Mon, 27 Apr 2020 18:48:24 +0900 Message-Id: <20200427094829.1140-6-takahiro.akashi@linaro.org> X-Mailer: git-send-email 2.25.2 In-Reply-To: <20200427094829.1140-1-takahiro.akashi@linaro.org> References: <20200427094829.1140-1-takahiro.akashi@linaro.org> MIME-Version: 1.0 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.30rc1 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" X-Virus-Scanned: clamav-milter 0.102.2 at phobos.denx.de X-Virus-Status: Clean Memory range capsule gives us a way to notify that some memory regions should be left untouched across the next reset. See UEFI specification, section 8.5.3. Since how we should handle this kind of capsule is totally up to the system, no implementation will be added in this commit. Signed-off-by: AKASHI Takahiro --- include/efi_api.h | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/include/efi_api.h b/include/efi_api.h index 6fa3f4a887d2..dc602fe6707b 100644 --- a/include/efi_api.h +++ b/include/efi_api.h @@ -221,6 +221,10 @@ enum efi_reset_type { EFI_GUID(0x39b68c46, 0xf7fb, 0x441b, 0xb6, 0xec, \ 0x16, 0xb0, 0xf6, 0x98, 0x21, 0xf3) +#define EFI_MEMORY_RANGE_CAPSULE_GUID \ + EFI_GUID(0xde9f0ec, 0x88b6, 0x428f, 0x97, 0x7a, \ + 0x25, 0x8f, 0x1d, 0xe, 0x5e, 0x72) + struct efi_capsule_header { efi_guid_t capsule_guid; u32 header_size; @@ -236,6 +240,19 @@ struct efi_capsule_result_variable_header { efi_status_t capsule_status; } __packed; +struct efi_memory_range { + efi_physical_addr_t address; + u64 length; +}; + +struct efi_memory_range_capsule { + struct efi_capsule_header *header; + /* EFI_MEMORY_TYPE: 0x80000000-0xFFFFFFFF */ + enum efi_mem_type os_requested_memory_type; + u64 number_of_memory_ranges; + struct efi_memory_range memory_ranges[]; +} __packed; + #define EFI_RT_SUPPORTED_GET_TIME 0x0001 #define EFI_RT_SUPPORTED_SET_TIME 0x0002 #define EFI_RT_SUPPORTED_GET_WAKEUP_TIME 0x0004