From patchwork Mon Nov 16 16:34:52 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: York Sun X-Patchwork-Id: 545084 X-Patchwork-Delegate: yorksun@freescale.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from theia.denx.de (theia.denx.de [85.214.87.163]) by ozlabs.org (Postfix) with ESMTP id A5129141467 for ; Tue, 17 Nov 2015 03:35:45 +1100 (AEDT) Received: from localhost (localhost [127.0.0.1]) by theia.denx.de (Postfix) with ESMTP id 4355A4B656; Mon, 16 Nov 2015 17:35:43 +0100 (CET) Received: from theia.denx.de ([127.0.0.1]) by localhost (theia.denx.de [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id Tso1XRO5hEdw; Mon, 16 Nov 2015 17:35:43 +0100 (CET) Received: from theia.denx.de (localhost [127.0.0.1]) by theia.denx.de (Postfix) with ESMTP id F20ED4B632; Mon, 16 Nov 2015 17:35:40 +0100 (CET) Received: from localhost (localhost [127.0.0.1]) by theia.denx.de (Postfix) with ESMTP id 097A94B64D for ; Mon, 16 Nov 2015 17:35:21 +0100 (CET) Received: from theia.denx.de ([127.0.0.1]) by localhost (theia.denx.de [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id UtmFz3WbT8aZ for ; Mon, 16 Nov 2015 17:35:20 +0100 (CET) X-policyd-weight: NOT_IN_SBL_XBL_SPAMHAUS=-1.5 NOT_IN_SPAMCOP=-1.5 NOT_IN_BL_NJABL=-1.5 (only DNSBL check requested) Received: from na01-bl2-obe.outbound.protection.outlook.com (mail-bl2on0127.outbound.protection.outlook.com [65.55.169.127]) by theia.denx.de (Postfix) with ESMTPS id 2FDA04B632 for ; Mon, 16 Nov 2015 17:35:12 +0100 (CET) Received: from DM2PR03CA0029.namprd03.prod.outlook.com (10.141.96.28) by BY1PR03MB1468.namprd03.prod.outlook.com (10.162.210.139) with Microsoft SMTP Server (TLS) id 15.1.325.17; Mon, 16 Nov 2015 16:35:08 +0000 Received: from BY2FFO11FD024.protection.gbl (207.46.163.241) by DM2PR03CA0029.outlook.office365.com (10.141.96.28) with Microsoft SMTP Server (TLS) id 15.1.325.17 via Frontend Transport; Mon, 16 Nov 2015 16:35:08 +0000 Authentication-Results: spf=permerror (sender IP is 192.88.158.2) smtp.mailfrom=freescale.com; nvidia.com; dkim=none (message not signed) header.d=none; nvidia.com; dmarc=none action=none header.from=freescale.com; Received-SPF: PermError (protection.outlook.com: domain of freescale.com used an invalid SPF mechanism) Received: from az84smr01.freescale.net (192.88.158.2) by BY2FFO11FD024.mail.protection.outlook.com (10.1.15.213) with Microsoft SMTP Server (TLS) id 15.1.325.5 via Frontend Transport; Mon, 16 Nov 2015 16:35:08 +0000 Received: from oslab-l1.am.freescale.net ([10.214.84.61]) by az84smr01.freescale.net (8.14.3/8.14.0) with ESMTP id tAGGYv7K028156; Mon, 16 Nov 2015 09:35:05 -0700 From: York Sun To: U-Boot Mailing List Date: Mon, 16 Nov 2015 08:34:52 -0800 Message-ID: <1447691693-20318-2-git-send-email-yorksun@freescale.com> X-Mailer: git-send-email 1.7.9.5 In-Reply-To: <1447691693-20318-1-git-send-email-yorksun@freescale.com> References: <1447691693-20318-1-git-send-email-yorksun@freescale.com> X-EOPAttributedMessage: 0 X-Microsoft-Exchange-Diagnostics: 1; BY2FFO11FD024; 1:QOTsmMhZ/4Ei8IsaNFlusXyNFsT6TFrN5GwboTpdwpkE18tR2AlPuA3fqmpTLYQkTTy/guzYqU5uReY52+gibDnbgM4iWafuURX/KWniMp0s7gXQAdnwqb/Dd+/nnULSTQOCseYtAztJgF21X+u9xEbYOiBz25K2U2rLdpvqkQAlNu6jKtK5D5lMIhHEiOkK80xM1dfwfrTuzc89V28BwxMNEWBDXzxN5lPWyEJwb7zEHb2Or3+hjjMRE9LsmaZ0jEse1RLQ/pcghV6pGwTWbj2Bc5LOTSL+UX+fxbYPPPIgwMseK7E+TUCUvHiDoi+ku6RDsGQShRCRlq/+DdJMBjex813KQoDxtMeKyMG5p1h+h62hcD6LA8aiVf0A2unvWimHhbqgKtCEKVHzEbkecU+34ItmLXXvlCJ50eG0GOg= X-Forefront-Antispam-Report: CIP:192.88.158.2; CTRY:US; IPV:NLI; EFV:NLI; SFV:NSPM; SFS:(10019020)(6009001)(1060300003)(2980300002)(448002)(199003)(189002)(85326001)(2950100001)(106466001)(5003940100001)(19580405001)(19580395003)(15975445007)(50986999)(87936001)(47776003)(76176999)(69596002)(50226001)(77096005)(4290100001)(48376002)(92566002)(50466002)(110436001)(33646002)(97736004)(229853001)(5001920100001)(606003)(86362001)(110136002)(36756003)(11100500001)(5001960100002)(5008740100001)(104016004)(81156007)(5007970100001)(6806005); DIR:OUT; SFP:1102; SCL:1; SRVR:BY1PR03MB1468; H:az84smr01.freescale.net; FPR:; SPF:PermError; PTR:InfoDomainNonexistent; A:1; MX:1; LANG:en; MIME-Version: 1.0 X-Microsoft-Exchange-Diagnostics: 1; BY1PR03MB1468; 2:ma6TpPLWCiXyLG7dQGEdNTab4UYKS81p96Bm7qCBLgCkw81As/9wpR6zLnGvf1KTA7nG6neFvqpP0AQVEImuelO0iu1znt5Ck0lU6V+LGUjDnLEDe1v/KoQXzcdllRWRpzQyfcTo57hUyfSEoX0lWJTl0ab/0tVWkeqGyWJPjrU=; 3:4LDWAO7jzEeqydoo1HwLIhEEqu4eYBqkEs8F4T3RbUqTL8YSnrT9u1/+2n+Z1xuSfWwyCCeQOCSJdMH06HhHBffRub84jixN0CC3EoKfYUnsqkwL70jYZRfhmlX7qJuWrAs4TLqnq2qFux01PjZ0mbGsugNzbb5HtilpRb706k/QZoULPzlB5NTQCpDDMJn2YxSVHB8EfMj02aC81uoNXSFxYX7xRGkAO3lmZZMVHeo=; 25:KUxb0DlrOjlmWR0Hgloymsjn5C3/t46mNEuIbXrDOth9y4jx1KRMrmThds6XeiLFvgG0Ri/bDRBset4noi5yvgTGrKPkmftd9I2SHDp2MH1BZxWX83wICGQZj/xf/LAkRzEw7QG0QGNb2uFeD6POWCOep/jrWKSXETgTri18QuDpWYmBHYl/exH/gfGHVwMILcyTak0W7wbunJvH8J+QRnO/I0RiRVwqX3XIWyY5e3zhYprjLr8KtWCMSidFYhgKhSDl5LtGwTSudZy7DG0hXw== X-Microsoft-Antispam: UriScan:;BCL:1;PCL:0;RULEID:;SRVR:BY1PR03MB1468; X-Microsoft-Exchange-Diagnostics: 1; BY1PR03MB1468; 20:hdcGg+K+fRx2WA5z9cvnE+mlLIXxcXk0THOZJlxHGyBJAQ9UPq1uFCXUFmUL800umkGJnAk59Dr0LjDerqTfk4K31neA0Zyc5bA7m2zXhipmgGqk2H+ACZpRueVC+pJ55N9nWWMAhdjjvpuJOrN17WYvzIQFMTAi9zgAyPtDDWQYAUsFSZ2FRBwoPNGvjDi7Qg1c4Yzoq9zXTgf3Kb6/JbEJ93LmrNrDMukL8wQjdmJlmtjWOdg6rxRH2IPyrRIxGp1PQaqYea3miOw0BRVp+mNlf35ODhE9c32rJ5yr2JPNCPw0JPwW3yL8kyLVctP1W1888U+x/JXV6DQ1mbWmzoM0FOeLMsRsE2OTGc7qPZE=; 4:j2SpOfr2ElG72aYI/25UlvM5QbYwqoedQgmb6YVpWZcf+zL8LU4jaUmuA1h3PEuMXvjDwixK8MNiqoYZtdFRcrDx1WrAkT8nMSPm276QNIccA+92rzKGzBpKZYxfea1RoeMPnXotKfzjA8jyabM1R0U1HU6+sbgMt2eUWr10Fqdf2RcK7eUcwaI0/KM3yOYDtjQ1S6bipeB91yDc17wE4nocfeHYYES+WZjLhLa93zrryQ67Rnn+F2iEtVAMmcUBz5D9Np4YaFsECcrA3qTf0HwHBRqFWGVycGCvvoHY81HNGlaqLsZhZXFVm3KeZ6hVofILhq5s5BKNKofsl7h3A3xCYJesh0/j9Hw46SF3EOcfUKIm9evh5HP9tnsv4By/hqtfLyZO7g26DJpiAZ9zYA== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(101931422205132); X-Exchange-Antispam-Report-CFA-Test: BCL:1; PCL:0; RULEID:(601004)(2401047)(1201001)(520078)(5005006)(8121501046)(10201501046)(3002001); SRVR:BY1PR03MB1468; BCL:1; PCL:0; RULEID:; SRVR:BY1PR03MB1468; X-Forefront-PRVS: 0762FFD075 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; BY1PR03MB1468; 23:lj2HWBhMJqac8z8E5hILXOThwsH/1OjPm3/qNIu8d?= =?us-ascii?Q?lxZYcbaG6EMZar3f4r/iLFTV46WfovsQ80VjB/RGtBGUJ8yjQ5Im3ITPuCS6?= =?us-ascii?Q?1JVp433uzhHUn5NuSZtcn2/stzZl7pQNMjyD22A5naL9cHkMHsMFFyHHEL0x?= =?us-ascii?Q?CiPKuClPAaSYuRQJt6rXk5sTFq2HzRjbvaCab+QP4bzwBS7goqUF9krhNl/y?= =?us-ascii?Q?AQ4UZNDpofjcwMacm/F3fK6EYAaYHmlW/3wh3Y/zsmDwIIrJJZno4SfXR80e?= =?us-ascii?Q?PZ72kvZuOqaBu+JTU1yVue0ZRPXOmHamEnac5QaoR3Dn6g2jloC9l+vN73Pc?= =?us-ascii?Q?lrFpFTBGcR+YACvLc5Nypsp5hG6C5E1bpXIKzWb70SMnjTpTz0Yd7brSh47D?= =?us-ascii?Q?hFR6x2eJu33sZpyxf6pkBAJ+odQnHGaNnXi5QOb8s2kNi1h8+J3Pqvcq8JeA?= =?us-ascii?Q?7mgRxF/UHKRcwe45sovIKgKoWXbtQF3+RobeF0byVFHX1coq8tQvjkDpmRCU?= =?us-ascii?Q?Edbs9ouWVv5iV95lli3X/lmafgWufS9pEkT9twJy6OT1OhGtMEqbIfLe3ydq?= =?us-ascii?Q?Oo4DLhthBA9wuQS3FYRUHn4Vr3GbdcNy+GxWjSEyWvPte8d320+OrM99uGPq?= =?us-ascii?Q?gyk+l/f2X2D857MJw+eflYqQD30TZhFIUs9Ln6TSGkk1asfelIP+n7loboGq?= =?us-ascii?Q?wRGc8fOO1IpVkszprQg8Z7VHBxTQirDzAXq5SExvObndpif7Zc/Ml/psNSp1?= =?us-ascii?Q?wHd4/6h+9+DVjGr5E+j6e9qkYIMuAUdadvIBz0o/RztMb5QWHSMCLU6hVhfL?= =?us-ascii?Q?1ZeAj1tP32HZtRMYQcuPxvpPJ358DuUhmnUijg+tLn13xUSbsnNwLw8/k3Nu?= =?us-ascii?Q?o3yNQmhlTjbiMYjUdz4ZLLmVArRxRJIXpTTE5UiwpHBO/Dj/qYCKGn9Z1Amp?= =?us-ascii?Q?28MjZCuLOouhcrVHwbZTjrkAA9/wOfx2sgaFGmG/awZVWsME/0kOzKM1xIRY?= =?us-ascii?Q?oVVwSyjz9naBEKBfvLzZ/kHBohS9UvQe7UU6gRB92y5e0hQF0vc+FyXjTrS5?= =?us-ascii?Q?J4E646EwiYqiAES6ygqVpUX8Aan9z74BBA0bIRrzC6G81qdrg=3D=3D?= X-Microsoft-Exchange-Diagnostics: 1; BY1PR03MB1468; 5:jQwyIHc3+cDFmqiHL+C8nQdysTn7+1tBjedi2+04rX0Cw83v87gsszadGKJLvOhpq2M5xaxL01vmqOr8QgbU5AuYklmzl/uuOjwELD+jcP/otbU94snXYvKhhfaj2uR5fArM0pD3PU+3d7d2s2oGpw==; 24:sBwyudQmr8Krb+zx9Ed7LZj0+ANGCp6FEA8GKPJjaPL1/6uKmnj308VzRia8dW2+yTKHlB6VH4Zl3YLZsvjJPwpNnfoWIV02nskQacMbwoQ=; 20:asB4jJmgp8erIT6ASWl03KXVZ2rKx+cuzVWw7t5JL0Jxg6k8Fhc87j3eLxfSLpg9DQ6Ets7ggrN8WioWvMiAEA== X-OriginatorOrg: freescale.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Nov 2015 16:35:08.0438 (UTC) X-MS-Exchange-CrossTenant-Id: 710a03f5-10f6-4d38-9ff4-a80b81da590d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=710a03f5-10f6-4d38-9ff4-a80b81da590d; Ip=[192.88.158.2]; Helo=[az84smr01.freescale.net] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY1PR03MB1468 Cc: Tom Rini , Stephen Warren , Joe Hershberger , "angelo@sysam.it" , Alexey Brodkin , Martin Dorwig , Thierry Reding , York Sun Subject: [U-Boot] [PATCH v4 1/2] Reserve secure memory X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.15 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" Secure memory is at the end of memory, separated and reserved from OS, tracked by gd->secure_ram. Secure memory can host MMU tables, security monitor, etc. Signed-off-by: York Sun --- Changes in v4: None Changes in v3: Put ifdef around secure_ram Move defining CONFIG_SYS_MEM_RESERVE_SECURE to patch 2/2 Changes in v2: Do not use CONFIG_SYS_MEM_TOP_HIDE mechanism Changes in v1: Initial patch. Depends on http://patchwork.ozlabs.org/patch/540248/ README | 8 ++++++++ common/board_f.c | 9 +++++++++ include/asm-generic/global_data.h | 4 ++++ 3 files changed, 21 insertions(+) diff --git a/README b/README index ef8d437..61cbc82 100644 --- a/README +++ b/README @@ -3881,6 +3881,14 @@ Configuration Settings: Scratch address used by the alternate memory test You only need to set this if address zero isn't writeable +- CONFIG_SYS_MEM_RESERVE_SECURE + If defined, the size of CONFIG_SYS_MEM_RESERVE_SECURE memory + is substracted from total RAM and won't be reported to OS. + This memory can be used as secure memory. A variable + gd->secure_ram is used to track the location. In systems + the RAM base is not zero, or RAM is divided into banks, + this variable needs to be recalcuated to get the address. + - CONFIG_SYS_MEM_TOP_HIDE (PPC only): If CONFIG_SYS_MEM_TOP_HIDE is defined in the board config header, this specified memory area will get subtracted from the top diff --git a/common/board_f.c b/common/board_f.c index 725eb18..8061105 100644 --- a/common/board_f.c +++ b/common/board_f.c @@ -323,6 +323,15 @@ static int setup_dest_addr(void) * Ram is setup, size stored in gd !! */ debug("Ram size: %08lX\n", (ulong)gd->ram_size); +#ifdef CONFIG_SYS_MEM_RESERVE_SECURE + /* Reserve memory for secure MMU tables, and/or security monitor */ + gd->ram_size -= CONFIG_SYS_MEM_RESERVE_SECURE; + /* + * Record secure memory location. Need recalcuate if memory splits + * into banks, or the ram base is not zero. + */ + gd->secure_ram = gd->ram_size; +#endif #if defined(CONFIG_SYS_MEM_TOP_HIDE) /* * Subtract specified amount of memory to hide so that it won't diff --git a/include/asm-generic/global_data.h b/include/asm-generic/global_data.h index d0383f3..8cdafd6 100644 --- a/include/asm-generic/global_data.h +++ b/include/asm-generic/global_data.h @@ -58,6 +58,10 @@ typedef struct global_data { unsigned long relocaddr; /* Start address of U-Boot in RAM */ phys_size_t ram_size; /* RAM size */ +#ifdef CONFIG_SYS_MEM_RESERVE_SECURE + /* Secure memory addr. LSB is a flag for "secured". */ + phys_addr_t secure_ram; +#endif unsigned long mon_len; /* monitor len */ unsigned long irq_sp; /* irq stack pointer */ unsigned long start_addr_sp; /* start_addr_stackpointer */