From patchwork Thu May 14 06:08:42 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alistair Francis X-Patchwork-Id: 472237 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 0405914012C for ; Thu, 14 May 2015 16:42:50 +1000 (AEST) Received: from localhost ([::1]:52868 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Ysmr2-00014x-7j for incoming@patchwork.ozlabs.org; Thu, 14 May 2015 02:42:48 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:40130) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Ysmqk-0000nt-43 for qemu-devel@nongnu.org; Thu, 14 May 2015 02:42:31 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Ysmqf-0005FM-23 for qemu-devel@nongnu.org; Thu, 14 May 2015 02:42:30 -0400 Received: from mail-by2on0089.outbound.protection.outlook.com ([207.46.100.89]:39478 helo=na01-by2-obe.outbound.protection.outlook.com) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Ysmqe-0005C1-Lx for qemu-devel@nongnu.org; Thu, 14 May 2015 02:42:25 -0400 Received: from BN1BFFO11FD026.protection.gbl (10.58.144.31) by BN1BFFO11HUB052.protection.gbl (10.58.144.199) with Microsoft SMTP Server (TLS) id 15.1.160.8; Thu, 14 May 2015 06:08:46 +0000 Authentication-Results: spf=fail (sender IP is 149.199.60.96) smtp.mailfrom=xilinx.com; nongnu.org; dkim=none (message not signed) header.d=none; Received-SPF: Fail (protection.outlook.com: domain of xilinx.com does not designate 149.199.60.96 as permitted sender) receiver=protection.outlook.com; client-ip=149.199.60.96; helo=xsj-tvapsmtpgw01; Received: from xsj-tvapsmtpgw01 (149.199.60.96) by BN1BFFO11FD026.mail.protection.outlook.com (10.58.144.89) with Microsoft SMTP Server (TLS) id 15.1.160.8 via Frontend Transport; Thu, 14 May 2015 06:08:46 +0000 Received: from 172-16-1-203.xilinx.com ([172.16.1.203]:43581 helo=xsj-tvapsmtp02.xilinx.com) by xsj-tvapsmtpgw01 with esmtp (Exim 4.63) (envelope-from ) id 1YsmK5-0004n5-K8 for qemu-devel@nongnu.org; Wed, 13 May 2015 23:08:45 -0700 Received: from [127.0.0.1] (port=53442 helo=tsj-smtp-dlp1.xlnx.xilinx.com) by xsj-tvapsmtp02.xilinx.com with esmtp (Exim 4.63) (envelope-from ) id 1YsmK5-0002P4-Eu; Wed, 13 May 2015 23:08:45 -0700 Received: from xsj-tvapsmtp02 (xsj-tvapsmtp02.xilinx.com [172.16.1.203]) by tsj-smtp-dlp1.xlnx.xilinx.com (8.13.8/8.13.1) with ESMTP id t4E64ZGi022862; Wed, 13 May 2015 23:04:35 -0700 Received: from [172.16.162.22] (port=40047 helo=xbreng02.xilinx.com) by xsj-tvapsmtp02 with esmtp (Exim 4.63) (envelope-from ) id 1YsmK4-0002Oz-EZ; Wed, 13 May 2015 23:08:44 -0700 From: Alistair Francis To: , Date: Thu, 14 May 2015 16:08:42 +1000 Message-ID: X-Mailer: git-send-email 2.1.1 In-Reply-To: References: X-RCIS-Action: ALLOW X-TM-AS-MML: disable X-TM-AS-Product-Ver: IMSS-7.1.0.1679-7.5.0.1018-21542.003 X-TM-AS-Result: No--6.630-7.0-31-10 X-imss-scan-details: No--6.630-7.0-31-10 X-TMASE-MatchedRID: 3mKyDZUEmNoK2Qsa/S3/KSUCPpH7ESXaN25XIDQLt3bfUZT83lbkEHf9 IJ1pa64HH5TnHYZFBIjOc/mNl9a7VIjHxngndevxngIgpj8eDcAZ1CdBJOsoY8RB0bsfrpPIx1F PlNAAmcBQXvrP+vAZnWQWfcHHwDyTrdrKstWR3uiBwXosuqNhzJ6oP1a0mRIj X-EOPAttributedMessage: 0 X-Microsoft-Exchange-Diagnostics: 1; BN1BFFO11FD026; 1:CFN9cdm+QX4fFbbqoowFPVjZPgEJw8SJhvoT97fA6bdTBMWPqC/AzTnek0orEOfWybXqN90SO7bf6MDp7iV8z+Vd7+zhzhuN4iQVfTw9IBgFg07ga3GAFM6RnVe7lA6qfyqF4hV2pxM+B+uaRf0tKPaXlFDooTngnxJflsQ8H0ulcVYJYrtGy2LM4CEMlNapzEjW9E1S9UkwyKnRbwr7CJQotuHOKjkEfXxFTpJL2EkbAj2p3hIWeQfPoZ5w0YXROMlYBXSazpXwQ1d532Rb03pnXYx8VmHHYn4aAu4p7ZChBNCQ5uB0CT6qc4LDXtzH X-Forefront-Antispam-Report: CIP:149.199.60.96; CTRY:US; IPV:NLI; EFV:NLI; SFV:NSPM; SFS:(10009020)(6009001)(339900001)(189002)(199003)(106466001)(50466002)(48376002)(118296001)(36756003)(87936001)(229853001)(33646002)(86362001)(76176999)(50986999)(6806004)(47776003)(71366001)(64026002)(450100001)(85426001)(62966003)(77156002)(19580405001)(19580395003)(5001960100002)(107886002)(92566002)(77096005)(5001770100001)(189998001)(2950100001)(50226001)(46102003)(105606002)(107986001)(4001430100001); DIR:OUT; SFP:1101; SCL:1; SRVR:BN1BFFO11HUB052; H:xsj-tvapsmtpgw01; FPR:; SPF:Fail; MLV:sfv; MX:1; A:1; LANG:en; MIME-Version: 1.0 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; BN1BFFO11HUB052; 2:ppVE3hVoYGa0EV+WQBeCjUpvm1DwGSTyaY6sBDEC?= =?us-ascii?Q?weJ/bQklX5DCikoNnYg4D86y; 2:U0mFc7a7N+H0k78z+d+WsqqQ30+RBlbqI?= =?us-ascii?Q?395wvOzIMPyDnHyn1kfHKBveiDUxgzDCRRxVFJn08xZ38zjI9SrOgWcNghtQ?= =?us-ascii?Q?DRedRP8Vl37dBvtv66Rjo0VKrVLLM39PoY1yCRRJGFt+MVEcAdOCEWsYikwI?= =?us-ascii?Q?h4kCQuR3S1ChW9IqKbdqJjqw1ry/PID/BB996QIZ3fzUzK2hcrDNgzO4EaDc?= =?us-ascii?Q?5kXo9bUsNVv3IJHQi/x+G0=3D; 6:iGVshkKcuCwqqnAYuOgbhQqTBZkF2CEt?= =?us-ascii?Q?C9E9rJm3KAM/g0hwXKUDAN1DNKvbouRgpEzKL5265fwgt2fTrQvIUvJYz3MR?= =?us-ascii?Q?otfJAD2Ygd1Iy15lr9MdvM6Ovhvn5PwAfvC19e8cASkyiQqzFaTXnVwHGwDl?= =?us-ascii?Q?tSe1unIwrxnlaF1Ns97iF/3tkGjlG4ihVBjhyQTXStI5j4l00gaEeUjhN8h6?= =?us-ascii?Q?DF+S/asH9lbD/2eaMEjDEg/H9EPYpBicG+lIjBrXPEh9XnvuXjwQ7iEdIV9Y?= =?us-ascii?Q?wVHrQ5wC+10/E/NbJqKRmgIkRgo28nnuMKJBf+X93zWHdgjKWf8FU4Fm3xNG?= =?us-ascii?Q?1CbRS0zYpty5E9B2IOtnze8tKOU97ArUQqspauLYyr+i31NQoPLhCqrCCEHd?= =?us-ascii?Q?83KH6V5lpSz4DB7X6hyI+y2ea3C91JXQbBFC7fFI1GWFCGOirXtGq+i5gjZE?= =?us-ascii?Q?g4ptqVLCh5BzWR1c6i5ZsQ4fcSNTlRJpcZsb/Vawe2fAZVZaZgeEcDd6crA4?= =?us-ascii?Q?; 3:feg/ea0L8qPuXRO/BkRwZPp4sRzC8ZJKQzMkdRp6Tl/eZ+jOqT8TUzQg7?= =?us-ascii?Q?f5FKiCKa0Uk3Kyzl5uSnOC0mggomTfA0eiMp6daGEXKH4kNf+p5cn0O99rp7?= =?us-ascii?B?MzRvRkJRM0padTFXSEFxNlNkR3dlcDVZdEhpRHhCK1INCg0KDQoNCkRzTzN5?= =?us-ascii?Q?DS7vEcr4asji4gsfKZcETKJbLcN8IlZLPki2XkWYxQkpDuEQDgZgUD8FJMVL?= =?us-ascii?Q?IKqLin+WSnTKzbcrMDVmxwqX3M3eqhsGJ3EIWPVNTqVt0tXWIsB05t+1oHWB?= =?us-ascii?Q?5DngPTyMb61nmXTFhixV1xy4w=3D; 9:ZlAE45VcaniAC/vGQjEsZ1S/V+ZH6?= =?us-ascii?Q?oydldsOdalVXEVHItvJ2sIeg0XdsijErJ6yHOKXOunIjsTvzVahsHt2XSZKv?= =?us-ascii?Q?0BVwAUyiF0wD6OpIdE4gz+phnjUj5+qdOXWJ1R090l8IYxEx0DbgydW2eF7Z?= =?us-ascii?Q?gkqOt96yWzFT3253hETzDEigDlx0om0Oi2qa/sdIKd068IfvS1qHW31xN2au?= =?us-ascii?Q?ljAIPDwoxpiJqQby5Eh1FKK3Ni4TU558OGD0RhdvXqmJqFUsZMdmDtev4yCY?= =?us-ascii?Q?y52OsOCXFUCC5ZTaBVMDuG0Xac0h4gEIXK8XxwHkIthf54/Z5PayIHfTrWBX?= =?us-ascii?Q?Un3+fd3LuMGbepPi5J5UcZ7F5xyeHmO7bEo3Bi3lnivMyDGxcWwX4Np0vzgq?= =?us-ascii?Q?dBRaIUbzU+xzOwUubVHeQif8IrOpuOfkU6s2t1ub/tQTBH5V/ep3Y0pnKbGw?= =?us-ascii?Q?74DMbtBic8J4cxAgPgMe+We1/6TX7T8OwKxs/GIcw4zVDMvXjwwQDDv/iFWX?= =?us-ascii?Q?0TnvPx2srjPYifbAh8ZZzkdwyLBJZvDQ9WiRs3UAIn6kdVlOJA/6zHYkyX2l?= =?us-ascii?Q?E5uatuaNGLXuj1rWQypS8EkEp6zeL50HBm4NyXDKCqk5C4A2kNKjaozQyjnI?= =?us-ascii?Q?D63EmrEl22wOeUB//jWgZgADMEOHxbC9NXhZXMXJueQNxNRKQRLKikeB/3+u?= =?us-ascii?Q?kGdRrRdK6fMp/gHvG1yr3kh3Kegm+J59McaCnhctF7rguKb/VsD+jZL27Ph5?= =?us-ascii?Q?qNDXh/TSlN8r3P8Fe5V00FEsGBWbi/MrxksfkmfwynTQ03wowFVtWsaHhgIl?= =?us-ascii?Q?2iAuCoOd3RqVL9ZOa/GxO=0D=0AKL=0D=0AGf=0D=0ADevJTm17M3i6QoHz5?= =?us-ascii?Q?UL4e3E/31WUOCiI+DINr998lQsQocpwvVJIoNMKRFIA9oFQ29LO7kVLE7kNM?= =?us-ascii?Q?VjpAvlk0GlbqWiys8EQN073pShrOGCTiv4qOzkcJAbYkW/4UBhdQyG1t+DHp?= =?us-ascii?Q?agqk8PbmhhjM7ub9zaRASJvioor890Sg=3D; 3:Vbp+fr7SaaoTqWzRj0PhTu?= =?us-ascii?Q?/VWBBqL2wI9DyDwtTtyfADOfn78frur6KBKvXENmZFFTFLSNdwq7Wn2vagzG?= =?us-ascii?Q?noRLdYE9AAjTeF9BQpInHpfiC8hz3p5feRiUO5O5y1t8HVPj7tyCwWKxVvFc?= =?us-ascii?Q?y2oX2bXQ=3D=3D; 10:7k7YV0PzIo0DiwyB9jeFixvuJEkPnY82uNJ+Uvi88L?= =?us-ascii?Q?Z+200osNtdWs99o/N8dYHkciAmPVUQ9WgK7aRWY21r2JR7WPrUtXzq7+/YWZ?= =?us-ascii?Q?6wTuo=3D?= X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:BN1BFFO11HUB052; X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(601004)(5005006)(3002001); SRVR:BN1BFFO11HUB052; BCL:0; PCL:0; RULEID:; SRVR:BN1BFFO11HUB052; X-Forefront-PRVS: 0576145E86 X-OriginatorOrg: xilinx.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 May 2015 06:08:46.4171 (UTC) X-MS-Exchange-CrossTenant-Id: 657af505-d5df-48d0-8300-c31994686c5c X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=657af505-d5df-48d0-8300-c31994686c5c; Ip=[149.199.60.96]; Helo=[xsj-tvapsmtpgw01] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN1BFFO11HUB052 X-detected-operating-system: by eggs.gnu.org: Windows 7 or 8 X-Received-From: 207.46.100.89 Cc: peter.crosthwaite@xilinx.com, alistair.francis@xilinx.com Subject: [Qemu-devel] [RFC v1 2/3] target-microblaze: Allow the stack protection to be disabled X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Microblaze stack protection is configurable and isn't always enabled. This patch allows the stack protection to be disabled from the CPU properties. Signed-off-by: Alistair Francis --- target-microblaze/cpu-qom.h | 5 +++++ target-microblaze/cpu.c | 2 ++ target-microblaze/op_helper.c | 4 +++- 3 files changed, 10 insertions(+), 1 deletions(-) diff --git a/target-microblaze/cpu-qom.h b/target-microblaze/cpu-qom.h index e3e0701..7bc5b81 100644 --- a/target-microblaze/cpu-qom.h +++ b/target-microblaze/cpu-qom.h @@ -59,6 +59,11 @@ typedef struct MicroBlazeCPU { uint32_t base_vectors; /*< public >*/ + /* Microblaze Configuration Settings */ + struct { + bool stackproc; + } cfg; + CPUMBState env; } MicroBlazeCPU; diff --git a/target-microblaze/cpu.c b/target-microblaze/cpu.c index 67e3182..c08da19 100644 --- a/target-microblaze/cpu.c +++ b/target-microblaze/cpu.c @@ -152,6 +152,8 @@ static const VMStateDescription vmstate_mb_cpu = { static Property mb_properties[] = { DEFINE_PROP_UINT32("xlnx.base-vectors", MicroBlazeCPU, base_vectors, 0), + DEFINE_PROP_BOOL("xlnx.use-stack-protection", MicroBlazeCPU, cfg.stackproc, + true), DEFINE_PROP_END_OF_LIST(), }; diff --git a/target-microblaze/op_helper.c b/target-microblaze/op_helper.c index d2b3624..24df538 100644 --- a/target-microblaze/op_helper.c +++ b/target-microblaze/op_helper.c @@ -467,7 +467,9 @@ void helper_memalign(CPUMBState *env, uint32_t addr, uint32_t dr, uint32_t wr, void helper_stackprot(CPUMBState *env, uint32_t addr) { - if (addr < env->slr || addr > env->shr) { + MicroBlazeCPU *cpu = mb_env_get_cpu(env); + + if (cpu->cfg.stackproc && (addr < env->slr || addr > env->shr)) { qemu_log("Stack protector violation at %x %x %x\n", addr, env->slr, env->shr); env->sregs[SR_EAR] = addr;