使用QEMU仿真AMI BMC固件

在OpenBMC的QEMU仿真环境中,遇到AST2500 ami固件仿真卡在MMC初始化的问题。通过注释uboot中mmc相关代码使UBOOT能继续仿真,但内核初始化阶段的ast_sd_init仍会失败。解决方案是注释linux/drivers/mmc/host/sdhci-ast.c中的函数和变量,仅保留基本打印,从而成功推进仿真流程。
摘要由CSDN通过智能技术生成

玩openbmc的都知道,仿真对开发起到了很大的辅助作用,不仅在前端开发还有内核调试等,同时还省去很多来回烧写固件所花费的时间,当使用AST2500的ami固件仿真会出现如下情况,启动脚本如下

#!/bin/bash
/home/openbmc/qemu/build/arm-softmmu/qemu-system-arm -m 256 -M romulus-bmc -nographic -drive file=/home/openbmc/EPC621D8A_P1.60.00.ima,format=raw,if=mtd -net nic -net user,hostfwd=:192.168.0.106:2222-:22,hostfwd=:192.168.0.106:2443-:443,hostname=qemu

仿真结果
卡在MMC:这个位置不再继续执行,所以考虑应该是仿真没有mmc设备导致,所以注释掉uboot中mmc初始化代码,位于uboot/common/board_r.c

uboot
现在uboot可以继续仿真下去,但是在内核初始化ast_sd_init依然会出问题
在这里插入图片描述

在这里插入图片描述
此时我们只需要注释linux/drivers/mmc/host/sdhci-ast.c的所有函数还有变量,仅留下像hello.ko一样的打印即可,仿真即可继续往下运行。

QEMU 是一个功能强大的虚拟化软件,可以用于模拟多种开发板,包括阿波罗开发板。要在 QEMU 中进行阿波罗开发板的仿真,你可以按照以下步骤进行操作: 步骤 1: 下载 QEMU 源代码 首先,你需要从 QEMU 官方源代码库(https://www.qemu.org/download/)下载最新版本的 QEMU 源代码。 步骤 2: 配置和编译 QEMU 解压下载的 QEMU 源代码,并进入解压后的目录。然后,执行以下命令来配置和编译 QEMU: ```bash ./configure --target-list=arm-softmmu make ``` 这将为 ARM 架构的软件模拟器构建 QEMU。 步骤 3: 获取阿波罗开发板固件 获取适用于阿波罗开发板的固件镜像文件。这是一个包含阿波罗开发板引导加载程序和应用程序的二进制文件。 步骤 4: 启动 QEMU 阿波罗开发板仿真 使用以下命令启动 QEMU 并加载阿波罗开发板固件镜像: ```bash ./qemu-system-arm -M apollon -kernel path/to/firmware.bin ``` 确保将 `path/to/firmware.bin` 替换为实际的阿波罗开发板固件镜像文件路径。 这将启动 QEMU 的阿波罗开发板仿真,并加载固件镜像以在仿真环境中运行。 通过上述步骤,你可以使用 QEMU 进行阿波罗开发板的仿真。请注意,QEMU 是一个软件模拟器,它模拟了硬件设备的行为,但并不能完全模拟实际硬件的所有特性和行为。因此,在进行实际的阿波罗开发板开发时,可能需要使用实际的硬件开发板来进行测试和调试。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值