在上一篇 Linux学习笔记---移植官方uboot步骤(一) 自己的uboot已经编译成功了,接下来继续移植LCD驱动和网络驱动。

修改LCD驱动

修改配置参数

打开my_uboot/board/freescale/mx6ull_myuboot_emmc/mx6ull_myuboot_emmc.c 文件,

找到如下内容

修改为:

修改头文件

打开my_uboot/include/configs/mx6ull_myuboot_emmc.h 头文件

找到 panel=TFT43AB将其改为:panel=TFT7016

下来重新编译一次,将u-boot.bin烧写到SD卡中。重启开发板

在串口终端中使用printf打印环境变量

修改环境变量

这里的环境变量不是TFT7016,所以要将环境变量修改为TFT7016.

重启开发板

查看环境变量

环境变量正常,说明LCD屏已经可以正常使用了。如果LCD不能正常显示,就检查是不是LCD的哪个参数设置错误了。

修改网络驱动

修改网络驱动主要需要改以下3点:

①、ENETx 复位引脚初始化。

②、LAN8720A 的器件 ID。

③、LAN8720 驱动

修改网卡地址

打开 my_uboot/include/configs/mx6ull_myuboot_emmc.h 头文件

找到如下代码

正点原子的 I.MX6U-ALPHA 开发板 ENET1 的 PHY 地址为0X0,ENET2 的 PHY 地址为0X1,所以需要将宏 CONFIG_FEC_MXC_PHYADDR改为 0x0。

修改网卡厂家宏定义

第338行定了一个宏 CONFIG_PHY_MICREL,此宏用于使能 uboot 中 Micrel 公司的 PHY驱动,KSZ8081 这颗 PHY 芯片就是 Micrel 公司生产的,不过 Micrel 已经被 Microchip 收购了。如果要使用 LAN8720A,那么就得将 CONFIG_PHY_MICREL 改为 CONFIG_PHY_SMSC,也就是使能 uboot 中的 SMSC 公司中的 PHY 驱动,因为 LAN8720A 就是 SMSC 公司生产的。

屏蔽无用的IO口代码

接下来打开my_uboot/board/freescale/mx6ull_myuboot_emmc/mx6ull_myuboot_emmc.c 文件,找到相关管脚的定义。

将这些管脚定义屏蔽掉,添加下面管脚定义

#define ENET1_RESET IMX_GPIO_NR(5, 7)

#define ENET2_RESET IMX_GPIO_NR(5, 8)

将下面紧挨着的这个端口初始化函数也屏蔽掉。

接下来继续找到iox74lv_init函数和 iox74lv_set函数,这两个函数是设置74LV595芯片的,这里用不到,全部屏蔽。

屏蔽154行到233行之间的代码

屏蔽无用的初始化代码

继续找到board_init 函数

屏蔽 掉初始化中的用 imx_iomux_v3_setup_multiple_pads 和 iox74lv_init 这两个函数。

添加复位引脚宏定义

然后找到 fec1_pads 和 fec2_pads 这两个数组

在这两个数组里面添加ENET1 和 ENET2 这两个网口的 IO 配置参数

添加初始化代码

修改紧跟着的函数

添加复位网络的代码

接下来打开my_uboot/drivers/net/phy/phy.c 文件,找到函数 genphy_update_link。

在函数开始位置添加如下代码:

#ifdef CONFIG_PHY_SMSCstatic int lan8720_flag = 0;int bmcr_reg = 0;if(lan8720_flag == 0){bmcr_reg = phy_read(phydev, MDIO_DEVAD_NONE,MII_BMCR);phy_write(phydev,MDIO_DEVAD_NONE,MII_BMCR,BMCR_RESET);while(phy_read(phydev, MDIO_DEVAD_NONE, MII_BMCR)&0x8000){udelay(100);}phy_write(phydev, MDIO_DEVAD_NONE,MII_BMCR,bmcr_reg);lan8720_flag = 1;}
#endif

到这里网络驱动就修改完了,重新编译uboot,并向SD卡烧写。

重启开发板

在串口终端上可以看到,网络已经正常了。

设置网络相关环境变量

接下来设置网络相关的环境变量。

192.168.1.50是开发板的IP地址,192.168.1.66是Ubuntu的IP地址。

重启开发板,然后打印环境变量

这里的服务器地址就是Ubuntu操作系统的IP地址,用网线将开发板和笔记本连接起来。

在开发板上使用ping命令测试开发板与Ubuntu系统的网络是否连通。

网络测试是通的,说明开发板的网络设置已经成功了。

在开发板启动时打印的板子名称还是NXP官方的,还需要将开发板名称改为自己的。

打开my_uboot/board/freescale/mx6ull_myuboot_emmc/mx6ull_myuboot_emmc.c文件

找到checkboard()函数

将里面的字符串修改为自己的内容

保存代码,重新编译下载。

可以看到板子的名称也改成自己的了。

上一篇:Linux学习笔记---移植官方uboot步骤(一)

Linux学习笔记---移植官方uboot步骤(二)相关推荐

  1. Linux学习笔记---移植官方uboot步骤(一)

    目录 编写shell脚本 修改MakeFile文件 重命名shell脚本 添加默认配置文件 修改默认配置文件 准备需要的板级文件夹 重命名.C文件 修改Makefile 修改imximage.cfg配 ...

  2. Linux学习笔记---移植官方linux步骤(二)

    目录 修改网络驱动 修改 LAN8720 的复位 以及网络时钟 引脚驱动 修改fec1和fec2节点pinctrl-0属性 修改LAN8720A的PHY地址 修改 fec_main.c 文件 配置 L ...

  3. Linux学习笔记---移植官方linux步骤(一)

    使用的开发板是正点原子IMX6U-MINI  EMMC512M的开发板,这个板子也是移植的NXP官方linux,所以这里就直接从NXP官方的linux移植. 这里所说的移植,其实不是自己编写驱动文件等 ...

  4. Linux学习笔记---初次编译Uboot系统

    在初次编译Uboot系统时,是按照正点原子开发指南操作的,但是开发指南上讲得不是很详细,又看了一遍视频教程才搞清楚完整步骤,为了方便学习,就将详细步骤记录下来,以便以后参考. Uboot初次编译 1. ...

  5. Linux学习笔记---使用tftp命令下载文件

    向开发板下载数据时,不仅可以通过nfs命令下载,还可以通过更简单的命令tftp下载. 用网线将开发板和笔记本连接起来,设置好网络环境.网络的具体设置方法可以参考 Linux学习笔记---网线直连电脑和 ...

  6. Linux学习笔记(二)——文件与磁盘系统

    Linux学习笔记(二)--文件与磁盘系统 文件操作 ls [选项][目录名]-l :列出长数据串,包含文件的属性与权限数据等-a :列出全部的文件,连同隐藏文件(开头为.的文件)一起列出来(常用)- ...

  7. Linux学习笔记(二)|常用命令

    Linux学习笔记(二)常用命令 1.文件处理命令 1.1命令格式与目录处理 -ls 功能描述:显示目录文件 原意:list 所在路径:/bin/ls 语法: ls-a 显示所有文件,包括隐藏文件 l ...

  8. Linux学习笔记---使用BusyBox创建根文件系统(二)

    目录 向 rootfs 的"/lib "目录添加库文件 向 rootfs 的usr/lib 目录添加库文件 创建其他文件夹 根文件系统初步测试 向 rootfs 的"/l ...

  9. Linux学习笔记(二) -- Linux学习笔记(二) – 解决VMware主窗口中的虚拟机窗口太小的方法

    1.问题描述 在虚拟机中安装完ubuntu操作系统后,我们会发现ubuntu界面在主窗口中占比很小,如下图所示: 这给操作带来了极大的不便. 2.解决步骤 1.在VMware中启动ubuntu系统: ...

最新文章

  1. opencv图像处理梯度边缘和角点
  2. LeetCode-剑指 Offer 14- I. 剪绳子
  3. [模版] 网络流最大流、费用流
  4. 协程在Socket上的应用
  5. HDU 4616 Game 树形DP
  6. Python数据结构和算法
  7. vivado安装_Vivado下载与安装指南
  8. java笔记_2020年java程序员、java工程师必备资料(内含java学习思维图、视频教程、源码笔记等)...
  9. 【HDU-5246】超级赛亚ACMer(贪心)
  10. linux虚拟磁带机管理,linux虚拟磁带机
  11. 学而思pythonlevel3_【学而思网校语言学习】学而思网校【2019-寒】AE英语直播班 Level 3上【报价 价格 评测 怎么样】 -什么值得买...
  12. Python-Pillow给图片加文字
  13. Java底层小开发的面试经历
  14. 外汇会计-概念-即期汇率
  15. windows任务栏透明_如何使Windows 10任务栏完全透明
  16. Linux制作python的AWS-KCL的基础镜像,Dockerfile文件
  17. 移动硬盘弹出时总是显示被占用,解决方案
  18. iOS 8人机界面指南(一):UI设计基础
  19. Kubernetes安装
  20. 索尼 Sensor 基本概念,及曝光相关的计算

热门文章

  1. android脚步---自动完成文本框
  2. 如何启用×××服务器端的IPsec功能
  3. java8(2)--- Stream API
  4. PAT-乙级-1016 部分A+B
  5. luogu P1586 四方定理(背包)
  6. ASp.net常用服务
  7. 不用也要知道的几种算法(PHP版本)
  8. SPOJ DQUERY 求区间内不同数的个数 主席树
  9. js的左右滑动触屏事件
  10. [教官] 目标中关村!偶滴工作日记