我尝试使用 DefaultConfig 配置在生成的Rocket Chip模拟器中启动Linux内核。
我按照RISCV tools repository wiki中显示的步骤操作,并且我已经能够在ISA模拟器上成功构建和启动Linux内核 spike by:
riscv64-unknown-linux-gcc
交叉编译器。bbl
引导加载程序,将其指向构建的vmlinux
图像(--with-payload
选项)。然而,当尝试在默认配置文件生成的Rocket Chip模拟器中运行这个非常相同的bbl
引导加载程序时,内核不会启动但是进程一直在旋转,好像它被卡在一个无限循环。没有提供信息性消息或错误,它只消耗100%的CPU,直到Ctrl-C
击键被杀死(等待相当长的时间后)。
我相信我生成的Rocket Chip模拟器是正确的,因为我能够通过代理内核( pk )甚至裸机运行交叉编译的程序而没有任何问题。此外,所有测试和基准都通过了(make run-asm-tests
和make run-bmark-tests
)。
我还没有找到任何有关在芯片仿真器中启动内核的人的明确文档(大多数都使用FPGA),此时我怀疑它是否有可能。
有没有人能够在模拟器中实现它?我错过了任何一步吗?任何提示都表示赞赏。