您尚未登录。

楼主 # 2023-11-22 11:45:44

fxx
会员
注册时间: 2023-11-13
已发帖子: 5
积分: 25

利用USB启动mango pi t113的问题

背景:芯片是t113,开发板是mango pi,在windowPC上用虚拟机ubuntu,通过机箱USB连接开发板的OTG口。

目标:利用芯片的fel功能将uboot以及linux内核烧录进ram,实现不插卡、不用flash直接启动。

易错点:sunxi-tools已采用master分支,uboot在make时已选用此开发板对应的deconfig配置。

已经实现:虚拟机可以sunxi-fel version识别芯片,并可以实现sunxi-fel uboot u-boot-sunxi-with-spl.bin烧录(见附图111.png

问题:烧录结束后没有任何反馈,连接串口到windows没有uboot的开机提示(正常用TF卡启动有欢迎界面),虚拟机命令行也没有欢迎语句,怀疑未正常烧录/启动。

辅助信息:烧录命令执行后,包括“sunxi-fel version”在内的所有代码均显示超时,进行新的测试只能按实体reset按钮。本机RAM大小128M。本机插卡可以正常使用。sunxi-fel splflash-info代码显示Invalid command splflash-info。

可能原因:uboot版本不对所以无法执行?但是uboot的deconfig关于mangopi只有一个;uboot已经运行但是没有显示?我需要在uboot添加什么代码才能有反馈,或者串口?

第一次发帖,格式不正确请见谅:rolleyes::rolleyes:

离线

楼主 #1 2023-12-11 22:23:05

fxx
会员
注册时间: 2023-11-13
已发帖子: 5
积分: 25

Re: 利用USB启动mango pi t113的问题

现已解决,mangopi板上已成功用USB启动uboot并进入内核。

uboot部分:

1、在arch\arm\dts中寻找本芯片对应的dtsi文件,例如‘u-boot-master\arch\arm\dts\sunxi-d1s-t113-mangopi-mq-r.dtsi’,里面有‘serial3 = &uart3;’,然后在'arch\riscv\dts'的'sunxi-d1s-t113.dtsi'找到uart3对应PB6和PB7,把串口插在此处,运行sunxi-fel uboot ....bin即可识别到uboot开机界面。如果版本正确的话就可以顺利启动 uboot。

2、启动uboot后会发现很多网络错误,我们是用USB传输的,直接无视即可。

3、uboot界面顺利启动,下一步是参考 https://linux-sunxi.org/FEL/USBBoot 以及 https://whycan.com/t_2388.html ,得到结论,要想顺利启动linux内核,芯片(或者说sunxi-tools)需要提供uboot-with-spl.bin(进入uboot)、zimage、设备树dtb、脚本scr、和内核文件系统。

3.1、zimage需要寻找符合自己芯片的buildroot,本芯片所需的zimage在 https://codeload.github.com/mangopi-sbc/buildroot-mangopi-r/zip/refs/heads/master 下载的buildroot,按照readme提供的方式编译(约40min)就可以得到。

3.2、设备树也是本buildroot提供的。

3.3、脚本在晕哥的基础上修改,直接放到linux运行,把run.bat的命令复制出来即可(可以省5积分哈哈)主要改了文件名,地址没有改。地址依据在uboot的sunxi-common.h下,如果有用其他芯片的可以参考该头文件的规则进行修改,根据sunxi版本和ram大小略有不同。

3.4、内核文件系统也是从buildroot里拿的,找rootfs.cpio.gz.uImage。

4、环境变量有可能出错,解决方法参见 https://whycan.com/t_635.html ,也可以直接把这段咒语写进scr,需要先修改cmd,然后用工具生成scr。

kernel部分:

1、恭喜找齐五个正确的文件(这花去了我主要的时间),uboot报错的大部分的错误都是五个文件中某一个不正确导致的,尤其是rootfs.cpio.gz.uImage。

2、下一个困扰我很久的问题是串口显示start kernel ...但是没有下文,我注意到板上LED亮起,猜想内核已启动,猜想正确。原因是linux的console所用的串口和uboot的串口不同,需要修改。直接打开刚刚五个文件中准备传给kernel的dtb,把里面的uart对应的P??和P??,统统改为PB6和PB7就可以。dtb是二进制不能直接打开,找到对应的dts,修改后用dtc工具转化成新的dtb就可以。

至此进入内核linux系统,进行下一项任务(待续)

离线

#2 2023-12-13 15:49:15

billymc
会员
注册时间: 2020-05-26
已发帖子: 23
积分: 12.5

Re: 利用USB启动mango pi t113的问题

楼主后来解决了吗?我想通过RAM启动把SD NAND挂载成U盘烧录,没钱刷进内存运行到文件系统就不运行了

离线

#3 2024-01-29 18:29:17

夜里的星星
会员
注册时间: 2024-01-29
已发帖子: 2
积分: 2

Re: 利用USB启动mango pi t113的问题

@fxx 楼主这个问题是什么原因导致的?

”烧录命令执行后,包括“sunxi-fel version”在内的所有代码均显示超时,进行新的测试只能按实体reset按钮。“

我将uboot烧写进入后,可以使用。但是之后在sunxi-fel中输入任何东西都是  ”usb_bulk_send() ERROR -7: Operation timed“。

离线

楼主 #4 2024-01-29 20:53:24

fxx
会员
注册时间: 2023-11-13
已发帖子: 5
积分: 25

Re: 利用USB启动mango pi t113的问题

@夜里的星星
https://whycan.com/t_2388.html
参考这个贴,把启动内核需要的文件用命令一起传输过去就行了,可能sunxi-fel只能在BROM时期使用,uboot起来就用不了了。佐证:内核起来之后再在上位机使用sunxi-fel命令会显示“Allwinner devices not found”,内核彻底接管了开发板。

最近编辑记录 fxx (2024-01-29 20:54:05)

离线

#5 2024-02-03 09:59:38

夜里的星星
会员
注册时间: 2024-01-29
已发帖子: 2
积分: 2

Re: 利用USB启动mango pi t113的问题

@fxx
这个3.1步骤里面的内核,我编译之后运行没能跑起来,也被卡死在start kernel ...

按照步骤改了PB管脚也没用,然后用这个内核https://whycan.com/t_9231.html跑起来了,就很奇怪。

离线

页脚

工信部备案:粤ICP备20025096号 Powered by FluxBB

感谢为中文互联网持续输出优质内容的各位老铁们。 QQ: 516333132, 微信(wechat): whycan_cn (哇酷网/挖坑网/填坑网) service@whycan.cn