基于335X的Linux网口驱动分析】的更多相关文章

基于335X的linux网口驱动分析 一. 系统构成 1.  硬件平台 AM335X 2.  LINUX内核版本 4.4.12 二. 网口驱动构架(mdio部分) mdio网口驱动部分 使用 总线.设备.驱动模型,总结如下: 若设备和驱动匹配,则执行 davinci_mdio_probe --> mdiobus_register --> device_register --> mdiobus_scan --> get_phy_device --> get_phy_id //…
基于335X的UBOOT网口驱动分析 一.软硬件平台资料 1.  开发板:创龙AM3359核心板,网口采用RMII形式 2.  UBOOT版本:U-Boot-2016.05,采用FDT和DM. 参考链接: https://blog.csdn.net/hahachenchen789/article/details/53339181 二.网口相关代码位置 1.  网口的PINMUX设置 RMII接口的相关PINMUX在MLO中进行设置,具体的设置代码为 |-board_init_f |-board_…
基于335X平台Linux交换芯片驱动开发   一.软硬件平台资料 1.开发板:创龙AM3359核心板,网口采用RMII形式. 2.Kernel版本:4.4.12,采用FDT 3.交换芯片MARVELL的88E6321. 二.移植准备工作 1.熟悉88E6321的datasheet及Functional_Specification_Rev.0.05 2.熟悉设备树相关理论和用法 3.熟悉Linux网络驱动MDIO.PHY部分的软件流程 三.DTS文件修改 本工程的DTS文件以am335x-ice…
linux串口驱动分析 硬件资源及描写叙述 s3c2440A 通用异步接收器和发送器(UART)提供了三个独立的异步串行 I/O(SIO)port,每一个port都能够在中断模式或 DMA 模式下操作.UART 使用系统时钟能够支持最高 115.2Kbps 的波特率.每一个 UART 通道对于接收器和发送器包含了 2 个 64 位的 FIFO. 寄存器 名称 地址 在linux中的描写叙述 (2410 和 2440 处理器对内存地址映射关系同样) UART 线性控制寄存器(ULCONn) ULC…
基于OMAPL138的Linux字符驱动_GPIO驱动AD9833(一)之miscdevice和ioctl 0. 导语 在嵌入式的道路上寻寻觅觅很久,进入嵌入式这个行业也有几年的时间了,从2011年后半年开始,我清楚的记得当时拿着C51的板子闪烁了LED灯,从那时候开始,就进入到了嵌入式的大门里面.嵌入式的学习从来没有停止过,中间也有无数的插曲和机缘巧合学会C++和Java,做一些好玩的应用.无论是嵌入式DSP也好,还是如今的嵌入式ARM,7年之久从来没有停止过.技术最大的好处就是,无论发展到什…
基于OMAPL138的Linux字符驱动_GPIO驱动AD9833(二)之cdev与read.write 0. 导语 在上一篇博客里面,基于OMAPL138的字符驱动_GPIO驱动AD9833(一)之ioctl 中使用#include <linux/miscdevice.h>中的miscdevice机制,在呢篇博客中使用宋宝华的Linux驱动设备中提供的cdev机制完成注册, 根据参考文献[1]中所说: misc设备其实也是字符设备,主不过misc设备驱动在字符设备的基础上又进行了一次封装,使…
一.spi总线注册 这里所说的SPI核心,就是指/drivers/spi/目录下spi.c文件中提供给其他文件的函数,首先看下spi核心的初始化函数spi_init(void).程序如下: 点击(此处)折叠或打开 static int __init spi_init(void) { int    status; buf = kmalloc(SPI_BUFSIZ, GFP_KERNEL); if (!buf) { status = -ENOMEM; goto err0; } status = bu…
本文转载自:http://blog.chinaunix.net/uid-21558711-id-3959287.html 分类: LINUX 原文地址:Linux I2C驱动分析(三)----i2c_dev驱动和应用层分析 作者:apple_guet 一.i2c-dev驱动分析 1.1.设备驱动注册 分析这个驱动,还是从module_init()和module_exit()开始,程序如下: 点击(此处)折叠或打开 static int __init i2c_dev_init(void) { in…
前言 主要是想对Linux I2c驱动框架有一个整体的把控,因此会忽略协议上的某些细节,同时里面涉及到的一些驱动基础,比如平台驱动.设备模型.sysfs等也不进行详细说明原理,涉及到i2c协议部分也只会简单带过,因为linux内核里面已经实现了该协议,我们以后并不需要重新实现这些,只需要对协议有个简单的了解.如果有任何错误地方,请指出,谢谢! 注:图片来自互联网 内核版本:2.6.35.6 I2c介绍 I2C是"Inter Integrated Circuit Bus"的缩写,中文译成…
为了解决一个问题,简单看了一遍linux gadget驱动的加载流程.做一下记录. 使用的内核为linux 2.6.35 硬件为芯唐NUC950. gadget是在UDC驱动上面的一层,如果要编写gadget驱动只需调用linux 的gadget API,不需设计底层的UDC驱动. 但要是分析驱动BUG,就需要了同时了解一下UDC. 下面以简单的gadget zero驱动分析驱动的加载流程. 主要是一系列的bind的调用,让gadget驱动一步步与硬件的端点联系起来. 从insmod g_zer…