开发设备imx6ull miniV2.2版本
在上一章节中我们已经讲解过UBOOT开发移植与LCD分辨率修改,这节我们讲解网络驱动配置,前提是需要电脑与虚拟机互通,我将单独在写一片三端互通的文章。
那么修改网络驱动我们需要先修改网口地址,打开原理图可以看到mini只有一个网口为ENET2
ENET2需要外接一个PHY芯片来实现网络通信功能,也就是内部MAC+外部PHY芯片来实现。在上个原理图我们可以看到PHY ADDR:0X01那么代码中默认的也为0X1我们不需要进行修改
KSZ8081 这颗 PHY 芯片就是 Micrel 公司生产的,不过 Micrel 已经被Microchip 收购了。如果要使用 SR8201F,那么就得CONFIG_PHY_MICREL 改为 CONFIG_PHY_REALTEK。
NXP默认的UBOOT代码使用的是74LV595,我们需要对网络复位引脚进行修改打开开发板原理
看到复位引脚是SNVS_TAMPER8这个引脚,对应GPIO5_IO08
我们在对应板子C文件中加上该引脚的宏定义
#define ENET2_RESET IMX_GPIO_NR(5 ,8)
删掉74LV595的引脚配置
有
static iomux_v3_cfg_t const iox_pads[]
static void iox74lv_init(void)
void iox74lv_set(int index)
这三个函数
在板子初始化的过程中会调用 imx_iomux_v3_setup_multiple_pads 和 iox74lv_init 这两个函数来初始化74lv595 的 GPIO
int board_init(void)
{
......
imx_iomux_v3_setup_multiple_pads(iox_pads, ARRAY_SIZE(iox_pads));
iox74lv_init();
......
return 0;
}
我们将这两个函数删掉
imx_iomux_v3_setup_multiple_pads(iox_pads, ARRAY_SIZE(iox_pads));
iox74lv_init();
我们找到网络2引脚的IO配置将我们对应的网络复位引脚加入进去
MX6_PAD_SNVS_TAMPER8_GPIO5_IO08 | MUX_PAD_CTRL(NO_PAD_CTRL),
然后我们得添加对应网络引脚一个复位的操作过程
我们通过改变引脚的高低电平让其复位一下,最后延时150ms,该板子使用的SR8210F,这个延时是有明确要求的,要不让将无法识别SR8210F。最后我们梳理一下网络驱动配置过程
不管你用什么板子第一步我们需要修改PHY地址,不同的板子使用不同的芯片对应的地址是不同的,我们需要打开开发板原理图进行确认然后对ENET1与ENET2的PHY地址进行赋值。然后根据网络驱动芯片的公司将修改成对应公司。文章来源:https://www.toymoban.com/news/detail-416375.html
#define CONFIG_PHY_REALTEK
然后定义对应网络复位引脚,引脚定义我们还是去对应开发板原理图中寻找。删掉NXP自带的网络引脚和相关函数(如果你跟NXP是一个芯片型号那就不用了)定义完事之后将其添加到对应网络复位引脚驱动中,然后在写网络IO初始化代码并且复位一下 PHY 芯片。延时的长短是要根据你芯片手册来确认的。最后我们编译UBOOT烧录到SD卡中,并设置好其ip等配置。ping一下虚拟机IP可以看到我们的网络配置已经成功。
文章来源地址https://www.toymoban.com/news/detail-416375.html
到了这里,关于uboot移植网络驱动配置的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!