diff options
Diffstat (limited to 'arch/arm/kernel/vmlinux.lds.h')
-rw-r--r-- | arch/arm/kernel/vmlinux.lds.h | 52 |
1 files changed, 6 insertions, 46 deletions
diff --git a/arch/arm/kernel/vmlinux.lds.h b/arch/arm/kernel/vmlinux.lds.h index cf9dabbdbde4..71281e08e1d4 100644 --- a/arch/arm/kernel/vmlinux.lds.h +++ b/arch/arm/kernel/vmlinux.lds.h @@ -115,61 +115,21 @@ PROVIDE(vector_fiq_offset = vector_fiq - ADDR(.vectors)); #define ARM_TCM \ - /* \ - * We align everything to a page boundary so we can \ - * free it after init has commenced and TCM contents have \ - * been copied to its destination. \ - */ \ - .tcm_start : { \ - . = ALIGN(PAGE_SIZE); \ - __tcm_start = .; \ - __itcm_start = .; \ - } \ - \ - /* \ - * Link these to the ITCM RAM \ - * \ - * Put VMA to the TCM address and LMA to the common RAM \ - * and we'll upload the contents from RAM to TCM and free \ - * the used RAM after that. \ - */ \ - .text_itcm ITCM_OFFSET : AT(__itcm_start) \ - { \ + __itcm_start = ALIGN(4); \ + .text_itcm ITCM_OFFSET : AT(__itcm_start - LOAD_OFFSET) { \ __sitcm_text = .; \ *(.tcm.text) \ *(.tcm.rodata) \ . = ALIGN(4); \ __eitcm_text = .; \ } \ + . = __itcm_start + SIZEOF(.text_itcm); \ \ - /* \ - * Reset the dot pointer, this is needed to create the \ - * relative __dtcm_start below (to be used as extern in code). \ - */ \ - . = ADDR(.tcm_start) + SIZEOF(.tcm_start) + SIZEOF(.text_itcm); \ - \ - .dtcm_start : { \ - __dtcm_start = .; \ - } \ - \ - /* \ - * TODO: add remainder of ITCM as well, \ - * that can be used for data! \ - */ \ - .data_dtcm DTCM_OFFSET : AT(__dtcm_start) \ - { \ - . = ALIGN(4); \ + __dtcm_start = .; \ + .data_dtcm DTCM_OFFSET : AT(__dtcm_start - LOAD_OFFSET) { \ __sdtcm_data = .; \ *(.tcm.data) \ . = ALIGN(4); \ __edtcm_data = .; \ } \ - \ - /* Reset the dot pointer or the linker gets confused */ \ - . = ADDR(.dtcm_start) + SIZEOF(.data_dtcm); \ - \ - /* End marker for freeing TCM copy in linked object */ \ - .tcm_end : AT(ADDR(.dtcm_start) + SIZEOF(.data_dtcm)){ \ - . = ALIGN(PAGE_SIZE); \ - __tcm_end = .; \ - } + . = __dtcm_start + SIZEOF(.data_dtcm); |