Skip to content

Commit 167a3b6

Browse files
author
Andy Bui
committed
elfloader: unconditionally set PTE shareability to
Inner Shareable. We noticed a lot of instability with the Jetson Orin port when running in UP + HYP mode. Setting the shareability to Inner Shareable (IS) unconditionally is the fix, however, we're unable to find the exact line in Arm documentation that explains why this is the case. Potential theory: there are other agents on the Jetson Orin that require cache coherency and live in the IS domain. Being more permissive with memory resolves the prefetching and translation faults we were getting. For reference, Arm states "Arm expects operating systems to mark the majority of DRAM memory as Normal Write-back cacheable, Inner shareable" (102376_0200_01_en version 2). Signed-off-by: Andy Bui <andy.bui@nio.io>
1 parent 00d11e6 commit 167a3b6

File tree

1 file changed

+0
-2
lines changed
  • elfloader-tool/src/arch-arm/64

1 file changed

+0
-2
lines changed

elfloader-tool/src/arch-arm/64/mmu.c

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -156,9 +156,7 @@ static inline uint64_t make_pte(paddr_t pa, uint8_t mem_attr_index)
156156
return xn
157157
| mask_pa(pa)
158158
| BIT(10) /* access flag */
159-
#if CONFIG_MAX_NUM_NODES > 1
160159
| (INNER_SHAREABLE << 8)
161-
#endif
162160
| (mem_attr_index << 2)
163161
| BIT(0); /* valid page/block mapping */
164162
}

0 commit comments

Comments
 (0)