soc/qualcomm: Relocate translation tables to DRAM

On Qualcomm SoCs, the initial TTB is often placed in IMEM. During
ROMSTAGE, once DRAM is initialized and stable, the tables should be
moved to DRAM to ensure they remain accessible if IMEM is reclaimed
by other hardware blocks (like the ADSP).

Trigger mmu_relocate_ttb() at the end of the post-DRAM MMU
configuration flow.

BUG=b:436391478
TEST=Verify TTB moves to DRAM on Google/Quartz.

Debug logs:
```
[INFO ]  Relocating TTB: 0x14842000 -> 0x80010000 (offset 0x6b7ce000)
[INFO ]  TTB relocation is complete.
```

Change-Id: I123385e6cdd319c5ad4d3e7b266c506e7d2d5530
Signed-off-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91565
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
This commit is contained in:
Kapil Porwal 2026-03-05 14:26:29 +05:30 committed by Matt DeVillier
commit 6f7f27e6c1

View file

@ -82,4 +82,8 @@ void qc_mmu_dram_config_post_dram_init(size_t ddr_size)
if (REGION_SIZE(framebuffer))
mmu_config_range((void *)_framebuffer, REGION_SIZE(framebuffer), UNCACHED_RAM);
/* Do not call mmu_config_range() after this point. */
if (_preram_ttb != _postram_ttb)
mmu_relocate_ttb();
}