summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--platform/devices/MCIMX7D/linker/gcc/MCIMX7D_M4.ld12
-rw-r--r--platform/devices/MCIMX7D/startup/gcc/startup_MCIMX7D_M4.S31
2 files changed, 1 insertions, 42 deletions
diff --git a/platform/devices/MCIMX7D/linker/gcc/MCIMX7D_M4.ld b/platform/devices/MCIMX7D/linker/gcc/MCIMX7D_M4.ld
index 2feebd8..6699153 100644
--- a/platform/devices/MCIMX7D/linker/gcc/MCIMX7D_M4.ld
+++ b/platform/devices/MCIMX7D/linker/gcc/MCIMX7D_M4.ld
@@ -142,25 +142,15 @@ SECTIONS
PROVIDE_HIDDEN (__fini_array_end = .);
} > m_text
- __etext = .; /* define a global symbol at end of code */
- __DATA_ROM = .; /* Symbol is used by startup for data initialization */
-
- .data : AT(__DATA_ROM)
+ .data :
{
. = ALIGN(4);
- __DATA_RAM = .;
- __data_start__ = .; /* create a global symbol at data start */
*(.data) /* .data sections */
*(.data*) /* .data* sections */
KEEP(*(.jcr*))
. = ALIGN(4);
- __data_end__ = .; /* define a global symbol at data end */
} > m_data
- __DATA_END = __DATA_ROM + (__data_end__ - __data_start__);
- text_end = ORIGIN(m_text) + LENGTH(m_text);
- ASSERT(__DATA_END <= text_end, "region m_text overflowed with text and data")
-
/* Uninitialized data section */
.bss :
{
diff --git a/platform/devices/MCIMX7D/startup/gcc/startup_MCIMX7D_M4.S b/platform/devices/MCIMX7D/startup/gcc/startup_MCIMX7D_M4.S
index 2a97408..a518a15 100644
--- a/platform/devices/MCIMX7D/startup/gcc/startup_MCIMX7D_M4.S
+++ b/platform/devices/MCIMX7D/startup/gcc/startup_MCIMX7D_M4.S
@@ -219,37 +219,6 @@ Reset_Handler:
#ifndef __NO_SYSTEM_INIT
bl SystemInit
#endif
-/* Loop to copy data from read only memory to RAM. The ranges
- * of copy from/to are specified by following symbols evaluated in
- * linker script.
- * __etext: End of code section, i.e., begin of data sections to copy from.
- * __data_start__/__data_end__: RAM address range that data should be
- * copied to. Both must be aligned to 4 bytes boundary. */
-
- ldr r1, =__etext
- ldr r2, =__data_start__
- ldr r3, =__data_end__
-
-#if 1
-/* Here are two copies of loop implemenations. First one favors code size
- * and the second one favors performance. Default uses the first one.
- * Change to "#if 0" to use the second one */
-.LC0:
- cmp r2, r3
- ittt lt
- ldrlt r0, [r1], #4
- strlt r0, [r2], #4
- blt .LC0
-#else
- subs r3, r2
- ble .LC1
-.LC0:
- subs r3, #4
- ldr r0, [r1, r3]
- str r0, [r2, r3]
- bgt .LC0
-.LC1:
-#endif
#ifdef __STARTUP_CLEAR_BSS
/* This part of work usually is done in C library startup code. Otherwise,