From patchwork Thu Nov 30 14:15:03 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ard Biesheuvel X-Patchwork-Id: 120202 Delivered-To: patch@linaro.org Received: by 10.140.22.227 with SMTP id 90csp721606qgn; Thu, 30 Nov 2017 06:15:29 -0800 (PST) X-Google-Smtp-Source: AGs4zMaUZ61Ac7vMMkMUtV441fwNAcoje7Gph5CzL7RQw1AXiKZ4TcQsSIfqCwelxDyAnZ+Um9Od X-Received: by 10.101.96.1 with SMTP id m1mr2532070pgu.38.1512051329290; Thu, 30 Nov 2017 06:15:29 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1512051329; cv=none; d=google.com; s=arc-20160816; b=b2Ul82R5mpCzPobXnET32NFVpH2HR5yTxUVUBVuI+bo3p6SZvwZlpCCjucgxpAblti 1LoOCvJzcNeWX1jZebmchKgr0IODUre50szlljaKxBU9TMlpZEJEa0KdIXoEGPluWtjE rMf2cvV+GEy8RCYvg5JT4Z2zGgC3bAANAT7Un3N7gqy0mPIAsZayAnKGpaA8+Gmyszun 7iVeWOiJq5+lftbjDH2ZGXXrJg9c+l74fHNOLIhD9z2q0lwzMLPLmyQKS8DKBWXYpY6P g7lSwwlan38xNGf/lGf50X8N+XEfIAGrumoeNg9kB7jbJdAOtLo2Aqqxik7iGpO7EuaE +OOw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:mime-version:cc :list-subscribe:list-help:list-post:list-archive:list-unsubscribe :list-id:precedence:subject:references:in-reply-to:message-id:date :to:from:dkim-signature:delivered-to:arc-authentication-results; bh=vUXjcdMD9Te+YIOIowbZdM85kuwq3Cqe7tba7ffEyCc=; b=MY9qwj1Zehr2ACIJvVLUIzV1xUj0AoqcpdFiLzZRFhu+vkx+zAsgj5hseeWIaCfNfB kWXJvfx+liQOhid0kTzSozqqhhqQ5QnLkG1MizPp58hQgUTQ8zoSYk1mO+MuJllvbwyK 8A8IWujSOjexDtNkjPe9JqN61TDJdFu2nZsskMN1YhxDC78TmXbL0qsh94jL1NgFQpI1 rgatRMHF4jMpauSpuezrXZKjO6/JveDp9v1F3l3AYdyGibwlKbglvg10itQg8XbdH88U PqmeQ9DKtR5GmNZK82sr+rsZ61Suh7Ta6iX2JYzBAph2xxaCInESuYLvvdVq9lSdt/4A 24gg== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@linaro.org header.s=google header.b=N3gHPJBP; spf=pass (google.com: best guess record for domain of edk2-devel-bounces@lists.01.org designates 2001:19d0:306:5::1 as permitted sender) smtp.mailfrom=edk2-devel-bounces@lists.01.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from ml01.01.org (ml01.01.org. [2001:19d0:306:5::1]) by mx.google.com with ESMTPS id k190si3112095pgc.12.2017.11.30.06.15.28 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 30 Nov 2017 06:15:29 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of edk2-devel-bounces@lists.01.org designates 2001:19d0:306:5::1 as permitted sender) client-ip=2001:19d0:306:5::1; Authentication-Results: mx.google.com; dkim=neutral (body hash did not verify) header.i=@linaro.org header.s=google header.b=N3gHPJBP; spf=pass (google.com: best guess record for domain of edk2-devel-bounces@lists.01.org designates 2001:19d0:306:5::1 as permitted sender) smtp.mailfrom=edk2-devel-bounces@lists.01.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: from [127.0.0.1] (localhost [IPv6:::1]) by ml01.01.org (Postfix) with ESMTP id 595B5220F3C57; Thu, 30 Nov 2017 06:11:03 -0800 (PST) X-Original-To: edk2-devel@lists.01.org Delivered-To: edk2-devel@lists.01.org Received-SPF: Pass (sender SPF authorized) identity=mailfrom; client-ip=2a00:1450:400c:c09::233; helo=mail-wm0-x233.google.com; envelope-from=ard.biesheuvel@linaro.org; receiver=edk2-devel@lists.01.org Received: from mail-wm0-x233.google.com (mail-wm0-x233.google.com [IPv6:2a00:1450:400c:c09::233]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id B37A3220C1C3A for ; Thu, 30 Nov 2017 06:11:01 -0800 (PST) Received: by mail-wm0-x233.google.com with SMTP id i11so12642329wmf.4 for ; Thu, 30 Nov 2017 06:15:27 -0800 (PST) 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; bh=pcBr5ayTKrdONQ6XkXcZ7FayNK5Ttgt6bTpAmNSeX9s=; b=N3gHPJBPb01Yq0+zXft3Jhf36jQqG+h8yZ8REA7TD6WnkBfYlJVTziKuUUiDfvzetr PgEk/0RfRKrm3EDQQg6qJxNB+PfW3Yi1EF3dgBwv/T3FhMzP+EYhCvJATqozJAyzbKO+ NOe8w5Pk6VqdBp2FZQf6Mw8Qz1JLG5BCfyle8= 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; bh=pcBr5ayTKrdONQ6XkXcZ7FayNK5Ttgt6bTpAmNSeX9s=; b=l2uMin2atUBNhq0k7uZHIfcGXugawnMuJR9jj2fTgzO7IVlYuDzdsuRd0R5BLuPpCY +ZvXI4Cu8QqV9QkQspsnwwOXpUTKTtfEsFLVqxA+hi7rh1A2ax46aSd+3iR9/Gm5gPq6 Y5LRu0WXgjenBDX+rMDcVlQdeqlr3T8ZP8mkwgwPaxdxt1kGn5iBQG52JDuBHfufDk2C 27RZKH8g1/etxwxhZbVs6dw9Sth0CzuqvI9Hxm1NZKrCEIveS/2TZ+IeTJEjvZaDRmYj 3SVOhZHmtURuASZdUR+wDw+LQrTFlfM0oecyU33KOBhJCJSnKNyh091pWlC71JIlgABK F57Q== X-Gm-Message-State: AJaThX5NIDoNreecjaHlhrbGqnvGsBhBHbMRSilmei0aFoowthQQ51+r ANrzZWV9cFLJPiYTt3ZJlpWpO9Oq8VY= X-Received: by 10.28.247.15 with SMTP id v15mr684251wmh.152.1512051320175; Thu, 30 Nov 2017 06:15:20 -0800 (PST) Received: from localhost.localdomain ([105.150.171.234]) by smtp.gmail.com with ESMTPSA id f19sm2303555wmf.5.2017.11.30.06.15.16 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 30 Nov 2017 06:15:18 -0800 (PST) From: Ard Biesheuvel To: edk2-devel@lists.01.org Date: Thu, 30 Nov 2017 14:15:03 +0000 Message-Id: <20171130141509.27230-2-ard.biesheuvel@linaro.org> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20171130141509.27230-1-ard.biesheuvel@linaro.org> References: <20171130141509.27230-1-ard.biesheuvel@linaro.org> Subject: [edk2] [PATCH 1/7] ArmPlatformPkg/Documentation: remove outdated porting manual X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: leif.lindholm@linaro.org, Ard Biesheuvel MIME-Version: 1.0 Errors-To: edk2-devel-bounces@lists.01.org Sender: "edk2-devel" Having a special porting manual for ARM platforms in general suggests that ARM platforms are fundamentally different from ones based on other architectures that are supported by UEFI. There may be some truth to that, but the porting manual in Documentation/ArmPlatformPkg.txt is hopelessly outdated, and did not give the best advice in the first place*. So remove it. * ArmPlatformLib as the mother of all platform abstractions is rather unwieldy, and using ArmVExpressLibCTA9x4 as a template is not that great an idea either. Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Ard Biesheuvel --- ArmPlatformPkg/Documentation/ARM-EDK2-Overview.png | Bin 54500 -> 0 bytes ArmPlatformPkg/Documentation/ArmPlatformLib-2nd-Stage.png | Bin 56506 -> 0 bytes ArmPlatformPkg/Documentation/ArmPlatformLib-Full-Boot.png | Bin 79676 -> 0 bytes ArmPlatformPkg/Documentation/ArmPlatformPkg.txt | 74 -------------------- 4 files changed, 74 deletions(-) -- 2.11.0 _______________________________________________ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel diff --git a/ArmPlatformPkg/Documentation/ARM-EDK2-Overview.png b/ArmPlatformPkg/Documentation/ARM-EDK2-Overview.png deleted file mode 100644 index 37cb39475b611b85a03d70653ae830abe3dca152..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 54500 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

uGu@Jynorcv_9BI*LqWxWmZ>V^x%QOLH#1tYQrI zeaXp`y2JP}Lr8&xoD`5;SUtkRY(TNlJ|-1J1(!$Hqj4af+Hig<*D6memY z2-zlg(ErwIz6H$te(={f847&Ayuvk^fi<*>CJmt-2UN$^Jwa87Pn6KxIx983!3K{} z>*I#)&thk)eIx0EU=MVAEmbFHq}-)mf#2*j04yMj_B+a8Q=Lr7@@pRj9ugEQJoZTSM-{-#%?D0w<(@w;XQt7?c_k3q&E_tL2vD#6#&{bk z=s%cZ;Sw7!Hq#PaE^C0!Izakh8@U4wI3gI1!q)tQdaxGDiSkzQ$}e0=bVDR4j=rVL z`~vP&l&&n%_nVl4*wlB-Ru2lt_NwC!k!9tB%+NGh&8`ex68`HlnwtV5YwpttJh z8?OghQk%rqYSDXGve6Qq*vYa9n7<}}Q$ZL2y-&{?Pe?TGa}VS|lRtLQUf<^sg7fu1 z_snG}@ZA&6{coB9#0Y@)#)B~EIFSh&e0Z9 zhsYw;;N5oX8W|p;<)*L69eF*OBzdG-3C4J6!1kC8MG&C1`Kfzb69JvRje73+K<44k zumK8^C_(juoIV{|Q{{w2PQnAk?blL^}Ko$d=}4kGj!v zKlbg�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νtpJ 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 z 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 X-Patchwork-Id: 120200 Delivered-To: patch@linaro.org Received: by 10.140.22.227 with SMTP id 90csp721539qgn; Thu, 30 Nov 2017 06:15:26 -0800 (PST) X-Google-Smtp-Source: AGs4zMZEOUdXq2RX7574eEMZqWQ0OZ1+WW0bvdxqr1gdUoA0b9NwI1ee8+KW/9wHSTLuR5uMcpyC X-Received: by 10.99.113.30 with SMTP id m30mr2490500pgc.338.1512051325946; Thu, 30 Nov 2017 06:15:25 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1512051325; cv=none; d=google.com; s=arc-20160816; b=cRaV83yCh/pT9bY9m0WQq+XN8kJIp1n4HYhJTq/cqTHvUYz7sCgB74GnibPE7wtDqr 9Z2Kyh7Z/tGHlbE1VpCuxk3Oq+v+dZQACzVs9L9E7vyTtxb9PAeGIeAuxeItE1clWTvL 5aBQIicrg8h8FEVmmFQw5cYAnACLkP4VAouG7mI2MX/oikkc3zK/OomcvU4BS/alGpg5 WeC+9FiYRkntQiUEF/9SmGjgU+dmV9gQQ/ILTLQ9V5oOOPMVsl9NmkxPcQ7Av7oNjLuJ uEe109s44KiYOSxysABg1LYh1q9xLtSRDSAyVyimEH2zN6E94pH99yA4WhhxzdHyIM8R mg7A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:mime-version:cc :list-subscribe:list-help:list-post:list-archive:list-unsubscribe :list-id:precedence:subject:references:in-reply-to:message-id:date :to:from:dkim-signature:delivered-to:arc-authentication-results; bh=0u8UHapDwikfaalIhhRwRIsnYKwiOeHXp4dpiKZEHwM=; b=JhOQDOrI/GdbhsYsfG0NuuwK/+Oy5iezkuwIu0GWFc8pLGCKwLE2hnTi3xFp3DGXto kKZNHX47YZmsvgk4M1jZCMfcx/7P7wR8g7/+i8qIBq8HfYnWpX+9ck1yd+V1Yf+eeMG/ Q2X1zRwl29CuaAeuXApXj203CD0LOf1Mn2DfNqzWpFHnjKDc0Uz7yeHHBAE1RbUuLZrK R2nY2fuDjY20g7cvJ5PI7PCJwZT+z5WpMtEUvUWjzoCJWVpqHBO1S50MSK3nS9R/ufmV D2c0kmPbExts1J7jeUHTUmIZOjrD42uHU34fBJ4Q6uh86Tjk0ox6xUG2EFtZh6Njj+6T oYqQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@linaro.org header.s=google header.b=a/wBqppg; spf=pass (google.com: best guess record for domain of edk2-devel-bounces@lists.01.org designates 2001:19d0:306:5::1 as permitted sender) smtp.mailfrom=edk2-devel-bounces@lists.01.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from ml01.01.org (ml01.01.org. [2001:19d0:306:5::1]) by mx.google.com with ESMTPS id i78si3316919pfa.191.2017.11.30.06.15.25 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 30 Nov 2017 06:15:25 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of edk2-devel-bounces@lists.01.org designates 2001:19d0:306:5::1 as permitted sender) client-ip=2001:19d0:306:5::1; Authentication-Results: mx.google.com; dkim=neutral (body hash did not verify) header.i=@linaro.org header.s=google header.b=a/wBqppg; spf=pass (google.com: best guess record for domain of edk2-devel-bounces@lists.01.org designates 2001:19d0:306:5::1 as permitted sender) smtp.mailfrom=edk2-devel-bounces@lists.01.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: from [127.0.0.1] (localhost [IPv6:::1]) by ml01.01.org (Postfix) with ESMTP id 16F91220D4C1F; Thu, 30 Nov 2017 06:11:00 -0800 (PST) X-Original-To: edk2-devel@lists.01.org Delivered-To: edk2-devel@lists.01.org Received-SPF: Pass (sender SPF authorized) identity=mailfrom; client-ip=2a00:1450:400c:c09::244; helo=mail-wm0-x244.google.com; envelope-from=ard.biesheuvel@linaro.org; receiver=edk2-devel@lists.01.org Received: from mail-wm0-x244.google.com (mail-wm0-x244.google.com [IPv6:2a00:1450:400c:c09::244]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id 2D56D220C1C3A for ; Thu, 30 Nov 2017 06:10:58 -0800 (PST) Received: by mail-wm0-x244.google.com with SMTP id f140so12655887wmd.2 for ; Thu, 30 Nov 2017 06:15:24 -0800 (PST) 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; bh=khfyxKyWvF9HQkYdaokZ1sCCnj2SbbuKXMLicXil9po=; b=a/wBqppg0UzjU5u02vydCwrDxhH+mctvJ2kvcu9Mw5Wn103rVJGo+yaChpJ3X7gafT 8wH31OG0KEMzor89tYux60y7W1/s6RfdwIj6tO0bltQutmawmRFucwxXVWA4HHpKyyGD kXyte2HUXdLjUtjm+E+sDefVmCM/aLXiLNZ1s= 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; bh=khfyxKyWvF9HQkYdaokZ1sCCnj2SbbuKXMLicXil9po=; b=DLMDW/AwzzNUuk8mF+6rntlwL21nuNdCzJUZ5/O8E/Px+VuP2ojfU00/36H71rDzZm FoHxPbYRosKmWf/zuxBPqspZZYy/nWSBUpOWF7Ygzh2cdjjNWX6S1NNcvHhnZYRARzd6 VotwNYk0Fe5KA6CN5uCYxQ+Xbqqsjn3UuHcLD32Y3zXSqQ5Q7rJkn41+vKlJG98XjsoI W6bfMd7F+xoMzcemeWHde2r3iEou24eJaNTooYFx7Rf/6HUEQCn9nkQQ4t4LGaeWpGke OOHcAtBwTcLJljkDhNDxKsJLWCewPIVGQJnB594Xjpr9RUGC5qp4l7C+8cW87N4BFMXR yonA== X-Gm-Message-State: AJaThX6dJp0WycZ9+JkzlUDo06NEYaqubaPWVPqL1PdLRaniCLe73AMk tKWW3pzyfx3TAWNny5xFdebQvzrX/Rk= X-Received: by 10.28.221.138 with SMTP id u132mr684481wmg.113.1512051322431; Thu, 30 Nov 2017 06:15:22 -0800 (PST) Received: from localhost.localdomain ([105.150.171.234]) by smtp.gmail.com with ESMTPSA id f19sm2303555wmf.5.2017.11.30.06.15.20 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 30 Nov 2017 06:15:21 -0800 (PST) From: Ard Biesheuvel To: edk2-devel@lists.01.org Date: Thu, 30 Nov 2017 14:15:04 +0000 Message-Id: <20171130141509.27230-3-ard.biesheuvel@linaro.org> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20171130141509.27230-1-ard.biesheuvel@linaro.org> References: <20171130141509.27230-1-ard.biesheuvel@linaro.org> Subject: [edk2] [PATCH 2/7] ArmPlatformPkg: remove unused ArmVExpressLibCTA9x4 code X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: leif.lindholm@linaro.org, Ard Biesheuvel MIME-Version: 1.0 Errors-To: edk2-devel-bounces@lists.01.org Sender: "edk2-devel" ArmVExpressLibCTA9x4 is unused, and rather outdated, given that it is the last ArmPlatformLib implementation that executes both in the secure and non-secure worlds, which is a model we no longer support for ARM systems. So remove it. Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Ard Biesheuvel --- ArmPlatformPkg/ArmVExpressPkg/Include/Platform/CTA9x4/ArmPlatform.h | 121 ------------ ArmPlatformPkg/ArmVExpressPkg/Library/ArmVExpressLibCTA9x4/ArmVExpressLib.inf | 57 ------ ArmPlatformPkg/ArmVExpressPkg/Library/ArmVExpressLibCTA9x4/ArmVExpressLibSec.inf | 54 ------ ArmPlatformPkg/ArmVExpressPkg/Library/ArmVExpressLibCTA9x4/CTA9x4.c | 198 -------------------- ArmPlatformPkg/ArmVExpressPkg/Library/ArmVExpressLibCTA9x4/CTA9x4Helper.S | 49 ----- ArmPlatformPkg/ArmVExpressPkg/Library/ArmVExpressLibCTA9x4/CTA9x4Helper.asm | 63 ------- ArmPlatformPkg/ArmVExpressPkg/Library/ArmVExpressLibCTA9x4/CTA9x4Mem.c | 119 ------------ 7 files changed, 661 deletions(-) -- 2.11.0 _______________________________________________ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel diff --git a/ArmPlatformPkg/ArmVExpressPkg/Include/Platform/CTA9x4/ArmPlatform.h b/ArmPlatformPkg/ArmVExpressPkg/Include/Platform/CTA9x4/ArmPlatform.h deleted file mode 100644 index b692b168cb0d..000000000000 --- a/ArmPlatformPkg/ArmVExpressPkg/Include/Platform/CTA9x4/ArmPlatform.h +++ /dev/null @@ -1,121 +0,0 @@ -/** @file -* Header defining Versatile Express constants (Base addresses, sizes, flags) -* -* Copyright (c) 2011, ARM Limited. All rights reserved. -* -* This program and the accompanying materials -* are licensed and made available under the terms and conditions of the BSD License -* which accompanies this distribution. The full text of the license may be found at -* http://opensource.org/licenses/bsd-license.php -* -* THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, -* WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. -* -**/ - -#ifndef __ARM_VEXPRESS_H__ -#define __ARM_VEXPRESS_H__ - -#include -#include - -/*********************************************************************************** -// Platform Memory Map -************************************************************************************/ - -// Can be NOR0, NOR1, DRAM -#define ARM_VE_REMAP_BASE 0x00000000 -#define ARM_VE_REMAP_SZ SIZE_64MB - -// Motherboard Peripheral and On-chip peripheral -#define ARM_VE_SMB_MB_ON_CHIP_PERIPH_BASE 0x10000000 -#define ARM_VE_SMB_MB_ON_CHIP_PERIPH_SZ SIZE_256MB -#define ARM_VE_BOARD_PERIPH_BASE 0x10000000 -#define ARM_VE_CHIP_PERIPH_BASE 0x10020000 - -// SMC -#define ARM_VE_SMC_BASE 0x40000000 -#define ARM_VE_SMC_SZ 0x1C000000 - -// NOR Flash 1 -#define ARM_VE_SMB_NOR0_BASE 0x40000000 -#define ARM_VE_SMB_NOR0_SZ SIZE_64MB -// NOR Flash 2 -#define ARM_VE_SMB_NOR1_BASE 0x44000000 -#define ARM_VE_SMB_NOR1_SZ SIZE_64MB -// SRAM -#define ARM_VE_SMB_SRAM_BASE 0x48000000 -#define ARM_VE_SMB_SRAM_SZ SIZE_32MB -// USB, Ethernet, VRAM -#define ARM_VE_SMB_PERIPH_BASE 0x4C000000 -#define PL111_CLCD_VRAM_MOTHERBOARD_BASE ARM_VE_SMB_PERIPH_BASE -#define ARM_VE_SMB_PERIPH_SZ SIZE_64MB - -// DRAM -#define ARM_VE_DRAM_BASE PcdGet64 (PcdSystemMemoryBase) -#define ARM_VE_DRAM_SZ PcdGet64 (PcdSystemMemorySize) -// Inside the DRAM we allocate a section for the VRAM (Video RAM) -#define LCD_VRAM_CORE_TILE_BASE 0x64000000 - -// External AXI between daughterboards (Logic Tile) -#define ARM_VE_EXT_AXI_BASE 0xE0000000 -#define ARM_VE_EXT_AXI_SZ 0x20000000 /* 512 MB */ - - -/*********************************************************************************** - Core Tile memory-mapped Peripherals -************************************************************************************/ - -// PL111 Colour LCD Controller - core tile -#define PL111_CLCD_CORE_TILE_BASE (ARM_VE_BOARD_PERIPH_BASE + 0x20000) -#define PL111_CLCD_SITE ARM_VE_DAUGHTERBOARD_1_SITE - -// PL341 Dynamic Memory Controller Base -#define ARM_VE_DMC_BASE (ARM_VE_BOARD_PERIPH_BASE + 0xE0000) - -// PL354 Static Memory Controller Base -#define ARM_VE_SMC_CTRL_BASE (ARM_VE_BOARD_PERIPH_BASE + 0xE1000) - -// System Configuration Controller register Base addresses -#define ARM_VE_SYS_CFG_CTRL_BASE (ARM_VE_BOARD_PERIPH_BASE + 0xE2000) -#define ARM_VE_SCC_BASE ARM_VE_SYS_CFG_CTRL_BASE -#define ARM_VE_SYS_CFGRW0_REG (ARM_VE_BOARD_PERIPH_BASE + 0xE2000) -#define ARM_VE_SYS_CFGRW1_REG (ARM_VE_BOARD_PERIPH_BASE + 0xE2004) -#define ARM_VE_SYS_CFGRW2_REG (ARM_VE_BOARD_PERIPH_BASE + 0xE2008) - -// SP805 Watchdog on Cortex A9 core tile -#define SP805_WDOG_CORE_TILE_BASE (ARM_VE_BOARD_PERIPH_BASE + 0xE5000) - -// BP147 TZPC Base Address -#define ARM_VE_TZPC_BASE (ARM_VE_BOARD_PERIPH_BASE + 0xE6000) - -// PL301 Fast AXI Base Address -#define ARM_VE_FAXI_BASE (ARM_VE_BOARD_PERIPH_BASE + 0xE9000) - -// TZASC Trust Zone Address Space Controller Base Address -#define ARM_VE_TZASC_BASE (ARM_VE_BOARD_PERIPH_BASE + 0xEC000) - -// PL310 L2x0 Cache Controller Base Address -//#define ARM_VE_L2x0_CTLR_BASE 0x1E00A000 - -/*********************************************************************************** - Peripherals' misc settings -************************************************************************************/ - -#define ARM_VE_CFGRW1_TZASC_EN_BIT_MASK 0x2000 -#define ARM_VE_CFGRW1_REMAP_NOR0 0 -#define ARM_VE_CFGRW1_REMAP_NOR1 (1 << 28) -#define ARM_VE_CFGRW1_REMAP_EXT_AXI (1 << 29) -#define ARM_VE_CFGRW1_REMAP_DRAM (1 << 30) - -// TZASC - Other settings -#define ARM_VE_DECPROT_BIT_TZPC (1 << 6) -#define ARM_VE_DECPROT_BIT_DMC_TZASC (1 << 11) -#define ARM_VE_DECPROT_BIT_NMC_TZASC (1 << 12) -#define ARM_VE_DECPROT_BIT_SMC_TZASC (1 << 13) -#define ARM_VE_DECPROT_BIT_EXT_MAST_TZ (1) -#define ARM_VE_DECPROT_BIT_DMC_TZASC_LOCK (1 << 3) -#define ARM_VE_DECPROT_BIT_NMC_TZASC_LOCK (1 << 4) -#define ARM_VE_DECPROT_BIT_SMC_TZASC_LOCK (1 << 5) - -#endif diff --git a/ArmPlatformPkg/ArmVExpressPkg/Library/ArmVExpressLibCTA9x4/ArmVExpressLib.inf b/ArmPlatformPkg/ArmVExpressPkg/Library/ArmVExpressLibCTA9x4/ArmVExpressLib.inf deleted file mode 100644 index dc11ac3e745f..000000000000 --- a/ArmPlatformPkg/ArmVExpressPkg/Library/ArmVExpressLibCTA9x4/ArmVExpressLib.inf +++ /dev/null @@ -1,57 +0,0 @@ -#/* @file -# Copyright (c) 2011-2013, ARM Limited. All rights reserved. -# -# This program and the accompanying materials -# are licensed and made available under the terms and conditions of the BSD License -# which accompanies this distribution. The full text of the license may be found at -# http://opensource.org/licenses/bsd-license.php -# -# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, -# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. -# -#*/ - -[Defines] - INF_VERSION = 0x00010005 - BASE_NAME = CTA9x4ArmVExpressLib - FILE_GUID = b16c63a0-f417-11df-b3af-0002a5d5c51b - MODULE_TYPE = BASE - VERSION_STRING = 1.0 - LIBRARY_CLASS = ArmPlatformLib - -[Packages] - MdePkg/MdePkg.dec - MdeModulePkg/MdeModulePkg.dec - EmbeddedPkg/EmbeddedPkg.dec - ArmPkg/ArmPkg.dec - ArmPlatformPkg/ArmPlatformPkg.dec - -[LibraryClasses] - IoLib - ArmLib - ArmTrustZoneLib - MemoryAllocationLib - PL341DmcLib - PL301AxiLib - -[Sources.common] - CTA9x4Helper.asm | RVCT - CTA9x4Helper.S | GCC - CTA9x4.c - CTA9x4Mem.c - CTA9x4Helper.S | GCC - CTA9x4Helper.asm | RVCT - -[FeaturePcd] - gEmbeddedTokenSpaceGuid.PcdCacheEnable - gArmPlatformTokenSpaceGuid.PcdNorFlashRemapping - -[FixedPcd] - gArmTokenSpaceGuid.PcdSystemMemoryBase - gArmTokenSpaceGuid.PcdSystemMemorySize - - gArmTokenSpaceGuid.PcdArmPrimaryCoreMask - gArmTokenSpaceGuid.PcdArmPrimaryCore - -[Ppis] - gArmMpCoreInfoPpiGuid diff --git a/ArmPlatformPkg/ArmVExpressPkg/Library/ArmVExpressLibCTA9x4/ArmVExpressLibSec.inf b/ArmPlatformPkg/ArmVExpressPkg/Library/ArmVExpressLibCTA9x4/ArmVExpressLibSec.inf deleted file mode 100644 index 1c6b66f339be..000000000000 --- a/ArmPlatformPkg/ArmVExpressPkg/Library/ArmVExpressLibCTA9x4/ArmVExpressLibSec.inf +++ /dev/null @@ -1,54 +0,0 @@ -#/* @file -# Copyright (c) 2011-2012, ARM Limited. All rights reserved. -# -# This program and the accompanying materials -# are licensed and made available under the terms and conditions of the BSD License -# which accompanies this distribution. The full text of the license may be found at -# http://opensource.org/licenses/bsd-license.php -# -# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, -# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. -# -#*/ - -[Defines] - INF_VERSION = 0x00010005 - BASE_NAME = CTA9x4ArmVExpressLibSec - FILE_GUID = 8d25ef2c-2015-416e-b8aa-2369fecd4bda - MODULE_TYPE = BASE - VERSION_STRING = 1.0 - LIBRARY_CLASS = ArmPlatformLib - -[Packages] - MdePkg/MdePkg.dec - MdeModulePkg/MdeModulePkg.dec - EmbeddedPkg/EmbeddedPkg.dec - ArmPkg/ArmPkg.dec - ArmPlatformPkg/ArmPlatformPkg.dec - -[LibraryClasses] - IoLib - ArmLib - ArmTrustZoneLib - PL341DmcLib - PL301AxiLib - SerialPortLib - -[Sources.common] - CTA9x4.c - CTA9x4Helper.S | GCC - CTA9x4Helper.asm | RVCT - -[FeaturePcd] - gEmbeddedTokenSpaceGuid.PcdCacheEnable - gArmPlatformTokenSpaceGuid.PcdNorFlashRemapping - -[FixedPcd] - gArmTokenSpaceGuid.PcdSystemMemoryBase - gArmTokenSpaceGuid.PcdSystemMemorySize - - gArmTokenSpaceGuid.PcdArmPrimaryCoreMask - gArmTokenSpaceGuid.PcdArmPrimaryCore - -[Ppis] - gArmMpCoreInfoPpiGuid diff --git a/ArmPlatformPkg/ArmVExpressPkg/Library/ArmVExpressLibCTA9x4/CTA9x4.c b/ArmPlatformPkg/ArmVExpressPkg/Library/ArmVExpressLibCTA9x4/CTA9x4.c deleted file mode 100644 index ba7319b820b3..000000000000 --- a/ArmPlatformPkg/ArmVExpressPkg/Library/ArmVExpressLibCTA9x4/CTA9x4.c +++ /dev/null @@ -1,198 +0,0 @@ -/** @file -* -* Copyright (c) 2011-2013, ARM Limited. All rights reserved. -* -* This program and the accompanying materials -* are licensed and made available under the terms and conditions of the BSD License -* which accompanies this distribution. The full text of the license may be found at -* http://opensource.org/licenses/bsd-license.php -* -* THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, -* WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. -* -**/ - -#include -#include -#include -#include - -#include -#include -#include - -#include - -#include - -ARM_CORE_INFO mVersatileExpressMpCoreInfoCTA9x4[] = { - { - // Cluster 0, Core 0 - 0x0, 0x0, - - // MP Core MailBox Set/Get/Clear Addresses and Clear Value - (EFI_PHYSICAL_ADDRESS)ARM_VE_SYS_FLAGS_REG, - (EFI_PHYSICAL_ADDRESS)ARM_VE_SYS_FLAGS_SET_REG, - (EFI_PHYSICAL_ADDRESS)ARM_VE_SYS_FLAGS_CLR_REG, - (UINT64)0xFFFFFFFF - }, - { - // Cluster 0, Core 1 - 0x0, 0x1, - - // MP Core MailBox Set/Get/Clear Addresses and Clear Value - (EFI_PHYSICAL_ADDRESS)ARM_VE_SYS_FLAGS_REG, - (EFI_PHYSICAL_ADDRESS)ARM_VE_SYS_FLAGS_SET_REG, - (EFI_PHYSICAL_ADDRESS)ARM_VE_SYS_FLAGS_CLR_REG, - (UINT64)0xFFFFFFFF - }, - { - // Cluster 0, Core 2 - 0x0, 0x2, - - // MP Core MailBox Set/Get/Clear Addresses and Clear Value - (EFI_PHYSICAL_ADDRESS)ARM_VE_SYS_FLAGS_REG, - (EFI_PHYSICAL_ADDRESS)ARM_VE_SYS_FLAGS_SET_REG, - (EFI_PHYSICAL_ADDRESS)ARM_VE_SYS_FLAGS_CLR_REG, - (UINT64)0xFFFFFFFF - }, - { - // Cluster 0, Core 3 - 0x0, 0x3, - - // MP Core MailBox Set/Get/Clear Addresses and Clear Value - (EFI_PHYSICAL_ADDRESS)ARM_VE_SYS_FLAGS_REG, - (EFI_PHYSICAL_ADDRESS)ARM_VE_SYS_FLAGS_SET_REG, - (EFI_PHYSICAL_ADDRESS)ARM_VE_SYS_FLAGS_CLR_REG, - (UINT64)0xFFFFFFFF - } -}; - -// DDR2 timings -PL341_DMC_CONFIG DDRTimings = { - .MaxChip = 1, - .IsUserCfg = TRUE, - .User0Cfg = 0x7C924924, - .User2Cfg = (TC_UIOLHXC_VALUE << TC_UIOLHNC_SHIFT) | (TC_UIOLHXC_VALUE << TC_UIOLHPC_SHIFT) | (0x1 << TC_UIOHOCT_SHIFT) | (0x1 << TC_UIOHSTOP_SHIFT), - .HasQos = TRUE, - .RefreshPeriod = 0x3D0, - .CasLatency = 0x8, - .WriteLatency = 0x3, - .t_mrd = 0x2, - .t_ras = 0xA, - .t_rc = 0xE, - .t_rcd = 0x104, - .t_rfc = 0x2f32, - .t_rp = 0x14, - .t_rrd = 0x2, - .t_wr = 0x4, - .t_wtr = 0x2, - .t_xp = 0x2, - .t_xsr = 0xC8, - .t_esr = 0x14, - .MemoryCfg = DMC_MEMORY_CONFIG_ACTIVE_CHIP_1 | DMC_MEMORY_CONFIG_BURST_4 | - DMC_MEMORY_CONFIG_ROW_ADDRESS_15 | DMC_MEMORY_CONFIG_COLUMN_ADDRESS_10, - .MemoryCfg2 = DMC_MEMORY_CFG2_DQM_INIT | DMC_MEMORY_CFG2_CKE_INIT | - DMC_MEMORY_CFG2_BANK_BITS_3 | DMC_MEMORY_CFG2_MEM_WIDTH_32, - .MemoryCfg3 = 0x00000001, - .ChipCfg0 = 0x00010000, - .t_faw = 0x00000A0D, - .ModeReg = DDR2_MR_BURST_LENGTH_4 | DDR2_MR_CAS_LATENCY_4 | DDR2_MR_WR_CYCLES_4, - .ExtModeReg = DDR_EMR_RTT_50R | (DDR_EMR_ODS_VAL << DDR_EMR_ODS_MASK), -}; - -/** - Return the current Boot Mode - - This function returns the boot reason on the platform - - @return Return the current Boot Mode of the platform - -**/ -EFI_BOOT_MODE -ArmPlatformGetBootMode ( - VOID - ) -{ - if (MmioRead32(ARM_VE_SYS_FLAGS_NV_REG) == 0) { - return BOOT_WITH_FULL_CONFIGURATION; - } else { - return BOOT_ON_S2_RESUME; - } -} - -/** - Initialize controllers that must setup in the normal world - - This function is called by the ArmPlatformPkg/PrePi or ArmPlatformPkg/PlatformPei - in the PEI phase. - -**/ -RETURN_STATUS -ArmPlatformInitialize ( - IN UINTN MpId - ) -{ - if (!ArmPlatformIsPrimaryCore (MpId)) { - return RETURN_SUCCESS; - } - - // Configure periodic timer (TIMER0) for 1MHz operation - MmioOr32 (SP810_CTRL_BASE + SP810_SYS_CTRL_REG, SP810_SYS_CTRL_TIMER0_TIMCLK); - // Configure 1MHz clock - MmioOr32 (SP810_CTRL_BASE + SP810_SYS_CTRL_REG, SP810_SYS_CTRL_TIMER1_TIMCLK); - // configure SP810 to use 1MHz clock and disable - MmioAndThenOr32 (SP810_CTRL_BASE + SP810_SYS_CTRL_REG, ~SP810_SYS_CTRL_TIMER2_EN, SP810_SYS_CTRL_TIMER2_TIMCLK); - // Configure SP810 to use 1MHz clock and disable - MmioAndThenOr32 (SP810_CTRL_BASE + SP810_SYS_CTRL_REG, ~SP810_SYS_CTRL_TIMER3_EN, SP810_SYS_CTRL_TIMER3_TIMCLK); - - return RETURN_SUCCESS; -} - -/** - Initialize the system (or sometimes called permanent) memory - - This memory is generally represented by the DRAM. - -**/ -VOID -ArmPlatformInitializeSystemMemory ( - VOID - ) -{ - PL341DmcInit (ARM_VE_DMC_BASE, &DDRTimings); - PL301AxiInit (ARM_VE_FAXI_BASE); -} - -EFI_STATUS -PrePeiCoreGetMpCoreInfo ( - OUT UINTN *CoreCount, - OUT ARM_CORE_INFO **ArmCoreTable - ) -{ - *CoreCount = sizeof(mVersatileExpressMpCoreInfoCTA9x4) / sizeof(ARM_CORE_INFO); - *ArmCoreTable = mVersatileExpressMpCoreInfoCTA9x4; - - return EFI_SUCCESS; -} - -ARM_MP_CORE_INFO_PPI mMpCoreInfoPpi = { PrePeiCoreGetMpCoreInfo }; - -EFI_PEI_PPI_DESCRIPTOR gPlatformPpiTable[] = { - { - EFI_PEI_PPI_DESCRIPTOR_PPI, - &gArmMpCoreInfoPpiGuid, - &mMpCoreInfoPpi - } -}; - -VOID -ArmPlatformGetPlatformPpiList ( - OUT UINTN *PpiListSize, - OUT EFI_PEI_PPI_DESCRIPTOR **PpiList - ) -{ - *PpiListSize = sizeof(gPlatformPpiTable); - *PpiList = gPlatformPpiTable; -} - diff --git a/ArmPlatformPkg/ArmVExpressPkg/Library/ArmVExpressLibCTA9x4/CTA9x4Helper.S b/ArmPlatformPkg/ArmVExpressPkg/Library/ArmVExpressLibCTA9x4/CTA9x4Helper.S deleted file mode 100644 index f95d2f43d665..000000000000 --- a/ArmPlatformPkg/ArmVExpressPkg/Library/ArmVExpressLibCTA9x4/CTA9x4Helper.S +++ /dev/null @@ -1,49 +0,0 @@ -# -# Copyright (c) 2011-2013, ARM Limited. All rights reserved. -# -# This program and the accompanying materials -# are licensed and made available under the terms and conditions of the BSD License -# which accompanies this distribution. The full text of the license may be found at -# http://opensource.org/licenses/bsd-license.php -# -# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, -# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. -# -# - -#include -#include - -//UINTN -//ArmPlatformGetPrimaryCoreMpId ( -// VOID -// ); -ASM_FUNC(ArmPlatformGetPrimaryCoreMpId) - MOV32 (r0, FixedPcdGet32 (PcdArmPrimaryCore)) - bx lr - -//UINTN -//ArmPlatformIsPrimaryCore ( -// IN UINTN MpId -// ); -ASM_FUNC(ArmPlatformIsPrimaryCore) - MOV32 (r1, FixedPcdGet32 (PcdArmPrimaryCoreMask)) - and r0, r0, r1 - MOV32 (r1, FixedPcdGet32 (PcdArmPrimaryCore)) - cmp r0, r1 - moveq r0, #1 - movne r0, #0 - bx lr - -//UINTN -//ArmPlatformGetCorePosition ( -// IN UINTN MpId -// ); -ASM_FUNC(ArmPlatformGetCorePosition) - and r0, r0, #ARM_CORE_MASK - bx lr - -ASM_FUNC(ArmPlatformPeiBootAction) - bx lr - -ASM_FUNCTION_REMOVE_IF_UNREFERENCED diff --git a/ArmPlatformPkg/ArmVExpressPkg/Library/ArmVExpressLibCTA9x4/CTA9x4Helper.asm b/ArmPlatformPkg/ArmVExpressPkg/Library/ArmVExpressLibCTA9x4/CTA9x4Helper.asm deleted file mode 100644 index 877b4b4a1e55..000000000000 --- a/ArmPlatformPkg/ArmVExpressPkg/Library/ArmVExpressLibCTA9x4/CTA9x4Helper.asm +++ /dev/null @@ -1,63 +0,0 @@ -// -// Copyright (c) 2013, ARM Limited. All rights reserved. -// -// This program and the accompanying materials -// are licensed and made available under the terms and conditions of the BSD License -// which accompanies this distribution. The full text of the license may be found at -// http://opensource.org/licenses/bsd-license.php -// -// THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, -// WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. -// -// - -#include - -#include - - INCLUDE AsmMacroIoLib.inc - - EXPORT ArmPlatformPeiBootAction - EXPORT ArmPlatformIsPrimaryCore - EXPORT ArmPlatformGetPrimaryCoreMpId - EXPORT ArmPlatformGetCorePosition - - AREA CTA9x4Helper, CODE, READONLY - -//UINTN -//ArmPlatformGetPrimaryCoreMpId ( -// VOID -// ); -ArmPlatformGetPrimaryCoreMpId FUNCTION - mov32 r0, FixedPcdGet32(PcdArmPrimaryCore) - bx lr - ENDFUNC - -//UINTN -//ArmPlatformIsPrimaryCore ( -// IN UINTN MpId -// ); -ArmPlatformIsPrimaryCore FUNCTION - mov32 r1, FixedPcdGet32(PcdArmPrimaryCoreMask) - and r0, r0, r1 - mov32 r1, FixedPcdGet32(PcdArmPrimaryCore) - cmp r0, r1 - moveq r0, #1 - movne r0, #0 - bx lr - ENDFUNC - -//UINTN -//ArmPlatformGetCorePosition ( -// IN UINTN MpId -// ); -ArmPlatformGetCorePosition FUNCTION - and r0, r0, #ARM_CORE_MASK - bx lr - ENDFUNC - -ArmPlatformPeiBootAction FUNCTION - bx lr - ENDFUNC - - END diff --git a/ArmPlatformPkg/ArmVExpressPkg/Library/ArmVExpressLibCTA9x4/CTA9x4Mem.c b/ArmPlatformPkg/ArmVExpressPkg/Library/ArmVExpressLibCTA9x4/CTA9x4Mem.c deleted file mode 100644 index 7ea6e7417389..000000000000 --- a/ArmPlatformPkg/ArmVExpressPkg/Library/ArmVExpressLibCTA9x4/CTA9x4Mem.c +++ /dev/null @@ -1,119 +0,0 @@ -/** @file -* -* Copyright (c) 2011, ARM Limited. All rights reserved. -* -* This program and the accompanying materials -* are licensed and made available under the terms and conditions of the BSD License -* which accompanies this distribution. The full text of the license may be found at -* http://opensource.org/licenses/bsd-license.php -* -* THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, -* WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. -* -**/ - -#include -#include -#include -#include -#include - -#include - -// Number of Virtual Memory Map Descriptors without a Logic Tile -#define MAX_VIRTUAL_MEMORY_MAP_DESCRIPTORS 6 - -// DDR attributes -#define DDR_ATTRIBUTES_CACHED ARM_MEMORY_REGION_ATTRIBUTE_WRITE_BACK -#define DDR_ATTRIBUTES_UNCACHED ARM_MEMORY_REGION_ATTRIBUTE_UNCACHED_UNBUFFERED - -/** - Return the Virtual Memory Map of your platform - - This Virtual Memory Map is used by MemoryInitPei Module to initialize the MMU on your platform. - - @param[out] VirtualMemoryMap Array of ARM_MEMORY_REGION_DESCRIPTOR describing a Physical-to- - Virtual Memory mapping. This array must be ended by a zero-filled - entry - -**/ -VOID -ArmPlatformGetVirtualMemoryMap ( - IN ARM_MEMORY_REGION_DESCRIPTOR** VirtualMemoryMap - ) -{ - ARM_MEMORY_REGION_ATTRIBUTES CacheAttributes; - UINTN Index = 0; - ARM_MEMORY_REGION_DESCRIPTOR *VirtualMemoryTable; - - ASSERT(VirtualMemoryMap != NULL); - - VirtualMemoryTable = (ARM_MEMORY_REGION_DESCRIPTOR*)AllocatePages(EFI_SIZE_TO_PAGES (sizeof(ARM_MEMORY_REGION_DESCRIPTOR) * MAX_VIRTUAL_MEMORY_MAP_DESCRIPTORS)); - if (VirtualMemoryTable == NULL) { - return; - } - - if (FeaturePcdGet(PcdCacheEnable) == TRUE) { - CacheAttributes = DDR_ATTRIBUTES_CACHED; - } else { - CacheAttributes = DDR_ATTRIBUTES_UNCACHED; - } - - if (FeaturePcdGet(PcdNorFlashRemapping) == FALSE) { - // ReMap (Either NOR Flash or DRAM) - VirtualMemoryTable[Index].PhysicalBase = ARM_VE_REMAP_BASE; - VirtualMemoryTable[Index].VirtualBase = ARM_VE_REMAP_BASE; - VirtualMemoryTable[Index].Length = ARM_VE_REMAP_SZ; - VirtualMemoryTable[Index].Attributes = CacheAttributes; - } - - // DDR - VirtualMemoryTable[++Index].PhysicalBase = ARM_VE_DRAM_BASE; - VirtualMemoryTable[Index].VirtualBase = ARM_VE_DRAM_BASE; - VirtualMemoryTable[Index].Length = ARM_VE_DRAM_SZ; - VirtualMemoryTable[Index].Attributes = CacheAttributes; - - // SMC CS7 - VirtualMemoryTable[++Index].PhysicalBase = ARM_VE_SMB_MB_ON_CHIP_PERIPH_BASE; - VirtualMemoryTable[Index].VirtualBase = ARM_VE_SMB_MB_ON_CHIP_PERIPH_BASE; - VirtualMemoryTable[Index].Length = ARM_VE_SMB_MB_ON_CHIP_PERIPH_SZ; - VirtualMemoryTable[Index].Attributes = ARM_MEMORY_REGION_ATTRIBUTE_DEVICE; - - // SMB CS0-CS1 - NOR Flash 1 & 2 - VirtualMemoryTable[++Index].PhysicalBase = ARM_VE_SMB_NOR0_BASE; - VirtualMemoryTable[Index].VirtualBase = ARM_VE_SMB_NOR0_BASE; - VirtualMemoryTable[Index].Length = ARM_VE_SMB_NOR0_SZ + ARM_VE_SMB_NOR1_SZ; - VirtualMemoryTable[Index].Attributes = ARM_MEMORY_REGION_ATTRIBUTE_DEVICE; - - // SMB CS2 - SRAM - VirtualMemoryTable[++Index].PhysicalBase = ARM_VE_SMB_SRAM_BASE; - VirtualMemoryTable[Index].VirtualBase = ARM_VE_SMB_SRAM_BASE; - VirtualMemoryTable[Index].Length = ARM_VE_SMB_SRAM_SZ; - VirtualMemoryTable[Index].Attributes = CacheAttributes; - - // SMB CS3-CS6 - Motherboard Peripherals - VirtualMemoryTable[++Index].PhysicalBase = ARM_VE_SMB_PERIPH_BASE; - VirtualMemoryTable[Index].VirtualBase = ARM_VE_SMB_PERIPH_BASE; - VirtualMemoryTable[Index].Length = ARM_VE_SMB_PERIPH_SZ; - VirtualMemoryTable[Index].Attributes = ARM_MEMORY_REGION_ATTRIBUTE_DEVICE; - - // If a Logic Tile is connected to The ARM Versatile Express Motherboard - if (MmioRead32(ARM_VE_SYS_PROCID1_REG) != 0) { - VirtualMemoryTable[++Index].PhysicalBase = ARM_VE_EXT_AXI_BASE; - VirtualMemoryTable[Index].VirtualBase = ARM_VE_EXT_AXI_BASE; - VirtualMemoryTable[Index].Length = ARM_VE_EXT_AXI_SZ; - VirtualMemoryTable[Index].Attributes = ARM_MEMORY_REGION_ATTRIBUTE_DEVICE; - - ASSERT((Index + 1) == (MAX_VIRTUAL_MEMORY_MAP_DESCRIPTORS + 1)); - } else { - ASSERT((Index + 1) == MAX_VIRTUAL_MEMORY_MAP_DESCRIPTORS); - } - - // End of Table - VirtualMemoryTable[++Index].PhysicalBase = 0; - VirtualMemoryTable[Index].VirtualBase = 0; - VirtualMemoryTable[Index].Length = 0; - VirtualMemoryTable[Index].Attributes = (ARM_MEMORY_REGION_ATTRIBUTES)0; - - *VirtualMemoryMap = VirtualMemoryTable; -} From patchwork Thu Nov 30 14:15:05 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ard Biesheuvel X-Patchwork-Id: 120201 Delivered-To: patch@linaro.org Received: by 10.140.22.227 with SMTP id 90csp721692qgn; Thu, 30 Nov 2017 06:15:33 -0800 (PST) X-Google-Smtp-Source: AGs4zMZ9YcbsjgpzDrukObDS0wuzV6CBo5oh32kfn4gUHCofIriZRSoNdENbZC4ztPgEra6Ws8nV X-Received: by 10.99.126.93 with SMTP id o29mr2551901pgn.304.1512051333703; Thu, 30 Nov 2017 06:15:33 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1512051333; cv=none; d=google.com; s=arc-20160816; b=nSeyc0WDRMAwanwcSZaa88SpLNravZ9HM88sgZmjJora5rzoYh7rxXmelPBLyDuXs6 Ohr4u31h9quIL6ylBNqfKSiXI0U7nx07I7i5xD1fxCM8VKQNgErbU3GeEMBhn3Ewaxl5 HRFNxuPK22rhZ/CMEL2MDzciD+JNo0FyHFgp+0+UiHbReYbU09tbedQ5IIu6xmT/lMAl c/vfkFMaK/vymrI1JAQ1l5OuANmM/o/VwXaMT37InhwvnzyTQFcKhr1j/+to/cA6bFbX 6CTyL048E2CvJpVVYL0Sd6UI+QSE6WnZzUL/neesnE442vaQ1KgjMC3WX7hYA0oOGyl1 p42w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:mime-version:cc :list-subscribe:list-help:list-post:list-archive:list-unsubscribe :list-id:precedence:subject:references:in-reply-to:message-id:date :to:from:dkim-signature:delivered-to:arc-authentication-results; bh=N+JPQ9wu/WEREeH7yk+81yPG5WE1u64SOQzU+SYavP4=; b=sQt6cgoP8sWCd0C2806ZOSNcpTQH6CnAtupmYfOMTyy8SAsUP2UBmq/kP1MoCFrtpC iEVQZOFLNU4KoYfH0jduacuoTJC7G+EP+d/KsyqxLXJNQfnoVUr5jbjteHTTDWtudnwl dtoU8szinSnU2EDt6uDcveK2vGI3b/5+Ml+aQVe6zwHnLHFWPM//k0Y8ymJ2UazpTpBN RXJmyUrrnjrI2704nH7PD/MSp1MlrjOX1QaaquwJLmAp8ZMoF/6Vygr331J4cD8fKcRj E3kClMBICJwDFGL27LoU4YuR0yUk3LH2QmqNqGu3lMEyPuUEHOxdsRunlDhGb5r+uIx3 aXBA== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@linaro.org header.s=google header.b=gV3TcH/T; spf=pass (google.com: best guess record for domain of edk2-devel-bounces@lists.01.org designates 198.145.21.10 as permitted sender) smtp.mailfrom=edk2-devel-bounces@lists.01.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from ml01.01.org (ml01.01.org. [198.145.21.10]) by mx.google.com with ESMTPS id d30si3177889pld.506.2017.11.30.06.15.33 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 30 Nov 2017 06:15:33 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of edk2-devel-bounces@lists.01.org designates 198.145.21.10 as permitted sender) client-ip=198.145.21.10; Authentication-Results: mx.google.com; dkim=neutral (body hash did not verify) header.i=@linaro.org header.s=google header.b=gV3TcH/T; spf=pass (google.com: best guess record for domain of edk2-devel-bounces@lists.01.org designates 198.145.21.10 as permitted sender) smtp.mailfrom=edk2-devel-bounces@lists.01.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: from [127.0.0.1] (localhost [IPv6:::1]) by ml01.01.org (Postfix) with ESMTP id C8A3A220F3C5B; Thu, 30 Nov 2017 06:11:07 -0800 (PST) X-Original-To: edk2-devel@lists.01.org Delivered-To: edk2-devel@lists.01.org Received-SPF: Pass (sender SPF authorized) identity=mailfrom; client-ip=2a00:1450:400c:c0c::244; helo=mail-wr0-x244.google.com; envelope-from=ard.biesheuvel@linaro.org; receiver=edk2-devel@lists.01.org Received: from mail-wr0-x244.google.com (mail-wr0-x244.google.com [IPv6:2a00:1450:400c:c0c::244]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id 29273220F3C3D for ; Thu, 30 Nov 2017 06:11:06 -0800 (PST) Received: by mail-wr0-x244.google.com with SMTP id y21so6728680wrc.1 for ; Thu, 30 Nov 2017 06:15:31 -0800 (PST) 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; bh=EAtYQojm+5QmUV7JecNnf1VWzk9DIAM0l3y80M/Oqu8=; b=gV3TcH/TsWZ5lkAz+Czn3isKbRW/j3R1v+RJNAWtqvDiMSdajQC5giONqIvWfKYuPa hUrujO3h8+BmYMoe81N07zbw+kjoSXIuqjrqqjOaeToAqqXV1NfSmkd0Y/75sBNbK6rz O9nwicuQsTb1DjDTJQB62aRfO63m4mYf54qkw= 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; bh=EAtYQojm+5QmUV7JecNnf1VWzk9DIAM0l3y80M/Oqu8=; b=hYFkMtwHvt/47HRQhHMFp+3LWo+6Y3iv8VSSfKaTNz/SuAcydwzGlbMjPCT5PhncBY 7r5/NDxYqd6egnV04ALn2RPP/kS++i6AAsPXhxlC8jrlQ1TeGXVtqgoQIAXgQaDkreWV GmgDRl/Kt1cvvB5E8d3gJMXGTkRrHSnQxg1UpoDaIHe/6E/oRgMQ9KvTnbQ+fb2y82m5 BTi/7Z2txCvzWV/St8cLrnb07syKOjDOHZlBmOl7Qpp/382WkbLP1YdTtTpNXj/+/yWF cKes8WWt7vwCQZM7uY/zadDaF55uR5EIPKFwbSXpMLYiIlXZD3/HIEuuDq64UlwFgwim wiGw== X-Gm-Message-State: AJaThX5LjTRWY5MKQT6akwOH6bwLOc8r4ZwSzYwDiAkYbMu+x6zjWYiY xr8Ph3fLL4PLbxPeoKdvuUdcjiMFlPE= X-Received: by 10.223.160.40 with SMTP id k37mr2041306wrk.66.1512051329872; Thu, 30 Nov 2017 06:15:29 -0800 (PST) Received: from localhost.localdomain ([105.150.171.234]) by smtp.gmail.com with ESMTPSA id f19sm2303555wmf.5.2017.11.30.06.15.22 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 30 Nov 2017 06:15:29 -0800 (PST) From: Ard Biesheuvel To: edk2-devel@lists.01.org Date: Thu, 30 Nov 2017 14:15:05 +0000 Message-Id: <20171130141509.27230-4-ard.biesheuvel@linaro.org> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20171130141509.27230-1-ard.biesheuvel@linaro.org> References: <20171130141509.27230-1-ard.biesheuvel@linaro.org> Subject: [edk2] [PATCH 3/7] ArmPlatformPkg/ArmPlatformLib: remove ARM_SYSTEM_MEMORY_REGION_DESCRIPTOR X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: leif.lindholm@linaro.org, Ard Biesheuvel MIME-Version: 1.0 Errors-To: edk2-devel-bounces@lists.01.org Sender: "edk2-devel" The ARM_SYSTEM_MEMORY_REGION_DESCRIPTOR struct type is defined but never used anywhere. So remove it. Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Ard Biesheuvel --- ArmPlatformPkg/Include/Library/ArmPlatformLib.h | 13 ------------- 1 file changed, 13 deletions(-) -- 2.11.0 _______________________________________________ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel diff --git a/ArmPlatformPkg/Include/Library/ArmPlatformLib.h b/ArmPlatformPkg/Include/Library/ArmPlatformLib.h index 77561a3d05b3..c74d53506fee 100644 --- a/ArmPlatformPkg/Include/Library/ArmPlatformLib.h +++ b/ArmPlatformPkg/Include/Library/ArmPlatformLib.h @@ -28,19 +28,6 @@ #include /** - This structure is used to describe a region of the EFI memory map - - Every EFI regions of the system memory described by their physical start address and their size - can have different attributes. Some regions can be tested and other untested. - -**/ -typedef struct { - EFI_RESOURCE_ATTRIBUTE_TYPE ResourceAttribute; - EFI_PHYSICAL_ADDRESS PhysicalStart; - UINT64 NumberOfBytes; -} ARM_SYSTEM_MEMORY_REGION_DESCRIPTOR; - -/** Return the core position from the value of its MpId register This function returns the core position from the position 0 in the processor. From patchwork Thu Nov 30 14:15:06 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ard Biesheuvel X-Patchwork-Id: 120203 Delivered-To: patch@linaro.org Received: by 10.140.22.227 with SMTP id 90csp721754qgn; Thu, 30 Nov 2017 06:15:37 -0800 (PST) X-Google-Smtp-Source: AGs4zMZ7mfA7YjV7mImZ2bdd5un8Nwc7sya4+TVhqaybA5eWVhkAuw8GJkRr9TlfDFpQk+zyu88L X-Received: by 10.98.60.27 with SMTP id j27mr6789639pfa.68.1512051337338; Thu, 30 Nov 2017 06:15:37 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1512051337; cv=none; d=google.com; s=arc-20160816; b=n0CSnQjYGGWSNKoXqkmkDl04Zg41U1S8HUwDThE3Ep7UPD7/M64BvhA3YDYtZUaNDx tpUbE2aPgbqTxnZPhly2ibKlxhl6XVYDPWxXFtP+dARM2vhex475jeeUl/m+YD7WB/6T 6cSi9BwfZuIxC7pT5QV5x7ZtWBTqbGtzTsFndpp7BFLvCjP3AkACBAxtEoNn9x6ggmsy jr72XsSYDGoW0wKYNU/4PU2C2f+RaX68kiRp2blyQySQPKopmcpYO+NVYVu2T+qQOyyn 1SSnywZLC40HdSMvd4oA4Jd2rz2PTpLBFNkanGdfsqkJbu72doFrscWYOxYhqKoZH2of LT0A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:mime-version:cc :list-subscribe:list-help:list-post:list-archive:list-unsubscribe :list-id:precedence:subject:references:in-reply-to:message-id:date :to:from:dkim-signature:delivered-to:arc-authentication-results; bh=HjG+kpXTdmui560ZPQtlbVwEzBtc8kD+Hc1MTQSZzVY=; b=HzqxsCkQq9cNiQWRURLvqPowOLB3NKxc1cvRPSgS3szefM1grcnxenQ4g3gFLGIjxT 3jVAfoaObYdMDsuathAPPRZa8VoYE4JEpQsc70+9yYTD6FDQ/T1BGdzVY3cYRmui6dj/ iKfWw1XMS1Obm/OdIaJKLFKLPtjd/pRY4yq4YFi2YFHaPAACkPdAP44Ey5ql7x9OvKUi f45W8BomP5u7mScfB89shwWr/BQcw0OjM1UjbyOCIjeocTcHzrw7DKJTfOPNhrYVD1XH pW7ElOmbwdT7wYbe/UAASRciCbCzGCHKI2qRVSyCRdbTlavaak1h8e2q/G2GzBzh2gWh s4ug== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@linaro.org header.s=google header.b=f1npmZh+; spf=pass (google.com: best guess record for domain of edk2-devel-bounces@lists.01.org designates 2001:19d0:306:5::1 as permitted sender) smtp.mailfrom=edk2-devel-bounces@lists.01.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from ml01.01.org (ml01.01.org. [2001:19d0:306:5::1]) by mx.google.com with ESMTPS id r63si3152959plb.174.2017.11.30.06.15.36 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 30 Nov 2017 06:15:37 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of edk2-devel-bounces@lists.01.org designates 2001:19d0:306:5::1 as permitted sender) client-ip=2001:19d0:306:5::1; Authentication-Results: mx.google.com; dkim=neutral (body hash did not verify) header.i=@linaro.org header.s=google header.b=f1npmZh+; spf=pass (google.com: best guess record for domain of edk2-devel-bounces@lists.01.org designates 2001:19d0:306:5::1 as permitted sender) smtp.mailfrom=edk2-devel-bounces@lists.01.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: from [127.0.0.1] (localhost [IPv6:::1]) by ml01.01.org (Postfix) with ESMTP id 130C72211B425; Thu, 30 Nov 2017 06:11:10 -0800 (PST) X-Original-To: edk2-devel@lists.01.org Delivered-To: edk2-devel@lists.01.org Received-SPF: Pass (sender SPF authorized) identity=mailfrom; client-ip=2a00:1450:400c:c0c::243; helo=mail-wr0-x243.google.com; envelope-from=ard.biesheuvel@linaro.org; receiver=edk2-devel@lists.01.org Received: from mail-wr0-x243.google.com (mail-wr0-x243.google.com [IPv6:2a00:1450:400c:c0c::243]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id AC6EA220F3C3D for ; Thu, 30 Nov 2017 06:11:08 -0800 (PST) Received: by mail-wr0-x243.google.com with SMTP id x49so6719849wrb.13 for ; Thu, 30 Nov 2017 06:15:34 -0800 (PST) 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; bh=I+Dh4upPrO+3A8kSXTtJANdPPmfE2ysDydCu0CN1X64=; b=f1npmZh+xeWEFKPp0RHeI9nbiBIJQ6rdhPq/h10aOjMlK1h0ONSz1oCVhjobYBoaPo WDiqV2zWioASt0uWiZqdOH7npwQp+Jlzy04syY2Res4warsX75q7iXZQ21OZvXs2HwSd 45WTamJM9ybOdUI8HzMsV9vUd2Ze4ozpnGN5s= 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; bh=I+Dh4upPrO+3A8kSXTtJANdPPmfE2ysDydCu0CN1X64=; b=uEJLhwIvTQFiJBrPFXlJm8I5XTu8UU8Bi26+ATTbh1wNEhvMJe+tf2UaEb797+ek07 zq2ZzL+zUVWTFG9eo8KX1ZA413MXaN/jU1ieobMb8h2+RqewjhOTG730mAxZ1pDFMh6h ZkBAucFWkLECc/IvUS5Ll9NzJwy7L4AIPK/RbjSmxImEUr7u8EEv6dfJkdc4etma4Qno 6Wl2kS8tQU1H0XF5/wphlGf71LQgRWqadKtZimz8qY52a20LHd7xmB8Ugjfe/6X/4b7d ZCHyQZA8jAxWiB3Zun1BXl6bVEqhG6bd7r9WEgdw9eV0gjVWKApLYlP71eZDRa9btsIW WwlA== X-Gm-Message-State: AJaThX716yFUVMVXw5Vuhj9B00ebErPiiNllYd4DNNSSOi6HB9rZaF+g tkgUqC9e87GDChJGMGlmPDd6oHz22Yk= X-Received: by 10.223.171.177 with SMTP id s46mr2098052wrc.194.1512051332104; Thu, 30 Nov 2017 06:15:32 -0800 (PST) Received: from localhost.localdomain ([105.150.171.234]) by smtp.gmail.com with ESMTPSA id f19sm2303555wmf.5.2017.11.30.06.15.29 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 30 Nov 2017 06:15:31 -0800 (PST) From: Ard Biesheuvel To: edk2-devel@lists.01.org Date: Thu, 30 Nov 2017 14:15:06 +0000 Message-Id: <20171130141509.27230-5-ard.biesheuvel@linaro.org> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20171130141509.27230-1-ard.biesheuvel@linaro.org> References: <20171130141509.27230-1-ard.biesheuvel@linaro.org> Subject: [edk2] [PATCH 4/7] ArmPlatformPkg: remove ArmPlatformInitializeSystemMemory X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: leif.lindholm@linaro.org, Ard Biesheuvel MIME-Version: 1.0 Errors-To: edk2-devel-bounces@lists.01.org Sender: "edk2-devel" The function ArmPlatformInitializeSystemMemory() is defined by ArmPlatformLib, but is only ever called when using the PrePeiCore flavor of the startup code. Also, none of the remaining upstream platforms actually implement anything in that function in the first place. So let's just remove it altogether. Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Ard Biesheuvel --- ArmPlatformPkg/ArmPlatformPkg.dec | 1 - ArmPlatformPkg/ArmVExpressPkg/Library/ArmVExpressLibCTA15-A7/CTA15-A7.c | 13 ------------- ArmPlatformPkg/ArmVExpressPkg/Library/ArmVExpressLibRTSM/RTSM.c | 14 -------------- ArmPlatformPkg/Include/Library/ArmPlatformLib.h | 11 ----------- ArmPlatformPkg/Library/ArmPlatformLibNull/ArmPlatformLibNull.c | 14 -------------- ArmPlatformPkg/MemoryInitPei/MemoryInitPeim.c | 8 -------- ArmPlatformPkg/MemoryInitPei/MemoryInitPeim.inf | 1 - BeagleBoardPkg/Library/BeagleBoardLib/BeagleBoard.c | 14 -------------- 8 files changed, 76 deletions(-) -- 2.11.0 _______________________________________________ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel diff --git a/ArmPlatformPkg/ArmPlatformPkg.dec b/ArmPlatformPkg/ArmPlatformPkg.dec index e282e76667b1..9d47e459eadc 100644 --- a/ArmPlatformPkg/ArmPlatformPkg.dec +++ b/ArmPlatformPkg/ArmPlatformPkg.dec @@ -48,7 +48,6 @@ [PcdsFeatureFlag.common] gArmPlatformTokenSpaceGuid.PcdNorFlashRemapping|FALSE|BOOLEAN|0x00000012 gArmPlatformTokenSpaceGuid.PcdStandalone|TRUE|BOOLEAN|0x00000001 - gArmPlatformTokenSpaceGuid.PcdSystemMemoryInitializeInSec|FALSE|BOOLEAN|0x00000002 gArmPlatformTokenSpaceGuid.PcdSendSgiToBringUpSecondaryCores|FALSE|BOOLEAN|0x00000004 gArmPlatformTokenSpaceGuid.PcdNorFlashCheckBlockLocked|FALSE|BOOLEAN|0x0000003C diff --git a/ArmPlatformPkg/ArmVExpressPkg/Library/ArmVExpressLibCTA15-A7/CTA15-A7.c b/ArmPlatformPkg/ArmVExpressPkg/Library/ArmVExpressLibCTA15-A7/CTA15-A7.c index 93f4d82f1988..a6ddd1b792c9 100644 --- a/ArmPlatformPkg/ArmVExpressPkg/Library/ArmVExpressLibCTA15-A7/CTA15-A7.c +++ b/ArmPlatformPkg/ArmVExpressPkg/Library/ArmVExpressLibCTA15-A7/CTA15-A7.c @@ -149,19 +149,6 @@ ArmPlatformInitialize ( return RETURN_SUCCESS; } -/** - Initialize the system (or sometimes called permanent) memory - - This memory is generally represented by the DRAM. - -**/ -VOID -ArmPlatformInitializeSystemMemory ( - VOID - ) -{ -} - EFI_STATUS PrePeiCoreGetMpCoreInfo ( OUT UINTN *CoreCount, diff --git a/ArmPlatformPkg/ArmVExpressPkg/Library/ArmVExpressLibRTSM/RTSM.c b/ArmPlatformPkg/ArmVExpressPkg/Library/ArmVExpressLibRTSM/RTSM.c index 11dd7ff1bfb0..7760e8252125 100644 --- a/ArmPlatformPkg/ArmVExpressPkg/Library/ArmVExpressLibRTSM/RTSM.c +++ b/ArmPlatformPkg/ArmVExpressPkg/Library/ArmVExpressLibRTSM/RTSM.c @@ -155,20 +155,6 @@ ArmPlatformInitialize ( return RETURN_SUCCESS; } -/** - Initialize the system (or sometimes called permanent) memory - - This memory is generally represented by the DRAM. - -**/ -VOID -ArmPlatformInitializeSystemMemory ( - VOID - ) -{ - // Nothing to do here -} - EFI_STATUS PrePeiCoreGetMpCoreInfo ( OUT UINTN *CoreCount, diff --git a/ArmPlatformPkg/Include/Library/ArmPlatformLib.h b/ArmPlatformPkg/Include/Library/ArmPlatformLib.h index c74d53506fee..3ad4c16066b6 100644 --- a/ArmPlatformPkg/Include/Library/ArmPlatformLib.h +++ b/ArmPlatformPkg/Include/Library/ArmPlatformLib.h @@ -112,17 +112,6 @@ ArmPlatformInitialize ( ); /** - Initialize the system (or sometimes called permanent) memory - - This memory is generally represented by the DRAM. - -**/ -VOID -ArmPlatformInitializeSystemMemory ( - VOID - ); - -/** Return the Virtual Memory Map of your platform This Virtual Memory Map is used by MemoryInitPei Module to initialize the MMU on your platform. diff --git a/ArmPlatformPkg/Library/ArmPlatformLibNull/ArmPlatformLibNull.c b/ArmPlatformPkg/Library/ArmPlatformLibNull/ArmPlatformLibNull.c index f80a276a04d6..038e955db50a 100644 --- a/ArmPlatformPkg/Library/ArmPlatformLibNull/ArmPlatformLibNull.c +++ b/ArmPlatformPkg/Library/ArmPlatformLibNull/ArmPlatformLibNull.c @@ -106,20 +106,6 @@ ArmPlatformInitialize ( return RETURN_SUCCESS; } -/** - Initialize the system (or sometimes called permanent) memory - - This memory is generally represented by the DRAM. - -**/ -VOID -ArmPlatformInitializeSystemMemory ( - VOID - ) -{ - //TODO: Implement me -} - EFI_STATUS PrePeiCoreGetMpCoreInfo ( OUT UINTN *CoreCount, diff --git a/ArmPlatformPkg/MemoryInitPei/MemoryInitPeim.c b/ArmPlatformPkg/MemoryInitPei/MemoryInitPeim.c index e7880d30b1c8..389a2e6f1abd 100644 --- a/ArmPlatformPkg/MemoryInitPei/MemoryInitPeim.c +++ b/ArmPlatformPkg/MemoryInitPei/MemoryInitPeim.c @@ -103,14 +103,6 @@ InitializeMemory ( DEBUG ((EFI_D_LOAD | EFI_D_INFO, "Memory Init PEIM Loaded\n")); - // - // Initialize the System Memory (DRAM) - // - if (!FeaturePcdGet (PcdSystemMemoryInitializeInSec)) { - // In case the DRAM has not been initialized by the secure firmware - ArmPlatformInitializeSystemMemory (); - } - // Ensure PcdSystemMemorySize has been set ASSERT (PcdGet64 (PcdSystemMemorySize) != 0); ASSERT (PcdGet64 (PcdSystemMemoryBase) < (UINT64)MAX_ADDRESS); diff --git a/ArmPlatformPkg/MemoryInitPei/MemoryInitPeim.inf b/ArmPlatformPkg/MemoryInitPei/MemoryInitPeim.inf index 2c14a9c826ff..e9b4ea1114be 100644 --- a/ArmPlatformPkg/MemoryInitPei/MemoryInitPeim.inf +++ b/ArmPlatformPkg/MemoryInitPei/MemoryInitPeim.inf @@ -49,7 +49,6 @@ [Guids] [FeaturePcd] gEmbeddedTokenSpaceGuid.PcdPrePiProduceMemoryTypeInformationHob - gArmPlatformTokenSpaceGuid.PcdSystemMemoryInitializeInSec [FixedPcd] gArmTokenSpaceGuid.PcdFdBaseAddress diff --git a/BeagleBoardPkg/Library/BeagleBoardLib/BeagleBoard.c b/BeagleBoardPkg/Library/BeagleBoardLib/BeagleBoard.c index 3b0244004853..d8eec72b7c2c 100644 --- a/BeagleBoardPkg/Library/BeagleBoardLib/BeagleBoard.c +++ b/BeagleBoardPkg/Library/BeagleBoardLib/BeagleBoard.c @@ -101,20 +101,6 @@ ArmPlatformInitialize ( return RETURN_SUCCESS; } -/** - Initialize the system (or sometimes called permanent) memory - - This memory is generally represented by the DRAM. - -**/ -VOID -ArmPlatformInitializeSystemMemory ( - VOID - ) -{ - // We do not need to initialize the System Memory on RTSM -} - VOID ArmPlatformGetPlatformPpiList ( OUT UINTN *PpiListSize, From patchwork Thu Nov 30 14:15:07 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ard Biesheuvel X-Patchwork-Id: 120204 Delivered-To: patch@linaro.org Received: by 10.140.22.227 with SMTP id 90csp721826qgn; Thu, 30 Nov 2017 06:15:41 -0800 (PST) X-Google-Smtp-Source: AGs4zMYg374buueiLv5KHctrJB6a9/eeCGzhHc6LJooiA1QhNladMg25ksPS6dsNz5qqRh9bT4L7 X-Received: by 10.98.59.66 with SMTP id i63mr6794815pfa.117.1512051341030; Thu, 30 Nov 2017 06:15:41 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1512051341; cv=none; d=google.com; s=arc-20160816; b=0GjBE/fXCwg8umB/d6eXyEUgfeUGvz2co6HONYz4kiBMIbLkQnIVCswq/Mnw/54vB9 0jdH7r+73V8ilRJMzDkXWT+r7O9bA+RXkXXaYGLcF9l+la2I1r0TK0ASoOlq+HGyX0vx bUO0GIfF6Tgh9Rndb9njhlqPl25HwtSzveKdqe6UMEq+M4ndB01TTLySU5VGzRTsSjKK oHmzo0cneD37q9V5PQIHe4QsSkysf1w1Q8HpBOhJCHnwsnIww/FNQ5syGEuUBZbZf663 Anp/ehgurXE54AgWKNSpsVCxE7oqcG/Zhk+iO2gJtet3OuKa8sz6IgSVfwwe08tvL+xY GKIg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:mime-version:cc :list-subscribe:list-help:list-post:list-archive:list-unsubscribe :list-id:precedence:subject:references:in-reply-to:message-id:date :to:from:dkim-signature:delivered-to:arc-authentication-results; bh=4jjIXXtNgiLEjIK2T7MQnaFJEc0bFy65cqW2T2NxCq0=; b=RqqgY9n2hdy6hFz+aVX4VPh6hT3RCEh2RB4Gril0g9V99XuqKOFJfFvrC0xbiuUb1n ZdqL4I3kfNtk7zCNmX30lyxXsdVPQf2RVoipW7vSuSAmYmZTfCDYNA3CnUzQqPrHi2tl /sGMBQKnrSCZF6TZ5rnPfwVHGhahQUqMSqrP63K8IhDTER7y29Oce1+9UEHBkxVxtsyD pu5tQpq4XmhDX0uhByIOhObkAfj0T2/2Tdba/6GEcWbLT7xoYr8+qa4odDCVOI7ymJNE ZRX0J6etiC9F+siQP7hjkNUO+0Q4GPNEhzAtCtmxrIDBAtkkFNZ4AmQKqkoydXGaxGuZ KM0Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@linaro.org header.s=google header.b=W7J0ABAz; spf=pass (google.com: best guess record for domain of edk2-devel-bounces@lists.01.org designates 198.145.21.10 as permitted sender) smtp.mailfrom=edk2-devel-bounces@lists.01.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from ml01.01.org (ml01.01.org. [198.145.21.10]) by mx.google.com with ESMTPS id a18si3264082plm.225.2017.11.30.06.15.40 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 30 Nov 2017 06:15:41 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of edk2-devel-bounces@lists.01.org designates 198.145.21.10 as permitted sender) client-ip=198.145.21.10; Authentication-Results: mx.google.com; dkim=neutral (body hash did not verify) header.i=@linaro.org header.s=google header.b=W7J0ABAz; spf=pass (google.com: best guess record for domain of edk2-devel-bounces@lists.01.org designates 198.145.21.10 as permitted sender) smtp.mailfrom=edk2-devel-bounces@lists.01.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: from [127.0.0.1] (localhost [IPv6:::1]) by ml01.01.org (Postfix) with ESMTP id 4BD4D2211B435; Thu, 30 Nov 2017 06:11:11 -0800 (PST) X-Original-To: edk2-devel@lists.01.org Delivered-To: edk2-devel@lists.01.org Received-SPF: Pass (sender SPF authorized) identity=mailfrom; client-ip=2a00:1450:400c:c0c::244; helo=mail-wr0-x244.google.com; envelope-from=ard.biesheuvel@linaro.org; receiver=edk2-devel@lists.01.org Received: from mail-wr0-x244.google.com (mail-wr0-x244.google.com [IPv6:2a00:1450:400c:c0c::244]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id 69140220F3C3D for ; Thu, 30 Nov 2017 06:11:10 -0800 (PST) Received: by mail-wr0-x244.google.com with SMTP id o2so6737767wro.5 for ; Thu, 30 Nov 2017 06:15:35 -0800 (PST) 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; bh=RhUNmFYImrZb/8ELQEImq+36rkaC94BW1L4wPuJAZ/c=; b=W7J0ABAz/pWHhlNf3JDsUe0vAHTxxw5ENAyY3olGzCqeSL6m+7c4fOdEelqVskuy6P w75VhGXfTDkasFUA1bF8ckI3bcHoyH7GEv/vf4zrg18BYV4maSDdXRfQ7F9PJ1H93Cdj 5DexailvOkgl+VcMC4lBmfuIwwffmjNhVC3+c= 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; bh=RhUNmFYImrZb/8ELQEImq+36rkaC94BW1L4wPuJAZ/c=; b=ai5P7Q+u1tm7RvSidm0hnW51YJX9G5Hv2E7qVcuVscBWx3Fu68FStKAoT/HFW8h5CP JBYBli9lbSGnohTlH6MvNpAvmQMKYiCHFBVVggE7xbThJDAWzuT5bLIWr96qqM0MdhxE EaXajM1N1vMQFTD3NZ+F8E4DfYTfnDPjm240oOpxIg7O73TUPB52jBQvxQqhrbwUfa/q o5zDdX6NQVjCGWzDhceEu0aom/p+6+Ko6RFQLYblSilmXtIpMslepI9g4NlAAFgwvKv2 FHprWJqSFIwfeAy9XfOx3b28deh+MqydUPvzi4M//G5FdF6Io3hla/9c23m3DSTS5y8h R+Zg== X-Gm-Message-State: AJaThX5S9+Xrgq4GNrg0kUcLah0pfPmJCfm7WejcSrk4mjitX0koPOm8 5Gjn1owacn/khurqaPkXBsU/35pe+zA= X-Received: by 10.223.139.3 with SMTP id n3mr2222240wra.166.1512051334246; Thu, 30 Nov 2017 06:15:34 -0800 (PST) Received: from localhost.localdomain ([105.150.171.234]) by smtp.gmail.com with ESMTPSA id f19sm2303555wmf.5.2017.11.30.06.15.32 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 30 Nov 2017 06:15:33 -0800 (PST) From: Ard Biesheuvel To: edk2-devel@lists.01.org Date: Thu, 30 Nov 2017 14:15:07 +0000 Message-Id: <20171130141509.27230-6-ard.biesheuvel@linaro.org> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20171130141509.27230-1-ard.biesheuvel@linaro.org> References: <20171130141509.27230-1-ard.biesheuvel@linaro.org> Subject: [edk2] [PATCH 5/7] ArmPlatformPkg: move internal PL061 header into driver directory X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: leif.lindholm@linaro.org, Ard Biesheuvel MIME-Version: 1.0 Errors-To: edk2-devel-bounces@lists.01.org Sender: "edk2-devel" Move the internal PL061 GPIO header file into the driver directory. It shouldn't be referenced directly by other modules anyway. Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Ard Biesheuvel --- ArmPlatformPkg/Drivers/PL061GpioDxe/PL061Gpio.c | 3 ++- ArmPlatformPkg/{Include/Drivers => Drivers/PL061GpioDxe}/PL061Gpio.h | 0 2 files changed, 2 insertions(+), 1 deletion(-) -- 2.11.0 _______________________________________________ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel diff --git a/ArmPlatformPkg/Drivers/PL061GpioDxe/PL061Gpio.c b/ArmPlatformPkg/Drivers/PL061GpioDxe/PL061Gpio.c index 81b9f6daece8..9b36df9daa28 100644 --- a/ArmPlatformPkg/Drivers/PL061GpioDxe/PL061Gpio.c +++ b/ArmPlatformPkg/Drivers/PL061GpioDxe/PL061Gpio.c @@ -27,7 +27,8 @@ #include #include -#include + +#include "PL061Gpio.h" PLATFORM_GPIO_CONTROLLER *mPL061PlatformGpio; diff --git a/ArmPlatformPkg/Include/Drivers/PL061Gpio.h b/ArmPlatformPkg/Drivers/PL061GpioDxe/PL061Gpio.h similarity index 100% rename from ArmPlatformPkg/Include/Drivers/PL061Gpio.h rename to ArmPlatformPkg/Drivers/PL061GpioDxe/PL061Gpio.h From patchwork Thu Nov 30 14:15:08 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ard Biesheuvel X-Patchwork-Id: 120205 Delivered-To: patch@linaro.org Received: by 10.140.22.227 with SMTP id 90csp721910qgn; Thu, 30 Nov 2017 06:15:44 -0800 (PST) X-Google-Smtp-Source: AGs4zMZAnyxKochfAm+yhwl/sC+K/yB0ZFuESVV+SdYt0nR/hhWcwFu/jxWkLAg2LtdtFjE1vF4m X-Received: by 10.84.232.74 with SMTP id f10mr2671576pln.90.1512051344351; Thu, 30 Nov 2017 06:15:44 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1512051344; cv=none; d=google.com; s=arc-20160816; b=mMO1No7chZ6qOR49Xv1q/hoY6M4cpWEZZrVK3ShVK1NvHbQVfyXpQv5K5c7wy0T+P4 4US/rgm7IMeoHKRcJHtutkr714Sboq4M7dAykOGfJTwhm88Kjg6dkeH8OTUhyAkp4OdK 2eMyKejMkC0UfgBANzmem/kvBE5kO0gXvib55kTUGNNvd4NjqWQ7WvTcyKQNly9TpB8/ jVO+hLq+nB8fu8iCWL5IwE2EnLsSU6n5VzeTzgdXR50q/Nx7DCQQiUrwnah+6+55WtWr 74Is6QT9zPK0/INuyG0mJv8MHoSA3z9JGyJqDPFdlFt48ywyhycZwnTqFKiVNQTiI2E2 Dj6Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:mime-version:cc :list-subscribe:list-help:list-post:list-archive:list-unsubscribe :list-id:precedence:subject:references:in-reply-to:message-id:date :to:from:dkim-signature:delivered-to:arc-authentication-results; bh=wL3qklE277UKJQXiGfLTsXGF+R9pxFC/KSNYXL1nqMw=; b=BHIc+vCJ/8jlk0M4tMTczvk4WEMg+VoT0QV4KmHU+pPMVmk7rtbF6bieDrsf4EoKvd xYDj4skFvCdzmwlnNmJQpme8PrJ3Ke4jHuFt9lweAZHoSD0IFW+fgBC9sSMU/o8+FepT 2xayZY3p8a1bpcZBsguylaSdHNQ1VhTbogD8MPgxEnZe7vvPv6NIDWb5v2JiMUeCVjD2 yFXkPNn4P+CYEE1flezyajAB6g0V1px8Mr2i9vESPnYidxg/4P3aOwoEvEgaDqzwppgy S42zBZRL0A1jJ9Ekv6K3Hib5GPOV+MdZmRcoUKbmqWOMVApqHmzi4qOVGtxz0hzrW4DX 7Fkw== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@linaro.org header.s=google header.b=Qt+eswf9; spf=pass (google.com: best guess record for domain of edk2-devel-bounces@lists.01.org designates 198.145.21.10 as permitted sender) smtp.mailfrom=edk2-devel-bounces@lists.01.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from ml01.01.org (ml01.01.org. [198.145.21.10]) by mx.google.com with ESMTPS id g12si3312801pfe.174.2017.11.30.06.15.44 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 30 Nov 2017 06:15:44 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of edk2-devel-bounces@lists.01.org designates 198.145.21.10 as permitted sender) client-ip=198.145.21.10; Authentication-Results: mx.google.com; dkim=neutral (body hash did not verify) header.i=@linaro.org header.s=google header.b=Qt+eswf9; spf=pass (google.com: best guess record for domain of edk2-devel-bounces@lists.01.org designates 198.145.21.10 as permitted sender) smtp.mailfrom=edk2-devel-bounces@lists.01.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: from [127.0.0.1] (localhost [IPv6:::1]) by ml01.01.org (Postfix) with ESMTP id 823442211B431; Thu, 30 Nov 2017 06:11:13 -0800 (PST) X-Original-To: edk2-devel@lists.01.org Delivered-To: edk2-devel@lists.01.org Received-SPF: Pass (sender SPF authorized) identity=mailfrom; client-ip=2a00:1450:400c:c0c::243; helo=mail-wr0-x243.google.com; envelope-from=ard.biesheuvel@linaro.org; receiver=edk2-devel@lists.01.org Received: from mail-wr0-x243.google.com (mail-wr0-x243.google.com [IPv6:2a00:1450:400c:c0c::243]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id 5ED1B220F3C3D for ; Thu, 30 Nov 2017 06:11:12 -0800 (PST) Received: by mail-wr0-x243.google.com with SMTP id y21so6729002wrc.1 for ; Thu, 30 Nov 2017 06:15:37 -0800 (PST) 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; bh=guBTjcaqV1nTDP1wWSejQRnkIAAtaBTHVo2f1kdgzyM=; b=Qt+eswf9/bknQ0tg2F6vZKTB4wYcO7I6Gf1Ek36hTahVwE+MjCa87otQBh0xjA9CFi 8ybZthyYiRwIzuZZe4nNNXWtVx9suXHld0tsCfxBSXVRPskDDExunIes4igKimFsOky0 l0n4vkpyEtBxvLmOikXNqx9Ftnbm5JI81dMgQ= 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; bh=guBTjcaqV1nTDP1wWSejQRnkIAAtaBTHVo2f1kdgzyM=; b=CCroXgnyeV6gd7Re/CvzKfmBaHHAa6/pEeoPQ+l5++BPEjdBm2hAJGH65cidJSzZyb Icbk5tgZAHypYzuKSHGb5tE/U5KA17DCtIrE2xRQxA5VrF+WlbwG7/5sXidwX/+rRZyG 3eGUsqVJ+MEcYPR1AtdTkORbVN+Qq3X/XYBHyV4K6vGvB3wstbqEoBmAivXU276pipPV vwcFW/rGFrngQ8lLFrB2uddB4sCgHeroBvsDSkCFjO7BpBq4wF28ANDFAc5iSXZk9RnU Nqlj0VPulCZmnjknXtFMcOhZNUSAeanhlQs8GarrWVy5jCEpBsdnYvfQZSb4WQDKE0Kw sv6A== X-Gm-Message-State: AJaThX4zD27J+L6wIj8p0graLZKlLBcf8H39X5LUv/7L0sIRC+BCE2KE efUEiE2+StflaZJAD/UGKXBKdSR6QA8= X-Received: by 10.223.201.10 with SMTP id m10mr2328281wrh.68.1512051336215; Thu, 30 Nov 2017 06:15:36 -0800 (PST) Received: from localhost.localdomain ([105.150.171.234]) by smtp.gmail.com with ESMTPSA id f19sm2303555wmf.5.2017.11.30.06.15.34 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 30 Nov 2017 06:15:35 -0800 (PST) From: Ard Biesheuvel To: edk2-devel@lists.01.org Date: Thu, 30 Nov 2017 14:15:08 +0000 Message-Id: <20171130141509.27230-7-ard.biesheuvel@linaro.org> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20171130141509.27230-1-ard.biesheuvel@linaro.org> References: <20171130141509.27230-1-ard.biesheuvel@linaro.org> Subject: [edk2] [PATCH 6/7] ArmPlatformPkg: move internal SP805 header into driver directory X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: leif.lindholm@linaro.org, Ard Biesheuvel MIME-Version: 1.0 Errors-To: edk2-devel-bounces@lists.01.org Sender: "edk2-devel" Move the internal SP805 watchdog header file into the driver directory. It shouldn't be referenced directly by other modules anyway. Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Ard Biesheuvel --- ArmPlatformPkg/Drivers/SP805WatchdogDxe/SP805Watchdog.c | 3 ++- ArmPlatformPkg/{Include/Drivers => Drivers/SP805WatchdogDxe}/SP805Watchdog.h | 0 2 files changed, 2 insertions(+), 1 deletion(-) -- 2.11.0 _______________________________________________ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel diff --git a/ArmPlatformPkg/Drivers/SP805WatchdogDxe/SP805Watchdog.c b/ArmPlatformPkg/Drivers/SP805WatchdogDxe/SP805Watchdog.c index c78d2b9ff99f..0a9f64095bf8 100644 --- a/ArmPlatformPkg/Drivers/SP805WatchdogDxe/SP805Watchdog.c +++ b/ArmPlatformPkg/Drivers/SP805WatchdogDxe/SP805Watchdog.c @@ -25,7 +25,8 @@ #include #include -#include + +#include "SP805Watchdog.h" EFI_EVENT EfiExitBootServicesEvent = (EFI_EVENT)NULL; diff --git a/ArmPlatformPkg/Include/Drivers/SP805Watchdog.h b/ArmPlatformPkg/Drivers/SP805WatchdogDxe/SP805Watchdog.h similarity index 100% rename from ArmPlatformPkg/Include/Drivers/SP805Watchdog.h rename to ArmPlatformPkg/Drivers/SP805WatchdogDxe/SP805Watchdog.h From patchwork Thu Nov 30 14:15:09 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ard Biesheuvel X-Patchwork-Id: 120206 Delivered-To: patch@linaro.org Received: by 10.140.22.227 with SMTP id 90csp721970qgn; Thu, 30 Nov 2017 06:15:47 -0800 (PST) X-Google-Smtp-Source: AGs4zMYEfVK061mF48qVKyxTa1083orqDe59f9Xvqo37nYVvw6ZkUb8HC+N5dQfMiQowPJCBB7jJ X-Received: by 10.98.72.69 with SMTP id v66mr6781959pfa.135.1512051347477; Thu, 30 Nov 2017 06:15:47 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1512051347; cv=none; d=google.com; s=arc-20160816; b=ffHQxYpbMYw+DKbkHISYklEjlmdf3A8+six112ZktKejK8WL54UIEVACTZq9mZKfxL on6k+vdhQ80c6ZQOOCkxkUx/XMQ/i7MxwYdfmVRFCuC2Yss4cfXGHzzt4GFEdtOQo2BX euDWNLBR6gsKET1BGN21WKF+6Sa4G+E2SJhGBqNSdrGrghBneEgB4kcFstu+lDAPH7nB 4WJlvKHEGpPs18ek7JPNjyYmMOGGZty3QytJ/n7rkqmTt5sh0zE4Og+SZsrlE08lVPaj weiO4drmIaoRcguYgiI+FkwYTuf2Am2TUJPeKR8pcXEQNVdDPHKi87mHrpdTKN7aPIaf EYaQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:mime-version:cc :list-subscribe:list-help:list-post:list-archive:list-unsubscribe :list-id:precedence:subject:references:in-reply-to:message-id:date :to:from:dkim-signature:delivered-to:arc-authentication-results; bh=09wWY4/w1LbN+59wv4+HAat+zn9j8NszriZrKv2dk2Y=; b=FglkqzqeFTwGRE1tODsPGW5R9NwasmKSHDi2Dv7xoa+H1db9mT5dz9esTdzJmIGcaW Z1bA/rYQZ9Rjpr2BiIQxJL4W6FRshbmNeewsPLuyU85DMMUyqpYfrbL9WidfJFN7VJ90 VptSSbMdgs9kyKiBmaSqgpgIQ2qapPSb9dwSxqIU4Vl5H4R9fB9jq+Bte8Voatqr/vXa oKrWN8ZBY20dPRg95iTEGpYPMcVl0RDQPVXPPOJu6frJ5rljEEbO6C0/9nsbbqrWtiis SAXBrSbKH9ZRjWrxdXojgg591haWotFM3ppoUeL+MmRryra8Foow1JlTwtotaXog59P7 BI3A== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@linaro.org header.s=google header.b=KgS0mgxU; spf=pass (google.com: best guess record for domain of edk2-devel-bounces@lists.01.org designates 2001:19d0:306:5::1 as permitted sender) smtp.mailfrom=edk2-devel-bounces@lists.01.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from ml01.01.org (ml01.01.org. [2001:19d0:306:5::1]) by mx.google.com with ESMTPS id d37si3199276plb.275.2017.11.30.06.15.47 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 30 Nov 2017 06:15:47 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of edk2-devel-bounces@lists.01.org designates 2001:19d0:306:5::1 as permitted sender) client-ip=2001:19d0:306:5::1; Authentication-Results: mx.google.com; dkim=neutral (body hash did not verify) header.i=@linaro.org header.s=google header.b=KgS0mgxU; spf=pass (google.com: best guess record for domain of edk2-devel-bounces@lists.01.org designates 2001:19d0:306:5::1 as permitted sender) smtp.mailfrom=edk2-devel-bounces@lists.01.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: from [127.0.0.1] (localhost [IPv6:::1]) by ml01.01.org (Postfix) with ESMTP id BDC022211B43D; Thu, 30 Nov 2017 06:11:15 -0800 (PST) X-Original-To: edk2-devel@lists.01.org Delivered-To: edk2-devel@lists.01.org Received-SPF: Pass (sender SPF authorized) identity=mailfrom; client-ip=2a00:1450:400c:c0c::244; helo=mail-wr0-x244.google.com; envelope-from=ard.biesheuvel@linaro.org; receiver=edk2-devel@lists.01.org Received: from mail-wr0-x244.google.com (mail-wr0-x244.google.com [IPv6:2a00:1450:400c:c0c::244]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id 47DB9220F3C3D for ; Thu, 30 Nov 2017 06:11:14 -0800 (PST) Received: by mail-wr0-x244.google.com with SMTP id h1so6719585wre.12 for ; Thu, 30 Nov 2017 06:15:39 -0800 (PST) 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; bh=Wn1nKnTEsVheLmkf8WrWdPixRD9vHYvHtJ1SOuhq/o0=; b=KgS0mgxU3XGAwuZC6zFQWldLi7sMMWklBOkD7K+9Lk51FUJj/vDhW4NnQEuV/8LMOt mGinbr1n3Jp5SJFwMujdHRH+8VpmXrcFraqlEol173V2D+ngNt58DUT2z28UVELMwMNQ RaucLykUZIml7OclNdjlaFZUEcGxRGRPXaur4= 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; bh=Wn1nKnTEsVheLmkf8WrWdPixRD9vHYvHtJ1SOuhq/o0=; b=VRqvmXboIwcyOYL2eetpcKlbjpJ4xEZWWFk8EcRYK65gtcaABvdyorL1QhEsjnMoPE vfRhqhdLhGILk+yH7iGzEOwTShtar4St6Rte41ChIysN87hnrU2VfskdjJ4F809qUBME XzGJF9qzkmuQgQQjtXxVSNuy2zZaOI6HP2Y8royAvdo2iFwdmP2sKYb3Q6ScaLvCALkZ bmzkhqWLuvPhdeiGdpgm4WWEsFmUj1LHUYOkZyfcNPxR/gejTCpXJmrEmtXQAmInMqJK CgQasOL95FI/gOUyrnWL04U/oyHfSDY0Ae/JDTR43yD1znCxBPgXUgXpkOQWhv0cTgw7 mbgg== X-Gm-Message-State: AJaThX5yqIDhD3hJlI45+rhbkRrmo2uy4CXnAn69daC+lODwjXUJxvpU 7Z3zXyk/idD/SenoytEfUs8Pn9DHBbY= X-Received: by 10.223.195.113 with SMTP id e46mr2239041wrg.149.1512051338077; Thu, 30 Nov 2017 06:15:38 -0800 (PST) Received: from localhost.localdomain ([105.150.171.234]) by smtp.gmail.com with ESMTPSA id f19sm2303555wmf.5.2017.11.30.06.15.36 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 30 Nov 2017 06:15:37 -0800 (PST) From: Ard Biesheuvel To: edk2-devel@lists.01.org Date: Thu, 30 Nov 2017 14:15:09 +0000 Message-Id: <20171130141509.27230-8-ard.biesheuvel@linaro.org> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20171130141509.27230-1-ard.biesheuvel@linaro.org> References: <20171130141509.27230-1-ard.biesheuvel@linaro.org> Subject: [edk2] [PATCH 7/7] ArmPlatformPkg: move internal PL031 header into driver directory X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: leif.lindholm@linaro.org, Ard Biesheuvel MIME-Version: 1.0 Errors-To: edk2-devel-bounces@lists.01.org Sender: "edk2-devel" Move the internal PL031 RTC header file into the driver directory. It shouldn't be referenced directly by other modules anyway. While at it, sort the includes as well. Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Ard Biesheuvel --- ArmPlatformPkg/{Include/Drivers => Library/PL031RealTimeClockLib}/PL031RealTimeClock.h | 0 ArmPlatformPkg/Library/PL031RealTimeClockLib/PL031RealTimeClockLib.c | 19 +++++++++---------- 2 files changed, 9 insertions(+), 10 deletions(-) -- 2.11.0 _______________________________________________ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel diff --git a/ArmPlatformPkg/Include/Drivers/PL031RealTimeClock.h b/ArmPlatformPkg/Library/PL031RealTimeClockLib/PL031RealTimeClock.h similarity index 100% rename from ArmPlatformPkg/Include/Drivers/PL031RealTimeClock.h rename to ArmPlatformPkg/Library/PL031RealTimeClockLib/PL031RealTimeClock.h diff --git a/ArmPlatformPkg/Library/PL031RealTimeClockLib/PL031RealTimeClockLib.c b/ArmPlatformPkg/Library/PL031RealTimeClockLib/PL031RealTimeClockLib.c index 1334ad446cd9..1d787cf5df2c 100644 --- a/ArmPlatformPkg/Library/PL031RealTimeClockLib/PL031RealTimeClockLib.c +++ b/ArmPlatformPkg/Library/PL031RealTimeClockLib/PL031RealTimeClockLib.c @@ -14,28 +14,27 @@ **/ -#include #include + +#include +#include + #include #include -#include +#include #include -#include #include #include -#include +#include +#include #include +#include #include #include #include -#include -#include - -#include - -#include +#include "PL031RealTimeClock.h" STATIC BOOLEAN mPL031Initialized = FALSE; STATIC EFI_EVENT mRtcVirtualAddrChangeEvent;