AM3354编译的v06.03版本SDK的UBOOT无法上网解决!

由于笔者使用的是AR8035芯片以太网接口是RGMII模式,所以后面根据这个模式进行修改SDK包的uboot,回顾之前我所使用的编译配置文件是 am335x_shc_netboot_defconfig

一. 修改SPL阶段的初始化代码

在uboot源码目录下:
vim arch/arm/mach-omap2/boot-common.c
找到函数 spl_board_init 把 am33xx_spl_board_init 函数注释。
在这里插入图片描述

二.修改uboot的第二阶段代码

vim board/bosch/shc/board.c
修改位置1:
注释代码句:
// writel(MII_MODE_ENABLE, &cdev->miisel);
// cpsw_slaves[0].phy_if = PHY_INTERFACE_MODE_MII;
并添加新的代码句:
writel((RGMII_MODE_ENABLE | RGMII_INT_DELAY), &cdev->miisel);
cpsw_slaves[0].phy_if = PHY_INTERFACE_MODE_RGMII;
主要是配置网口1的以太网接口为 RGMII 模式,SDK包默认是MII模式。
在这里插入图片描述
修改位置2:
board/bosch/shc/board.c 文件下面还有另一处要修改就是PHY芯片的地址,笔者的AR8035的PHY地址是4,因此改成4,SDK包默认是0。
在这里插入图片描述

修改位置3:
修改引脚的复用功能为RGMII :
vim board/bosch/shc/mux.c
增加下面的引脚配置结构体数组 :
static struct module_pin_mux rgmii1_pin_mux[] = {
{OFFSET(mii1_txen), MODE(2)}, /* RGMII1_TCTL /
{OFFSET(mii1_rxdv), MODE(2) | RXACTIVE}, /
RGMII1_RCTL /
{OFFSET(mii1_txd3), MODE(2)}, /
RGMII1_TD3 /
{OFFSET(mii1_txd2), MODE(2)}, /
RGMII1_TD2 /
{OFFSET(mii1_txd1), MODE(2)}, /
RGMII1_TD1 /
{OFFSET(mii1_txd0), MODE(2)}, /
RGMII1_TD0 /
{OFFSET(mii1_txclk), MODE(2)}, /
RGMII1_TCLK /
{OFFSET(mii1_rxclk), MODE(2) | RXACTIVE}, /
RGMII1_RCLK /
{OFFSET(mii1_rxd3), MODE(2) | RXACTIVE}, /
RGMII1_RD3 /
{OFFSET(mii1_rxd2), MODE(2) | RXACTIVE}, /
RGMII1_RD2 /
{OFFSET(mii1_rxd1), MODE(2) | RXACTIVE}, /
RGMII1_RD1 /
{OFFSET(mii1_rxd0), MODE(2) | RXACTIVE}, /
RGMII1_RD0 /
{OFFSET(mdio_data), MODE(0) | RXACTIVE | PULLUP_EN},/
MDIO_DATA /
{OFFSET(mdio_clk), MODE(0) | PULLUP_EN}, /
MDIO_CLK */
{-1},
};
在这里插入图片描述
修改位置4:
把enable_shc_board_pin_mux 函数里面的
configure_module_pin_mux(mii1_pin_mux);
改成
configure_module_pin_mux(rgmii1_pin_mux);
在这里插入图片描述

更改uboot部分环境变量避免UBOOT进入死循环不断加载内核!!
vim include/configs/am335x_shc.h

修改位置5:
//# define CONFIG_BOOT_RETRY_TIME 30
//# define CONFIG_RESET_TO_RETRY
这两句会导致UBOOT自动加载内核不成功重启,因此屏蔽注释掉!!

在这里插入图片描述

修改位置6:
注释 Network Boot 下面的自动加载内核脚本程序。避免UBOOT会自动进入内核加载。
在这里插入图片描述

修改位置7:
增加代码句:支持AR系列的PHY芯片如AR8031 、AR8035、AR8051
#define CONFIG_PHY_ATHEROS
在这里插入图片描述
注意上面仅仅修改了源码中的4个文件,笔者会在个人下载中提供这几个修改的文件,
如不想修改源码可以直接用我提供的代码替换然后重新编译uboot。

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
粉丝可以直接到我的主页免费下载修改的文件!!!!

三.重新编译UBOOT并测试网络

make CROSS_COMPILE=arm-linux-gnueabihf- distclean
make CROSS_COMPILE=arm-linux-gnueabihf- O=am335x_evm am335x_shc_netboot_defconfig
make CROSS_COMPILE=arm-linux-gnueabihf- O=am335x_evm
执行上面三个命令重新编译UBOOT,按照上一期的内容传输到板子运行。

u-boot-spl.bin大约55KB
传输后的效果
在这里插入图片描述
u-boot.img 文件大约 302KB
传输后的效果
在这里插入图片描述
修改IP并进行 ping 测试
在这里插入图片描述
在这里插入图片描述
tftp 测试 修改服务器IP然后TFTP拉取文件到DDR中!!
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
至此对官方SDK6.03的 UBOOT网卡的移植已经成功了。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值