Skip to content
  • 我的刀队's avatar
    feat: LoongArch 移植 - TLB refill handler + kerneltrap TLBR处理 + volatile修复 · c7c4aec8
    我的刀队 authored
    主要变更:
    - LoongArch内核启动框架 (start_la.S, entry_la.S, vm_la.c)
    - TLB refill异常处理 (tlbrefill_la.S, trap_la.c kerneltrap TLBR handler)
    - PTE格式修正: LA_PTE_G@bit6, MAT@bit4, NX@bit62, PTE2PA mask 0x0000FFFFFFFFF000
    - TLBIDX PS shift修正 (bit24), TLBRELO转换: PTE->TLB硬件格式
    - DMW0覆盖VSEG=0xF (KERNBASE), 移除DMW1避免kalloc冲突
    - RAMDISK_BASE移至PHYSTOP-8MB, combined.img加载
    - usys.pl适配LoongArch syscall, user_la.ld用户链接脚本
    - arch.h替代riscv.h供用户态使用
    - kerneltrap TLBR handler: page walk + TLBRELO转换 + invtlb + tlbfill
    - volatile修复tlb_lo0/tlb_lo1编译器优化导致的CSR写零问题
    - tlb_search_and_check验证helper, ISTLBR控制尝试
    - CSR诊断输出 (TLBRERA/ESTAT/TLBEHI readback)
    
    当前状态: TLBR #1 (ext2/fat32 mount)通过, TLBR #2+ (TRAMPOLINE va=3ffffff0b0)
    无限循环 - tlbfill后tlbsrch未命中, 需继续排查QEMU TLB search逻辑
    c7c4aec8