RISC-V下SPL->OpenSBI-OPTEE-Linux启动流程如下: M-Mode:u-boot-spl加载u-boot.itb文件,启动OpenSBI。 M-Mode->S-Mode:OpenSBI通过mret跳转到OPTEE执行,启动TOS。 S-Mode->M-Mode:OPTEE启动完后,通过ecall返回到执行OpenSBI。 M-Mode->S-Mode:OpenSBI通过mre启动u-boot。 S-Mode:u-boot加载Kernel镜像,...
再打开一个终端,进入到fw_jump.elf的目录下: cd risc-v/opensbi/build/platform/generic/firmware/ 运行gdb: gdb-multiarch 注意,此时不要带fw_jump.elf,因为OpenSBI不在0地址运行,如果带fw_jump.elf参数,gdb会默认加载symbol到0地址,后面还需要删除这些symbol,否则会对调试有影响,比如设置断点会命中多个地址等 ...
再打开一个终端,进入到fw_jump.elf的目录下: cd risc-v/opensbi/build/platform/generic/firmware/ 运行gdb: gdb-multiarch 注意,此时不要带fw_jump.elf,因为OpenSBI不在0地址运行,如果带fw_jump.elf参数,gdb会默认加载symbol到0地址,后面还需要删除这些symbol,否则会对调试有影响,比如设置断点会命中多个地址等 ...
qemu-9.1.1/build/qemu-system-riscv64 -M virt -m 4G\-bios opensbi/build/platform/generic/firmware/fw_jump.bin\-kernel linux-6.11.4/arch/riscv/boot/Image\-initrd buildroot-2024.08.1/output/images/rootfs.cpio\-append"root=/dev/ram"\-display none -serial stdio\-device virtio-scsi-device\-...
编译完成后,生成了qemu-system-riscv64,你可以执行以下命令进行安装: sudo make install 02安装riscv64编译器 这里直接使用apt进行安装: sudo apt install gcc-riscv64-linux-gnu g++-riscv64-linux-gnu -y 03编译opensbi 从github上clone opensbi:
注意,其中的program就是vmlinux的路径,还有postRemoteConnectCommands要在连接之后先使用symbol-file命令将vscode启动gdb时默认加载的symbol清除掉,然后再使用add-symbol-file命令将各个段的symbol添加到指定位置(这些位置怎么计算来的,请观看RISC-V篇-qemu+gdb调试Linux kernel源码),否则后面debug时会有问题,比如,设置断点...
2.riscv64 qemu的编译 3.riscv64 交叉编译工具链准备 4.编译uboot 5.编译opensbi 6.编译linux 7.buildroot与rootfs 8.小结 1.本文说明 最近在学习riscv64架构的一些知识,并且利用做一些项目的机会去了解更多的不同种类的的芯片的架构设计。学习riscv的好处在于其架构是开源的,也就是任何人只要有兴趣和时间都...
今天教大家在QEMU模拟器上运行一个RISC-V Linux。 一个RISC-V Linux包括: opensbi linux 根文件系统 1、下载RISC-V工具链 自己下载工具链源码进行编译容易配错选项,我们使用编译好的工具链即可。 网址:https://toolchains.bootlin.com 这个网站提供了一些已经编译好的工具链,我们从中下载即可。
本文使用qemu运行riscv64 linux旨在与真实硬件板保持一致,因此不使用qemu提供的任何直接加载elf文件的方式启动,而是从头到尾均加载原始的bin文件程序给qemu,使其完整的执行opensbi、u-boot、kernel。如读者想利用qemu加载elf文件直接启动内核,是更为容易的,也不必再阅读本文。
2.riscv64 qemu的编译 3.riscv64 交叉编译工具链准备 4.编译uboot 5.编译opensbi 6.编译linux 7.buildroot与rootfs 8.小结 1.本文说明 最近在学习riscv64架构的一些知识,并且利用做一些项目的机会去了解更多的不同种类的的芯片的架构设计。学习riscv的好处在于其架构是开源的,也就是任何人只要有兴趣和时间都...