Device Tree(五)移植DM9000,并挂载NFS
1、添加\修改DTS文件中DM9000配置
/ {model = "Samsung Louis210 based on S5PV210";compatible = "samsung,Louis210", "samsung,s5pv210";chosen {bootargs = "console=ttySAC0,115200n8 root=/dev/nfs nfsroot=192.168.5.136:/root/code/rootfs ip=192.168.5.187 init=/init";};memory@20000000 {device_type = "memory";reg = <0x20000000 0x40000000>;};ethernet@88000000 {compatible = "davicom,dm9000";reg = <0x88000000 0x2 0x88000004 0x2>;interrupt-parent = <&gph1>;interrupts = <2 4>;local-mac-address = [00 00 de ad be ef];davicom,no-eeprom;clocks = <&clocks CLK_SROMC>;clock-names = "sromc";};backlight {compatible = "pwm-backlight";pwms = <&pwm 3 5000000 0>;brightness-levels = <0 4 8 16 32 64 128 255>;default-brightness-level = <6>;pinctrl-names = "default";pinctrl-0 = <&pwm3_out>;};
};&xusbxti {clock-frequency = <24000000>;
};/* add by Louis */
&xxti {clock-frequency = <24000000>;
};
本次在Linux-4.19.10上面移植DM9000,刚开始DM9000设备起不来,调试了很长时间,最终发现是因为没有使能S5Pv210的SROMC时钟。
使用外部中断10,对应GPH1的2号引脚。
配置时钟为sromc。
2、修改drivers\net\ethernet\davicom\dm9000.c文件,添加SROMC时钟使能
--- a/drivers/net/ethernet/davicom/dm9000.c
+++ b/drivers/net/ethernet/davicom/dm9000.c
@@ -39,6 +39,7 @@#include <linux/regulator/consumer.h>#include <linux/gpio.h>#include <linux/of_gpio.h>
+#include <linux/clk.h>#include <asm/delay.h>#include <asm/irq.h>
@@ -1436,6 +1437,7 @@ dm9000_probe(struct platform_device *pdeenum of_gpio_flags flags;struct regulator *power;bool inv_mac_addr = false;
+ const char *clk_name;power = devm_regulator_get(dev, "vcc");if (IS_ERR(power)) {
@@ -1573,6 +1575,18 @@ dm9000_probe(struct platform_device *pdegoto out;}+ /* Enable clock if specified */
+ if (!of_property_read_string(dev->of_node, "clock-names", &clk_name)) {
+ struct clk *clk = devm_clk_get(dev, clk_name);
+ if (IS_ERR(clk)) {
+ dev_err(dev, "cannot get clock of %s\n", clk_name);
+ ret = PTR_ERR(clk);
+ goto out;
+ }
+ clk_prepare_enable(clk);
+ dev_info(dev, "enable clock '%s'\n", clk_name);
+ }
+/* fill in parameters for net-dev structure */ndev->base_addr = (unsigned long)db->io_addr;
3、其他步骤参考 kernel(二)网卡(DM9000)及nfs文件系统
打印信息:
Starting kernel ... Booting Linux on physical CPU 0x0 Please press Enter to activate this console. random: crng init done Processing /etc/profile... |
Device Tree(五)移植DM9000,并挂载NFS相关推荐
- 基于tiny4412的Linux内核移植(支持device tree)(二)
作者信息 作者: 彭东林 邮箱:pengdonglin137@163.com QQ:405728433 平台简介 开发板:tiny4412ADK + S700 + 4GB Flash 要移植的内核版本 ...
- Linux 设备树device tree 使用手册
摘要:设备树使用手册Thispagewalksthroughhowtowriteadevicetreeforanewmachine.Itisintendedtoprovideanoverviewofd ...
- [dts]Device Tree机制【转】
转自:https://www.cnblogs.com/aaronLinux/p/5496559.html 转自:http://blog.csdn.net/machiner1/article/detai ...
- 挂载 nfs 文件系统
环境 硬件:I.MX6U ALPHY V2.2 宿主机:Ubuntu 20.04 概述 我们的目的是在 kernel 启动后,将 nfs 文件系统挂载成板子的根文件系统.因此,bootloader.k ...
- 深度剖析E680G开发五.移植OPIE操作系统(下)-编译和运行OPIE
深度剖析E680G开发五.移植OPIE操作系统(下)-编译和运行OPIE 草木瓜 20060930 一.前言 这是最后的内容,然而却有很大的遗憾,如果运行OPIE,但E68 ...
- Linux设备模型、平台设备驱动、设备树(device tree)、GPIO子系统以及pinctrl子系统介绍
文章目录 一.Linux设备模型介绍 (1)设备驱动模型总体介绍 (2)设备驱动模型文件表现 (3)设备驱动模型工作原理 [1]总线 [2]设备 [3]驱动 [4]注册流程 二.平台设备驱动介绍 (1 ...
- 设备树Device Tree详解
原文:https://www.cnblogs.com/aaronLinux/p/5496559.html 目录 1. 设备树(Device Tree)基本概念及作用 2. 设备树的组成和使用 2.1 ...
- Device Tree(六)Kernel 启动之 FIT-uImage
一.uImage 编译kernel之后,会生成Image或者压缩过的zImage.但是这两种镜像的格式并没有办法提供给uboot的足够的信息来进行load.jump或者验证操作等等.因此,uboot提 ...
- 使用Uboot启动内核并挂载NFS根文件系统
配置编译好内核之后,将生成的内核文件uImage拷贝到/tftpboot/下,通过tftp服务器将内核下载到开发板,使用命令:tftp 31000000 uImage.下载完成之后配置bootargs ...
- Linux device tree 简要笔记
第一.DTS简介 在嵌入式设备上,可能有不同的主板---它们之间差异表现在主板资源不尽相同,比如I2C.SPI.GPIO等接口定义有差别,或者是Timer不同,等等.于是这就产生了BSP的一 ...
最新文章
- ubuntu16.04 uninstall cuda 9.0 completely and install 8.0 instead
- 逃亡的准备(大数据版)
- STM32F103CUBE学习笔记 一 环境安装
- als算法参数_Spark2.0协同过滤与ALS算法介绍
- 《系统集成项目管理工程师》必背100个知识点-13项目经理是整合者
- equals()和==
- DataGrip以超级管理员身份登录Oracle
- ASP.Net请求处理机制初步探索之旅 - Part 5 ASP.Net MVC请求处理流程
- Tizen有用的网站
- IDEA 调试部署 Web-INF/classes下面不生成class文件
- 12linux目录结构13Linux目录详解
- jsp学习笔记 - 内置对象 session
- 转lua解析脚本过程中的关键数据结构介绍
- python怎么升级django_线上Django项目python2到3升级日记
- python搭建图书管理系统
- 计算机未来职业人生规划目标与行动措施,计算机职业规划书1500字
- LibEvent中文帮助文档
- Excel-DATEDIF函数计算两日期天数差
- 适合孩子观看的十部优国产儿童动画推荐清单!
- c++实现maxpooling+利用OpenMP、SIMD优化代码