^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1) /* SPDX-License-Identifier: GPL-2.0 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3) #define RO_EXCEPTION_TABLE_ALIGN 16
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5) #include <asm-generic/vmlinux.lds.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6) #include <asm/page.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7) #include <asm/thread_info.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 8)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 9) #define ROMTOP 0x000000
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 10) #define RAMTOP 0x400000
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 11)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12) jiffies = jiffies_64 + 4;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14) ENTRY(_start)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16) SECTIONS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18) #if defined(CONFIG_ROMKERNEL)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 19) . = ROMTOP;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 20) .vectors :
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 21) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 22) _vector = . ;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 23) *(.vector*)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 24) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 25) #else
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 26) . = RAMTOP;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 27) _ramstart = .;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 28) . = . + CONFIG_OFFSET;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 29) #endif
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 30) _text = .;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 31) HEAD_TEXT_SECTION
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 32) .text : {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 33) _stext = . ;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 34) TEXT_TEXT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 35) SCHED_TEXT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 36) CPUIDLE_TEXT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 37) LOCK_TEXT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 38) #if defined(CONFIG_ROMKERNEL)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 39) *(.int_redirect)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 40) #endif
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 41) _etext = . ;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 42) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 43) RO_DATA(4)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 44) ROMEND = .;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 45) #if defined(CONFIG_ROMKERNEL)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 46) . = RAMTOP;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 47) _ramstart = .;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 48) #define ADDR(x) ROMEND
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 49) #endif
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 50) _sdata = . ;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 51) __data_start = . ;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 52) RW_DATA(0, PAGE_SIZE, THREAD_SIZE)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 53) #if defined(CONFIG_ROMKERNEL)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 54) #undef ADDR
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 55) #endif
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 56) . = ALIGN(0x4) ;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 57) __init_begin = .;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 58) INIT_TEXT_SECTION(4)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 59) INIT_DATA_SECTION(4)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 60) __init_end = .;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 61) _edata = . ;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 62) _begin_data = LOADADDR(.data);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 63) _sbss =.;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 64) BSS_SECTION(0, 0 ,0)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 65) _ebss =.;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 66) _ramend = .;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 67) _end = .;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 68) DISCARDS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 69) }