Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux kernel 在火箭芯片模拟器上引导Linux内核_Linux Kernel_Boot_Riscv_Chisel_Rocket Chip - Fatal编程技术网

Linux kernel 在火箭芯片模拟器上引导Linux内核

Linux kernel 在火箭芯片模拟器上引导Linux内核,linux-kernel,boot,riscv,chisel,rocket-chip,Linux Kernel,Boot,Riscv,Chisel,Rocket Chip,我正在尝试使用DefaultConfig配置在生成的火箭芯片仿真器中引导Linux内核 我正在按照中所示的步骤进行操作,并且通过以下方法成功地在ISA emulatorspike上构建和引导Linux内核: 编译riscv64未知linux gcc交叉编译器 构建Linux内核4.6(在 重建引导加载程序,将其指向内置的vmlinux映像(--带有效负载选项) 然而,当尝试在火箭芯片模拟器(由默认配置文件生成)中运行相同的bblbootloader时,内核不会启动,但进程会像陷入无限循环一样

我正在尝试使用DefaultConfig配置在生成的火箭芯片仿真器中引导Linux内核

我正在按照中所示的步骤进行操作,并且通过以下方法成功地在ISA emulatorspike上构建和引导Linux内核:

  • 编译
    riscv64未知linux gcc
    交叉编译器
  • 构建Linux内核4.6(在
  • 重建引导加载程序,将其指向内置的
    vmlinux
    映像(
    --带有效负载
    选项)
然而,当尝试在火箭芯片模拟器(由默认配置文件生成)中运行相同的
bbl
bootloader时,内核不会启动,但进程会像陷入无限循环一样不断旋转。没有给出信息性消息或错误,它只会消耗100%的CPU,直到用
Ctrl-C
击键(等待相当长的时间后)终止

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

我还没有找到任何关于任何人在芯片仿真器中引导内核的清晰文档(大多数使用FPGA),现在我怀疑这是否可能


有人能在模拟器中实现它吗?我是否遗漏了任何一步?任何提示都非常感谢。

对于“尝试在火箭芯片模拟器中运行相同的bbl引导加载程序”的完整命令行是什么?@osgx:如果在spike上引导内核的命令是
spike path/to/bbl
,那么我会像运行pk或任何裸机程序一样,从
emulator
目录运行
/emulator rocketchip DefaultConfig path/to/bbl
。我是否缺少verilator emulator上的任何选项?在关闭内核之前,您运行了多长时间?正如我所知,如果您想在emulator上运行内核,它将运行数小时并生成几GB大小的日志文件。提高速度的一种方法是调整指令跟踪(减少打印量将加快模拟)。你怎么知道它在自转呢。内核将尝试初始化虚拟空间。根据您的配置,初始化所有页面可能需要很长时间,这看起来就像是自循环。对于响应太晚,我深表歉意。测试整个周末都在运行,然后我用Ctrl-C终止了它。也就是说,没有生成输出,也没有记录输出,我是否缺少一个详细的选项来执行此操作?此外,在最后,我们转移到RocketChip repo的上一个提交,它允许我们在verilator中正确引导内核。其他配置(如DualCoreConfig)仍然存在同样的问题,是否有人使用存储库中提供的DualCoreConfig成功引导内核?核心是否被识别?非常感谢。