[ARM开发] altera soc 设备树生成后 LINUX 无法BOOTING

smjusunn   2016-7-6 17:42 楼主
大家好,今天是第一次发帖,由于技术水平比较初级,又害怕说不清楚,也害怕没人回答有点小紧张, 现在我在弄ALTERA NANO的板子,是CYCLONE V 的。我改了HPS UART1 的相关配置,目的是让UART1 与FPGA模块连接使用,我生成了新的设备树,不太清楚该如何处置新的设备树,我只是简单的把SD卡里面原来的socfpga.dtb文件替换成了我的文件,不知道这样做对不对,但是最后在LINUX BOOTING 时,显示如下结果Hit any key to stop autoboot: 0 reading u-boot.scr 176 bytes read in 5 ms (34.2 KiB/s) ## Executing script at 02000000 reading de0_nano_soc.rbf 1164128 bytes read in 112 ms (9.9 MiB/s) altera_load: Failed with error code -4 ## Starting application at 0x3FF7D52C ... ## Application terminated, rc = 0x0 reading zImage 4111208 bytes read in 381 ms (10.3 MiB/s) reading socfpga.dtb 24076 bytes read in 9 ms (2.6 MiB/s) ## Starting application at 0x3FF7D52C ... ## Application terminated, rc = 0x0 ERROR: Did not find a cmdline Flattened Device Tree Could not find a valid device tree SOCFPGA_CYCLONE5 # 不知道是什么原因才会这样,请大神给于指教。另外,我看了网上的一个叫AN706的案例,https://www.altera.com/support/s ... fpga-interface.html, 他这个案例说是除了更新socfpga.dtb,还需要更新Preloader-mkping.bin还有u-boot.img文件,可问题是我的SD卡预先下载的官方文件里面只有de0_nano_soc.rbf , u_boot.scr , Zimage, socfpga.dtb这四个文件,就是说 根本没有preloader-mkping.bin 和u-boot.img文件 是不是意味着我只要更新设备树即可呢? 另外就是什么情况下要用到那些我没有的文件呢,这个问题如果比较复杂难解释可忽略~ 感谢大家的帮助和指导 有好心人建议说让我对比之前的设备树与我生成的区别,我也想过,但奇怪的是之前的设备树socfpga.dtb打开是乱码,而我生成的设备树如下
socfpga.dtb (23.51 KB)
(下载次数: 14, 2016-7-6 20:28 上传)
socfpga.dtb (23.51 KB)
(下载次数: 14, 2016-7-6 20:28 上传)
本帖最后由 smjusunn 于 2016-7-7 17:35 编辑

回复评论 (7)

你可以同先前的设备树比较一下,研究一下,就会发现问题所在,要不把你生存的设备树发上来,才能找出原因,这样没头没脑的叫人怎么分析
点赞  2016-7-6 17:54
引用: yupc123 发表于 2016-7-6 17:54
你可以同先前的设备树比较一下,研究一下,就会发现问题所在,要不把你生存的设备树发上来,才能找出原因, ...

之所以没有对比之前和生成之后的设备树,是因为原先在SD卡里的设备树文件打开后是乱码。而之后生成的设备树如下,我要实现的是使用UART1 到FPGA端,FPGA生成信号通过UART1传给HPS
socfpga.dtb (23.51 KB)
(下载次数: 15, 2016-7-6 19:26 上传)

socfpga.dtb (23.51 KB)
(下载次数: 15, 2016-7-6 19:26 上传)


点赞  2016-7-6 19:31
引用: smjusunn 发表于 2016-7-6 19:31
之所以没有对比之前和生成之后的设备树,是因为原先在SD卡里的设备树文件打开后是乱码。而之后生成的设备 ...

请上传dts格式的,再据你生成DTB的步骤写一下
流媒体后视镜fpga方案    
点赞  2016-7-7 08:08
引用: yupc123 发表于 2016-7-7 08:08 请上传dts格式的,再据你生成DTB的步骤写一下
原先的在SD卡里的设备树是根据手册步骤下载到SD卡里的文件,这个设备树本来就是DTB格式,我没有DTS格式的文件以下是我生成的DTS格式文件,相应的DTB在顶楼。
soc_system.dts (36.36 KB)
(下载次数: 13, 2016-7-7 17:40 上传)
soc_system.dts (36.36 KB)
(下载次数: 13, 2016-7-7 17:40 上传)
本帖最后由 smjusunn 于 2016-7-7 17:41 编辑
点赞  2016-7-7 17:19
Preloader-mkping.bin,u-boot.img,de0_nano_soc.rbf这个是fpga程序,socfpga.dtb这些都要更新, Preloader-mkping.bin 是引导程序,随着soc工程的更新,它是要更新的,这个程序初始化ARM核的引脚复用,DDR3参数,时钟等。初始化完后,加载u-boot.img到DDR3,然后运行u-boot.img u-boot.img是根据起动配置u_boot.scr,加载de0_nano_soc.rbf,Zimage, socfpga.dtb,因此这些文件的名字不能更改。要改的话,就要更新起动配置u_boot.scr。 这方面请看我的帖子preloader引导u-boot不成功,报Bad image with mismatched CRC的原因 Altera SOC FPGA起动步骤,是我经过一年多的实践总结出来的,现在拿出来同大家分享!! 本帖最后由 yupc123 于 2016-7-8 08:47 编辑
流媒体后视镜fpga方案    
点赞  2016-7-8 08:42
引用: smjusunn 发表于 2016-7-7 17:19
原先的在SD卡里的设备树是根据手册步骤下载到SD卡里的文件,这个设备树本来就是DTB格式,我没有DTS格式的 ...

你的设备树我看了,有问题,少了Clock参数,问题出在生成dts的命令有问题,这个命令不完全,不过你这个命令完全了,也不一定行,你还要学会修改设备树,不然的话只能照着开发板的工程做,
完全的命令如下
sopc2dts --input XXXX.sopcinfo \
--output aaa.dts \
--type dts \
--board ddd_system_board_info.xml \
--board ccc_system_board_info.xml \
--bridge-removal all \
--clocks
ddd_system_board_info.xml , ccc_system_board_info.xml 是你板子的参数,所以你要学会修改这两个文件,
流媒体后视镜fpga方案    
点赞  2016-7-8 08:58
引用: yupc123 发表于 2016-7-8 08:42
Preloader-mkping.bin,u-boot.img,de0_nano_soc.rbf这个是fpga程序,socfpga.dtb这些都要更新,
Preloade ...

非常感谢你的指导,回答的非常有帮助!
点赞  2016-7-22 21:07
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复