新手上路
- 积分
- 25
- 金钱
- 25
- 注册时间
- 2021-3-16
- 在线时间
- 7 小时
|
1金钱
各位大佬,小白请教下,请问我想使用st官方的5.10 Linux系统,参照正点原子的驱动开发指南教程内核移植部分,完成了移植,启动后发现/sys/class/remoteproc目录下无内容,启动中rproc部分报错:
- [ 2.892336] stm32-rproc 10000000.m4: wdg irq registered
- [ 2.897402] stm32-rproc 10000000.m4: error -EINVAL: failed to get mcu reset
- [ 2.903693] remoteproc remoteproc0: releasing m4
- [ 2.907858] stm32-rproc: probe of 10000000.m4 failed with error -22
复制代码 以下是截图:
还请大家帮忙,如何能够成功移植。
备注:
1. rproc参照正点原子的教程《【正点原子】STM32MP1异核通讯V1.0》,设备树已经使能
2. 设备树中关于rproc 的代码如下(位于dts目录下的stm32mp151.dtsi中,对比原子的5.4版本内核有所不同,尤其是增加了m4_rproc节点中reset-names的定义,怀疑和报错有关:
- mlahb: ahb {
- compatible = "st,mlahb", "simple-bus";
- #address-cells = <1>;
- #size-cells = <1>;
- ranges;
- dma-ranges = <0x00000000 0x38000000 0x10000>,
- <0x10000000 0x10000000 0x60000>,
- <0x30000000 0x30000000 0x60000>;
- m4_rproc: m4[url=home.php?mod=space&uid=383479]@10000000[/url] {
- compatible = "st,stm32mp1-m4";
- reg = <0x10000000 0x40000>,
- <0x30000000 0x40000>,
复制代码 3. 报错failed to get mcu reset我看了下源码,位置在drivers/remoteproc/stm32_rproc.c文件中,相关代码如下:
- ddata->rst = devm_reset_control_get(dev, "mcu_rst");
- if (IS_ERR(ddata->rst))
- return dev_err_probe(dev, PTR_ERR(ddata->rst),"failed to get mcu_reset\n");
- ddata->hold_boot = devm_reset_control_get(dev, "hold_boot");
- if (IS_ERR(ddata->hold_boot))
- return dev_err_probe(dev, PTR_ERR(ddata->hold_boot),"failed to get mcu reset\n");
复制代码 我感觉是程序没有获得设备树中reset-names的定义,但水平太低,不知道是不是这里的问题,还请大佬们帮忙看看如何解决。
小白一个,不明白的地方还有很多,请大佬们指教,谢谢大家了。
|
|