diff options
author | Shawn Nematbakhsh <shawnn@chromium.org> | 2017-01-12 09:40:10 -0800 |
---|---|---|
committer | chrome-bot <chrome-bot@chromium.org> | 2017-03-16 00:11:41 -0700 |
commit | 3c4c83b8c3ec35af3a7ba19116e8467e9a09cc80 (patch) | |
tree | 3dc05b0e24a6c7840ce93d3069d4c998eaed08c3 /core | |
parent | 2a1cbf87821f311d98dd5d75707877b92b1d6df2 (diff) | |
download | chrome-ec-3c4c83b8c3ec35af3a7ba19116e8467e9a09cc80.tar.gz |
version: Store image size data in version struct
Store our image size (known at build time) in our version struct (now
renamed to image_data). This will allow us to more efficiently determine
the size of an image in a follow-up CL.
Note that compatibility is broken for old ROs that do not include this
CL.
BUG=chromium:577915
TEST=Verify on kevin + lars + lars_pd that stored image size matches
output of system_get_image_used() for both RO and RW images.
BRANCH=None
Change-Id: I7b8dc3ac8cf2df3184d0701a0e0ec8032de8d81b
Signed-off-by: Shawn Nematbakhsh <shawnn@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/450858
Commit-Ready: Shawn N <shawnn@chromium.org>
Tested-by: Shawn N <shawnn@chromium.org>
Reviewed-by: Randall Spangler <rspangler@chromium.org>
Diffstat (limited to 'core')
-rw-r--r-- | core/cortex-m/ec.lds.S | 8 | ||||
-rw-r--r-- | core/cortex-m0/ec.lds.S | 4 | ||||
-rw-r--r-- | core/nds32/ec.lds.S | 2 |
3 files changed, 11 insertions, 3 deletions
diff --git a/core/cortex-m/ec.lds.S b/core/cortex-m/ec.lds.S index 84071097ca..77db031076 100644 --- a/core/cortex-m/ec.lds.S +++ b/core/cortex-m/ec.lds.S @@ -79,7 +79,7 @@ SECTIONS #endif STRINGIFY(OUTDIR/core/CORE/init.o) (.text.vecttable) . = ALIGN(4); - __version_struct_offset = .; + __image_data_offset = .; KEEP(*(.rodata.ver)) . = ALIGN(4); @@ -353,6 +353,12 @@ SECTIONS ) >= (LOADADDR(.data) + SIZEOF(.data) - FW_OFF(SECTION)), "No room left in the flash") +#if defined(SECTION_IS_RO) && defined(NPCX_RO_HEADER) + __image_size = __hey_flash_used - FW_SIZE(RO_HDR); +#else + __image_size = __hey_flash_used; +#endif + #ifdef CONFIG_USB_RAM_SIZE .usb_ram (NOLOAD) : { __usb_ram_start = .; diff --git a/core/cortex-m0/ec.lds.S b/core/cortex-m0/ec.lds.S index e9cd726d7a..98840266e4 100644 --- a/core/cortex-m0/ec.lds.S +++ b/core/cortex-m0/ec.lds.S @@ -41,7 +41,7 @@ SECTIONS .text : { STRINGIFY(OUTDIR/core/CORE/init.o) (.text.vecttable) . = ALIGN(4); - __version_struct_offset = .; + __image_data_offset = .; KEEP(*(.rodata.ver)) . = ALIGN(4); @@ -240,6 +240,8 @@ SECTIONS ) >= (LOADADDR(.data) + SIZEOF(.data) - FW_OFF(SECTION)), "No room left in the flash") + __image_size = __hey_flash_used; + #ifdef CONFIG_USB_RAM_SIZE .usb_ram (NOLOAD) : { __usb_ram_start = .; diff --git a/core/nds32/ec.lds.S b/core/nds32/ec.lds.S index d497099169..0557cbca38 100644 --- a/core/nds32/ec.lds.S +++ b/core/nds32/ec.lds.S @@ -36,7 +36,7 @@ SECTIONS "__flash_dma_start has to be 4k-byte aligned"); KEEP(STRINGIFY(OUTDIR/core/CORE/init.o) (.text.vecttable)) . = ALIGN(4); - __version_struct_offset = .; + __image_data_offset = .; KEEP(*(.rodata.ver)) . = ALIGN(4); KEEP(STRINGIFY(OUTDIR/core/CORE/init.o) (.text.vectirq)) |