笔记整理—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_armboot
    init_sequence
        board_init
            dm9000_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_ping
        Net Loop
            ping start
                ping send
                    ARPRequest    ARP协议(一种地址解析方式)
                    发送 eth_send()
                    接受 eth_rx()

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值