我下载了am335x最新的开发套件源码am335x-evm-sdk-src-01.00.00.03.tar.gz,里面内核是3.14.43版本,使用的编译器是gcc-linaro-arm-linux-gnueabihf-4.7-2013.03-20130313_linux,用buildroot制作了自己的文件系统。系统启动后,会出现以下问题:
[ 62.246381] remoteproc0:failed to load am335x-pm-firmware.elf
[ 62.252680] remoteproc0: powering up wkup_m3
[ 62.272740] wkup_m3 44d00000.wkup_m3: rproc_boot failed
如果挂载的是从SDK套件提供的文件系统,则没有该问题,然后我发现该文件在/lib/firmware下,于是我将整个firmware文件放在了我的文件系统相应目录下,但我自己的文件系统依然出现该问题。我想请教一下,这是不是制作文件系统的编译器不同导致的?如果我要使用自己的文件系统,应该如何获得相应的am335x-pm-firmware.elf文件呢?急,求回复,谢谢!
Jian Zhou:
应该是编译器不同导致的问题。请问为什么不用我们的SDK自带的文件系统呢?
Dechao Chen:
回复 Jian Zhou:
非常感谢您的回复!我们的产品早就做好了,在3.2版本的内核上运行,文件系统是根据我们的需求做的(搭建好了各种服务)。目前想升级一下内核版本,增加一些功能,用你们的文件系统需要修改的地方太多,很麻烦。您能告诉我如何得到符合自己的am335x-pm-firmware.elf文件吗?或者,如果没有这个文件,对系统有什么影响?
Jian Zhou:
回复 Dechao Chen:
这个文件是启动后加在到芯片内部M3用于做睡眠唤醒的,你的产品需要睡眠唤醒功能么?
你之前用的3.2内核,也是自己做的文件系统然后把这个elf文件从TI SDK的文件系统中拷贝过去的么?
Dechao Chen:
回复 Jian Zhou:
睡眠唤醒功能是需要的。3.2版本的用的是am335x-pm-firmware.bin文件,并且是直接编译到内核中的,很显然新版本的内核对这一块做了升级。话说TI有没有提供这方面的说明?我找了很久也没找到。如果是加载到M3的,那应该跟编译器无关吧?毕竟不是在内核里执行的,那我做的文件系统或者内核要怎么修改才能解决这个问题呢?
Jian Zhou:
回复 Dechao Chen:
那你现在编译你自己的文件系统用的是TI最新SDK里的交叉编译工具么?
mitch liu:
回复 Jian Zhou:
遇到类似问题:
我从 http://arago-project.org/git/projects/?p=am33x-cm3.git;a=shortlog;h=refs/heads/master 下载编译了,放进文件系统。
会出现resource table 解析出错,
[ 5.181791] remoteproc0: wkup_m3 is available[ 5.186971] remoteproc0: Note: remoteproc is still under development and considered experimental.[ 5.196379] remoteproc0: THE BINARY FORMAT IS NOT YET FINALIZED, and backward compatibility isn't yet guaranteed.[ 5.209364] remoteproc0: rproc_fw_config_virtio //自己加的打印信息[ 5.214440] remoteproc0: can not find resource table //自己加的打印信息[ 5.221569] remoteproc0: powering up wkup_m3[ 5.245536] wkup_m3 44d00000.wkup_m3: rproc_boot failed
static void rproc_fw_config_virtio(const struct firmware *fw, void *context){ struct rproc *rproc = context; struct resource_table *table; int ret, tablesz;
dev_err(&rproc->dev,"rproc_fw_config_virtio \n");//mitch 08 24 if (rproc_fw_sanity_check(rproc, fw) < 0) goto out;
/* look for the resource table */ table = rproc_find_rsc_table(rproc, fw, &tablesz); if (!table) { dev_err(&rproc->dev,"can not find resource table \n");//mitch 08 24 goto out; }
elf 文件编译后需要加其它信息吗?帮忙分析。
Dechao Chen:
回复 Jian Zhou:
用的交叉编译器和编译内核的一样,都是gcc-linaro-arm-linux-gnueabihf-4.7-2013.03-20130313_linux,这个是TI官方推荐的吧
zhifu chen:
回复 Jian Zhou:
您好,请问.ti-processor-sdk-linux-335x-evm-01.00.00.03/filesystem/tisdk-rootfs-image-am335x-evm.tar.gz 这个SDK包用的哪个版本的交叉编译器
Yaoming Qin:
回复 zhifu chen:
.ti-processor-sdk-linux-335x-evm-01.00.00.03 这个里面有自带的编译器,您给出的这个是个文件系统压缩包
zhifu chen:
回复 Yaoming Qin:
很抱歉,自带的编译器没有找到啊,还有编译器版本和QT库版本有关吗,谢谢啊