1 1.1 christos /* Xilinx MicroBlaze support for BFD. 2 1.1 christos 3 1.1.1.10 christos Copyright (C) 2009-2026 Free Software Foundation, Inc. 4 1.1 christos 5 1.1 christos This file is part of BFD, the Binary File Descriptor library. 6 1.1 christos 7 1.1 christos This program is free software; you can redistribute it and/or modify 8 1.1 christos it under the terms of the GNU General Public License as published by 9 1.1 christos the Free Software Foundation; either version 3 of the License, or 10 1.1 christos (at your option) any later version. 11 1.1 christos 12 1.1 christos This program is distributed in the hope that it will be useful, 13 1.1 christos but WITHOUT ANY WARRANTY; without even the implied warranty of 14 1.1 christos MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 1.1 christos GNU General Public License for more details. 16 1.1 christos 17 1.1 christos You should have received a copy of the GNU General Public License 18 1.1 christos along with this program; if not, write to the Free Software 19 1.1 christos Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 20 1.1 christos 02110-1301, USA. */ 21 1.1 christos 22 1.1 christos /* This file holds definitions specific to the MICROBLAZE ELF ABI. */ 23 1.1 christos 24 1.1 christos #ifndef _ELF_MICROBLAZE_H 25 1.1 christos #define _ELF_MICROBLAZE_H 26 1.1 christos 27 1.1 christos #include "elf/reloc-macros.h" 28 1.1 christos 29 1.1 christos /* Relocations. */ 30 1.1 christos START_RELOC_NUMBERS (elf_microblaze_reloc_type) 31 1.1 christos RELOC_NUMBER (R_MICROBLAZE_NONE, 0) 32 1.1 christos RELOC_NUMBER (R_MICROBLAZE_32, 1) 33 1.1 christos RELOC_NUMBER (R_MICROBLAZE_32_PCREL, 2) 34 1.1 christos RELOC_NUMBER (R_MICROBLAZE_64_PCREL, 3) 35 1.1 christos RELOC_NUMBER (R_MICROBLAZE_32_PCREL_LO, 4) 36 1.1 christos RELOC_NUMBER (R_MICROBLAZE_64, 5) 37 1.1 christos RELOC_NUMBER (R_MICROBLAZE_32_LO, 6) 38 1.1 christos RELOC_NUMBER (R_MICROBLAZE_SRO32, 7) 39 1.1 christos RELOC_NUMBER (R_MICROBLAZE_SRW32, 8) 40 1.1 christos RELOC_NUMBER (R_MICROBLAZE_64_NONE, 9) 41 1.1 christos RELOC_NUMBER (R_MICROBLAZE_32_SYM_OP_SYM, 10) 42 1.1 christos RELOC_NUMBER (R_MICROBLAZE_GNU_VTINHERIT, 11) 43 1.1 christos RELOC_NUMBER (R_MICROBLAZE_GNU_VTENTRY, 12) 44 1.1 christos RELOC_NUMBER (R_MICROBLAZE_GOTPC_64, 13) /* PC-relative GOT offset. */ 45 1.1 christos RELOC_NUMBER (R_MICROBLAZE_GOT_64, 14) /* GOT entry offset. */ 46 1.1 christos RELOC_NUMBER (R_MICROBLAZE_PLT_64, 15) /* PLT offset (PC-relative). */ 47 1.1 christos RELOC_NUMBER (R_MICROBLAZE_REL, 16) /* Adjust by program base. */ 48 1.1 christos RELOC_NUMBER (R_MICROBLAZE_JUMP_SLOT, 17) /* Create PLT entry. */ 49 1.1 christos RELOC_NUMBER (R_MICROBLAZE_GLOB_DAT, 18) /* Create GOT entry. */ 50 1.1 christos RELOC_NUMBER (R_MICROBLAZE_GOTOFF_64, 19) /* Offset relative to GOT. */ 51 1.1 christos RELOC_NUMBER (R_MICROBLAZE_GOTOFF_32, 20) /* Offset relative to GOT. */ 52 1.1 christos RELOC_NUMBER (R_MICROBLAZE_COPY, 21) /* Runtime copy. */ 53 1.1.1.2 christos RELOC_NUMBER (R_MICROBLAZE_TLS, 22) /* TLS Reloc */ 54 1.1.1.2 christos RELOC_NUMBER (R_MICROBLAZE_TLSGD, 23) /* TLS General Dynamic */ 55 1.1.1.2 christos RELOC_NUMBER (R_MICROBLAZE_TLSLD, 24) /* TLS Local Dynamic */ 56 1.1.1.2 christos RELOC_NUMBER (R_MICROBLAZE_TLSDTPMOD32, 25) /* TLS Module ID */ 57 1.1.1.2 christos RELOC_NUMBER (R_MICROBLAZE_TLSDTPREL32, 26) /* TLS Offset Within TLS Block */ 58 1.1.1.2 christos RELOC_NUMBER (R_MICROBLAZE_TLSDTPREL64, 27) /* TLS Offset Within TLS Block */ 59 1.1.1.2 christos RELOC_NUMBER (R_MICROBLAZE_TLSGOTTPREL32, 28) /* TLS Offset From Thread Pointer */ 60 1.1.1.2 christos RELOC_NUMBER (R_MICROBLAZE_TLSTPREL32, 29) /* TLS Offset From Thread Pointer */ 61 1.1.1.5 christos RELOC_NUMBER (R_MICROBLAZE_TEXTPCREL_64, 30) /* PC-relative TEXT offset. */ 62 1.1.1.5 christos RELOC_NUMBER (R_MICROBLAZE_TEXTREL_64, 31) /* TEXT Entry offset 64-bit. */ 63 1.1.1.5 christos RELOC_NUMBER (R_MICROBLAZE_TEXTREL_32_LO, 32) /* TEXT Entry offset 32-bit. */ 64 1.1.1.8 christos RELOC_NUMBER (R_MICROBLAZE_32_NONE, 33) 65 1.1 christos END_RELOC_NUMBERS (R_MICROBLAZE_max) 66 1.1 christos 67 1.1 christos /* Global base address names. */ 68 1.1 christos #define RO_SDA_ANCHOR_NAME "_SDA2_BASE_" 69 1.1 christos #define RW_SDA_ANCHOR_NAME "_SDA_BASE_" 70 1.1 christos 71 1.1 christos /* Section Attributes. */ 72 1.1 christos #define SHF_MICROBLAZE_NOREAD 0x80000000 73 1.1 christos 74 1.1 christos #endif /* _ELF_MICROBLAZE_H */ 75