OpenBMC开发——qemu添加新设备及设备注册至I2C子系统

本文介绍了如何在QEMU中模拟添加硬件设备,如EEPROM、PCA9548和EMC1413,并将其注册到内核I2C子系统。详细步骤包括修改QEMU源码、设备初始化、通过命令行手动注册设备,以及通过OpenBMC的.dts文件实现自动注册。通过这两种方式,设备在软件层面得以正确识别和使用。

参考链接: https://zhuanlan.zhihu.com/p/565253278

qemu的作用是模拟出一个machine,一个machine上初始情况可以模拟出一些设备,如eeprom、i2c-mux、sensor等,这qemu的代码层面添加的设备,个人理解相当于真实的物理机器指定地址上焊接了相应的物理设备;

qemu添加物理设备后,注册到内核子系统的2种方式(手动和自动):
方式一:修改qemu源码模拟物理上添加了硬件设备,之后通过手动执行echo命令将设备在软件层面上注册到内核的子系统中;
方式二:修改qemu源码模拟物理上添加了硬件设备,之后通过修改OpenBMC项目中的.dts文件,配置对应的硬件,从而在系统启动后自动识别硬件设备并在软件层面注册到内核的子系统中;

Step1:修改qemu源码,模拟物理上添加硬件设备(修改qemu根目录下hw/arm/aspeed.c文件)实现一个自定义的aspeed_machine_my_bmc_class_init函数,作用上类似于新增并初始化一个machine;
在这里插入图片描述
实现一个自定义的my_i2c_init函数,作用上类似于在该machine上模拟出i2c总线上的物理设备(实际机器在i2c总线上地址0x52处焊接了i2c-mux物理设备pca9548,然后再i2c-mux的channel0的0x48地址上焊接了一个emc1413温度传感器芯片);
在这里插入图片描述
为qemu启动时可选machine添加了一个新的名为"my-bmc"的machine;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值