Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[aaelf64-morello] ELF markers to identify Morello purecap binaries #101

Merged
merged 3 commits into from
Jun 23, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
35 changes: 35 additions & 0 deletions aaelf64-morello/aaelf64-morello.rst
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,8 @@
.. _MORELLO_ARM: https://developer.arm.com/documentation/ddi0606/latest
.. |tlsdesc-url| replace:: http://www.fsfla.org/~lxoliva/writeups/TLS/paper-lk2006.pdf
.. _TLSDESC: http://www.fsfla.org/~lxoliva/writeups/TLS/paper-lk2006.pdf
.. |cherielf-url| replace:: https://github.com/CTSRD-CHERI/cheri-elf-gabi/blob/main/gabi.md
.. _CHERI_ELF: https://github.com/CTSRD-CHERI/cheri-elf-gabi/blob/main/gabi.md

Morello extensions to ELF for the Arm\ :sup:`®` 64-bit Architecture (AArch64)
*****************************************************************************
Expand Down Expand Up @@ -220,6 +222,8 @@ This document refers to, or is referred to by, the following documents.
+------------------+----------------------------+-----------------------------------------------------------------------------------+
| TLSDESC_ | |tlsdesc-url| | TLS Descriptors for Arm. Original proposal document. |
+------------------+----------------------------+-----------------------------------------------------------------------------------+
| CHERI_ELF_ | |cherielf-url| | CHERI ELF gABI Extensions |
+------------------+----------------------------+-----------------------------------------------------------------------------------+

Terms and abbreviations
-----------------------
Expand Down Expand Up @@ -252,6 +256,37 @@ the same name in `AAELF64`_:
Object Files
============

ELF Header
----------

The ELF header provides a number of fields that assist in interpretation of the
file. Most of these are specified in the base standard. The following fields
have Morello-specific meanings.

``e_flags``
The processor-specific flags are shown in the following table.

.. _Morello-specific e_flags:

.. class:: aaelf64-morello-elf-flags

.. table:: Morello-specific e_flags

+-----------------------------------+--------------------------------------------------------------+
| Value | Meaning |
+-----------------------------------+--------------------------------------------------------------+
| :code:`EF_AARCH64_CHERI_PURECAP` | The ELF file uses an ABI where all pointers are implemented |
| (:code:`0x00010000`) | using capabilities (Pure-capability ABI). |
+-----------------------------------+--------------------------------------------------------------+

Sections
--------

Special Sections
^^^^^^^^^^^^^^^^

A Morello toolchain can emit ELF Note sections in accordance to [CHERI_ELF_].

Symbol Table
------------

Expand Down
4 changes: 4 additions & 0 deletions tools/rst2pdf/rst2pdf-abi.style
Original file line number Diff line number Diff line change
Expand Up @@ -246,6 +246,10 @@ styles:
parent : table
colWidths: [ 25%, 30%, 45% ]

aaelf64-morello-elf-flags:
parent : table
colWidths: [ 33%, 67% ]

aaelf64-morello-mapping-symbols:
parent : table
colWidths: [ 25%, 75% ]
Expand Down