From patchwork Mon Jan 9 11:29:41 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Yury Norov X-Patchwork-Id: 9504411 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id 583936071A for ; Mon, 9 Jan 2017 11:31:48 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 57AF4284AC for ; Mon, 9 Jan 2017 11:31:48 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 4BCB1284AE; Mon, 9 Jan 2017 11:31:48 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-4.1 required=2.0 tests=BAD_ENC_HEADER,BAYES_00, DKIM_SIGNED, RCVD_IN_DNSWL_MED, T_DKIM_INVALID autolearn=ham version=3.3.1 Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.9]) (using TLSv1.2 with cipher AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id EF134284AC for ; Mon, 9 Jan 2017 11:31:46 +0000 (UTC) Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.87 #1 (Red Hat Linux)) id 1cQYAy-0002g3-2Z; Mon, 09 Jan 2017 11:31:44 +0000 Received: from mail-co1nam03on0068.outbound.protection.outlook.com ([104.47.40.68] helo=NAM03-CO1-obe.outbound.protection.outlook.com) by bombadil.infradead.org with esmtps (Exim 4.87 #1 (Red Hat Linux)) id 1cQYAb-0001cg-P5 for linux-arm-kernel@lists.infradead.org; Mon, 09 Jan 2017 11:31:23 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=CAVIUMNETWORKS.onmicrosoft.com; s=selector1-caviumnetworks-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=BF6XhxtkyowpXDfE4T53fVB8oPX72SeqijkpLY8osXo=; b=LofWe+TRphPHCkdrUQH41lFpJODl90sRFv35S0xT/APlRPt1EhCkTcxDM1QPT5bfxTkho+okVzxDSWkOeCkihEujh4VH/oo3blY5Hrn3JyZ7Dldjaav/7XXA4KbT4C+7JfUcIgDlTqgDhHLTRzpDiKcNWzZZBYrLdb8e2lc4nk4= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Yuri.Norov@caviumnetworks.com; Received: from localhost (103.78.20.242) by CY1PR07MB2245.namprd07.prod.outlook.com (10.164.112.147) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.829.7; Mon, 9 Jan 2017 11:31:18 +0000 From: Yury Norov To: , , , "linux-arch @ vger . kernel . org Arnd Bergmann" , Catalin Marinas Subject: [PATCH 04/20] arm64: ilp32: add documentation on the ILP32 ABI for ARM64 Date: Mon, 9 Jan 2017 16:59:41 +0530 Message-ID: <1483961397-8599-5-git-send-email-ynorov@caviumnetworks.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1483961397-8599-1-git-send-email-ynorov@caviumnetworks.com> References: <1483961397-8599-1-git-send-email-ynorov@caviumnetworks.com> MIME-Version: 1.0 X-Originating-IP: [103.78.20.242] X-ClientProxiedBy: AM5PR0101CA0017.eurprd01.prod.exchangelabs.com (10.169.240.27) To CY1PR07MB2245.namprd07.prod.outlook.com (10.164.112.147) X-MS-Office365-Filtering-Correlation-Id: 5548c0d1-2c30-4e9a-8dbd-08d43883083a X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001); SRVR:CY1PR07MB2245; X-Microsoft-Exchange-Diagnostics: 1; CY1PR07MB2245; 3:Qe7BOEEPokseLYhhMuBhChA5F6x9MAfWRaJxI6/d3YOUHhTbKYUD1/K+4w0cwrCzF9FChgwKjLIUAW/5e749ASXfHsgUGQXDW9HIOefZssd1m3CtvR/c76/xfJDyCHtaIzOYcfNfl6b7kWHligo08UgQ9Ufb/4yvRqXbpu5Ln1l8HblNay417liUtx0SVfy86tNwnFVJ6MKriwPVl77B3rgkbpLXY7xEpBAIlvyUY89nQdhInBge4XUhxGr6YldqELrR5lGiXC2CSO95qsbFTA==; 25:zODWvHT9IVg0Qcp1xVLBo1Y9MGjdyJWM8s53+Q/mHfXBUNqsPIYAQa8pnS80AvDlKwp2y4L9StPgJu7XGJ06mXJiExLuAKyjiEy/j3Us3R/6hv+gktyuZDsuxfX+xLwy7JiYNWKnAAbsGOGNLUzDcchKBMgM3J7COK7Z7HdCZFPhxvNA3ImuXdPA49VUJ+JEJ9g+e4hzR0w0JmjBkeQM55yASpvoViKfWWOjy8UkezrCUCOcdxIFU+eLxSGOGc7IXn4uLv5Ys5OAE5jBEC1HQeMx7NVij0529BfbvfswRWJJZP8Rrn5y0uqbVrGgJXQz/xDqUjhhxRsjzK2DN1hJl0WjThFkuffP1Els/PSmA1Eyr5XGbi6O1ee+Q5HsbYHA6U+HTUw/hoNnLSrA9eOALbPZx6ivP5D42Ywh+hJGoLJbV1iefoKT3pXEme0aNoyKMfLhSmyHOf4BQCCF/wOSxw== X-Microsoft-Exchange-Diagnostics: 1; CY1PR07MB2245; 31:unCWkBBNxb+PvzdMgJhL9IdjGUc2IR39phQn3ha32ysurk+Z7WU7RmjP06m+QL/ARQQQ7zAR4W2OyXszW9y6xeKmHai9GtEkfLgHNIjQpUNKUFBWwOFX1LsWxssm5cEn5NEC1TZmKDqrBWCEyepHtCWqVvENTKXen8rxV8yUj37KWdt4lFwJVceLo2Mh6N+3rAcXkTM1dk2iYztuTS6lCIBoZKeH1/LC3lOsPx6nI5jwgH2nPRu+gjhn3OyqJaikh3CJHQbC19xcd3JPzDhqhFt5wr55lFQ6i1MZYAmPVts=; 20:yYmbKqjbRswQcAbXGtxqDjcf/YJe/ABtR7RE8jAQxjyp+I20P09BjQ4o99VkEWnaM7h+BjFBeJjbdHavN8ZOU+FL8glxk2LJR+g7rIrghQ7gZkryCIFuSQUcPG9Ubrhz0VNU7J1tTUsTXehbwcsySm1mejvENlkXgFemFT1UnW6bBocfa0sszuaglK9f1GYm5pZN5vhDFboPEsAICVpogV1XqhVZGWZmBWiGpR2AR55XPCckt1XXLEUESTjWlfWs6dViJPgiMq9E0p5xBJ8N7Ll7IVG0sB4x+9ZjPcIFOzn4U3+sd4UsJ/qDo5LNMkCmyKCHTqJQEYadPJGo5Vv7TXmYgiCA+gC8VKNzs+FVsDPWX+7sGeEoBCwFUy8BUItTGdvLVSXvBt6CdXruN24L6PBvnO6cdUz1zgNnyEosWAOUF98OOjyTvwWSeezPNxOew/aDHKUJN1EgB0Bq6Pud4R+rxExX84UurD4g0r5F2LHlUsKjUJV3z8Snpp57u+Vxtdw2qb27fvCwWlN6wu0C22klU8g3r1NgDFGLhpyyqYd7HFwVv+sgrk/80BStxBgG5TxALoYz+4toxZlIkNvGCPVdPu0rPOod+tV9xh0YNRs= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040375)(601004)(2401047)(5005006)(8121501046)(3002001)(10201501046)(6041248)(20161123562025)(20161123555025)(20161123564025)(20161123560025)(6072148); SRVR:CY1PR07MB2245; BCL:0; PCL:0; RULEID:; SRVR:CY1PR07MB2245; X-Microsoft-Exchange-Diagnostics: 1; CY1PR07MB2245; 4:Lu57wvTIK8zVCsMDT1p23z9H824llFBGxn4n2JiFvikwyLDicHceEAosVik1msxwEPtZ7hRX+Ld6pfHm1vBJTjXCH9DtN86x+NlmSQCjKsZwsHx2Y/8VYNEsup2T7v5CUlIPgElXh4OJqwQTALv2alS8veQ9FzqmkzHeapX7cSX1FAgD0vCurQ+QP5zrQViMKJMc3wON/g/bwNOqIq54OprJqykGrXITtFC4yK097BR86uChkQek3HpRmqouu1nma3+3d92isThfJ54sfz0fKhq5nw5lTZvqlgx2GCsxrKge1MD3FMNDP8xbI+/bMeiGXY5JUOlLQP/tJjMXjXnC77Cb+7UeyC0rzeXVwnJd+TB9Vl8n4ZgJNX1tVD4cYFpxjG1RW8g3dfp9z6cVpK+xNa384oiMstbLmwYitpJwoK4cqCDs2rpg4nMuimXaf4JVe8WRxUBNvvZyeijzVDXMh1tyqr3loTwrp+glpV7xyOD+se7t+VpkrBOH58ORWUEVbYaPdZLwGH65LgGpAv+HYP2m1uOJD6h4TQGziiB3FaDCcPkLXkkSPHPlU5tj4OHDBzEJL5bNdjQ7POe2dMiQjw== X-Forefront-PRVS: 0182DBBB05 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(4630300001)(6069001)(6009001)(7916002)(39450400003)(199003)(189002)(6116002)(5660300001)(305945005)(2906002)(7736002)(66066001)(68736007)(2950100002)(47776003)(50986999)(101416001)(7416002)(6666003)(76176999)(33646002)(48376002)(36756003)(189998001)(50466002)(92566002)(97736004)(4326007)(76506005)(42186005)(54906002)(106356001)(5001770100001)(8676002)(38730400001)(6496003)(6486002)(2201001)(39060400001)(5003940100001)(50226002)(105586002)(25786008)(3846002)(81166006)(81156014)(2101003); DIR:OUT; SFP:1101; SCL:1; SRVR:CY1PR07MB2245; H:localhost; FPR:; SPF:None; PTR:InfoNoRecords; A:1; MX:1; LANG:en; Received-SPF: None (protection.outlook.com: caviumnetworks.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; CY1PR07MB2245; 23:uactUXp9mh54Se9xRvz6KrPZ3fg49WUbNtb6+2b1Y?= =?us-ascii?Q?WHPhPfNUuuIAcnMriw1Uil5vZLysawfrLFPUtrBrJ9FLelj1MVnHI1LLAWI/?= =?us-ascii?Q?A7F0qriTZc7//DKKFpVNChGPxiE70CNYlj2O5ThYhAWKCeeefVfD4nxFCjdR?= =?us-ascii?Q?L27hsWk2RvOtXeOk2ZCbBfCLGZgzsHvUJA6xswvjAk1RNCA9RLoQRQD8KBE3?= =?us-ascii?Q?bqoscfBcLS13CUuOcH3gFY08yx7ap/6OSyPCSAmqwAh85WpqSP21wVq05KSo?= =?us-ascii?Q?rDezIsrbXwfj/KO/ZfF4qoPj3MgPIrXGP7IBm4uLDIsJCDNVaLaWwb3naj7A?= =?us-ascii?Q?oSVrHRvaQqsYJvpSJH+O/rJyvI8fmrnPA45jPNu0Hd118/lqK61v5Vn/msCs?= =?us-ascii?Q?guQ002XtAy5xgzdB5mCORoxXbR4gNWbyF7MOoh7c72aeO+hg13M+9QubQiVP?= =?us-ascii?Q?rzEBUUQWRrXvjHScfUTcgqKWO0p6ERq7b0diqp/W+oKwa2TbhCdBJViXhdMQ?= =?us-ascii?Q?sQqKec76gHBUTuuXqfgD7QYOGx5dkV5WB6O/Bk8zThB171CPShPucm+0yjp6?= =?us-ascii?Q?6fr/evj5SlkY8+ylNbIEaMKjAGL+4KZefDL5lLtLQiJS8bMwKmqTVy7fOFGJ?= =?us-ascii?Q?3S/rS0TP8uMxBmVrjMJHO4MfOZD3wlxhQhg2OO7eG9euq501x3wD+5e0Rjg9?= =?us-ascii?Q?NKgIJwYgtvWGfv6vEtK2ixzNEU05GF4eDmqZpxmaMDlHWss2XUhl94xrjnen?= =?us-ascii?Q?HHFqS2mVPv1H7Yv6e4epo7KAbQK0BXumyvRlzuTsfan0FzPHipklNnfW2fU1?= =?us-ascii?Q?Cu2YfFbpt5JWi+fRrLsQAbaHsebRrkQQ6Gr1FtsIPgljJBa8ywMnd234QIX5?= =?us-ascii?Q?0GakHNuUuGJAvFInBt1Z7A86ETgLpl+qoqPDgJMd8+9diCgxVSsvMMCxlfYn?= =?us-ascii?Q?w985nlLZvPT3XIq8vZ4E7kGzE1D5lUXFjMyZ3NIcOAEauMqkIJjRvcqQt40g?= =?us-ascii?Q?DVLazldl0mcadwcTXcan/7NaAnt3AzUakvngP12am0jwjO5BsNcZILvYotKt?= =?us-ascii?Q?PxwZevYKwHekJErpj0EPhgYhhJZh3+o8i/U3eV4/zRzXGHApFSR5QWC9QEHV?= =?us-ascii?Q?Y9IHhNABiRFaOc2ZeRbhG7vmK6ADbj7s9yqbuYu4sBgUDbr6+8OQw=3D=3D?= X-Microsoft-Exchange-Diagnostics: 1; CY1PR07MB2245; 6:EkbwhrTNvpFhKusycxd1eZrHyT3vTUOMP6V5Kc7pzg9g3BHxgq/0tBQG/Za2HE2xq1FTfUQ2rEe5LSzl539kcSfBgfcgrQ6PijMIMZca8QeCQmXICVUP+WakkAaIuaa026A0sXFEu4q6KXEKM4dbawZ6S6k7KJHDtU+Mwii2DyVCvP+q+CWNfYD4v3JWqla67EMlXytVyZ3LYrCzhXCBJC4WRqSuj3spPVJcrcvIQ27jjOCmH9DilOEvkwxXWE82sWzk4Abyc3ZVziaxgmDbr8DTfu3Hky6cVP4q7infV+blU09lEYgZ4CupYLCyQVH6DqTzaSHIZMi6EOc2f/Wb5tuJEoyG6j0fuXnTO+AqgWBQmx0AJKav3fIeSqmK2RP9IXiG6R4huYV7x1+eK4zc10yw7cgACILD5XQUlAM53oQ=; 5:B6FWONZHCNQ4yp7lhRDf2NhKX9KZJNDOoOXdo8jrbue0qU2rFF2o5ZfWMiwobCkN54o4WnhomelCJfxmsFOrE6dsfFzCd4vNd8qhz9U7K6EE9GcRD2f7AcpihaQ6cdeth1NyRkYSvHMcRNYHZlMvdg==; 24:htPj3oYSki6q/5u1nZZ+ANROSj0l/0Ic9JGvtqo7ctlX1nuFiq3NXfmD2hY2KxsmkleF0xxC6UNjSF7M/+F2nuKQFEZxeyoLl50NmXaaips= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; CY1PR07MB2245; 7:vX6ipCQsU6ubSJbbRCrrlsyXv4HFefWeuUzAcEadvzkNBUN//gVbVBGxqqrxonqNwdYbxZEvC0kJNJgH0SJctp5PavVO8UviCN+9Z5Uh6s7efm4wjTLWe+KQfk7NQbVNOYEVpHRdUord4hpPeUXIgcghaXHlsFJ8vIMdYVzruJsCEUdR7+ROmH6rN37Fbdqn7KftWluVV7Osy/uP14iflZvex9eoTd8T77d5bKw9360COS0Ak+UZkAybRSE98yQACow6sM04jFbmJD6348cMb5pJmznvTKqhb0++Y0MqAulEUAmMaAAwKOZs9SSuc2sUrBK+GLroTKElRSaMF+bNs0RoQ0doMcHYPx6DBhghZ1fhe+O95NU+HXjRgQ91e9BxGR+iXcHb2lFhTLhJNTCpX3I3EfL4RA9h13hlKB+ZrGELklsA/LP93IG8OG6HxbUu2oUHSFAfaa2Aig1tPA+uUA== X-OriginatorOrg: caviumnetworks.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Jan 2017 11:31:18.1576 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY1PR07MB2245 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20170109_033121_969219_37217BDC X-CRM114-Status: UNSURE ( 9.46 ) X-CRM114-Notice: Please train this message. X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Andrew Pinski , Heiko Carstens , Chris Metcalf , Yury Norov , philipp.tomsich@theobroma-systems.com, Joseph Myers , zhouchengming1@huawei.com, Steve Ellcey , Prasun.Kapoor@caviumnetworks.com, Andreas Schwab , agraf@suse.de, szabolcs.nagy@arm.com, geert@linux-m68k.org, Adam Borowski , manuel.montezelo@gmail.com, Chris Metcalf , Andrew Pinski , linyongting@huawei.com, klimov.linux@gmail.com, broonie@kernel.org, Bamvor Zhangjian , Maxim Kuvyrkov , Florian Weimer , Nathan_Lynch@mentor.com, Ramana Radhakrishnan , schwidefsky@de.ibm.com, davem@davemloft.net, christoph.muellner@theobroma-systems.com Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org X-Virus-Scanned: ClamAV using ClamSMTP Based on Andrew Pinski's patch-series. Signed-off-by: Yury Norov --- Documentation/arm64/ilp32.txt | 45 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 Documentation/arm64/ilp32.txt diff --git a/Documentation/arm64/ilp32.txt b/Documentation/arm64/ilp32.txt new file mode 100644 index 0000000..37fb523 --- /dev/null +++ b/Documentation/arm64/ilp32.txt @@ -0,0 +1,45 @@ +ILP32 AARCH64 SYSCALL ABI +========================= + +This document describes the ILP32 syscall ABI and where it differs +from the generic compat linux syscall interface. + +AARCH64/ILP32 userspace can pass garbage in the top halve of w0-w7 registers +(syscall arguments). So top 32 bits are zeroed for them. + +Comparing to AARCH32, AARCH64/ILP32 has 64-bit length of following types: +ino_t is u64 type. +off_t is s64 type. +blkcnt_t is s64 type. +fsblkcnt_t is u64 type. +fsfilcnt_t is u64 type. +rlim_t is u64 type. + +AARCH64/ILP32 ABI uses standard syscall table which can be found at +include/uapi/asm-generic/unistd.h, with the exceptions listed below. + +Syscalls which pass 64-bit values are handled by the code shared from +AARCH32 and pass that value as a pair. Next syscalls are affected: +fadvise64_64() +fallocate() +ftruncate64() +pread64() +pwrite64() +readahead() +sync_file_range() +truncate64() + +ptrace() syscall is handled by compat version. + +shmat() syscall is handled by non-compat handler as aarch64/ilp32 has no +limitation on 4-pages alignement for shared memory. + +statfs() and fstatfs() take the size of sfruct statfs as an argument. +It is calculated differently in kernel and user spaces. So AARCH32 handlers +are taken to handle it. + +struct rt_sigframe is redefined and contains struct compat_siginfo, +as compat syscalls expects, and struct ilp32_sigframe, to handle +AARCH64 register set and 32-bit userspace register representation. + +elf_gregset_t is taken from lp64 to handle registers properly.