固件升级相关接触与request_firmware

本文探讨了固件升级的几种方法,重点介绍了Linux内核中的request_firmware函数,该函数用于请求用户空间提供固件映像。通过request_firmware,设备驱动可以与用户空间交互,实现固件的加载和验证。文章提到了固件加载的异步方式request_firmware_nowait,并解释了固件子系统如何利用sysfs和热插拔机制协同工作。最后,强调未经制造商许可不应发布设备固件。
摘要由CSDN通过智能技术生成

产品在送样调试后,测试发现的问题需要解决和优化,可以调试单样品,也可以整机调试(整机升级固件)。

作为一个驱动作者, 你可能发现你面对一个设备必须在它能支持工作前下载固件到它里面. 硬件市场的许多地方的竞争是如此得强烈, 以至于甚至一点用作设备控制固件的 EEPROM 的成本制造商都不愿意花费. 因此固件发布在随硬件一起的一张 CD 上, 并且操作系统负责传送固件到设备自身.

我不清楚有多少种固件升级方法,接触的几个是 *.h、*.i、*.bin、*.img 等。前两个放入驱动中,后两者提供接口由应用层调用执行(不知是否正确)。

有人说高通平台采用img方式,去了解了一下,发现此乃较严谨的商业做法趋向。

前两种的思路大致如下:

你可能想解决固件问题使用这样的一个声明

static char my_firmware[] = { 0x34, 0x78, 0xa4, ... }; 
但是, 这个方法几乎肯定是一个错误. 将固件编码到一个驱动扩大了驱动的代码, 使固件升级困难, 并且非常可能产生许可问题. 供应商不可能已经发布固件映象在 GPL 之下, 因此和 GPL-许可的代码混合常常是一个错误. 为此, 包含内嵌固件的驱动不可能被接受到主流内核或者被 Linux 发布者包含.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值