FreeCalypso > hg > freecalypso-sw
diff gsm-fw/finlink/ld-script.src @ 632:02d14592bb73
ramImage build change: load iram.text directly into IRAM w/o wasting XRAM
author | Michael Spacefalcon <msokolov@ivan.Harhan.ORG> |
---|---|
date | Mon, 01 Sep 2014 18:02:06 +0000 |
parents | aa93994e9f63 |
children | da72b51c0572 |
line wrap: on
line diff
--- a/gsm-fw/finlink/ld-script.src Mon Sep 01 17:04:19 2014 +0000 +++ b/gsm-fw/finlink/ld-script.src Mon Sep 01 18:02:06 2014 +0000 @@ -15,9 +15,11 @@ include(`../include/config.m4')dnl MEMORY { +ifelse(Buildmem-FLASH_BOOT_VIA_BOOTROM,FLASH-1, +` FLASH_OVERLAY : ORIGIN = 0, LENGTH = 0x2000') ifelse(Buildmem,FLASH, -` FLASH_OVERLAY : ORIGIN = 0, LENGTH = 0x2000 - FLASH : ORIGIN = 0x2000, LENGTH = CONFIG_FWFLASH_SIZE - 0x2000') +` FLASH : ORIGIN = FLASHIMAGE_BASE_ADDR, + LENGTH = CONFIG_FWFLASH_SIZE - FLASHIMAGE_BASE_ADDR') IRAM : ORIGIN = 0x00800000, LENGTH = CONFIG_IRAM_SIZE XRAM : ORIGIN = 0x01000000, LENGTH = CONFIG_XRAM_SIZE } @@ -27,6 +29,13 @@ ')dnl SECTIONS { +ifelse(Buildmem,FLASH,` + /* Flash boot entry point */ + flashboot.text FLASHIMAGE_BASE_ADDR : { + *(flashboot.text) + } > FLASH +')dnl + /* XIP code, going into flash or XRAM emulating flash */ xip.text : { *(xip.text*) @@ -49,10 +58,12 @@ *libgpf.iram.a:(.text*) *libc.a:(.text*) *libgcc.a:(.text*) - } > IRAM AT> Buildmem - __iramtext_ram_addr = ADDR(iram.text); + } > IRAM Put_in_flash +ifelse(Buildmem,FLASH, +` __iramtext_ram_addr = ADDR(iram.text); __iramtext_flash_addr = LOADADDR(iram.text); __iramtext_size = SIZEOF(iram.text); +')dnl /* all .rodata will stay in flash */ .rodata : { @@ -67,7 +78,7 @@ */ .data : { *(.data*) - } > XRAM AT> Buildmem + } > XRAM Put_in_flash ifelse(Buildmem,FLASH, ` __initdata_ram_addr = ADDR(.data); __initdata_flash_addr = LOADADDR(.data);