RTL9010AX ETHERNET纯新手小白调试记录

背景

最近在ac8025平台调试realtek的phy驱动 rtl9010,上网搜了半天只找到一篇rtl9010相关文章,第一次调ethernet的我整个过程调的焦头烂额,因此写下此篇文章,希望能给后来的其他兄弟一些帮助,也是给自己未来调其他ethernet驱动留下参考资料。

遇到的问题及分析

问题一

mdio_bus 11020000 ethernet-ffffffff: MDIO device at address 0 is missing.
在这里插入图片描述

原因分析:

  1. 设备树dts #include的dtsi忘记修改了,没有包含自己写的ethernet相关的dtsi。
    在这里插入图片描述
    修改后如下
  2. 检查硬件发现reset脚被接地了,导致其一直拉低,如果一直接地的话无法实现reset时序,找硬件修改后问题解决。
    在这里插入图片描述
RTL9047A 为车用乙太网single chip 交换机方案,如下图port0~port3 总共提供4ports 100BASE-T1,不用外挂PHY可节省cost 及PCB空间; port4为 selection port可选择设定100BASE-T1或SGMII,其SGMII个外接CPU或对接相同型号switch做cascade扩充; port5为 selection port可选择设定传统100base-TX FE PHY, SGMII或 RGMII/MII/RMII,其100base-TX 界面作为车载Diagnostic界面; port6为RGMII/MII/RMII 界面,可用来外接CPU或扩充网路界面等应用。 RTL9047A相较于NXP SJA1105 多四口internal 100base-T1 PHY,可节省车厂bom cost并增加PCB layout设计弹性。 RTL9047AA提供的100Base-T1符合标准是IEEE 802.3bw规范,它具有100 Mb / s的速率,通过双绞线(T1)进行全双工通信。 能够支持线材至少15米,而相较于车用传统LIN、CAN 界面,可以提高更好的频宽,并能和车用交换器及资料中心做连接,达到多个节点装置互相通信,建构各种不同所需的网路拓朴 ,此外,具有低辐射,高RF抗扰度和更长距离通信的能力。 根据 Open Alliance TC1标准规范,车载乙太网路测试项目EMC、IOP、 PCS 、PMA、PHYC, RTL9047AA 已在Open Alliance认证实验室通过以上所有测项,并可提供测试报告给车厂评估. (一)友尚FAE能协助提供(申请)开发者需要的参考文件及软件包,如下; 1.RTL9047AA-VC_DataSheet 2.RTL9047AA-VC_Reference_Schematic 3.RTL904Xxx_Series_Demo_Board_User_Guide(让开发者快速理解switch应用及操作) 4.RTL904Xxx-VC_Schematic_Checklist(方便开发者检视硬体设计) 5.RTL904Xxx_Series_SDK_API_Programming_Guide(软件开发用) 6.Realtek Automotive Switch Tool(turnkey tool,全面UI界面设定产出image,节省软件开发effort) (二)友尚FAE可协助开发者硬件线路及layout review (三)友尚FAE可协助软体 API整合开发,switch tool应用及网管整合协助 (四)请车厂开发单位在大大购平台购买EVB board后,并向大大通或代理商(友尚)申请porting和网关sample code,节省开发时间。 RTL9047AA提供SPI slave\SMI slave\I2C slave界面接到SOC,让开发者将RTL9047AA API code 包入CPU系统后可以动态设定功能,也可节省FLASH元件cost。 开发者也可直接套用API里的sample code造出I2C\SMI或SPI来porting RTL9047AA,ex:src/rtk_i2c.c 、src/rtk_mdc.c 、 src/rtk_spi.c RTL9047AA API code,可让开发者动态可调性的客制化设定网管必备功能,例如以下范例: 1.Port-Base VLAN feature,以下设定将Port0~Port2设为Group VLAN1,将Port3~Port5设为Group VLAN2,形成不同VLAN Group之间无法传递资料,要在同一个VLAN Group才能收送资料。 /* initialize VLAN */ rtk_vlan_init (); /* all the ports are in the default VLAN 1 after VLAN is initialized. Modify it as follows VLAN1 member: port0, port1, port2; VLAN2 member: port3, port4, port5 */ rtk_portmask_t mbrmsk, untagmsk; rtk_vlan_t VLAN1, VLAN2; VLAN1 = 100; VLAN2 = 200; mbrmsk.bits[0]=0x07; /* port 0~ port 2*/ untagmsk.bits[0]=0x3F; rtk_vlan_set(VLAN1, mbrmsk, untagmsk, 0); mbrmsk.bits[0]=0x38; /* port 3~
要将一个Go语言项目打包为Windows可执行文件和Linux安装包,可以使用以下步骤: ## 打包为Windows可执行文件(.exe) 1. 安装Go编译器并设置环境变量。 2. 在项目根目录下使用以下命令生成可执行文件: ``` go build -o myapp.exe ``` 这将在当前目录下生成名为`myapp.exe`的可执行文件。 3. 使用[UPX](https://upx.github.io/)对可执行文件进行压缩,可以减小文件大小: ``` upx myapp.exe ``` 4. 打包压缩后的可执行文件和必要的资源文件为一个zip包,然后将zip包重命名为.exe后缀即可。 ## 打包为Linux安装包(.tar) 1. 安装Go编译器并设置环境变量。 2. 在项目根目录下使用以下命令生成二进制文件: ``` go build -o myapp ``` 这将在当前目录下生成名为`myapp`的二进制文件。 3. 将二进制文件和必要的资源文件放入一个文件夹中。 4. 在该文件夹中创建一个`install.sh`脚本,用于安装程序。例如: ``` #!/bin/bash cp myapp /usr/local/bin/ ``` 这个脚本将把`myapp`二进制文件复制到`/usr/local/bin/`目录下。 5. 使用以下命令将文件夹打包成tar文件: ``` tar -czvf myapp.tar.gz myapp_folder/ ``` 这将在当前目录下生成名为`myapp.tar.gz`的压缩文件。 6. 将tar文件上传到服务器,并使用以下命令解压: ``` tar -xzvf myapp.tar.gz ``` 7. 执行`install.sh`脚本安装程序: ``` sh install.sh ``` 这将把二进制文件复制到指定目录,并为您配置好程序。
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值