vmlinux.lds.S 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. /*
  2. * AVR32 linker script for the Linux kernel
  3. *
  4. * Copyright (C) 2004-2006 Atmel Corporation
  5. *
  6. * This program is free software; you can redistribute it and/or modify
  7. * it under the terms of the GNU General Public License version 2 as
  8. * published by the Free Software Foundation.
  9. */
  10. #define LOAD_OFFSET 0x00000000
  11. #include <asm-generic/vmlinux.lds.h>
  12. #include <asm/cache.h>
  13. #include <asm/thread_info.h>
  14. OUTPUT_FORMAT("elf32-avr32", "elf32-avr32", "elf32-avr32")
  15. OUTPUT_ARCH(avr32)
  16. ENTRY(_start)
  17. /* Big endian */
  18. jiffies = jiffies_64 + 4;
  19. SECTIONS
  20. {
  21. . = CONFIG_ENTRY_ADDRESS;
  22. .init : AT(ADDR(.init) - LOAD_OFFSET) {
  23. _text = .;
  24. __init_begin = .;
  25. _sinittext = .;
  26. *(.text.reset)
  27. INIT_TEXT
  28. /*
  29. * .exit.text is discarded at runtime, not
  30. * link time, to deal with references from
  31. * __bug_table
  32. */
  33. EXIT_TEXT
  34. _einittext = .;
  35. . = ALIGN(4);
  36. __tagtable_begin = .;
  37. *(.taglist.init)
  38. __tagtable_end = .;
  39. }
  40. INIT_DATA_SECTION(16)
  41. . = ALIGN(PAGE_SIZE);
  42. __init_end = .;
  43. .text : AT(ADDR(.text) - LOAD_OFFSET) {
  44. _evba = .;
  45. _stext = .;
  46. *(.ex.text)
  47. *(.irq.text)
  48. KPROBES_TEXT
  49. TEXT_TEXT
  50. SCHED_TEXT
  51. CPUIDLE_TEXT
  52. LOCK_TEXT
  53. *(.fixup)
  54. *(.gnu.warning)
  55. _etext = .;
  56. } = 0xd703d703
  57. EXCEPTION_TABLE(4)
  58. RODATA
  59. .data : AT(ADDR(.data) - LOAD_OFFSET) {
  60. _data = .;
  61. _sdata = .;
  62. INIT_TASK_DATA(THREAD_SIZE)
  63. PAGE_ALIGNED_DATA(PAGE_SIZE);
  64. CACHELINE_ALIGNED_DATA(L1_CACHE_BYTES)
  65. *(.data.rel*)
  66. DATA_DATA
  67. CONSTRUCTORS
  68. _edata = .;
  69. }
  70. BSS_SECTION(0, 8, 8)
  71. _end = .;
  72. DWARF_DEBUG
  73. /* When something in the kernel is NOT compiled as a module, the module
  74. * cleanup code and data are put into these segments. Both can then be
  75. * thrown away, as cleanup code is never called unless it's a module.
  76. */
  77. DISCARDS
  78. }