vmlinux-nommu.lds 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. /*
  2. * vmlinux.lds.S -- master linker script for m68knommu arch
  3. *
  4. * (C) Copyright 2002-2012, Greg Ungerer <gerg@snapgear.com>
  5. *
  6. * This linker script is equipped to build either ROM loaded or RAM
  7. * run kernels.
  8. */
  9. #if defined(CONFIG_RAMKERNEL)
  10. #define KTEXT_ADDR CONFIG_KERNELBASE
  11. #endif
  12. #if defined(CONFIG_ROMKERNEL)
  13. #define KTEXT_ADDR CONFIG_ROMSTART
  14. #define KDATA_ADDR CONFIG_KERNELBASE
  15. #define LOAD_OFFSET KDATA_ADDR + (ADDR(.text) + SIZEOF(.text))
  16. #endif
  17. #include <asm/page.h>
  18. #include <asm/thread_info.h>
  19. #include <asm-generic/vmlinux.lds.h>
  20. OUTPUT_ARCH(m68k)
  21. ENTRY(_start)
  22. jiffies = jiffies_64 + 4;
  23. SECTIONS {
  24. #ifdef CONFIG_ROMVEC
  25. . = CONFIG_ROMVEC;
  26. .romvec : {
  27. __rom_start = .;
  28. _romvec = .;
  29. *(.romvec)
  30. *(.data..initvect)
  31. }
  32. #endif
  33. . = KTEXT_ADDR;
  34. _text = .;
  35. _stext = .;
  36. .text : {
  37. HEAD_TEXT
  38. TEXT_TEXT
  39. SCHED_TEXT
  40. LOCK_TEXT
  41. *(.fixup)
  42. . = ALIGN(16);
  43. }
  44. _etext = .;
  45. #ifdef KDATA_ADDR
  46. . = KDATA_ADDR;
  47. #endif
  48. _sdata = .;
  49. RO_DATA_SECTION(PAGE_SIZE)
  50. RW_DATA_SECTION(16, PAGE_SIZE, THREAD_SIZE)
  51. _edata = .;
  52. EXCEPTION_TABLE(16)
  53. NOTES
  54. . = ALIGN(PAGE_SIZE);
  55. __init_begin = .;
  56. INIT_TEXT_SECTION(PAGE_SIZE)
  57. INIT_DATA_SECTION(16)
  58. PERCPU_SECTION(16)
  59. .m68k_fixup : {
  60. __start_fixup = .;
  61. *(.m68k_fixup)
  62. __stop_fixup = .;
  63. }
  64. .init.data : {
  65. . = ALIGN(PAGE_SIZE);
  66. __init_end = .;
  67. }
  68. BSS_SECTION(0, 0, 0)
  69. _end = .;
  70. STABS_DEBUG
  71. .comment 0 : { *(.comment) }
  72. /* Sections to be discarded */
  73. DISCARDS
  74. }