RK3568 学习笔记 : u-boot 1000M网络移植

        rk3568 rockchip 提供的 u-boot,默认的设备树是读取分区 resouce.img 镜像中的设备树文件,也就是 Linux 内核的设备树 dtb 文件,gmac 网络才能正常使用。如果使用 u-boot 默认的设备树,虽然可以正常的识别到 gmac 设备,但是无法 ping 通 PC 主机,也就是 u-boot 下网络功能并不能正常使用。

        正点原子 RK3568 开发板:RK3568 开发板
        虚拟机 ubuntu 20.04 单独编译 开发板提供的 u-boot,并去掉 rockchip 一些定制的选项,如使用 resouce 分区等。

相关的修改

在RK3568 开发板提供的SDK中,打开 /rk356x_linux/u-boot/ ,执行 make menuconfig 打开u-boot的配置界面,如下三项,默认是选择的,为了单独编译u-boot,先要把下面三项取消选择。

[ ] Enable support for rockchip resource image 
[ ] Rockchip vendor storage partition support
[ ] Using dtb from Kernel/resource for U-Boot

ARM architecture---

        取消后,重新编译 u-boot,发现启动后,提示 env emmc 异常,此时需要修改一下 common/board_r.c 文件
        rockchip 为了实现 env 通过读取 resource 分区,对初始化次序做了一些调整,需要调整回去,也就是 env 的初始化需要默认放在 mmc 初始化的后面

打天 rk3568_defconfig 

vim rk3568_defconfig

使能如下三项。

        默认是关闭 CONFIG_USING_KERNEL_DTB,所以造成了 initr_env 初始化放在了 initr_mmc 前面,改到后面,就可以正常的 初始化 env 了(env 保存在 emmc 中)

设备树问题

        如果使用 u-boot 默认的设备树,gmac 网络无法 ping 通,如果把 u-boot 下的整个设备树,替换为 rockchip Linux kernel 中的设备树,gmac 网络可以正常 ping 通,说明问题点在 设备树的配置上。
        u-boot 下的设备树,如果全部替换为 Linux kernel 的设备树,比较的麻烦,需要替换很多文件,包括 dt-bindings 头文件等,因为 u-boot 下的设备树与 Linux kernel 的设备树属于两套独立的设备树。Linux kernel 的设备树相对齐全与复杂一些。
        通过对比 u-boot 与 Linux kernel 的 设备树,发现 gmac 的相关的设置均一致,排除了 gmac 设置问题。
        那到底什么会影响 gmac 的网络功能呢? gmac 网络设备能正常的初始化,没有报错。

问题排查


        通过查看 开发板的原理图,发现了一些思路,电源管理,也就是 Linux 内核的设备树,与 rk809 pmic 的电源管理配置,而 u-boot 下,并没有这个配置。
        经过仔细查看原理图,发现 gmac 的 io 供电 vcc_1v8,来自 rk809 pmic 电源管理芯片,而这个 pmic 电源管理芯片,默认需要使用 i2c 通信配置,如果不配置,默认的配置,可能供电异常。

        既然要单独编译u-bo

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值