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);