From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR05-VI1-obe.outbound.protection.outlook.com (mail-vi1eur05on2060.outbound.protection.outlook.com [40.107.21.60]) by sourceware.org (Postfix) with ESMTPS id 2CE753858C5E for ; Thu, 23 Feb 2023 15:18:39 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 2CE753858C5E Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=arm.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=arm.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com; s=selector2-armh-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=zEG+c9GBf19CpWonNiU0uno63DnFCVKnENIAXGC2kQA=; b=HCQRlMYqwb2blxrp21/xlMr36zXZ2u+KdRfYEx+SZAfvK2yyJcIbWu7tWLR5ZfIw3VOCFvUEPxOPmp6j1eRG0EP6Tf4RPxCT5iLXH7FHVHF5AoCNNJtZ+K6YuDawsVyfrxi02iym8o6LSR+isovqt3FTZk9ncFMrpj7zMDc6Yws= Received: from DB3PR08CA0010.eurprd08.prod.outlook.com (2603:10a6:8::23) by AS8PR08MB9044.eurprd08.prod.outlook.com (2603:10a6:20b:5c0::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6111.21; Thu, 23 Feb 2023 15:18:30 +0000 Received: from DBAEUR03FT039.eop-EUR03.prod.protection.outlook.com (2603:10a6:8:0:cafe::5d) by DB3PR08CA0010.outlook.office365.com (2603:10a6:8::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6134.21 via Frontend Transport; Thu, 23 Feb 2023 15:18:30 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123) smtp.mailfrom=arm.com; dkim=pass (signature was verified) header.d=armh.onmicrosoft.com;dmarc=pass action=none header.from=arm.com; Received-SPF: Pass (protection.outlook.com: domain of arm.com designates 63.35.35.123 as permitted sender) receiver=protection.outlook.com; client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com; pr=C Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by DBAEUR03FT039.mail.protection.outlook.com (100.127.142.225) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6134.21 via Frontend Transport; Thu, 23 Feb 2023 15:18:30 +0000 Received: ("Tessian outbound baf1b7a96f25:v132"); Thu, 23 Feb 2023 15:18:30 +0000 X-CheckRecipientChecked: true X-CR-MTA-CID: 9ccc71ae9a19a190 X-CR-MTA-TID: 64aa7808 Received: from 92c863166777.1 by 64aa7808-outbound-1.mta.getcheckrecipient.com id 28AE623B-8215-4BFA-9CA1-6F9D49ABB630.1; Thu, 23 Feb 2023 15:18:23 +0000 Received: from EUR03-DBA-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 92c863166777.1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Thu, 23 Feb 2023 15:18:23 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=OTbPhIhaUfMFfFIp7xqMZBowhapU9Ay+ZgIqZXUBrwTtAl5eoHJe0zXyGLRY1wKJJq7NPvkA77HkhhdpBqiAW76v8g8M0QQfgSYF3v+XvGbJuc4NRG6PtQsL6pIdWD3GFUHALN9zCqOifL7vKHRdCwxEHCP1UB9uoZh+IXwVudNJn5cYJiidvUiefKuoKYaZGGyioeZjexBVXEP+sPbwgikGBwscOq9ADH9GqC/YNEHoKMB+DCHZ8QSfmM4zdZyMOO976LaHN0j7xIMXHoPyjmLg/JKSFdvzcFNRLLQzADMKuBfWm7nR4ZHjHxVxUBEPtIxMbZ0a27f5bVDoNMoNdg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=zEG+c9GBf19CpWonNiU0uno63DnFCVKnENIAXGC2kQA=; b=GIF9dY93+0OXIgLwPZy0K5buU7WP/W65qVj19hcDj2mPzWH32r6xG0urPUmP51Gp+snrYLDqAwefXIa4VyoeNKW6P0R8Q9Kr37jPGgqWmFN7MD2iU0+uZaY7Be5eR/VOjPqHZ/rsuvbB8kXx9qdcLCS+HHApOZyiAbW/wRb5FycSrb6w0YAgTGVRS3IGARSGE7TXm6S6J/nn8rqSeMxNaKcBYFgfrYeCX+wMNicLwZf84knU8fnbtdizm7Tv77xD9C5ipQNNBtKcRGB+dxGUpvFMcT6GGqDhi3tiX16H2lMnammQAVPWzkloZ6JMabRKqDvdlv+x8cltoyOVoGzZGw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass header.d=arm.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com; s=selector2-armh-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=zEG+c9GBf19CpWonNiU0uno63DnFCVKnENIAXGC2kQA=; b=HCQRlMYqwb2blxrp21/xlMr36zXZ2u+KdRfYEx+SZAfvK2yyJcIbWu7tWLR5ZfIw3VOCFvUEPxOPmp6j1eRG0EP6Tf4RPxCT5iLXH7FHVHF5AoCNNJtZ+K6YuDawsVyfrxi02iym8o6LSR+isovqt3FTZk9ncFMrpj7zMDc6Yws= Authentication-Results-Original: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=arm.com; Received: from DB9PR08MB6957.eurprd08.prod.outlook.com (2603:10a6:10:2bc::10) by AS2PR08MB9075.eurprd08.prod.outlook.com (2603:10a6:20b:5ff::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6134.21; Thu, 23 Feb 2023 15:18:19 +0000 Received: from DB9PR08MB6957.eurprd08.prod.outlook.com ([fe80::6d71:9b0b:f2a5:2842]) by DB9PR08MB6957.eurprd08.prod.outlook.com ([fe80::6d71:9b0b:f2a5:2842%5]) with mapi id 15.20.6134.021; Thu, 23 Feb 2023 15:18:19 +0000 Message-ID: <877651c1-3d70-6985-54b3-e4416bed3048@arm.com> Date: Thu, 23 Feb 2023 15:18:03 +0000 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.5.1 Content-Language: en-US To: binutils@sourceware.org From: Richard Ball Subject: [PATCH][GAS][Aarch64] Add Binutils support for MEC Cc: nickc@redhat.com Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-ClientProxiedBy: LO2P123CA0095.GBRP123.PROD.OUTLOOK.COM (2603:10a6:600:139::10) To DB9PR08MB6957.eurprd08.prod.outlook.com (2603:10a6:10:2bc::10) MIME-Version: 1.0 X-MS-TrafficTypeDiagnostic: DB9PR08MB6957:EE_|AS2PR08MB9075:EE_|DBAEUR03FT039:EE_|AS8PR08MB9044:EE_ X-MS-Office365-Filtering-Correlation-Id: b5164876-5547-4651-d5e0-08db15b13885 X-LD-Processed: f34e5979-57d9-4aaa-ad4d-b122a662184d,ExtAddr x-checkrecipientrouted: true NoDisclaimer: true X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Untrusted: BCL:0; X-Microsoft-Antispam-Message-Info-Original: y+wTKFe5aFufPC4GIbwf0Z3r0Y33D2No0CZPQ7oMSs6/gGWpv83WAL6YLf3AJRyuYj8LqwCHo/CrWVzS3NM0q714i2jgdA8shVCxDB2cm2+uhsMZ1pfhJkwYbiWzXHjUBQpHrfVUYdaAGKBk6NRXzwLWb3Sy4b2fHHaS5ZH2uwhYp1VM8xAFx+243koBFij7q6Pc/rYfkiOHYkw0U4P9f2gr82a4zySyXTu28pD0xkHsYdjSHJ0F/hTRTfT84mACXHHhoMwLQh2IyWkl1IU2e3fpxBJh+xf/0T90kuvCEDUbUXAZub5SFkGT6LFm+SbHpqy1nHH9e/8YKGmmzkex0D4F2C+dZnzaMdEE8b4cajnrSMzGfAtqhhsNwGTaz/XaKv8Iuwg96HDQEVNy2Wm2dXQuZv9/APCA+E0lRa3U8wnMy1IWZDFDva9iKLbx1oEOcsvqgNjAiGlkC/RlmxfnSSi9mf9St30LX1GLkkTGsxmVsaM9iTs99g3ENdv8zHDxZbK0bUoes45I6eFVMlJ7Lc9DInNNeh3suHl1y+3t5Xq0wdWRyl3ar1Iu78ZFxcCTgjh6Md/G3id4wnQ5H4razB8AVck/7DzCe+PZcuqDpf9M/2XNF5/+bspCxk9DIE1HZOm9Ds2KZ8FekYw1F3ROE7+FYYVZdSebQr07QNaAWZIbUTn/8++x6RS6uO2zuTv2W2HID9VqAyWR7vcEr1lZNuBAQt3FdLRHvlWjAEc4h/U= X-Forefront-Antispam-Report-Untrusted: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DB9PR08MB6957.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230025)(4636009)(376002)(366004)(346002)(396003)(136003)(39860400002)(451199018)(86362001)(31696002)(38100700002)(31686004)(66946007)(66556008)(316002)(66476007)(2906002)(478600001)(6666004)(6486002)(36756003)(4326008)(6916009)(8676002)(6506007)(6512007)(186003)(26005)(5660300002)(8936002)(44832011)(2616005)(41300700001)(83380400001)(43740500002)(45980500001);DIR:OUT;SFP:1101; X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS2PR08MB9075 Original-Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=arm.com; X-EOPAttributedMessage: 0 X-MS-Exchange-Transport-CrossTenantHeadersStripped: DBAEUR03FT039.eop-EUR03.prod.protection.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: b6ff5057-3bbf-4160-d4a4-08db15b131e4 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: GMKv77JNePWzQW737V0oA9twclmXkJiX4ZTTHfgfp/DxZVh/EfvNNdV+/U1dUUdZMZc73TNkBGb8hAs1APvhFvzaIfRKirhrK1SQevLkpGydpoUNMsA1fXqbBXormfDY8qi7u9/LDIa5L4BRnN8Cr2XfK3NXD1Zj9TGkq2z7ZcdLr4IXJuOQf1gegN4JLjD27hXdt1g9simZrth2h5teZBg5xaKuhRRXZoAUyEOu5FGTKoYwEh7qXmegnp1X6hN+gLTbDOk1A3beDmqBbNlbPXsYmaX5bm1UlS5y5naoKpJwNabFFcLC397poz9WuDCOzuSsvff5HfhbW1MxbvH0FCGhArRAUkc/ev+rk2RURh8Hf5HrjFBeIZ6gfEdccNnI2FaymWQ6Wz8VStabDWSjZ6hcBth1BFlKnlCV7pR5NkF7/rNpgzcypgZLeqIsEQAA4Hi7aoCD+cL4hcU3jCwVDqlC8bLoQ3QXDUu1iP1x6GXutFcXHPaNK9EzHIPqS3vtiJPpMgZ/NawiFu8IO92bix71J8vdtbVqal4f1xI3Cp53fqMi0FxEVHIJapRppXwVU7VvWpo3hBm8R8DbjXpP1QqTodnFgUZjg3fiIt8HMtPGR76mh+zduYmzNvdykUntOpGhbDa+v31d2Yn2VWNFHKRbUNz+enCAUPsb18GusmsaWwgR7SUHMNsBLyI5AV44jyjz9pXiIvDKGScu8cpDQ+2dWExyDIxHF8LM+gwmTzM= X-Forefront-Antispam-Report: CIP:63.35.35.123;CTRY:IE;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:64aa7808-outbound-1.mta.getcheckrecipient.com;PTR:ec2-63-35-35-123.eu-west-1.compute.amazonaws.com;CAT:NONE;SFS:(13230025)(4636009)(346002)(39860400002)(396003)(376002)(136003)(451199018)(40470700004)(46966006)(36840700001)(186003)(36756003)(82310400005)(8936002)(40480700001)(356005)(86362001)(31696002)(5660300002)(31686004)(44832011)(6486002)(478600001)(82740400003)(6916009)(36860700001)(70206006)(83380400001)(2906002)(6512007)(40460700003)(26005)(6506007)(107886003)(41300700001)(4326008)(316002)(70586007)(8676002)(6666004)(47076005)(2616005)(336012)(81166007)(43740500002);DIR:OUT;SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Feb 2023 15:18:30.4746 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: b5164876-5547-4651-d5e0-08db15b13885 X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[63.35.35.123];Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com] X-MS-Exchange-CrossTenant-AuthSource: DBAEUR03FT039.eop-EUR03.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR08MB9044 X-Spam-Status: No, score=-13.0 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,FORGED_SPF_HELO,GIT_PATCH_0,KAM_DMARC_NONE,KAM_LOTSOFHASH,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H2,SPF_HELO_PASS,SPF_NONE,TXREP,UNPARSEABLE_RELAY autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: This patch adds support for 8 new system registers. MECIDR_EL2 MECID_P0_EL2 MECID_A0_EL2 MECID_P1_EL2 MECID_A1_EL2 VMECID_P_EL2 VMECID_A_EL2 MECID_RL_A_EL3 This change supports MEC which is part of RME (Realm Management Extension). All tests pass on aarch64-none-elf gas/ChangeLog: * testsuite/gas/aarch64/mec-invalid.d: New test. * testsuite/gas/aarch64/mec-invalid.l: New test. * testsuite/gas/aarch64/mec-invalid.s: New test. * testsuite/gas/aarch64/mec.d: New test. * testsuite/gas/aarch64/mec.s: New test. opcodes/ChangeLog: * aarch64-opc.c: Add MEC system registers. diff --git a/gas/testsuite/gas/aarch64/mec-invalid.d b/gas/testsuite/gas/aarch64/mec-invalid.d new file mode 100644 index 0000000000000000000000000000000000000000..b071a34837ad075324f7ca6445f7a0bcc3e0c7f3 --- /dev/null +++ b/gas/testsuite/gas/aarch64/mec-invalid.d @@ -0,0 +1,3 @@ +#name: Invalid MEC System registers usage +#source: mec-invalid.s +#warning_output: mec-invalid.l diff --git a/gas/testsuite/gas/aarch64/mec-invalid.l b/gas/testsuite/gas/aarch64/mec-invalid.l new file mode 100644 index 0000000000000000000000000000000000000000..32e7f53960a4c74491f5ce651e1e23ec8af5af7b --- /dev/null +++ b/gas/testsuite/gas/aarch64/mec-invalid.l @@ -0,0 +1,2 @@ +.*: Assembler messages: +.*: Warning: specified register cannot be written to at operand 1 -- `msr mecidr_el2,x0' diff --git a/gas/testsuite/gas/aarch64/mec-invalid.s b/gas/testsuite/gas/aarch64/mec-invalid.s new file mode 100644 index 0000000000000000000000000000000000000000..9f7f1cd9fb210fbd7503760e48a125feeb411308 --- /dev/null +++ b/gas/testsuite/gas/aarch64/mec-invalid.s @@ -0,0 +1,4 @@ +// Memory Encryption Contexts, an extension of RME. + +// Illegal write to MEC system registers. +msr mecidr_el2, x0 diff --git a/gas/testsuite/gas/aarch64/mec.d b/gas/testsuite/gas/aarch64/mec.d new file mode 100644 index 0000000000000000000000000000000000000000..118575d642b8581c5b95a4cb7f4d1b9c6e73d075 --- /dev/null +++ b/gas/testsuite/gas/aarch64/mec.d @@ -0,0 +1,24 @@ +#name: MEC System registers +#objdump: -dr + +.*: file format .* + +Disassembly of section .text: + +0+ <.*>: + +[^:]*: d53ca8e0 mrs x0, mecidr_el2 +[^:]*: d53ca800 mrs x0, mecid_p0_el2 +[^:]*: d53ca820 mrs x0, mecid_a0_el2 +[^:]*: d53ca840 mrs x0, mecid_p1_el2 +[^:]*: d53ca860 mrs x0, mecid_a1_el2 +[^:]*: d53ca900 mrs x0, vmecid_p_el2 +[^:]*: d53ca920 mrs x0, vmecid_a_el2 +[^:]*: d53eaa20 mrs x0, mecid_rl_a_el3 +[^:]*: d51ca800 msr mecid_p0_el2, x0 +[^:]*: d51ca820 msr mecid_a0_el2, x0 +[^:]*: d51ca840 msr mecid_p1_el2, x0 +[^:]*: d51ca860 msr mecid_a1_el2, x0 +[^:]*: d51ca900 msr vmecid_p_el2, x0 +[^:]*: d51ca920 msr vmecid_a_el2, x0 +[^:]*: d51eaa20 msr mecid_rl_a_el3, x0 diff --git a/gas/testsuite/gas/aarch64/mec.s b/gas/testsuite/gas/aarch64/mec.s new file mode 100644 index 0000000000000000000000000000000000000000..d89a2748d9b913e00353af9ca08812afc3db4eb6 --- /dev/null +++ b/gas/testsuite/gas/aarch64/mec.s @@ -0,0 +1,20 @@ +// Memory Encryption Contexts, an extension of RME. + +// Read from MEC system registers. +mrs x0, mecidr_el2 +mrs x0, mecid_p0_el2 +mrs x0, mecid_a0_el2 +mrs x0, mecid_p1_el2 +mrs x0, mecid_a1_el2 +mrs x0, vmecid_p_el2 +mrs x0, vmecid_a_el2 +mrs x0, mecid_rl_a_el3 + +// Write to MEC system registers. +msr mecid_p0_el2, x0 +msr mecid_a0_el2, x0 +msr mecid_p1_el2, x0 +msr mecid_a1_el2, x0 +msr vmecid_p_el2, x0 +msr vmecid_a_el2, x0 +msr mecid_rl_a_el3, x0 diff --git a/opcodes/aarch64-opc.c b/opcodes/aarch64-opc.c index 886befff99e60d6a7e2ec5d8ef40e911b4c075c8..e271b0d5e8edeeefe6e2735a14116f248b8c0f9a 100644 --- a/opcodes/aarch64-opc.c +++ b/opcodes/aarch64-opc.c @@ -5010,6 +5010,15 @@ const aarch64_sys_reg aarch64_sys_regs [] = SR_CORE ("gpccr_el3", CPENC (3,6,C2,C1,6), 0), SR_CORE ("gptbr_el3", CPENC (3,6,C2,C1,4), 0), + SR_CORE ("mecidr_el2", CPENC (3,4,C10,C8,7), F_REG_READ), + SR_CORE ("mecid_p0_el2", CPENC (3,4,C10,C8,0), 0), + SR_CORE ("mecid_a0_el2", CPENC (3,4,C10,C8,1), 0), + SR_CORE ("mecid_p1_el2", CPENC (3,4,C10,C8,2), 0), + SR_CORE ("mecid_a1_el2", CPENC (3,4,C10,C8,3), 0), + SR_CORE ("vmecid_p_el2", CPENC (3,4,C10,C9,0), 0), + SR_CORE ("vmecid_a_el2", CPENC (3,4,C10,C9,1), 0), + SR_CORE ("mecid_rl_a_el3",CPENC (3,6,C10,C10,1), 0), + SR_SME ("svcr", CPENC (3,3,C4,C2,2), 0), SR_SME ("id_aa64smfr0_el1", CPENC (3,0,C0,C4,5), F_REG_READ), SR_SME ("smcr_el1", CPENC (3,0,C1,C2,6), 0),