arch: arm: Change linker script to modify section mappings.
Change modify linker script to map lk text/code section and
data sections separately. This is requried, to make lk text
section mapping read only in mmu intialization.
Change-Id: I2bb00184acab1f5c471883cfa48e988b5b1df4d9
diff --git a/arch/arm/rules.mk b/arch/arm/rules.mk
index 7e3ace0..bfef682 100644
--- a/arch/arm/rules.mk
+++ b/arch/arm/rules.mk
@@ -150,7 +150,7 @@
$(BUILDDIR)/system-onesegment.ld: $(LOCAL_DIR)/system-onesegment.ld $(LK_TOP_DIR)/target/$(TARGET)/rules.mk .FORCE
@echo generating $@
@$(MKDIR)
- $(NOECHO)sed "s/%MEMBASE%/$(MEMBASE)/;s/%MEMSIZE%/$(MEMSIZE)/" < $< > $@
+ $(NOECHO)sed "s/%MEMBASE%/$(MEMBASE)/;s/%MEMSIZE%/$(MEMSIZE)/;s/%MEMRWOFF%/$(MEMRWOFF)/" < $< > $@
$(BUILDDIR)/system-twosegment.ld: $(LOCAL_DIR)/system-twosegment.ld $(LK_TOP_DIR)/target/$(TARGET)/rules.mk .FORCE
@echo generating $@
diff --git a/arch/arm/system-onesegment.ld b/arch/arm/system-onesegment.ld
index f2c62ac..7768853 100644
--- a/arch/arm/system-onesegment.ld
+++ b/arch/arm/system-onesegment.ld
@@ -37,6 +37,9 @@
.init : { *(.init) } =0x9090
.plt : { *(.plt) }
+
+ /* Use read/write memory offset for everything except code section */
+ . = %MEMRWOFF% ;
.rodata : {
*(.rodata .rodata.* .gnu.linkonce.r.*)
. = ALIGN(4);