[libcpu][risc-v] fix:only map the 1GB space where the original code segment is located

This commit is contained in:
zhangjing 2025-04-03 10:30:30 +08:00 committed by Rbb666
parent 951bc922bc
commit 3922ec7e99
1 changed files with 4 additions and 5 deletions

View File

@ -691,11 +691,10 @@ void rt_hw_mem_setup_early(void)
* identical mapping,
* PC are still at lower region before relocating to high memory
*/
for (size_t i = 0; i < __SIZE(PPN0_BIT); i++)
{
early_pgtbl[i] = COMBINEPTE(ps, MMU_MAP_EARLY);
ps += L1_PAGE_SIZE;
}
rt_ubase_t pg_idx ;
ps = (rt_ubase_t)symb_pc & (~(L1_PAGE_SIZE - 1));
pg_idx = GET_L1(ps);
early_pgtbl[pg_idx] = COMBINEPTE(ps, MMU_MAP_EARLY);
/* relocate text region */
__asm__ volatile("la %0, _start\n" : "=r"(ps));