惊鸿7110支持asid吗?

惊鸿7110支持asid吗?

支持,具体看U74MC手册4.7章

在惊鸿7110的开发版上测试过了,s模式下asid写不进去。

这种问题没有任何细节让人无法回答

这个是打印信息:先写satp寄存器,然后读satp内容。
write satp_val(0x800010000004425b) to satp
read satp_val(0x800000000004425b) from satp

我明白你的意思了。我在vf2/jh7110和sifive unmatched/u74上面都测试过了,ASID是0-bit,也就是支持但宽度为0,可以看作是不支持。如果你写kernel的话必须按照标准先全部写1到ASID,然后再读出来,判断硬件到底实现了多少位。

这是Linux内核的log:

ASID allocator disabled (0 bits)

不支持asid的话,进程跨核执行的时候,一刷tlb,就刷掉所有核的tlb了。

这个没办法,确实是这样。而且更糟糕的是sifive的FU740核心有bug,CIP-1200,导致所有sfence.vma无法支持rs1 != 0 或者 rs2 != 0的情况,所以即使有asid的支持,flush的时候也会全部清掉。不过每个核心还是独立的,也就是flush这个hart不会影响其他hart。