riscv/pgmap: Fix bug in kernel page directory init

The L2 table was not connected -> results in random crashes. Also add
missing data sync barrier to the end.
This commit is contained in:
Ville Juven 2024-05-02 13:55:19 +03:00 committed by Xiang Xiao
parent cc9c3ed80b
commit 0cd5689bcb

View File

@ -198,7 +198,7 @@ int up_addrenv_kmap_init(void)
next = g_kernel_pgt_pbase;
vaddr = CONFIG_ARCH_KMAP_VBASE;
for (i = 0; i < (ARCH_SPGTS - 1); i++)
for (i = 0; i < ARCH_SPGTS; i++)
{
/* Connect the static page tables */
@ -211,6 +211,10 @@ int up_addrenv_kmap_init(void)
addrenv->satp = mmu_satp_reg(g_kernel_pgt_pbase, 0);
/* When all is set and done, flush the data caches */
__DMB();
return OK;
}