笔记整理—uboot番外(6)针对x210的网卡说明

2024-09-06 14:44

本文主要是介绍笔记整理—uboot番外(6)针对x210的网卡说明,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

        对于x210而言,在三星中与九鼎官方的uboot都默认使用了二号串口。详见CONFIG_SERIALn(n=1~4)。

        更改串口后,应先插回原串口,进行iROM打印,内部iNnad校验核失败的信息,之后再插入其串口进行启动。

        修改CCONFIG_NETMASK等多个宏可以修改默认的网络环境。在进行完成修改后,如果依旧没进行改变,则应对iNand ENV分区进行擦除,因为当iNand在校验环境变量是依旧可用的所以未对环境变量进行更新,有优先级关系。

        

        mmc write 0 0x30000000 11# 32的意思就是将iNnad的第17扇区向后的32扇区个扇区内写入内容为0x30000000中的值。1个扇区是512字节,32个扇区就是16kb。

        修改CFG_PROMPT宏可修改提示符,CONFIG_IDENT_STRING可修改开发板名。

        开发板上网的方式有两种:①SOC自带网卡。②外接网卡。x210使用的是DM9000网卡芯片,有48个引脚。

        

        总线式扩展:通过地址进行直接寻址。非总线式拓展(Nandflash/SD卡)通过时序进行操作。 网卡是总线式扩展,通过SROM接入,通过8/16bit总线链接NOR Flash/PROM/SROM。

        SROM是:

        网卡将自己伪装为SRAM/ROM接在SROM中,优点是网卡就是以存储器方式进行拓展在SOC上,可以直接通过地址进行访问(接在某个BANK上) 。S5PV210一共可接(0~5)共6个BANK,也就是6个SRAM/ROM。起始地址为BANKn的基地址(SROM_BANKn)。

        x210使用16bit SROM接口接入DM9000。网线中有8根线,但有效数据线只有4根,另外4根为GND抗干扰线,四根线为(TX+/TX-)(RX+RX-)为差分信号。

        网卡芯片上的CS引脚(chip selet)片选信号,主机向CS发送有效信息,则从机进行工作,否则从机不工作。CS高电平有效,低电平无效。   

        CS接在SOC片选信号引脚,在SROM BANK中有多个片选引脚CSn。x210将DM9000接在CS1上对应SROM_BANK1基地址为0x88000000。            

        CMD引脚接在SOC的ADDR2上。DM9000只有数据线没有地址线,是地址线与数据线进行复用(DATA0~15)。CMD高电平时为DATA,CMD为低电平时为index索引(地址+偏移量)。电平的高低由控制器进行改变,只需对寄存器进行正确的配置就能控制。

        在linux驱动中,数据和代码是分开的,在DM9000中,驱动主要是代码,数据由开发板的接线方式决定。

        DM9000依赖于init_sequences进行初始化。

start_armbootinit_sequenceboard_initdm9000_pre_init

        SROM_BW_REG寄存器,用4个bit位去描述一个BANK,三星接在bit20~23就是BANK5,在X210接在BANK1,描述位为bit4~7。(注意半字对齐)

        DM9000_DATA宏是发送数据的,DM9000_IO宏是发索引的,CONFIG_DM9000_BASE是网卡通过SROMBANK映射到SOC空间地址,不同BANK地址不同。

        X210中ADDR2接在CMD上,因为ADD2是ADDRn的第三根线,所以CONFIG_DM9000(BASE)+4=DM9000_DATA。

        X210接在BANK1,所以BASE为0x88000000,但DM9000因为型号问题,存在0x300的偏移量所以BASE为0x88000300。

        在linux中有线网卡叫eth n。无线网卡叫wlan n。

        linux系统下,网卡使用socket接口(API)进行上网,linux系统下的应用就通过这个socket实现上网,socket内部调用网卡驱动达到上网的目的。(linux->socket->驱动)。对于系统来说,驱动是隐形的。应用层的编写针对驱动是隐形的,驱动编写针对的是Linux框架(分离思想)。

        uboot本身是裸机程序,不进行分层,没有驱动和应用的概念。在uboot中ping命令调用了驱动,ping的原理:向目标发包,cheak是否有反应。

do_pingNet Loopping startping sendARPRequest    ARP协议(一种地址解析方式)发送 eth_send()接受 eth_rx()

        #define CONFIG_SETUP_MEMORY_TAGS保证uboot给内核传参可以传递内存信息。

        #define CONFIG_CMDLINE_TAG传递uboot bootargs给内核做启动信息。

这篇关于笔记整理—uboot番外(6)针对x210的网卡说明的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1142296

相关文章

Tomcat版本与Java版本的关系及说明

《Tomcat版本与Java版本的关系及说明》:本文主要介绍Tomcat版本与Java版本的关系及说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Tomcat版本与Java版本的关系Tomcat历史版本对应的Java版本Tomcat支持哪些版本的pythonJ

Nginx指令add_header和proxy_set_header的区别及说明

《Nginx指令add_header和proxy_set_header的区别及说明》:本文主要介绍Nginx指令add_header和proxy_set_header的区别及说明,具有很好的参考价... 目录Nginx指令add_header和proxy_set_header区别如何理解反向代理?proxy

Mysql中深分页的五种常用方法整理

《Mysql中深分页的五种常用方法整理》在数据量非常大的情况下,深分页查询则变得很常见,这篇文章为大家整理了5个常用的方法,文中的示例代码讲解详细,大家可以根据自己的需求进行选择... 目录方案一:延迟关联 (Deferred Join)方案二:有序唯一键分页 (Cursor-based Paginatio

JAVA SE包装类和泛型详细介绍及说明方法

《JAVASE包装类和泛型详细介绍及说明方法》:本文主要介绍JAVASE包装类和泛型的相关资料,包括基本数据类型与包装类的对应关系,以及装箱和拆箱的概念,并重点讲解了自动装箱和自动拆箱的机制,文... 目录1. 包装类1.1 基本数据类型和对应的包装类1.2 装箱和拆箱1.3 自动装箱和自动拆箱2. 泛型2

MySQL常见的存储引擎和区别说明

《MySQL常见的存储引擎和区别说明》MySQL支持多种存储引擎,如InnoDB、MyISAM、MEMORY、Archive、CSV和Blackhole,每种引擎有其特点和适用场景,选择存储引擎时需根... 目录mysql常见的存储引擎和区别说明1. InnoDB2. MyISAM3. MEMORY4. A

MyBatis的配置对象Configuration作用及说明

《MyBatis的配置对象Configuration作用及说明》MyBatis的Configuration对象是MyBatis的核心配置对象,它包含了MyBatis运行时所需的几乎所有配置信息,这个对... 目录MyBATis配置对象Configuration作用Configuration 对象的主要作用C

Mysql中InnoDB与MyISAM索引差异详解(最新整理)

《Mysql中InnoDB与MyISAM索引差异详解(最新整理)》InnoDB和MyISAM在索引实现和特性上有差异,包括聚集索引、非聚集索引、事务支持、并发控制、覆盖索引、主键约束、外键支持和物理存... 目录1. 索引类型与数据存储方式InnoDBMyISAM2. 事务与并发控制InnoDBMyISAM

StarRocks索引详解(最新整理)

《StarRocks索引详解(最新整理)》StarRocks支持多种索引类型,包括主键索引、前缀索引、Bitmap索引和Bloomfilter索引,这些索引类型适用于不同场景,如唯一性约束、减少索引空... 目录1. 主键索引(Primary Key Index)2. 前缀索引(Prefix Index /

在Dockerfile中copy和add的区别及说明

《在Dockerfile中copy和add的区别及说明》COPY和ADD都是Dockerfile中用于文件复制的命令,但COPY仅用于本地文件或目录的复制,不支持自动解压缩;而ADD除了复制本地文件或... 目录在dockerfile中,copy 和 add有什么区别?COPY 命令ADD 命令总结在Doc

解读Pandas和Polars的区别及说明

《解读Pandas和Polars的区别及说明》Pandas和Polars是Python中用于数据处理的两个库,Pandas适用于中小规模数据的快速原型开发和复杂数据操作,而Polars则专注于高效数据... 目录Pandas vs Polars 对比表使用场景对比Pandas 的使用场景Polars 的使用