Skip to content

Commit

Permalink
ARC: don't align ROM region end if not required
Browse files Browse the repository at this point in the history
This extra MPU alignment of RAMABLE_REGION is only required
if we put ROMABLE_REGION and RAMABLE_REGION into the same
(continuous) memory (i.e. SRAM) - so we won't get beginning of the
RAMABLE_REGION in the end of ROMABLE_REGION MPU aperture.

If we use different regions (ICCM & DCCM, FLASH & SRAM, etc...)
we don't need this extra MPU alignment.

Let's drop it to decrease ROM memory usage.

Signed-off-by: Eugeniy Paltsev <[email protected]>
Signed-off-by: Evgeniy Paltsev <[email protected]>
  • Loading branch information
evgeniy-paltsev authored and nashif committed Jun 14, 2023
1 parent 79433b0 commit e1efafa
Showing 1 changed file with 9 additions and 0 deletions.
9 changes: 9 additions & 0 deletions include/zephyr/arch/arc/v2/linker.ld
Original file line number Diff line number Diff line change
Expand Up @@ -17,13 +17,16 @@
#ifdef CONFIG_HARVARD
#define ROMABLE_REGION ICCM
#define RAMABLE_REGION DCCM
#define ROM_RAM_IN_SAME_REGION 0
#else
#if defined(CONFIG_XIP) && (FLASH_SIZE != 0)
#define ROMABLE_REGION FLASH
#define RAMABLE_REGION SRAM
#define ROM_RAM_IN_SAME_REGION 0
#else
#define ROMABLE_REGION SRAM
#define RAMABLE_REGION SRAM
#define ROM_RAM_IN_SAME_REGION 1
#endif
#endif

Expand Down Expand Up @@ -138,7 +141,13 @@ SECTIONS {
_ectors = .;
#endif /* CONFIG_CPP && !CONFIG_CPP_STATIC_INIT_GNU && __MWDT_LINKER_CMD__ */

/* This extra MPU alignment of RAMABLE_REGION is only required if we put ROMABLE_REGION and
* RAMABLE_REGION into the same (continuous) memory - otherwise we can get beginning of the
* RAMABLE_REGION in the end of ROMABLE_REGION MPU aperture.
*/
#if ROM_RAM_IN_SAME_REGION
MPU_ALIGN(ABSOLUTE(.) - __rom_region_start);
#endif
} GROUP_LINK_IN(ROMABLE_REGION)

__rodata_region_end = .;
Expand Down

0 comments on commit e1efafa

Please sign in to comment.