8328在SDK 10.5.13上的K移植总结.pdf
### 8328在SDK 10.5.13上的K移植总结 #### 一、概述 本文档旨在总结8328交换芯片在京信PLC2期桥上基于SDK 10.5.13进行移植及测试的工作经验。8328是一款由Atheros生产的高性能交换芯片,被广泛应用在网络通信设备中。本文将详细介绍8328的移植过程,并深入探讨在SDK 10.5.13环境下如何适配8328芯片,以及实现稳定运行的关键步骤。 #### 二、8328交换芯片简介 8328属于Atheros S17系列,这一系列芯片主要针对千兆网络应用而设计。在SDK 10.5.13中,虽然默认支持的是AR8327芯片,但通过适当的修改和配置,同样可以支持8328芯片。下面将详细阐述这些修改和配置的具体内容。 #### 三、移植准备工作 在开始移植之前,需要确保以下几点: - **硬件环境**:确认硬件平台支持8328芯片。 - **软件环境**:安装好SDK 10.5.13开发环境,并确保能够编译运行示例项目。 - **文档资料**:获取8328芯片的数据手册和其他官方文档。 #### 四、驱动代码修改 1. **定义CONFIG_ATHRS17_PHY**:为了使SDK支持8328芯片,需要在`athrs_phy.h`文件中定义`CONFIG_ATHRS17_PHY`宏。这一步是开启8328芯片支持的关键。 ```c //addstart /*此板子上面只使用一个eth0*/ #if 1 //#define CONFIG_ATHRS26_PHY #define CONFIG_ATHRS17_PHY #endif //addend by xue ``` 2. **初始化操作**:在`athrs17_register_ops`函数中,只有当`unit`为0时才进行初始化。这是因为京信PLC2期桥上仅使用了一个GMAC(即eth0)。 ```c #ifdef CONFIG_ATHRS17_PHY if (unit == 0) { printk("mac:%d athrs17_register_ops.\n", unit); athrs17_register_ops(arg); } #endif ``` 3. **关键初始化函数athrs17_reg_init**:该函数负责完成8328芯片的初始化工作,包括设置配置参数、读取芯片版本信息等。 - **SSDK初始化配置**:使用`ssdk_init`函数进行初始化。 ```c ssdk_init_cfg cfg; garuda_init_spec_cfg chip_spec_cfg; int rv; memset(&cfg, 0, sizeof(ssdk_init_cfg)); memset(&chip_spec_cfg, 0, sizeof(garuda_init_spec_cfg)); cfg.cpu_mode = HSL_CPU_1; cfg.reg_mode = HSL_MDIO; cfg.nl_prot = 30; cfg.chip_type = CHIP_ISIS; cfg.chip_spec_cfg = &chip_spec_cfg; cfg.reg_func.mdio_set = athrs17_phy_write; cfg.reg_func.mdio_get = athrs17_phy_read; rv = ssdk_init(0, &cfg); ``` - **版本检查**:通过读取特定寄存器来获取芯片版本号,并根据版本号进行相应的配置。 ```c versionID = (athrs17_reg_read(S17_MASK_CTRL_REG) & 0xffff); printk("\n8328 Chip Version ID: %0x\n", versionID); versionID = (athrs17_reg_read(S17_MASK_CTRL_REG) & 0xff); if (versionID == S17_CHIPID_V1_0) { for (phy_addr = 0x0; phy_addr <= S17_PHY_MAX; phy_addr++) { phy_reg_write(0, phy_addr, S17_DEBUG_PORT_ADDRESS, 0x0); phy_reg_write(0, phy_addr, S17_DEBUG_PORT_DATA, 0x02ea); phy_reg_write(0, phy_addr, S17_DEBUG_PORT_ADDRESS, 0x3d); phy_reg_write(0, phy_addr, S17_DEBUG_PORT_DATA, 0x68a0); } } ``` #### 五、测试与验证 完成以上修改后,需要对系统进行全面的测试以确保8328芯片能够正常工作。测试内容应包括但不限于以下几点: - **基本功能测试**:验证数据传输、端口配置等功能是否正常。 - **性能测试**:测量吞吐量、延迟等关键性能指标。 - **稳定性测试**:长时间运行以检验系统的稳定性。 #### 六、结论 通过以上步骤,成功地在SDK 10.5.13上实现了8328交换芯片的移植。通过对驱动程序的适当修改和配置,不仅解决了兼容性问题,还确保了系统的稳定性和高效性。这一成果为后续基于8328芯片的产品开发提供了坚实的基础。 #### 七、未来展望 随着技术的发展,未来可能会出现更多高性能交换芯片。对于这些新芯片的移植和支持,可以借鉴本次8328移植的经验,进一步优化移植流程,提高移植效率。此外,随着物联网技术的不断进步,交换芯片的应用场景也将更加广泛,对交换芯片的功能需求也将更加多样化。因此,持续关注新技术动态,保持技术更新,将是未来工作的重点之一。
- 粉丝: 1087
- 资源: 23
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
- 1
- 2
前往页