s5p4418的uboot网络无法使用问题解决

2023-11-13

一.前言

	 s5p4418 是一个三星的基于ARM的,cortex-A9的四核处理器,这个
处理器目前常用的两个系统层固件分别是:
	 uboot2014 + linux3.4.39  和 uboot2016 + linux4.4.172 两个版本。
本次针对的是 uboot2014 + linux3.4.39 ,对应的版本进行修复,对于
uboot2016 + linux4.4.172 的请参考我的另一篇文章:
https://blog.csdn.net/weixin_43536180/article/details/117048083
 	本次使用的硬件设备是nanopiM2 + nanopi提供的Ubuntu-Mate 固件,
对于nanopi2系列,或者其他使用s5p4418以及s5p6818处理器的读者
都可以参考,笔记对比过s5p4418和 s5p6818的以太网接口无论是引
脚还是控制器的寄存器地址都是一模一样的,因此使用的引脚配置和
驱动程序也是一样的。

二. 源码下载和切换分支

源码下载和切换分支:
git clone https://github.com/friendlyarm/uboot_nanopi2.git
cd uboot_nanopi2
git checkout nanopi2-lollipop-mr1
make s5p4418_nanopi2_config
在这里插入图片描述

注意:拉取代码可能有点慢或多次失败请保持耐心多试几次!!
提示: 详情可参考维基主页 http://wiki.friendlyarm.com/wiki/index.php/NanoPi_M2/zh

三. 拷贝补丁包为源码打补丁并编译

拷贝补丁包: s5p4418_uboot2014_net.patch 到源码目录下,补丁包关注我可以免费下载!!!
在这里插入图片描述
打补丁:
git apply s5p4418_uboot2014_net.patch
打完补丁检查代码修改情况:
git diff --stat --name-only 可以查看被修改的文件有4个!!
在这里插入图片描述
编译源码:
make CROSS_COMPILE=arm-linux-
注意:没安装交叉编译工具链参考上面的维基!!!
成功编译后我们得到文件 u-boot.bin
在这里插入图片描述

四.烧写到开发板中

因为uboot2014 里面已经集成了烧写工具fastboot,因此可以借助fastboot进行烧写u-boot.bin 文件。
先在开发板uboot命令行输入:
fastboot
在这里插入图片描述
在ubuntu 即电脑PC端会检查到一个类似安卓的设备:
fastboot flash bootloader u-boot.bin 烧写命令
fastboot reboot 重启板子的命令
fastboot flash bootloader u-boot.bin; fastboot reboot;
在这里插入图片描述
至此烧写完毕!!

五.uboot网络测试

配置板子的IP地址信息,具体配置参考自己的网络环境不要直接使用我的IP地址!!
setenv ipaddr 192.168.30.68 [设备IP]
setenv serverip 192.168.30.168 [电脑ubuntu的IP]
setenv gatewayip 192.168.30.1 [网关地址]
setenv netmask 255.255.255.0 [子网掩码]
saveenv

5.1 ping 服务器测试

ping 192.168.30.168
在这里插入图片描述
显示 host 192.168.30.168 is alive 表示ping 通了!!

5.2 tftp 下载文件测试

tftp 42000000 uImage
在这里插入图片描述
测试的情况来看uboot的网速大概是1.8MB/s 左右。

六. 源码简单讲解

如果对源码不太感兴趣的老哥可以跳过这一节!!!
board/s5p4418/nanopi2/eth.c 是板子的以太网初始化函数入口, board_eth_init 函数,这个函数由uboot的初始化流程调用。
需要注意的三点是:

  1. 配置引脚功能复用和初始化phy芯片 RTL8211E。
  2. 配置以太网的时钟源为外部25MHZ的晶振。
  3. 让以太网控制器的退出复位状态。

引脚功能复用配置:
在这里插入图片描述
复位以太网芯片RTL8211E:
在这里插入图片描述
配置以太网的时钟源:
在这里插入图片描述
注意不配置这个时钟源,将无法操作以太网控制器的DMA部分,DMA用于以太网的数据传输,即寄存器 0xc0061000 部分寄存器,详情参数数据手册!!

以太网控制器的退出复位状态:
在这里插入图片描述
注意s5p4418的每一个外设上电默认处于复位状态,CPU是无法写对应外设的寄存器的,需要让外设退出复位状态, 如果不复位则无法读写 0xc0060000 以太网控制器部分的寄存器,详情参考数据手册。

最后执行以太网的驱动程序初始化:
drivers/net/designware.c 程序作为以太网控制的驱动程序, 以太网的 phy 部分的mdio总线驱动,以太网控制器驱动,以太网DMA传输数据都在这个代码里面了,感兴趣的可以参考!!

对于phy驱动修复一个小bug,对于s5p4418,和s5p6818都会出现一种情况就是上电第一次ping 是不通的,非要第二次ping 才通。
解决办法是:
把 rtl8211x_parse_status(phydev); 函数换成 genphy_parse_link(phydev);

至此讲解完毕,有不明白的请回复留言!!

补丁包下载地址: https://download.csdn.net/download/weixin_43536180/18886969
关注可以免费,尊重原创哦!!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

s5p4418的uboot网络无法使用问题解决 的相关文章

  • 加载数据infile,Windows和Linux的区别

    我有一个需要导入到 MySQL 表的文件 这是我的命令 LOAD DATA LOCAL INFILE C test csv INTO TABLE logs fields terminated by LINES terminated BY n
  • linux perf:如何解释和查找热点

    我尝试了linux perf https perf wiki kernel org index php Main Page今天很实用 但在解释其结果时遇到了困难 我习惯了 valgrind 的 callgrind 这当然是与基于采样的 pe
  • 添加要在给定命令中运行的 .env 变量

    我有一个 env 文件 其中包含如下变量 HELLO world SOMETHING nothing 前几天我发现了这个很棒的脚本 它将这些变量放入当前会话中 所以当我运行这样的东西时 cat env grep v xargs node t
  • arm64和armhf有什么区别?

    Raspberry Pi Type 3 具有 64 位 CPU 但其架构不是arm64 but armhf 有什么区别arm64 and armhf armhf代表 arm hard float 是给定的名称Debian 端口 https
  • 尝试安装 LESS 时出现“请尝试以 root/管理员身份再次运行此命令”错误

    我正在尝试在我的计算机上安装 LESS 并且已经安装了节点 但是 当我输入 node install g less 时 出现以下错误 并且不知道该怎么办 FPaulMAC bin paul npm install g less npm ER
  • 如何将目录及其子目录中的所有 PDF 文件复制到一个位置?

    如何全部复制PDF文件从目录及其子目录到单个目录 实际上还有更多的文件 并且深度有些任意 假设四个目录的最大深度是公平的 我想这些文件需要重命名 如果a pdf例如 位于多个目录中 因为我会adding https ebooks stack
  • 如何在apache 2.4.6上安装apxs模块

    我刚刚用过apt get update我的 apache 已更新为2 4 6 我想安装 apxs 来编译模块 但收到此错误 The following packages have unmet dependencies apache2 pre
  • SSE:跨页边界的未对齐加载和存储

    我在页面边界旁边执行未对齐加载或存储之前读过某处 例如使用 mm loadu si128 mm storeu si128内在函数 代码应首先检查整个向量 在本例中为 16 个字节 是否属于同一页 如果不属于同一页 则切换到非向量指令 我知道
  • CoAP数据包的大小是多少?

    我是这项技术的新手 有人可以帮助我了解一些疑问吗 Q 1 CoAP数据包的大小是多少 我知道有 4 字节固定标头 但是包括标头 选项和负载在内的最大大小限制是多少 Q 2 有像MQTT那样的Keep Alive的概念吗 它在UDP上工作 它
  • 是否可以创建一个脚本来保存和恢复权限?

    我正在使用 Linux 系统 需要对一组嵌套文件和目录进行一些权限实验 我想知道是否没有某种方法可以保存文件和目录的权限 而不保存文件本身 换句话说 我想保存权限 编辑一些文件 调整一些权限 然后将权限恢复到目录结构中 将更改的文件保留在适
  • 我不明白 execlp() 在 Linux 中如何工作

    过去两天我一直在试图理解execlp 系统调用 但我还在这里 让我直奔主题 The man pageexeclp 将系统调用声明为int execlp const char file const char arg 与描述 execl exe
  • “make install”将库安装在 /usr/lib 而不是 /usr/lib64

    我正在尝试在 64 位 CentOS 7 2 上构建并安装一个库 为了这个目的我正在跑步 cmake DCMAKE BUILD TYPE Release DCMAKE INSTALL PREFIX usr DCMAKE C COMPILER
  • 需要一些建议来开始在 ARM(使用 Linux)平台上编程

    我 也许 很快就会在托管 Linux 发行版的 ARM 平台上工作 我不知道哪个发行版 我知道该项目涉及视频流 但我无法告诉你更多信息 其实我只收到通知 还没见到任何人 我从来没有在这样的平台上工作过 所以我的想法是在项目开始之前进行测试
  • php exec 返回的结果比直接进入命令行要少

    我有一个 exec 命令 它的行为与通过 Penguinet 给 linux 的相同命令不同 res exec cd mnt mydirectory zcat log file gz echo res 当将命令直接放入命令行时 我在日志文件
  • 如何减去两个 gettimeofday 实例?

    我想减去两个 gettimeofday 实例 并以毫秒为单位给出答案 这个想法是 static struct timeval tv gettimeofday tv NULL static struct timeval tv2 gettime
  • Linux - 从第二个选项卡获取文本

    假设我们有这样的文件 一些文本11 一些文本12 一些文本13 一些文本21 一些文本22 一些文本23 文本由制表符分隔 我们知道第 1 列中的一些文本 但希望从第 2 列中获取文本 我知道我可以通过以下方式获取线路 grep somet
  • waitpid() 的作用是什么?

    有什么用waitpid 它通常用于等待特定进程完成 或者如果您使用特殊标志则更改状态 基于其进程 ID 也称为pid 它还可用于等待一组子进程中的任何一个 无论是来自特定进程组的子进程还是当前进程的任何子进程 See here http l
  • Linux:如何设置进程的时区?

    我需要设置在 Linux 机器上启动的各个进程的时区 我尝试设置TZ变量 在本地上下文中 但它不起作用 有没有一种方法可以使用与系统日期不同的系统日期从命令行运行应用程序 这可能听起来很愚蠢 但我需要一种sandbox系统日期将被更改的地方
  • 使用 Grep 查找两个短语之间的文本块(包括短语)

    是否可以使用 grep 来高亮所有以以下内容开头的文本 mutablePath CGPathCreateMutable 并以以下内容结尾 CGPathAddPath skinMutablePath NULL mutablePath 这两个短
  • 监视目录的更改

    很像一个类似的问题 https stackoverflow com questions 112276 directory modification monitoring 我正在尝试监视 Linux 机器上的目录以添加新文件 并希望在这些新文

随机推荐

  • windows下redis 和 hiredis的编译与使用

    转 http www cnblogs com raker p 4368741 html 果然 高端的程序员真心是鸟都不鸟windows的 redis的客户端找了一圈愣是没有C 的windows版本 我要做个windows上的C 的服务器都没
  • ubuntu安装SSH2

    apt get install libssh2 1 dev libssh2 php service apache2 restart 安装完成之后 可以使用SCP远程复制文件 connection ssh2 connect 192 168 1
  • 读取本地文件到读出p.node涉及的函数

    这里是读取本地文件的所调用的函数 func ParseNode rawurl string Node error if m incompleteNodeURL FindStringSubmatch rawurl m nil id err H
  • 【学习笔记】多模态综述

    多模态综述 前言 1 CLIP ViLT 2 ALBEF 3 VLMO 4 BLIP 5 CoCa 6 BeiTv3 总结 参考链接 前言 本篇学习笔记虽然是多模态综述 本质上是对ViLT后多模态模型的总结 时间线为2021年至2022年
  • Linux文件描述符和重定向

    文件描述符 0 stdin 标准输入 1 stdout 标准输出 2 stderr 标准错误 成功和不成功的命令 student myhost ls ls cannot access No such file or directory st
  • STM32定时器

    目录 一 定时器的基本介绍 二 定时器的原理框图 1 定时器时钟 2 时基单元 3 捕获输入 4 PWM输出 三 定时器的应用 1 定时器的基础定时计数功能 2 PWM比较输出 3 外部脉冲计数 a 外部触发输入 ETR 外部时钟模式2 b
  • 617. 合并二叉树(c++)

    暴力解 当t1为空返回t2 当t2为空返回t1 当t1 t2都有值 new新节点为两个节点的和 新节点左子树为原始节点左子树合并 新节点右子树为原始节点右子树合并 Definition for a binary tree node stru
  • stm32 /*TIM定时器使用

    提示 文章写完后 目录可以自动生成 如何生成可参考右边的帮助文档 文章目录 一部分 定时器定时计数功能 一 定时器RCC内部时钟初始化配置 二 定时时间的计算 试验现象 晶振原理 1s时间计算 1min时间计算 制作时钟读数表 试验现象 试
  • leetcode刷题(四)——概率论与数理统计(一)

    leetcode刷题系列四 主要的内容涉及概率论和数理统计的知识 例题 算法分析 int dp 12 70 double dicesProbability int n int returnSize int i j k double f do
  • ubuntu安装及深度学习框架(CUDA、cuDNN、Anaconda、pytorch、pycharm)

    文章目录 前言 一 安装ubuntu20 04 4 1 准备工作 2 开始安装 二 安装英伟达驱动 方案一 不推荐 1 下载NVIDIA驱动 2 安装GCC 3 卸载原有NVIDIA驱动 一般都没有 4 禁用通用驱动 三 安装英伟达驱动 方
  • 上位机与欧姆龙PLC的Fins tcp通讯

    参考1 147条消息 欧姆龙PLC的FinsTCP协议 weixin 37700863的博客 CSDN博客 欧姆龙fins协议tcp 参考2 147条消息 FinsTCP协议报文详细分析 常哥说编程的博客 CSDN博客 fins协议 参考3
  • 在R语言中利用mice包进行缺失值的线性回归填补

    在数据分析中 我们会经常遇到缺失值问题 一般的缺失值的处理方法有删除法和填补法 通过删除法 我们可以删除缺失数据的样本或者变量 而缺失值填补法又可分为单变量填补法和多变量填补法 其中单变量填补法又可分为随机填补法 中位数 中值填补法 回归填
  • 常见http状态码详解

    状态码 类别 原因短语 1XX Informational 信息性状态码 接受的请求正在处理 2XX Success 成功状态码 请求正常处理完毕 3XX Redirection 重定向状态码 需要进行附加操作以完成请求 4XX Clien
  • 架构总结图

  • 斑马网络和荣威RX5深度研究

    锋影 email 174176320 qq com 佐智汽车就李想的观点访谈了两位业内专家 他们的回答如下 专家A 这个是需求推动 有需求就有人做 特斯拉用Linux一样有地图 Android过于复杂 可靠性问题比Linux大几个数量级 做
  • 调用服务工具类-HttpsUtil

    import java io BufferedReader import java io IOException import java io InputStream import java io InputStreamReader imp
  • 星际文件存储IPFS是如何颠覆云存储的?

    一句话概括 IPFS The InterPlanetary File System 星际文件存储系统是一种点到点的分布式文件系统 它连接的计算设备都拥有相同的文件管理模式 从某种意义上来说这个概念跟Web的最初理念很类似 但是实际上IPFS
  • gazebo通过sdf搭建仿真环境和机器人Husky

    具体格式要求可参考 http sdformat org spec ver 1 6 elem sdf
  • YCbCr色彩空间

    一 RGB 三原色光模式 RGB color model 表示方式 R red 红色 G green 绿色 B blue 蓝色 使用场景 摄影 彩色电视 彩色显示屏 二 HSV HSL HSV HSL 是一种将 RGB 色彩模型中的点在圆柱
  • s5p4418的uboot网络无法使用问题解决

    一 前言 s5p4418 是一个三星的基于ARM的 cortex A9的四核处理器 这个 处理器目前常用的两个系统层固件分别是 uboot2014 linux3 4 39 和 uboot2016 linux4 4 172 两个版本 本次针对