自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(115)
  • 资源 (4)
  • 收藏
  • 关注

原创 platform devices创建实例

【代码】platform devices创建实例。

2024-03-24 11:17:13 91

转载 module_platform_driver()

在Linux设备驱动开发使用platform平台驱动模型过程中,在定义且初始化好platform_driver结构体变量以后,我们需要向 Linux 内核注册一个 platform 驱动。下面介绍两种方法。

2024-03-18 00:12:19 33

转载 内核对设备树的处理——device_node转换为platform_device

本节学习内核如何将转换为。先回顾一下。所谓总线设备驱动模型,就是将设备分为)和)两部分。使用总线设备驱动模型,如果要去修改,就需要,还要。而就是将通过来描述,这样,修改平台设备后就不需要重新编译内核,。使用设备树的流程大致如下:首先,编写文件,然后使用dtc工具编译dts文件得到dtb文件,内核解析dtb文件生成device_node,之后再将device_node转换成platform_device。以之前的jz2440.dts为例。

2024-03-17 16:19:05 61

转载 devm_ioremap_resource devm_ioremap 区别

但要是直接devm_ioremap,应该也可以,但没有 devm_request_mem_region, 应该在/proc/iomem 查不到。但如果一个device resource 已经申请过了,在调用devm_request_mem_region就会出现下面错误。从driver 代码中可以看到有时间用devm_ioremap_resource, 而有时直接用devm_ioremap。总结来说,devm_ioremap 就是直接映射, devm_ioremap_resource 是先申请,后映射。

2024-03-17 11:52:49 84

原创 Linux Clock

https://blog.csdn.net/Guet_Kite/article/details/78012651 嵌入式Linux驱动笔记(十四)------详解clock时钟(CCF)框架及clk_get函数。https://blog.csdn.net/zgtzqzg2020/article/details/109220181 Linux clk子系统(5)--fixed-factor-clk。

2023-08-06 10:03:01 435

原创 Fixed PHY

FIXED-PHY的本质和externel phy没有区别,只是使用虚拟的mii_bus来注册fixed phy,仍然需要创建phydev, 仍然需要phy driver,如果没有注册specific driver则是默认使用generic phy driver. 并且需要利用phydev的状态机的运转来adjust link。而后续引入的PHYLINK则是大大的优化了fixed link的实现以及对SFP的支持(这里暂不讨论)。

2023-05-14 22:53:34 762

转载 Linux Mii management/mdio子系统分析之六 fixed-mii_bus分析(mac2mac分析)

而针对fixed_mii_bus上的成员phys链表上的fixed_phy链表成员,仅在fixed_mdio_bus_init中注册fixed_mii_bus时,通过mdiobus_register时,完成将该链表上的所有链表成员,均为其注册对应的phy_device至mdio_bus上。接口fixed_phy_register在调用fixed_phy_add之后,调用phy_register,实现phy_device的注册,弥补了fixed_phy_add的不足。struct mii_bus类型的成员;

2023-05-14 22:35:50 628

转载 linux phy fixed-link

linux内核驱动已经对PHY有很好的支持,一般PHY驱动用于对外部PHY进行配置,获取外部网络的连接状态、速度、双工属性等,但对于一些通用的switch芯片,一般与MPU是MAC-MAC的连接方式,另外还有些FPGA的关联应用,也是MAC-MAC,这种情况下,我们希望连接状态、链接速度、双工属性等参数为固定,因此内核提供了fixed-link的机制,实际上linux是通过虚拟一个属性固定的PHY设备来实现。link-gpios用来指定表示检测网络连接状态的GPIO,驱动会读取gpio的值来决定网络状态,

2023-05-14 16:36:08 849

原创 PinCtrl

gpio:

2023-05-10 17:09:37 49

转载 关于BIT位域和大小端的理解

因此,在数据传输中,通常需要将数据从本机字节序统一转换成网络字节序(网络字节序为大端)然后传输,接收方接收数据后,再将数据转换为本机字节序。反过来说,大端数据0x5B 59 97 85传输给小端设备接收后,在内存的数据为5B 59 97 85,未做转换时,小端设备解析为0x85 97 59 5b,转换字节序之后为0x5B 59 97 85。任何在不同系统间的通信信息都经过网络字节(大端)序进行传输,也就是说不管本机是什么模式,都要保证发送端传输的数据转换为网络序,接受端都要把网络序的数据转换为本地序。

2023-04-02 12:15:46 392

转载 linux运行大端程序,linux kernel如何处理大端小端字节序

作为软件人员,我最关心第二种方案是否可行,因为在读写寄存器时对数据进行swap,增加了寄存器读写的复杂度,原来一条存储/加载指令可以完成的工作,现在可能需要增加一些更swap相关的指令,无法保证寄存器操作的原子性了。根据之前的理解,字节序可以认为是处理器主观的概念,就像人如何去看待事物一样,处理器分大端和小端,对于内存的读写,只要保证数据类型一致,就不存在字节序的问题。对于常数数据,采用的是普通的位移然后拼接的方法,对于常数,这样的消耗是有必要的(这是kernel的解释,不是很理解)

2023-03-31 18:19:02 286

转载 浅谈大小端(Endian)与位域

在大端系统中,结构体变量及其成员的存储情况如下:.a1.a2.b1.b2.b3.b4bit0001] [02070810] [1114] [1519] [2023data010000111001000010110011.a1010b010x1.a2050b0000110x3.b1020b1000x4.b20。

2023-03-31 17:14:55 1442

转载 Ethernet下字节序和bit序的总结

按照上述的原理,假设,我们不遵从网络字节序(大端)的要求,小端系统pc1要发送数据0x12345678,则发送的字节依次为0x78, 0x56, 0x34, 0x12。同样的,在小端系统,网卡收到bit数据时,依次存放在bit7, bit6, bit5, bit4, bit3, bit2, bit1, bit0.比如,在小端系统中,网卡发送bit数据时,依次发送bit7, bit6, bit5, bit4, bit3, bit2,bit1,bit0.假设pc1要发送一个字节的数据,是怎么发送的呢?

2023-03-31 17:08:02 352

转载 #!/bin/sh简介

openwrt

2023-02-26 23:52:55 4348

转载 openwrt reboot流程

Openwrt

2023-02-26 23:49:21 2356

转载 OpenWRT 启动流程(三) /sbin/procd 分析

openwrt

2023-02-26 17:39:18 414

转载 OpenWRT 启动流程(二) /etc/preinit 脚本分析

Openwrt

2023-02-26 17:15:47 294

转载 OpenWRT 启动流程(一) /sbin/init 进程分析

Openwrt

2023-02-26 16:54:12 802

转载 Linux驱动开发—— of_property_read_u8

dts

2023-01-06 00:49:12 280

转载 smp irq affinity介绍

smp affinity

2022-12-19 10:30:25 912

转载 【STM32】以太网DMA描述符

DMA

2022-12-19 00:56:57 1758 1

转载 NAPI(New API)的一些浅见

NAPI

2022-12-18 22:39:04 775 1

原创 Linux Macsec

macsec on linuxmacsec-implementation-on-linux

2022-05-15 22:54:59 441

转载 以太网详解(二)-物理介质(100base-TX等)介绍

转载原文:https://blog.csdn.net/ZCShouCSDN/article/details/80208596 在搞网络这一块的时候,看到了100Base-T、100Base-TX等这些东西,在IEEE802.3中,也到处是这些词。大体了解了一下,下面是正文: 以太网采用CSMA/CD(Carrier Sense Multiple Access/Collision Detection,载波监听多路存取和冲突检测)介质访问控制方式的局域网技术,最初由Xerox公司于1975年研制成功,19.

2022-03-13 16:36:58 4873

转载 以太网详解(一)-MAC/PHY/MII/RMII/GMII/RGMII基本介绍

网络设备中肯定离开不MAC和PHY,本篇文章将详细介绍下以太网中一些常见术语与接口。 MAC和PHY结构 从硬件角度来看以太网是由CPU,MAC,PHY三部分组成的,如下图示意: 上图中DMA集成在CPU,CPU,MAC,PHY并不是集成在同一个芯片内,由于PHY包含大量模拟器件,而MAC是典型的数字电路,考虑到芯片面积及模拟/数字混合架构的原因,将MAC集成进CPU而将PHY留在片外,这种结构是最常见的。 下图是网络接口内部结构图,虚框表示CPU,MAC集成在CPU中,PHY芯片通过MII接口与.

2022-03-13 16:23:28 5412

转载 10GBASE-T,10GBASE-R,10GBASE-X 和10GBASE-W区别

参考链接: https://www.rfwireless-world.com/Terminology/10GBASE-T-vs-10GBASE-R-vs-10GBASE-X-vs-10GBASE-W.html 10GBASE-T The version 10GBASE-T has following features. • Supports 64B/65B signal encoding type • supports transmission over twisted pair cabling • .

2022-03-13 16:17:50 1507

转载 扫盲-以太网MII接口类型大全-MII、RMII、SMII、GMII、RGMII、SGMII、XGMII、XAUI、RXAUI

一、简介     MII是英文 Medium Independent Interface 的缩写,翻译成中文是“介质独立接口”,该接口一般应用于以太网硬件平台的MAC层和PHY层之间,MII接口的类型有很多,常用的有MII、RMII、SMII、SSMII、SSSMII、GMII、RGMII、SGMII、TBI、RTBI、XGMII、XAUI、XLAUI等。下面对它们进行一一介绍。 二、MII接口类型 1、MII接口     TX_ER(Transmit Error): 发送数据错误提示信号,同.

2022-03-13 16:13:46 12023 1

转载 Linux Mii management/mdio子系统分析之五 PHY状态机分析及其与net_device的关联

      前面几章基本上完成了mdio模块驱动模型的分析,本篇文章主要讲述phy device的状态机以及phy device与net_device的关联。Phy device主要是对phy的抽象,而net_device主要是对mac的抽象,而mdio总线以及mii_bus主要用于对phy设备的控制(包括设置phy设备的工作模式、速率模式、...

2022-03-06 00:02:08 656 1

转载 PHY驱动调试之 ---PHY设备驱动(三)

1. 前言  内核版本:linux 4.9.225,以freescale为例。(部分内容待修改和补充,不一定准确) 2. 概述 上一篇文章讲了控制器的驱动使用的是platform总线的连接方式,本节要讲的PHY设备驱动是基于device、driver、bus的连接方式。 其驱动涉及如下几个重要部分: 总线 - sturct mii_bus (mii stand for media independent interface)设备 - struct phy_device驱动 - stru.

2022-03-05 23:56:03 3427

转载 PHY驱动调试之 --- PHY控制器驱动(二)

1. 前言  内核版本:linux 4.9.225,以freescale为例。 2. 概述 PHY芯片为OSI的最底层-物理层(Physical Layer),通过MII/GMII/RMII/SGMII/XGMII等多种媒体独立接口(介质无关接口)与数据链路层的MAC芯片相连,并通过MDIO接口实现对PHY状态的监控、配置和管理。 PHY与MAC整体的大致连接框架如下(图片来源于网络): PHY的整个硬件系统组成比较复杂,PHY与MAC相连(也可以通过一个中间设备相连),MAC与CP..

2022-03-05 23:37:28 2623 1

转载 PHY驱动调试之 --- MDIO/MDC接口22号和45号条款(一)

 最近在调试一款Phy的驱动,从没有任何头绪到略有了解经历了太多的痛苦,于是决定写这个系列篇记录一下。特别感谢无数优秀的博主无私奉献很多优秀的博文给予了我很大的帮助。在这个系列篇中,我也会转载部分优秀的博文(会附上链接),以及增添自己的理解,如果部分内容有侵权的地方,麻烦联系我。 概述 管理MII接口的MDIO接口是一个双线的串行接口,用来对PHY芯片等物理层信息进行操作管理。 MDIO的历史 MDIO是Management Data Input/Output 的缩写,有两根线,分别为双...

2022-03-05 23:16:15 984

转载 Linux Mii management/mdio子系统分析之四 mdio总线及phy驱动模型及其开发流程

      前三篇文章完成了mdio子系统概述、mdio子系统驱动模型概述、mii_bus子模块方法及驱动实现分析,本篇文章我们主要进行mdio总线驱动实现分析、phy驱动实现分析等部分,涉及的内容如下: 一、mdio总线实现及相应方法分析   二、phy驱动实现相应方法的分析   ...

2022-03-05 23:13:40 1221

转载 Linux Mii management/mdio子系统分析之三 mii_bus注册、注销及其驱动开发流程

      本篇是mii management/mdio模块分析的第三篇文章,本章我们主要介绍mii-bus的注册与注销接口。在前面的介绍中也已经说过,我们可以将mii-bus理解为mdio总线的控制器的抽象,就像spi-master、i2c-adapter一样。 本篇文章主要涉及如下两部分:   mii-b...

2022-03-05 23:11:20 811

转载 Linux Mii management/mdio子系统分析之二 mdio总线-设备-驱动模型分析

      接着上篇文章继续分析mdio子系统,本章主要介绍mdio子系统的驱动模型,当然了介绍mdio子系统的驱动模型,就绕不开linux系统设备-总线-驱动模型,所有的总线类的驱动,基本上都可以理解为继承自linux系统设备-总线-驱动模型。 本篇主要介绍如下几部分的内容: 一、总线-设备-驱动-控制器模型分析 二、总线定义 ...

2022-03-05 23:06:54 764

转载 Linux Mii management/mdio子系统分析之一 总体概述

  从本章开始,我们介绍linux的mii management对应的mdio子模块,该模块主要用于管理phy设备,实现phy device创建与phy driver的注册等功能。本系统主要涉及如下按如下几个篇章进行分析: 一、总线概述(介绍mdio驱动模型的简要逻辑模型) 二、mdio总线-设备-驱动模型分析 三、虚拟mii_bus模型分析(即fi...

2022-03-05 23:03:58 629 1

转载 网络设备的MAC地址

内核中为网络设备定义了5中MAC地址类型,如下所示,其中NETDEV_HW_ADDR_T_SLAVE类型目前没有使用。局域网LAN类型与存储SAN类型的MAC地址保存在net_device结构体的dev_addrs链表中;UNICAST与MULTICAST类型的MAC地址分别保存在uc和mc链表中。 #define NETDEV_HW_ADDR_T_LAN        1...

2022-02-14 10:18:09 1253 1

原创 bridge转发eapol包

最近开发有需求需要linux bridge能够转发EAPOL 和BPDU 多播包,EAPOL Multicast 包的dst mac 地址为: 01-80-C2-00-00-03。BPDU包的目的mac地址为:01-80-C2-00-00-00。在设置 sys/class/net/br-lan/bridge/group_fwd_mask 为0x9将这两种多播mac地址fwd enable的时候,发现以下error。echo 9 > sys/class/net/br-lan/bridge/gro

2022-02-13 23:12:26 392

转载 网桥本地链路组播控制group_fwd_mask

在创建网桥时,可指定组播转发掩码值group_fwd_mask,如下0xff00。掩码中的位表示的为链路本地地址(01:80:C2:00:00:0X)的最后一个4位的值,即X的值,其范围为0到15,所以,group_fwd_mask的值为16比特。 网桥下的子接口...

2022-02-13 21:27:18 317

转载 Linux内核参数group_fwd_mask-设置bridge过滤MAC地址范围

笔者在利用gns3模拟器搭建网络实验时,发现交换机设备和服务器之间无法成功协商LACP协议,CISCO NEXUS 9K互相之间却可以成功协商LACP, 在交换机和服务器上抓包发现,Nexus 9K发出的LACP报文中的目的MAC地址为00:01:02:03:04:05(而标准LACP协议中规定的是01:80:c2:00:00:02),服务器发出的LACP报文的目的MAC是01:80:c2:00:...

2022-02-13 21:14:46 866

转载 linux hairpin mode

hairpin中文翻译为发卡。bridge不允许包从收到包的端口发出,比如bridge从一个端口收到一个广播报文后,会将其广播到所有其他端口。bridge的某个端口打开hairpin mode后允许从这个端口收到的包仍然从这个端口发出。这个特性用于NAT场景下,比如docker的nat网络,一个容器访问其自身映射到主机的端口时,包到达bridge设备后走到ip协议栈,经过iptables规则的dnat转换后发现又需要从bridge的收包端口发出,需要开启端口的hai...

2021-11-20 23:52:31 782

ipip6_packet.rar

tunnel ipv4-in-ipv6 抓包,包括icmp tcp udp形式的包,学习ipv4 in ipv6 tunnel时可以参考

2020-08-20

linux_tun_test.rar

linux tun实验抓包,wireshark抓包,具体参考 https://blog.csdn.net/u014044624/article/details/104823596

2020-03-13

wifi direct协议

2017-02-19

Wi-Fi_P2P_Technical_Specification_v1.7

Wi-Fi_P2P_Technical_Specification_v1.7

2017-02-12

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除