From patchwork Fri Jun 19 04:16: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: 486572 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 27BC3140293 for ; Fri, 19 Jun 2015 14:17:40 +1000 (AEST) Received: from localhost ([::1]:55772 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Z5nkI-0004vM-7x for incoming@patchwork.ozlabs.org; Fri, 19 Jun 2015 00:17:38 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:58509) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Z5njY-0003L8-Hn for qemu-devel@nongnu.org; Fri, 19 Jun 2015 00:17:00 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Z5njS-0003dD-OD for qemu-devel@nongnu.org; Fri, 19 Jun 2015 00:16:52 -0400 Received: from mail-by2on0067.outbound.protection.outlook.com ([207.46.100.67]:27443 helo=na01-by2-obe.outbound.protection.outlook.com) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Z5njS-0003cj-Ch for qemu-devel@nongnu.org; Fri, 19 Jun 2015 00:16:46 -0400 Received: from BN1BFFO11FD036.protection.gbl (10.58.144.34) by BN1BFFO11HUB039.protection.gbl (10.58.144.186) with Microsoft SMTP Server (TLS) id 15.1.190.9; Fri, 19 Jun 2015 04:16:44 +0000 Authentication-Results: spf=fail (sender IP is 149.199.60.96) smtp.mailfrom=xilinx.com; gmail.com; 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 BN1BFFO11FD036.mail.protection.outlook.com (10.58.144.99) with Microsoft SMTP Server (TLS) id 15.1.190.9 via Frontend Transport; Fri, 19 Jun 2015 04:16:44 +0000 Received: from 172-16-1-203.xilinx.com ([172.16.1.203]:35779 helo=xsj-tvapsmtp02.xilinx.com) by xsj-tvapsmtpgw01 with esmtp (Exim 4.63) (envelope-from ) id 1Z5njP-0005Zf-Dl; Thu, 18 Jun 2015 21:16:43 -0700 Received: from [127.0.0.1] (port=41401 helo=tsj-smtp-dlp1.xlnx.xilinx.com) by xsj-tvapsmtp02.xilinx.com with esmtp (Exim 4.63) (envelope-from ) id 1Z5njP-0004nY-5i; Thu, 18 Jun 2015 21:16:43 -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 t5J4CKrl013587; Thu, 18 Jun 2015 21:12:20 -0700 Received: from [172.19.5.153] (port=42899 helo=xsjrdevl46.xilinx.com) by xsj-tvapsmtp02 with esmtp (Exim 4.63) (envelope-from ) id 1Z5njO-0004nV-6K; Thu, 18 Jun 2015 21:16:42 -0700 From: Alistair Francis To: , Date: Thu, 18 Jun 2015 21:16:42 -0700 Message-ID: <80825913615d0041925b959d579b3a083ae3009e.1434686378.git.alistair.francis@xilinx.com> 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-8.0.0.1202-21620.005 X-TM-AS-Result: No--3.816-7.0-31-10 X-imss-scan-details: No--3.816-7.0-31-10 X-TMASE-MatchedRID: EwcTiLu4307Sw3nP8ewgPJY9D0/NRxoqSbBIQqb89yruc7XfuTYENvlY oV6p/cSxH5TnHYZFBIilpQB16HZmbVFttnSPGAU6YwaJXrf2IXSjkoGZwmjMNn3lj93joBiuo8W MkQWv6iXBcIE78YqRWo6HM5rqDwqt4wdvn7TwcR1zKfNgkLV/QSJ8Kg1Xeug9rQCmB8LmsamziS 0VwRMRbqsWiagJzNBNGcebx26c89x978j41HRqfiEUbWhjkTaVHSbhGbmGylXFJK7yLnZRGZdO3 Q67ImL8gi4RUz90EQwG2MApbv6odw== X-EOPAttributedMessage: 0 X-Microsoft-Exchange-Diagnostics: 1; BN1BFFO11FD036; 1:kNw9Zq/YffYE+aQs1zdaaLLrfT1XoFAgxNjAsZIw7G1uhW6MbxuhBGtJgPf3SXsJT3qpRncKGjjk2jXsc6IWjaiHthkadhmV3EBrQjdZQSI8m5Ql/fHUGhsmK5MHtl0rfw7+2y7ecW7hHQTxXYVZLk8Bb08A0wNcXejwJ+H616k9f1wIbzHS4wsnZxpZktCRQzUtgLTyjvh8tzVu77NYT1DIB7a6iQwwB55i88c77mowCiFdsnKtZU8k4Kp8wNpxsLfiWcWin0ZFA/yC8SZon7jpRby9p+WZvI8mk+5OVIqTPf/l4A6/6KusOr18g2JASurhD/DekoNijCmluZDN0Q== X-Forefront-Antispam-Report: CIP:149.199.60.96; CTRY:US; IPV:NLI; EFV:NLI; SFV:NSPM; SFS:(10009020)(6009001)(2980300002)(339900001)(189002)(199003)(81156007)(189998001)(6806004)(5001960100002)(47776003)(64026002)(5003600100002)(36756003)(5001770100001)(71366001)(46102003)(87936001)(107886002)(105606002)(19580405001)(229853001)(92566002)(77156002)(62966003)(48376002)(50986999)(77096005)(85426001)(76176999)(2950100001)(50226001)(19580395003)(50466002)(86362001)(575784001)(106466001)(118296001)(33646002)(107986001)(4001450100001)(4001430100001); DIR:OUT; SFP:1101; SCL:1; SRVR:BN1BFFO11HUB039; H:xsj-tvapsmtpgw01; FPR:; SPF:Fail; MLV:ovrnspm; MX:1; A:1; PTR:unknown-60-96.xilinx.com; LANG:en; MIME-Version: 1.0 X-Microsoft-Exchange-Diagnostics: 1; BN1BFFO11HUB039; 2:lSGdCS5ziIjDi0ZO/sX9d9jQ409Kn6R4y9ID6+NfJ7Lc5aUgBZKWEsbkOe6rxDlw; 2:NI42HgJ8XDTRFGs+SrqXvGjEzjuvNGFAgCZzSWrFr9hAHq5hHzRUBogJPK0b62JjgoPJW9gMvRoQ1cKSKP14gk5x7koAYbqjsVvflt6uuFgjmgL6VorT2NmzFsRU1vpoBg5Lhwt9Z1la/5JB3zRzawVlJPxgURQmgopOec9vXhySx1Wt3Dkg7kwEcDDafulAcS1qU1u4W/9+JroQI7DqBvgIXwSiPPgrQDt2TLb2eWY=; 6:rGJDUuOEmG0c3ZoM61bbPZKgqKNAiMxJWOX+HlErdeoZjjnY+6bcvxKSibx+s+omPt0DED/AKNPg3yL2yd8+YDQt0D213Qgew+MouXgcvf/p3zE9IfA5J0G0ZFbe5GA2bMQyHku+2HCRdPGlYTBZWhUaUqYUcbxY3PU/jkKLTwDkjJ4HnlNygX8j8RDDYXfMkAD+tWjx9NHN6iBarFv4SgwIlW/9OhJXV3YAv/rAFWoLGbrmaQ5jpIRjySc9R6eyxiGdaRq2cvK/KbhKMOHY+0TQvJaHBmJJc4ByJ3/Vi2XMhqgSE7Iv7Gfc8G5hb3UwM999FRNs3/1xl9gQHBE00O8/sUP3iMC+EmuDB39nCYAyd/PwKNc+CGTxYmygqDBvb34G/f+L57dwRMvV2kDRtMu6S5uH5/7Jw7Z04Mcj+VDu1GctUM64Snz2Ed+tr21keI6cQ569KHqmOvPA1qy7XI9FVI1DsTACYaZq363bUSCqd/VBLBcmeAp06ZjTmLL1 X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:BN1BFFO11HUB039; 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:BN1BFFO11HUB039; BCL:0; PCL:0; RULEID:; SRVR:BN1BFFO11HUB039; X-Microsoft-Exchange-Diagnostics: 1; BN1BFFO11HUB039; 3:6FlVC5IEc38TPbhmAV+jyhcxqxMd5X6zR9GN20tmX6izsjzb/cbRfWuxljpNg3zV+3IhZqo6AAfvmh+uEqeeGyp8WFXEhnOR3yuLt8G1VL1yGkO7rKABdk9/V7A7ZG9HrQwSV6+p0XnxglgrMugupZSB0NF69ijHflN4buChEHFcKkB3RIMEdbxBzzPl/502WAaWNMPVgFfvg9CHFk1m84o5i+DBN3ryloIEat0OkvcEzwG04U3YIJbBMfk0P8urPiSwfxxjZ5G9UvpZ9w0zH45bW76uQ7lYA/nwQ9hK70E= X-Forefront-PRVS: 0612E553B4 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; BN1BFFO11HUB039; 9:RpeCNRkU2fn+b1/5DK05IEatGCM1Sph8b+85S6gT?= =?us-ascii?Q?pqw9XmoW0SUeXdI3bvjIejwqNuFS1pVrhbDCOtEicO+y3eQbpUJlSL3hN+iB?= =?us-ascii?Q?kOB6LHjD8exelz3wFc4N04DaS1Q8wdbgpCxGXloSQTUFjndKjMC+fhP6myoq?= =?us-ascii?Q?wuk7JU+SqUp+uDd+PDbzUR/kQsiW0m2JC3C3NNQShTtIqIyK8kk+z/fVqTDl?= =?us-ascii?Q?EHV1VeNFdrIFqJfV51l1/P3A+kAGhEU660FrqxzEVMvrsCHCe9SaN0OSmDv0?= =?us-ascii?Q?I847A0HsAphU2cMfIahc9FzzEYmqYN1VhGm3P8dtKkiPH4HQqr0WUkRjdGrw?= =?us-ascii?Q?K/tOmDtFJayj6+1cdWPScKRRYV1vvIDZ2v0hTZBRlxJ2teqbnRgMOuDM5fKD?= =?us-ascii?Q?euRylI+LVn9D7tife8/WqDEmvuyFxaabtp3YEuZUfGzM/iLU9Ueq8Pisp8ex?= =?us-ascii?Q?RO9cE/UlZC4JgKvjrXLMo6NDaYfXTtZ2X51ICjHhZrbPTF3SS8qruU65SHlr?= =?us-ascii?Q?dtGP/S2bDLzSaN6KdZFxIu1Gw3//aFasFdkQ9P2/1y1fDyTEyuy6qf5UqEQ8?= =?us-ascii?Q?yhJ/MkTwM00tq1MHJzQf/Gdc/uqp2XBOf+Zvk5yrRXakRMELmK/pdFNuV0ZO?= =?us-ascii?Q?gAPsopuvwJmDHPfTeVqd3ZyZdzFvcSKH2Xe9F8GxhGrIvYsXdN0E/1Gg0oPq?= =?us-ascii?Q?t8N406wDbdb5DsJ3rpzSAZaUScD8DgXF0CiB8O8bkz2sui22hgPLELmuItXm?= =?us-ascii?Q?KsR8dHlD089DgF98KDHX3b2u6v4yp4owHnuGQpZNvddEidQfmq3Jlnqh0O3M?= =?us-ascii?Q?L75u85d0F8eJlKeRogSSlUYXmtZTF7+wIAx7+kgCOMi9E/zPR6ej/d5n1HDh?= =?us-ascii?Q?6TgbBa+nKKlM+eypTgXJQahG5z/19nUFJC8JHrPFP5hZEBIeHjrIXLubGC9A?= =?us-ascii?Q?WQw61GCDMD3b6fc0R6W4YAr2J4QNiJBP1H0RC1zrLVwDjF11N+mdSHf11tRr?= =?us-ascii?Q?fE/oFSbQ0+g9fPowoWDyHpXofaH5nUB0CR3Qo/onRXSq55jHNA/RHZbuncjj?= =?us-ascii?Q?ERvtaSd0Qp4KVHIwPT1HXPeD/Qnebpk7O7KM/0IzzhToNi0V9g=3D=3D?= X-Microsoft-Exchange-Diagnostics: 1; BN1BFFO11HUB039; 3:aLXVpUWWjLVHbilit8CD0lAmlFRJiwP9mk8BEyTnLWF0SolbyHp9euhOef/Lxg2YU9OPifb/jgZf9pLz4KMJ1x5W04lyYZf4z89Zf7BYmu+g8wRUOl1HH5tVKwMLczzlSnH3YkvCriuP2yh7nCgkrg==; 10:NtpvQMIIop8qxHRz25Wx/Fhpw9Ky08YLTEno+AurzHiSstjXkxHGU9qUDo4crPaOWJKv9hRrk6Ey/ZnioF0qNOLhSaeb3y2Z0UkKWxou/vw= X-OriginatorOrg: xilinx.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Jun 2015 04:16:44.2849 (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: BN1BFFO11HUB039 X-detected-operating-system: by eggs.gnu.org: Windows 7 or 8 X-Received-From: 207.46.100.67 Cc: edgar.iglesias@gmail.com, peter.crosthwaite@xilinx.com, alistair.francis@xilinx.com Subject: [Qemu-devel] [PATCH v4 6/9] target-microblaze: Convert pvr-full to a CPU property 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 Originally the pvr-full PVR bits were manually set for each machine. This is a hassle and difficult to read, instead set them based on the CPU properties. Signed-off-by: Alistair Francis Reviewed-by: Peter Crosthwaite --- V4: - Macro out the PVR encodings V3: - Convert PVR to an 8-bit uint instead of a bool V2: - Rename DTS mapping target-microblaze/cpu-qom.h | 1 + target-microblaze/cpu.c | 7 ++++--- target-microblaze/cpu.h | 4 +++- target-microblaze/helper.c | 4 ++-- 4 files changed, 10 insertions(+), 6 deletions(-) diff --git a/target-microblaze/cpu-qom.h b/target-microblaze/cpu-qom.h index 7da25fa..34f6273 100644 --- a/target-microblaze/cpu-qom.h +++ b/target-microblaze/cpu-qom.h @@ -68,6 +68,7 @@ typedef struct MicroBlazeCPU { bool dcache_writeback; bool endi; char *version; + uint8_t pvr; } cfg; CPUMBState env; diff --git a/target-microblaze/cpu.c b/target-microblaze/cpu.c index df3dd89..ac390ce 100644 --- a/target-microblaze/cpu.c +++ b/target-microblaze/cpu.c @@ -130,8 +130,7 @@ static void mb_cpu_realizefn(DeviceState *dev, Error **errp) qemu_init_vcpu(cs); - env->pvr.regs[0] = PVR0_PVR_FULL_MASK \ - | PVR0_USE_BARREL_MASK \ + env->pvr.regs[0] = PVR0_USE_BARREL_MASK \ | PVR0_USE_DIV_MASK \ | PVR0_USE_HW_MUL_MASK \ | PVR0_USE_EXC_MASK \ @@ -166,7 +165,8 @@ static void mb_cpu_realizefn(DeviceState *dev, Error **errp) (cpu->cfg.use_fpu ? PVR0_USE_FPU_MASK : 0) | (cpu->cfg.use_mmu ? PVR0_USE_MMU_MASK : 0) | (cpu->cfg.endi ? PVR0_ENDI_MASK : 0) | - (version_code << 16); + (version_code << 16) | + (cpu->cfg.pvr == C_PVR_FULL ? PVR0_PVR_FULL_MASK : 0); env->pvr.regs[2] |= (cpu->cfg.use_fpu ? PVR2_USE_FPU_MASK : 0) | (cpu->cfg.use_fpu > 1 ? PVR2_USE_FPU2_MASK : 0); @@ -228,6 +228,7 @@ static Property mb_properties[] = { false), DEFINE_PROP_BOOL("endianness", MicroBlazeCPU, cfg.endi, false), DEFINE_PROP_STRING("version", MicroBlazeCPU, cfg.version), + DEFINE_PROP_UINT8("pvr", MicroBlazeCPU, cfg.pvr, C_PVR_FULL), DEFINE_PROP_END_OF_LIST(), }; diff --git a/target-microblaze/cpu.h b/target-microblaze/cpu.h index 0f82abd..0dd164f 100644 --- a/target-microblaze/cpu.h +++ b/target-microblaze/cpu.h @@ -212,7 +212,9 @@ typedef struct CPUMBState CPUMBState; /* MSR Reset value PVR mask */ #define PVR11_MSR_RESET_VALUE_MASK 0x000007FF - +#define C_PVR_NONE 0 +#define C_PVR_BASIC 1 +#define C_PVR_FULL 2 /* CPU flags. */ diff --git a/target-microblaze/helper.c b/target-microblaze/helper.c index 5156c12..8257b0e 100644 --- a/target-microblaze/helper.c +++ b/target-microblaze/helper.c @@ -58,8 +58,8 @@ int mb_cpu_handle_mmu_fault(CPUState *cs, vaddr address, int rw, mmu_available = 0; if (cpu->cfg.use_mmu) { mmu_available = 1; - if ((env->pvr.regs[0] & PVR0_PVR_FULL_MASK) - && (env->pvr.regs[11] & PVR11_USE_MMU) != PVR11_USE_MMU) { + if ((cpu->cfg.pvr == C_PVR_FULL) && + (env->pvr.regs[11] & PVR11_USE_MMU) != PVR11_USE_MMU) { mmu_available = 0; } }