From 28fe1fab72fba19ad9e2fd75c8189cf4ac2e2121 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ula=C5=9F=20Sertan=20Keme=C3=A7?= Date: Thu, 10 Sep 2026 08:56:15 +0300 Subject: [PATCH] boards/arm/am67/t3-gem-o1: Load .data at its run address. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Nothing copies .data on a RAM/remoteproc image (CONFIG_BOOT_RUNFROMISRAM=y), so an LMA distinct from the VMA loads initialised data where the code never reads it. _sidata was taken before .init_section, putting the load address sizeof(.init_section) below the run address. That section is empty in the in-tree configurations, so the fault is latent today and this change is a no-op for them; it appears as soon as anything lands in .init_array. Assisted-by: Claude Code:claude-opus-4-8 Signed-off-by: Ulaş Sertan Kemeç --- boards/arm/am67/t3-gem-o1/scripts/sdram.ld | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/boards/arm/am67/t3-gem-o1/scripts/sdram.ld b/boards/arm/am67/t3-gem-o1/scripts/sdram.ld index a421a876780..1dc765fa0c2 100644 --- a/boards/arm/am67/t3-gem-o1/scripts/sdram.ld +++ b/boards/arm/am67/t3-gem-o1/scripts/sdram.ld @@ -101,7 +101,6 @@ SECTIONS } > ddr _etext = ABSOLUTE(.); /* End of code/read-only sections */ - _sidata = _etext; /* Start of initial values for .data (LMA) */ .init_section : { @@ -111,7 +110,7 @@ SECTIONS _einit = ABSOLUTE(.); } > ddr - .data : AT ( _sidata ) + .data : { _sdata = ABSOLUTE(.); *(.data .data.*)