3

我正在尝试使用DefaultConfig配置在生成的 Rocket Chip 模拟器中启动 Linux 内核。

我正在按照RISCV 工具库 wiki中显示的步骤进行操作,并且我已经能够通过以下方式在 ISA 模拟器上成功构建和启动 Linux内核

  • 编译riscv64-unknown-linux-gcc交叉编译器。
  • 构建 Linux 内核 4.6(在riscv-linux 存储库中找到 RISC-V 风格)
  • 重建bbl引导加载程序,将其指向已构建的vmlinux映像(--with-payload选项)。

但是,当尝试在由默认配置文件生成的 Rocket Chip 模拟器中运行这个相同bbl的引导加载程序时,内核不会启动,但进程会继续旋转,就好像它陷入了无限循环一样。没有给出信息性消息或错误,它只消耗 100% 的 CPU,直到被Ctrl-C击键杀死(在等待相当长的时间之后)。

我相信我生成的 Rocket Chip 模拟器是正确的,因为我能够通过代理内核pk)甚至裸机运行交叉编译的程序而没有任何问题。此外,所有测试和基准测试均通过(make run-asm-testsmake run-bmark-tests)。

我无法找到任何人在芯片仿真器(大多数使用 FPGA)中启动内核的明确文档,此时我怀疑它是否可能。

有没有人能够在模拟器中实现它?我错过了任何步骤吗?任何提示表示赞赏。

4

0 回答 0